Microsoft PowerPoint - o5.pptx

Similar documents
Microsoft PowerPoint - o5.pptx

<4D F736F F F696E74202D20BBE7BABB202D204F DC7C1B7CEBCBCBDBA20BDBAC4C9C1D9B8B528BAF1BCB1C1A12CBCB1C1A1292E707074>

<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F E687770>

7 프로시저가활동중인것 8 실행중인프로시저의제어궤적 9 CPU가할당되는실체 운영체제가관리하는최소단위작업 (2) 프로세스상태전이도 (3) 주요프로세스상태 1 준비 (Read) 상태 : 실행하기위해준비하고있는상태 2 실행 (Run) 상태 :

Alternating Sequence of CPU And I/O Bursts 6.2

6주차.key

Module 6: CPU Scheduling

운영체제

Microsoft PowerPoint os5.ppt [호환 모드]

사용자수준의스레드 : 사용자의라이브러리에의해운영, 속도는빠르나, 구현이복잡하다. 커널수준의스레드 : 운영체제커널에의해운영, 속도는느리나, 구현이단순하다. 스케줄링 (Scheduling) 1) 스케줄링의정의 프로세스가생성되어실행될때필요한시스템의여러자원을해당프로세스에게할당

untitled

학습목표 ü 01_ 소개 ü 02_ 스케줄링수준 ü 03_ 선점형 / 비선점형스케줄링 ü 04_ 우선순위 ü 05_ 스케줄링목적 ü 06_ 스케줄링기준 ü 07_ 스케줄링알고리즘 ü 08_ 데드라인스케줄링 ü 09_ 실시간스케줄링 ü 10_ 자바스레드스케줄링 2/23

Microsoft PowerPoint - o8.pptx

Microsoft PowerPoint - StallingsOS6e-Chap09.ppt [호환 모드]

Figure 5.01

Microsoft PowerPoint - o4.pptx

PowerPoint 프레젠테이션

05( ) CPLV12-04.hwp

18차시.ppt

제11장 프로세스와 쓰레드

MS-SQL SERVER 대비 기능

리눅스 프로세스 관리

Microsoft PowerPoint - 알고리즘_2주차_1차시.pptx

슬라이드 1

Microsoft PowerPoint - StallingsOS6e-Chap04.pptx

1217 WebTrafMon II

chap 5: Trees

ESP1ºÎ-04

<4D F736F F F696E74202D C465F4B6F F6E662DB8AEB4AABDBABFA1BCADC0C7BDC7BDC3B0A3C1F6BFF8>

<4D F736F F F696E74202D20322DBDC7BDC3B0A320BFEEBFB5C3BCC1A6>

PCServerMgmt7

Chapter ...

C# Programming Guide - Types

Chap 6: Graphs

PowerPoint 프레젠테이션

Chapter 4. LISTS

vm-웨어-앞부속

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

슬라이드 1

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

, ( ) 1) *.. I. (batch). (production planning). (downstream stage) (stockout).... (endangered). (utilization). *

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

10주차.key

Integ

DE1-SoC Board

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Chapter #01 Subject

Microsoft PowerPoint - 30.ppt [호환 모드]

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

슬라이드 1

1 / OS 2 3 / 4 5 IBM 2

PRO1_04E [읽기 전용]

vm-웨어-01장


Solaris Express Developer Edition

Microsoft PowerPoint - polling.pptx

03_queue


APOGEE Insight_KR_Base_3P11

Microsoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx

adfasdfasfdasfasfadf

GNU/Linux 1, GNU/Linux MS-DOS LOADLIN DOS-MBR LILO DOS-MBR LILO... 6

Oracle9i Real Application Clusters

PowerPoint Presentation

1 처리능력 (Throughput) : 일정시간내에시스템이처리하는일의양 2 반환시간 (Turnaround time) : 시스템에작업을의뢰한시간부터처리가완료될때까지걸리는시간 3 사용가능도 (Availability) : 시스템을사용할필요가있을때즉시사용가능한정도 4 신뢰도

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint APUE(Intro).ppt

thesis

Here is a "PLDWorld.com"... // EXCALIBUR... // Additional Resources // µc/os-ii... Page 1 of 23 Additional Resources: µc/os-ii Author: Source: HiTEL D

Sharing Memory Between Drivers and Applications

2013년 1회 정보처리산업기사 실기.hwp

Backup Exec

[Brochure] KOR_TunA

2002년 2학기 자료구조

Microsoft PowerPoint - Introduction.pptx

Analyst Briefing

The Self-Managing Database : Automatic Health Monitoring and Alerting

Microsoft PowerPoint os5.ppt

슬라이드 제목 없음

Chap 6: Graphs

Microsoft PowerPoint - StallingsOS6e-Chap03.ppt [호환 모드]

운영체제란? PC를구입하면 Windows XP, Windows 7, Linux, MS-DOS Mac OSX, ios 운영체제 : Operating System 운영체제가없는컴퓨터? 컴퓨터 : 프로세서와메모리 전원을켜면어떤일이? 휘발성메모리 - 야생마 프로그램을실행하려면

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

untitled

DBPIA-NURIMEDIA

PowerPoint 프레젠테이션

KEY 디바이스 드라이버

Microsoft PowerPoint 자동설치시스템검증-V05-Baul.pptx

OCW_C언어 기초

ETL_project_best_practice1.ppt

¨ìÃÊÁ¡2

untitled

Microsoft PowerPoint - Java7.pptx

Abstract View of System Components

슬라이드 1

PowerPoint 프레젠테이션

침입방지솔루션도입검토보고서

Microsoft PowerPoint - 27.pptx

i-movix 특징 l 안정성 l 뛰어난화질 l 차별화된편의성

Transcription:

목표 5 장. CPU 스케줄링 multiprogramming 운영체제의기반인 CPU 스케줄링소개 다양한 CPU 스케줄링알고리즘 CPU 스케줄링알고리즘선택을위한평가기준 스케줄링알고리즘사례 1 2 5.1 기본개념 CPU-burst 시간의분포도 multiprogramming 의목적 CPU 이용률최대화 exponential ( e - x ) or hyperexponential distribution CPU-I/O Burst Cycle 프로세스실행은 CPU 실행과 I/O 대기의사이클로구성됨 CPU burst 분포 (see next page) CPU burst I/O burst I/O bound program a large number of short CPU burst a small number of long CPU burst CPU bound program 3 4

CPU Scheduler CPU Scheduling 시점 CPU scheduler (short-term scheduler) ready queue 에있는프로세스들중하나를선택하여이프로세스에게 CPU 를할당함 Job Queue CPU scheduling 결정은 process 가다음상황일때발생가능함 1. running 상태에서 waiting 상태로전환 ( 예. I/O wait, child termination wait) 2.running 상태에서 ready 상태로전환. (e.g. time-out) 3. waiting 상태에서 ready 상태로전환. (e.g. I/O completion, event occur) 4. Terminate. 비선점 (non-preemptive) 스케줄링 cooperative 스케줄링 1 번, 4 번경우는선택의여지가없으며, 이경우에만스케줄링 반드시스케줄링하여새프로세스를선택해야함 프로세스는종료하거나 block 될때까지 CPU 를계속점유 ( 예 ) windows 3.x, 예전 Mac OS 선점 (preemptive) 스케줄링 모든경우에스케줄링이가능 (2, 3 번경우포함 ) CPU 독점을방지하거나 (timer 사용 ), 프로세스우선순위를반영하고자할때 2, 3 번의경우 (ready queue 가변화 ) 에스케줄링할수있음 ( 예 ) 대부분의현대 OS 5 6 Preemptive 스케줄링의문제점과해결책 Kernel mode 에서의 preemption 공유데이터의일관성 (consistence) 유지문제 선점스케줄링방식에서, process 는프로세스는데이터를변경하는도중에다른프로세스에게선점되어변경된데이터를저장하기전에 CPU 를내어놓을수있다. 다수의프로세스가데이터를공유할때에경쟁적으로데이터를변경하면데이터일관성이유지되지않을수가있다. 경쟁조건 해결책 : 공유데이터접근에대한조정이필요 동기화방식 (6 장 ) user mode 에서의 preemption 선점형스케줄링을하는운영체제에서, 한프로세스가데이터를변경하는동안선점되어다른프로세스가같은데이터를읽거나수정한다면, 데이터일관성이유지되지않을수있음 사용자프로그램은운영체제가제공하는동기화방식을사용하여데이터일관성문제가발생하지않도록작성해야한다. Kernel mode 에서의공유데이터접근문제 모든커널루틴은커널데이터를공유함 커널은 system call 을통하여요청된프로세스의작업을처리할수있으며, 공유데이터를접근하는커널루틴이실행되는동안에, 인터럽트로인해서다른커널루틴에게선점되면공유데이터일관성유지가되지않을수있다. 커널에서의이러한문제발생은시스템전체에영향을주므로위험함 운영체제커널에서의 preemption 처리방법 비선점형커널 커널내에서의 preemption 을허용하지않음 (1) system call 이완료되거나 (2) I/O block 이발생할때까지기다린후에 context switching 을수행 실시간컴퓨팅을지원하는데부적합 선점형커널 커널내에서 preemption 을허용 커널내에서공유데이터접근에대한동기화를사용하여커널을작성해야함 실시간컴퓨팅지원에적합 7 8

디스패처 (Dispatcher) 5.2 Scheduling 기준 (Criteria) Dispatcher CPU 의제어권을 CPU 스케줄러가선택한프로세스에게주는모듈 다음작업수행 context 스위칭 CPU 동작모드를 user mode 로전환 선택한프로세스가다시시작하도록, user program 의적절한위치로이동 (jump) Dispatch 지연 (latency) 한프로세스를정지하고, 다른프로세스의수행을시작할때까지소요되는시간 dispatch latency 은가능한한작아야함 ( 빠르게동작 ) CPU 이용률 (utilization) 0 100% (CPU 를가능한한바쁘게유지 ) 처리량 (Throughput ) 단위시간당수행이완료된프로세스 총처리시간 (Turnaround time) 프로세스를실행하는데소요된시간 대기시간 (Waiting time) ready queue 에서대기하는시간 (CPU 실행과 I/O 대기가아닌시간 ) 응답시간 (Response time) 대화형시스템에서요청을한후에 ( 첫번째 ) 응답을받을때까지의소요시간 ( 최종출력을얻는시간이아님 )) 9 10 최적화기준 5.3 스케줄링알고리즘 (Scheduling Algorithm) 스케줄링알고리즘최적화기준 CPU 이용률과처리량 : 최대화 총처리시간, 대기시간, 응답시간 : 최소화 최적화하는값 대부분의경우평균값을최적화 일부경우에는평균값대신에최대값또는최소값을최적화 대화형시스템은, 응답시간의변동폭 (variance) 를최소화 합리적이고예측가능한응답시간제공 선입선처리 (First-Come First-Serve:FCFS) 스케줄링 최단작업우선 (Shortest-Job-First:SJF) 스케줄링 우선순위 (Priority) 스케줄링 라운드로빈 (Round Robin:RR) 스케줄링 다단계큐 (Multilevel Queue) 스케줄링 11 12

First-Come, First-Served (FCFS) Scheduling FCFS Scheduling ( 계속 ) Example: Process Burst Time P 1 24 P 2 3 P 3 3 Arrival order: P 1, P 2, P 3 The Gantt Chart for the schedule 0 (arrival time t=0) P 1 P 2 P 3 대기시간 : P 1 = 0; P 2 = 24; P 3 = 27 평균대기시간 : (0 + 24 + 27)/3 = 17 24 27 30 Arrival order: P 2, P 3, P 1. (arrival time t=0) The Gantt chart for the schedule is: 0 P 2 P 3 대기시간 : P 1 = 6;P 2 = 0 ; P 3 = 3 평균대기시간 : (6 + 0 + 3)/3 = 3 이전의경우보다더좋음 호위효과 (Convoy effect) 긴프로세스뒤에짧은프로세스들이있는경우에짧은프로세스는긴프로세스의 CPU busrt 가끝날때까지기다려야함 짧은프로세스들이먼저처리되도록할때보다 CPU 와장치이용률이저하됨 P 1 3 6 30 13 14 Shortest-Job-First (SJF) Scheduling ( 예 ) Non-Preemptive SJF 최단작업우선 (SJF) 스케줄링 Shortest Process Next(SPN), Shortest Request Next(SRN) 라고도함 프로세스는다음 CPU burst 길이가연관되며최단다음 CPU burst 를갖는프로세스를스케줄링 문제점 : 다음 CPU burst 를알기어려움 해결책 : 예측 (prediction) 두가지방식의 SJF 스케줄링 비선점 SJF process 는 CPU burst 를끝낼때까지선점되지않음 선점 SJF ( 새프로세스의 CPU burst < 현재프로세스의잔여시간 ) 이면현재프로세스가선점되어스케줄링 Shortest-Remaining-Time-First (SRTF). preemptive SJF = SRTF Example Process Arrival Time Burst Time P 1 0.0 7 P 2 2.0 4 P 3 4.0 1 P 4 5.0 4 SJF (non-preemptive) 0 P 1 P 3 P 2 2 4 5 P 4 7 8 12 16 SJF 는대기시간이최적임 최소평균대기시간을제공. P 1 P 2 P 3 P 4 평균대기시간 = (0 + 6 + 3 + 7)/4 = 4 15 16

( 예 ) Preemptive SJF Example Process Arrival Time Burst Time P 1 0.0 7 P 2 2.0 4 P 3 4.0 1 P 4 5.0 4 SJF (preemptive) 0 P 1 P 1 P 2 P 3 2 4 5 7 11 P 2 P 3 P 4 평균대기시간 = (9 + 1 + 0 +2)/4 = 3 P 2 P 4 P 1 16 다음 CPU Burst 길이예측 다음 CPU Burst 길이를미리알수없음 해결책 : 다음 CPU Burst 길이예측 이전 CPU Burst 길이를사용하여다음 CPU Burst 길이를예측 가정 : 다음 CPU Burst 길이는이전의값과비슷할것이다. 예측값 : 지수평균 (exponential average) 사용 다음예측값 = n ( 이전예측값 ) 과 t n ( 이전 CPU Burst) 의지수평균 n 1 t n 1 n initial 0 : 상수또는전체평균으로정의 th 1. tn actual length of n CPU burst 2. n 1 predicted value for 3., 0 1 4. Define : t 1 n 1 n the next CPU n burst 17 18 지수평균 Next CPU Burst 길이예측 지수평균의예 =0: n+1 = n 최근값을고려하지않고, 이전예측값사용 =1: n+1 = t n 최근값만사용하고, 이전예측값사용하지않음. 일반적으로 =1/2 최근값과이전예측값의평균을사용 actual burst 0, (1 - ) 1 n+1 은 n 또는 t n 보다가중치가작다. prediction 지수평균식확장 n+1 = t n +(1- ) t n-1 + +(1- ) j t n-j + +(1- ) n t o +(1- ) n+1 0 19 20

우선순위 (Priority) Scheduling Priority Queueing 우선순위스케줄링 프로세스는우선순위번호와연관됨 대개우선순위가높을수록작은우선순위번호를가짐 CPU 는가장높은우선순위를가진프로세스에게 CPU 를할당 우선순위정의에고려되는요인 내부적 : 시간제한, 메모리요구, open file 수, I/O 와 CPU 의비율등 외부적 : 프로세스중요성, 비용의유형과액수, 정치적요인등 두가지방식의 Priority Scheduling 선점, 비선점 SJF 스케줄링은 priority 스케줄링의특별한경우임 priority = 다음 CPU burst time의예측값 ( 작을수록높은우선순위 ) 문제점 : 기아상태 (starvation)/ 무한봉쇄 (indefinite blocking) 낮은우선순위의 process가무한히대기하여수행되지못할수있음 해결책 노화 (aging) 오랫동안대기하는 process 는우선순위를점진적으로증가시킴 21 22 Round Robin (RR) Scheduling 예 : RR 스케줄링 (Time Quantum = 20) Round Robin 스케줄링 시분할시스템을위해서설계됨 CPU 공유 각프로세스에게작은양의 CPU 시간 (time quantum) 할당 크기 : 대개 10-100 msec 실행프로세스는이시간경과후선점되어 ready queue 의끝으로이동 타이머인터럽트사용 최대대기시간 n개의 ready process가존재하고, time quantum q 일때 max. waiting time = (n-1)q 성능 q large FIFO (FCFS) 와같게됨 q s q small q 가 context switch time 에비해서는커야함. 그렇지않으면 switching overhead 가너무크게됨. 시간할당량 (time quantum) 을정하는경험법칙 전체 CPU burst time 의 80% 정도가 quantum time 보다짧도록정함 Example Process Burst Time P1 53 P2 17 P3 68 P4 24 The Gantt chart is: 성능 P 1 P 2 P 3 P 4 P 1 P 3 P 4 P 1 P 3 P 3 0 20 37 57 77 97 117 121 134 154 162 SJF 보다는평균총처리시간 (turnaround time) 이더크다. 응답시간 (response time) 이더짧다. 23 24

Time Quantum 과 Turnaround Time 의관계 다단계큐스케줄링 time quantum 크기가증가함에따라서평균총처리시간이반드시개선되는것은아니다. 1 2 3 4 5 6 7 1 2 3 4 1 2 4 1 2 4 1 4 1 4 1 4 4 다단계큐 (Multilevel Queue) 스케줄링 Ready queue 가여러개의큐로분할됨 각큐는자신의스케줄링알고리즘사용 ( 예 ) foreground (interactive) 용큐 RR background (batch) 용큐 FCFS 스케줄링은큐들간에도있어야함 고정우선순위스케줄링 ( 예 ) foreground 작업을모드처리한후에 background 작업을수행 기아상태 (starvation) 가능성 Time slice 각큐마다 CPU 사용량 / 비율을정해서할당 ( 예 ) foregound 큐에 80%, background 큐에 20% 할당 for q=1, turnaround time = (3+9+15+17)/4 =44/4=11 25 26 ( 예 ) 다단계큐의예 다단계피드백 (Multilevel Feedback) 큐스케줄링 다단계큐스케줄링은 process 생성시에하나의 queue 에영구할당 다단계피드백큐스케줄링 process 가여러큐들사이의이동하는것을허용함 aging 구현 다단계피드백큐스케줄러의매개변수 큐개수 각큐에대한스케줄링알고리즘 큐승급 / 강등시점 진입할큐결정방법 highest queue upgade 시점 새 ready process lowest queue demote 시점 27 28

( 예 ) 다단계피드백큐 I/O bound or Interactive processes CPU bound or Batch processes Example: Q 0 Q 1 Q 2 새작업 => queue Q 0 (q=8, FCFS) 8 ms 내에끝나지않으면 => queue Q 1. (q=16, FCFS) 추가 16ms 내에끝나지않으면 => queue Q 2. priority: Q 0 > Q 1 > Q 2 RR RR (high priority) Q 2 에있는프로세스는 Q 0 and Q 1 이비어있을때에만수행됨 작업특성에따라서큐의작업들이자동적으로분류됨 29 5.4 Thread 스케줄링 Thread 스케줄링 운영체제는 kernel-level thread 들을스케줄링 user-level 스케줄링은 thread library 에의해서수행됨 스케줄링경쟁범위 (contention scope) 프로세스경쟁범위 (Process-contention scope: PCS) user-level thread 를가용 LWP 상에스케줄링 (CPU 스케줄링아님 ) 같은 process 의 thread 들간에스케줄링경쟁 many-to-one 또는 many-to-many 맵핑모델에서사용 시스템경쟁범위 (System-contention scope:scs) 커널이 kernel-level thread 들을 CPU 스케줄링 system 의모든 thread 들간에스케줄링경쟁 one-to-one 맵핑모델에서사용 Pthread 스케줄링정책 thread 생성시에지정허용 PTHREAD_SCOPE_PROCESS: PCS scheduling (many-to-many) PTHREAD_SCOPE_SYSTEM: SCS scheduling (one-to-one) 30 Pthread 스케줄링 API 사용예 일부시스템에서는특정 contention scope 값만허용됨 5.5 다중프로세서스케줄링 다중프로세서 (Multiple-processor) 스케줄링 여러개의 CPU 가있는경우에는 CPU 스케줄링이더복잡해짐 여기서는모든프로세서가동일한 (homogeneous) 시스템을가정함 다중프로세서스케줄링접근방법 비대칭 (Asymmetric) 다중처리 한프로세서 (master processor) 가스케줄링, 입출력처리, 시스템활동을처리 ( 운영체제커널수행 ) 나머지프로세서들은 user code 만수행함 자료공유필요성을배제하므로간단한설계 대칭 (Symmetric) 다중처리 (SMP) 각프로세서는독자적으로스케줄링 (self-scheduling) ready queue 공동큐 모든프로세서가함께사용 ( 자료공유문제 ) 분리큐 프로세서마다분리된자신의큐를사용 ( 자료공유배제 ) 거의모든현대운영체제에서사용 31 32

