시냅스

CPU 스케줄링 CPU Scheduling 본문

운영체제

CPU 스케줄링 CPU Scheduling

ted k 2022. 4. 21. 14:40

 

CPU 스케줄링 CPU Scheduling

  • 멀티프로그래밍의 목적
    • CPU 이용률 최대화
      • 단일 코어라면, 빨간 박스의 상태에서 CPU는 I/O 요청이 완료될 때까지 유휴상태를 갖는다. -> 비효율적!
    • 대기 시간 최소화

 

CPU - I/O 버스트 사이클

 

CPU Scheduler

  • CPU가 유휴 상태가 될 때마다 Ready queue에 있는 프로세스를 하나 선택한다.
  • 선택 절차는 CPU Scheduler에 의해 선택된다.
  • Queue에 있는 레코드들은 일반적으로 PCB이다.
  • 선택 방법
    • FIFO Queue
    • Linked list, Binary list
    • Priority Queue

 

Preemptive(선점형) vs Nonpreemptive(비선점형)

  • preemptive 조건에 의해서 스케쥴러가 context switch를 실행한다.
    • 아래 2번, 3번
  • nonpreemptive 어떤 프로세스가 선점하면 프로세스가 종료되거나 switch 돼야 바꿀 수 있다.
    • 아래 1번, 4번
  • CPU 스케줄링 결정은 다음의 네 가지 상황에서 가능하다.
    • 1. running -> waiting (nonpreemptive)
      • I/O 요청 또는 자식 프로세스의 종료를 기다리는 상태
    • 2. running -> ready (chioce preemptive vs nonpreemptive)
      • 예외, 입출력, 이벤트 등의 인터럽트 발생
    • 3. wating -> ready (chioce preemptive vs nonpreemptive)
      • I/O 요청 종료로 ready queue 진입
    • 4. terminate (nonpreemptive)

 

디스패처 Dispatcher

  • CPU core의 control을 넘겨주는 module, Context switching을 실제로 실행한다.
  • Dispatcher가 할 일
    • context를 옮기는 것
    • user mode로 바꾸는 것
    • ready에서 대기중인 process를 running으로 resume
    • scheduler는 선택만, 실제 실행은 dispatcher가 한다.

 

디스패처는 빨라야만 한다.

  • dispatch latency(context switching 시간)가 짧아야 한다.
  • vmstart 1(초단위) 3(줄)

 

출처 : https://www.guru99.com/cpu-scheduling-algorithms.html

 

스케줄링 기준 (Scheduling criteria)

  • CPU 이용률(utilization) : CPU 이용률이 40% ~ 90% 의 범위를 가져야한다.
  • 처리량(throughput) : 단위 시간당 완료된 프로세스의 개수
  • 총처리 시간 (turnaround time) : 프로세스 제출 시간과 완료 시간의 간격
  • 대기 시간 (wationg time) : 준비 큐에서 대기하면서 보낸 시간
  • 응답 시간 (response time) : 첫 번째 응답이 나올 때까지의 시간

'운영체제' 카테고리의 다른 글

스레드 스케줄링 Thread Scheduling  (0) 2022.04.21
스케줄링 알고리즘 Scheduling algorithm  (0) 2022.04.21
멀티 쓰레딩 Thread and Concurrency  (0) 2022.04.12
TIL : OS Thread  (0) 2021.11.19
TIL : OS IPC 시스템의 사례  (0) 2021.11.16
Comments