Data Engineering/혼공컴운

혼자 공부하는 컴퓨터구조 + 운영체제 11장 정리

potatode 2025. 4. 1. 20:36

11. CPU 스케줄링

11-1. CPU 스케줄링 개요

  • CPU 스케줄링 : 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 분배하는 것
    • 컴퓨터 성능과도 직결되는 중요한 문제!

프로세스 우선순위

  • 프로세스마다 우선 순위가 다름

우선순위가 높은 프로세스 예시 : 입출력 작업이 많은 프로세스

  • 왜?
    • 프로세스들은 CPU와 입출력장치들을 모두 사용하며 실행
    ⇒ 실행 상태와 대기 상태 반복
    • 근데 프로세스마다 이용하는 시간의 양에 차이가 있음
  • 입출력 집중 프로세스
    • 비디오 재생, 디스크 백업
  • : 입출력 작업이 많은 프로세스
  • CPU 집중 프로세스
    • 복잡한 연산, 컴파일, 그래픽 처리 작업
  • : CPU 작업이 많은 프로세스
  • 각각의 상황에 맞게 CPU 배분하는 것이 더 효율적
  • 우선순위가 높은 프로세스일수록 더 빨리, 더 자주 실행

스케줄링 큐

  • 우선순위가 있다고 하지만, 일일히 찾는 것은 비효율적

⇒ CPU를 사용하고 싶은 프로세스, 메모리에 적재되고 싶은 프로세스 등을 분류하여 모두 줄 세움’

⇒ 이 줄을 ‘스케줄링 큐’로 구현하고 관리

  • 준비 큐 : CPU이용 프로세스들이 서는 줄
  • 대기 큐 : 입출력장치 이용 프로세스들이 서는 줄
  • 줄을 먼저 섰다고 할지라도, 우선순위가 높은 프로세스는 더 먼저 처리될 수 있음

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

CPU를 프로세스가 쓰고 있는데, 갑자기 다른 급한 프로세스가 나타난다면?

  • 선점형 스케줄링
  • : 쓰고 있더라도 강제로 뺴앗아 다른 프로세스에 할당할 수 있는 스케줄링 방식
  • 비선점형 스케줄링
  • : 세션 종료나 대기 상태에 접어들기 전까진 다른 프로세스가 끼어들 수 없는 스케줄링

11-2. CPU 스케줄링 알고리즘

스케줄링 알고리즘의 종류

  • 선입 선처리 스케줄링
    • 큐에 삽입된 순서대로 프로세스 처리하는 비선점형 스케줄링 방식
    • 비선점형
  • 최단 작업 우선 스케줄링
    • CPU 이용 시간의 길이가 가장 짧은 프로세스부터 실행
  • 라운드 로빈 스케줄링
    • 선입 선처리 스케줄링 + 타임슬라이스
    • 타임슬라이스 : 각 프로세스가 CPU를 사용할 수 있는 정해진 시간
  • 최소 잔여시간 우선 스케줄링
    • 최단 작업 우선 + 라운드 로빈
    • 정해진 타임 슬라이스만큼 CPU 사용 → 다음 프로세스는 남아있는 작업 시간이 가장 적은 프로세스 선택
  • 우선순위 스케줄링
    • 높은 우선순위 프로세스부터 실행
  • 다단계 큐 스케줄링
    • 우선순위별로 준비 큐를 여러개 사용하는 스케줄링 방식
  • 다단계 피드백 큐 스케줄링
    • 프로세스들이 큐 사이를 이동할 수 있음
반응형