이야기박스
운영체제) 스레드 2 본문
▣ 스레드 구현
○ 사용자 공간 ( User-level Threads Package )
- 스레드 패키지 전체를 사용자 공간에 둠
- 커널은 오직 단일 스레드 프로세스를 관리
※ Run-time System : 스레드를 관리하는 프로시저들의 모음
- 장점
a. 스레드를 제공하지 않는 운영체제에서 구현 가능
b. 각 프로세스가 자신에게 적합한 스케줄링 알고리즘 갖음
c. 현재 존재하는 운영체제에서 수행 가능
- 단점
a. 블록킹 시스템 호출 구현 문제
b. 페이지 폴트 문제
c. 스레드의 CPU 사용 문제; 무한 수행 문제
○ 커널 공간 ( Kernel-level Threads Package )
- 장점 : 사용자 레벨 스레드 패키지의 단점 해결
- 단점
a. 시스템 호출의 비용이 상당함
b. 스레드 연산( 생성, 종료 등)이 빈번히 발생하면 --> 오버헤드
▣ 하이브리드 구현
○ 혼합 -> 커널 스레드 상에서 사용자 레벨 스레드의 다중화
○ Multiplexing
- 유연성 제공
- 커널은 커널 레벨만 스케줄
▣ 스케줄러
○ 스레드 비교
- 성능 : 커널 > 사용자
- 속도 : 커널 < 사용자
○ 스레드 비교 ;
커널 --> 가상처리기를 프로세스에 할당
--> 사용자 레벨 런타임 시스템이 스레드를 처리기에 할당하도록 강제
===> 커널이 어떤 스레드가 블록 됨을 앎
--> 프로세스의 런타임 시스템에 통지 (upcall)
○ 문제점 ; 일반적인 계층적 시스템의 고유 구조 위반하게 된다
- 상속 구조를 방해하는 개념 (upcall)
- 하위 계층 / 상위 계층 간의 호출 (call)
▣ 팝업 스레드
; 분산 시스템에서 메세지가 도착하면
시스템은 이를 처리하는 새로운 스레드를 생성
--> 이 스레드가 '팝업 스레드'
○ 장점
- 완전히 새로 만들어져 복원할 정보가 없음
- 따라서 스레드의 생성이 빠름
- 고려할 점
a. 어느 프로세스에서 실행할 것인지?
b. 어느 공간에서 실행 될 것인지? ( user / kernel )
▣ 단일 스레드 코드 --> 다중 스레드 코드
○ 스레드의 코드 <-- 다수의 프로시저로 구성
○ 전역변수 사용 금지
--> 라이브러리 프로시저 도입
스레드 수준의 전역변수 이용
○ 시그널 문제
○ 스택 관리 문제
○ 라이브러리 프로시저가 재진입을 허용하지 않음
'Computer & Data > Operating System' 카테고리의 다른 글
운영체제) 스케줄링 (0) | 2017.05.14 |
---|---|
운영체제) 프로세스간 통신 (0) | 2017.04.17 |
운영체제란, (복습) (1) | 2017.04.03 |
운영체제) 스레드 (0) | 2017.04.01 |
운영체제 ) 프로세스 (0) | 2017.03.31 |