본문 바로가기
정보처리기사/프로그래밍 언어 활용

프로세스 스케줄링

by jhwannabe 2023. 8. 5.

프로세스 스케줄링의 개요

프로세스 스케줄링(Process Scheduling)의 개념

  • 프로세스의 생성 및 실행에 필요한 시스템의 자원을 해당 프로세스에 할당하는 작업
  • 다중 프로그래밍 운영체제에서 자원의 성능을 향상시키고 효율적인 프로세서의 관리를 위해 작업 순서를 결정하는 것

프로세스 스케줄링의 목적

  • 모든 작업들에 대한 공평성 유지, 단위 시간당 처리량 최대화, 응답 시간 및 반환 시간 최소화, 운영체제의 오버헤드 최소화

바람직한 스케줄링 정책

  • CPU 이용을 최대화, 응답 시간 및 반환 시간 최소화, 대기 시간 최소화

 

프로세스 스케줄링 기법

비선점(Non-Preemptive) 스케줄링

  • 한 프로세스가 일단 CPU를 할당받으면 다른 프로세스가 CPU를 강제로 빼앗을 수 없고, 사용이 끝날 때까지 기다리는 방식
  • 모든 프로세스들에 대한 요구를 공정히 처리하여 응답 시간의 예측이 용이함
  • CPU의 사용 시간이 짧은 프로세스들이 사용 시간이 긴 프로세스들로 인하여 오래 기다리는 경우가 발생할 수 있음
FIFO
(First In First Out)
- 준비 상태 큐에 도착한 순서대로 CPU를 할당하는 기법
- FCFS(First Come First Service)라고도 함

예) FIFO 스케줄링에서 다음과 같은 3개의 작업에 대하여 모든 작업들의 평균 대기 시간 및 평균 반환 시간은?

- 실행 순서 : P1 → P2 → P3
- 대기 시간 : P1(0), P2(10), P3(40)
- 평균 대기 시간 : (0 + 10 + 40) / 3 = 16.66
- 반환 시간 : P1(13), P2(10), P3(50)
- 평균 반환 시간 : (13 + 45 + 50) / 3 = 36
SJF
(Shortest Job First)
- 준비 상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 스케줄링 기법
- 평균 대기 시간을 최소화함

예) SJF 스케줄링에서 다음과 같이 4개의 작업이 준배 상태 큐에 있을 때 모든 작업들의 평균 대기시간 및 평균 반환 시간은?

- 실행 순서 : P2 → P1 → P4 → P3
- 대기 시간 : P2(0), P1(3), P2(9), P4(16)
- 평균 대기시간 : (0 + 3 + 9 + 16) / 4 = 7
- 반환 시간 : P2(3), P1(9), P4(16), P3(24)
- 평균 반환 시간 : (3 + 9 + 16 + 24) / 4 = 13
HRN
(Highest Response
-ratio Next)

- 어떤 작업이 서비스받을 시간과 그 작업이 서비스를 기다린 시간으로 결정되는 우선순위에 따라 CPU를 할당하는 기법
- 우선순위 계산식 = (대기 시간 + 서비스를 받을 시간) / 서비스를 받을 시간

예) HRN 방식으로 스케줄링할 경우, 입력된 작업이 다음과 같을 때 처리되는 작업 순서는?


우선순위
(Priority)
- 준비 상태 큐에서 대기하는 프로세스에게 부여된 우선순위가 가장 높은 프로세스에게 먼저 CPU를 할당하는 기법
- 우선순위가 낮은 프로세스는 무한 정지(Indefinite Blocking)가 발생할 수 있으며, 에이징(Aging) 기법으로 이를 해결할 수 있음

 

선점(Preemptive) 스케줄링

  • 한 프로세스가 CPU를 할당받아 실행 중이라도 우선순위가 높은 다른 프로세스가 CPU를 강제적으로 빼앗을 수 있는 방식
  • 긴급하고 높은 우선순위의 프로세스들이 빠르게 처리될 수 있음
  • 선점을 위한 시간 배당에 대한 인터럽트용 타이머 클럭(Clock)이 필요함
  • 온라인 응용에 적합한 스케줄링
RR
(Round Robin)
- 주어진 시간 할당량(Time Slice) 안에 작업을 마치지 않으면 준비 상태 큐의 가장 뒤로 배치됨
- 시분할 시스템(Time-sharing System)을 위해 고안된 방식
- 시간 할당량이 커지만 FCFS 스케줄링과 같은 효과를 얻을 수 있음
- 시간 할당이 작아지면 프로세스 문맥 교환이 자주 일어남
SRT
(Shortest Remaining Time)
- 작업이 끝나기까지의 실행시간 추정치가 가장 작은 작업을 먼저 실행시키는 기법
- FIFO 기법보다 평균 대기 시간이 감소됨
- 작업 시간이 큰 경우 오랫동안 대기하여야 함
다단계 큐
(Multi-Level Queue)
프로세스들을 우선순위에 따라 상위, 중위, 하위 단계의 단계별 준비 상태 큐를 배치하는 기법
다단계 피드백 큐
(Multi-Level Feedback
Queue)
각 준비 상태 큐마다 부여된 시간 할당량 안에 완료하지 못한 프로세스는 다음 단계의 준비 상태 큐로 이동하는 기법

 

728x90
반응형

'정보처리기사 > 프로그래밍 언어 활용' 카테고리의 다른 글

디스크 스케줄링  (0) 2023.08.05
기억 장치 관리  (0) 2023.08.05
프로세스 관리  (0) 2023.08.04
운영체제의 개요  (1) 2023.08.04
스크립트 언어와 Python  (0) 2023.08.04