. Lecture 4 : 스레드 관리 (Thread Management)
본문 바로가기
Pintos Project/이론 공부

Lecture 4 : 스레드 관리 (Thread Management)

by 불냥이_ 2021. 1. 29.

 

스레드

- Light Weight Process (LWP) 라고도 한다.

- 프로세서 활용의 기본 단위

- 제어 요소 외 코드, 데이터 및 자원들은 프로세스 내 다른 스레드와 공유

- 전통적 프로세스 = 단일 스레드 프로세스

 

구성요소

 - Thread ID

 - Register set (Program Counter, Stack Pointer 등, 상위 프로세스나 타 스레드와 협업하기 위해서 필요한 것들)

 - Stack

 

 

 

멀티 스레드 프로세스의 구성
멀티 스레드 프로세스의 메모리 구성

 

장점

 - 사용자 응답성

   -> 일부 스레드의 처리가 지연되어도, 다른 스레드는 작업을 계속 처리 가능

 - 자원 공유

   -> 자원을 공유해서 효율성 증가 (커널의 개입을 피할 수 있음) (경제성과 같은 의미다.)

 - 경제성

   -> 프로세스의 생성, context switch에 비해 효율적 (context switch는 메모리를 지웠다 썼다하지만, 스레드는 메모리의 변화 없이 작업 가능하다.)

 - 멀티 프로세서 활용

   -> 병렬처리를 통해 성능 향상

 

 

 

스레드의 구현

사용자 수준 스레드 (User Thread) (n:1 모델)

- 사용자 영역의 스레드 라이브러리로 구현 됨

  ㆍ 스레드의 생성, 스케줄링 등

   POSIX threads, win32 threads, JAva thread API 등

 

- 커널은 스레드의 존재를 모름

  ㆍ 커널의 관리(개입)을 받지 않음

      -> 생성 및 관리의 부하가 적음, 유연한 관리 가능

      -> 이식성이 높음

 - 커널은 프로세스 단위로 자원 할당

  ㆍ 하나의 스레드가 block 상태가 되면, 모든 스레드가 대기 (single-threaded kernal의 경우)

사용자 수준 스레드 도식도

 

 

커널 수준 스레드 (Kernal Threads) (1:1 모델)

OS(Kernal)가 직접 관리

 - 커널 영역에서 스레드의 생성, 관리 수행

    ㆍContext switching 등 부하(Overhead)가 큼

 - 커널이 각 스레드를 개별적으로 관리

    ㆍ프로세스 내 스레드들이 병행 수행 가능 : 하나의 스레드가 block 상태가 되어도, 다른 스레드는 계속 작업 수행 가능

커널 수준 스레드 도식도

 

혼합형 스레드 (n:m 모델) 

- n개 사용자 수준 스레드 - m개의 커널 스레드 (n > m)

  ㆍ사용자는 원하는 수만큼 스레드 사용

  ㆍ커널 스레드는 자신에게 할당된 하나의 사용자 스레드가 block 상태가 되어도, 다른 스레드 수행 가능 : 병행 처리 가능

- 효율적이면서도 유연함

혼합형 (n:m) 스레드

 

 

'Pintos Project > 이론 공부' 카테고리의 다른 글

[PintOS, Project3] Virtual Memory - Paging System  (0) 2021.02.18
Lecture 5 : Process Scheduling  (0) 2021.01.30
Lecture 3 : 프로세스 관리  (0) 2021.01.29
Lecture2 : OS overview  (0) 2021.01.28
Lecture1 : 운영체제 강의  (0) 2021.01.28

댓글