2.2 CPU 스케줄링의 목적과 유형 스케줄링의 목적

Slides:



Advertisements
Similar presentations
Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved. 제7강제7강.
Advertisements

OS 소개 Introduction 설계목표 기본 용어 Resource Management History.
Mar OSEK/VDK Woo Dong Kyun.
소프트웨어와 운영체제.
제 4 장 프로세스 Section 1 프로세스의 개념 Section 2 프로세스 스케줄링
제 2장 컴퓨터 구조.
컴퓨터란? (I) nlip.pcu.ac.kr.
정보통신실습 및 특강(5)
Operating Systems Overview
운영체제 레프토 (4장 CPU 스케줄링) b반 박상수.
Uniprocessor Scheduling
제 2 장 프로세스 관리 2.1 개요 프로세스 스케줄링은 준비완료(ready) 상태에 있는 프로세스들 중 어느 것을 중앙처리장치에 할당시킬 것인가를 결정 중앙처리장치 처리율(throughput)의 최대화와 반환 시간(turnaround time)의 최소화 2.2 프로세스.
5.1.1 CPU-I/O 버스트 주기(CPU-I/O Burst Cycle)
운영체제 (Operating Systems)
프로세스 관리.
6장 단일 프로세서 스케줄링.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
1. 스케줄링 개요 [그림 6-16] 프로세스의 반환, 대기, 반응 시간
디스크 스케줄링 채상훈.
임베디드 운영체제 (리눅스 중심) Lecture #2.
운영체제 (Operating System) (하드웨어와 응용 프로그램 사이의 인터페이스 역할을 담당하는 시스템 소프트웨어)
DSP와 TMS320F28x의 이해.
MicroC/OS-II 1. Miscellaneous
CPU스케줄링(CPU Scheduling) ~
Chapter 5. CPU 스케줄링 (CPU Scheduling)
Chapter 10. Interrupt.
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
Multiprocessor and Real-time Scheduling
Multiprocessor and Real-time Scheduling
2 운영체제 소개.
Chapter2 프로세스란 조은성.
Chapter 5. CPU 스케줄링 (CPU Scheduling)
Lecture #3 프로세스(Process).
Geek-OS Project 정영진
Xen and the Art of Virtualization
디스크 스케줄링 C 최 은 선.
제3,4,5장 프로세스, 스레드 관리 CPU 스케줄링.
Operating system #5 Disk Scheduling
Chapter 10. 파일 시스템 인터페이스(File System Interface)
5.1.1 CPU-I/O 버스트 주기(CPU-I/O Burst Cycle)
6 단일 프로세서 스케줄링.
Computer System Architecture
제2장 프로세스 이나현.
제5장 CPU스케줄링(CPU Scheduling)
제10,11,12장 파일시스템 디스크 스케줄링.
Environmental Impact Assessment
운영체제(Operating System)
운영체제 (Operating Systems) (Memory Management Strategies)
디스크 스케줄링 C 박상수.
Linux/UNIX Programming
하드웨어 vs 소프트 웨어 볼 수 있다. 만질 수 있다. 볼 수 없다. 만질 수 없다. 키보드, 마우스 ? 하드웨어
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
제7강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
운영체제 발표자료 B반 최민웅.
23. Unix 시스템 커널. 개요 커널의 기본 서비스 커널의 특징 참고서적 프로세스 관리 장치 관리 파일 관리 가상 메모리
제 2장 프로세스 관리와 CPU 스케줄링 2.1 프로세스의 개념 2.2 CPU 스케줄링의 목적과 유형
Chatpter 09 입출력 시스템과 디스크 관리 01 입출력 시스템 관리 02 디스크의 구조와 스케줄링 03 RAID 요약
운영체제 (Operating System) (하드웨어와 응용 프로그램 사이의 인터페이스 역할을 담당하는 시스템 소프트웨어)
제4장 CPU 스케줄링 이나현.
운영체제 학번 : 이름 : 이원석 반 : 2B.
임베디드 시스템 개요 Lecture #1.
제4장 CPU 스케쥴링 운영체제 1-C반 박소라.
Windows System Programming
Linux/UNIX Programming
Lecture #7 CPU Scheduling.
Virtual Machine Management
5.1 개요 고정 헤드 디스크 유동 헤드 디스크 드럼 플로피디스크
컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부.
CPU 스케줄링 장우영.
가상 기억장치 (Virtual Memory)
Presentation transcript:

