CH5 : CPU Scheduling

김마사키·2022년 4월 19일

OS

목록 보기
3/4

CPU Scheduling Issue

1. 누구한테 CPU를 줄 것인가?

2. process가 CPU burst가 길 때, 가만히 놔둘 것인가 or CPU를 뺏어서 다른 process에게 줄 것인가?

CPU and I/O Bursts in Program Execution

CPU-burst Time의 분포

I/O bound job - CPU burst 짧다
CPU bound job - CPU burst 길다

CPU 스케쥴링

  • 여러 종류의 job (I/O bound, CPU bound)이 섞여 있기 때문에 필요함
  • Interactive job(=I/O bound job)에게 적절한 response 제공
  • CPU와 I/O 장치 등 시스템 자원을 골고루 효율적으로 사용

Q. 그렇다면 Ready Queue에 있는 process 중 어떤 process에게 CPU를 줄까?

프로세스의 특성 분류

I/O bound process

  • CPU를 잡고 계산하는 시간 < I/O 시간
  • many, short, CPU burst

CPU bound process

  • 계산 위주 job
  • few, very long, CPU burst

CPU Scheduler & Dispatcher

CPU Scheduler

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

Dispatcher

Context Switch
CPU 제어권을 (CPU scheduler에 의해 선택된) 프로세스에게 넘긴다

CPU 스케줄링이 필요한 경우

  • Process의 상태 변화
  1. Running -> Blocked

    • nonpreemptive
      e.g) I/O 요청하는 시스템
  2. Running -> Ready

    • preemptive
      e.g) timer interrupt : 할당시간 만료
  3. Blocked -> Ready

    • preemptive
      e.g) I/O 완료 후 인터럽트
  4. Terminate

    • nonpreemptive

선점형 preemptive = 강제로 빼앗음
비선점형 nonpreemptive = 강제로 빼앗지 X


Scheduling Criteria

Performance Index = Performance Measure = 성능 척도

CPU utilization

  • 이용률 = CPU 동작시간 / 전체 시간

Throughput

  • 처리량 = 산출량 = 단위시간 당 처리한 일의 양

Turnaround time

  • 대기 Queue에서 CPU burst 가 끝날 때까지 CPU를 쓰기 전까지 기다린 time

Waiting time

  • CPU를 쓰기 전까지, Ready Queue에서 기다린 시간의 총합

Response time

  • 응답시간, Ready Queue에 들어와서 처음으로 CPU를 얻기까지 걸린시간
  • 선점형 scheduling
  • time sharing

성능 척도

  • 시스템 입장 : CPU 1개로 최대한 일을 많이 시키기
  • 프로그램 입장 : 내가 CPU를 빨리 얻어서 빨리 끝내기

Scheduling Algorithms

1. FCFS (First-Come First-Service)

2. SJF (Shortest-Job-First)

3. SRTF (Shortest-Remaining-Time-First)

4. Priority Scheduling

5. Round Robin (RR)

6. Multilevel Queue

7. Multilevel Feedback Queue

Multiple-Processor Scheduling

Real-Time Scheduling

Thread Scheduling

Algorithm Evaluation

0개의 댓글