4장 CPU 스케줄링 - 01(3) 스케줄링 목적

해당 내용은 쉽게 배우는 운영체제을 기반으로 작성되었습니다.


1. 스케줄링 개요

01(3) 스케줄링 목적

  CPU 스케줄링 본래 목적

   - 모든 프로세스가 공평하게 작업하도록
   - 특정 프로세스에 편중 X, 자원을 골구로(효율적으로) 배분 O, 공평성 유지, 안정적 작동 O -> 성능 높여야 함. 
   - 특정 프로세스가 시스템 자원을 독점/파괴하는 것을 막기 위해 중요도에 따라 우선순위를 배정해야 함. 

  CPU 스케줄링 목적

공평성 : 모든 프로세스가 자원을 공평하게 배정받아야 하며, 그 과정에서 특정 프로세스가 배제되어서는 안 된다. 
효율성 : 시스템 자원이 유후 시간 없이 사용되도록 스케줄링을 하고, 유휴 자원을 사용하려는 프로세스에는 우선권을 주어야 한다. 

*유휴 : 어떠한 프로그램에 의해서도 사용되지 않는 상태
안정성 : 우선순위를 사용하여 중요 프로세스가 먼저 작동하도록 배정함으로써 시스템 자원을 점유하거나 파괴하려는 프로세스로부터 자원을 보호해야 한다. 
확장성 :  프로세스가 증가해도 시스템이 안정적으로 작동하도록 조치해야 하며 시스템 자원이 늘어나는 경우 이 혜택이 시스템에 반영되게 해야 한다. 
반응 시간 보장 : 응답이 없는 경우 사용자는 시스템이 멈춘 것으로 가정하기 때문에 시스템은 적절한 시간 안에 프로세스의 요구에 반응해야 한다. 
무한 연기 방지 :  특정 프로세스의 작업이 무한히 연기되어서는 안 된다. 
출처 : 쉽게 배우는 운영체제

  CPU 스케줄링 현재 목적

   - 보통은 모든 프로세스가 공평하게 CPU를 할당받아야 한다.
   - 하지만, 시스템의 안전성과 효율성을 높이기 위해 다른 프로세스보다 먼저 처리해야 하는 프로세스가 있으므로 CPU 스케줄러는 일정 부분 공평성을 희생한다. 
   - 운영체제 프로세스는 일반 프로세스보다 우선적으로 CPU를 배정받는다. 
   - 일반 프로세스 간에도 우선순위에 따라 CPU 배정 순서가 달라진다.