2.2 CPU 스케줄링의 목적과 유형 2.2.1 스케줄링의 목적 1) 시스템 측면의 목적 ① 모든 프로세스에 대한 공평성(fairness) 유지. ② 처리 능력(throughput)의 극대화. ③ 중요 프로세스에 대해서는 우선 처리(priority)가 가능토록 함. ④ 시스템 내 자원의 공평한 할당.

2) 사용자 측면의 목적 ① 대화식 프로세스의 경우, 응답 시간(response time)이 최소. ② 일괄처리 작업의 경우, ① 대화식 프로세스의 경우, 응답 시간(response time)이 최소. ② 일괄처리 작업의 경우, 반환 시간(turnaround time)이 최소. ③ 처리되는 작업이 무한 대기 (infinite postponement) 되지 않도록. ④ 처리 작업의 완료시간 예측이 가능 하여야 함.

▶ 스케줄링 목적의 상반성 . <예 1> 응답시간의 최소화를 위한 CPU의 계속 할당 ▶ 스케줄링 목적의 상반성 . <예 1> 응답시간의 최소화를 위한 CPU의 계속 할당 은 전체적인 처리 능력이 떨어질 수도 있다. <예 2> 중요 프로세스에 대해 처리의 우선권을 계속 부여하다 보면, 무한 대기되는 프로세스가 나타날 수도 있다.

▶ CPU 스케줄링의 정책을 결정하거나, 스케줄링 알고리즘을 구현할 때의 고려사항 ① 프로세스의 형태? - 일괄 처리 (Batch) 형태인가? 대화형 (TSS) 형태인가? ② 프로세스의 CPU 사용 비율과 I / O 사용 비율? - 연산 위주의 프로세스인가? 또는 I/O 위주의 프로세스인가?

③ 프로세스에게 우선 순위 는 부여하는가? ④ 우선 순위가 높은 프로세스에 의해서 선점(preempt) 되는 빈도는 어떠한가? ⑤ 페이지 부재(page fault)의 발생 빈도는?

2.2.2 CPU 스케줄링의 3가지 유형 ■ 장기, 중기, 단기 : 그 기능이 수행되는 주기가 짧은가(단기), 긴가(장기), 그 중간 정도의 주기( 중기)인 가에 따라서 붙인 것임. ▶ 장기 스케줄링 (long-term scheduling) ▶ 중기 스케줄링 (medium-term scheduling) ▶ 단기 스케줄링 (short-term scheduling)

■ 장기 스케줄링 ■ 중기 스케줄링 ■ 단기 스케줄링 ▶ 상위 단계(high-level) 스케줄링, ■ 장기 스케줄링 ▶ 상위 단계(high-level) 스케줄링, ▶ 작업 스케줄링 (job scheduling) 이라고도 함. ▶ “어떤 작업”이 시스템에 들어와서 처리될 것인가를 결정 하고, 해당 작업을 주기억 공간으로 적재하는 일을 담당. ■ 중기 스케줄링 ▶ 중간 단계 (intermediate-level) 스케줄링 ▶ “연기된 대기와 연기된 준비” 등의 교체 작업” (Swap in 또는 Swap out) 을 담당. ■ 단기 스케줄링 ▶ 하위 단계 (low-level) 스케줄링 ▶ “준비, 실행, 대기”의 기본적 상태 전이 를 담당.

(그림 2.10) CPU 스케줄링의 3가지 유형과 단계 장 기 중 기 단 기 RUN (실행) READY (준비) NEW (생성) EXIT (종료) BLOCK (대기) SUSPENDED BLOCK (연기된 대기) SUSPENDED READY (연기된 준비)

1) 장기 스케줄링 ▶ 일괄 처리되는 작업들은 CPU의 처리 능력과 관계없이, 실제로 시행이 되기 전에 디스크와 같은 보조기억 장치에 저장(Spooling 개념) 됨. ▶ 장기 스케줄러(Long-term Scheduler)는 보조기억 장치에 저장되어, 처리를 원하는 여러 작업들 중에서 어떤 작업을, 몇 개나 주기억 장치에 적재 시킬 것인가를 담당.

▶ 장기 스케줄러는 시스템의 다중 프로그래밍의 정도를 담당. ▶ 어떤 작업이 장기 스케줄러에 의해서 받아들여 졌다는 것은 , 그 작업이 하나의 프로세스가 되어 "단기 스케줄러(short-term scheduler)의 준비 큐 (ready queue)” 에 들어 갔다는 것을 의미함. JOB 큐 NEW 큐 준비 큐 (READY)

▶ 일부의 시스템의 경우, 새롭게 생성된 프로세스를 "교체 (swap out)의 의미를 갖고 있는 연기된 준비 큐"에 넣어 두기도 함. ▶ 대화형 처리(interactive job)를 하는 시분할 시스템(TSS)의 경우는 대부분 장기 스케줄러가 없으며, 발생되는 프로세스를 단지 준비 큐에 넣어 주는 역할만 하게 됨.

▶ 프로세스의 선택에 100만분의 수초 단위로 선택하는 단기 스케줄러에 비해 작업의 선택 시간이 아주 긴 주기임. ▶ 시스템에 새롭게 들어 오는 “작업의 시간 주기” 는 분 단위이며, 하나의 작업이 시스템을 빠져 나갈 때 (종료 상태에서 해제시)에만 장기 스케줄러가 작동되어, 새로운 작업을 선택하여 시스템 내에 적재 시키게 됨.

2) 중기 스케줄링 ▶ 프로세스를 교체하여 주기억 공간 내에 들어오게 하거나(swap in), 나가게 하는(swap out) 일을 담당. ▶ 프로세스를 주기억 장치로부터 빼낼 수 있기 때문에, 필요한 경우에 다중 프로그래밍의 정도를 낮출 수 있음. (시스템의 처리 효율 중시) ▶ 교체 작업의 효과 : 교체되어 나간 프로세스가 소유하던 모든 자원(예 : 주기억 공간 등)을 다른 프로세스가 사용할 수 있게 해주는 효과를 기대.

3) 단기 스케줄링 ▶ 분배기(dispatcher)라고도 함. 주기억 장치 내의 준비 상태에 들어와 있는 프로세스들 중에서 다음에 실행시킬 프로세스를 선택하여 CPU를 할당 시켜 주는 일을 담당. ▶ CPU를 사용하고 있는 프로세스가 연기(suspension)나, 선점(preemption)을 당하는 경우에, 다음에 CPU를 할당 시킬 프로세스를 선택해 주는 일을 시작하게 됨. ( 대기 로 갈 때 포함)

CPU의 사용시간 초과(time out), I/O 인터럽트, ▶ 프로세스의 선점이나 연기의 요인 CPU의 사용시간 초과(time out), I/O 인터럽트, OS나 오퍼레이터의 요청 등. ▶ 단기 스케줄러는 CPU의 할당 작업과 관련하여, 해당 프로세스가 갖고 있는 프로세스 제어 블록(PCB)의 정보 적재와 사용자 모드(user mode)로의 전환 작업 등도 담당함.

CPU 스케줄링의 큐 모형 예 CPU “단기 스케줄러 담당” 준비(Ready) 큐 일괄 작업 큐 종료 (EXIT) 일괄 처리 연기된 준비 큐 대화형 작업 * 참고 : 연기된 대기 큐 선은 중기 스케줄러가 담당함. “장기 스케줄러 담당” 대기(Block) 큐

2.3 비선점 단기 스케줄링 알고리즘 2.3.1 선점과 비선점의 개념 2.3 비선점 단기 스케줄링 알고리즘 2.3.1 선점과 비선점의 개념 ■ 선점(preemption) : 어떤 프로세스가 CPU를 사용하고 있을 때, 그보다 높은 우선 순위를 갖는 프로세스에게 CPU를 양보함(선점 당함). ▶ 대화형으로 처리되는 “시분할 시스템” 일정시간이 지나면 무조건 다른 프로세스에게 CPU의 사용을 양보하므로 근본적으로 "선점 알고리즘"을 사용하는 시스템이라고 할 수 있음.

