http://www.kocw.net/home/search/kemView.do?kemId=1046323 의 강의를 정리한 글입니다.
1. 쓰레드(Thread)
프로세스 내부에 CPU수행 단위가 여러개 있는 경우 각 CPU 수행 단위를 쓰레드라고 한다.
lightweight process라고도 한다.
- 프로세스가 실행되면 프로세스 만의 code, data, stack으로 구성된 주소공간이 만들어지고 프로세스 하나를 관리하기 위해서 운영체제 내부에 PCB라는 것을 두고 프로세스의 상태 등을 나타낸다.
➡️ 쓰레드란 프로세스는 하나만 띄워놓고 program counter만 여러개를 두는 것으로, 각 쓰레드마다 현재 레지스터에 어떤 값을 넣고 프로그램 카운터가 코드의 어디를 수행하고 있는 지를 별도로 유지한다.
- 프로세스 하나에서 공유할 수 있는 것은 최대한 공유(메모리 주소공간, 프로세스 상태, 프로세스 자원 등)하고 CPU수행과 관련된 process counter, register, stack은 별로도 가진다.
2. 쓰레드의 구성(CPU수행과 관련된 부분)
- program counter
- register set
- stack space
3. 쓰레드가 동료 쓰레드와 공유하는 부분(task)
- code
- data
- 운영체제 자원
4. 다중 쓰레드 사용의 장점
- 하나의 쓰레드가 blocked(waiting) 상태인 경우 같은 task내의 다른 쓰레드가 실행(running)되어 빠른 처리를 할 수 있다.
- 동일한 일을 수행하는 다중 쓰레드가 높은 처리율(throughput)과 성능 향상을 얻을 수 있다
- 병렬성을 높일 수 있다.
- 프로세스가 하나 만들어지면 프로세스만의 주소공간이 만들어지고 이는 메모리를 차지하게 되므로 쓰레드를 사용하면 메모리 등 자원의 낭비를 막을 수 있다.
'컴퓨터 구조와 운영체제' 카테고리의 다른 글
CPU 스케줄링 (0) | 2022.09.05 |
---|---|
프로세스 관리 (0) | 2022.08.29 |
프로세스 (0) | 2022.08.20 |
컴퓨터 시스템 구조(2) (0) | 2022.08.18 |
컴퓨터 시스템 구조(1) (0) | 2022.08.16 |