[6] Thread

hyunsooo·2023년 6월 2일
0
post-thumbnail

KOCW - 양희재 교수님 강의를 기반으로 운영체제 정리

Thread

Multi Threads

쓰레드는 프로세스 내부의 흐름을 의미합니다. 보통 하나의 프로세스에 하나의 쓰레드가 존재하고 2개 이상의 쓰레드가 존재할 수 있으며 Multi-Threads라고 부릅니다.

만약 CPU(프로세서)가 하나인 경우 멀티 쓰레드는 동시성(concurrent)이라는 단어를 사용하게 됩니다. 실제로는 동시에 일어나지 않지만 여러개의 쓰레드를 switch시켜 실행하여 동시에 실행되는 것처럼 보이는 것입니다. 반면에, 여러개의 CPU가 있는 경우 병렬성(Parallelism)이라는 단어를 사용하게 되고 실제로 여러 작업이 동시에 수행되는 상황을 의미합니다.

이전 시간까지 하나의 프로세스에서 다른 프로세스로의 Context switching이 일어난다고 설명했지만 현대의 컴퓨터는 쓰레드끼리의 switching이 일어납니다. 따라서 Thread 별로 정보들을 저장하는 TCB(Thread Context Block)을 사용하고 이 블럭은 PCB를 가르키게 됩니다.

정리하자면 쓰레드는 프로세스의 스택 영역을 제외한 메모리 공간(code, data)을 공유하고 개별적인 PC, SP, register는 공유하지 않습니다.

profile
CS | ML | DL

0개의 댓글