■ 비선점(non-preemption)의 의미 : ▶ 문맥 교환, 상황교환 선점의 경우에는 CPU의 사용을 일시 중단하고, 다른 프로세스에게 CPU의 사용권을 넘겨주므로, 지금까지 수행한 모든 내용들을 보관하여 둔 후, 새로 시작되는 프로세스와 관련된 내용을 시스템에 새로 적재 시켜 주어야 함. < Context Switching > 많은 시간과 경제적 손실 (overhead) ■ 비선점(non-preemption)의 의미 : 하나의 프로세스가 CPU를 할당 받은 후에는, 스스로 CPU를 반납할 때까지 다른 프로세스가 CPU를 선점할 수 없는 것.

▶ 비선점 방식의 잇점 CPU를 할당 받은 순서대로 차례차례 처리되는 공정성, 대기중인 프로세스와 관계없이 응답 시간 예측 가능성. ▶ 비선점 방식의 문제점 1) CPU의 사용시간이 짧은 프로세스들이 사용시간이 긴 프로세스들로 인하여 오래 기다리게 되는 문제. 2) 무한대기 : 어떤 프로세스가 오류로 인하여 CPU 를 계속 사용하게 될 때, 발생.

2.3.2 FCFS(First Come First Service) 알고리즘 ■ 가장 간단한 기법의 비선점 스케줄링 알고리즘. FIFO(First In First Out) 알고리즘 이라고도 함. ▶ 프로세스가 준비 큐에 도착한 순서에 따라 CPU를 할당 받게 되고, 일단 CPU를 차지하고 난 후에는 그 프로세스가 CPU를 반납할 때까지, 다른 프로세스가 CPU를 선점할 수 없게 됨.

^ ▶ 준비 큐(ready queue)는 FIFO 큐 의 형태 준비 큐 실행 CPU 선택 가장최근에 들어온 프로세스 가장 먼저 PCB3 PCB2 PCB1 선택 가장최근에 들어온 프로세스 가장 먼저 들어온 프로세스

▶ 모든 프로세스를 동등하게 취급하는 공평성을 가짐 ▶ 작업의 완료시간을 예측하기가 용이함 ▶ 각 프로세스 간에 있어서 응답 시간의 차이가 적어짐 <문제점> CPU의 사용이 아주 긴 프로세스가 CPU를 먼저 할당 받은 경우 : 짧은 CPU 사용을 요구하는 프로세스들이 오래 기다리게 됨. - FCFS 알고리즘은 CPU의 사용이 긴 프로세스에게 유리한 알고리즘임.

■ 다음 표에서 ‘ CPU 반환시간 / CPU 요구시간 ‘ 의 비는 프로세스 1과 프로세스 2는 1 이 되며, 프로세스 3은 10, 프로세스 4는 1.9가 된다. ( 편차가 큼 )

4.3.2 FCFS 알고리즘(계속) ▶ 평균 반환시간 : Ta = ( Ti) / n ▶ 대화식 시스템에는 부적합. 실제의 적용은 다른 스케줄링 알고리즘에 보조적으로 사용 ■ 반환 시간(turn-around time)과 평균 반환 시간. ▶ Pf 는 프로세스 종료시간, Pa 는 프로세스 도착시간, Ps 는 CPU 시작시간, n 은 프로세스의 수. ▶ 반환 시간 : T = Pf - Pa ▶ 대기 시간 : W = Ps - Pa ▶ 평균 반환시간 : Ta = ( Ti) / n ▶ 평균 대기시간 : Tw = ( Wi) / n 4.3.2 FCFS 알고리즘(계속) n  i=1 n  i=1

■ CPU 사용 요구시간을 알고 있는 4개의 프로세스에 대한 평균 반환시간과 평균 대기시간의 계산. [예 1] 처리 순서 : P1(26)  P2(3)  P3(4)  P4(5) 대기시간 25 27 30 P1 0 1 2 3 26 P1 종료 29 P2 종료 33 P3 종료 38 P4 종료 대기시간(27) 대기시간(25) 처리시간(26) 대기시간(30) 처리시간(3) 처리시간(4) 처리시간(5) P2 P3 P4 평균 반환시간 = (26 + 28 + 31 + 35) / 4 = 30.0 평균 대기시간 = (0 + 25 + 27 + 30) / 4 = 20.5

