반응형
혼자 공부하는 컴퓨터 구조 + 운영체제(강민철 저, 한빛미디어)를 공부하며 내용을 정리한 글 입니다.
현재 블럭의 내용은 작성자의 의견 혹은 생각이며, 틀린 내용이 있을 수 있습니다. 지적 감사드립니다.
교착상태란
프로세스를 실행하기 위해서 자원이 필요한데, 두 개 이상의 프로세스가 각자 가지고 있는 자원을 무작정 기다리면 교착상태가 발생한다.
자원 할당 그래프
교착상태를 확인하기 위한 그래프 표현법
- 프로세스는 원, 자원은 사각형으로 표시
- 사용할 수 있는 자원의 개수는 자원 사각형 내에 점으로 표현
- 프로세스가 사용중인 자원은 점에서부터 프로세스를 향해 화살표 표시
- 프로세스가 기다리는 자원은 프로세스로부터 사각형에 화살표 표시
위 그래프에서 교착상태가 발생하면 원의 형태를 띄게 된다.
교착상태 발생 조건
아래 조건 중 하나라도 만족하지 않으면 발생하지 않고, 모두 만족하면 발생 가능하다.
- 상호배제 : 한번에 하나의 프로세스만 자원을 이용 가능
- 점유와 대기 : 자원을 할당받은 상태에서 다른 자원을 대기
- 비선점 : 다른 프로세스의 자원을 빼앗지 못함
- 원형 대기 : 프로세스가 원의 형태로 자원을 대기
교착상태 해결 방법
교착상태는 그게 세가지 방법으로 해결할 수 있다.
예방
운영체제가 적절하게 분배하여 교착상태를 예방한다.
- 현실적으로 상호배제는 예방이 어렵다.
- 점유와 대기를 예방할 수 있으나, 자원의 활용률이 낮아진다.
- 비선점은 모든 자원에 대한 예방은 어렵다. ex) 프린터는 하나의 인쇄만 가능하다.
- 원형대기는 자원에 번호를 붙이고 순서대로 사용하면 예방 가능하나, 넘버링의 어려움이 있다.
위와 같은 문제로 예방은 가능하나 부작용이 많다.
회피
자원의 양을 고려하여 배분하는 방법
- 안전상태 : 정상적으로 자원을 할당받고 종료될 수 있는 상태
- 불안전상태 : 교착상태가 발생할 수도 있는 상황
- 안전 순서열 : 교착상태 없이 자원을 할당할 수 있는 순서 (안전 순서열이 존재한다면 안전상태인 것)
회피는 항상 안전상태를 유지하도록 할당하는 방법이다.
교착 상태 검출 후 회복
교착상태 검출 후 회복은 교착상태 발생을 인정하고 사후에 조치하는 방식
운영체제는 프로세스가 자원을 요구할 때마다 그때그때 모두 할당하며 교착상태 발생 여부를 주기적으로 검사
- 선점을 통한 회복 : 교착상태가 해결될 때까지 한 프로세스씩 자원을 몰아주는 방식
- 프로세스 강제 종료를 통한 회복 : 교착상태에 놓인 프로세스를 모두 강제 종료하거나, 한 프로세스씩 강제 종료하는 방식
반응형
'~ 2024.03 > 컴퓨터 구조 + 운영체제' 카테고리의 다른 글
[컴퓨터 구조] 파일 시스템 (1) | 2024.01.05 |
---|---|
[컴퓨터 구조] 가상 메모리 (0) | 2024.01.05 |
[컴퓨터 구조] 프로세스 동기화 (1) | 2024.01.04 |
[컴퓨터 구조] CPU 스케줄링 (1) | 2024.01.04 |
[컴퓨터 구조] 프로세스와 스레드 (2) | 2024.01.04 |