본문 바로가기
학부공부/OS_운영체제

25. OS Scheduling case [Interesting topic to study]

by sonpang 2021. 12. 7.
반응형

안녕하세요. 오늘은 Linux를 제외한 다른 OS의 스케쥴링에 대해 살펴보겠습니다. Windows scheduling과 Solaris scheduling에 대해 소개해드리겠습니다. Linux는 이전 포스팅에서 소개해드렸으니 참고해주시면 좋을 것 같습니다. 

2021.12.07 - [학부공부/OS_운영체제] - 24. CPU Scheduling(4)

 

24. CPU Scheduling(4)

안녕하세요. 저번 포스팅에서는 multicore 스케쥴링 방식에 대해 알아보았습니다. 오늘은 조금 더 깊게 Linux 스케쥴링에 대해 알아볼까 합니다. 24.01. Linux CFS(Completely Fiar Scheduler) Linux 스케쥴러는..

ku320121.tistory.com

 

25.1. Windows Scheduling

윈도우 스케쥴링은 우선순위와 선점 스케쥴링을 base로 합니다. 윈도우에서의 우선순위는 아래와 같습니다.

Time quantum이 종료되면 우선순위가 낮아지고 wait()가 해제되면 우선순위를 높여줍니다. (이때 어떠한 이유로 wait()를 하는지에 따라 우선순위 변동폭이 다릅니다.) Foreground process가 background process보다 약 3배정도 더 높은 우선순위를 가진다고 알려져 있습니다.

 

Windows scheduling은 Linux scheduling에 비해 일목요연하게 정리된 문서를 찾아보기 어려웠는데, 제 실력이 부족하여 이해를 못한 문서가 많아 그런 것일 수도 있습니다.(또다른 이유로는 리눅스가 open software OS라는 것이 있을 수도 있습니다.) 하나의 reference를 여러분께 알려드리자면 https://www.microsoftpressstore.com/articles/article.aspx?p=2233328&seqNum=7 를 참고해보시기 바랍니다. 물론 다음 포스팅에서 다룰 thread에 대한 이해가 필요하긴 합니다.

 

Processes, Threads, and Jobs in the Windows Operating System | Microsoft Press Store

Home > Sample chapters Contents × Process Internals Protected Processes Flow of CreateProcess Thread Internals Examining Thread Activity Worker Factories (Thread Pools) Thread Scheduling Job Objects Conclusion Thread Scheduling This section describes the

www.microsoftpressstore.com

 

 

25.2. Solaris Scheduling

Solaris 스케쥴링은 우선순위 기반 스케쥴링으로 6개의 스케쥴링 class를 가집니다. 

 

time sharing (TS) : default scheduling class

interactive (IA) : window applications

real time (RT) : real-time processes

system (SYS) : kernel threads (e.g. scheduler, paging daemon)

fair share (FSS) : introduce with Solaris 9

fixed priority (FP) : introduce with Solaris 9

 

각 class마다 다른 우선순위와 스케쥴링 알고리즘을 적용하는데 익숙하실만한 Time sharing class를 설명해드리자면 다단계 feedback queue 스케쥴링을 사용하여 동적으로 우선순위와 time slice를 할당합니다.

 

Interactive process : higher priority, smaller time slice (response), CPU-bound processes : lower priority, larger time slice (throughput)

 

전역 우선순위라는 개념이 있는데 이는 class 고유의 우선순위를 전역 우선순위로 바꾸어 스케쥴링 하는 것을 의미합니다. Reference에 solaris scheduling을 잘 정리한 그림이 있어 소개해드립니다.

 

 

오늘은 Windows와 Solaris의 스케쥴링에 대해 알아보았습니다. 기본적으로 대부분 OS가 선점과 우선순위 스케쥴링을 사용하고 있어 base를 이해하는데는 크게 어려움이 없으실 것이라 생각합니다. 물론 구체적인 policy나 API까지 파고든다면 복잡해지겠지만요. 질문은 언제든지 환영이니 댓글 남겨주시면 감사하겠습니다.(물론 제가 잘 답변할 수 있을지는 모르겠지만요.)

반응형

'학부공부 > OS_운영체제' 카테고리의 다른 글

27. Thread(2)  (17) 2021.12.10
26. Thread(1)  (4) 2021.12.08
24. CPU Scheduling(4)  (0) 2021.12.07
23. CPU Scheduling(3)  (0) 2021.12.06
22. CPU Scheduling(2)  (0) 2021.12.01

댓글