CS지식/운영체제

운영체제 Ch.5 교착

뮤츠 2023. 1. 30. 22:30
  • 교착 상태 (deadlock)
    일어나지 않을 사건을 기다리며 진행이 멈춰 버리는 현상

  • 자원 할당 그래프 (resource-allocation graph)
    • 어떤 프로세스가 어떤 자원을 사용하고 있고, 어떤 프로세스가 어떤 자원을 기다리고 있는지 등을 표현하는 간단한 그래프
    • 프로세스는 원으로, 자원의 종류는 사각형으로 표현
    • 사용할 수 있는 자원의 갯수는 사각형 내에 점으로 표현
    • 프로세스가 어떤 자원을 할당받아 사용 중이라면, 자원에서 프로세스를 향해 화살표로 표시.
    • 프로세스가 어떤 자원을 기다리고 있다면, 프로세스에서 자원을 화살표로 표시.

  • 교착 상태 발생 조건
    1. 상호 배제 한 프로세스가 사용하는 자원을 다른 프로세스가 사용할 수 없는 상태.
    2. 점유와 대기 자원을 할당받은 상태에서, 다른 자원을 할당받기를 기다리는 상태.
    3. 비선점 어떤 프로세스도 다른 프로세스의 자원을 강제로 빼앗지 못하는 상태.
    4. 원형 대기 자원 할당 그래프가 원으로 그려지며, 원의 형태로 자원을 대기하는 상태.

  • 교착 상태 예방
    1. 상호 배제 : 모든 자원을 공유 가능하게 만들어야 하므로, 현실적으로 무리.
    2. 점유와 대기 : 자원의 활용이 낮아지고, 기아 현상 우려.
    3. 비선점 조건 : 비선점 조건이 필요한 경우에는 범용성이 떨어짐.

    4. 원형 대기
      1. 모든 자원에 번호를 붙이고, 오름차순으로 자원을 할당.
      2. 네가지 중 가장 실용적인 방법이지만, 번호를 붙이는 방식에 따라 활용률이 떨어질 수 있음.

  • 교착 상태 회피
    • 교착 상태가 발생하지 않을 정도로만 자원을 할당하는 방식.
    • 안전 상태 : 교착 상태가 발생하지 않고, 모든 프로세스가 정상적으로 자원을 할당받고 종료될 수 있는 상태.
    • 불안전 상태 : 교착 상태가 발생할 수도 있는 상황. 안전 순서열이 없는 상태.
    • 안전 순서열 : 교착 상태 없이 안전하게 프로세스들에 자원을 할당할 수 있는 순서.

  • 교착 상태 검출 후 회복
    • 교착 상태의 발생 후, 사후에 조치하는 방식.
    • 선점을 통한 회복 : 교착 상태가 해결될 때까지 한 프로세스마다 자원을 몰아주는 방식.
    • 프로세스 강제 종료를 통한 회복 교착상태에 놓여져있는 프로세스들을 일정한 규칙에 따라 강제 종료하면서, 교착 상태를 제거하는 방식.
    • 타조 알고리즘 : 교착상태를 아예 무시하는 방식.

참고 : 혼자 공부하는 컴퓨터구조 + 운영체제 (강민철 저)

'CS지식 > 운영체제' 카테고리의 다른 글

운영체제 Ch.7 파일 시스템  (1) 2023.09.05
운영체제 Ch.6 가상 메모리  (0) 2023.01.30
운영체제 Ch.4 동기화  (0) 2023.01.29
운영체제 Ch.3 CPU 스케쥴링  (0) 2023.01.28
운영체제 Ch.2 프로세스와 스레드  (0) 2023.01.20