Process Scheduling

happiyoung_·2026년 1월 30일

운영체제

목록 보기
4/11

1. 프로세스 스케줄링

CPU 자원을 언제, 어느 프로세스에게 배당할 것인지를 결정하는 작업

성능 기준

  • 중앙처리장치 이용률 : CPU 수행시간 또는 시스템 구동 시간
  • 처리량 (Throughput) : 단위 시간당 완료되는 프로세스 수
  • 대기시간 (Waiting Time) : 준비 큐에서 대기하는 시간
  • 응답시간 (Response Time) : 작업을 제출한 후 첫 응답이 올 때까지의 시간
  • 반환시간 (Turnaround Time) : 프로세스가 시스템에 진입하여 작업을 완료하기까지의 시간

2. 방법별 분류

(1) 선점 스케줄링 (preemptive scheduling)

뺏기 가능

  • 빠른 응답 시간을 요구하는 시분할 시스템에 유용
  • 문맥교환으로 인한 오버헤드 초래
  • 응답시간 예측 힘듦
  • 기법 : RR, SRT, MLQ, MFQ, 우선순위 스케줄링

(2) 비선점 스케줄링 (NON-)

못뺏음

  • 모든 프로세스에 대한 대우는 공정히 처리
  • 짧은 작업이 긴작업을 기다리는 경우 발생
  • 응답시간 예측가능
  • 기법: FCFS, SJF, HRN, 우선순위 스케줄링

3. 프로세스 스케줄링 알고리즘

1) FCFS 스케줄링 - 비선점

First Come First Served

  • 대기큐에 도착 순서에 따라 cpu 할당
  • 선입선출
  • 겉보기엔 공정, 긴작업이 짧은 작업을 오랫동안 기다리게 할 수 있음
  • 중요한 작업이 중요하지않은 작업을 기다리게 함
  • 대화식 시스템에는 적합 x

2) RR 스케줄링 - 선점

Rround Robin

  • FCFS 에 의해 프로세스들이 내보내지며 각 프로세스는 같은 크기의 CPU 시간을 할당
  • 주어진 할당 시간내에 처리하지못하면 다음 프로세스로 넘어감. (큐의 가장 마지막으로 이동)
  • 다중 프로그래밍 시스템, 시분할 시스템에 효과적
  • 할당시간이 길면 FCFS에 수렴
  • 할당시간이 짧으면 문맥교환으로 부하 발생

3) SJF 스케줄링 - 비선점

Shortest Job First

  • 기다리고 있는 작업중에서 수행시간이 가장 짧다고 판정된 프로세스 먼저 수행
  • 기아상태 발생 가능
  • 최소의 평균대기시간을 가짐 벗 비현실

4) SRT 스케줄링 - 선점

Shortest Remaining Time

  • SJF와 마찬가지로 새로 도착한 프로세스를 포함하여 처리가 완료되는데, 가장 짧은 시간 소요된다고 판단되는 프로세스 먼저수행
  • 현재 실행중인 프로세스라도, 남은 처리 시간이 더짧다고 판단되면 언제라도 실행중인 프로세스가 선점 당함 (기아상태 발생가능)
  • 적은 대기시간, 선점 오버헤드 발생

5) HRN 스케줄링 - 비선점

Highest Response ratio Next

  • SJF의 스케줄링 긴작업과 짧은 작업간의 지나친 불평등을 보완한 에이징 기법
  • 오래 기다린 프로세스는 우선순위가 높아지게 되어 기아상태 해결
  • 우선순위 = (대기시간 + 서비스를 받을 시간) / 서비스를 받을 시간

6) 다단계 큐 스케줄링 - 선점

Multi Level Queue

  • 여러종류의 그룹으로 나누어 여러개의 큐를 이용하는 기법
  • 각 큐의 독자적인 스케줄링 알고리즘 존재
  • 큐내의 작업은 FCFS, 큐 간 작업은 선점
  • 프로세스 성격에 따라 분류가능

7) 다단계 피드백 큐 스케줄링 - 선점

프로세스가 큐들 사이에 이동하는 기법

  • 새로 들어온 프로세스에게 높은 우선순위 할당 단계 1에서 즉시 수행
  • 이후 점차 낮은 우선순위를 부여하여 단계 N 쯤되어 나중에는 그작업이 완료 될 때까지 라운드로빈으로 순환

8) 우선순위 스케줄링

각 프로세스에게 우선순위를 부여하여 순위가 높은 순서대로 처리하는 방법 ⇒ 비선점 선점 다 가능

** 기아상태가 발생하는 스케줄링 기법

→ SJF, SRT, 우선순위 스케줄링

0개의 댓글