프로세스 관리

40
Chapter2 Chapter2 PART2 운운운운 운운운운 운운 운운운운 운운

Upload: lowri

Post on 05-Jan-2016

103 views

Category:

Documents


7 download

DESCRIPTION

프로세스 관리. 프로세스의 개념 병행 프로세스 및 동기화 교착 상태 스케줄링. 프로세스 정의 프로세스 (process: 동적 개념 ) 실행 중인 프로그램 (program: 정적 개념 ) 정적인 프로그램에 자원 ( 기억장치 , CPU 등 ) 을 할당 프로세스 관리를 위해 프로세스마다 PCB(Process Control Block) 을 가짐 프로세스의 상태. 프로세스 완료. Run. dispatch. IO, 기타 서비스. 시간한도 경과 (interrupt). Ready. Blocked. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 프로세스 관리

Chapter2Chapter2PART2 운영체제PART2 운영체제

프로세스 관리프로세스 관리

Page 2: 프로세스 관리

목차목차

22

프로세스의 개념

병행 프로세스 및 동기화

교착 상태

스케줄링

Page 3: 프로세스 관리

Section 01Section 01Section 01Section 01

33

프로세스의 개념프로세스의 개념

프로세스 정의프로세스 (process: 동적 개념 )

실행 중인 프로그램 (program: 정적 개념 )

정적인 프로그램에 자원 ( 기억장치 , CPU 등 ) 을 할당

프로세스 관리를 위해 프로세스마다 PCB(Process Control Block) 을 가짐

프로세스의 상태

RunRun

ReadyReady BlockedBlocked

프로세스

dispatch

시간한도 경과(interrupt)

프로세스 완료

IO, 기타 서비스

IO 종료

Page 4: 프로세스 관리

Section 01Section 01Section 01Section 01

44

프로세스의 개념프로세스의 개념

프로세스의 상태실행 상태

프로세스가 현재 CPU 를 차지하고 실행중인 상태

준비 상태 프로세스가 CPU 에서 실행할 모든 준비가 되어 있는 상태

대기 상태 I/O, 기타 이벤트 처리를 위해 대기하는 상태

프로세스 제어 블록 (PCB)

운영체제가 프로세스를 관리하기 위해 필요한 일체의 정보 수록

Page 5: 프로세스 관리

Section 01Section 01Section 01Section 01

55

프로세스의 개념프로세스의 개념

인터럽트와 문맥교환인터럽트 (interrupt)

컴퓨터 시스템에서 아무 때나 발생할 수 있는 사건을 신속히 처리해 주기 위한 기법

문맥 교환 (context switching) CPU 에서 실행되는 프로세스를 교체하는 작업

Page 6: 프로세스 관리

Section 01Section 01Section 01Section 01

66

프로세스의 개념프로세스의 개념

스레드 (thread)

프로세스 전체 시스템 (CPU+ 모든 자원들 ) 이용의 주체

모든 자원에 대한 정보가 필요

스레드 : 경량 프로세스 (lightweight process) CPU 이용의 주체 (CPU 에 대한 정보만 필요 , 정보량이 훨씬 적음 )

문맥교환 시 overhead 가 훨씬 적다

한 개의 프로세스는 여러 개의 스레드를 가질 수 있다

Page 7: 프로세스 관리

Section 01Section 01Section 01Section 01

77

프로세스의 개념프로세스의 개념

스레드특징

한 프로세스에 속한 스레드들은 CPU 를 제외한 프로세스의 자원들을 공동 소유

각 스레드는 한 프로세스에만 소속되며 프로세스를 떠나서는 스레드가 존재할 수 없다

각 스레드는 독립적인 CPU control 로 구현 (stack, program counter 등 독자 소유 )

장점 스레드들은 자원을 공유하므로 스레드 간의 정보 교환 , 문맥 교환은 빠르고

효율적이다

Page 8: 프로세스 관리

88

Section 02Section 02Section 02Section 02 병행 프로세스 및 동기화병행 프로세스 및 동기화

병행 프로세스 (concurrent process) 의 정의독립적 병행 프로세스

