1790 단어
9 분
CPU 스케줄링 알고리즘

스케줄링의 개요#

CPU 스케줄러는 프로세스가 생성된 후 종료될 때까지 모든 상태 변화를 조정 여러 프로세스 상황을 고려하여 CPU와 시스템 자원을 어떻게 배정할지 결정

✔️ 규모별 스케줄링#

  • 고수준 스케줄링 시스템 내 전체 작업 수를 조절 작업은 1개 이상의 프로세스로 이루어진 가장 큰 단위
    전체 시스템 부하를 고려해 작업 승인 또는 거부를 결정
    멀티프로그래밍 정도, 즉 전체 프로세스 수가 결정

  • 중간 수준 스케줄링
    활성화된 프로세스 수를 조절해 시스템 과부하를 막음
    일부 프로세스를 보류 상태로 옮겨 나머지 정상 작동을 지원

  • 저수준 스케줄링
    어떤 프로세스를 준비/실행/대기 상태로 보낼지 결정 오늘날 CPU 스케줄러는 대부분 중간과 저수준 스케줄링으로 이루어짐

✔️ 스케줄링의 목적#

목적의미
공평성모든 프로세스가 자원을 공평히 배정받아야 함
효율성자원이 유휴 시간 없이 사용되어야 함
안정성우선순위로 중요 프로세스 먼저 작동, 자원 보호
반응 시간 보장적절 시간 안에 프로세스 요구에 반응해야 함
무한 연기 방지작업이 무한히 연기되어선 안됨

스케줄링 시 고려 사항#

✔️ 선점형 스케줄링, 비선점형 스케줄링#

  • 선점형 스케줄링 실행 중인 프로세스도 CPU를 빼앗을 수 있음 운영체제는 필요 시 실행 중인 프로세스를 중단시키고 새 작업 시작 가능
    대표적으로 인터럽트 처리 방식이 있음 낭비가 있지만 대화형, 시분할 시스템에 적합

  • 비선점형 스케줄링
    프로세스가 CPU를 잡으면 종료 또는 대기 상태까지만 실행
    문맥 교환 낭비는 없으나, 긴 CPU 사용으로 처리율 저하 가능

✔️ 프로세스 우선순위#

우선순위가 높을수록 더 자주 실행 커널 프로세스와 일반 프로세스로 구분하며, 커널 프로세스가 우선순위가 높음
일반 프로세스는 사용자에 의해 우선순위 조절 가능 예: 비디오 플레이어가 문서 편집기보다 우선순위가 높음

✔️ CPU 집중 프로세스, 입출력 집중 프로세스#

  • CPU 집중 프로세스: CPU 연산 위주 작업
  • 입출력 집중 프로세스: 저장장치 입출력 위주 작업

입출력 집중 프로세스가 먼저 실행되는 것이 효율적
이런 현상을 사이클 훔치기

✔️ 전면 프로세스, 후면 프로세스#

전면 프로세스는 사용자와 상호작용하며 입출력 중인 프로세스 후면 프로세스는 사용자와 상호작용 없고 백그라운드 작업
예: 브라우저는 전면, 문서 편집기는 후면 프로세스 전면 프로세스가 우선순위가 높음

정리#

  • 커널 프로세스 > 일반 프로세스
  • 전면 프로세스 > 후면 프로세스
  • 대화형 프로세스 > 일괄 처리 프로세스
  • 입출력 집중 프로세스 > CPU 집중 프로세스

다중 큐#

✔️ 준비 상태의 다중 큐#

CPU 스케줄러는 PCB 우선순위 높은 프로세스를 먼저 CPU에 할당
운영체제는 우선순위별로 여러 큐를 만들고, 준비 상태 프로세스는 자신의 우선순위 큐 뒤에 삽입
스케줄링 알고리즘에 따라 큐 구분 및 선택 방식이 달라짐

  • 고정 우선순위 방식: 우선순위 변하지 않음, 구현 쉽지만 효율 떨어짐
  • 변동 우선순위 방식: 우선순위 변함, 구현 복잡하지만 효율 높음

✔️ 대기 상태의 다중 큐#

여러 입출력장치 대기를 위해 대기 상태 PCB는 동일 입출력 큐에 모임
대기 상태에서는 여러 PCB를 꺼내 준비 상태로 이동 여러 입출력 완료 시 한꺼번에 인터럽트 처리 위해 인터럽트 벡터 활용
나중에 들어온 PCB가 먼저 준비 상태로 옮겨질 수 있음 이것은 입출력장치 속도를 고려한 작업 순서 조정

스케줄링 알고리즘#

스케줄링 알고리즘은 비선점형과 선점형으로 나눔

평가 기준#

주로 대기 시간, 응답 시간, 실행 시간, 반환 시간 등을 통해 평가

  • 대기 시간: 생성 후 실행 전까지 대기 시간
  • 응답 시간: 생성 후 첫 출력까지 시간
  • 실행 시간: 시작 후 종료까지 시간
  • 반환 시간: 생성 후 종료까지 시간

평균 대기 시간을 가장 많이 평가


🔑 FCFS 스케줄링 (비선점형)#

First Come First Serve로, 도착 순서대로 CPU 할당
비선점형이라 한 프로세스 완료 후 다음 실행
콘보이 효과로 긴 작업이 뒤 작업 지연

🔑 SJF 스케줄링 (비선점형)#

Short Job First, 실행 시간 짧은 작업부터 CPU 할당
콘보이 효과 완화 가능하나 공평성 문제로 실무에 제한적
아사 현상이라 불리는 무한 연기 현상 발생 가능
에이징 기법으로 완화 가능하지만 잘 사용하지 않음

🔑 HRN 스케줄링 (비선점형)#

High Response ratio Next
대기 시간과 CPU 사용 시간 고려한 우선순위 할당
아사 현상 완화 가능하나 공평성 문제 존재

🔑 라운드 로빈 스케줄링 (선점형)#

Round Robin, 순환 순서로 타임 슬라이스 내 작업
타임 슬라이스 동안만 작업하고 완료 안 되면 큐 뒤로
FCFS 유사하나 선점형 문맥 교환 시간 고려 필요

🔑 SRT 우선 스케줄링 (선점형)#

Shortest Remaining Time, 남은 작업 시간 가장 적은 프로세스 우선 CPU 할당
SJF와 라운드 로빈 혼합형
주기적 시간 계산과 아사 현상 문제로 사용 제한적

🔑 우선순위 스케줄링 (비선점형, 선점형)#

우선순위 높은 프로세스에 CPU 할당
고정 및 변동 우선순위 가능
아사 현상과 오버헤드로 효율 저하 우려
우선순위는 시스템 효율성 아닌 프로세스 중요도로 결정됨

🔑 다단계 큐 스케줄링 (선점형)#

우선순위별 여러 큐 사용
각 큐는 라운드 로빈 방식으로 처리
상위 큐 작업이 끝나야 하위 큐 작업 실행 가능
지연 문제 해결책이 다단계 피드백 큐 스케줄링

🔑 다단계 피드백 큐 스케줄링 (선점형)#

CPU 사용 후 우선

CPU 스케줄링 알고리즘
https://devlog.jpstudy.org/posts/2025/cs/cpu_schedule/
저자
SY
게시일
2025-04-12
라이선스
CC BY-NC-ND 4.0