쓰레드의 정의
- “A thread (opr lightweight process) is a baic unit of CPU utilization.”
- Thread의 구성
- program counter - 작업 위치
- register set - CPU의 작업 공간
- stack space - 작업 위치에 따른 함수 호출 순서
- Thread가 동료 thread와 공유하는 부분(task)
- code section
- data section
- OS resources
- 전통적인 개념의 heavyweight process는 하나의 thread를 가지고 있는 task로 볼 수 있다.
- 쓰레드는 하나의 프로세스에서 CPU가 실행하는 곳을 여러개, 프로그램 카운터를 여러개 두어 CPU 수행 단위를 여러 개로 두는 것을 멀티 쓰레드라고 함.
- 동일한 일을 하는 프로세스가 여러 개일 때, 프로세스마다 별도의 주소공간을 생성하면 메모리 공간이 불필요하게 낭비된다.
멀티쓰레드의 장점
- Responsiveness(응답성) : 다중 스레드로 구성된 테스크 구조에서는 하나의 서버 스레드가 blocked 상태인 동안에도 동일한 테스크 내의 다른 스레드가 실행(running)되어 빠른 처리를 할 수 있다. 일종의 비동기식 입출력이 구현된다.
- Resource Sharing : 독자적으로 가져야하는 정보만 thread마다 별도로 가진다.
- Economy
- Creating & CPU Switching thread는 프로세스 생성 및 문맥 교환보다 훨씬 경제적이다.
- 같은 일을 하는 작업이라면 프로세스를 여러 개 두기보다 thread를 여러개 두는 것이 효율적
- Utilization of Multi-Processor Architectures
- 쓰레드가 다른 CPU에서 병렬적으로 일할 수 있음.
- 동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리율(throughput)과 성능 향상을 얻을 수 있다.
쓰레드의 구현
- Kernel Threads : 운영체제의 지원을 받는 쓰레드
- 멀티쓰레드인 것을 커널이 알고 있음
- User Threads : 라이브러리의 지원을 받는 쓰레드
- 프로세스 안에 멀티 쓰레드인지는 커널이 모른다. 프로세스가 내부에서 CPU 단위를 여러개 두어 쓰레드를 관리함.
'Computer Science > 운영체제' 카테고리의 다른 글
반효경 운영체제 - 4. CPU Scheduling (0) | 2023.01.15 |
---|---|
반효경 운영체제 - 3. 프로세스 관리 (0) | 2023.01.08 |
반효경 운영체제 - 2.1 프로세스 (0) | 2023.01.03 |
반효경 운영체제 - 1. 시스템 구조와 프로그램 실행 (0) | 2023.01.03 |
반효경 운영체제 - 0. 운영체제란? (0) | 2023.01.03 |