[운영체제] Scheduling Policies

한상진·2021년 4월 25일
0

운영체제

목록 보기
2/4






📕CPU Scheduling

CPU 스케쥴링은 메모리 안에서 실행 준비된 process들에게 CPU의 사용을 할당시키는 방법이다.
스케쥴링의 결정 시점은 다음과 같이 프로세스의 상태 변화가 생길 때이다.

  1. running → waiting (interrupt)
  2. running → ready (time-out)
  3. waiting → ready (wake-up)
  4. running → Terminated

OS에서는 이 스케쥴링을 다음의 두 가지의 방식으로 나눈다.

Non-preemptive (비선점형)

🎈Non-preemptive 스케쥴링은 결정 시점 중, 위의 1번~4번의 상황에서만 스케쥴링이 발생한다.
🎈어떤 process가 CPU를 할당 받으면, 그 프로세스가 종료되거나 입출력 요구가 발생하여 자발적으로 중지될 때 까지 계속 실행되도록 보장한다.
🎈순서대로 처리되는 공정성이 있고, 다음에 처리해야 할 프로세스와 관계없이 응답 시간을 예상할 수 있다.
🎈다만, 만약 한 process가 오랜 시간동안 CPU를 할당받게 되면 다른 process들을 오래 대기시킬 수 있으므로 처리율이 떨어질 수 있다는 단점이 있다.

Preemptive (선점형)

🎈Preemptive 스케쥴링은 Non-preemptive 스케쥴링에 의해 스케쥴링되는 시점 빼고는 모두 다 Preemptive 스케쥴링이 발생한다.
🎈한 process가 CPU를 할당받고 있는 와중에도 강제로 다른 process에게 CPU할당을 넘길 수 있다. 따라서 공평하게 CPU할당을 부여할 수 있거나, 우선순위가 더 높은 process의 처리를 먼저 끝낼 수 있는 등의 장점이 있다.
다만 kernel mode에서의 process처리, 혹은 OS의 중요한 부분에서의 process처리 등에서 Preemptive 스케쥴링이 가능한지는 상황에 따라 고려되어야한다.


📕Scheduling Algorithm

스케쥴링에는 스케쥴링 방식에 따른 알고리즘이 있다.
수업시간에는 다음의 5가지 알고리즘을 배웠다.

Non-preemptive Scheduling

  • FCFS(First-Come-First-Served) - 선입선출 기준 처리
  • SJF(Shortest-Job-First) - 프로세스당 총 소요시간 기준 처리

Preemptive Scheduling

  • SRTF(Shortest-Remaining-Time-First) - 남은 소요시간이 짧은 것 기준 처리
  • Priority - 우선순위 기준 처리
  • RR(Round-Robin) - 모든 프로세스에 번갈아가면서 공평한 CPU할당 처리

또한 알고리즘이라면 성능을 측정할 수 있어야하는데, 스케쥴링 알고리즘을 평가할 수 있는 항목은 5가지 요소가 있다.

CPU utilization : CPU의 총 작동 시간
Throughput : 특정 시간동안 실행될 수 있는 프로세스의 개수
Turnaround time : 메모리에 들어가기 위해 기다리는 시간 + ready queue에서 기다리는 시간 + CPU 실행하는 시간 + I/O하는 시간
Waiting time : 프로세스가 ready queue에서 기다리는 시간의 총 합
Response time : 프로세스가 응답을 시작할 때까지 걸리는 시간

profile
공부방

0개의 댓글