제 7 장 교착 상태 (Deadlocks) 7.1 시스템 모델 (System Model)

Slides:



Advertisements
Similar presentations
A 장형태.  병행프로세스 개요  상호배제 (Mutual Exclusion)  상호배제 ( 세마포어 )  모니터 (monitor)  프로세스간 2 가지 통신방법.
Advertisements

제 9 장 가상기억장치 (Virtual Memory)
컴퓨터와 인터넷.
UNIX 운영 체제의 설계 - Chapter 4. 파일의 내부 표현
인터넷의활용.
제 4 장 프로세스 Section 1 프로세스의 개념 Section 2 프로세스 스케줄링
Concurrency: Deadlock and Starvation
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Network Lab. Young-Chul Hwang
컴퓨터 프로그래밍 기초 [Final] 기말고사
제 7 장 교착 상태 7.1 개요 개념 교착 상태란 프로세스들의 집합이 더 이상 진행을 못하고 영구적으로 블록되어 있는 상태 집합 내의 한 프로세스가 특정 사건의 발생을 기다리며 대기하고 있고, 이 사건이 집합 내의 다른 블록 된 프로세스에 의해 발생될 수 있을.
Concurrency: Deadlock and Starvation
운영체제 4장 요약정리(CPU 스케줄링) 2A 박훈.
목차 백업과 복원.
04 CPU 스케줄링 CPU Scheduling
Windows Server 장. 사고를 대비한 데이터 백업.
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
Ch. 8 교착상태 (Deadlocks) 29-Nov-18.
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
Chapter 02 순환 (Recursion).
Linux서버를 이용한 채팅프로그램 지도 교수님 : 이형원 교수님 이 름 : 이 은 영 학 번 :
제3장 스택과 큐.
질의 사항 Yield Criteria (1) 소재가 평면응력상태에 놓였을 때(σ3=0), 최대전단응력조건과 전단변형에너지 조건은σ1 – σ2 평면에서 각각 어떤 식으로 표시되는가? (2) σ1 =σ2인 등이축인장에서 σ = Kεn로 주어지는 재료의 네킹시 변형율을 구하라.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
교착상태(Deadlocks) 시스템 모델(System Model) 프로세스는 자원을 요구 -> 사용 -> 해제
10 장 데이터 링크 제어(Data Link Control)
Sungkyunkwan University OS Project Dongkun Shin
03. 병행 프로세스 (Parallel Process)
2주차 운영체제-프로세스 2-B 장정훈.
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
9장. 특징 선택 오일석, 패턴인식, 교보문고, © 오일석, 전북대학교 컴퓨터공학.
제6장 교착상태 OS 컴퓨터 운영체제 Operating Systems
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
[예제] 의사결정나무 현재의 공장을 기술적 진부화에 대비하여 현대화하는 문제를 고려 중인 상태에서,
ROC curve Receiver-Operating Characteristic curve.
뇌를 자극하는 Windows Server 2012 R2
Operating System Concepts
Chapter 11. Windows Server 2000 & 2003
시뮬레이션 기반 가상 보조기구 알고리즘 최적화
자바 5.0 프로그래밍.
부서 QI 및 지표 담당자 모임 2012년 8월 2차 QI 활동 방법 지표 관리 회의록 작성법
Chapter 12. 파일, 프린트 서버관리 네트워크 환경에서 파일서버, 프린트 서버를 구축하여 사용하는 것은 기본이다. 효율성 있는 파일서버의 관리방법에 대해서 설명하고 있으며, 프린트 서버를 운영할 때 참고할 만한 기능에 대해서도 설명한다. 분산파일시스템, 디스크할당량.
2. 교착상태 해결 기법 실행 과정 - t0 시간에 시스템은 안정상태이며, 순서는 안정 조건을 만족함. - 프로세스 P1은 사용 가능한 자원을 2개 할당 받아 실행한 후 반납 가능하므로 시스템의 여분 자원은 5 개임. - P0은 사용 가능한 자원.
10 장 데이터 링크 제어(Data Link Control)
10 장 데이터 링크 제어(Data Link Control)
5 교착상태와 기아상태.
텍스트 분석 기초.
운영체제 (Operating Systems)
객체기반 SW설계 팀활동지 4.
병행프로세스의개요 주세호.
단축키 기능 1. 단축키 기능 설명 Alt + R 조회 S 저장 I 삽입 A 추가 D 삭제 P 출력 Q 닫기
클러스터 시스템에서 효과적인 미디어 트랜스코딩 부하분산 정책
CPU 스케줄링  이성연.
병행 프로세스 병행처리는 프로세스들이 서로 관계없이 독립적으 로 수행 가능하고 다른 프로세스들과 협력을 필요로 하면서 기능 수행 3.1 개요 parbegin/parend 제어문 : 순차적인 수행으로부터 여러 개의 동시 수행으로 갈라짐을 지시하는 명령어와 여러 개의 동시.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
5장 교착 상태 교착상태의 원리를 이해한다. 교착상태의 해결을 위한 예방, 회피, 탐지 그리고 회복에 대하여 알아본다.
System Security Operating System.
컴퓨터공학과 손민정 Computer Graphics Lab 이승용 교수님
제 4 장 Record.
운영체제 (Operating Systems)
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
스케줄링 2A 박남규.
제 8장 가상 기억장치의 구성과 관리 장태양.
Concurrency: Deadlock and Starvation
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
병행 프로세스(Parallel Process)
2. 프로세스 B 안우진 - 운영체제 -.
ARP.
클럽등록 개요 □ 생활체육정보센터 : □ 생활체육 동호인 클럽 프로세스 안내
Chapter 7: Deadlocks.
Presentation transcript:

