기어가더라도 제대로

[운영체제-김덕수 교수님] Deadlock (1/5) 본문

CS/운영체제

[운영체제-김덕수 교수님] Deadlock (1/5)

Damagucci-juice 2022. 8. 6. 08:18

교착 상태 (1/5) image

  • 서로 가고자 하는 방향을 누구도 갈 수 없는 그런 상태
  • == 데드락

‏‏‎ ‎

Deadlock 의 개념

  • Blocked/ Asleep state
    • 프로세스가 특정 이벤트를 기다리는 상태
    • 프로세스가 필요한 자원을 기다리는 상태
  • Deadlock state
    • 프로세스가 발생 가능성이 없는 이벤트를 기다리는 경우
      • 프로세스가 deadlock 상태에 있음
    • 시스템 내에 deadlock에 빠진 프로세스가 있는 경우
      • 시스템이 deadlock 상태에 있음

‏‏‎ ‎## DeadLock vs Starvation  , 차이

교착 상태 (1/5) image

  • deadlock은 프로세서는 할당 받았지만, 그 외의 이벤트를 기다리거나, 자원을 기다리고, 이들이 발생 가능성이 없는 경우지만,
  • starvation은 ready 상태의 프로세스가 프로세서를 할당받지 못하고 기다리는 상태이다.
    • 언젠가 한번은 받긴 할 텐데, 운이 나빠 자꾸 뒤로 밀려나는 상황이다.

데드락은 자원과 관련

  • 일반적 분류
    • Hardware resources vs Software resources
  • 다른 분류 법
    • 선점 가능 여부에 따른 분류
    • 할당 단위에 따른 분류
    • 동시 사용 가능 여부에 따른 분류
    • 재사용 가능 여부에 따른 분류

‏‏‎ ‎

1. 선점 가능 여부에 따른 분류

지금 사용중인데 다른 프로세스가 와서 사용할 수 있는가?

  • Preemptible resources
    • 선점 당한 후, 돌아와도 문제가 발생하지 않는 자원
    • Processor, memory 등
  • Non-preemptible resources
    • 선점 당하면, 이후 진행에 문제가 발생하는 자원
      • Rollback, restart 등 특별한 동작이 필요
      • E.g, Disk drive 등

아래는 아들에게 선점당한 여권이다. 아들이 "write" 작업을 한 모습이다.

교착 상태 (1/5) image

‏‏‎ ‎

2. 할당 단위에 따른 분류

  • Total allocation resources
    • 자원 전체를 프로세스에게 할당
    • E.g, Processor, disk drive 등
  • Partitioned allocation resources
    • 하나의 자원을 여러 조각으로 나누어, 여러 프로세스들에게 할당
    • E.g, Memory 등

‏‏‎ ‎

3. 동시 사용 가능 여부에 따른 분류

  • Exclusive allocation resources
    • 한 순간에 한 프로세스만 사용 가능한 자원
    • E.g, Processor, memory, disk drive 등
    • 할당 단위에 따른 분류에서 메모리는 여러 조각으로 나뉜다 했는데 동시 사용될 수 없다는 것은 무슨 말인가?
      • 메모리의 일부영역이 Pi에게 할당되고 또 다른 영역이 Pj에게 할당된다 하였을 때, Pi에게 할당된 영역은 다른 프로세스(Pj)가 같이 할당하여 사용할 수 없다는 이야기이다.
  • Shared allocation resources
    • 여러 프로세스가 동시에 사용 가능한 자원
    • E.g, Program(SW), shared data 등
    •  소스코드의 측면에서 바라볼 때 PowrPoint를 여러개 띄울 수 있다.

‏‏‎ ‎

재사용 가능 여부에 따른 분류

  • SR(Serially-reusable Resources)
    • 시스템 내에 항상 존재하는 자원
    • 사용이 끝나면, 다른 프로세스가 사용 가능
    • E.g, Processor, memory, disk drive, program 등
  • CR(Consumable Resources)
    • 한 프로세스가 사용한 후에 사라지는 자원
    • E.g, siganl, message 등

‏‏‎ ‎

Deadlock 과 자원의 종류

  • 데드락을 발생시킬 수 있는 자원의 형태
    • Non-preemptible resources
    • Exclusive allocation resources
    • Serially reusable resources
      • 할당 단위는 영향을 미치지 않음
    • CR을 대상으로 하는 Deadlock model
      • 너무 복잡하니 고려하지 말자.

‏‏‎ ‎결론

- 선점이 불가능하고, 한번에 하나만 사용할 수 있고, 영구히 존재하는 자원의 경우 데드락이 발생할 수 있다.

 

Comments