티스토리 뷰

운영체제

[OS] Deadlock의 조건

머어하지 2017. 5. 12. 01:06

[운영체제] - [OS] DeadLock


 앞서 Deadlock이 무엇인지에 대해서 알아보았습니다. 이번엔 Deadlock의 조건에 대해서 알아보겠습니다.

Deadlock의 조건

 1) Mutual Exclusion

  오직 1개의 Process가 한 번에 Shared Resource에 접근할 수 있습니다. Semaphore의 의미와 같습니다.


 2) Preemption Disable

  다른 Process가 소유하고 있는 lock을 어떠한 Process가 Preempt(획득) 할 수 없습니다.


 3) Hold and Wait

  Process는 다른 소유의 lock을 얻으려면 기다려야 합니다. (Block 상태)


 4) Circular Wait

  Lock의 요청이 Circle(cycle)을 가지는 형태이면 안됩니다. 앞선 [운영체제] - [OS] DeadLock 에서 알아본 예제로보면 Process1이 lock B를 Process2가 Lock A를 요청하고 있습니다. 따라서 다음과 같이 A->B ,,, B->A인 형태의 cycle이 형성이 되었습니다. lock 요청이 이러한 cycle을 가지고 있으면 즉, Circular Wait이 나타나면 당연히 Deadlock이 걸리겠지요!


  Deadlock은 위 4개의 조건이 모두 일어나야 생기게 됩니다. 느낌으로만봐도 Deadlock은 일어나서는 안되는 현상입니다. 따라서 위 4조건을 막아 Deadlock이 발생하지 않도록 해야합니다. 이부분에 대해서는 다음 포스트에서 살펴보겠습니다.


'운영체제' 카테고리의 다른 글

[OS] Deadlock Prevention  (0) 2017.06.03
[OS] DeadLock  (0) 2017.05.11
[MicroC/OS-II] CPU Scheduling with Preemptive  (0) 2017.04.23
[MicroC/OS-II] CPU Scheduling with Non-Preemptive  (0) 2017.04.23
[MicroC/OS-II] OS_TCBInit  (0) 2017.04.23
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday