OS
CPU Scheduler
kiki1875
2023. 4. 3. 19:21
Context Switching
Context Switching 이란 CPU를 할당 받고 있던 프로세스 하나를 멈추고 다른 프로세스를 시작하는 것이다.
Context Switching 은 다음 상황에서 발생한다
- Priority Inversion(Process Scheduling)
- Interrupt
- Multitasking
Context Switching 이 일어날때, HW register들은 나중에 복구를 위해 모두 저장된다
Scheduler 종류
Long-Term(Job Scheduler)
- Job들 중 하나를 골라 memory에 load
- Process가 CPU를 떠날때만 실행된다
- Executes Infrequently
- 요즘 컴퓨터는 잘 쓰지 않음
Medium-Term
- 시분할 시스템에선 long-term scheduler의 역할도 한다
- 일시적으로 메모리에서 process를 바꾼다
- Process 를 suspend & resume 할 수 있다
- 목표는 처리율의 균형
Short-Term (CPU-scheduler)
- 자주 실행
- Runs Whenever
- Process 실행
- Running - > Blocked
- Interrupt Occurs
- Ready Process 를 실행/ 자원 할당
- 목표
- 응답시간 최소화
- 평균응답시간 오차 최소
- 처리율 최대화
- Tradeoff - 하나를 개선하면 하나가 나빠짐