제6장 교착상태 OS 컴퓨터 운영체제 Operating Systems

Slides:



Advertisements
Similar presentations
광화문우체국 현장개선 컨설팅 추진 보고서 No part of this publication may be circulated, quoted, or reproduced for distribution outside the client organization.
Advertisements

향기 마케팅 Case presentation of KUSITMS 3-2 Copyright by KUSITMS 3-2, ALL RiGHTS RESERVED. Aroma Marketing Seoul. April 임동준 김동현 황영훈 우미영 김성희.
아이들 이영수누나 와 ( 김기휘, 김동석, 정민규, 강신모, 신은영, 이진경 ). 1. 팀 이름 소개 및 팀원 소개 2. 교재 소개 3. GS 시간 활용계획 4. GS 벌금 규칙 및 내역공개 5. 단어 시험 양식 5. 각 조원 후기 이영수와아이들ContentsContents.
NLP POWER 건강관리 행복한 가정과 사회를 만들기 위한 건강심리코치 유 주 현 상담심리전문가 김 완 수 RYU C&C
전국공무원노동조합 교육기관본부 경북대지부
OS 소개 Introduction 설계목표 기본 용어 Resource Management History.
사회보험 징수통합 관련 조사 결과 보고서 한국갤럽조사연구소
목 차 목적 및 수행개요 SLA Index 개괄 - 1. SLA Index Labor Relations
Mar OSEK/VDK Woo Dong Kyun.
Shortest Path Algorithm
제 4 장 프로세스 Section 1 프로세스의 개념 Section 2 프로세스 스케줄링
Concurrency: Deadlock and Starvation
정보통신실습 및 특강(5)
웹2.0과 ucc의 개념과 미래 ITEMWIZ STRATEGIC PLAN 동네수첩 동네미래전략 연구소
해외의 기술지주회사 지원사례 : IC에 대한 시사점
 midi LOGGER GL220   신제품 소개 Dec, 2011.
