데드락4 [운영체제] 7. 교착상태 - (4) 교착상태 발견 및 복구 📍1. 교착상태 발견 전략요청된 자원들이 할당 가능한 상황이면 항상 프로세스에게 할당함 1-1. 자원 할당이 거절될 때마다 발견 알고리즘 수행✔️교착상태를 빠른 시점에 발견할 수 있음 ✔️발견 알고리즘이 간단함 (단일 환형 대기) ✔️잦은 검사로 오버헤드가 큼 1-2. 주기적 또는 기준에 의해 발견 알고리즘 수행✔️시스템의 처리율 및 처리기 이용률이 저하 ✔️다중 환형 대기와 연관되어 알고리즘이 복잡함 📍2. 교착상태 발견 알고리즘2-1. 필요한 벡터 및 행렬 ✔️자원 벡터(R) : 시스템에 존재하는 자원의 전체 개수 ✔️가용 벡터(V) : 현재 사용 가능한 자원의 개수 ✔️할당 행렬(A) : 프로세스가 할당 받아 점유하고 있는 자원의 개수 ✔️요청 행렬(Q) : 프로세스가 요청한 자원의 개수 2-.. 2025. 5. 1. [운영체제] 7. 교착상태 - (3) 교착상태 회피 ✔️ 운영체제는 교착상태 발생 3가지 필요조건을 지키도록 강제함 📍1. 교착상태 회피 핵심 아이디어✔️운영체제는 프로세스의 현재 자원 할당 요청을 승인하면, 잠재적인(가능성) 교착상태가 유발될지 또는 아닐지를 동적으로 조사함✔️운영체제는 수행 중인 모든 프로세스의 미래 자원 요청 정보를 미리 알아야 함 📍2. 교착상태 회피를 위한 2가지 접근법1️⃣프로세스 시작 거부(process initiation denial)2️⃣프로세스 자원 할당 거부(process resource allocation denial) 📍3. 프로세스 시작 거부 방법✔️프로세스가 시작하려 할 때 그 프로세스가 수행 중 필요한 모든 자원들에 대해 교착상태 발생의 가능성이 있으면, 프로세스를 시작시키지 않음✔️모든 프로세스들이 .. 2025. 5. 1. [운영체제] 7. 교착상태 - (2) 교착상태 해결 📍1. 교착상태 해결 방법아래로 갈수록 병행성/병렬성 자원율 ⬆️1️⃣교착상태 예방(prevention) : 가장 좋고 보수적인 방법- 교착상태에 빠지는 4가지 조건 중 하나 이상의 조건이 성립되지 못하도록 시스템 구성2️⃣교착상태 회피(avoidance) - 프로세스 수행 시작 또는 자원 할당 시마다 미래의 교착 상태 가능성을 검사하여 교착 상태가 발생하지 않을 것이라고 확신하는 경우에만 자원 할당3️⃣교착상태 발견 및 복구(detection and recovery) - 교착상태를 발견하는 프로그램을 백그라운드에서 구동, 발견 후 교착상태 해제(해결)4️⃣교착상태 무시 - 교착상태는 없다고 단정, 아무런 대비책 없음 - 사용자나 관리자가 이상을 느끼면 컴퓨터 시스템을 재시작할 것이라고 믿는 방법 ?.. 2025. 5. 1. [운영체제] 7. 교착상태 - (1) 교착상태 개념 📍1. 교착상태(deadlock)자원을 소유한 2개 이상의 프로세스 사이에서, 각 프로세스는 다른 프로세스가 소유한 자원을 요청하여 무한정 대기하는 상태 📍2. 교착상태 발생 위치✔️사용자가 작성한 응용 프로그램에서 주로 발생 - 정교하지 못한 코딩에서 비롯✔️커널 내에서도 발생- 매우 정교하게 작성되기 때문에 매우 드물게 발생✔️교착상태 발생을 방지하는 컴퓨터 시스템은 거의 없음- 막는데 많은 시간과 공간 비용 때문 📍3. 컴퓨터 시스템에 잠재된 교착상태 유발 요인1️⃣공유 자원은 교착 상태의 발생지✔️교착상태는 다중프로세스가 자원을 동시에 사용하려는 충돌이 요인✔️소프트웨어 자원: 뮤텍스, 스핀락, 세마포, 파일, 데이터베이스, 파일 락✔️하드웨어 자원: 프린터, 메모리, 처리기 등2️⃣자원.. 2025. 5. 1. 이전 1 다음