제 7 장 교착 상태 (Deadlocks) 7.1 시스템 모델 (System Model) 자원 요청->할당 불가->대기(wait) 상태: 교착 상태 가능 7.1 시스템 모델 (System Model) 한정된 자원 물리적: CPU, 기억장치, I/O 장치 논리적: 파일, 세마포, 모니터 여러 형태 자원을 사용 전 요청하고 사용 후 해제 시스템 호출(open, close, alloc, free, ...) 요청 수락 불가(최대 허용 수 초과) ->해당 자원의 ‘큐’에 추가

7.2 교착 상태의 특징 (Deadlock Characterization) 7.2.1 필요한 조건들 (Necessary Conditions) 동시 만족될 조건들  상호 배제 (mutual exclusion) 점유와 대기 (hold and wait) 비선점 (no preemption) 순환 대기 (circular wait) *hold-and-wait를 암시

7.2.2 자원 할당 그래프 (Resource-Allocation Graph) 정점 V = {P, R} (프로세스 혹은 자원의 집합) 자원 할당 그래프 (resource-allocation graph) 요청선(request edge) Pi Rj P가 R 형태의 자원 하나를 요청하고 대기 중 할당선(assignment edge) Rj Pi Rj 형태의 자원 하나가 Pi에 할당되어 있음 자원을 요청하면 요청선이 삽입되고 만족되면 즉시 할당선으로 변환 (해제하면 삭제) 사이클(cycle)이 존재하고 각 자원 형태가 한 개의 자원만을 가지면 => “교착 상태” (그림 7.2 7.3)

7.3 교착 상태 처리 방법 (Methods for Handling Deadlocks) 발생 안하게 : 교착 상태가 생기지 않는 프로토콜 사용 예방(prevention) 교착 상태 발생 4 조건 중 하나가 만족되지 않게 회피(avoidence) 각 P의 자원 요구에 대한 사전 정보를 이용 현재는 물론 미래에 교착상태가 발생하지 않도록 자원 할당 발생 후 회복 : 발생 허용 -> 탐지 -> 회복 방치 : 많은 OS가 채택 비용 절감, 교착 상태는 매우 간혹 발생한다 발생하면 => 시스템 정지

7.4 교착 상태 예방 (Deadlock Prevention) 7.4.1 상호 배제 4 조건 중 하나를 예방, 장치 이용율 및 시스템 성능 저하 7.4.1 상호 배제 예방 힘듬 : 파일(공유 가능) <-> 프린터(공유 불가) 7.4.2 점유와 대기 보유 자원이 없을 때만 자원 요청이 가능하게 예) 1.테이프 - 2.디스크 파일 - 정렬(sort) - 3.프린터 두 자원(1, 2) 요청 -> 모두 해제 -> 다시 두 자원(2, 3) 요청 문제점 : 낮은 자원 이용률, 기아 가능

7.4.3 비선점 (No Preemption) 7.4.4 순환 대기 (Circular Wait) 각 자원 형태에 순서 부여 (복구 가능한-CPU/메모리 등)자원을 빼앗을 수 있게 방법 1: 다른 자원 요청 시 즉시 할당 안되면 무조건 사용중인 자원을 모두 뺏앗김. 나중에, 모든 자원(새 자원 포함)을 동시 할당받을 수 있을 때까지 대기 방법 2: 다른 자원 요청 시 즉시 할당 안되면 그 자원을 사용 중인 다른 P의 상태를 검사. 대기 중이면 뺏고 아니면 자신이 대기 7.4.4 순환 대기 (Circular Wait) 각 자원 형태에 순서 부여 1. 자원을 오름차순으로 요청 혹은, 2. Rj의 한 자원을 요청하려면 F(Ri)  F(Rj)인 Ri 형태의 자원을 모두 해제해야 한다