운영체제 레프토 (4장 CPU 스케줄링) b반 박상수.
Uniprocessor Scheduling
5.1.1 CPU-I/O 버스트 주기(CPU-I/O Burst Cycle)
제 7 장 교착 상태 (Deadlocks) 7.1 시스템 모델 (System Model)
제 7 장 교착 상태 7.1 개요 개념 교착 상태란 프로세스들의 집합이 더 이상 진행을 못하고 영구적으로 블록되어 있는 상태 집합 내의 한 프로세스가 특정 사건의 발생을 기다리며 대기하고 있고, 이 사건이 집합 내의 다른 블록 된 프로세스에 의해 발생될 수 있을.
Concurrency: Deadlock and Starvation
운영체제 (Operating Systems)
프로세스 관리.
6장 단일 프로세서 스케줄링.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
4장 병행 프로세스 병행성의 원리를 이해한다 병행 프로세스 수행과 관련된 상호 배 제 해결방안을 알아본다
오토메타 형식언어 2003년도 제 2학기.
On the computation of multidimensional Aggregates
Ch. 8 교착상태 (Deadlocks) 29-Nov-18.
CPU스케줄링(CPU Scheduling) ~
PPP (Point-to-Point Protocol)
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
Java의 정석 제 12 장 쓰레드(thread) Java 정석 남궁성 강의
Chapter2 프로세스란 조은성.
Lecture #3 프로세스(Process).
Chapter 2. Finite Automata Exercises
교착상태(Deadlocks) 시스템 모델(System Model) 프로세스는 자원을 요구 -> 사용 -> 해제
Next Radio System Lab 소개
- 자료 활용 시 참고사항 - 1. 성희롱 교육은 매년 실시하여야 하므로 매우 식상
제3,4,5장 프로세스, 스레드 관리 CPU 스케줄링.
5.1.1 CPU-I/O 버스트 주기(CPU-I/O Burst Cycle)
트랜잭션 처리(Transaction Processing)
Forwarder SCM CONFIDENTIAL AGREEMENT
모바일 무료 쿠폰 서비스 제안서 종이 쿠폰은 가라!
4 병행 프로세스와 상호배제.
제2장 프로세스 이나현.
CHAPTER 6 그래프.
제5장 CPU스케줄링(CPU Scheduling)
Copyright 2011 ㈜굿애플 All rights reserved
Operating System Concepts
운영체제 (Operating Systems) (Memory Management Strategies)
2. 상호배제와 동기화 01 program versionone; // 첫 번째 버전
문제 다음의 서술적 언어로 표현된 요구사항을 DFD로 완성하시오
Linux/UNIX Programming
2. 교착상태 해결 기법 실행 과정 - t0 시간에 시스템은 안정상태이며, 순서는 안정 조건을 만족함. - 프로세스 P1은 사용 가능한 자원을 2개 할당 받아 실행한 후 반납 가능하므로 시스템의 여분 자원은 5 개임. - P0은 사용 가능한 자원.
NCS 직업기초능력 진단검사 안내 Copyright © 2015 by JINHAK.Co. All rights reserved.
제 2장 프로세스 관리와 CPU 스케줄링 2.1 프로세스의 개념 2.2 CPU 스케줄링의 목적과 유형
운영체제 (Operating System) (하드웨어와 응용 프로그램 사이의 인터페이스 역할을 담당하는 시스템 소프트웨어)
개인회원가입, 그룹생성 & 그룹회원가입 매뉴얼
BBroker.
운영체제 학번 : 이름 : 이원석 반 : 2B.
5장 교착 상태 교착상태의 원리를 이해한다. 교착상태의 해결을 위한 예방, 회피, 탐지 그리고 회복에 대하여 알아본다.
ARENA Basic Process Techniques
스포츠클럽 설명 자료 스포츠클럽 Copyright © All Rights Reserved.
Linux/UNIX Programming
운영체제 (Operating Systems)
[CPA340] Algorithms and Practice Youn-Hee Han
Concurrency: Deadlock and Starvation
Chapter 7: Deadlocks.
Presentation transcript:

제6장 교착상태 OS 컴퓨터 운영체제 Operating Systems Copyright(c) 1999, Distributed Systems Lab., SungKyunKwan University, All rights reserved. No part of these slides may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, without the prior written permission of Distributed Systems Lab., SungKyunKwan University.

개요 대기 상태(blocked/asleep state)의 의미 교착상태(deadlock state)의 의미 프로세스가 특정 사건의 발생을 기다리는 상태 프로세스가 원하는 자원의 할당을 기다리는 상태 교착상태(deadlock state)의 의미 프로세스가 전혀 발생할 가능성이 없는 사건을 기다리는 경우 정의 : 교착상태 프로세스가 전혀 발생할 가능성이 없는 사건을 기다리는 경우 그 프로세스는 교착상태에 놓여 있다고 함 교착상태에 놓인 프로세스가 하나 이상 있는 경우 그 시스템은 교착상태에 있다고 함 교착상태와 무기한 연기 상태 구분 필요

교착상태를 포함한 프로세스 상태 전이도 terminated running dispatch (schedule) sleep (block) timerrunout (preemption) ready asleep deadlocked wakeup created transition impossible

자원의 분류 일반적인 자원의 분류 그외의 자원 분류 방법 하드웨어 자원/소프트웨어 자원 선점가능성에 의한 분류 할당 방식에 따른 분류 할당 형태에 따른 분류 자원의 속성에 따른 분류

자원의 분류 선점가능성에 의한 분류 선점가능 자원 (preemptible resources) 선점된 후 복귀시 아무런 문제점이 발생하지 않는 자원 프로세서(processor), 메모리(memory) 등 선점불가능 자원 (nonpreemptible resources) 자원을 선점하였을 때 이를 선점 당한 프로세스에게 어떤 형태로든 영향을 미치게 되는 경우 자기테이프 장치(tape drive) 등

할당 방식에 따른 분류 전체 할당식(total allocation) 자원 프로세스에 할당될 때 항상 자원 전체를 할당하게 되는 경우 프로세서, 자기테이프 장치 등 분할 할당식(partitioned allocation) 자원 하나의 자원을 여러 조각들로 분할하고 이렇게 분할된 조각 단위로 프로세스에게 할당할 수 있는 자원 메모리 등

할당 형태에 따른 분류 배타적 할당(exclusive allocation) 자원 여러 프로세스가 동시에 같이 사용할 수 없는 자원 프로세서, 메모리, 자기테이프 장치, 버퍼, 터미널 등 공유식 할당(sharable allocation) 자원 여러 프로세스가 동시에 같이 할당받아 사용할 수 있는 자원 대부분 공유 소프트웨어나 데이터 자원 프로그램(시스템/유틸리티 프로그램 등), 공유 데이터 등

자원의 속성에 따른 분류 순차적 재사용(SR : Serially Reusable Resources) 자원 없어지지 않고 영구적으로 존재하는 자원 프로세서, 메모리, 버퍼, 테이프 장치, 프로그램 등 소비성(CR : Consumable Resources) 자원 한 프로세스가 사용한 후 그 자원이 사라지는 형태의 자원 시그널(signal), 메시지(message) 등

교착상태 모델에서 대상이 되는 자원의 일반적인 형태 - 선점불가능 자원(nonpreemptible resources) - 배타적 할당 자원(exclusive resources) - 순차적 재사용 자원(serially reusable resources) 소비성 자원(consumable resources)을 대상으로 하는 교착상태 모델도 있음

교착상태의 예 교착상태의 발생과정의 예 2개의 프로세스 (P1, P2) 2개의 자원 (R1, R2) 간단한 교착상태 발생 과정 시간 프로세스 P2 ... request R2 request R1 release R1 release R2 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 ... request R1 request R2 release R1 release R2  Ⓐ  Ⓑ  Ⓒ  Ⓓ  Ⓦ  Ⓧ  Ⓨ  Ⓩ

P1 R1 R2 P2 그래프 모형 노드(node) 프로세스 노드(Pi), 자원 노드(Rj) 에지(edge) Rj  Pi : 해당 자원이 프로세스에게 할당됨 Pi  Rj : 프로세스가 해당 자원을 요청, 대기중 간단한 교착상태가 발생한 상황의 그래프 모형 P1 R1 R2 P2

시스템 상태 전이 모델 가정 상태 시스템에 2 개의 프로세스와 2 개의 단위 자원만이 존재함 프로세스는 한번에 하나의 단위 자원만을 요청/반납 가능함 상태 상태 할당 받은 단위 자원의 수 요청 여부 x 1 o 2 1 x 3 1 o 4 2 x Note 자원형(resource type) 단위 자원(resource unit)

시스템 상태전이도 (2 X 2 시스템) S41 P2 holds 0, needs 0 P2 holds 0, needs 1 P2

교착상태 발생원인 교착상태 발생 원인 4가지 필요조건(necessary conditions) 다음 4가지 조건이 모두 만족되는 경우에 교착상태 발생됨 자원에 대한 배타적 사용 (exclusive use) 선점불가능 자원(nonpreemptible resources)의 존재 프로세스에 대한 자원의 부분 할당 (partial allocation) 환형대기 상태(circular wait condition)의 발생

교착상태 해결기법 교착상태 해결 기법 교착상태 예방(prevention) 기법 교착상태 회피(avoidance) 기법 교착상태 검출(detection) 및 교착상태 복구(recovery) 기법

교착상태 예방 기법 교착상태 예방 기법 교착상태 발생의 4가지 필요조건들 중 한가지 조건을 제거 시스템 내에서 교착상태가 절대로 발생하지 않도록 함 대부분의 경우 자원의 심각한 낭비 초래함 비현실적임

