2009.05
description
Transcript of 2009.05
정보통신실습 및 특강 (5)
목차
2
CPU 스케줄링 및 알고리즘
문맥교환 (Context Switch)
프로세스 제어 블록 (PCB : Process Control Block)
프로세스 상태
프로세스 (Process) 의 개념
정보통신실습 및 특강 (5)
프로세스 (Process) 개념
프로세스 (Process) 란 ? 실행중인 상태의 프로그램 (=Task) 능동적인 실체
다음에 실행할 명령어를 지정하는 프로그램카운터 갖는다 비동기적 행위 프로세서가 할당되는 개체
3
정보통신실습 및 특강 (5)
프로세스 (Process) 상태
프로세스 (Process) 상태
생성 (new) : 프로세스 생성 실행 (running) : process 가 CPU 를 차지하고 있는 상태 준비상태 (ready) : process 가 CPU 에게 할당되기를 기다리는 상태 (CPU 를 할당 받을 수 있는 상
태 ) 대기상태 (waiting) : process 가 I/O 가 완료되기를 기다리는 상태 종료상태 (terminated) : 프로세스의 실행 종료
4
준비상태준비상태(ready)(ready)
대기상태대기상태(waiting)(waiting)
실행상태실행상태(running)(running)
종료종료(terminated)(terminated)
생성생성(new)(new)
dispatch
timer run out
wake-up
block
정보통신실습 및 특강 (5)
프로세스 (Process) 상태
프로세스 상태전이 (state transition)
5
준비상태준비상태(ready)(ready)
대기상태대기상태(waiting)(waiting)
실행상태실행상태(running)(running)
종료종료(terminated)(terminated)
생성생성(new)(new)
dispatch
timer run out
wake-up
block
• dispatch (ready running) : ready 상태의 여러 프로세스들 중 스케줄러에 의해 CPU 를 할당 받아 실행상태로 되는 것 .• timer run out (running ready) : process 가 CPU 내에서 일정시간 빠져 나가지 못할 경우 , 인터럽트를 통해 제어를 OS 에게 넘겨줌• block (running waiting) : 시간 할당량 (time quantum) 이전에 I/O 장치에 요청을 보내고 , 그 요청이 완료될 때까지 기다리는 것 .• wake-up(waiting ready) : 기다리고 있던 사건이 완료되면 (ex- I/O 완료 ) waiting 상태에서 다시 CPU 를 할당 받기 위해 ready 상태로 되는 것 .
정보통신실습 및 특강 (5)
프로세스 제어 블럭 (PCB)
프로세스 제어 블록 (PCB : Process Control Block) 프로세스에 대한 중대한 여러 가지 정보를 저장하는 기억장소 프로세스 생성시 만들어 짐 모든 프로세스는 각기 고유의 PCB 를 갖는다 .
6
포인터 프로세스상태
프로세스 번호
프로그램 카운터 (PC)
레지스터
메모리 한계
개방 파일들의 리스트
▪
▪
▪
[ 프로세스 제어 블록 ]
• 프로세스의 현재상태 (Process state) - 생성 (new), 준비 (ready), 실행 (running), 대기 (waiting), 종료 (terminated)
• 프로그램 카운터 (program counter) - 프로세스가 실행할 다음 명령어의 주소를 가리킴
• 중앙처리장치 레지스터들 (CPU registers)
• 중앙처리장치 스케줄링 정보 (CPU scheduling information)
• 메모리 관리 정보 (Memory-management information)
• 계정정보 (accounting information) - CPU 가 사용된 시간의 양 , 계정번호 , 작업 또는 프로세스 번호 등
• 입출력 상태 정보 (I/O status information) - 입출력 요구들 , 입출력 장치들 , 개방된 파일의 목록 등
정보통신실습 및 특강 (5)
문맥 교환 (Context Switch)
문맥교환 (Context Switch) 이전의 프로세스의 상태를 저장하고 새로운 프로세스의 저장된 상태를 적재
(load) 하는 작업 CPU 가 새로운 프로세스로 전환할때 , Kernel 은 이전 process 의 상태를
저장하고 , 저정된 새로운 process 의 상태를 load 문맥교환의 시간 : overhead (H/W 지원에 따라 크게 좌우됨 )
7
정보통신실습 및 특강 (5)
중앙처리장치 스케줄링
중앙처리장치 스케줄링 (CPU Scheduling) 스케줄링의 목적
중앙처리장치 (CPU) 이용률을 최대화하는 것 . 공정한 스케줄링 응답 시간 최소화 작업 반환 시간 예측 가능 균형 있는 자원 사용 우선 순위가 높은 프로세스가 먼저 실시
8
정보통신실습 및 특강 (5)
중앙처리장치 스케줄링
중앙처리장치 입출력 버스트 주기 (Burst cycle)
9
• 짧은 CPU burst : I/O 작업을 중심으로하는 프로그램 ( 예 , 워드 )
•긴 CPU burst : CPU 중심의 프로그램 ( 예 , for 루프 )
프로세스 실행
• 짧은 CPU burst 가 많다 ( 약 2ms 간격 )• 긴 CPU burst 는 적다
정보통신실습 및 특강 (5)
Scheduling Criteria
스케줄링 평가 기준 중앙처리장치 이용률 (CPU utilization)
가능한 CPU 를 최대 이용 처리율 (Throughput)
단위 시간 당 실행을 완료할 수 있는 프로세스의 개수 반환시간 (Turnaround time)
어떤 특정 프로세스가 실행을 시작해서 끝날 때까지의 걸린 시간 메모리에 들어가는 시간 + ready 큐에서 대기하는 시간 + CPU 에서 실행하는 시간 + I/O 시간
대기시간 (Waiting time) 어떤 프로세스가 lifetime 동안 ready queue 에서 대기해야 하는 총 시간 보통 프로세스가 실행 or I/O 를 실행하는 동안에는 실제 시간의 양에 영향을 미치지 못함
응답시간 (Response time) 프로세스가 어떤 요청을 운영체제에게 한 후 그에 대한 첫 응답을 받을 때까지 걸린 시간 . 그 요청에 대한 서비스가 완료될 때까지의 시간이 아님 !
최대화 : CPU 이용률 , 처리율 최대화 최소화 : 반환시간 , 대기시간 , 응답시간
10
정보통신실습 및 특강 (5)
스케줄링
스케줄링 1 단계 스케줄링
작업 (job) 스케줄링 , 장기 (long-term) 스케줄링 어느 작업을 선택해서 시스템의 자원을 이용할게 할 것인가를 결정
( 즉 , 어느 작업을 메모리로 불러들일 것인가 ?)
2 단계 스케줄링 작업프로세스들 중에서 어느것을 활성화 시키고 , 보류할 것인가를 결정
활성화된 프로세스 : 주기억장치 보류된 프로세스 : 디스크공간
3 단계 스케줄링 CPU 스케줄링 , 단기 (short-term) 스케줄링 주기억장치 내의 프로세스들 중에서 어느 process 에게 CPU 를 할당할 것인가 결정 디스패처 (Dispatcher)
11
정보통신실습 및 특강 (5)
CPU 스케줄러
CPU 스케줄러의 기본동작 메모리에 있는 ready 상태의 프로세스들 중 하나를 선택 선택된 프로세스에게 CPU 를 할당 .
프로세스 입장에서 CPU scheduling 을 당하게 되는 시점 process 가 실행상태에서 대기상태로 전환될 때 ( 예 , 입출력 요청 ) – Non Preemptive(
비선점 ) process 가 실행상태에서 준비상태로 전환될 때 ( 예 , 인터럽트 발생할 때 ) – Preemptive(
선점 ) process 가 대기상태에서 준비상태로 전환될 때 ( 예 , 입출력이 종료될 때 ) - Preemptive(
선점 ) process 가 종료할 때 - Non Preemptive( 비선점 )
12
정보통신실습 및 특강 (5)
CPU 스케줄링
선점 (preemptive) 스케줄링 선점 :
한 프로세스가 CPU 를 차지하고 있을 때 , 다른 프로세스가 현재의 프로세스를 중지시키고 , CPU 를 차지할 수 있도록 하는 방법
긴급을 요하는 우선순위를 갖는 시분할 처리 , 실시간 처리에 유용
비선점 (Non-Preemptive) 스케줄링 비선점 :
일단 CPU 가 한 process 에 할당되면 , process 가 종료하던가 , 또는 대기상태로 전환해 CPU 를 해제할 때까지 CPU 를 점유하는 방법
모든 process 에 대해서 공정한 처리가 가능 긴급 응답을 요하는 작업에는 좋지 못함 . 짧은 작업이 긴 작업이 끝날 때까지 기다림
13
정보통신실습 및 특강 (5)
CPU 스케줄링 알고리즘
우선순위 (Priority) Scheduling Algorithms 각 process 에게 우선순위를 부여해서 가장 높은 우선 순위를 갖는 프로세스에게 CPU 가 할당됨 .(smallest integer
highest priority). Process 가 ready 큐에 도착 => 현재 실행중인 process 와 우선순위 비교
선 점 우선순위 알고리즘 : 우선순위가 높은 process 가 CPU 점유 비선점 우선순위 알고리즘 : ready 큐의 head 부분에 새로운 process 를 넣는다 .
문제점 : StarvationStarvation 낮은 우선 순위의 프로세스가 계속 CPU 를 할당 받지 못하는 현상 .
해결책 : AgingAging 메모리에 들어와 있는 시간이 길어질수록 우선 순위를 높여줌으로써
기아 상태를 방지 .
14
정보통신실습 및 특강 (5)
CPU 스케줄링 알고리즘
15
P2 P3 P10 2 ㅊ 7 17
•평균대기시간 : (0+2+7)/3 =3•평균 반환시간 (Turnaround time) : (2+7+17)/3 = 8.66
정보통신실습 및 특강 (5)
CPU 스케줄링 알고리즘
선입 선처리 (FCFS : First-Come, First-served) 스케줄링 알고리즘
Ready 큐에 들어온 순서대로 CPU 를 할당
16
process Burst 시간
P1
P2
P3
24
3
3
P1 P2 P3
24 27 300
Waiting time for P1 = 0; P2 = 24; P3 = 27Average waiting time: (0 + 24 + 27)/3 = 17
정보통신실습 및 특강 (5)
CPU 스케줄링 알고리즘
The Gantt chart
Waiting time for P1 = 6; P2 = 0; P3 = 3 Average waiting time: (6 + 0 + 3)/3 = 3 Much better than previous case. Convoy effectConvoy effect :
하나의 큰 process 가 CPU 를 양도하기 위해 모든 다른 process 들이 기다리는 것
17
P1P3P2
63 300
process Burst 시간
P2
P3
P1
3
3
24
정보통신실습 및 특강 (5)
CPU 스케줄링 알고리즘
최소 작업 우선 (SJF : Shortest Job First) 스케줄링 각 process 의 CPU burst 길이를 비교 , 가장 작은 CPU burst 를 가진 process 에게
할당 동일 CPU burst 를 갖는 경우 : 선입선출 스케줄링 적용
대기시간 : p1 = 3, p2=16, p3=9, p4=0 평균대기시간 : 3 + 16 + 9 + 0 = 28 / 4 = 7
18
process Burst 시간
P1
P2P3
6
87
P4 3
②
④③①
P1 P3 P2
3 16 240
P4
9
정보통신실습 및 특강 (5)
CPU 스케줄링 알고리즘
선입선출 스케줄링을 적용한 경우
평균대기시간 : 0 + 6 + 14 + 21 / 4 = 10.25
최소의 “ 평균대기시간” 을 갖는다 . ( 최적의 알고리즘으로 평가 ) 문제점
실행해 보기전에 CPU Burst 를 알기 어렵다
19
P2 P3 P4
6 21 240
P1
14
정보통신실습 및 특강 (5)
CPU 스케줄링 알고리즘
비선점 SJF 알고리즘 선점 SJF 알고리즘 (= 최소잔여시간 알고리즘 (Shortest Remaining Time
First)) Process 가 실행되는 동안 새로운 process 가 ready 큐에 들어왔을 때 새로운 process 는 현재 실행되고 있는 process 의 남은 시간보다 더 짧은 경우
( 새로운 process 의 CPU burst < 현재 process 의 남은 CPU burst) 새로운 process 가 현재 실행되고 있는 process 를 선점
20
정보통신실습 및 특강 (5)
CPU 스케줄링 알고리즘
선점 JSF 스케줄링
대기시간 : p1=0+(10-1), p2=1-1, p3=17-2, p4=5-3 평균대기시간 : 9+0+15+2 / 4 = 6.5
21
process Burst 시간
P1
P2P3
8
49
P4 5
Ready 큐에도착시간
0
123
P2 P4 P1
10 170
P1
5
P3
26
P1 P2 P3 P4
P2 P2
1 2 3
정보통신실습 및 특강 (5)
CPU 스케줄링 알고리즘
비선점 JSF 스케줄링
대기시간 : p1=0, p2=(8-1), p3=17-2, p4=12-3 평균대기시간 : 0+7+15+9/4=7.75
22
process Burst 시간
P1
P2P3
8
49
P4 5
Ready 큐에도착시간
0
123
P2 P4
12 170
P1
8
P3
26
P1 P2 P3 P4
1 2 3
정보통신실습 및 특강 (5)
CPU 스케줄링 알고리즘
라운드로빈 (Round-Robin) 스케줄링 준비큐에 대기한 프로세스가 순서대로 들어오는데 , 일정한 시간 (time slice)
단위로 처리 . 선입선출 스케줄링과 유사 Process 들 간의 교환을 위해서 선점이 추가접수
대기시간 : P1=10-4 , P2=4, P3=7 평균대기시간 : 6+4+7 /3 = 5.66
23
process Burst 시간
P1
P2P3
24
33
Time quantum = 4 로 가정
P3 P1
14 260
P1
10 30
P2 P1
4 7
P1P1 P1
18 22
정보통신실습 및 특강 (5)
CPU 스케줄링 알고리즘
시간할당량 (time slice) 가 클때 선입선출 방식과 동일
시간할당량 (time slice) 가 작을 때 문맥교환이 자주 발생하고 , 응답 시간이 길며 , 오버헤드도 커짐
24
정보통신실습 및 특강 (5)
CPU 스케줄링 알고리즘
다단계 큐 (Multilevel Queue) Scheduling
문제점 : 상위 ( 우선순위가 높은것 ) queue 가 비어있지 않은 경우 , 하위 ( 우선순위가 낮은것 ) queue 가 에 있는 process 는 수행되지 못함
25
정보통신실습 및 특강 (5)
CPU 스케줄링 알고리즘
다단계 피드백 큐 (Multilevel feedback queue) 스케줄링 어떤 프로세스가 CPU 시간을 너무 많이 쓰는 경우 낮은 우선순위 큐로
이동시킨다 . I/O-bound job 과 interactive job 이 높은 우선순위 큐에 남는 경향이 생김 . aging : time quantum 안에 처리 못하는 경우 낮은 우선순위 queue 로
이동시킴 (starvation 해소 방안 )
26