스레드란?
- a light weight process
- 최소 CPU 점유 단위
- 스레드는 스레드 ID, 프로그램 카운터(PC), 레지스터, 그리고 스택으로 구성된다.
![](https://blog.kakaocdn.net/dn/UStdg/btsHa2bu45I/m9ttAsKEmzT48cbSdSdek1/img.png)
프로세스 생성 작업은 매우 많은 시간을 소비하고 많은 자원을 필요로 한다.
따라서 대부분은 프로세스 안에 여러 스레드를 만들어 나가는 것이 더 효율적이다.
프로세스는 공유 메모리와 메시지 전달 기법을 통하여만 자원을 공유할 수 있다.
그러나 스레드는 자동으로 그들이 속한 프로세스의 자원들과 메모리를 공유한다.
다중 스레드(멀티 스레드) 모델
![](https://blog.kakaocdn.net/dn/cCYJM2/btsHb9na3wU/Ckp2bDj7q8h9o5rgrapS30/img.jpg)
- 스레드는 두 가지로 나뉘는데, 사용자 수준의 사용자 스레드 (user threads), 커널 수준의 커널 스레드(kernel threads)이다.
- 사용자 스레드는 커널 위에서 지원되며 커널의 지원 없이 관리 된다.
- 반면 커널 스레드는 운영체제에 의해 직접 지원되고 관리된다.
- 멀티스레드 환경의 경우, 사용자 스레드와 커널 스레드 간 연관이 존재해야 한다.
- 현재 대부분의 운영체제 환경은 멀티 스레드이다. 다대일 모델, 일대일 모델, 다대다 모델 등이 존재한다.
Threads Library
스레드 라이브러리 구현 방법은 두 가지가 있다.
1. 커널의 지원 없이 완전히 사용자 공간에서만 라이브러리 제공하는 방법
2. 운영체제에 의해 지원되는 커널 수준 라이브러리를 구현하는 방법
현재는 POSIX, Windows, Java 세 종류의 스레드 라이브러리가 주로 사용된다.
![](https://blog.kakaocdn.net/dn/dZvzf5/btsHbM6Vjv3/dtUAWjYUE3LgeKlKTptRa1/img.png)
레퍼런스
1)
공룡책과 함께 OS를 배워보자 4일차 - 스레드
본 포스트는 공룡책이라 불리는 Abraham Silberschatz, Peter B. Galvin, Greg Gagne의 『Operating System Concept 10th』 을 바탕으로 작성하였습니다. Ch 4. Threads & Concurrency 대부분의 현대 운영체제는 한 프로세스가
suhwanc.tistory.com
2)
운영체제 공룡책 4단원 정리
운영체제 4단원 정리
witch.work
'TABA > 운영체제' 카테고리의 다른 글
[공룡책] Ch6. Synchronization tools 정리 (0) | 2024.01.23 |
---|---|
[공룡책] Ch5. CPU Scheduling 정리 (0) | 2024.01.23 |
[공룡책] Ch3. Process 정리 (0) | 2024.01.12 |
[공룡책] Ch2. Operating system structures 정리 (0) | 2024.01.12 |
[공룡책] Ch1. Introduction 정리 (0) | 2024.01.11 |