본문 바로가기
Computer Science/Operating System

CPU Scheduling

by Gofo 2021. 6. 19.

CPU Scheduling

Scheduling, Dispatching

  • scheduling : ready 상태의 프로세스들 중에 선택하고, 선택된 프로세스에게 CPU를 할당하는 것
  • dispatching : 선택된 process를 실제로 실행하는 것

 

Scheduling Decision이 일어나는 경우

현재 실행 중인 프로세스의 상태가 바뀌었을 때만 schduling을 하는 것을 non-preemptive schduling(비선점형) 이라 한다.

모든 경우에 scheduling을 하는 것을 preemptive scheduling(선점형) 이라 한다.

 

일반적으로 preemptive schduling은 non-preemptive scheduling 보다 성능이 좋다.

 

  • 현재 실행 중인 프로세스의 상태가 바뀌는 경우
    • running → waiting : I/O request
    • terminate
  • 운영체제가 강제하는 경우
    • running → ready : interrupt
    • waiting → ready : I/O 작업 완료 시

 

Scheduling 성능 기준

  • CPU Utilization : CPU의 활용도
  • throughput : 일정 시간 당 작업을 완료하는 프로세스의 수
  • turnaround time : 어떤 프로세스가 실행을 요청한 시점 ~ 실행이 완료된 시점 까지의 시간
  • waiting time : 프로세스가 ready queue에 들어가서 기다린 시간의 총 합
  • response time : 어떤 프로세스가 실행을 요청한 시점 ~ 실제 CPU를 얻어서 실행한 시점 까지의 시간

 

Optimization Criteria

좋은 scheduling은 다음과 같아야 한다.

  • CPU utilization 최대화
  • throughput 최대화
  • turnaround time 최소화
  • waiting time 최소화
  • response time 최소화

 

 

'Computer Science > Operating System' 카테고리의 다른 글

Synchronization  (0) 2021.06.19
CPU Scheduling Algorithm  (0) 2021.06.19
Multi-threading  (0) 2021.06.18
Thread  (0) 2021.06.18
Cooperating Processes  (0) 2021.06.17

댓글