더북(TheBook)

2 스레드


스레드(thread)란 프로세스 안의 실행 흐름의 단위로 스케줄러에 의해 CPU를 할당받을 수 있는 인스트럭션의 나열입니다. 프로세스는 하나 이상의 스레드로 구성됩니다. 우리가 지금까지 작성한 프로그램은 모두 실행 흐름이 하나인 단일 스레드입니다.

프로세스가 PCB를 갖는 것처럼 스레드는 스레드 제어 블록(Thread Control block, TCB)을 갖습니다. TCB에는 스레드 ID, 각종 레지스터 정보, 스레드 상태 정보, 스레드가 속해 있는 프로세스의 PCB 주소 등이 저장되어 있습니다. TCB 정보는 PCB와 매우 유사합니다. CPU의 레지스터 정보와 스레드의 상태 정보는 정확하게 프로세스와 같습니다. 즉, 이전 절에서 배운 프로세스 상태나 컨텍스트 스위칭이 스레드에도 똑같이 적용됩니다.

프로세스와 스레드 모두 인스트럭션의 나열이고 유사한 정보가 든 메모리 블록을 갖습니다. 프로세스가 단일 스레드로 작동하면 프로세스와 스레드는 차이가 없습니다. 프로세스와 스레드의 차이점을 알려면 멀티프로세스와 멀티스레드를 비교해야 합니다.


TIP 멀티프로세스(multi-process)는 프로세스 여러 개를 동시에 실행하는 것을 말하고, 멀티스레드(multi-thread)는 스레드를 여러 개 만들어 동시에 실행하는 것을 말합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.