운영체제에서 기억하고 싶은 내용
프로세스 자원 사용 절차
요구 -> 사용 -> 해제
요구 과정에서 가용한 자원 없으면 자원을 획득할 때까지 대기한다
교착 상태
여러 개의 프로세스가 상대방의 작업이 끝나기만 기다린다
어느 쪽도 영원히 진행하지 못하는 상태
교착 상태의 필요 조건
다음 네 가지 조건이 동시에 만족하면 교착상태 발생 가능하다
1. 상호배제
프로세스가 자원에 대해 배타적 통제권 요구
다른 프로세스가 점유한 자원 필요시 대기 필요
2. 점유대기(Hold and wait)
프로세스가 한 자원을 점유한 상태로 다른 자원 원할 시 대기
3. 비선점
할당된 자원은 타의에 의해 해제되지 않는다
4. 환형대기(Circular wait)
자원을 점유하고 점유된 자원의 요구 관계가 환형(원)을 이루며 대기
교착상태 처리 기법
1. 예방
네 가지 필요조건이 동시에 만족되지 않도록
2. 회피
각 프로세스가 필요한 자원의 최대량에 대한 정보로 방지
3. 탐지 및 복구
교착 상태가 생겼는지 탐지
정상상태로 복구
2, 3번은 다음 강의에서 알아봄
교착 상태의 예방
1. 상호배제 조건 제거
- 공유할 수 있는 자원은 상호배제 필요 없다(읽기 전용 파일)
- 공유할 수 없는 자원은 상호배제 필요(프린터 등)
2. 점유대기 조건 제거
- 자원을 점유했을 때 대기하지 않도록
- 앞으로 필요한 모든 자원을 처음에 한꺼번에 요구
- 단점: 자원이용률 낮아지고, 기아상태 발생 가능
- 대기할 때 자원을 점유하고 있지 않도록
- 새로운 자원 요구시 할당받은 자원 모두 해제
- 단점: 점유 도중에 해제할 수 없는 자원에 적용 불가
3. 비선점 조건 제거
- 선점이 가능토록 해야한다
- 선점이 불가능한 경우 존재(프린터 등)
- 다른 프로세스가 대기할 가능성 줄이자
- 점유 대기 상황 발생시 점유한 자원 모두 해제
- 단점: 프린터 간은 자원에 적용 불가
4. 환형대기 조건 제거
모든 자원에 일련번호 지정
방법 1
프로세스가 자원을 일련번호가 오름차순 되도록 요구
단점: 프로세스마다 요구순서가 달라서 일련번호 설정 어렵다
방법 2
프로세스가 자원 요구시, 그보다 일련번호가 작은 자원만 점유하도록
단점: 잠유자원 해제 불가능한 자원 존재
'Computer Science > 운영체제' 카테고리의 다른 글
운영체제 8강 :: 메모리관리자, 메모리분할, 메모리배치 (0) | 2023.04.25 |
---|---|
운영체제 7강 :: 교착상태 회피, 탐지 및 복구 (0) | 2023.04.23 |
운영체제 5강 :: 생산자-소비자 문제, 프로세스 간 통신 (0) | 2023.04.19 |
운영체제 4강 :: 병행 프로세스, 세마포어 (0) | 2023.04.18 |
운영체제 3강 :: 스케쥴링, 스케쥴링 알고리즘 (0) | 2023.04.13 |