Types of Process scheduling
프로세스 스케줄링은 4종류로 나눌 수 있습니다.
- Long-term scheduling (job scheduler)
- 어떤 프로그램이 실행하기 위해 시스템에 들어갈지 결정하는 스케줄링
- Medium-term scheduling (swapper)
- 메인메모리로 어떤 프로세스를 추가할지 결정하는 스케줄링
- Short-term scheduling (CPU scheduler)
- 실행할 프로세스를 결정하는 스케줄링
- I/O scheduling
- 어떤 I/O 리퀘스트를 처리할지 결정하는 스케줄링
- Long-term scheduling이 가장 먼저 실행됩니다.
- Long-term scheduling이 Ready Queue에 올릴 프로그램을 정합니다.
- Ready Queue에 있는 프로세스들 중에서 어떤 프로세스를 실행할지 Short-term scheduling으로 정합니다.
- Medium-term scheduling은 Multiprogramming의 정도를 결정합니다.
Selection Function
Ready 상태에 있는 프로세스 중에서 다음에 실행할 프로세스를 결정하는 함수
여기서는 Multi process가 아닌 Uni process 환경이라고 가정합니다.
- w : 시스템에서 지금까지 사용한 시간
- e : 지금까지 실행에 소요된 시간
- s : 프로세스를 실행하는데 요구되는 서비스 시간 (e를 포함합니다.)
Desicion Mode
Selection Function에는 두가지 Desicion Mode가 있습니다.
Selection Function이 실행되는 순간을 정합니다.
- Nonpreemptive 비선점형
- 프로세스가 running상태에 있으면 종료되거나, I/O를 기다리거나 일부 운영체제 서비스를 요청하기 위해 자체적으로 차단할 때까지 계속 실행됩니다.
- = 특별한 일이 없다면 끝까지 실행합니다.
- Preemptive 선점형
- 현재 실행중인 프로세스가 운영체제에 의해 중단되고 준비 상태로 이동할 수 있습니다.
- 선점은 새로운 프로세스가 도착할 때 수행될 수 있습니다.
- 차단된 프로세스를 Ready 상태로 만드는 인터럽트가 발생할 때, 또는 주기적으로 클럭 인터럽트가 발생할 때 수행될 수 있습니다.
- process switch가 빈번할 수 있습니다.
FIFO (First In, First Out) = FCFS (First Come, First Served)
현재 프로세스의 실행이 중단되면 Ready Queue에서 가장 최근의 프로세스가 선택됩니다.
- Selection Function : Max[w]
- 시스템에서 가장 오래 머물러 있던 프로세스를 선택하는 함수를 사용합니다.
- Decision Mode: Non-preemption 비선점
- 장점
- 가장 간단한 스케줄링 입니다.
- 단점
- 짧은 프로세스보다 긴 프로세스 수행에 더 좋습니다. = pair하지 않습니다.
- convoy effect가 있을 수 있습니다.
- convoy effect 란 소요시간이 긴 프로세스가 먼저 도달하여 시간을 잡아먹고 있는 부정적인 현상을 의미합니다.
Shortest-Process-Next (SPN) = SJF (Shortest-Job-First)
예상되는 processing 시간이 가장 짧은 프로세스를 다음에 선택하는 비선점 스케줄링입니다.
FCFS에서 긴 프로세스를 선호하는 편향을 줄이기 위해 고안되었습니다.
- Selection Function : min[s]
- 프로세스의 서비스 시간이 가장 짧은 프로세스를 선택합니다.
- Decision Mode: Non-preemption 비선점
- 장점
- turnaround time 측면에서도 전반적인 성능이 향상되었습니다.
- 단점
- 짧은 프로세스들이 계속 있다면 긴 프로세스들의 starvation 이 발생할 수 있습니다.
- 각 프로세스들의 서비스 시간을 알아야만 실행할 수 있어서 구현이 어렵습니다.
뿌끄럽습니다
Round-Robin = Time Slicing
인터럽트가 발생하면 실행중인 프로세스는 Ready queue에 배치되고 다음 프로세스가 FCFS 기준으로 선택됩니다.
Timer 기반으로 time quantum (=time slice)를 사용하는데 이 때 이 길이를 정하는 것이 제일 중요합니다.
why?
이 길이가 매우 짧으면 SPN과 비슷해지고, 매우 길면 FCFS와 비슷해지기 때문입니다.
- Selection Function :constant
- Decision Mode: preemption 선점
- 장점
- FCFS 에서의 short job 패널티를 줄일 수 있습니다.
- 단점
- time slice가 너무 짧을 때 context switch의 오버헤드가 많이 일어날 수 있습니다.
Shortest-Remaining-Time (SRT)
remaining time이 가장 짧은 프로세스를 선택합니다.
- Selection Function : min[s-e]
- 서비스 시간에서 현재까지 실행된 시간을 뺀 값 중 제일 작은 값을 선택합니다.
- Decision Mode: preemption 선점
- 장점
- SPN보다 turnaround time 성능이 향상되었습니다.
- 단점
- overhead가 클 수 있습니다.
- Why? switching이 일어날 때마다 remaining time을 계산해야 하기 때문입니다.
- 계속 shorterm process가 들어올 때 여전히 starvation이 발생할 수 있습니다.
Highest-Response-Ratio-Next (HRRN)
응답 비율이 가장 큰 프로세스를 선택합니다.
- Response ratio: 정규화된 turnaround time
- R = (q + s) / s
- Selection Function : max[(q + s) / s]
- Decision Mode: non-preemption 비선점
- 장점
- starvation을 없앨 수 있습니다.
- why? 긴 프로세스들이 오래 있을 수록 짧은 프로세스와 경쟁하기 때문입니다.
- 단점
- 마찬가지로 서비스 시간을 예상해야합니다.
'CS > OS' 카테고리의 다른 글
Thread (2) | 2021.05.17 |
---|---|
Process Scheduling 2 (미완) (5) | 2021.05.10 |
Operating System Overview (4) | 2021.04.12 |
Computer System Overview 2 (미완) (0) | 2021.03.11 |
Computer System Overview 1 (4) | 2021.03.11 |