기록을 남기자

DEADLOCK 3

카테고리 설명
  • Deadlock Avoidance Logic 시스템의 상태 설명 (global data structure) resource[m] : 원래 이 시스템 안에 자원이 각각 몇개씩 있는지? avaiavble[m] : 그 자원들 중, 할당 후 남아있는 자원? claim[n][m] : 모든 프로세스가, 나는 이 타입의 자원을 몇개까지(최대 동시 요청 가능) 요청할거다 라는 걸 미리 OS에게 미리 얘기해주는 것 alloc[n][m] : 실제 각각의 프로세스들이 현재 가지고 있는 자원, 어떤 자원이 몇개인지? Resource allocation algorithm safe인지 unsafe인지 판단하기 전, 두 가지 조건이 존재한다. → 시스템이 safe인지 unsafe한지 판단할 필요도 없는 그런 상황을 말한다. 1. ..

  • deadlock을 아예 발생시키지 않으면 좋지만, deadlock을 막을 수 없는 경우가 존재한다. ⇒ OS가 deadlock을 막아줘야 한다. Deadlock 정의 A set of processes is deadlocked when each process in the set is blocked awaiting an event that can only be triggered by another blocked process in the set. Deadlock 이 발생하기 위해서는 최소한 둘 이상의 프로세스가 필요하다. block 이 되어야 한다. (프로세스가 멈추지 않고 실행하고 있으면 deadlock이 아니다.) block 이 되었다고 해서 무조건 deadlock은 아니다. ↳ block 이 존재하면 ..

  • 🌟 Mutual Exclusion: Software Approach (3) 🌟 Mutual Exclusion이 지켜지는 것 중요 DeadLock이 걸릴 경우의 수 존재 → 둘 다 true이면 while문을 둘 다 돌게 된다. 🌟 Mutual Exclusion: Software Approach (4) 🌟 DeadLock과 LiveLock의 차이점 = while문을 빠져나올 가능성 내가 Critical Section에 들어가려면, while문 마지막에 본인 flag를 true로 바꾸고 while문에 있는 상대편 flag가 false인 것을 보고 Critical Section에 진입하기 때문에 Mutual Exclusion이 성립한다. LiveLock이 걸릴 가능성이 있다. → 한 줄 한 줄 번갈아가며 TIM..