[예 2] 처리 순서 : P2(3)  P3(4)  P4(5)  P1(26) 대기시간 2 5 9 P2 처리시간(3) 대기시간(2) 처리시간(4) P3 대기시간(5) 처리시간(5) P4 P1 대기시간(9) 처리시간(26) 0 1 2 3 P2종료 7 P3종료 12 P4종료 38 P1종료 평균 반환시간 = (3 + 6+ 10+ 35) / 4 = 13.5 평균 대기시간 = (0 + 2 + 5 + 9) / 4 = 4.0

▶ 입력되는 프로세스의 순서에 따라 평균 반환/대기 시간이 크게 달라질 수 있다 ▶ 입력되는 프로세스의 순서에 따라 평균 반환/대기 시간이 크게 달라질 수 있다. ▶ 평균 반환시간을 짧게 하기 위해서는 CPU 사용시간이 짧은 프로세스를 먼저 처리하는 것이 좋다는 것을 알 수 있음.

2.3.3 SJF 알고리즘 : SPN, SJN ▶ 준비 큐에 있는 프로세스(혹은 작업) 중에서 ■ Shortest Job First 스케줄링 알고리즘 짧은 작업 우선' 알고리즘 , SPN(shortest process next) 짧은 프로세스 다음 선택 ▶ 준비 큐에 있는 프로세스(혹은 작업) 중에서 CPU 수행시간이 가장 짧다고 판단되는 프로세스를 준비 큐의 헤드로 이동시켜, 다음의 CPU 시간을 차지하도록 하는 비선점 스케줄링 기법.

▶ CPU 수행시간이 가장 짧은 프로세스에게 CPU 사용권을 우선적으로 부여하므로, 주어진 프로세스의 집합에 대해서 평균 대기시간이 최소가 되는 최적 알고리즘이 됨. ▶ 대기하고 있는 프로세스의 수를 줄여 주는 효과도 있으며, CPU 사용을 짧게 요구하는 프로세스에게 CPU 사용의 우선권을 주는 알고리즘.

▶ 문제점 : CPU 사용시간이 긴 프로세스가 기아 상태(starvation)에 빠질 수 있다. 정보를 얻기 어렵다. - SJF 알고리즘은 CPU 사용시간의 예측을 사용자에게 의존하게 되며, 규칙적으로 같은 작업이 수행되는 상황 하에서는 적당한 예측이 가능하다.

▶ SJF 알고리즘은 일괄처리 시스템의 장기 스케줄링 (job 스케줄링)에는 유리하게 사용될 수 있으나, 단기 스케줄링에는 적용하기가 어렵다. ▶ 단기 스케줄링에 적용하는 경우에는, 차기의 CPU 버스트 시간을 정확히 알 수 없으므로 이전의 CPU 버스트 시간과 비슷할 것이라는 가정하에 시간을 예상하여 처리할 수 있음.

n + 1 번째의 CPU 사용 시간 C n+1 은 다음과 같이 예측할 수 있다. C n+1 =  Ti ------ (식 1) ▶ Ti 를 이 프로세스의 i 번째 CPU 수행 시간이고, n을 지금까지 CPU를 차지했던 횟수라고 하면, n + 1 번째의 CPU 사용 시간 C n+1 은 다음과 같이 예측할 수 있다. 1 n C n+1 =  Ti ------ (식 1) n i = 1

<식 1>에서 바로 이전의 Cn과 Tn이 이미 계산된 결과로 저장되어 있다면, 다음과 같은 식으로 바꾸어 계산량을 줄일 수 있다. C n+1 = T n + C n n n

Cn+1 =  Tn + (1 -  )Cn (단, 0    1) ▶ 차기의 CPU 버스트 시간을, 앞서 이미 수행된 CPU 버스트 시간의 지수적 평균(exponential average)으로 생각해 보자. <식의 재정의>  는 예상치에 대한 가중값 조절치 Cn+1 =  Tn + (1 -  )Cn (단, 0    1)

