본문 바로가기

운영체제

[운영체제 이론] 프로세스 스케줄링

1. 프로세스 스케줄링(Process Scheduling) 개념

프로세스 스케줄링이란 운영체제 내에서 CPU 사용권을 여러 개의 프로세스 중 어떤 프로세스에게 넘겨줄 것인지를 결정하는 작업을 말한다.

준비(Ready)상태의 프로세스를 준비 상태 큐에 보관하다가 CPU가 사용가능해지면 프로세스 스케줄링 알고리즘을 통해 선정된 프로세스에게

CPU 사용권을 넘겨준다.


2. 프로세스 스케줄링의 목적

무기한 대기 방지

처리량 증대

응답시간 최소화

공정한 스케줄링

...


3. 프로세스 스케줄링 알고리즘

선점 스케줄링

한 프로세스가 CPU를 사용하고 있을 때 다른 프로세스가 현재 실행중인 프로세스를 중지시키고 자신이 CPU 사용권 선점 가능한 스케줄링 기법

실시간, 대화식 시분할 시스템에서 적절하다.

종류 : 라운드 로빈(RR, Round Robin), SRT(Shortest Remaining Time), MLQ(Multi Level Queue), MFQ(Muti-Level Feedback Queue)


비선점 스케줄링

한 프로세스가 CPU를 사용하고 있을 때 다른 프로세스가 현재 실행중인 프로세스를 중지시킬 수 없는 스케줄링 기법

공정한 스케줄링 방식, 응답시간 예측 가능

종류 : FIFO(First-In First-Out), SJF(Shortest Job First), HRN(Highest Response-ratio Time)


각 알고리즘에 대한 설명은 다음 포스팅에서 자세히 설명