앞서 [운영체제] - [OS] Deadlock의 조건 에서 Deadlock을 일으키는 4가지 조건에 대해서 알아보았습니다. Deadlock은 일어나서는 안되는 일이니 막기위해서는 어떠한 조건을 피해야하나를 살펴보겠습니다. 1) Mutual Exclusion - 한 번에 1개의 Process만 Shared resource에 접근할 수 있는 조건이였습니다. 하지만 이 조건을 피해버리면 여러개의 Process가 Shared resource에 접근할 수 있게되므로 Race Condition 상태가 발생할 수 있습니다. 따라서 막으면 안되는 조건입니다. 2) Preemption Disable - 다른 Process가 소유하고 있는 lock을 선점(획득)할 수 없다는 조건이였습니다. 쉽게 풀어보면 공유 자원이 선점..
[운영체제] - [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에 대해서 알아보겠습니다. DeadLock 이란? DeadLock은 다른 Process가 소유한 자원을 요청하는 행위가 서로에게 행해져 모든 Process가 Block이 된 상태를 의미합니다. 예제를 통해 알아보겠습니다. 다음과 같은 2개의 Process가 있습니다. 123Process1owns lock Arequests lock Bcs 123Process2owns lock Brequests lock Acs Process1은 lock A를 가지고 있습니다. 즉, A라는 Semaphore를 가지고 있습니다. Process2는 lock B를 가지고 있습니다. Semaphore는 한 곳에서 사용중이면 다른 Process를 차단하는 목적으로 사용합니다. 따라서 Proces..
- Total
- Today
- Yesterday