상호간 제어를 사전에 약속하지 않고 병행 실행하는 프로세스들

예 ) mouse 인터럽트와 응용 프로그램아무때나 서로 발생

협동적 병행 프로세스 상호간 제어를 사전에 정의해 놓고 병렬 실행하는 프로세스들

예 ) Web browser 와 Web server program

정의된 방식으로만 협력

Page 9: 프로세스 관리

99

Section 02Section 02Section 02Section 02 병행 프로세스 및 동기화병행 프로세스 및 동기화

독립적 병행 (asynchronous concurrent) 프로세스의 동기화

데이터의 무결성 (integrity) 문제 여러 프로세스들이 병행적으로 실행하며 데이터를 동시에 접근

예 ) 두 프로세스의 독립 병행 수행경쟁 상태 발생 - 연산 결과가 프로세스 시간에 따라 달라짐

예방책 – 동기화 (synchronization)

» 프로세스들이 한번에 한 프로세스씩 순차적으로 액세스하도록 함P1 P2

memoryvar X

(P1) 공유 데이터 (P2)

X=10

read R0, X X=10 read R1, X

inc R0 inc R1

write R0, X X=11 write R1, X

Page 10: 프로세스 관리

1010

Section 02Section 02Section 02Section 02 병행 프로세스 및 동기화병행 프로세스 및 동기화

독립적 병행 (asynchronous concurrent) 프로세스의 동기화

상호 배제 (mutual Exclusion) 공유 데이터를 update 한다면 한 순간에 한 프로세스만 공유 데이터를

액세스하도록 허락하는 기법

한 프로세스가 공유 데이터를 변경하는 동안 다른 프로세스는 데이터 액세스를 위해 기다려야 함

상호 배제를 위한 기법소프트웨어적인 해결

» Dekker 알고리즘

» Peterson 알고리즘

하드웨어적인 해결

» 인터럽트 enable/disable 방법

» test_and_set 명령어

Page 11: 프로세스 관리

1111

Section 02Section 02Section 02Section 02 병행 프로세스 및 동기화병행 프로세스 및 동기화

독립적 병행 (asynchronous concurrent) 프로세스의 동기화

프로세스 동기화 세마포어 (semaphore)

Dijkstra 에 의해 고안된 프로세스 간의 상호 배제 및 동기화 문제 해결 도구

구현 방식

» busy-wait

- 세마포어 값을 계속 점검하여 기다림

- 기다리는 동안 CPU 와 메모리 사이클을 계속 사용

- 기다리는 시간이 짧을 경우에 사용

» block-&-wakeup

- 세마포어 값을 기다려야 한다면 즉시 자신을 block 시키는 방식

- 나중에 세마포어 값을 바꾸는 다른 프로세스가 block 중인 프로세스를 wakeup

Page 12: 프로세스 관리

1212

Section 03Section 03Section 03Section 03 교착 상태교착 상태

교착 상태의 개념프로세스들이 서로 남의 프로세스가 자원 내어주기를 기다리면서 영원히 block 되어 있는 상태

Process A 와 Process B 가 Resource 1 과 Resource 2 를 할당받기 위해 교착상태에 빠짐

R1

R2

P1 P2

Requested

RequestedAllocated

Allocated

Page 13: 프로세스 관리

1313

Section 03Section 03Section 03Section 03 교착 상태교착 상태

교착 상태가 일어나기 위한 4 가지 조건상호배제 (mutual exclusion)

자원은 한 번에 한 프로세스만 사용

점유 및 대기 (hold & wait) 각 프로세스가 이미 자원을 갖고 있으면서 다른 자원을 더 요구

비선점 (non preemption) 프로세스에 할당된 자원은 스스로 반납하기 전에는 빼앗지 못함

환형대기 (circular wait) 프로세스 간의 자원 요구 형태를 추적해보면 결국 자기 자신으로 되돌아옴

Page 14: 프로세스 관리

1414

Section 03Section 03Section 03Section 03 교착 상태교착 상태

교착 상태 해결 방안교착 상태 예방 (prevention)

4 가지 필요조건 중 하나를 발생하지 않도록 해서 교착 상태를 예방

