본문 바로가기
운영체제

CPU Scheduling

by 정구지개발자 2024. 1. 17.
728x90

CPU 스케쥴링이란?

운영체제가 프로세스에 합리적으로 CPU 자원을 할당하는 작업.

 

  • 선점형 스케줄링 : 어떤 프로세스가 CPU를 할당받아 실행중이더라도 운영체제가 CPU를 빼앗을 수 있는 스케줄링 방식-->장점 : 프로세스들에 골고루 자원을 배분할수 있다. 단점: 문맥 교환과정에서 오버헤드 발생                                 예 )  round robin, SRT, 선점 우선 순위 등의 알고리즘이 있다.
  • 비선점형 스케줄링 : 어떤 프로세스가 CPU를 점유하면 다른 프로세스가 이를 빼앗을 수 없는 스케줄링 방식               -->장점: 문맥 교환과정이 적어 오버헤드 발생 적다 단점: 모든 프로세스가 골고루 자원을 사용할 수 없다.                 예 ) FCFS(first come first service), SJF(shortest job first), 우선 순위, HRN(heighest response next)등이 있다.

 

CPU 스케줄러는 프로세스들이 다음과 같은 상황에 있을 때 스케줄링을 결정한다. 

  1. 실행(running) 상태에서 대기(waiting) 상태로 전환(switching)될 때 ( ex : I/O 발생 )
  2. 실행(running) 상태에서 준비(ready) 상태로 전환(switching)될 때 ( ex : intterupt 발생 )
  3. 대기(waiting) 상태에서 준비(ready) 상태로 전환(switching)될 때 ( ex : I/O 완료 시 )
  4. 종료(Terminated)될 때

1번과 4번 상황에서만 스케줄링이 발생하는 것을 비선점형(non-preemptive) 스케줄링이라고 한다. 

이외의 모든 스케줄링은 선점형(preemptive) 스케줄링이라고 한다. 

 

728x90

댓글