Operating System Concepts

Slides:



Advertisements
Similar presentations
돈과 빈곤. 가난은 장애다 “ 이발소 건물 주인 아저씨는 휠체어를 타고 다녔어. 장애인이었지. 하지만 아버지 앞에서 는 늘 당당했어. 아버지하고 얘기를 나눌 때 면 아버지는 늘 무릎을 꿇으셨지. 눈을 맞춰 야 하니까. 위에서 내려다볼 수는 없잖아, 건 물 주인을. 그.
Advertisements

최적화 문제 해결 현대 생산  운영관리 부산대학교 산업대학원 2012 년 2 학기 하병현.
버킷 리스트 중 하나였던 “ 남도 맛 기행 ”.. 이라고 하면 왠지 거창한 느낌이지만, 사실 저주받은 미각으로써 왠만한 건 다 맛있는 나로써는 “ 맛 기행 ” 이라는 표현은 어울리지 않다. 그럼에도 불구하고 “ 맛 기행 ” 이라는 테마를 잡은 건 남도하면 역시 “ 맛 ”
경영학과 이은지 경영학과 윤혜리 경영학과 이지은 경영학과 유승연 경영 성공사례 분석.
Chapter 8 현대 대칭키 암호를 이용한 암호화 기법
OS 소개 Introduction 설계목표 기본 용어 Resource Management History.
15 장. 알고리즘의 설계 알고리즘 설계 학습목표 기본 패턴 패턴의 한계점 일곱 가지 패턴의 알고리즘 설계 기법을 이해한다.
소프트웨어 공학 Lecture #9: 테스팅 최은만 저 6차 개정판 1.
Chapter 1. 운영체제의 개요 이태호.
Mar OSEK/VDK Woo Dong Kyun.
음향 시스템 사양서 COMPACT LOUDSPEAKER JBL_CONTROL1PRO SPECIFICATIONS FEATURES
컴퓨터란?.
제 4 장 프로세스 Section 1 프로세스의 개념 Section 2 프로세스 스케줄링
2005년 노인일자리사업 안내.
Concurrency: Deadlock and Starvation
데이터 관리의 모든 것 데이터 최적화하기 데이터 정렬하기 자동 필터와 고급 필터
제 7 장 교착 상태 (Deadlocks) 7.1 시스템 모델 (System Model)
제 7 장 교착 상태 7.1 개요 개념 교착 상태란 프로세스들의 집합이 더 이상 진행을 못하고 영구적으로 블록되어 있는 상태 집합 내의 한 프로세스가 특정 사건의 발생을 기다리며 대기하고 있고, 이 사건이 집합 내의 다른 블록 된 프로세스에 의해 발생될 수 있을.
Concurrency: Deadlock and Starvation
프로세스 관리.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
CHAP 10:그래프 순천향대학교 하상호.
부분집합의 합 구하기 문제 부분집합의 합 구하기(Sum-of-Subsets) 문제
CHAP 10:그래프 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
Ch 14. System Thread.
4장 병행 프로세스 병행성의 원리를 이해한다 병행 프로세스 수행과 관련된 상호 배 제 해결방안을 알아본다
On the computation of multidimensional Aggregates
Ch. 8 교착상태 (Deadlocks) 29-Nov-18.
제 6 장 그래프.
합리적.동태적 정원모형 설계.
알고리즘(Algorithm) – Greedy Method (탐욕적 방법)
교착상태(Deadlocks) 시스템 모델(System Model) 프로세스는 자원을 요구 -> 사용 -> 해제
컴퓨터 활용 및 실습 Chapter 3 수식과 함수 김 정 석
Flip-Flop 설계.
맥시모 소개 ㈜에이시에스 서울 영등포구 여의도동 25 (대한빌딩) ㈜에이시에스.
4 병행 프로세스와 상호배제.
제 5 장 근 궤적 법.
제5장 CPU스케줄링(CPU Scheduling)
운영체제 (Operating Systems)
USB Door Lock System 공 민 표 강 정 이 권 경 곤
제6장 교착상태 OS 컴퓨터 운영체제 Operating Systems
운영체제 (Operating Systems)
3장 운영체제 2C 김주성.
식품 품질관리
제 3 장 연산자 (Operators).
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
2. 상호배제와 동기화 01 program versionone; // 첫 번째 버전
2. 교착상태 해결 기법 실행 과정 - t0 시간에 시스템은 안정상태이며, 순서는 안정 조건을 만족함. - 프로세스 P1은 사용 가능한 자원을 2개 할당 받아 실행한 후 반납 가능하므로 시스템의 여분 자원은 5 개임. - P0은 사용 가능한 자원.
경영 마인드의 이해 경영학 원론 제 1조 경영학과 오현기 이진희
병행 프로세서 과목 : 운영체제 학번 : 이름 : 조장호.
생산 관리.
운영체제 (Operating Systems)
알고리즘의 분석(analysis) 공간적 효율성(Space Efficiency)과 시간적 효율성(Time Efficiency)
내장형 소프트웨어 -페인트 보드 만들기 발표자 : 백종인.
청소년 흡연예방 교육자료3. 한국금연운동협의회 교육부장 이 영 자.
기술 진화와 진보.
CHAP 10 : 그래프.
현장 작업자를 위한 업종별 교안 2013-교육미디어-1451.
최대 공약수 구하기 (1) 프로그램 예제2 : 최대 공약수 구하기 문제 해결 방법 구상 (아는 지식 정리) GCD1 알고리즘
문서의 작성 정보과학부 이지연.
5장 교착 상태 교착상태의 원리를 이해한다. 교착상태의 해결을 위한 예방, 회피, 탐지 그리고 회복에 대하여 알아본다.
교육행정 및 경영 제13장 교육재정 (화) 안 봉 직.
03. 병행 프로세스(Parallel Process)
인터럽트 발생원인 정전 혹은 데이터 전송 과정에서 오류 발생 등 컴퓨터 자체의 기계적인 문제 발생
운영체제 (Operating Systems)
Concurrency: Deadlock and Starvation
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
알고리즘의 분석(analysis) 공간적 효율성(Space Efficiency)과 시간적 효율성(Time Efficiency)
Chapter 7: Deadlocks.
3장 – 병행 프로세스 A 김정문.
Presentation transcript:

