본문 바로가기

전체 글

(66)
동시성처리 처리해야할 컴퓨팅 작업(task)가 여러개일때, 단일 처리 장비에서 2가지 이상의 작업을 동시적으로 실행하는 방식으로 동시성 처리, 병렬성 처리가 있다. 동시성 처리 1개 코어는 한번에 한가지의 작업만 처리할수 있다. core에서 시분할, 시간을 쪼개서 두개의 작업을 번갈아가면서 처리 => 두개가 동시에 처리되는 것처럼 보인다. 로드시간(작업이 어디까지 처리됬는지에 대한 기록을 읽어오는것)이 필요하므로, 이 로드시간이 코어에 부하를 줄 수 있다. 윈도우에서 한번에 여러가지 작업이 되어야하는 경우(예를들어 브라우저를 돌리는 동시에 카톡을 켠다..) 병렬성 처리 2개 이상의 작업이 동일한 시간에 실제로 동시에 처리되는 방식 2개 이상의 core를 가진 컴퓨터에서 가능한 방식이다 동시성 &병렬성 혼용을 하여 ..
쓰레드, 멀티쓰레드 /* 프로세스: 운영체제로 부터 자원을 할당받는 작업의 단위 디스크로부터 메모리에 적재되어 운영체제로부터 주소 공간, 파일, 메모리 등을 할당 받으며 이것들을 총칭하여 프로세스라고 함 임시변수(함수의 매개변수, 복귀주소, 로컬 변수) 를 저장하는 프로세스 '스택'과 전역변수들을 저장하는 데이터 섹션, 프로세스 실행중에 동적으로 할당되는 메모리인 힙을 포함 쓰레드: 프로세스가 할당받은 자원을 이용하는 실행의 단위(얼만큼) 한 프로세스 내에서 동작되는 여러 실행 흐름으로 프로세스 내의 heap, data, code 영역을 공유 */ 싱글스레드 공유되는 자원접근에 대한 동기화(접근 통제), 작업전환(시간과 노력이 든다)를 신경쓰지 않아도 되지만 여러개의 CPU를 활용하지못한다 -> 최대한 활용하려면 clust..
동기 vs 블로킹, 비동기 vs 논블로킹 동기 vs 블로킹, 비동기 vs 논블로킹 의 각각 차이점은?(async, async, blocking, non-blocking) Q. 성능의 차이를 어떻게 ? 알수있나? /* 제어권: 제어권은 자신(함수)의 코드를 실행할 권리 같은 것이다. 제어권을 가진 함수는 잣니의 코드를 끝까지 실행한후, 자신을 호출한 함수에게 돌려준다. 결과값을 기다린다 a함수에서 b함수를 호출했을때, a함수가 b함수의 결과값을 기다리느냐의 여부 */ 1)블로킹 a함수가 b함수를 호출하면, a함수가 b함수에게 제어권을 넘겨주고 결과값을 기다린다 b는 함수를 실행하고(제어권) 자신에게 호출한 함수에게 돌려주며 제어권도 다시 넘긴다 2) 논블로킹 a함수가 b함수를 호출해도 제어권은 자신이 그대로 가지고 있는다 b는 함수를 실행하고 a..