본문 바로가기

네트워크 프로그래밍/Thread

[박혜웅] Context Switching, Multi Process, Multi Thread

- Context Switching
Process끼리 또는 Thread끼리의 작업 전환을 위한 정보를 저장하고 읽어 오는 과정이다.
작업 전환을 할 때에는 현재 진행중인 작업의 상태(다음에 실행해야할 위치=Program Counter)등을 저장해야 한다.

- Single Thread vs Multi Thread 
File I/O와 같은 작업이 필요하다면 Multi Thread가 더 효율적이다. 왜냐하면 I/O가 끝나기까지 아무 일도 할 수 없기 때문이다.
하지만, CPU만 사용하는 작업의 경우 Single Thread가 더 효율적이다. 왜냐하면 Context Switching가 없기 때문이다.

- Multi Process vs Multi Thread
다수의 Process나 Thread 모두 Context Swtching이 발생한다. 
하지만, Multi Process의 Context Swtching에 대한 비용이 더 크므로, Multi Thread가 더 효율적이다.