이야기박스

운영체제) 스레드 2 본문

Computer & Data/Operating System

운영체제) 스레드 2

박스님 2017. 4. 3. 18:01
반응형

▣ 스레드 구현


○ 사용자 공간 ( 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