자원의 낭비가 심하지만 그럼에도 불구하고 교착 상태가 원천적으로 봉쇄되지 않으면 안되는 응용에 사용

교착 상태 회피 (avoidance) 교착 상태의 발생 가능성을 원천 봉쇄하기 보다는 이를 적절히 회피

Dijkstra 의 Banker’s algorithm

교착 상태 탐지 (detection) 및 복구 (recovery) 교착 상태를 허용하고 교착 상태가 발생되면 이를 탐지 ( 자원 할당 그래프 )

관련된 프로세스를 중단 , 관련된 자원을 강제로 빼앗아 교착 상태 발생 이전의 상태로 복구 (rollback)

Page 15: 프로세스 관리

1515

Section 04Section 04Section 04Section 04 스케줄링스케줄링

다중 프로그래밍에서의 스케줄링A, B 두 프로세스가 있을 때 각 작업을 1 초 동안 실행하고 1 초 동안 기다리는 것을 60 회 반복할 때 이 시스템의 효율은 ?

Page 16: 프로세스 관리

1616

Section 04Section 04Section 04Section 04 스케줄링스케줄링

일괄처리 시스템에서는 ? 프로세스 A 를 모두 처리한 후 B 를 처리하는 경우 : 전체 4 분 소요

프로세스 A 는 실행하는데 2 분 , 프로세스 B 에서 2 분 소요

실제 계산시간 2 분 , 쉬는 시간 2 분 , 프로세서 이용률은 50%

Page 17: 프로세스 관리

1717

Section 04Section 04Section 04Section 04 스케줄링스케줄링

다중 프로그래밍 경우 A 를 실행하고 1 초 후 A 가 기다릴 때 B 를 실행

두 프로세스에 대한 실행시간 : 2 분 , 프로세서는 쉬지 않게 됨 ( 효율증가 )

» 프로세서 사용률은 50% 에서 100% 로 향상

» A 는 시간상의 절약이 없지만 B 는 처리시간이 반으로 줄어들게 됨

프로세스 A 유휴 ;입력시작

시작프로세스 B

종료유휴 ;입력

유휴 ;입력

유휴 ;입력

종료유휴 ;입력

유휴 ;입력

유휴 ;입력

시작

시작

프로세스 A

Page 18: 프로세스 관리

1818

Section 04Section 04Section 04Section 04 스케줄링스케줄링

스케줄링 (scheduling) 정의프로세스들의 자원 사용 순서를 결정

스케줄링시 고려 사항입출력 위주 (I/O bounded) 또는 연산 위주 (Processor

bounded) 의 프로세스 인가 ?

대화형 프로세스인가 일괄 처리형 프로세스 인가 ?

deadline 이 주어졌는가 주어지지지 않았는가 ?

프로세스의 우선 순위가 있는가 ?

자원을 선점할 수 있는가 없는가 ?

Page 19: 프로세스 관리

1919

Section 04Section 04Section 04Section 04 스케줄링스케줄링

CPU 스케줄링과 Job 스케줄링CPU 스케줄러

CPU 를 할당할지를 결정

단기 스케줄러 (short term scheduler) : 매우 빈번히 수행

작업 (job) 스케줄러 프로세스에게 메모리 공간을 할당하는 순서를 정해주는 스케줄러

장기 스케줄러 (long term scheduler)

CPUCPU

공간공간

PBPB

PCPC

메모리

PAPA

PXPX

PYPY

CPU스케줄러

Job스케줄러

Page 20: 프로세스 관리

2020

Section 04Section 04Section 04Section 04 스케줄링스케줄링

스케줄링 기법선점 스케줄링 (Preemptive Scheduling)

하나의 프로세스가 자원을 점유하고 있을 때 다른 프로세스가 이 자원을 빼앗을 수 있는 방법

특징우선 순위가 높은 프로세스가 먼저 급하게 수행되어야 할 때 유용

대화식 시분할 시스템이나 실시간 시스템에 유용

오버헤드 초래

종류RR (Round Robin)

SRT (Shortest Remaining Time)

