본문 바로가기

Study/OS

Chapter 05. Process Scheduling (1of4)

목차

  1. 멀티프로그래밍 (멀티태스킹)
  2. 스케줄링 개념
    1. 목적
    2. 성능 지표
    3. 스케줄링 기준
  3. 스케줄링 레벨
  4. 스케줄링 정책

(프로세스 스케줄링을 왜 해야하는 지?)

우리는 주로 많은 프로세스 환경을 사용

Multi-programming

  • 여러개의 프로세스가 시스템 내에 존재
  • 자원을 할당할 프로세스를 선택해야함
    • => 스케줄링 (Scheduling)
  • 자원관리
    • 시간 분할 관리 (time sharing)
      • 하나의 자원을 여러 스레드들이 번갈아 가며 사용
      • ex) 프로세서 스케줄링
    • 공간 분할 관리 (space sharing)
      • 하나의 자원을 분할하여 동시에 사용
      • ex) 메모리

스케줄링의 목적

  • 시스템의 성능(performance) 향상
    (성능? 모호한 표현)

  • 대표적 시스템 성능 지표

    • 응답시간 (response time)
      • 작업 요청으로부터 응답을 받을때까지의 시간
      • => 대화형 시스템, real-time 시스템
    • 작업 처리량 (throughput)
      • 단위 시간 동안 완료된 작업의 수
      • => batch system
    • 자원 활용도 (resource utilization)
      • 주어진 시간동안 자원이 활용된 시간 (자원을 놀지않고 잘 굴리기)
      • => 비싼 장비 사용할 때
  • 목적에 맞는 지표를 고려하여 스케줄링 기법을 선택

대기시간, 응답시간, 반환시간

  • 프로세스 도착 ↔ 실행시작 : 대기시간
  • 실행시작 ↔ 실행종료 : 실행시간 (burst time)
  • 프로세스 도착 ↔ 첫번째 출력 : 응답시간
  • 프로세스 도착 ↔ 실행종료 : 반환시간

스케줄링의 기준

: 스케줄링 기법이 고려하는 항목들

  • 프로세스의 특성
    • I/O-bounded or compute-bounded
  • 시스템 특성
    • Batch system or interactive system => 목적
  • 프로세스의 긴급성(urgency) (어떤게 더 급한가)
    • Hard- of soft- realtime, non-real time sys
  • 프로세스 우선순위
  • 등등

CPU burst vs I/O burst

  • 프로세스 수행 = CPU사용 + I/O 대기
  • CPU burst
    • CPU 사용시간이 더 많은 프로세스
    • => compute-bounded process라 부른다
  • I/O burst
    • I/O 대기시간이 더 많은 프로세스
    • => I/O-bounded process라 부름

스케줄링의 단계(level)

발생하는 빈도에 따라

  • Long-term scheduling (가끔)
  • Mid-term scheduling (종종)
  • Short-term scheduling (자주)

Long-term scheduling

  • = Job scheduling
    • 어떤 Job을 system에 등록시켜줄지~
    • (Created에서 Ready상태로)
  • 다중 프로그래밍 정도(degree)를 조절
    • = 시스템 내에 프로세스 수 조절
  • I/O-bounded 와 compute-bounded 프로세스들을
    잘 섞어서 선택해야 함
    • why???
    • CPU와 I/O device 둘 중에 하나만 계속 돌아가는 것은 비효율적이다.
  • 시분할 시스템(time sharing)에서는 long-term scheduling이 덜 중요
    • why???
    • 모든 작업을 시스템에 등록하고 시간을 분배한다.

Mid-term scheduling

  • = 메모리 할당 결정 (memory allocation)
    • (suspended ready 에서 ready로 갈때 발생
    • 메모리를 할당받아야 함
    • suspended ready 애들 중에서 누구를 줄지~~ 정하는거야)

Short-term scheduling

  • (ready 에서 running로 갈 때 발생

  • processor (CPU) 필요

  • = Process scheduling

    • 프로세서를 할당할 프로세스를 결정
  • 가장 빈번하게 발생

    • 하기 때문에 매우 빨라야한다.

스케줄링의 정책 (Policy)

(정책 : 수행하기 위한 방법? 기준?)

  • 선점 vs 비선점
  • 우선순위

비선점 / 선점 스케줄링

선점 : 빼앗을 수 있다. 비선점 : 뺏을 수 없다.

  • Non-preemptive scheduling

    • 할당 받을 자원을 스스로 반납할 때까지 사용

    • 장점 : Context switch overhead가 적음

    • 단점

      • 잦은 우선순위 역전 (급한데 못들어가...ㅠㅠ)

      • 평균 응답시간 증가 (혼자만 독차지하네)

  • Preemptive scheduling

    • 타의에 의해 자원을 빼앗길 수 있음
    • 장점 : 응답성이 높아짐
      • Time-shairng system
      • real-time system 등에 적합
    • 단점 : Context switch overhead가 크다

Priority (우선순위)

  • Static priority (정적 우선순위)
    • 한 번 우선순위가 결정되면 바뀌지 않는다.
    • 장점 : 구현이 쉽지, overhead도 적고
    • 단점 : 시스템 환경 변화에 대한 대응이 어려움 (못 바꾸니까)
  • Dynamic priority (동적 우선순위)
    • 프로세스 상태 변화에 따라 priority 변경
    • 장점 : 시스템 환경변화에 대한 유여한 대응 가능
    • 단점 : 구현 복잡, priority 재계산 overhead가 큼
    • (지우개 쓸 수 있따 생각해라)

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

Chapter 05. Process Scheduling (3of4) - SPN, SRTN, HRRN  (0) 2021.06.23
Chapter 05. Process Scheduling (2of4) - FCFS, RR  (0) 2021.06.23
Chapter 04. Thread Management  (0) 2021.06.23
Chapter 03. Process Management  (0) 2021.06.17
Chapter 02. OS Overview  (0) 2021.06.16