본문 바로가기
컴퓨터공학/운영체제

10. 교착 상태 2

by meow0110 2024. 7. 8.

■ 교착상태 해결 방법
다중 프로그래밍 시스템에서 프로세스가 결코 일어나지 않을 사건(event)을 기다리는 상태로서 프로세스가 교착 상태에 빠지면 작업이 정지되어 명령 진행이 불가한 상태를 말한다.  이건 교착상태를 말함.

 

이를 해결하기 위한 방법은 총 3가지다.

 

 

■ 하벤더의 교착 상태 예방법 3가지

 

■ 교착상태 예방
자원을 최소 하나 이상 비공유 즉, 한 번에 프로세스 하나만 해당 자원 사용할 수 있어야 한다. 사용 중인 자원을 다른 프로세스가 사용하려면 요청한 자원 해제될 때 까지 대기해야 한다.

 

■2번째는 무슨 말인가? 

- 대기상태에서 프로세스 자원 못함

 

■ 전제조건을 체크하자!

 

 

■ 빙글빙글 돌면서, 서로가 서로의 자원을 원하는 상황.

- 순서를 부여한다. 

 

■ 교착상태 회피
자원을 최소한 하나 정도 보유하고 다른 프로세스에 할당된 자원 얻으려고 대기하는 프로세스 있어야 한다.

 

 

■ 다익스트라의 은행가 알고리즘 

- 미리 시뮬레이션을 돌려서 안정적이면 할당, 위험하다고 판단되면 할당거부

 

 

 

 

■학습정리

교착 상태 해결 기법

  • 해결방법 3가지로 예방, 회피, 탐지와 회복이다.
  • 하벤더의 교착상태 예방 방법은 각 프로세스는 필요한 자원 한 번에 모두 요청해야 하며, 요청한 자원을 모두 제공받기 전까지는 작업 진행 불가하다.
  • 보통 교착상태 예방방법에는 자원의 상호배제 조건 방지, 점유와 대기 조건 방지, 비선점 조건 방지, 순환(환형) 대기 조건 방지가 있다.

교착 상태 회피

  • 프로세스의 시작 중단이다.
  • 프로세스의 요구가 교착 상태 발생시킬 수 있다면 프로세스 시작 중단이다.
  • 자원 할당 거부(알고리즘Banker’s algorithm)
  • 프로세스가 요청한 자원 할당했을 때 교착 상태 발생할 수 있다면 요청한 자원 할당 않음

교착 상태 회복

  • 교착 상태 파악 위해 교착 상태 탐지 알고리즘을 언제 수행해야 하는지 결정하기 어렵다.
  • 교착 상태 탐지 알고리즘 자주 실행하면 시스템의 성능 떨어지지만, 교착 상태에 빠진 프로세스 빨리 발견하여 자원의 유휴 상태 방지 가능하다. 하지만 자주 실행하지 않으면 반대 상황 발생한다.
  • 탐지와 회복 방법은 필요한 정보를 유지하고 탐지 알고리즘을 실행시키는 비용뿐 아니라 교착 상태 회복에 필요한 부담까지 요청한다.

 

'컴퓨터공학 > 운영체제' 카테고리의 다른 글

11. 주기억장치 관리의 의미  (0) 2024.07.08
9. 교착 상태 1  (0) 2024.07.08
8. 상호배제와 동기화  (0) 2024.07.03
7. 병행 프로세스  (1) 2024.07.03
6. 스케쥴링 알고리즘  (0) 2024.06.25