▶  = 0 이면 ‘Cn+1 = Cn’이 되어, 가장 최근의 CPU 버스트 시간이 영향을 끼치지 않음을 의미, ▶  = 1이 되면 'Cn+1 = Tn'이 되어, 가장 최근의 CPU 버스트 시간만 영향을 끼치게 됨을 의미함. ▶ 평균적으로 a = 1 / 2 로 간주하는 경우 : 과거의 전체 상황과 현재의 가장 최근 상황이 동일 하게 영향을 주는 것으로 사용.

▶ 지수적 평균의 성격은 Cn+1을 Cn으로 계속 치환할 때, 이 되며, a와 (1- a )는 1보다 작은 값이므로 연속되는 각 항의 가중치는 점점 작아져서 앞 항보다 영향을 덜 미치게 됨을 알 수 있다. ▶ 그림 3.14는 a = 0.5 로 하였을 때의 CPU 버스트를 예측해 본 것이다. C n+1= aTn + (1-a) a Tn-1 + (1-a)2a Tn-2 + … + (1-a)ja Tn-j + ...

< 차기 CPU 버스트 시간의 예측 >

평균 반환시간(FCFS) = (9 + 14 + 16 + 23) / 4 = 15.5 <예 1> CPU 사용 요구시간을 알고 있는 4개의 프로세스에 대해서 SJF와 FCFS 알고리즘의 비교 (4개의 프로세스는 거의 동일한 시간에 준비 큐에 도착한 것으로 간주함) FCFS의 처리 순서 : P1  P2  P3  P4 SJF의 처리 순서 : P3  P2  P4  P1 평균 반환시간(FCFS) = (9 + 14 + 16 + 23) / 4 = 15.5 평균 반환시간(SJF) = (2 + 7 + 14 + 23) / 4 = 11.5 프로세스 번호 CPU 버스트 시간 1 9 2 5 3 4 7

<예 2> CPU 사용시간을 알고 있고, 준비 큐에 도착하는 시간이 각기 다른 4개의 프로세스에 대한 평균 반환시간과 평균 대기시간의 계산. 처리시간(6) 대기시간(8) 처리시간(4) 대기시간(4) 처리시간(1) 대기시간(4) 처리시간(2) 0 1 2 3 6 P1 종료 7 P2 종료 9 P3 종료 12 P4 종료 평균 반환시간 = (6 + 12 + 5 + 6) / 4 = 7.25 평균 대기시간 = (0 + 8 + 4 + 4) / 4 = 4.0

2.3.4 HRRN 알고리즘(시작) SJF 알고리즘의 단점을 보완한 기법. ■ HRRN (highest response ratio next) : HRN SJF 알고리즘의 단점을 보완한 기법. SJF : CPU 요구시간 이 짧은것 우선, 평균 대기시간이 최소. <SJF 알고리즘의 단점> CPU 버스트가 짧은 작업에 우선권을 주기 때문에 대기 시간(waiting time)이 긴 작업에 대해서는 불평등을 초래하게 되는 문제가 있음.

2.3.4 HRRN 알고리즘(계속) CPU 요구시간 ▶ SJF 알고리즘과 마찬가지로 비선점 방식수행. ▶ 각 작업에 대한 처리의 우선순위를 결정 방법 : 해당 작업이 요구하는 CPU 버스트 시간 이외에, 대기하고 있는 시간까지도 고려하여 선정. ▶ HRRN 알고리즘의 우선 순위 결정 처리의 우선순위 값 = CPU 요구시간 대기시간 + CPU 요구시간

▶ 이 식의 결과값을 응답 비율(response ratio)이라고 하며, 그 결과가 1 일 때 최소값이 됨. ▶ 식의 결과가 1 이라는 것은 제일 처음으로 시스템에 들어온 작업(또는 ?)에 해당되며, CPU 요구 시간의 크기에 관계없이 대기한 시간이 없기 때문에 그 결과는 1 이 됨. ▶ 대기 시간이 있는 작업간에는 식의 결과값이 큰 프로세스에 대해서 높은 우선 순위를 부여함.

▶ 분모에 CPU 요구 시간이 있으므로, 똑같은 대기 시간을 갖는 작업간에는 CPU 요구 시간이 짧은 것이 우선 순위가 높게 된다.