Operating System Concepts 7장 교착상태(Deadlocks) 시스템 모델 교착상태의 특징 교착상태 처리 방법 교착상태 예방 교착상태 회피 교착상태 탐지 교착상태로부터의 회복 Operating System Concepts

Operating System Concepts 교착상태란 ? 여러 프로세스들이 각자 자원을 점유하고 있으면서 다른 프로세스가 점유하고 있는 자원을 요청하면서 무한하게 대기하는 상태 예 1: 시스템에 두개의 테이프 드라이브가 있을때, 프로세스 P1 과 P2 가 하나씩 테이프 드라이브를 사용하면서 상대방 프로세스의 테이프 드라이브를 필요로 함 예 2: 두개의 세마포어 A 와 B, (초기값은 1) P0 P1 wait (A); wait(B); wait (B); wait(A); Operating System Concepts

Operating System Concepts 교착상태란? 두 자동차가 다리의 한쪽을 차지하고 있으면서 서로 다른 한쪽을 차지하려고 함. 상대방 자동차가 뒤로 가주기를 무한히 기다림. Operating System Concepts

Operating System Concepts 시스템 모델 시스템의 자원들 : CPU, 기억장치공간, 파일, 입출력장치 등 각 자원 유형 Ri 는 여러개의 사례(instances)를 가질 수 있다. 시스템에 두개의 CPU가 있다면, CPU 자원 유형은 두개의 사례를 가짐 프로세스가 자원을 사용하려면 다음 순서로 수행함 요청(request) 요청이 즉시 허용되지 않는 경우, 자원을 얻을때까지 대기함 사용(use) 해제(release) Operating System Concepts

교착상태의 특징 교착상태는 다음 네 조건이 동시에 만족될때 발생한다. 상호배제(Mutual exclusion): 한번에 오직 한 프로세스만이 자원을 사용할 수 있다. 점유와 대기(Hold and wait): 프로세스가 적어도 하나의 자원을 점유하면서 다른 프로세스가 점유하고 있는 자원을 추가로 얻기위해 대기한다. 비선점(No preemption): 점유된 자원은 강제로 해제될 수 없고, 점유하고 있는 프로세스가 작업을 마치고 자원을 자발적으로 해제한다. 순환대기(Circular wait): 대기하고 있는 프로세스 집합 {P0, P1, …, Pn}에서 P0 은 P1이 점유한 자원을 대기하고, P1은 P2가 점유한 자원을 대기하고, Pn–1 은 계속해 Pn을 대기하며, Pn은 P0이 점유한 자원을 대기한다. Operating System Concepts

자원 할당 그래프 그래프란, 정점(vertex) 들과 정점을 연결하는 간선(edge)들로 이루어진 것. 자원 할당 그래프 : 프로세스와 자원간의 관계를 나타내는 그래프 정점의 두 형태 프로세스들을 나타내는 정점 P = {P1, P2, …, Pn} 자원들을 나타내는 정점 R = {R1, R2, …, Rm} 간선의 두 형태 요청선(request edge) : 프로세스 정점에서 자원 정점으로의 연결선 Pi  Rj 할당선(assignment edge) : 자원 정점에서 프로세스 정점으로의 연결선 Rj  Pi Operating System Concepts

Operating System Concepts 자원 할당 그래프 (Cont.) 프로세스 : 원으로 표현 자원 : 사각형으로 표현하며, 사례의 개수를 점으로 나타냄 Pi 가 자원 형태 Rj의 한 자원을 요청함 Pi 가 자원 형태 Rj 의 한 자원을 점유하고 있음 Pi Rj Pi Rj Operating System Concepts

Operating System Concepts 자원 할당 그래프의 예 Operating System Concepts

Operating System Concepts 교착상태가 있는 자원 할당 그래프의 예 주기(싸이클)가 존재 -> 교착상태 두 개의 주기가 존재함  P1 -> R1 -> P2 -> R3 -> P3 -> R2 -> P1  P2 -> R3 -> P3 -> R2 -> P2 Operating System Concepts

주기는 있지만 교착상태가 아닌 자원 할당 그래프 P1 -> R1 -> P3 -> R2 -> P1 그러나, P4가 R2를 해제하면, P3가 R2를 사용할 수 있다. 따라서, 교착상태가 아니다. Operating System Concepts

Operating System Concepts 관찰 그래프에 주기가 없으면  교착상태가 없다 그래프에 주기가 있으면  자원 유형에 하나의 사례만 있으면, 교착상태 자원 유형에 여러 사례가 있으면, 교착상태 가능성 Operating System Concepts

Operating System Concepts 교착상태 처리 방법 세가지 방법 교착상태가 발생하지 않도록 보장 : 예방, 회피 2) 교착상태를 허용하고, 발생을 탐지한 후, 복구 3) 문제를 무시하고 교착상태가 발생하지 않는다고 가정 (대부분의 운영체제에서 사용하는 방법) 대부분의 시스템은 교착상태가 잘 발생하지 않으며, 교착상태 예방, 회피, 탐지 및 복구 방법을 사용하는 것은 비용이 많이든다. Operating System Concepts

교착상태 예방 교착상태 발생 네가지 조건 중에서 하나라도 성립하지 않으면 됨 상호배제 – 공유가능한 자원들은 배타적인 접근이 아니므로 교착상태가 발생하지 않는다. 예) 읽기 전용의 파일 점유와 대기 예방 방법 프로세스가 실행되기 전에 사용할 모든 자원을 함께 요청 프로세스가 자원을 전혀 갖고있지 않을때만 자원을 요청 단점 자원의 낮은 사용률 : 자원을 실제로 사용하지 않는 동안에도 자원을 점유하고 있어야 함 기아 상태 가능성 Operating System Concepts

Operating System Concepts 교착상태 예방 (Cont.) 비선점 예방 방법 어떤 자원을 가진 프로세스가 추가의 자원을 요청하여 대기하게 되면, 가지고 있던 자원을 해제하고 대기함 대기 중인 프로세스는 이전의 자원들과 새 자원을 모두 갖게되면 재시작함 순환대기 예방 방법 모든 자원 유형에 전체 순서를 부여하고, 프로세스는 오름차순으로 자원을 요청 교착상태 예방법들은 자원의 사용률을 저하시키는 문제점이 있다. Operating System Concepts

Operating System Concepts 교착상태 회피 각 프로세스는 자원 유형마다 필요한 최대 개수를 선언하고, 시스템은 이 정보를 이용해서 교착상태가 되지 않도록 하는 방법 교착상태 회피 알고리즘은 자원-할당 상태를 감시하여 순환대기 조건이 발생하지 않도록 한다. 자원-할당 상태 : 자원의 가용 개수와 할당 개수, 프로세스들의 최대 요구 개수로 정의됨 Operating System Concepts

Operating System Concepts 안정 상태 (Safe State) 어떤 프로세스가 자원을 요청하면, 시스템은 이 자원을 할당한 후의 상태가 안정 상태인지 검사함. 안정 상태 : 특정한 순서대로 각 프로세스에 자원을 할당할 수 있고, 교착상태를 방지할 수 있는 경우 프로세스들의 순서 <P1, P2, …, Pn>는, 모든 Pi,에 대해서 Pi 가 요청하는 자원들이 현재 사용가능한 자원들과 j < i인 Pj가 점유하는 자원으로서 만족된다면 안정상태이다. 이때 Pi 가 필요한 자원들을 즉시 사용할 수 없다면, Pi 는 Pj 가 끝날때까지 대기한다. Pj 가 끝나면, Pi 는 필요한 자원을 획득하고, 작업을 수행한 후 모든 점유하는 자원을 해제하고 종료한다. Pi 가 종료하면, Pi+1 이 필요한 자원을 확보하고 계속 처리를 진행한다. Operating System Concepts

안정 상태의 예 3개의 프로세스 : P0, P1, P2 12개의 자기 테이프 시간 t0에서의 시스템 상태 최대 수요 현재 수요 이때, 시스템은 안정 상태에 있다. 프로세스 P1이 먼저 수행되면, 테이프 장치를 할당받아 작업을 마칠 수 있고, 다음에 프로세스 P0이 수행되어 테이프 장치를 할당받을 수 있으며, 다음에 프로세스 P2가 수행되면 모두 완료되기 때문이다. 즉, <P1, P0, P2> 순서는 안정 상태를 충족한다. 현재 총 수요가 9이므로 남아있는 테이프는 3개이다 최대 수요 현재 수요 P0 10 5 P1 4 2 P2 9 2 Operating System Concepts

Operating System Concepts 안정, 불안정, 교착 상태 Operating System Concepts

Operating System Concepts 관찰 시스템이 안정상태라면  교착상태가 없다 시스템이 불안정상태라면  교착상태 가능성 교착상태는 불안정 상태이다. 그러나, 불안정 상태라고 해서 모두 교착상태는 아니다. 교착상태 회피  시스템이 불안정상태에 들어가지 않도록 함 Operating System Concepts

Operating System Concepts 자원 할당 그래프 알고리즘 자원 유형마다 하나의 자원을 가진 시스템에서 사용한다. 요청가능 선(Claim edge) Pi  Rj : 프로세스 Pj 가 미래에 자원 Rj를 요청할 것을 의미함. 점선으로 표현. 요청가능 선은 프로세스가 자원을 요청하면 요청선으로 변환됨 요청선은 자원이 할당되면 할당선으로 변환됨 프로세스가 자원을 해제하면 할당선은 요청가능선으로 변환됨 프로세스가 실행되기 전에, 프로세스의 모든 요청가능 선들을 자원 할당 그래프에 포함시킴. 그래프에 주기가 생기는 지 검사함 주기가 없다면 시스템은 안정상태 주기가 생기면 불안정상태 Operating System Concepts

Operating System Concepts 예 할당선 요청선 요청가능선 요청가능선 Operating System Concepts

Operating System Concepts 불안정 상태 Operating System Concepts

은행가 알고리즘(Banker’s Algorithm) 자원 유형에 다수개의 자원을 가진 시스템에서 사용 각 프로세스는 실행되기 전에 필요로 하는 모든 자원 형태들의 최대수를 선언한다. 프로세스가 자원을 요구할 때 시스템은 자원을 할당한 후에도 안정 상태로 남아있게 되는 지를 검사함. 안정 상태에 있으면 자원을 할당하고 그렇지 않으면 다른 프로세스들이 자원을 해제할 때까지 대기함 Operating System Concepts

Operating System Concepts 은행가 알고리즘의 자료 구조 n = 프로세스의 개수, m = 자원 유형의 개수 Available: 길이가 m인 벡터. available [j] = k : 자원 유형 Rj 에 k개의 자원 사례가 사용가능함 Max: n x m 행렬. Max [i,j] = k : 프로세스 Pi 는 자원 유형 Rj에 최대 k개의 자원을 요청할 수 있음. Allocation: n x m 행렬. Allocation[i,j] = k : 프로세스 Pi 는 현재 자원 유형 Rj의 자원을 k개 할당받았음. Need: n x m 행렬. Need[i,j] = k : 프로세스 Pi 작업을 끝내기 위해서 자원 유형 Rj 의 자원을 k개 필요로 함. Need [i,j] = Max[i,j] – Allocation [i,j]. Operating System Concepts

안정 알고리즘(Safety Algorithm) 시스템이 안정상태인지 판단하는 알고리즘 1. Work와 Finish 를 길이가 각각 m과 n인 벡터라고 하자. 초기값은, Work := Available Finish [i] = false, i = 1,2, …, n. 2. 다음과 같이 되는 i를 찾는다. (a) Finish [i] = false (b) Needi  Work 이런 i가 없다면, 단계 4로 간다. 3. Work := Work + Allocationi Finish[i] := true 단계 2로 간다. 4. 모든 i에 대해서, Finish [i] = true, 시스템은 안정 상태이다. Operating System Concepts

Operating System Concepts 프로세스 Pi의 자원 요청 알고리즘 Requesti = 프로세스 Pi의 요청벡터, 즉, Requesti [j] = k 이면, 프로세스 Pi 가 자원 유형 Rj의 자원 k개를 요청 1. Requesti  Needi 이면 단계 2로 간다. 그렇지 않으면, 오류. 2. Requesti  Available 이면 단계 3으로 간다. 그렇지 않으면 Pi 는 대기한다. 3. 시스템은 상태를 다음과 같이 수정한다: Available := Available - Requesti; Allocationi := Allocationi + Requesti; Needi := Needi – Requesti;; 결과가 안정 상태이면, 프로세스 Pi 에게 자원을 할당. 불안정 상태이면, Pi 는 대기하고, 자원할당 상태는 이전으로 복원된다. Operating System Concepts

Operating System Concepts 은행가 알고리즘의 예제 5개의 프로세스 : P0 ~ P4 3개의 자원 유형 : A (10 instances), B (5 instances), C (7 instances). 시간 T0: Allocation Max Available A B C A B C A B C P0 0 1 0 7 5 3 3 3 2 P1 2 0 0 3 2 2 P2 3 0 2 9 0 2 P3 2 1 1 2 2 2 P4 0 0 2 4 3 3 Operating System Concepts

Operating System Concepts 예제 (Cont.) 행렬 Need 의 내용 : Max – Allocation Need A B C P0 7 4 3 P1 1 2 2 P2 6 0 0 P3 0 1 1 P4 4 3 1 이때 이 시스템은 안정상태에 있다. < P1, P3, P4, P2, P0> 순서가 안정조건을 충족함 Operating System Concepts

Operating System Concepts Request  Available인지 검사 (즉, (1,0,2)  (3,3,2)  true인지 검사). 조건이 만족되어 다음의 새로운 상태로 가게 됨 Allocation Need Available A B C A B C A B C P0 0 1 0 7 4 3 2 3 0 P1 3 0 2 0 2 0 P2 3 0 1 6 0 0 P3 2 1 1 0 1 1 P4 0 0 2 4 3 1 이 상태가 안정상태인지 검사 : <P1, P3, P4, P0, P2> 가 안정조건을 충족함 P4 가 (3,3,0)을 요청하면 : 자원 부족이므로 허용 불가 P0 이 (0,2,0)을 요청하면 : 불안정 상태이므로 허용 불가 Operating System Concepts

