Chapter 7: Deadlocks.

Slides:



Advertisements
Similar presentations
김예슬 김원석 김세환. Info Northcutt Bikes Northcutt Bikes The Forecasting problem The Forecasting problem The solution 1~6 The.
Advertisements

OS 소개 Introduction 설계목표 기본 용어 Resource Management History.
평코칭 리더용 제2과: 자산평가와 자기발견 GO Thrive Coaching S Belmont Dr
6주차:『GPU(CUDA) Programming』
Hourglass-A library for incremental processing on Hadoop
Mar OSEK/VDK Woo Dong Kyun.
Chapter 7 ARP and RARP.
제 4 장 프로세스 Section 1 프로세스의 개념 Section 2 프로세스 스케줄링
Concurrency: Deadlock and Starvation
코칭의 강의순서 1. 코칭의 정의 2.코칭의 성서관 3.코칭의 진단 4.코칭의 과정/처방 5.코칭의 기술 6.코칭의 목표/
4. ITIL 개요 * ICT : Information & Communication Technology
AWR DB 보고서 분석.
REINFORCEMENT LEARNING
Delivery and Routing of IP Packets
Dr. Mike Eisenberg 교수가 개발한 21세기 문제해결법: Big 6
Internet Computing KUT Youn-Hee Han
Uniprocessor Scheduling
제 7 장 교착 상태 (Deadlocks) 7.1 시스템 모델 (System Model)
제 7 장 교착 상태 7.1 개요 개념 교착 상태란 프로세스들의 집합이 더 이상 진행을 못하고 영구적으로 블록되어 있는 상태 집합 내의 한 프로세스가 특정 사건의 발생을 기다리며 대기하고 있고, 이 사건이 집합 내의 다른 블록 된 프로세스에 의해 발생될 수 있을.
Concurrency: Deadlock and Starvation
프로세스 관리.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
Ch.04 Greedy Method (탐욕적 방법)
부분집합의 합 구하기 문제 부분집합의 합 구하기(Sum-of-Subsets) 문제
4장 병행 프로세스 병행성의 원리를 이해한다 병행 프로세스 수행과 관련된 상호 배 제 해결방안을 알아본다
Chapter 2 OSI 모델과 TCP/IP 프로토콜.
On the computation of multidimensional Aggregates
Ch. 8 교착상태 (Deadlocks) 29-Nov-18.
PPP (Point-to-Point Protocol)
Ch. 5 : Analog Transmission
Java의 정석 제 12 장 쓰레드(thread) Java 정석 남궁성 강의
Lecture #3 프로세스(Process).
Chapter 2. Finite Automata Exercises
교착상태(Deadlocks) 시스템 모델(System Model) 프로세스는 자원을 요구 -> 사용 -> 해제
숭실대학교 마이닝연구실 김완섭 2009년 2월 8일 아이디어  - 상관분석에 대한 연구
발표자 : 홍익대학교 소프트웨어 공학 연구실 변은영 지도교수 : 김영철
Chapter 10. 파일 시스템 인터페이스(File System Interface)
파일 시스템 인터페이스(File System Interface)
Chapter 12 다중 접속 (Multiple Access).
계수와 응용 (Counting and Its Applications)
Cognitive radio Either a network or a wireless node changes its transmission or reception parameters to communicate efficiently avoiding interference with.
4 병행 프로세스와 상호배제.
Chapter 31 Faraday’s Law.
Chapter 4 The Von Neumann Model.
4-1 Gaussian Distribution
제5장 CPU스케줄링(CPU Scheduling)
제6장 교착상태 OS 컴퓨터 운영체제 Operating Systems
Congestion Control for Vehicular Safety:
McGraw-Hill Technology Education
Operating System Concepts
Introduction to Programming Language
Transmission Control Protocol (TCP)
Chapter 12 Memory Organization
CEO가 가져야 할 품질 혁신 마인드.
알고리즘의 분석(analysis) 공간적 효율성(Space Efficiency)과 시간적 효율성(Time Efficiency)
Chapter 13 – 객체 지향 프로그래밍 Outline 13.1 소프트웨어의 재사용과 독립성
이산수학(Discrete Mathematics)
점화와 응용 (Recurrence and Its Applications)
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
알고리즘의 분석(analysis) 공간적 효율성(Space Efficiency)과 시간적 효율성(Time Efficiency)
5장 교착 상태 교착상태의 원리를 이해한다. 교착상태의 해결을 위한 예방, 회피, 탐지 그리고 회복에 대하여 알아본다.
03. 병행 프로세스(Parallel Process)
I/O Management and Disk Scheduling
ARENA Basic Process Techniques
운영체제 (Operating Systems)
[CPA340] Algorithms and Practice Youn-Hee Han
Concurrency: Deadlock and Starvation
Chapter 4. Energy and Potential
알고리즘의 분석(analysis) 공간적 효율성(Space Efficiency)과 시간적 효율성(Time Efficiency)
3장 – 병행 프로세스 A 김정문.
Presentation transcript:

Chapter 7: Deadlocks

Chapter 7: Deadlocks System Model Deadlock Characterization Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock

Chapter Objectives To develop a description of deadlocks, which prevent sets of concurrent processes from completing their tasks To present a number of different methods for preventing or avoiding deadlocks in a computer system

System Model System consists of resources Resource types R1, R2, . . ., Rm CPU cycles, memory space, I/O devices Each resource type Ri has Wi instances. Each process utilizes a resource as follows: request use release

Deadlock Characterization Deadlock can arise if four conditions hold simultaneously. Mutual exclusion: only one process at a time can use a resource Hold and wait: a process holding at least one resource is waiting to acquire additional resources held by other processes No preemption: a resource can be released only voluntarily by the process holding it, after that process has completed its task Circular wait: there exists a set {P0, P1, …, Pn} of waiting processes such that P0 is waiting for a resource that is held by P1, P1 is waiting for a resource that is held by P2, …, Pn–1 is waiting for a resource that is held by Pn, and Pn is waiting for a resource that is held by P0.

Resource-Allocation Graph(자원 할당 그래프) A set of vertices V and a set of edges E. V is partitioned into two types: P = {P1, P2, …, Pn}, the set consisting of all the processes in the system R = {R1, R2, …, Rm}, the set consisting of all resource types in the system request edge (요청 edge) – directed edge Pi  꺼 assignment edge (할당 edge) – directed edge Rj  Pi

Resource-Allocation Graph (Cont.) Process Resource Type with 4 instances Pi requests instance of Rj Pi is holding an instance of Rj Pi Rj Pi Rj

Example of a Resource Allocation Graph 프로세스 P1은 자원 R2의 한 인스턴스를 점유중이며, 자원 R1의 한 인스턴스를 요청하며 대기함 프로세스 P2는 R1과 R2의 한 인스턴스를 점유중이며, R3의 인스턴스 하나를 기다림 프로세스 P3는 R3의 인스턴스 한 개를 점유중

Resource Allocation Graph With A Deadlock 위 상황에서는 다음과 같은 두개의 사이클이 존재함 P1  R1  P2  R3  P3  R2  P1 P2  R3  P3  R2  P2 P1, P2, P3는 교착상태임 P2는 P3가 점유하는 자원 R3를 기다리고, P3는 P1&P2가 점유중인 자원 R2를 가다림. 또한, P1는 P2가 점유중인 R1을 기다림

Graph With A Cycle But No Deadlock P1  R1  P3  R2  P1 사이클이 존재하지만 Deadlock은 발생하지 않음 P4가 점유중인 R2 인스턴스가 방출(release)될 수 있기 때문  Release 되는 해당 R2의 인스턴스는 P3에 할당되어 사용될 수 있음  향후 cycle이 없어짐

Basic Facts If graph contains no cycles  no deadlock If graph contains a cycle  if only one instance per resource type, then deadlock if several instances per resource type, possibility of deadlock

Methods for Handling Deadlocks Three general approaches exist for dealing with deadlock: adopt a policy that eliminates one of the conditions Prevent Deadlock make the appropriate dynamic choices based on the current state of resource allocation Avoid Deadlock attempt to detect the presence of deadlock and take action to recover Detect Deadlock

Deadlock Prevention Strategy Design a system in such a way that the possibility of deadlock is excluded Two main methods: Indirect prevent the occurrence of one of the three necessary conditions Direct prevent the occurrence of a circular wait

