10 April 2024
CPU 스케쥴링
by 꽈배기
CPU 스케쥴링
운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 과정을 CPU 스케쥴링이라 한다.
프로세스마다 우선순위를 따름으로 우선적으로 처리해야 할 프로세스가 있는데 크게 입출력 작업이 많은 프로세스와 CPU 작업이 많은 프로세스로 나뉜다.
우선순위
- 입출력 집중 프로세스의 > CPU 집중 프로세스
IO 프로세스의 경우 실행 후 대기 상태에 접어들기에 이후 CPU 프로세스에 자원을 집중적으로 할당해줄 수 있다. 그렇기에 IO 프로세스의 작업 우선순위가 더 높다.
프로세스 우선순위
우선순위는 프로세스의 PCB에 저장된다. 우선순위가 높은 프로세스는 더 빨리 더 많은 실행 권한을 가진다
스케쥴링 큐
각각의 프로세스들이 사용하고자 하는 장치가 다를 것이다 (ram, 하드디스크, cpu, I/O) 그럴때 프로세스들의 우선순위를 조율하는것이 스케쥴링 큐인데, 이 스케쥴링 큐는 비슷한 장치를 이용하려는 프로세스들을 모아 관리하고 우선순위를 정해준다 (스케쥴링 큐가 반드시 선입선출 방식일 필요는 없다 SJF)
- 준비 큐
- 준비 상태인 프로세스를 저장하는 큐
대기 큐
- IO 장치 대기 상태인 프로세스를 저장하는 큐 (I/O 인터럽트) 입출력 완료 인터럽트를 받으면 준비 상태로 진입한다
프로세스 다이어그램
선점형 비선점형 스케쥴링
선점형 스케쥴링 : 현재 CPU 사용중인 프로세스의 자원을 다른 프로세스에 할당
- 자원독점 방지 가능
- context switching에서 오버헤드 발생 가능
비선점형 스케쥴링 : 현재 CPU 사용중 프로세스의 작업이 종료되기까지 대기
- context switching 오버헤드가 적다
- 기아상태가 발생하기 쉽다.
스케쥴링 알고리즘
FCFS 선입선처리 스케쥴링
- 준비 큐에 삽입된 순서대로 처리하는 비선점 스케쥴링
- 먼저 CPU 요청한 프로세스부터 CPU자원 할당
- 단점: 프로세스 간 대기시간에 의해 기다리는 시간이 매우 길어질 수 있다 (호위 효과)
SJF 최단작업우선 스케쥴링
- CPU 자원 사용 시간이 가장 짧은 프로세스부터 처리하는 스케쥴링 방식
- 호위 효과를 방지하기 위해 사용
- 상대적으로 사용 시간이 긴 프로세스는 후순위로 밀린다.
RR 라운드로빈 스케쥴링
- 선입 선처리 스케쥴링 + 타임 슬라이스
- 정해진 타임 슬라이스만큼의 시간 동안 돌아가며 CPU를 이용하도록 하는 선점형 스케쥴링
- 타임 슬라이스내에 완료하지 못하면 큐의 맨 뒤로 삽입
- 타임 슬라이스의 값에 따라 호위효과, 컨텍스트 스위칭의 오버헤드가 발생할 수 있음.
SRT 최소 잔여시간 우선 스케쥴링
- 최단 작업 우선 스케쥴링 + 라운드 로빈
- 정해진 시간만큼 CPU 자원을 이용하되, 다음 프로세스로 남은 작업시간이 가장 적은 프로세스를 선택함
우선순위 스케쥴링
- 프로세스들에게 우선순위를 부여하고, 우선순위가 높은 프로세스부터 실행
- 우선순위가 같은 프로세스간 선입 선처리를 기준으로 스케쥴링
- 최단 작업 우선, 최소 잔여 시간 스케쥴링은 우선순위 스케쥴링의 일부분이다.
- 기아 현상의 발생
Starvation 기아상태
우선순위가 낮은 프로세스가 CPU의 자원을 할당받지 못하고 대기하는 상태이다.
에이징
기아상태를 방지하기 위한 대표적인 기법으로 오랫동안 대기한 프로세스의 우선순위를 점차 높이는 방식이다.
다단계 큐 스케쥴링
우선순위 스케쥴링의 발전 형태
우선순위별로 준비 큐를 여러 개 사용하는 스케쥴링 방식이다. 우선순위가 높은 큐의 프로세스를 먼저 처리하고 가장 높은 큐가 비어있다면 다음 우선순위 큐 프로세스를 처리한다. 각 큐에 따라 스케쥴링을 적용할 수 있어 프로세스 유형별로 처리하기 좋다.
- 각 큐에 따라 맞는 스케쥴링 방식을 적용 가능하다.
- 기본적으로 프로세스가 큐 간의 이동을 할 수 없으므로 기아현상이 발생할 수 있음.
다단계 피드백 큐 스케쥴링
- 다단계 큐 스케쥴링의 발전 형태
- 큐 간의 이동이 가능한 다단계 큐 스케쥴링이다.
- 정해진 타임 슬라이스만큼 CPU 자원을 이용, 프로세스 작업이 남았다면 한 단계 우선순위를 낮춰 대기큐에 적재한다.
- CPU 집중 프로세스는 우선순위가 상대적으로 낮아지고 (사용이 많으므로), IO 집중 프로세스 우선순위는 상대적으로 높아진다.
- 일정이상 우선순위가 낮아진 프로세스는 에이징 기법으로 우선순위를 복구한다.
tags: ComputerScience