오늘 포스트에서 구현해 볼 것은 Priority Scheduling 이다. 현재 PINTOS의 Scheduling은 라운드 로빈 방식으로 구현되어 있다.
이를 우선순위 방식으로 고려해서 스케줄링 되게 수정하는 것이 목표이다. 쉽게 말해, ready_list에 새로 추가된 thread의 Priority가 현재 CPU를 점유 중인 thread의 priority 보다 높으면, 기존 CPU를 끌어 내리고 자신이 CPU를 점유하게 구현하라는 것이다. thread의 priority를 체크해 주어야 할 순간은 크게 두 부분으로 나뉜다.
첫 번쨰는 ready_list에 thread가 들어가서 현재 CPU에 있는 thread의 priority와 비교를 해주는 경우. 두번째는 현재 CPU를 점유하고 있는 thread의 priority가 변해서 ready_list에 있는 priority와 비교를 해주어야 하는 경우이다.
우선 첫 번째 경우부터 체크를 해보자. ready_list로 thread를 들어가게...
#
os
#
pintos
#
운영체제
#
운체
#
핀토스