스케줄링 : 비례 배분
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 |