2009.05

26
1 2009.05 [email protected]. edu http:// cherub.sungkyul.edu/~web 정정정정정정 정 정정 (5)

description

정보통신실습 및 특강 (5). [email protected] http://cherub.sungkyul.edu/~web. 2009.05. 목차. 프로세스 (Process) 의 개념. 프로세스 상태. 프로세스 제어 블록 (PCB : Process Control Block). 문맥교환 (Context Switch). CPU 스케줄링 및 알고리즘. 프로세스 (Process) 개념. 프로세스 (Process) 란 ? 실행중인 상태의 프로그램 (=Task) 능동적인 실체 - PowerPoint PPT Presentation

Transcript of 2009.05

Page 1: 2009.05

1

2009.05

[email protected]://cherub.sungkyul.edu/~web

정보통신실습 및 특강 (5)정보통신실습 및 특강 (5)

Page 2: 2009.05

정보통신실습 및 특강 (5)

목차

2

CPU 스케줄링 및 알고리즘

문맥교환 (Context Switch)

프로세스 제어 블록 (PCB : Process Control Block)

프로세스 상태

프로세스 (Process) 의 개념

Page 3: 2009.05

정보통신실습 및 특강 (5)

프로세스 (Process) 개념

프로세스 (Process) 란 ? 실행중인 상태의 프로그램 (=Task) 능동적인 실체

다음에 실행할 명령어를 지정하는 프로그램카운터 갖는다 비동기적 행위 프로세서가 할당되는 개체

3

Page 4: 2009.05