교착상태 예방 기법 교착상태 발생의 필요조건 4가지에 대한 제거 방법 자원에 대한 배타적 사용 조건 배제  자원의 공유 자원에 대한 선점 기능 지원 자원의 전체 할당(total allocation) 기법 환형 대기상태의 배제

교착상태 예방 기법 자원에 대한 배타적 사용 조건 배제 자원에 대한 선점 기능 지원 시스템 내의 모든 자원들을 공유 가능하게 하는 방법 불가능함 자원에 대한 선점 기능 지원 유사한 방법 프로세스가 일부 자원을 할당받고, 가용하지 않는 자원을 추가로 요청할 경우 기존에 할당받은 모든 자원들을 반납하고 모든 작업을 취소함 자원의 낭비가 매우 심함 비실현적임

교착상태 예방 기법 자원의 전체 할당(total allocation) 기법 환형 대기상태의 배제 프로세스들로 하여금 필요한 모든 자원들을 실행 전에 미리 할당 받도록 하는 기법 단점 자원의 낭비 초래 무기한 연기 상태 발생 가능 환형 대기상태의 배제 자원들에 대한 순서화 모든 프로세스들은 순서상의 한쪽 방향으로만 자원을 요구하고 할당 받을 수 있도록 하는 기법 자원의 전체 할당 기법을 좀더 일반화한 기법임

교착상태 예방 기법 교착상태 예방 기법의 요약 - 교착상태 발생의 4가지 필요조건들 중 어느 하나를 배제함 - 대부분의 경우 자원의 심각한 낭비를 초래 - 현실적으로 사용하기 어려움

교착상태 회피 기법 교착상태 회피 기법 개요 항상 시스템 상태를 감시 자원의 할당 과정에서 시스템 상태가 교착상태로 전이될 가능성이 있다고 판단되면 자원 할당을 유보 시스템을 안전상태로만 유지

교착상태 회피 기법 Safe state vs unsafe state 안전 상태의 의미 비안전 상태의 의미 시스템 내의 모든 프로세스들을 유한 시간 내에 정상 종료시킬 수 있는 상태 Safe sequence 존재 그렇지 않은 경우를 비안전 상태(unsafe state)라 함 안전 상태의 의미 시스템의 상태가 교착상태로 전이되지 않도록 보장할 수 있음 비안전 상태의 의미 교착상태로의 전이를 피하지 못할 가능성 존재 반드시 교착상태가 발생한다는 의미 아님

교착상태 회피 기법 가정 프로세스의수가 고정되어 있어야 함 자원형 및 단위 자원의 수가 고정되어 있어야 함 각 프로세스가 시스템에 요구하는 자원의 최대 요구량이 미리 알려져야 함 프로세스는 할당받은 자원을 이후 반드시 반납하여야 함 not practical

교착상태 회피 기법 교착상태 회피 기법의 종류 Dijkstra’s Banker’s algorithm Habermann’s algorithm

Dijkstra’s 알고리즘 교착상태 회피를 위한 간단한 이론적 기법 시스템 내에 자원형이 한 가지만 존재하는 경우 1 resource type, multiple units 시스템의 상태를 항상 안전상태로만 진행 시킴

Dijkstra’s 알고리즘 상태 - 1 안전 상태의 예 시스템의 가정 프로세스-ID 최대 요구량 현재 할당량 추가요구 가능량 P1 3 1 2 P2 9 5 4 P3 5 2 3 Available resource units : 2 실행 종료 순서 : P1  P3  P2 - 안전 순서 (safe sequence) 현재 상태에서 안전 순서가 하나이상 존재하면 안전 상태임

