Fall in IT.

CPU Scheduling 본문

컴퓨터 & 네트워크/운영체제

CPU Scheduling

D.Y 2018. 1. 23. 23:18


CPU Scheduling

  • 선점형(preemtive)
    - CPU를 선점하고 동작되는 스케줄링 기법 (뺏을 수 없음)
  • 비선점형(nonpreemtive)
    - CPU를 언제든지 뺏을 수 있는 형태로 동작하는 스케줄링 기법


CPU 성능 척도

  1. CPU utilization (CPU 이용률)
    - 시스템 입장에서 CPU가 일하는 시간
  2. Throughtput (처리량)
    - 시스템 입장에서 CPU가 단위 시간당 처리하는 처리량
  3. Turnarount time (소요시간, 반환시간)
    - 프로세스 입장에서 CPU를 기다리고, 점유하고 모두 끝내는데 걸리는 시간
  4. Waiting time (대기 시간)
    - 프로세스 입장에서 CPU를 점유하기까지 기다리는 시간
  5. Response time (응답 시간)
    - 프로세스 입장에서 CPU를 처음으로 점유하는데 걸리는 시간


중국집에 비유해보면..

  1. CPU utilization (CPU 이용률)
    - 가게 입장에서 요리사가 일하는 시간
  2. Throughtput (처리량)
    - 가게 입장에서 단위 시간당 받는 손님 수
  3. Turnarount time (소요시간, 반환시간)
    - 고객 입장에서 음식을 시키고, 다 먹고, 나가는데 걸리는 시간
  4. Waiting time (대기 시간)
    - 고객 입장에서 기다리는 시간
  5. Response time (응답 시간)
    - 고객 입장에서 첫번째 음식이 나오는데 걸리는 시간


CPU Scheduling 종류

  • FCFS (First-Come-First-Served)
    - 먼저 들어온 프로세스 먼저 처리하는 스케줄링 기법
    - 가장 먼저 들어온 작업이 클 경우 비효율적인 방법 (Convoy Effect)
    - CPU 사용시간 예측 가능
  • SJF (Shortest-Job-First)
    - 가장 빨리 처리되는 프로세스 먼저 처리하는 스케줄링 기법
    - wating time이 최소값
    - 작업 시간이 오래 걸리는 큰 프로세스의 경우 영원히 처리되지 못할 가능성이 있다.
    - CPU 사용시간 예측 불가능 
  • Priority Scheduling
    - 우선순위가 높은 프로세스 먼저 처리하는 스케줄링 기법
    - 작은 숫자가 우선순위가 높다.
    - SJF도 Priority Scheduling 기법 중 하나
    - 기아현상(starvation, 우선순위가 낮은 프로세스는 처리가 안되는 현상)이 발생할 수 있다.
    - 해결방법으로, aging방법을 사용한다. (aging, 오래된 프로세스의 우선순위를 높여주는 방법)
  • RR (Round Robin)
    - 일반적으로 쓰이는 스케줄링 기법으로 각 프로세스는 동일한 크기와 할당 시간을 가진다.
    - 응답시간(response time)이 빠르다.
    - 할당시간을 지나치게 크게하면 FCFS와 동일하게 동작된다.
    - 할당시간을 지나치게 작게하면 잦은 Context switch로 인해 오버헤드가 높아져서 성능이 저하된다.
    - 할당시간은 일반적으로 10~100ms를 사용한다.



Comments