CPU 스케줄링
: 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것
우선순위
: 운영체제는 각 프로세스의 PCB에 우선순위를 명시하고, 우선순위를 기준으로 처리함
스케줄링 큐
: 효율적인 스케줄링을 위해 사용
[1] 스케줄링 큐가 반영된 프로세스 상태 다이어그램
준비 큐 : CPU를 이용하고 싶은 프로세스들이 서는 줄
대기 큐 : 입출력장치를 이용하기 위해 대기 상태에 접어든 프로세스들이 서는 줄
[2] 대기 큐
<aside> ❕
자료구조 관점에서는 선입선출이지만 스케줄링의 큐가 반드시 선입선출일 필요는 없음
</aside>
선점형
: 운영체제가 프로세스로부터 자원을 강제로 빼앗아 다른 프로세스에게 할당할 수 있음
비선점형
: 하나의 프로세스가 자원 사용을 독점할 수 있음<aside> 👀
용어가 아닌 아이디어에 집중해서 학습
</aside>
이름 | 분류 | 내용 | 부작용 |
---|---|---|---|
선입 선처리(FCFS) | 비선점형 | CPU를 먼저 요청한 프로세스부터 CPU를 할당 | 호위 효과 |
최단 작업 우선(SJF) | 비선점형 | CPU 사용 시간이 짧은 것부터 실행 | 기아 현상 |
라운드로빈(RR) | 선점형 | 선입 선처리에 ‘타임 슬라이스’ 개념 추가 | 문맥 교환 비용 |
최소 잔여 시간 우선(SRT) | 선점형 | (잔여 시간의) 최단 작업 우선 + 라운드 로빈 | 기아 현상 |
우선순위 | - | 우선순위 부여하여, 우선순위 순서대로 처리 | 기아 현상 → 에이징 |
다단계 큐 | - | 우선순위별로 준비 큐를 여러 개 사용 |