Scheduling
운영체제에서 프로세스 또는 스레드에 CPU 자원을 할당하는 과정
Scheduling 방식
선점형 스케줄링 (Preemptive Scheduling)
- 정의 실행 중인 프로세스를 강제로 중단하고 다른 프로세스에 CPU를 할당
- 장점: 빠른 응답성, 효율적인 CPU 활용
- 단점: 높은 컨텍스트 스위칭 오버헤드, 우선 순위 역전 문제
- Round Robin, SRTF
비선점형 스케줄링 (Non-Preemptive Scheduling)
- 정의: 현재 프로세스가 자발적으로 종료될 때까지 CPU를 점유
- 장점: 구현 간단, 오버헤드 적음
- 단점: 긴 프로세스 대기 문제, 응답성 저하
- FCFS, SJF
FCFS (First-Come, First-Served)
- Non-Preemptive
- 프로세스가 도착한 순서대로 CPU를 할당
<장점>
- 구현 쉬움
<convoy effect 문제점>
긴 프로세스가 짧은 프로세스들이 먼저 처리되도록 허용될때보다 cpu 이용률이 현저하게 떨어짐
SJF (Shortest Job First)
- Non-Preemptive
- 실행 시간이 가장 짧은 프로세스에 CPU를 할당
SRTF(Shortest Remaining Time First)
- Preemptive
- 현재 실행 중인 프로세스의 남은 실행 시간이 가장 짧은 프로세스에게 CPU를 할당
<둘의 문제점>
starvation 기아 or infinite blocking 무한 봉쇄 : 낮은 우선순위 프로세스들이 cpu를 무한히 대기함
<해결>
aging 노화 : 오랫동안 시스템에서 대기하는 프로세스들의 우선순위를 점진적으로 증가시킴
<그러나>
brust time 예측불가 그러므로 os에서 안쓰임
RR (Round Robin)
각 프로세스에 시간 할당량(퀀텀)을 주고, 할당량이 다 되면 다음 프로세스로 전환
<문제>
시간 할당량이 너무 크면 fcfs처럼 된다.
너무 작으면 context switch가 자꾸 발생
<해결>
시간할당량을 cpu brust 구간의 80%를 주자
'OS' 카테고리의 다른 글
Deadlock (1) | 2024.10.28 |
---|---|
Process 동기화 (0) | 2024.10.27 |
Process, Thread (0) | 2024.10.26 |
Multi Programmed System : Dual- Mode, protection 기법 (0) | 2024.10.26 |
저장 구조 및 입출력 (3) | 2024.10.26 |