- CPU 스케줄링이 필요한 이유
- CPU bound job과 I/O bound job이 섞여있음
- RR이 적절한 스케줄링 (I/O bound job이 빠르게 나갈 수 있음)
- 효율적인 RR이 가능한 이유는 Context를 저장하고 복구할 수 있는 Context Switching이 가능하기 때문
- Multilevel Queue 컨셉
- 지금까지는 한 줄에서 기다리는 경우, multilevel queue는 여러 줄로 기다리는 경우
- 우선순위에 따라 우선순위가 높은 큐의 job을 먼저 실행
- 고민해볼 문제
- 1. 큐 내에서 어떤 프로세스에게 할당?
- 2. 우선순위 높은 큐에 무조건 할당? -> starvation
- Multilevel Queue
- Ready queue를 여러 개로 분할
- 각 큐는 독립적인 스케줄링 알고리즘을 가짐
- foreground queue
- interactive : 사람과 상호작용하는 job
- RR
- background queue
- batch : 상호작용 없는 job
- FCFS
- 큐에 대한 스케줄링
- 1. 우선순위가 높은 큐를 무조건 우선 : starvation 발생 가능
- 2. 시간 비율 : 우선순위가 높은 큐 80% / 우선순위가 낮은 큐 20% 시간 할당
- Multilevel Feedback Queue
- 우선순위가 중간에 바뀜
- 생각해볼 문제
- 1. 우선순위를 어떻게 결정할지?
- 2. 프로세스 우선순위를 높이고 낮추는 기준을 어떻게 할지?
- 일반적인 방식
- 1. 처음 들어온 프로세스는 우선순위가 높은 큐에 할당
- 2. 우선순위가 높은 큐는 짧은 time quantom을 갖는 RR
- 3. time quantom이 끝나면 우선순위가 낮은 큐로 이동
- 4. 우선순위가 낮아질수록 time quantom이 길어짐
- 5. 가장 낮은 우선순위에서는 FCFS
- -> CPU 사용 시간이 짧은 프로세스에게 높은 우선순위를 주는 방식
- Multiple-Processor Scheduling
- CPU가 여러 개인 경우의 스케줄링
- 1. 한줄서기
- CPU들이 하나의 큐에서 프로세스를 가져감
- 특정 프로세서에서 실행해야하는 경우도 고려해야함 - 2. CPU마다 줄서기
- 특정 프로세서에 일이 치우치지 않도록 관리가 필요 - 1. Symmetric Multiprocessing (SMP)
- 각 프로세서가 알아서 스케줄링 - 2. Asymmetric Multiprocessing
- 하나의 프로세서가 관리
- 시스템 데이터 접근/공유를 책임지고 나머지 프로세서는 이를 따름
- Real-time Scheduling
- Deadline이 있는 스케줄링으로, deadline을 보장해야함
- Hard real-time system : 반드시 deadline 내에 끝나야 함
- Soft read-time system : priority로 조절
- Thread Scheduling
- User level thread
- 사용자 프로세스 내에서 직접 쓰레드를 관리
- Kernel level thread
- 운영체제가 thread의 존재를 인지
- User level thread
- 스케줄링 알고리즘 성능측정
- Queueing model
- Arrival rate : queue에 도착하는 도착율
- Service rate : job을 처리하는 처리율
- Arrival rate과 service rate을 통해 값을 계산
- 수식을 사용한 이론적인 방식
- Implementation & Measurement
- 실제 시스템에 구현하여 성능 측정
- Simulation
- 모의 실험
- Queueing model
'CS > 운영체제' 카테고리의 다른 글
[운영체제] KOCW 반효경 교수님 강의 - 11. Process Synchronization 1 (0) | 2022.05.03 |
---|---|
[운영체제] KOCW 반효경 교수님 강의 - 10. CPU Scheduling 1 (0) | 2022.04.06 |
[운영체제] KOCW 반효경 교수님 강의 - 9. Process Management 2 (0) | 2022.03.30 |
[운영체제] KOCW 반효경 교수님 강의 - 8. Process Management 1 (0) | 2022.03.30 |
[운영체제] KOCW 반효경 교수님 강의 - 7. Process 3 (0) | 2022.03.30 |