[운영체제] CPU 스케줄링

박성현·2024년 4월 10일
0

운영체제

목록 보기
1/2

CPU 스케줄링이란?

  • 여러 프로세스가 CPU를 공유하여 실행될 때, 어떤 프로세스가 CPU를 사용할지를 결정하는 방법
  • CPU 자원을 효율적으로 사용 가능
  • 프로세스 간의 우선순위 관리 -> 시스템 성능 향상

스케줄링 알고리즘

비선점 알고리즘

실행 중인 프로세스를 다른 프로세스가 강제 중단시킬 수 없는 방식

  • FCFS (First Come First Service)
  • SJF (Shortest Job First)
  • 우선순위 (Priority)
  • HRRN (Highest Response Ratio Next)

선점 알고리즘

실행 중인 프로세스를 다른 프로세스가 강제 중단시킬 수 있는 방식

  • RR (Round Robin)
  • SRT (Shortest Remaining Time First)
  • 다단계 피드백 큐 (Multievel Queue)

비선점 알고리즘

선입 선처리 스케줄링 (FCFS)

  • 준비큐에 도착한 순서에 따라 CPU 할당


최단 작업 우선 스케줄링 (SJF)

  • 가장 작은 CPU버스트(작업시간)를 가진 프로세스에게 할당
  • 두 프로세스가 동일한 길이의 CPU버스트를 가지면 순위를 정하기 위해 FCFS스케줄링 적용


우선순위 스케줄링

  • 가장 높은 우선순위를 가진 프로세스에게 할당
  • 우선순위가 같은 프로세스들은 FCFS 순서로 스케줄링 된다


최고 응답율 우선 스케줄링 (HRRN)

  • 대기 중인 프로세스 중 현재 우선순위가 가장 높은 것을 선택
  • 구한 값이 클수록 우선순위가 크다
  • 우선순위 = (대기시간 + 서비스시간(CPU요구시간)) / 서비스시간(CPU요구시간)



선점 알고리즘

라운드 로빈 스케줄링 (RR)

  • 시간 할당량 (time slice, time quantum)을 정의하여 정의된 CPU사용 시간 안에서만 수행
  • 시간 안에 종료되지 못하면 CPU는 준비 큐의 다음 프로세스에 의해 선점 되며 수행 중이던 프로세스는 준비 큐의 마지막에 들어가서 다음 차례를 기다린다


최소 잔류 시간 우선 스케줄링 (SRT)

  • 남은 작업 시간 순서 중 가장 적은 프로세스를 선택


다단계 피드백 큐 스케줄링 (Mulitlevel Feedback Queue)

  • 진입 프로세스는 가장 우선순위가 높은 큐의 꼬리에 진입
  • 프로세스 처리시간이 남아있으면
  • 다음 레벨 큐의 꼬리에 진입
  • 각 레벨의 큐에서 허용된 시간할당량을 모두 사용하면 한 수준 낮은 다음 큐로 이동

0개의 댓글