Operating System Concepts 교착상태 탐지 교착상태가 일어나도록 허용함 교착상태가 발생했는 지를 탐지하는 알고리즘이 수행 교착상태로부터 회복하는 알고리즘이 수행 Operating System Concepts

Operating System Concepts 각 자원 형태가 하나의 자원을 가진 경우 대기 그래프(wait-for graph) 자원 할당 그래프의 변형을 사용함 (자원 형태의 노드를 제거) 대기 그래프의 노드는 프로세스를 표현함 Pi 가 Pj의 자원을 대기하는 상태 : Pi  Pj 탐지 알고리즘은 주기적으로 수행하면서 대기 그래프에 주기가 생기는지 검사함. 그래프의 노드가 n개 이면, n2 의 연산이 필요함 Operating System Concepts

Operating System Concepts 자원 할당 그래프와 대기 그래프 자원 할당 그래프 대응하는 대기 그래프 Operating System Concepts

Operating System Concepts 각 자원 형태가 여러 자원을 가진 경우 자원 형태의 개수 : m, 프로세스의 개수 : n Available: 각 자원 형태마다 사용가능한 자원의 수를 표시하는 길이가 m인 벡터 Allocation: 각 프로세스에 현재 할당된 각 형태들의 자원의 수를 표시하는 n x m 형렬 Request: 각 프로세스의 현재 요청을 표시하는 n x m 행렬. 만약 Request [I, j] = k라면, 프로세스 Pi 는 자원 형태 Rj의 자원을 k개 더 요청 Operating System Concepts

Operating System Concepts 탐지 알고리즘 1. Work 와 Finish 는 길이가 각각 m 과 n인 벡터이고 초기값은, (a) Work := Available (b) For i = 1,2, …, n, if Allocationi  0, then Finish[i] := false; otherwise, Finish[i] := true. 2. 다음과 같은 색인 i 를 찾는다: (a) Finish[i] = false (b) Requesti  Work 만약 이런 i 가 없다면, 단계 4로 간다. Operating System Concepts

Operating System Concepts 탐지 알고리즘 (Cont.) 3. Work := Work + Allocationi Finish[i] := true 단계 2로 간다. 4. 어떤 i(1  i  n)에서 Finish[i] = false가 되면 시스템은 교착상태가 됨. 그리고, Finish[i] = false이면, Pi 는 교착상태에 있다. 이 알고리즘은 교착상태에 있는 지를 탐지하기 위해 m x n2 의 연산을 요구한다. Operating System Concepts

Operating System Concepts 탐지 알고리즘의 예제 다섯개의 프로세스 (P0 ~ P4)와 세개의 자원 형태 A (7 자원), B (2 자원), C (6 자원). 시간 T0: Allocation Request Available A B C A B C A B C P0 0 1 0 0 0 0 0 0 0 P1 2 0 0 2 0 2 P2 3 0 3 0 0 0 P3 2 1 1 1 0 0 P4 0 0 2 0 0 2 <P0, P2, P3, P1, P4> 순서는 모든 i에 대해서 Finish[i] = true로 됨 Operating System Concepts

Operating System Concepts 예제 (Cont.) P2 가 자원 형태 C의 자원을 한 개 더 요청하면 : Request A B C P0 0 0 0 P1 2 0 2 P2 0 0 1 P3 1 0 0 P4 0 0 2 시스템의 상태는 ? 교착상태가 존재 Operating System Concepts

Operating System Concepts 교착상태로부터 회복 오퍼레이터가 수동적으로 처리 시스템이 자동적으로 처리 프로세스 중지 교착상태에 있는 모든 프로세스를 중지시킴 교착상태가 해결될 때까지 프로세스를 하나씩 중지 자원 선점 프로세스로부터 자원을 선점해 이들을 교착상태가 해결될 때까지 다른 프로세스에게 준다 Operating System Concepts