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개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN