728x90
CPU 스케줄링
목적
- 공평성
- 효율성
- 확장성
- 사용자의 반응시간 보장
- 무한연기(기아현상) 방지
CPU burst : 프로세스가 CPU를 쓰는 시간
I/O burst : 프로세스가 I/O 작업을 하는 시간
> 대부분 프로세스가 IO bound Process이다!
선점형 vs 비선점형
- 선점형 : 하나의 프로세스가 실행 중일 때 다른 프로세스가 CPU를 선점할(빼앗을) 수 있는 경우
- 비선점형 : 하나의 프로세스사 실행 중일 때 다른 프로세스는 대기해야 하는 경우
디스패처(Dispatcher)
: Ready 상태의 프로세스를 Running 상태로 상태전이 시키는 것을 dispatch라고 하는데, 해당 역할을 진행하는 것을 Dispatcher라고 함
스케줄러와 디스패처 차이
- 스케줄러 : CPU가 해야할 일을 계획하는 일 진행
- 디스패처 : CPU를 프로세스에 할당하는 일 진행
> 보통 CPU의 스케줄러는 포괄적 의미로 둘 다 포함함!
Dispatcher latency
- 디스패처가 하나의 프로세스를 멈추고 다른 프로세스에게 CPU의 제어권을 넘기는데 걸리는 시간
- Context switch 되는 시간, 하나의 프로세스사 멈추고 다른 프로세스가 런 되기까지의 시간
- CPU가 노는 시간
스케줄링 기준
- CPU Utilization(CPU 이용률)
- Throughput(처리량)
- Turnaround Time(처리시간)
- Waiting Time(대기시간)
- Response Time(응답시간)
스케줄링 종류
- FCFS
- FIFO
- 사실상 스케줄링 하지 않은 것
- SJF/SRTF
- 가장 이상적인 방법(처리시간/대기시간 기준으로는 최고지만, 응답시간을 따졌을 때 애매)
- 일이 언제 끝날지 예측 한다는 건데 불가능, 그래서 잘 사용 안함
- 기아 문제 발생
- RR
- 시분할
- 타임퀀텀
- Priority-based
- 우선순위
- 기아 문제 발생
- 에이징 기법을 통해 대기 시간이 오래되면 우선순위를 높여주는 방법으로 기아문제 해결
- MLQ
- 작업별로 우선순위 큐가 다름
- 기아 문제 발생, 큐가 서로에게 있어서 독립적이기 때문
- 에이징 기법 사용 불가능
- MLFQ
- MLQ의 단점 보완
- 타임퀀텀으로 우선순위 큐가 다름
- 실행 시간을 몰라도 SJF와 비슷한 효과를 낼 수 있음
- 큐가 독립적이지 않음
- 설계/구현이 어려움
728x90
반응형