Dijkstra’s 알고리즘 상태 - 2 비안전 상태의 예 시스템의 가정 프로세스-ID 최대 요구량 현재 할당량 추가요구 가능량 P1 5 1 4 P2 9 5 4 P3 7 2 5 Available resource units : 3 안전 순서 : 없슴 임의의 순간에 세 프로세스들이 모두 세 개 이상의 단위 자원을 요청하는 경우 시스템은 교착상태 놓이게 됨

Dijkstra’s 알고리즘 상태 - 1 시스템 운영 방법의 예 시스템의 가정 상태-1에서 프로세스들이 추가 자원 요청시 승인/거절 여부 결정 상태 - 1 프로세스-ID 최대 요구량 현재 할당량 추가요구 가능량 P1 3 1 2 P2 9 5 4 P3 5 2 3

Dijkstra’s 알고리즘 상태 - 1 상태 - 1 - 1 프로세스-ID 최대 요구량 현재 할당량 추가요구 가능량 P1 3 2 P2 9 5 4 P3 5 2 3 상태-1에서 P1이 하나의 단위 자원을 추가 요청하는 경우 - 할당 후 안전 상태 P1  P3  P2 존재 이를 할당한 후의 상태가 안전 상태이므로 이를 승인함 상태 - 1 - 1 프로세스-ID 최대 요구량 현재 할당량 추가요구 가능량 P1 3 2 1 P2 9 5 4 P3 5 2 3

Dijkstra’s 알고리즘 상태 - 1 상태 - 1-2 프로세스-ID 최대 요구량 현재 할당량 추가요구 가능량 P1 3 1 9 5 4 P3 5 2 3 상태-1에서 P2가 하나의 단위 자원을 추가 요청하는 경우 - 할당 후 안전 상태 존재하지 않음 이후의 상태가 비안전 상태이므로 이를 거절함 상태 - 1-2 프로세스-ID 최대 요구량 현재 할당량 추가요구 가능량 P1 3 1 2 P2 9 6 3 P3 5 2 3

Habermann’s 알고리즘 Dijkstra’s 알고리즘의 확장 기법임 여러 종류의 자원형이 존재함을 고려 multiple resource types multiple resource units for each resource type 시스템의 상태를 항상 안전 상태로만 진행 시킴

프로세스가 요청할 수 있는 자원에 대한 최대 요구량 Habermann’s 알고리즘 시스템 운영 방법과 안전 상태의 예 시스템의 가정 - 세가지 종류의 자원형 Ra, Rb, Rc 존재 - 각 자원형에 단위 자원이 10개, 5개, 7개씩 존재 - 프로세스 5개 존재 프로세스가 요청할 수 있는 자원에 대한 최대 요구량 프로세스-ID 최대 요구량 Ra Rb Rc P1 7 5 3 P2 3 2 2 P3 9 0 2 P4 2 2 2 P5 4 3 3

Habermann’s 알고리즘 상태 - 3 프로세스-ID 최대 요구량 현재 할당량 추가요구 가능량 Ra Rb Rc P1 7 5 3 0 1 0 7 4 3 P2 3 2 2 2 0 0 1 2 2 P3 9 0 2 3 0 2 6 0 0 P4 2 2 2 2 1 1 0 1 1 P5 4 3 3 0 0 2 4 3 1 Available resource units : (3, 3, 2) 안전 순서 : P2  P4  P1  P3  P5 - 현재 상태에서 안전 순서가 하나이상 존재하면 안전 상태임

Habermann’s 알고리즘 (상태 - 3 - 1) 상태-3에서 P2가 (1, 0, 2)만큼의 자원을 추가 요청하는 경우 - 할당 후 안전 상태 P2  P4  P1  P3  P5 존재 이후의 상태가 안전 상태이므로 이를 승인함 (상태 - 3 - 1) 프로세스-ID 최대 요구량 현재 할당량 추가요구 가능량 Ra Rb Rc Ra Rb Rc Ra Rb Rc P1 7 5 3 0 1 0 7 4 3 P2 3 2 2 3 0 2 0 2 0 P3 9 0 2 3 0 2 6 0 0 P4 2 2 2 2 1 1 0 1 1 P5 4 3 3 0 0 2 4 3 1

