- [OS] 프로세스 스케줄링
- [OS] CPU 스케줄링
서로 큰 연관관계는 없지만, 프로세스 스케줄링을 공부한 후 CPU 스케줄링도 이어서 읽으면 좋을 것 같다.
[Operating Systems] Chap 3. Process Concept
- Process Concept
- Process scheduling
- Job, Ready, Device queue
- I/O-bound, CPU-bound process
- Long, Short, Midterm scheduler
- Context Switch
- Operations on processe
- Inter-process communication
1. Job, Ready, Device queue
process 를 scheduling 하기 위한 queue 로는 system 에 있는 모든 process 들의 집합인 Job queue, 현재 메모리 내에 있으며, 준비가 되어 실행을 기다리는 process 들의 집합인 Ready queue, I/O 작업을 대기하는 process 들의 집합인 Device queue 가 있습니다.
2. I/O-bound, CPU-bound process
프로세스는 크게 word 와 같이 I/O 연산이 많은 I/O bound process 와 S/W 코덱과 같이 CPU 연산이 많은 CPU-bound 프로세스로 나눌 수 있습니다. process 의 일생주기는 CPU Birst 와 I/O Birst 가 반복되어 나타나는데, 이 때 CPU-intensive process 는 이 주기가 비교적 길고, I/O-intensive process 는 이 주기가 비교적 짧습니다.
I/O-bound process 는 실행이 짧고 빈번하게 일어남으로 보다 많은 process 들의 기다리는 시간을 줄여주기 위해 Schedulers 는 CPU-bound process 보다 I/O-bound process 에 더 높은 우선순위를 주는 경향이 있습니다.
3. Long, Short, Midterm scheduler
스케줄러의 종류에는 Long, Short, Midterm scheduler 가 있습니다.
Long-term scheduler (Job scheduler) 는 disk 와 memory 사이의 scheduling 을 담당하며, 어떤 process 를 ready queue 로 보낼지 선택하고, 매우 드물게 호출됩니다 (seconds, minutes 단위). Long-term scheduler 의 특징으로는 degree of multiprogramming, 메모리에 있는 process 의 개수 자체를 컨트롤하는 특징이 있습니다. 하지만 최근의 UNIX, Windows 의 경우 새로운 process 를 memory 에 바로 넣기 때문에 Long-term scheduler 는 대부분 존재하지 않습니다.
Short-term scheduler (CPU scheduler) 는 memory 와 CPU 사이의 scheduling 을 담당하며, ready queeu로부터 다음으로 어떤 process 가 실행되고 CPU 에 할당될지를 선택합니다. Long-term scheduler 와 다르게 매우 자주 호출됩니다 (milliseconds 단위).
Medium-term scheduler 는 memory 가 가득차서 swap out 이 필요할 때, 어떤 process 를 swap out 할 지 결정하는 역할을 합니다.
4. Context switch
Context switch 는 실행 중인 process 에서 다른 process 로 이동하는 것을 말합니다. CPU switch 를 하게 되면, system 은 실행 중이던 process 의 정보를 PCB 에 저장하고, 새로운 new process 의 정보를 PCB 로부터 받아옵니다.
Context switch 는 overhead 가 매우 큰 작업이기 때문에, 횟수를 줄이기 위한 몇가지 메커니즘들이 존재합니다. 예를 들어 ARM architecture 의 경우, Multiple store and load instructions 를 통해 PCB 에 정보를 저장하거나 가져올 때 multiple 하게 register 로 정보를 가져올 수 있도록 하여 context switch 의 overhead 를 줄이는 메커니즘을 갖고 있습니다.
참고자료
Operating System Concepts, 10th Edition
댓글