CPU Scheduling

Noah·2022년 7월 21일
0

OS Study

목록 보기
4/16

CPU Scheduling

  • 정의 : Main Memory 또는 Ready Queue에 프로세스들이 대기하고 있을때, 하나가 끝나고 다음것으로 넘어갈때 어느 프로세스를 선택할것인가를 결정하는 것
  • Preemptive : 선점형
    • CPU가 A 프로세스를 실행중에 있는데, Interrupt나 I/O가 발생하지 않았음에도 작업을 중단하고, Ready Queue에서 다른 프로세스를 가져와 실행하는 것
  • Non-preemptive : 비선점형
    • Preemptive와 반대의 개념
    • A 프로세스에 CPU가 할당되어 있으면, Interrupt나 I/O가 발생하기 전까지는 절대 다른것으로 변경하지 않는것
  • 스케줄링을 설정하는 기준
    1. CPU Utilization : CPU 이용률
      • CPU가 최대의 효율을 가지고 일하냐?
    2. Throughput : 처리율
      • 시간당 몇개의 작업을 처리하는가?
    3. Turnaround time : 반환시간
      • 하나의 작업이 Ready Queue에 들어갔다가 작업을 종료할 때까지의 시간
    4. Waiting time : 대기 시간
      • 프로세스가 CPU를 할당받기 위해 얼마나 대기해야하는가
    5. Response time : 응답 시간
      • 대화형 시스템에서 주로 사용 (현재 대부분의 컴퓨터)
      • 처음 응답이 나오는데 걸리는 시간

CPU Scheduling Algorithms

1. First-Come, First-Served(FCFS)
2. Shortest-Job-First(SJF)
3. Priority
4. Round-Robin(RR)
5. Multilevel Queue
6. Multilevel Feedback Queue

이어서 다음 포스팅 부터 각가의 CPU 스케줄링 알고리즘에 대해서 알아보도록 하겠습니다.

profile
BackEnd 개발자가 되기 위해 공부중입니다!

0개의 댓글