Week 6 Deadlock

Week 6 Deadlock

  • Deadlock detection and fix: Cycle을 찾아서 부순다.
  • Deadlock prevention: Deadlock의 4가지 필요조건 중 하나라도 망가트리면 deadlock은 일어나지 않는다.
    -> Lock ordering: lock들에 번호를 매겨 항상 낮은 번호의 lock부터 acquire하게 하면 cycle이 생길 수 없다.
  • Deadlock avoidance: Banker’s algorithm: By delaying some request, a system can avoid interleavings that could lead to deadlock

deadlock avoidance는 이해가 되는데 banker’s algorithm은 뭔소린지 모르겠다.

근데 deadlock을 avoid하려면 한 process가 최대로 소모할 수 있는 자원의 양을 알아야 하는데 그게 경우에 따라서는 어려울지도 모르겠다.

RCU(Read Copy Update): read/write operation의 return 시점을 기준으로 write로 value를 업데이트 한 이후 read한 값이 업데이트 이전의 값을 보여주는 것을 방지한다. 기본적으로 Read/Write 전후에 각각 Read lock, Write lock을 두고 특히 Write unlock 이후에 Synchronization기간을 두어 Old value를 읽어갈 지도 모르는 read가 먼저 return될 때 까지 기다린다. 결과적으로 write가 끝난 이후에 return되는 read들은 항상 write로 update된 값을 보여주게 된다.

Leave a Reply