오늘은 이전 글에 이어서 스케줄링 알고리즘 중 SPN, SRTF에 대해서 알아봅시다. 이전 글을 보고 오시지 않았다면 읽고 오시는 것을 추천드립니다!
2023.12.10 - [Computer Science/운영체제] - [운영체제] 스케줄링 알고리즘
Shortest Process Next(SPN)
프로세스가 ready의 프로세스 목록 중 service Time이 가장 짧은 것부터 실행하는 방법을 의미합니다. 이전 글의 예시와 같이 진행해봅시다. 아래와 같은 루틴을 갖게 될 것입니다.
9초까지는 동일하지만, SPN은 9초에서 다르게 작동합니다. 9초에 B의 작업을 모두 마치고 스케줄링 과정을 진행해야합니다. 현재 메모리에는 C, D, E가 로드되어 있고 우리는 이 중에서 어떤 것을 실행할 지 정해야합니다.
C, D, E는 각각 service Time이 4, 5, 2이므로 service Time이 가장 짧은 E를 우선 실행하고 그 다음 C, D 순서로 실행할 것입니다.
waiting TIme을 계산해봅시다. preemptive하지 않으므로 waiting TIme과 response Time은 동일합니다.
A = 0, B = 1, C = 7, D = 9, E = 1이므로 (0+1+7+9+1)/5 = 3.6입니다.
꽤나 좋은 성능을 보이는 것 같습니다. 하지만 프로세스의 service Time을 계산하는 것은 가능하지만 범용 컴퓨터에서 쓰이기 위해서는 너무 많은 cost가 필요합니다. 따라서 특수 컴퓨터에서는 쓰이지만 우리가 쓰는 일반적인 컴퓨터는 해당 방식을 이용하기가 힘듭니다.
Shortest Remaining Time First(SRTF)
SRTF는 preemptive 성질을 가지면서 SPN 기법을 이용합니다. 즉, clock Interrupt가 발생할 때마다 ready 상태에 있는 프로세스들의 remain service Time을 계산하여 다음 프로세스를 선택하게 되는 것입니다.
2초에 프로세스 B가 도착합니다. 프로세스 B의 remain service Time은 6이고, A의 remain Service Time은 1이므로 A를 실행해줍니다.
3초에 남아있는 프로세스는 B뿐이므로 프로세스 B를 실행해줍니다.
4초에는 프로세스 C가 도착합니다. B의 service remain Time은 5이고, C의 service remain Time은 4이므로 C를 선택하게 됩니다.
그렇다면 response time을 계산해볼까요?
A = 0, B = 1, C = 0, D = 9, E = 0이므로 (0+1+0+9+0)/5 = 2입니다.
또한 waiting time도 계산해보겠습니다.
A = 0, B = 7, C = 0, D = 9, E = 0이므로 (0+7+0+9+0)/5 = 2.8입니다.
지금까지 스케줄링 방법 중 SPN, SRTF에 대해서 알아봤습니다. 감사합니다.
'CS > OS' 카테고리의 다른 글
[운영체제] 스케줄링 알고리즘 : Priority, FCFS, RR (1) | 2023.12.10 |
---|---|
[운영체제] 프로세스 스케줄링 (0) | 2023.12.10 |
[운영체제] Trashing (0) | 2023.12.09 |
[운영체제] 페이지 교체 (0) | 2023.12.09 |
[운영체제] TLB(Translation Lookaside Buffer) (1) | 2023.12.09 |