교착 상태
- 일어나지 않을 사건을 기다리며 진행이 멈춰버리는 현상
자원 할당 그래프
- 어떤 프로세스가 어떤 자원을 사용하고 있고, 어떤 프로세스가 어떤 자원을 기다리고 있는지를 표현하는 간단한 그래프이다.
첫쨰, 프로세스는 원으로, 자원의 종류는 사각형으로 표현한다.
둘째, 사용할 수 있는 자원의 개수는 자원 사각형 내에 점으로 표현한다.
셋째, 프로세스가 어떤 자원을 할당받아 사용 중이라면 자원에서 프로세스를 향해 화살표를 표시한다.
넷째, 프로세스가 어떤 자원을 기다리고 있다면 프로세스에서 자원으로 화살표를 표시한다.
교착 상태 발생 조건
- 상호 배제, 점유와 대기, 비선점, 원형 대기
상호 배제
- 한 프로세스가 사용하는 자원을 다른 프로세스가 사용할 수 없을 때, 상호 배제 상황에서 교착 상태가 발생 가능하다.
점유와 대기
- 자원을 할당받은 상태에서 다른 자원을 할당받기를 기다리는 상태
비선점
- 프로세스가 자원을 비선점(nonpreemptive)하고 있는 상태이다. 어떤 프로세스도 다른 프로세스의 자원을 강제로 빼앗지 못했기 떄문에 교착 상태가 발생했다.
원형 대기
- 프로세스들이 원의 형태로 자원을 대기하는 것
교착 상태 해결 방법
상호 배제를 없애는 법
- 현실적으로 모든 자원의 상호 배제를 없애기는 어렵다.
점유와 대기를 없애는 법
- 점유와 대기를 없애면 운영체제는 특정 프로세스에 자원을 모두 할당하거나, 아예 할당하지 않는 방식으로 배분한다.
- 점유와 대기를 금지하면 한 프로세스에 필요한 자원들을 몰아주고 그 다음에 다른 프로세스에 필요한 자원을 몰아줘야 한다.
비선점 조건을 없애는 법
- 한 프로세스가 CPU를 이용하다가 일정 시간이 지나면 아직 작업이 모두 끝나지 않았다고 할지라도 다른 프로세스가 CPU를 할당받아 사용할 수 있다.
원형 대기 조건
- 모든 자원에 번호를 붙이고, 오름차순으로 자원을 할당하면 원형 대기는 발생하지 않는다.
교착 상태 회피
- 교착 상태가 발생하지 않을 정도로만 자원을 할당하는 방식이다.
- 교착 상태가 발생하지 않고 모든 프로세스가 정상적으로 자원을 할당받고 종료될 수 있는 상태를 안전 상태라고 한다.
- 교착 상태가 발생할 수도 있는 상황을 불완전 상태라고 부른다.
- 안전 순서열은 교착 상태 없이 안전하게 프로세스들에 자원을 할당할 수 있는 순서를 의미한다.
- 안전 순서열 대로 프로세스들에 자원을 배분하여 교착 상태가 발생하지 않는 상태를 안전 상태라고 한다.
- 불안전 상태는 안전 순서열이 없는 상황이다.
교착 상태 검출 후 회복
- 교착 상태 발생을 인정하고 사후에 조치하는 방식
선점을 통한 회복
- 교착 상태가 해결될 때까지 한 프로세스씩 자원을 몰아주는 방식이다.
프로세스 강제 종료를 통한 회복
- 교착 상태가 없어질 때까지 한 프로세스씩 강제 종료할 수 있다.
'📗 BOOK > 혼자 공부하는 컴퓨터구조+운영체제' 카테고리의 다른 글
혼자 공부하는 컴퓨터 구조+운영체제 15장 정리 (1) | 2024.08.04 |
---|---|
혼자 공부하는 컴퓨터 구조+운영체제 14장 정리 (0) | 2024.08.04 |
혼자 공부하는 컴퓨터 구조+운영체제 12장 정리 (0) | 2024.07.31 |
혼자 공부하는 컴퓨터 구조+운영체제 11장 정리 (0) | 2024.07.27 |
혼자 공부하는 컴퓨터 구조+운영체제 10장 정리 (0) | 2024.07.27 |