본문 바로가기

잡다한 IT/운영체제

스케줄링 고려할 점

스케줄링 고려할 점 


1. 어떤 task 를 ready queue( run queue) 에서 선택할 것인가?


일반 task : CFS( completely fair scheduler) 를 이용


실시가 task : FIFO , RR, DEADLINE 정책을 사용



2. CPU의 각 run queue 의 부하가 균등하지 않은 경우에는?


부하 균등( load balancing ) 기법을 활용한다. load_balance() 함수에서는 특정 CPU가 매우 바쁘고 다른 CPU들은 idle 하다면 다른 CPU로 task를 이주시켜서 전반적인 성능 향상을 시도한다.


이때 특정 task 를 이주하기로 결정했다면, 문제는 '어느 CPU' 로 이주시킬 것인지 결정하는 것이다.

이때는 task 이주로 인한 성능 저하를 최소화 시킬 수 있는 방향으로 task 를 이주시켜야 한다.


hyper-threading 으로 인해 논리적으로 존재하는 다른 CPU에 이주하는 방법,

하지만 그 CPU도 부하가 높다면 같은 캐시를 공유하는 CPU에 이주시키는 방법등으로 성능 저하를 최소화 시켜야 한다.

반응형

'잡다한 IT > 운영체제' 카테고리의 다른 글

MMU 와 MPU 의 차이점  (0) 2018.07.11
물리 메모리 관리  (0) 2018.05.04
fork , vfork , clone  (0) 2018.05.02
set-associative cache  (0) 2018.04.24
디바이스 드라이버와 디바이스 컨트롤러 차이  (0) 2018.04.21