본문 바로가기
~ 2024.03/컴퓨터 구조 + 운영체제

[컴퓨터 구조] CPU 스케줄링

by Monett 2024. 1. 4.
반응형

혼자 공부하는 컴퓨터 구조 + 운영체제(강민철 저, 한빛미디어)를 공부하며 내용을 정리한 글 입니다.
현재 블럭의 내용은 작성자의 의견 혹은 생각이며, 틀린 내용이 있을 수 있습니다. 지적 감사드립니다.

 

CPU 스케줄링 개요

CPU 스케줄링은 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것을 말한다. 컴퓨터의 성능과도 직결된다.

 

CPU를 사용하고 싶은 프로세스들이 차례로 돌아가며 사용할 수도 있지만, 좋은 방법이 아니다.

프로세스마다 우선순위가 다르기 때문이다.

 

우선순위가 높은 프로세스에는 대표적으로 입출력 작업이 많은 프로세스가 있다.

 

입출력 작업이 많은 프로세스를 입출력 집중 프로세스, CPU 작업이 많은 프로세스를 CPU 집중 프로세스라고 한다.

입출력 집중 프로세스는 실행 상태보다는 입출력을 위한 대기상태에 더 많이 머무르기 때문에 두 종류의 프로세스가 동일한 빈도로 CPU를 사용하는 것은 비합리적이다.

 

입출력 작업을 빠르게 실행시키고, CPU 집중 프로세스에 집중적으로 할당하는 것이 효율적이기 때문에 입출력 집중 프로세스가 우선순위가 더 높다.

 

운영체제는 프로세스마다 우선순위를 부여하고 관리한다. 우선순위는 PCB에 기록된다.

스케줄링 큐

CPU가 매번 PCB의 우선 순위를 확인할 수 없기 때문에, 스케줄링 큐에 줄 세우고 관리한다.

 

운영체제가 관리하는 대부분의 자원은 큐로 관리되는데, 대표적으로 준비 큐와 대기 큐가 있다.

  • 준비 큐 : CPU를 사용하고자 하는 프로세스
  • 대기 큐 : 입출력장치를 이용하기 위해 대기중인 프로세스
    • 장치별로 큐가 있으며, 같은 장치를 요구한 프로세스는 같은 큐에서 대기한다.

선점형과 비선점형 스케줄링

  • 선점형 스케줄링 : 자원을 사용하고 있더라도 강제로 다른 프로세스에 할당하는 방식. 타이머 인터럽트도 이에 해당된다.
  • 비선점형 스케줄링 : 하나의 프로세스가 자원을 독점하며 끼어들 수 없는 방식. 골고루 자원을 사용할 수 없다는 단점이 있다. 

CPU 스케줄링 알고리즘

  • 선입 선처리 스케줄링 : PCFS 스케줄링이라고도 부른다. 단순히 준비 큐에 삽입된 순서대로 처리하는 비선점형 스케줄링.
  • 최단 작업 우선 스케줄링 : SJF 스케줄링이라고도 부른다. 선입 선처리 스케줄링은 짧은 실행 시간의 프로세스가 오래 기다리는 호위효과가 발생한다. 이를 방지하기 위해 실행 시간이 짧은 프로세스부터 실행하는 스케줄링.
  • 라운드 로빈 스케줄링 : 선입 선처리 스케줄링에 각 프로세스가 정해진 시간만큼 실행되는 타임 슬라이스 개념을 적용한 선점형 스케줄링.
  • 최소 잔여 시간 우선 스케줄링 : SRT 스케줄링이라고도 부른다. 최단 작업 우선 스케줄링과 라운드 로빈 스케줄링을 합친 형태. 정해진 시간만큼 사용하되, 다음 프로세스는 실행 시간이 적은 프로세스를 선택한다.
  • 우선순위 스케줄링 : 우선순위를 부여하고 실행한다. 우선순위가 같을 경우 선입 선처리로 실행한다. 우선순위가 낮으면 계속 대기하는 기아 현상이 발생할 수 있는데, 이를 해결하기 위해 에이징 기법을 사용하여 오래 대기한 프로세스의 우선순위를 점차 높인다.
  • 다단계 큐 스케줄링 : 우선순위별로 준비 큐를 여러개 사용
  • 다단계 피드백 큐 스케줄링 : 다단계 큐 스케줄링은 큐 간 이동이 불가해 기아현상 발생 가능. 이를 보완하기 위해 큐 간 이동 가능한 스케줄링. CPU를 오래 사용할 수록 우선순위가 낮아진다.

 

반응형