Deadlock Condition Prevention Mutual Exclusion을 없앨 수 있을까? 시스템 설계시, mutual exclusion 을 사용하지 않을 수는 없음. (이는 shared resource의 일관성 유지에 필수적이므로) Hold and wait (점유대기)에 의한 Deadlock 발생 가능성 없애기 프로세스가 자신이 사용할 모든 자원을 한꺼번에 요청하는 전략을 취하면 점유대기에 의한 Deadlock 발생을 없앨 수는 있음(단, 성능 저하 등 비효율적) 즉,필요한 자원중에서 하나라도 할당받을 수 없는 상황에서는 다른 자원을 Hold 하지 않음 No Preemption (비선점)에 의한 Deadlock 발생 가능성 없애기 만약 자원을 점유한 프로세스가 다른 자원을 요청했을때, 할당 받을 수 없으면, 일단 자신이 점유한 자원을 반납함. 이후, 다시 예전에 점유했던 자원과 새로 원하는 자원을 다시 요청함 한 프로세스에서 다른 프로세스가 점유한 자원을 원하면, 강제로 다른 프로세스가 점유한 자원을 강제로 반납시키고 이를 원하는 프로세스에 할당 (선점 허용) Circular Wait define a linear ordering of resource types

Deadlock Avoidance Deadlock avoidance는 (상태배제 조건, 점유대기조건, 비선점 조건)은 허용하고 자원을 할당할때, deadlock이 발생가능한 상황으로 진행하지 않도록 함 Deadlock avoidance를 위해, process가 자원을 요청할 때, (현재 자원이 사용가능하다면), 있는 그대로 할당해주지 않고, 할당시 deadlock 발생 가능성이 있는지를 동적으로 체크함 Deadlock 발생 가능성 있으면 자원 할당해주지 않음 이에, Deadlock avoidance를 위해선 자원 가용 개수와 프로세스의 자원 요구량 등을 미리 알고 있어야 함 Deadlock avoidance를 위한 주요 두가지 방법 프로세스 자원 할당 거부(Resource Allocation Denial) 수행 중인 프로세스가 요구하는 추가적인 자원 할당이 deadlock 발생 가능성 있으면, 자원 할당 하지 않음 프로세스 시작 거부 (Process Initiation Denial) 프로세스가 시작하려 할떄, 요구하는 자원 할당이 deadlock 발생 가능성 있으면, 프로세스를 시작하지 않음

Resource Allocation Denial(자원할당 거부) Referred to as the banker’s algorithm (은행원 알고리즘) State of the system reflects the current allocation of resources to processes. 시스템 상태: 프로세스들이 자원을 요구하고 할당받은 관계를 의미함 Safe state is one in which there is at least one sequence of resource allocations to processes that does not result in a deadlock. 안전한 상태: deadlock이 발생하지 않도록 프로세스에게 자원을 할당할 수 있는 진행경로가 존재함 Unsafe state is a state that is not safe

Determination of a Safe State P2 실행후, Determination of a Safe State 요구 행렬 할당 행렬 각 프로세스 Pi가 추가 요구하는 자원 자원 벡터 가용 자원 벡터 Determination of a Safe State Process i에 대하여, 다음을 만족시키면, 해당 프로세스는 완료 가능 P1은 R1, R2, R3를 각각 (2,2,2)개 더 요구하고 있음. 하지만, 현재 남은 자원은 (R1,R2,R3)=(0,1,1)이므로 P1은 수행 완료 불가 P2는 (0,0,1) 요구하는데, 이는 제공 가능. 이때, P2가 완료되면 자신이 점유하던 자원 (6,1,2)을 모두 반납하여, 가용 자원은 (6,2,3)이 됨 (See below) 각 프로세스 Pi가 추가 요구하는 자원 P2 실행후, Determination of a Safe State

Figure 6.7 Determination of a Safe State 가용 자원이 (6,2,3) 있으므로, P1에게 할당하면, P1도 수행 완료 가능 각 프로세스 Pi가 추가 요구하는 자원 P1 실행후, Determination of a Safe State

Figure 6.7 Determination of a Safe State 이처럼 자원 할당시, safe state 이 계속 유지되면, deadlock 발생하지 않음 Dijkstra가 제안한 “자원할당거부 방법” 즉, 프로세스가 자원 할당 요청시, 자원할당 결과가 시스템의 상태를 계속 안전 상태로 유지할 수 있는지 먼저 파악하여, 안전하면 할당 허융. 아니면 할당 거부! (d) P3 runs to completion Figure 6.7 Determination of a Safe State

Determination of an Unsafe State 어떠한 process도 자신의 자원 요구를 모두 만족시키지 못함  수행을 완료하지 못하는 상태가 됨

Deadlock Avoidance Restrictions Maximum resource requirement for each process must be stated in advance Processes under consideration must be independent and with no synchronization requirements There must be a fixed number of resources to allocate No process may exit while holding resources

Deadlock Strategies Deadlock prevention strategies are very conservative limit access to resources by imposing restrictions on processes Deadlock detection strategies do the opposite resource requests are granted whenever possible