본문 바로가기
study/운영체제 OS

CPU Scheduling - 운영체제 반효경 교수님

by stilinski 2022. 10. 28.
728x90

 

프로세스의 특성 분류

  • I/O-bound process
    • cpu를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job
    • many short CPU bursts
  • CPU-bound process
    • 계산 위주의 job
    • few very long CPU bursts

 

 

CPU Scheduler & Dispatcher

CPU Scheduler

  • Ready 상태의 프로세스 중에서 이번에 CPU를 줄 프로세스를 고른다

Dispatcher

  • CPU의 제어권을 CPU 스케줄러에 의해 선택된 프로세스에게 넘긴다.
    • cpu 정보 save
    • 새로운 프로세스 정보 cpu에 주기(레지스터 값 세팅)
    • cpu 넘기기
    • 이 과정을 문맥교환 context switch라고 부름.

둘ㄷ ㅏ운영체제 안에 있는 코드

 

 

 

CPU 스케줄링 이슈

  • cpu를 누구에게 줄것인가
  • 계속 쓰게 할 것인가, 뺏을 것인가
  • 비선점형 nonpreemptive- 줬으면 뺏지 않음
  • 선점형 - 언제든지 뺏을 수 있음

 

 

 

 

Scheduling Criteria 성능 척도

시스템 입장

  • CPU utilization

전체 시간 중에서 cpu가 놀지 않고 일한 시간의 비율

  • Throughput

주어진 시간 안에 몇 개의 일을 처리했나

고객 입장(프로세스 입장)

  • Turnaround time
    • waiting + cpu burst (I/O 하러 나갈 때까지)
  • waiting time
    • waiting in the ready queue
    • preemptive 같은 경우, 한 번의 cpu burst 동안에도 CPU 얻었다 뺏겼다 하면서 줄스는 횟수 늘어남. 그거 시간 다 합해서.
  • response time
    • 최초의 cpu를 얻기까지 기다린 시간

 

 

 

 

 

 

 

Scheduling algorithm

FCFS (First-Come First-Served)

비선점형

convoy effect

 

 

SJF (Shortest-Job-First) & SRTF

문제점

  • starvation 문제 : CPU burst time이 긴 프로세스는 영원히 CPU를 얻지 못하게 될 수도 있음.
  • CPU burst time 확실한 예상 불가

 

 

 

 

 

Priority Scheduling

preemptive - 우선순위 높은 프로세스 오면 진행 중 프로세스에서 cpu 뺏음

nonpreemptive - 안 뺏음

  • Aging(노화) : 우선순위가 낮은 프로세스라도 오래 기다기게 되면 우선순위를 높여줌

 

 

 

 

Round Robin(RR)

시간 똑같이 타이머 세팅해서 끝나면 뺏고 뒤로 가서 줄 서고 하는 거

cpu사용시간이 다양한 프로세스들이 섞여있을 때 쓰기에 좋은 스케줄링

cpu사용시간이 모두 동일하면 마지막까지 모든 프로세스들이 기다려야 함. waiting time 길어짐

 

 

 

 

 

 

 

Multilevel Queue

  • 프로세스를 어느 줄에 넣을 것인가?
  • 우선순위 낮은 프로세스 starvation

 

 

 

 

Multilevel Feedback Queue

priority가 승격(?)이 되기도 함.

cpu사용시간이 짧은 프로세스한테 cpu가 우선적으로.

긴 프로세스는 밑으로 점점 쫓겨남

 

 

 

 

 

 

 

 

Multiple-Processor Scheduling

 

 

 

 

 

Real-time scheduling

  • 데드라인 보장.

 

 

 

 

 

 

 

 

 

 

출처 : http://www.kocw.or.kr/home/cview.do?cid=3646706b4347ef09 

 

운영체제

운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각

www.kocw.net

 

728x90

댓글