▶ 예 1 : 같은 대기 시간을 가지면서, CPU의 요구 시간이 다른 경우에 대한 CPU 할당의 우선 순위 계산. 5 10 + 5 3 = P2의 우선순위 = 2 10 +2 6 P2가 먼저 선택됨(CPU 요구시간이 P1보다 짧다)

▶ 예 2 : 같은 CPU 요구 시간을 가지면서, 대기 시간이 다른 경우의 우선 순위 계산. 5 10 + 5 3 = P4의 우선순위 = 20 +5 P4가 먼저 선택됨(대기시간이 P3보다 짧다)

2.3.5 우선 순위(Priority) 알고리즘 ■ 처리될 작업에 대해, 우선 순위(일반적으로 숫자의 범위)를 부여하여 우선 순위가 높은 작업에게 처리의 우선권을 주는 방법. ▶ 우선 순위가 같은 경우에는 FCFS 정책을 따름. ▶ 기본적으로 비선점 정책으로 수행. ▶ 우선 순위의 등급은 내부적 요인과 외부적 요인에 따라 부여 함.

▶ 내부적 우선 순위 : ▶ 외부적 우선 순위 : 기계 내부의 성능에 영향을 미치는 작업 처리의 제한시간, 기계 내부의 성능에 영향을 미치는 작업 처리의 제한시간, 기억장소 요구량, 사용되는 화일의 수, 평균 CPU 버스트에 대한 평균 I/O 버스트의 비율 등을 고려하여 정함. ▶ 외부적 우선 순위 : 기계 외적인 요인으로 인한 정책적 배려. ▶ 우선 순위가 높은 작업이 계속해서 들어오게 되면, 우선 순위가 낮은 작업이 준비 큐(ready queue)에서 무한정 기다리게 되는 현상인 기아 상태(starvation)가 발생할 수 있음.

<기아상태 해결 방안> 우선 순위가 가장 낮은 작업이더라도 준비 큐에 입력된 시간이 경과함에 따라 우선 순위를 한 단계씩 높여 주어 언젠가는 실행이 될 수 있도록, 동적으로 우선 순위(dynamic priority)를 높여 주는 방법을 적용. ( Priority Aging ) ▶ 기본적으로는 비선점 형태로 수행되지만, 새롭게 준비 큐에 입력된 프로세스와 현재 CPU를 수행중인 프로세스 의 우선 순위를 계속적으로 비교하여, 우선 순위가 높은 프로세스에게 CPU를 선점 시키는 기법으로 알고리즘을 수정할 수도 있음. ( 선점 우선순위 정책 )

2.3.6 기한부 스케줄링 알고리즘 - 시스템에 제출된 작업의 최종 처리시간을 명시. 2.3.6 기한부 스케줄링 알고리즘 ■ 기한부(deadline) 스케줄링 알고리즘 - 시스템에 제출된 작업의 최종 처리시간을 명시. - 명시된 기한 내에 처리되지 못하면 작업 처리 실패. - 실시간 처리 시스템(real-time processing system)과 같은 분야에서 유용하게 적용됨. ▶ 하드 실시간 시스템(hard real-time system) - 한 작업에 대한 엄격한 시간 제한을 가짐. - 제 시간 내에 처리되도록, 모든 요청이 완료될 때까지 독점적으로 CPU를 사용하도록 한다. - 비선점형으로 운영.

▶ 소프트 실시간 시스템(soft real-time system) - 시간적 제약이 다소 약한 형태로 중요 작업에 대해서는 다른 작업에 비해 높은 우선순위를 부여하여 이 작업이 끝날 때까지 높은 우선순위를 계속 유지시키는 방식임. - 다른 스케줄링 알고리즘(예 : 라운드 로빈, 우선순위 등) 과의 복합적 사용을 목표로 하고 있고, 엄격한 시간 제 약을 받지 않는다는 면에서는 기한부 스케줄링으로 보 기에는 무리가 있을 수 있음. ■ 기한부 알고리즘의 전제사항     ‧ 자원 요구를 정확히 미리 제시하여야 함    ‧ 다른 사용자에 대한 서비스 감소, 기아상태를 예방      ‧ 다른 기한부 작업들의 동시 제출로 인한 문제를 해결