스레드
스레드는 프로세스 하나에 CPU 수행단위를 여러개 두는 것이다.
스레드는 같은 프로세스의 다른 스레드와 프로세스의 code, data, os 자원을 공유한다. (= task)
프로세스 주소 공간 내부에 각각의 스레드별로 스택이 존재한다. PCB에도 각각의 스레드를 위한 PC 및 다른 레지스터 값들에 대한 정보를 담고 있다.
스레드의 장점
1. 하나의 스레드가 Blocked 상태인 동안에도 동일한 task 내에 다른 스레드가 실행(running)되어 빠른 처리를 할 수 있다.
2. 병렬성을 높일 수 있다. -> CPU가 여러개인 경우 여러개의 CPU에서 스레드가 병렬적으로 실행될 수 있다.
3. 메모리 낭비를 줄일 수 있다. -> 동일한 작업을 스레드가 아닌 프로세스 단위로 나누면 code data 부분이 중복되기 때문에
4. 비용적으로 좋다. -> 프로세스간의 CPU switching보다 스레드간의 CPU switching이 더 빠르다. 바꿔줘야 할 문맥이 적기 때문에
커널 스레드와 유저 스레드
커널 스레드: 운영체제가 스레드를 지원, 스레드 스케줄링을 커널에서 지원
유저 스레드: 운영체제는 스레드의 존재를 모름, 유저 라이브러리를 사용하여 알아서 처리
'운영체제' 카테고리의 다른 글
6. 프로세스 동기화 (0) | 2022.06.09 |
---|---|
5. CPU 스케줄링 (0) | 2022.06.09 |
4. 프로세스 생성 (0) | 2022.06.09 |
2. 프로세스 (0) | 2022.06.08 |
1. 컴퓨터 시스템 구조 (0) | 2022.06.08 |