10 April 2024

CPU 스케쥴링

by 꽈배기

CPU 스케쥴링

운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 과정을 CPU 스케쥴링이라 한다.

프로세스마다 우선순위를 따름으로 우선적으로 처리해야 할 프로세스가 있는데 크게 입출력 작업이 많은 프로세스와 CPU 작업이 많은 프로세스로 나뉜다.

우선순위

IO 프로세스의 경우 실행 후 대기 상태에 접어들기에 이후 CPU 프로세스에 자원을 집중적으로 할당해줄 수 있다. 그렇기에 IO 프로세스의 작업 우선순위가 더 높다.

프로세스 우선순위

우선순위는 프로세스의 PCB에 저장된다. 우선순위가 높은 프로세스는 더 빨리 더 많은 실행 권한을 가진다


스케쥴링 큐

image

각각의 프로세스들이 사용하고자 하는 장치가 다를 것이다 (ram, 하드디스크, cpu, I/O) 그럴때 프로세스들의 우선순위를 조율하는것이 스케쥴링 큐인데, 이 스케쥴링 큐는 비슷한 장치를 이용하려는 프로세스들을 모아 관리하고 우선순위를 정해준다 (스케쥴링 큐가 반드시 선입선출 방식일 필요는 없다 SJF)


image

준비 큐
준비 상태인 프로세스를 저장하는 큐 대기 큐
IO 장치 대기 상태인 프로세스를 저장하는 큐 (I/O 인터럽트) 입출력 완료 인터럽트를 받으면 준비 상태로 진입한다


프로세스 다이어그램

image

선점형 비선점형 스케쥴링

선점형 스케쥴링 : 현재 CPU 사용중인 프로세스의 자원을 다른 프로세스에 할당

비선점형 스케쥴링 : 현재 CPU 사용중 프로세스의 작업이 종료되기까지 대기



스케쥴링 알고리즘

FCFS 선입선처리 스케쥴링

SJF 최단작업우선 스케쥴링

RR 라운드로빈 스케쥴링

SRT 최소 잔여시간 우선 스케쥴링

우선순위 스케쥴링

Starvation 기아상태

우선순위가 낮은 프로세스가 CPU의 자원을 할당받지 못하고 대기하는 상태이다.

에이징

기아상태를 방지하기 위한 대표적인 기법으로 오랫동안 대기한 프로세스의 우선순위를 점차 높이는 방식이다.


다단계 큐 스케쥴링

우선순위 스케쥴링의 발전 형태 우선순위별로 준비 큐를 여러 개 사용하는 스케쥴링 방식이다. 우선순위가 높은 큐의 프로세스를 먼저 처리하고 가장 높은 큐가 비어있다면 다음 우선순위 큐 프로세스를 처리한다. 각 큐에 따라 스케쥴링을 적용할 수 있어 프로세스 유형별로 처리하기 좋다.


다단계 피드백 큐 스케쥴링

image


tags: ComputerScience