CS/OS

5. 프로세스 스케줄링 (3)

🥭맹2 2021. 5. 10. 21:58

현 포스팅에서는 3, 4, 5인 SPN, SRTN, HRRN을 다룹니다

강의 링크 : www.youtube.com/watch?v=keY9Wi7scEs

Basic Scheduling algorithms

  1. FCFS (First-Come-First-Service)
  2. RR (Round-Robin)
  3. SPN (Shortest-Process-Next)
  4. SRTN (Shortest Remaining Time Next)
  5. HRRN (High-Response-Ratio-Next)
  6. MLQ (Multi-level Queue)
  7. MFQ (Multi-level Feedback Queue)

3. SPN

Shortest-Process-Next

  • ex 소량 계산대
  • 실행 시간 (burst time)이 가장 작은 프로세스를 먼저 처리
  • FCFS의 문제점 : ready-queue 도착 기준으로 프로세서를 할당하기 때문에 뒤에 존재하는 프로세스의 burst time(실행 시간)이 짧더라도, 앞의 프로세스가 끝날 때까지 기다려야함.
  • Non-preemptive scheduling : 한 번 할당 받으면 한 번에 끝냄
  • 스케줄링 기준(Criteria)
    • 실행시간 (burst time 기준)
    • burst time이 가장 작은 프로세스를 먼저 처리
      • SJF(Shortest Job First) scheduling
  • 장점
    • 평균 대기시간(WT) 최소화
    • 시스템 내 프로세스 수 최소화 : 짧은 거 먼저 빨리 끝내니까
      • 스케줄링 부하 감소 : 짧은 거 먼저 빨리 끝내니까
      • 메모리 절약 : 짧은 거 먼저 빨리 끝내니까
      • 스케줄링 부하 감소, 메모리 절약이 되므로 - > 시스템 효율이 향상됨
    • 많은 프로세스들에게 빠른 응답 시간을 제공해줌
  • 단점
    • Starvation (무한 대기) 현상 발생
      • BT가 긴 프로세스는 자원을 할당 받지 못할 수 있음
    • 정확한 실행시간을 알 수 없음
      • BT를 기준으로 할당 기준을 정하는데, 각 프로세스의 정확한 BT를 아는 것이 불가능하므로, 실행 시간 예측 기법이 필요

P2는 starvation이 발생했다. (BT가 길기 때문)

P2에 기아현상(starvation) 발생

4. SRTN

Shortest Remaining Time Next

  • 남은 시간을 기준으로 프로세서 할당
  • SPN을 변형 한 것
  • Preemptive scheduling
    • 잔여 실행 시간이 더 적은 프로세스가 ready 상태가 되면 선점됨
  • 장점
    • SPN의 장점 극대화
      • SPN의 장점
        1. 평균 대기 시간 최소화
        2. 시스템 내 프로세스 수 최소화
  • 단점
    • 프로세스 생성 시, 총 실행시간(Burst time) 예측이 필요함
    • 잔여 실행 시간을 계속 추적해야 함 => overhead
    • preemptive scheduling이므로 context switching overhead발생
  • 구현 및 사용이 비현실적임
    • 이유
      1. 정확한 BT를 아는 것이 어려움
      2. 잔여 실행 시간을 계속 추적하는 것이 현실적으로 어려움

SRTN은 현실적으로 구현이 불가능하고 비현실적이다. (잔여시간을 예측하는 것이 어렵기 떄문)

5. HRRN

High-Response-Ratio-Next

  • SPN에 Aging concepts를 추가한 알고리즘
    • SPN의 문제인 starvation을 해결하기 위한 방법 : aging concepts
  • SPN과 동일하게 Non-preemptive scheduling
  • 스케줄링 기준 (Criteria)
    • Response ratio가 높은 프로세스 우선
  • 장점 : SPN의 장점 + starvation 방지
    • SPN의 장점 : 평균 대기 시간 최소화, 시스템 내 프로세스 수 최소화
  • 단점
    • 실행 시간(BT) 예측 기법 필요함
      • 실행 시간을 예측함에 따라 overhead가 발생

(1) Aging concepts란?

  • 프로세스의 대기 시간(WT)을 고려하여 기회를 제공

(2) Response ratio란?

response ratio는 bt대비 wt+bt로써, 대기시간(wt)가 커질 수록 커지기 때문에, starvation을 방지할 수 있다

-> 필요한 BT(실행 시간) 대비 얼마나 기다렸는지 == response ratio

NTT와 Response ratio의 값이 동일하네용

  • Normalized TT와 Response ratio는 값이 동일함

한눈에 정리하기 ~! 다음 포스팅에 이어서 MLQ와 MFQ를 설명하겠습니다.

  • FCFS, RR은 먼저 ready-queue에 들어온 것을 먼저 처리하기 때문에 공평하다
  • SPN, SRTN, HRRN은 시스템의 효율성과 성능을 높여준다.
    • 하지만, 실행시간을 예측하는데에 있어서 overhead(부하)가 발생하는 것
    • 또한, 실행 시간을 예측하는 것이 힘들고, 정확하지 않다.
    • 이러한 문제를 해결해 준 것이 MLQ, MFQ임 -> 다음 포스팅으로 고고~!

'CS > OS' 카테고리의 다른 글

6. 프로세스 동기화 & 상호배제 (1) - 개요  (0) 2021.05.12
5. 프로세스 스케줄링 (4)  (0) 2021.05.10
5. 프로세스 스케줄링 (2)  (0) 2021.05.10
5. 프로세스 스케줄링 (1)  (0) 2021.05.10
4. 스레드 관리  (0) 2021.05.09