-
OS 4강: 쓰레드 관리os 운영체제 2024. 2. 20. 16:20
쓰레드란?
LWP: Light Weight Process
프로세서 활용의 기본 단위 (쓰레드가 여러개면 동시에 여러 cpu 사용 가능)
구성: Thread Id, Register set(PC, SP), Stack
제어요소 외 코드, 데이터 및 자원들은 프로세스 내 다른 스레드들과 공유
전통적 프로세스: 단일 스레드 프로세스
쓰레드는 제어를 담당.
하나의 프로세스에 n개의 쓰레드 존재,
스레드 마다 각자의 작업 영역 (stack)을 할당 받고, 자원은 공유한다.
지역 데이터로 제어를 한다.
쓰레드 장점:
사용자 응답성: 일부 쓰레드가 느려져도 다른 쓰레드는 빨리 응답
자원 공유: 자원 동시 사용으로 효율성 증가(커널의 개입을 피함/context switch방지)
경제성: 프로세스의 생성, context switch에 비해 효율적.
멀티 프로세서 활용: 병렬처리 가능
쓰레드 3개를 만들어서 입력, 사운드 출력, 화면 출력을 병렬처리
쓰레드 구현:
사용자 수준 쓰레드(User Thread):
사용자 영역의 쓰레드 라이브러리로 구현 됨:
n대일 n:1 매핑 (1커널 쓰레드)
쓰레드의 생성 및 관리의 부하가 적음(쓰레드 개입x), 유연한 관리 가능, 이식성 높음
but
커널은 프로세스 단위로 자원 할당
하나의 쓰레드가 block이 되면 모든 쓰레드가 대기(single threaded kernel)
커널 수준 쓰레드:
os(kernel)가 직접 관리 (1:1 매핑)
커널 영역에서 쓰레드의 생성, 관리 수행(context switch등 부하 발생)
but
커널이 각 쓰레드를 개별적으로 관리.
프로세스 내 쓰레드 병렬처리(하나가 block 되도 다른 쓰레드는 계속 작업 가능)
혼합형 쓰레드:
n개 사용자 수준 쓰레드 - m개의 커널 쓰레드
사용자는 원하는 수 만큼 쓰레드 사용, 쓰레드 병렬처리 가능
효율적, 유연함
'os 운영체제' 카테고리의 다른 글
컴퓨터 구조: 어드레싱 모드란? (0) 2024.03.25 OS 5강: 프로세스 스케줄링 (0) 2024.03.01 OS 3강: 프로세스 관리 (0) 2024.02.19 OS 2강: OS overview (1) 2024.02.19 OS 1강: 컴구 Overview (0) 2024.02.17