본문 바로가기

CS(ComputerScience)/OSTEP

스케줄링 : 비례 배분

728x90

스케줄링 : 비례 배분

Proportional Share

Fair Share

 

반환시간과 응답시간을 최적화하는 대신 스케줄러가 각 작업에게 CPU의 일정 비율을 보장하는 것이 목적

 

❓CPU의 일정 비율을 왜 보장해줘야 할까?

CPU의 일관된 성능, 일관된 응답성을 보장하는데 도움이 되기 때문이다.

 

 

반환시간 : 프로세스가 시작해서 끝날때가지 걸리는 시간

응답시간 : 요청 후 응답이 오기 시작할때까지의 시간


📌  배운 것

 

추첨 기법

lottery scheduling

추첨권 = 프로세스 지분

예를 들어, 총 100장의 추천권이 있다고 하자.

A : 0~74까지의 티켓(75%)

B : 75~99까지의 티켓(25%)

0~99 범위 내에서 20개의 난수를 발생시켰다.

스케줄링 결과는 B가 20% (4/20), A가 80% (16/20) 타임 슬라이스를 획득했다.

 

장점 : 구현이 단순하다. 프로세스 상태 정보만 필요하므로 관리해야 할 상태 정보가 거의 없다. 

단점 : 원하는 비율을 정확히 보장하지 않는다. 

하지만, 두 작업의 시간이 길어질수록 결국 추첨권의 지분의 비율로 수렴하게 될 것이다.

즉, 작업의 시간이 길어져야 원하는 비율을 달성할 가능성이 높아지는 것이다.

 

추첨권 양도 & 팽창 하므로써 서버 성능을 극대화 할 수도 있다.

 

정확한 비율을 보장하지 않은 문제를 해결하기 위해 보폭 스케줄링이 고안되었다.


보폭 스케줄링

stride scheduling

 

보폭 : 자신이 가지고 있는 추첨권 수의 반비례하는 값

예를 들어

A : 100 추첨권

B : 50 추첨권

C : 250 추첨권

 

1000을 각 추첨권으로 나누면

A : 100(1000/100) 보폭

B : 200(1000/50) 보폭

C : 40(1000/250) 보폭

가장 작은 보폭을 가진 프로세스를 선정해 실행시킴

A,B,C가 다 도달한 뒤에 가장 작은 보폭을 선정해 그 프로세스를 실행 시킴

장점 : 공정성을 보장할 수 있다.

단점 : CPU 사용 현황, pass값을 유지하고 갱신해야 하므로 관리해야 할 상태 정보가 많다. 만약 새로운 작업의 pass값이 0이라면 CPU가 독점되어 확장성이 나쁘다.

 


둘다 개념적으로 흥미롭지만, 여러 이유로 CPU 스케줄러로서 널리 사용되고 있지 않다.

 


📌 회고

글을 잘쓰고 배운것을 잘 설명하는것도 개발자의 능력이라고 한다.

나는 오늘 배운걸 누군가가 이해할 수 있도록 설명할 수 있을까?

나도 100% 이해하지 못한 내용을 누군가에서 설명하기란, 어렵다.

앞으로 공부할 때, 이부분을 유의해야겠다.

개발자가 무슨일을 하고 나는 왜 CS공부를 하는것인지! 더욱 깊게 생각해보고 공부하는 습관을 다져야 겠다!!

 

📌 개선 방향

책 내용을 있는 그대로 옮겨 쓰는 형식을 버리고 초등학생에게 설명하듯이 글을 쓰며 공부해야겠다.

내가 이해한 그대로 글을 쓰는것이 좋을 것같다.

이 내용이 맞나? 싶은건 더 찾아보고 물어보면서 공부하는 게 좋을 것 같다.

 

📌 참고 문서

운영체제 : 아주 쉬운 세 가지 이야기

'CS(ComputerScience) > OSTEP' 카테고리의 다른 글

주소 공간의 개념, VM  (0) 2023.09.19
멀티프로세서 스케줄링  (0) 2023.09.05
스케줄링: 멀티 레벨 피드백 큐  (0) 2023.08.22
스케줄링: 개요  (0) 2023.08.22
제한적 직접 실행 원리  (0) 2023.08.08