정보통신실습 및 특강 (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

Page 5: 2009.05

정보통신실습 및 특강 (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 상태로 되는 것 .

Page 6: 2009.05

정보통신실습 및 특강 (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) - 입출력 요구들 , 입출력 장치들 , 개방된 파일의 목록 등

Page 7: 2009.05

정보통신실습 및 특강 (5)

문맥 교환 (Context Switch)

문맥교환 (Context Switch) 이전의 프로세스의 상태를 저장하고 새로운 프로세스의 저장된 상태를 적재

(load) 하는 작업 CPU 가 새로운 프로세스로 전환할때 , Kernel 은 이전 process 의 상태를

저장하고 , 저정된 새로운 process 의 상태를 load 문맥교환의 시간 : overhead (H/W 지원에 따라 크게 좌우됨 )

7

Page 8: 2009.05

정보통신실습 및 특강 (5)

중앙처리장치 스케줄링

중앙처리장치 스케줄링 (CPU Scheduling) 스케줄링의 목적

중앙처리장치 (CPU) 이용률을 최대화하는 것 . 공정한 스케줄링 응답 시간 최소화 작업 반환 시간 예측 가능 균형 있는 자원 사용 우선 순위가 높은 프로세스가 먼저 실시

8

Page 9: 2009.05

정보통신실습 및 특강 (5)

중앙처리장치 스케줄링

중앙처리장치 입출력 버스트 주기 (Burst cycle)

9

• 짧은 CPU burst : I/O 작업을 중심으로하는 프로그램 ( 예 , 워드 )

•긴 CPU burst : CPU 중심의 프로그램 ( 예 , for 루프 )

프로세스 실행

• 짧은 CPU burst 가 많다 ( 약 2ms 간격 )• 긴 CPU burst 는 적다

Page 10: 2009.05

정보통신실습 및 특강 (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

Page 11: 2009.05

정보통신실습 및 특강 (5)

스케줄링

스케줄링 1 단계 스케줄링

작업 (job) 스케줄링 , 장기 (long-term) 스케줄링 어느 작업을 선택해서 시스템의 자원을 이용할게 할 것인가를 결정

( 즉 , 어느 작업을 메모리로 불러들일 것인가 ?)

2 단계 스케줄링 작업프로세스들 중에서 어느것을 활성화 시키고 , 보류할 것인가를 결정

활성화된 프로세스 : 주기억장치 보류된 프로세스 : 디스크공간

3 단계 스케줄링 CPU 스케줄링 , 단기 (short-term) 스케줄링 주기억장치 내의 프로세스들 중에서 어느 process 에게 CPU 를 할당할 것인가 결정 디스패처 (Dispatcher)

11

Page 12: 2009.05

정보통신실습 및 특강 (5)

CPU 스케줄러

CPU 스케줄러의 기본동작 메모리에 있는 ready 상태의 프로세스들 중 하나를 선택 선택된 프로세스에게 CPU 를 할당 .

프로세스 입장에서 CPU scheduling 을 당하게 되는 시점 process 가 실행상태에서 대기상태로 전환될 때 ( 예 , 입출력 요청 ) – Non Preemptive(

비선점 ) process 가 실행상태에서 준비상태로 전환될 때 ( 예 , 인터럽트 발생할 때 ) – Preemptive(

선점 ) process 가 대기상태에서 준비상태로 전환될 때 ( 예 , 입출력이 종료될 때 ) - Preemptive(

선점 ) process 가 종료할 때 - Non Preemptive( 비선점 )

12

Page 13: 2009.05

정보통신실습 및 특강 (5)

CPU 스케줄링

선점 (preemptive) 스케줄링 선점 :

한 프로세스가 CPU 를 차지하고 있을 때 , 다른 프로세스가 현재의 프로세스를 중지시키고 , CPU 를 차지할 수 있도록 하는 방법

긴급을 요하는 우선순위를 갖는 시분할 처리 , 실시간 처리에 유용

비선점 (Non-Preemptive) 스케줄링 비선점 :

일단 CPU 가 한 process 에 할당되면 , process 가 종료하던가 , 또는 대기상태로 전환해 CPU 를 해제할 때까지 CPU 를 점유하는 방법

모든 process 에 대해서 공정한 처리가 가능 긴급 응답을 요하는 작업에는 좋지 못함 . 짧은 작업이 긴 작업이 끝날 때까지 기다림

13

Page 14: 2009.05

정보통신실습 및 특강 (5)

CPU 스케줄링 알고리즘

우선순위 (Priority) Scheduling Algorithms 각 process 에게 우선순위를 부여해서 가장 높은 우선 순위를 갖는 프로세스에게 CPU 가 할당됨 .(smallest integer

highest priority). Process 가 ready 큐에 도착 => 현재 실행중인 process 와 우선순위 비교

선 점 우선순위 알고리즘 : 우선순위가 높은 process 가 CPU 점유 비선점 우선순위 알고리즘 : ready 큐의 head 부분에 새로운 process 를 넣는다 .

문제점 : StarvationStarvation 낮은 우선 순위의 프로세스가 계속 CPU 를 할당 받지 못하는 현상 .

해결책 : AgingAging 메모리에 들어와 있는 시간이 길어질수록 우선 순위를 높여줌으로써

기아 상태를 방지 .

14

Page 15: 2009.05

정보통신실습 및 특강 (5)

CPU 스케줄링 알고리즘

15

P2 P3 P10 2 ㅊ 7 17

•평균대기시간 : (0+2+7)/3 =3•평균 반환시간 (Turnaround time) : (2+7+17)/3 = 8.66

Page 16: 2009.05

정보통신실습 및 특강 (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

Page 17: 2009.05

정보통신실습 및 특강 (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

Page 18: 2009.05

정보통신실습 및 특강 (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

Page 19: 2009.05

정보통신실습 및 특강 (5)

CPU 스케줄링 알고리즘

선입선출 스케줄링을 적용한 경우

평균대기시간 : 0 + 6 + 14 + 21 / 4 = 10.25

최소의 “ 평균대기시간” 을 갖는다 . ( 최적의 알고리즘으로 평가 ) 문제점

실행해 보기전에 CPU Burst 를 알기 어렵다

19

P2 P3 P4

6 21 240

P1

14

Page 20: 2009.05

정보통신실습 및 특강 (5)

CPU 스케줄링 알고리즘

비선점 SJF 알고리즘 선점 SJF 알고리즘 (= 최소잔여시간 알고리즘 (Shortest Remaining Time

First)) Process 가 실행되는 동안 새로운 process 가 ready 큐에 들어왔을 때 새로운 process 는 현재 실행되고 있는 process 의 남은 시간보다 더 짧은 경우

( 새로운 process 의 CPU burst < 현재 process 의 남은 CPU burst) 새로운 process 가 현재 실행되고 있는 process 를 선점

20

Page 21: 2009.05

정보통신실습 및 특강 (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

Page 22: 2009.05

정보통신실습 및 특강 (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

Page 23: 2009.05

정보통신실습 및 특강 (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

Page 24: 2009.05

정보통신실습 및 특강 (5)

CPU 스케줄링 알고리즘

시간할당량 (time slice) 가 클때 선입선출 방식과 동일

시간할당량 (time slice) 가 작을 때 문맥교환이 자주 발생하고 , 응답 시간이 길며 , 오버헤드도 커짐

24

Page 25: 2009.05

정보통신실습 및 특강 (5)

CPU 스케줄링 알고리즘

다단계 큐 (Multilevel Queue) Scheduling

문제점 : 상위 ( 우선순위가 높은것 ) queue 가 비어있지 않은 경우 , 하위 ( 우선순위가 낮은것 ) queue 가 에 있는 process 는 수행되지 못함

25

Page 26: 2009.05

정보통신실습 및 특강 (5)

CPU 스케줄링 알고리즘

다단계 피드백 큐 (Multilevel feedback queue) 스케줄링 어떤 프로세스가 CPU 시간을 너무 많이 쓰는 경우 낮은 우선순위 큐로

이동시킨다 . I/O-bound job 과 interactive job 이 높은 우선순위 큐에 남는 경향이 생김 . aging : time quantum 안에 처리 못하는 경우 낮은 우선순위 queue 로

이동시킴 (starvation 해소 방안 )

26