운영체제 스케줄링
운영체제 스케줄링은 여러 프로세스에 자원을 어떤 순서로 배분할지 정하는 기법이다. CPU 스케줄링은 준비 큐에서 다음에 CPU를 받을 프로세스를 고르는 것이다. 디스크 스케줄링은 I/O 요청의 처리 순서를 정해 탐색 시간과 회전 지연을 줄인다. CPU 스케줄링은 선점…
주요 장면
대본
정의
운영체제 스케줄링은 여러 프로세스에 자원을 어떤 순서로 배분할지 정하는 기법이다.
CPU 스케줄링은 준비 큐에서 다음에 CPU를 받을 프로세스를 고르는 것이다.
디스크 스케줄링은 I/O 요청의 처리 순서를 정해 탐색 시간과 회전 지연을 줄인다.
선점과 비선점
CPU 스케줄링은 선점 여부에 따라 두 방식으로 나뉜다.
비선점은 CPU를 쥔 프로세스가 완료하거나 I/O를 요청할 때까지 빼앗지 않는다.
선점은 우선순위가 높거나 더 짧은 프로세스가 도착하면 CPU를 회수한다.
선점형은 타이머 인터럽트가 필요하고 문맥 전환 오버헤드가 생긴다.
CPU 기법 비교
CPU 스케줄링 알고리즘은 선점 여부와 선택 기준으로 비교한다.
SJF는 예상 CPU 버스트가 가장 짧은 작업을 고르는 비선점 기법이다.
SRT는 남은 실행 시간이 가장 짧은 작업을 고르는 선점 기법이다.
HRN은 응답비율이 최대인 작업을 고르며 기아를 완화한다.
HRN 응답비율
HRN은 응답비율 R이 가장 큰 프로세스를 고르는 기법이다.
R은 대기 시간 W와 예상 실행 시간 S를 써서 R = (W+S)/S로 구한다.
대기 시간이 길어질수록 R이 커져 긴 대기 작업도 선택된다.
예를 들어 W=2, S=4이면 R은 1.5가 된다.
MLQ와 MLFQ
MLQ와 MLFQ는 준비 큐를 여러 단계로 나눈다는 점이 같다.
차이는 프로세스가 큐 사이를 이동할 수 있는지에 있다.
MLQ는 프로세스 성격으로 큐를 고정 배정하므로 큐 사이를 이동하지 않는다.
MLFQ는 CPU를 많이 쓰면 강등, 오래 기다리면 승격시킨다.
핵심 정리
정리하면 CPU 스케줄링은 선점 여부와 선택 기준으로 비교한다.
SJF와 SRT는 기아가 생길 수 있고, HRN은 대기 시간으로 이를 완화한다.
디스크에서는 SSTF가 탐색 시간을, SLTF가 회전 지연을 줄인다.