프로세서친화성 (Affinity) 프로세서친화성 (Processor Affinity) process 가현재실행중인프로세서에서다른프로세서로의이주 (migration) 를피하고다음스케줄링에서도현재프로세서에서계속실행을시도하는것 프로세서를이동하면캐쉬무효화와채우기를해야하므로비용이증가 프로세서친화성형태 연성친화성 (soft affinity) 프로세서지정하지않음. 이주가능 강성친화성 (hard affinity) 프로세서 ( 집합 ) 을지정. 시스템의형태 ( 특히주메모리구조 ) 가프로세서친화성에영향을줌 NUMA(non-uniform memory access) 시스템과 CPU 스케줄링 affinity a process allocated 부하균등화 (Load Balancing) 부하균등화 (Load balancing) 모든프로세서들간에부하 ( 작업 ) 가고르게배분하려는시도 공통큐를갖는시스템에서부하균등화는불필요 분리된개인큐를갖는시스템의부하균등화방식 push migration 특정 task 가주기적으로각프로세서의부하를검사 과부하프로세서가발견되면 process 들을 idle 또는 less-busy 프로세서로이주시킴 pull migration idle processor 가 busy processor 에서대기중인 process 들을자신에게로이주시킴 두방식은배타적이아니며, 함께사용할수있음 Linux 는 200ms 마다 push 이주알고리즘을, ready queue 가비게되면 pull 이주알고리즘을수행하여부하균등화시도 부하균등화는프로세서친화도의장점과상충됨 33 34 멀티쓰레드프로세서 멀티쓰레드 (Multithreaded) 프로세서 하나의물리적프로세서 (core) 에다수의논리적프로세서를제공하는프로세서. 연산장치를공유 논리적프로세서는별도의레지스터집합을가짐 빠른 context 전환 메모리접근동안연산장치를다른논리프로세서가이용함 하드웨어가논리프로세서에게물리프로세서를스케줄링 멀티코어프로세서 멀티코어 (Multicore) 프로세서 같은칩에다수의프로세서 (multi-threaded) 코어를보유한프로세서 a multithreaded multicore processor single threaded processor multithreaded processor 멀티코어프로세서스케줄링 운영체제 thread 에게논리프로세서 (hardware thread) 를스케줄링 coarse-grained multithreading CPU 하드웨어 hardware thread 에게 core 를스케줄링 fine-grained multithreading 운영체제가이러한시스템에서수행하는것을알고있다면알맞은스케줄링알고리즘을사용할수있음 성능향상 35 36

5.6 실시간스케줄링 생략 5.7 운영체제사례 Linux scheduling Windows scheduling Solaris scheduling 37 38 Linux 스케줄링 예전버전 kernel version 2.5 이전 표준 UNIX scheduling algorithm 의변형을사용 SMP systems 을위한적절한지원을제공하지않음 task 수가증가함에따라서성능이저하됨 규모확장성부족 kernel version 2.5/2.6 : 상수시간에실행. O(1) scheduling time O(1) scheduling time - task 수와관계없음. SMP 에대한향상된지원 프로세서친화도, 부하균등화기능포함 선점형, 우선순위기반스케줄링 두가지우선순위영역 낮은값이높은우선순위 real-time: a real-time range (0-99) 0 : the highest priority time-sharing: a nice value (100-140) 다른 OS 와같지않게, 우선순위가높을수록큰 time quantum 을부여 Linux 스케줄링 v2.5/2.6 ( 계속 ) Epoch 기반스케줄링 time slice 가남아있으면 task 는실행가능 (runnable) active time slice 가남아있지않으면, 다른 task 가그들의 time slice 를모두사용할때까지실행가능하지않음. expired 모든 runnable tasks 는 per-cpu runqueue 자료구조로관리함 Two priority arrays active, expired ( 그림참조 ) 우선순위를 index 로사용하여 active array 가참조됨 active task 가없으면, active 와 expired 배열을서로교환함 잘동작하지만 interactive process 의응답시간이느림 39 40