7.5 교착 상태 회피 (Deadlock Avoidence) 앞의 예방 기법은 처리율 감소가 너무 심함 미래의 자원 사용을 파악(예측) : 예) 최대 사용 수 순환 조건이 만족되지 않게 하는 알고리즘 사용 7.5.1 안정 상태(Safe State) 안정 상태: <P1, P2, … Pn>의 모든 Pi에 대해 Pi가 요청하는 자원들이 ‘현재의 가용 자원’ + ‘j < i인 Pj가 점유하고 있는 자원’으로 만족될 수 있는 상태 (그림 7.4) 안정 순서 최대 수요 현재 수요 P0 10 5 안정 순서: <P1, P0, P2> P1 4 2 P2 9 2 3이 되면 불안정 상태 자기 테잎 수 = 총 12 개

7.5.2 자원 할당 그래프 알고리즘 각 자원 형태마다 자원이 한 개라고 가정 요청 가능(claim) 선(점선)을 추가 실제 요청 시 ‘요청 가능선-> 요청선’ (해제 시 반대 현상) 요청선을 할당선으로 바꿀 때, 다른 프로세스의 요청 가능선을 포함하여 사이클이 생기면 할당 가능해도 요청 거절 => 불안정 상태를 발견하는 한 방법 (그림 7.5, 7.6)

7.5.3 은행가 알고리즘 (Banker’s Algorithm) 각 자원 형태 당 여러 개 자원, 덜 효과적 자원 요구 시 안정 상태 유지 여부 따라 할당 n: 프로세스의 수, m: 자원 형태의 수 Available: 자원 형태별 자원 수 (m) Max: 각 P의 최대 자원 요구 (n  m) Allocation: 현재 각 P에 할당된 자원 수 (n  m) Need: 각 P의 추가 자원 요구 (n  m) Need[i, j] = Max[i, j] - Allocation[i, j]

안정 알고리즘(safe algorithm)  Work := Available, Finish[i] := false Finish[i] = false이고 Needi  Work인 i를 찾는다 발견 없음 Finish[i] := true Work := Work + Allocationi 안정상태 모든 Finish[i] := true ? 예 알고리즘 복잡도 = O(m  n2)

자원 요청 알고리즘(Resource Request Algorithm)  Requesti  Needi ? 오류 아니오 Requesti  Availablei ? 대기 아니오 Available := Available - Requesti; Allocationi := Allocationi + Requesti; Needi := Needi - Requesti; 성공 안정 상태 ? 취소 네 아니오

불안정상태 안정상태 Allocation Max Available A B C A B C A B C (10개) (5개) (7개) 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 Need A B C 7 4 3 1 2 2 6 0 0 0 1 1 4 3 1 불안정상태 Request0 = (0, 2, 0) 취소 Allocation Available Need A B C A B C A B C P0 0 1 0 2 3 0 7 4 3 P1 3 0 2 0 2 0 P2 3 0 2 6 0 0 P3 2 1 1 0 1 1 P4 0 0 2 4 3 1 <P1, P3, P4, P2, P0> Request1 = (1, 0, 2) 안정상태

Allocationi  0이면 Finish[i] := false 아니면 true 교착상태 탐지 알고리즘 (자원 형태마다 여러 개의 자원이 있는 경우) Work := Available Allocationi  0이면 Finish[i] := false 아니면 true Finish[i] = false이고 Requesti  Work인 i를 찾는다 발견 없음 Finish[i] := true Work := Work + Allocationi false인 Pi끼리 교착상태 모든 Finish[i] := true ? 현재로선 교착상태 없음 아니오 알고리즘 복잡도 = O(m  n2)

교착상태 Allocation Request Available A B C A B C A B C (7개) (2개) (6개) 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 Request A B C 0 0 2 2 0 2 0 0 1 1 0 0 <P0, P2, P3, P1, P4> <P0, P1, P2, P3, P4> 교착상태아님 교착상태

7.6.3 탐지 알고리즘 사용 (Detection Algorithm Usage) 교착 상태의 빈도수나 관련된 P의 수와 비례하여 사용 예) 요청이 즉시 만족 안될 때마다 /1시간 마다/CPU 이용률이 40%이하일 때마다 교착 상태의 원인이 되는 P를 파악하기는 힘들다 7.7 교착 상태로부터의 회복 7.7.1 프로세스 중지 (Termination) 모두 중지시키거나, 해결될 때까지 차례로 중지시킴 간단치 않음 (파일 갱신중, …) 우선순위, 수행 시간/남은 시간, 사용 중인 자원/추가 자원, 대화식 여부 등을 고려하여 중지할 P 선정

7.7.2 자원 선점 (Resource Preemption) 7.8 교착 상태 해결을 위한 복합 방식 희생자 선택, 복귀(rollback), 기아 상태 등을 고려 7.8 교착 상태 해결을 위한 복합 방식 자원들을 계층적으로 부류(class)화하여 class 단위로 ‘자원 순서 기법’을 적용 내부자원(PCB…) - CPU - 작업 자원(장치…) - swap 공간 각 class 내에서는 예방-회피-탐지 중 한 가지 선택 예: CPU는 선점 가능 => ‘예방’ 가능