MFQ (Multilevel Feedback Queue)

Page 21: 프로세스 관리

2121

Section 04Section 04Section 04Section 04 스케줄링스케줄링

스케줄링 기법비선점 스케줄링 (Non-Preemptive Scheduling)

이미 할당된 자원을 임의로 빼앗지 않고 , 그 프로세스의 사용이 끝난 후에 회수하는 방법

특징프로세스의 응답 시간 예측 용이

짧은 작업이 긴 작업 뒤에 서게 된 경우 매우 오래 기다리게 되는 단점

종류FCFS(First Come First Served)

SJF(Shortest Job First)

HRN(Highest Response ratio Next)

Deadline Scheduling

Page 22: 프로세스 관리

2222

Section 04Section 04Section 04Section 04 스케줄링스케줄링

1. 선입 선처리 (First-Come, First-Served) 스케줄링들어온 순서대로 처리

가장 간단히 방식

non-preemptive 임 (time-sharing 에서는 곤란 )

FIFO queue : First-in<- tail, First-out<- head

호위 효과 (convoy effect) 큰 job 하나가 끝나기를 모두 기다림

CPU bound process 가 끝나기를 I/O bounded process 들이 기다림

길고 중요하지 않은 작업이 급하고 중요한 작업을 오래 기다리게 함

대화식 시스템에 부적합

FIFO(First In First Out) 스케줄링 이라고도 함

Page 23: 프로세스 관리

2323

Section 04Section 04Section 04Section 04 스케줄링스케줄링

First-Come, First-Served (FCFS) Scheduling

Page 24: 프로세스 관리

2424

Section 04Section 04Section 04Section 04 스케줄링스케줄링

Page 25: 프로세스 관리

2525

Section 04Section 04Section 04Section 04 스케줄링스케줄링

2. 최소 작업 우선 (Shortest-Job-First) 스케줄링Shortest Next CPU Burst Scheduling

Non Preemptive 스케줄링 기법

다음 CPU burst 시간이 가장 짧은 프로세스에게 할당

최적 (Optimal) 스케줄링 작업들의 평균 대기 시간이 최소

long-term scheduling 에 좋음 ( 프로세스 시간의 사용자 예측 치 이용 )

단점 기아 상태 (starvation) 발생

대화형 시스템에는 부적합

short-term scheduling 에는 나쁨 ( 차기 CPU burst 시간 파악 어려움 )

차기 CPU 버스트 시간 예측 모델

Page 26: 프로세스 관리

2626

Section 04Section 04Section 04Section 04 스케줄링스케줄링

3. SRT(Shortest Remaining Time) 스케줄링

대기 중인 프로세스 중 남은 작업 시간이 가장 작은 프로세스에게

먼저 CPU 할당

특징

Preemptive 스케줄링 기법

SJF 스케줄링 기법보다 많은 오버헤드 발생

Page 27: 프로세스 관리

2727

Section 04Section 04Section 04Section 04 스케줄링스케줄링

4. HRN(Highest Response ration Next) 스케줄링

Brinch Hansen 이 SJF 기법의 길고 짧은 작업 간의 불평등을

보안한 기법

dynamic priority = (waiting time + service time) /

(service time)

특징

Non-Preemptive

오래 기다린 프로세스는 waiting time 이 증가하므로 priority 커지고

short process 일수록 priority 커짐

Page 28: 프로세스 관리

2828

Section 04Section 04Section 04Section 04 스케줄링스케줄링

Example of Non-Preemptive SJF

Page 29: 프로세스 관리

2929

Section 04Section 04Section 04Section 04 스케줄링스케줄링

Example of Preemptive SRT

Page 30: 프로세스 관리

3030

Section 04Section 04Section 04Section 04 스케줄링스케줄링

5. 우선순위 (Priority) 스케줄링높은 우선 순위의 프로세스에게 할당 ready queue = priority queue

equal-priority -> FCFS 로 해결단순 우선 순위 알고리즘 : SJF(p =1/T (T = 차기 CPU 버스트 시간 예측 값 ))

priority 요인 OS 내부