Habermann’s 알고리즘 (상태 - 3 - 2) 상태-3에서 P1이 (0, 3, 0)만큼의 자원을 추가 요청하는 경우 - 할당 후 안전 상태 존재하지 않음 이후의 상태가 비안전 상태이므로 이를 거절함 (상태 - 3 - 2) 프로세스-ID 최대 요구량 현재 할당량 추가요구 가능량 Ra Rb Rc Ra Rb Rc Ra Rb Rc p1 7 5 3 0 4 0 7 1 3 p2 3 2 2 2 0 0 1 2 2 P3 9 0 2 3 0 2 6 0 0 p4 2 2 2 2 1 1 0 1 1 p5 4 3 3 0 0 2 4 3 1

교착상태 검출 기법 교착상태 검출 기법 개요 교착상태에 대비한 사전 처리 없음 시스템 운영중 주기적으로 또는 필요한 경우에 교착상태 확인 현재 시스템이 교착상태인지의 여부 현재 시스템이 교착상태라면 교착상태의 프로세스 검출 자원 할당 그래프(resource allocation graph) 사용

교착상태 검출 기법 자원 할당 그래프 (resource allocation graph) 교착상태 검출을 위해 사용 방향성 이분 그래프 (directed bipartite graph) 사용 속성 방향성 그래프 (directed graph), G = (N, E)로 표현 N = { Np, Nr } where Np is the set of processes = {P1, P2, ..., Pn} and Nr is the set of resources = {R1, R2, ..., Rm}

요구 에지 (request edge) : Pi  Rj 할당 에지 (allocation edge) : Rj  Pi 모든 에지들은 Np와 Nr간에만 존재함 요구 에지 (request edge) : Pi  Rj 할당 에지 (allocation edge) : Rj  Pi Each edge e  E is between Pi  Np and Rj  Nr e = (Pi, Rj) : request edge e = (Rj, Pi) : allocation edge 자원 노드는 해당 자원의 형을 의미함 tk : 자원형 Rk에 대한 단위 자원의 수 For each Rk  Nr,  tk which is the number of units of Rk |(a, b)| 임의의 노드 a로부터 다른 노드 b로 향한 에지의 개수

자원 할당 그래프의 예 P1 t1 = 3 t2 = 2 R1 R2 P2

교착상태 검출 기법 그래프 단순화 (graph reduction) 기법 사용 주어진 그래프에 대해 에지들을 제거해 나가는 기법 완전히 단순화되었다 (completely reduced) 주어진 그래프의 모든 에지들이 제거되는 경우 현재 교착상태가 존재하지 않는다고 판단 단순화 불가능하다 (irreducible) 주어진 그래프의 모든 에지들이 제거되지 않는 경우 교착상태가 존재하는 것으로 판단

교착상태 검출 기법 그래프 단순화 (graph reduction) 기법 시스템 내에 존재하는 unblocked 프로세스를 찾아 이에 인접한 에지들을 제거함 unblocked 프로세스 현재 상태에서 요구한 자원들을 모두 할당 받을 수 있는 프로세스 정의 : unblocked 프로세스 시스템 상태를 그래프 모델로 표현했을 때 다음 조건을 만족시키는 프로세스 Pi를 말함 j (|(Pi, Rj)|  tj -  |(Rj, Pk)| ) all k

자원 할당 그래프에 대한 그래프 단순화 절차 임의의 unblocked 프로세스 노드를 찾아 인접한 모든 에지 제거 최종 형태에서 모든 에지들이 제거 되었다면 completely reduced 현재 상태에 교착상태가 존재하지 않다고 판단함 남아 있는 에지 있다면 irreducible 현재 상태에 교착상태가 존재한다고 판단함 정리 자원 할당 그래프를 단순화할 때 단순화 후의 최종 그래프 모형은 단순화 순서에 관계없이 항상 같음

