CS 스터디/운영체제

[스케쥴링] 1. 스케쥴링

doobi 2023. 7. 28. 23:50

스케쥴링(Scheduling)

스케쥴링은 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업을 의미한다. 

 

스케쥴링의 목적

  • 공정성
  • 처리율 증가
  • CPU이용률 증가
  • 우선순위 제도
  • 오버헤드 최소화
  • 응답 시간 최소화
  • 반환 시간 최소화
  • 대기 시간 최소화
  • 균형 있는 자원의 사용
  • 무한 연기 회피

선점 스케쥴링(Preemptive)

 

선점 스케쥴링은 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선 순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케쥴링 기법

  •  우선순위가 높은 프로세스를 빠르게 처리할 수 있다. 
  • 주로 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 사용된다.  
  • RR, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등

 

비선점 스케쥴링(Non-Preemptive)

비선점 스케쥴링은 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케쥴링 기법

  • 프로세스가 CPU를 할당 받으면 해당 프로세스가 완료될 때까지 CPU를 사용한다. 
  • 프로세스 응답 시간의 예측에 용이하다.
  • 일괄 처리 방식에 적합하다. 
  • FCFS, SJF, 우선순위, HRN, 기한부 등