Notice
Recent Posts
Recent Comments
관리 메뉴

즐겁게, 코드

운영체제 - 05. 프로세스 스케줄링 上 본문

🖥 컴퓨터공학/운영체제

운영체제 - 05. 프로세스 스케줄링 上

Chamming2 2021. 4. 23. 20:01

이 글은 한국기술대학교 컴퓨터공학부의 OS 공개강의 시청한 후 정리한 내용입니다.

목차

  • 스케줄링
  • 스케줄링의 목적
  • 스케줄링 기준 및 단계
  • 스케줄링 정책

1. 스케줄링

다중 프로그래밍에서는 시스템에 여러 프로세스가 존재하게 됩니다.

따라서 여러 프로세스를 효율적으로 관리하기 위해서는 자원을 현명하게 배분해야겠죠?

오늘 다룰 스케줄링이 바로 자원을 효율적으로 배분하기 위한 방법을 의미합니다.

스케줄링(자원 관리)의 종류

  • 시간 분할 관리
    • 하나의 자원을 여러 스레드들이 번갈아가며 사용
    • Ex. 프로세스 & 프로세스 스케줄링
  • 공간 분할 관리
    • 하나의 자원을 분할하여 동시에 사용
    • Ex. 메모리 & 메모리 스케줄링

2. 스케줄링의 목적

당연히 스케줄링의 목적은 시스템의 성능을 향상시키는 것입니다.

시스템의 성능을 판별하는 지표는 정말 다양하지만, 대표적인 항목은 다음과 같습니다

  • 응답시간
    • 작업 요청으로부터 응답을 받을 때까지의 시간
  • 작업 처리량 (throughput)
    • 단위 시간동안 완료한 작업의 수
  • 자원 활용도
    • 주어진 시간동안 자원이 활용된 시간

3. 스케줄링 기준

여러 스케줄링 기법들 중 무엇을 선택할지는 다음 기준을 따져야 합니다.

  1. 프로세스의 특성
    • 프로세스가 I/O에 시간을 많이 할애하는지(I/O bounded), 아니면 연산에 많은 시간을 할애하는지(CPU bounded)
  2. 시스템 특성
    • 일괄처리 시스템인지 실시간 시스템인지
  3. 프로세스의 긴급성
  4. 프로세스의 우선순위 (priority)
  5. 프로세스의 총 실행 시간

4. 스케줄링의 단계

스케줄링은 발생하는 빈도 및 할당 자원에 따라 단계별로 구분할 수 있습니다.

  • Long-term scheduling (장기 스케줄링)
    • Job scheduling이 해당된다.
    • 커널에 등록할 작업을 결정하는 단계
    • 처리할 프로세스 수를 조절하는데, I/O bound와 CPU bound 프로세스 중 한쪽으로 치우치지 않도록 하는게 중요함!
  • Mid-term scheduling (중기 스케줄링)
    • Memory scheduling이 해당된다.
    • 누구한테 얼마나 메모리를 할당할지 결정하는 단계
  • Short-term scheduling (단기 스케줄링)
    • Process scheduling이 해당된다.
    • 프로세서를 할당할 프로세스를 결정하는 단계
    • 가장 빈번하게 발생하므로 매우 빠르게 처리할 수 있어야 한다.

5. 스케줄링 정책

스케줄링 정책은 선점(preemption) 여부와 우선순위를 기준으로 결정됩니다.

여기서 선점이란, 어렵게 생각할 필요 없이 "자원을 빼앗을 수 있는지" 를 의미합니다!

선점 / 비선점 (Preemptive / Non-preemptive) 여부 기준

  • 비선점 스케줄링
    • 할당받은 자원을 스스로 반납할 때까지 사용함. (= "비선점", 자원을 빼앗을 수 없으므로!)
    • Ex. system call, I/O (중간에 끊기면 안되는 작업들)
    • 컨텍스트 스위칭이 적게 일어나 오버헤드가 적음.
    • 우선순위가 역전되기도 하며, 평균 응답시간이 증가함. (자원을 유연하게 할당할 수 없으므로)
  • 선점 스케줄링
    • 조건에 따라 자원을 빼앗길 수 있음. (= "선점")
    • 컨텍스트 스위칭이 자주 일어나 오버헤드가 발생함.
    • 효율적인 자원 분배가 가능해 시분할 & 실시간 처리 시스템에 적합함.

우선순위 기준

  • 정적 우선순위 (Static Priority)
    • 프로세스 생성 시점에 결정된 우선순위가 유지됨.
    • 구현이 쉽고 오버헤드가 적음.
    • 시스템 환경 변화에 따른 대응이 어려움.
  • 동적 우선순위 (Dynamic Priority)
    • 시스템 환경 변화에 따라 우선순위가 동적으로 변함.
    • 구현이 복잡하며, 우선순위 재계산에 따른 오버헤드가 큼.
    • 시스템 환경이 변해도 유연하게 대처할 수 있음.

 

 

반응형
Comments
소소한 팁 : 광고를 눌러주시면, 제가 뮤지컬을 마음껏 보러다닐 수 있어요!
와!! 바로 눌러야겠네요! 😆