자원 할당 그래프의 단순화 과정 예(1) P1 t1 = 3 t2 = 2 R1 R2 P2 Non-deadlock State (b) 프로세스 P1에 의해 단순화된 상태 (c) 프로세스 P2에 의해 단순화된 상태

자원 할당 그래프의 단순화 과정 예(2) P1 P1 R1 R2 R1 R2 P2 P3 P2 P3 R3 R3 (b) 프로세스 P3에 의해 단순화된 상태 (a) 초기상태 (b) 상태에서는 프로세스 P1과 P2가 계속 모두 blocked 상태임 - 초기 상태 그래프는 더 이상 단순화 불가능함 - 초기 상태가 교착상태임

교착상태 검출 기법 종류 그래프 단순화기법 특수한 가정 하에 오버헤드를 줄일 수 있는 교착상태 검출 기법 오버헤드가 매우 큰 기법임 특수한 가정 하에 오버헤드를 줄일 수 있는 교착상태 검출 기법 single-unit resource의 경우 사이클(cycle) 검사 기법 사용 가능 single-unit request in expedient state의 경우 knot 검사 기법 사용 가능

교착상태 검출 기법과 회피 기법의 차이 교착상태 회피 기법 교착상태 검출 기법 최악의 경우(worst case)를 고려함 최선의 경우(most favorable case)를 고려함 현재 상태에 교착상태에 놓인 프로세스가 있는가 검사 미래 상태에는 관심/대응 없음

교착상태 복구 기법 교착상태 검출 기법에 의해 교착상태의 프로세스를 검출한 후에 사용 시스템 내에 존재하는 교착상태를 제거 교착상태 복구 방법 프로세스 종료 (process termination) 기법 교착상태에 놓은 프로세스들 중 일부를 강제로 종료 시킴 강제 종료된 프로세스들은 이후 재시작됨 자원 선점 (resource preemption) 기법 교착상태를 제거하기 위해 선점되어야 할 자원들을 결정 선정된 자원들을 할당받고 있는 프로세스들로부터 선점

교착상태 복구 기법 프로세스 종료 (process termination) 기법 교착상태의 프로세스들 중 일부를 강제로 종료시킴 종료 비용 (termination cost) 모델 사용 교착상태를 제거하기 위해 종료될 프로세스들을 선택 종료 비용 산출 요소 프로세스 우선순위 (priority) 프로세스의 종류 (type) 각 프로세스의 현재까지의 실행시간 각 프로세스가 실행을 마치기 위하여 앞으로 남은 시간 회계 비용 (accounting cost) 각 프로세스 별로 종료 비용 산출

교착상태 복구 기법 프로세스 종료 (process termination) 기법 종료시킬 프로세스들의 선정 방법 lowest-termination-cost process first 기법 간단하고 오버헤드 적음 불필요한 프로세스들이 종료될 수 있음 minimum cost recovery 기법 최소 비용으로 교착상태를 제거하기 위한 프로세스들 선정 가능 선정 과정이 복잡하고 오버헤드 큼

자원 선점 (resource preemption) 기법 교착상태를 제거하기 위해 선점되어야 할 자원들을 선정 선정된 자원을 선점당한 프로세스들은 종료되고 이후 다시 실행을 시작함 교착상태에 놓이지 않은 프로세스들도 강제 종료의 대상이 됨 선점 대상 자원들의 선정 자원들의 선점 비용 모델 설정 최소의 비용을 갖는 복구 기법 사용

검사점-재시작 (checkpoint-restart) 기법 실행중인 프로세스들 필요한 시점(검사점)에서 그 프로세스의 context를 보존 프로세스가 강제 종료된 후 최근 검사점부터 재 실행하도록 함 검사점-재시작 기법 start checkpoint-1 (context saved) checkpoint-2 (context saved) checkpoint-k (context saved) abnormally terminated finish