봉황대 in CS

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

Computer Science & Engineering/Operating System

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

등 긁는 봉황대 2022. 7. 19. 15:33

* 본 글은 '운영체제(Operating System: Concepts) 9th edition'의 내용과 2021학년도 1학기에 수강한 '운영체제' 과목 강의 내용을 함께 정리하여 작성하였습니다.

 

 

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

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

 

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

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

 

스레드 스케줄링


앞서 스레드의 2가지 형태, 사용자 스레드와 커널 스레드에 대하여 알아보았다.

     1. 사용자 스레드 : 응용 프로그램 내의 라이브러리에 의해서 구현 및 관리되는 스레드

     2. 커널 스레드 : 운영체제에 의해 직접 지원되고 관리되는 스레드

* 참고 : 2022.07.14 - [Computer Science/Operating System] - [Chapter 4. 스레드] 스레드, PCB와 TCB, 다중 스레드 모델

 

이 둘을 지원하는 운영체제에서의 스케줄 대상은 프로세스가 아닌, 커널 스레드이다.

 

사용자 스레드는 스레드 라이브러리에 의해 관리되기 때문에 커널은 사용자 스레드의 존재를 알지 못한다.

따라서 사용자 스레드가 CPU 상에서 실행되기 위해서는 사용자 스레드는 연관된 커널 스레드에 사상(mapping)되어야 하며,

이것을 위한 한 방식으로는 커널 스레드와 사용자 스레드 사이에 중간 자료 구조인 LWP를 두는 것이 존재한다.

 

 

경쟁 범위 (Contention Scope)

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

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

 

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

 

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

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

 

 

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

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

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

 

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

 

 

반응형
Comments