Linux 스케줄링 - Version 2.6.23+ Completely Fair Scheduler(CFS) 완전공평스케줄러 스케줄링클래스 각 task 는특정우선순위가짐 스케줄러는가장높은클래스에서가장우선순위가높은 task 선택 고정된양의 time quantum 대신에우선순위 (nice 값 ) 에따라서 CPU 시간비율을결정 두개의스케줄링클래스, 다른클래스도추가가능 default CFS 스케줄링 real-time Time quantum 계산 -20 부터 +19 까지의 nice value 를기반으로계산 (-20 이높은우선순위 ) target latency 계산 모든수행가능한 task 가최소한번실행할수있는시간간격. CPU 시간비율은 target latency 값으로부터할당됨 target latency 는 default 값과최소값을가지며 active task 의수가임계값이상으로증가하면 target latency 가증가할수있음 Linux 스케줄링 - Version 2.6.23+ ( 계속 ) CFS 스케줄러는 task 별로가상실행시간 (virtual run time) 을관리 변수 vruntime 사용 task 의우선순위에따라감쇠지수 (decay factor) 와정해짐 낮은우선순위가감쇠율이높음 ( > 1) 보통우선순위작업 : 가상실행시간 = 실제실행시간 낮은우선순위작업 : 가상실행시간 > 실제실행시간 높은우선순위작업 : 가상실행시간 < 실제실행시간 가장작은가상실행시간을갖는 task 를선택하여스케줄링 ready 상태의 task 들은 vruntime 을 key 값으로하여이진균형트리인 red-black tree 로관리 빠른탐색 (O(logN) 연산 ) I/O 중심작업 CPU 중심작업 41 42 Windows 스케줄링 a priority-based, preemptive 스케줄링 Windows 우선순위 priority class variable class: 1-15 relative priority within each of the priority classes time quantum 만료 우선순위낮아짐 wait 해제 우선순위높여줌 (wait 이유에따라서증가정도가다름 ) foreground process 가 background process 보다더높은우선순위 (3 배 ) 43 Solaris 스케줄링 우선순위기반스케줄링 6개의스케줄링클래스 1. time sharing (TS) default scheduling class 2. interactive (IA) window applications 3. real time (RT) real-time processes 4. system (SYS) kernel threads (e.g. scheduler, paging daemon) 5. fair share (FSS) introduce with Solaris 9 6. fixed priority (FP) 각클래스마다다른우선순위, 다른스케줄링알고리즘존재 Time sharing class 다단계피드백큐스케줄링을사용하여동적으로 priority 변경하고다른길이의 time slice를할당 interactive process higher priority, smaller time slice (response) CPU-bound processes lower priority, larger time slice (throughput) 전역우선순위 클래스고유의우선순위를전역우선순위로바꾸어서스케줄링 44

Solaris scheduling (cont') Solaris Dispatch Table new priority TS 와 IA class 실시간프로세스 높은우선순위, 응답시간보장 ms time quantum expired: priority 를낮춤 우선순위대신에 CPU 공유량 (share) 사용 우선순위고정 기본스케줄링클래스 프로세스집합 (project 라고불림 ) 에할당 윈도우응용용 ( 더나은성능 ) inverse relationship return from sleep: priority 를높임 45 46 5.8 스케줄링알고리즘평가 특정시스템을위한알고리즘선택방법 알고리즘선택기준정의 알고리즘평가 평가방법 결정론적 (Deterministic) 모델 : 특정한미리정의된부하사용 Queueing 모델 : 부하를확률분포로기술 Queueing network 의수학적분석 시뮬레이션 : 시스템모델을프로그래밍하는작업포함 부하 : (1) by random-number generator (2) trace tape 구현 (Implementation) 실제부하사용 47