본문 바로가기
CS/운영체제

[Chapter 5. CPU 스케줄링] 스레드 스케줄링

by 베어 그릴스 2022. 8. 25.
320x100
본 정리는 운영체제(Operating System: Concepts) 9th edition과 22학년도 1학기 건국대학교 운영체제 수업을 바탕으로 하고 있습니다.

 

스레드를 지원하는 운영체제에서는 프로세스를 스케줄 하는 것이 아니라, 실질적으로는 스레드를 스케줄 한다.

하지만 "프로세스 스케줄링"과 "스레드 스케줄링"의 용어는 상호 교환적으로 사용된다.

 

따라서 해당 책에서는 일반적인 스케줄링 개념을 설명할 경우 "프로세스 스케줄링"을 사용하고,

스레드에 국한된 개념을 가리키는 경우에는 "스레드 스케줄링"이라는 용어를 사용하고 있다.

 

스레드 스케줄링

앞서 스레드에는 사용자 스레드, 커널 스레드의 두가지가 있다고 알아보았다.

 

참고 :  https://developbear.tistory.com/102

 

[Chapter 4. 스레드] 스레드와 TCB, 다중 스레드 모델

본 정리는 운영체제(Operating System: Concepts) 9th edition과 22학년도 1학기 건국대학교 운영체제 수업을 바탕으로 하고 있습니다. 앞서 실행 중인 프로그램을 뜻하는 프로세스에 대하여 배웠다. 프로세

developbear.tistory.com

 

이 두가지 스레드 모두를 지원하는 운영체제 에서는 스케줄 되는 대상은 프로세스가 아니라 커널 수준 스레드이다.

 

사용자 수준 스레드는 스레드 라이브러리에 의해 관리되고 커널은 그들의 존재를 알지 못한다. 

 

CPU상에서 사용자 수준 스레드가 실행되기 위해서 LWP를 통한 간접적인 방식일지라도 사용자 수준 스레드는 궁극적으로 연관된 커널 수준 스레드에 사상되어야 한다.

 

경쟁 범위

프로세스-경쟁 범위 (Process-Contention Scope, PCS)

동일 프로세스에 속한 스레드들 사이에서 CPU를 할당받기 위한 경쟁을 말한다.

 

다대일 또는 다대다 모델을 구현하는 시스템에서 스레드 라이브러리는 LWP 상에서 스케줄을 실행한다.

 

스케줄러는 가장 높은 우선순위를 가진 실행 가능한 프로세스를 선택하며,

현재 실행 중인 스레드보다 더 높은 우선순위의 스레드가 나타난다면 해당 스레드는 선점된다.

 

 

2. 시스템-경쟁 범위 (System-Contention Scope, SCS)

어느 커널 스레드에게 CPU를 할당해줄 것인지를 결정하는 것을 말한다.

SCS 스케줄링에서의 CPU에 대한 경쟁은 시스템 상의 모든 스레드 사이에서 일어난다.

 

일대일 모델을 사용하는 시스템은 오직 SCS만을 사용하여 스케줄을 한다.

728x90