CPU 스케줄링

전윤지·2021년 6월 16일
0

OS (운영체제)

목록 보기
6/6

1. 스케줄링

  • 메모리에 올라온 프로세스들 중 어떤 프로세스를 먼저 처리할지 정하는 것
  • 스케줄링을 사용함으로써 다중 프로그래밍이 가능해지고, CPU 이용률을 극대화 시킬 수 있다

[ 용어 정리 ]

  • 응답시간 (Response Time)
    : 사용자가 데이터 입력 후, 출력이 이루워 질 때까지의 시간
  • 반환 시간 (Turnaround Time)
    : 프로그램 시작 후, 끝날 때 까지의 총 시간
  • 대기 시간 (Waiting Time)
    : 프로세스들이 준비 상태로 대기큐에서 기다린 시간의 총 합
  • CPU 이용률
    : 총 경과 시간 대비 CPU가 순수하게 사용자 프로세스를 수행 한 시간의 비
  • 처리량 (Throughput)
    : 단위 시간당 처리 된 프로세스 개수

2. CPU 스케줄링 종류

1) 비선점 스케줄링

  • 프로세스가 CPU를 점유하고 있다면, 다른 프로세스가 뺏을 수 없는 방식
  • 프로세스 배치에 따라 효율성 차이가 많이 남
  • 선점 스케줄링에 비해 오버헤드가 상대적으로 적음

(1) FIFO

  • 준비 큐에 도착한 순서대로 CPU 할당 받음
  • 도착한 순서대로 CPU를 할당하므로, 공정한 방식

(2) SJF (Shortest Job First)

  • 대기 큐에서 수행시간이 가장 짧은 프로세스 먼저 실행
  • 공평성이 어긋남
  • 처리시간이 긴 프로세스의 경우, 처리시간이 짧은 프로세스가 계속 들어온다면 영영 CPU를 할당 받지 못할수도 있음
    => 기아 (Starvation)현상 발생

(3) 우선순위(priority) 스케줄링

  • 우선순위가 높은 순서대로 처리
  • 기아현상 발생 가능

(4) HRN (Highest Response ratio Next)

  • SJF스케줄링에 aging기법을 합친 방법
  • 기아 현상을 해결하기 위해 대기 시간이 길어지면 우선 순위를 높인다
  • 공평성이 완전히 해결 된 것은 아님

2) 선점 스케줄링

  • 프로세스가 CPU를 할당받아 실행 중이더라도, 운영체제가 CPU를 강제로 뺏을 수 있는 방식
  • 처리시간이 매우 긴 프로세스가 CPU를 독점적으로 사용하는 것을 막을 수 있음
    => 효율적인 운영가능
  • 잦은 Context Switching으로 오버헤드가 많이 발생 함

(1) SRT (Shortest Remaining Time)

  • 짧은 시간 순서대로 프로세스 수행
  • SJF의 선점형 버전

(2) RR (Round Robin)

  • 각 프로세스에 CPU 할당시간을 부여하고, FIFO처럼 수행 함
  • 할당 시간이 너무 크면 FIFO와 다를 바가 없어지고, 너무 작으면 오버헤드가 커짐

(3) MQ : 다단계 큐 (Multi Level Queue)

  • ready 큐를 여러개 사용 함
  • 각각의 큐에는 우선순위가 있음
  • 우선 순위가 높은 큐에 속한 모든 프로세스가 처리되야 다음 우선 순위 큐를 처리 가능
  • 우선 순위는 바뀔 수 없음

(4) MFQ : 다단계 피드백 큐 스케줄링 (Multilevel Feeadback Queue)

  • MQ에서 우선순위 변경이 가능 한 방식
  • 큐와 큐 사이 이동이 가능하다
  • 다단계 큐의 공평성 문제를 완화시킴

0개의 댓글