시간 제한 (time limits), 메모리 요구량 , 오픈 화일 수 , (average I/O burst)/(average CPU burst) 비율 등

OS 외부 프로세스 중요도 , 컴퓨터 사용료 형태와 금액 , 작업 부서 , 정치적 요인 등

preemptive or non-preemptive

문제점 = 무한 정지 (indefinite blocking) 또는 기아 상태(starvation)

CPU 를 영원히 기다림 : 결국 실행되거나 system crash 때 사라짐 ( 예 ) IBM 7094 at MIT 1973, 1967 job

해결 -> aging : wait 시간 길어지면 priority 높여 줌

Page 31: 프로세스 관리

3131

Section 04Section 04Section 04Section 04 스케줄링스케줄링

우선 순위 스케줄링 예

프로세스 우선순위

P1

p2

p3

p4

p5

버스트시간

3 1452

10 1215

평균 대기시간 : 8.2

Page 32: 프로세스 관리

3232

Section 04Section 04Section 04Section 04 스케줄링스케줄링

6. 순환 할당 (Round-Robin) 스케줄링시분할 시스템을 위해 설계

FCFS + preemption time slice 마다

timer 인터럽트

ready queue = circular FIFO queue

preemptive

time sharing 에서 time quantum 의 크기가 중요 1 time quantum > context switching time

80% CPU burst < 1 time quantum

대화식 시분할 시스템에 적합

Page 33: 프로세스 관리

3333

Section 04Section 04Section 04Section 04 스케줄링스케줄링

Example: RR with Time Quantum = 20

Page 34: 프로세스 관리

3434

Section 04Section 04Section 04Section 04 스케줄링스케줄링

작은 시간 할당량이 문맥 교환을 증가시킴

Page 35: 프로세스 관리

3535

Section 04Section 04Section 04Section 04 스케줄링스케줄링

7. 다단계 큐 (Multilevel Queue) 스케줄링각 프로세스는 우선 순위가 다른 여러 개의 큐 중 하나에 영원히 할당

각 queue 는 자신의 고유한 scheduling algorithm 가짐 foreground (interactive) queue : RR 알고리즘

background (batch) queue : FCFS 알고리즘

queue 들 사이의 scheduling 고정 우선 순위 선점 스케줄링 (fixed priority preemptive scheduling)

큐 사이의 CPU time slice 할당 예 80% for RR

20% for FCFS

스케줄링 부담 적으나 융통성이 적음

Page 36: 프로세스 관리

3636

Section 04Section 04Section 04Section 04 스케줄링스케줄링

Multilevel Queue Scheduling

Page 37: 프로세스 관리

3737

Section 04Section 04Section 04Section 04 스케줄링스케줄링

8. 다단계 피드백 큐 (Multilevel Feedback Queue) 스케줄링

프로세스가 여러 큐 사이를 이동

짧은 프로세스 (I/O bound, interactive processes) 가 우선

긴 프로세스는 자꾸 낮은 큐로 이동

aging : 오래 기다리면 우선순위 높여 기아 상태 예방

preemptive ( 큐 사이 )

the most sophisticated, the most complex

가장 일반적 -> 해당 시스템에 맞게 설정해야 (configure) 큐의 개수 각 큐의 스케줄링 알고리즘 높은 우선 순위로 올려 주는 시기 낮은 우선 순위로 내려 주는 시기 어느 큐에 들어갈 것인가

Page 38: 프로세스 관리

3838

Section 04Section 04Section 04Section 04 스케줄링스케줄링

Multilevel Feedback Queues

Page 39: 프로세스 관리

3939

Section 04Section 04Section 04Section 04 스케줄링스케줄링

9. 기한부 (Deadline) 스케줄링작업이 주어진 만료 시간 (deadline) 안에 완료되도록 보장하는 기법

특징 사용자는 deadline 과 같은 정보를 시스템에 제시

시스템은 deadline 을 지켜주기 위해 계획 설정

여러 작업들이 deadline 이 상충되면 스케줄링이 복잡

스케줄링에 많은 오버헤드

주로 실시간 시스템에서 활용

Page 40: 프로세스 관리

Q & A