โญ Group_Study/Operating System37 [4์ฃผ์ฐจ] Deadlock: Deadlock Model Deadlock: Deadlock Model Deadlock ๋ฐ์์ ์ โ 2๊ฐ์ ํ๋ก์ธ์ค(P1, P2) โ 2๊ฐ์ ์์(R1, R2) โ P1์ P2๊ฐ ๊ฐ์ง๊ณ ์๋ R1์, P2๋ P1์ด ๊ฐ์ง๊ณ ์๋ R2๋ฅผ ์์ฒญํ๊ณ ์๋ค -> ์๋ก ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ด๋ฒคํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ผ๋ฏ๋ก deadlock! Deadlock Model(ํํ๋ฒ) Graph Model State Transition Model Graph Model โ Node ํ๋ก์ธ์ค ๋ ธ๋(P1, P2), ์์ ๋ ธ๋(R1, R2) โ Edge $R_j$ -> $P_i$: ์์ $R_j$์ด ํ๋ก์ธ์ค $P_i$์ ํ ๋น ๋จ $P_i$ -> $R_j$: ํ๋ก์ธ์ค $P_i$๊ฐ ์์ $R_j$์ ์์ฒญ(๋๊ธฐ ์ค) โ Cycle ์์ฑ ์ Deadlock! State .. 2022. 12. 23. [4์ฃผ์ฐจ] Deadlock: Deadlock and Resource types Deadlock: Deadlock and Resource types Deadlock์ ๊ฐ๋ โ Blocked/Asleep state ํ๋ก์ธ์ค๊ฐ ํน์ ์ด๋ฒคํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ ํ๋ก์ธ์ค๊ฐ ํ์ํ ์์์ ๊ธฐ๋ค๋ฆฌ๋ ์ํ โ Deadlock state ํ๋ก์ธ์ค๊ฐ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ด๋ฒคํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒฝ์ฐ ํ๋ก์ธ์ค๊ฐ deadlock ์ํ์ ์์ ์์คํ ๋ด์ deadlock์ ๋น ์ง ํ๋ก์ธ์ค๊ฐ ์๋ ๊ฒฝ์ฐ ์์คํ ์ด deadlock์ด ์ํ์ ์์ โ starvation์ '์ด์ด ์์ด์' ํ๋ก์ธ์๋ฅผ ํ ๋น๋ฐ์ง ๋ชปํ ์ํ์ผ ๋ฟ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์๋ ๊ฒ์ ์๋๋ค!! ์์์ ๋ถ๋ฅ โ ์ผ๋ฐ์ ๋ถ๋ฅ: Hardware resources vs Software resources โ ๋ค๋ฅธ ๋ถ๋ฅ๋ฒ(deadlock์ ๊ด์ ) ์ ์ ๊ฐ๋ฅ ์ฌ๋ถ์ ๋ฐ๋ฅธ .. 2022. 12. 22. [3์ฃผ์ฐจ] Mutual Exclusion Solutions (Language-Level solution) Mutual Exclusion Solutions (Language-Level solution) High-level Mechanism โ Monitor โ Path expressions โ Serializers โ Critical region, conditional critical region โ Language-level constructs โ Object-Oriented concept๊ณผ ์ ์ฌ โ ์ฌ์ฉ์ด ์ฌ์ Monitor โ ๊ณต์ ๋ฐ์ดํฐ์ Critical section์ ์งํฉ โ Conditional variable - wait(), signal(), operations Monitor์ ๊ตฌ์กฐ โ Entry queue(์ง์ ํ) ๋ชจ๋ํฐ ๋ด์ proceure ์๋งํผ ์กด์ฌ โ Mutual exclusion .. 2022. 12. 21. [3์ฃผ์ฐจ] Mutual Exclusion Solutions (OS supported SW solution) Mutual Exclusion Solutions (OS supported SW solution) Spinlock โ ์ ์ ๋ณ์ โ ์ด๊ธฐํ, P(), V() ์ฐ์ฐ์ผ๋ก๋ง ์ ๊ทผ ๊ฐ๋ฅ ์ ์ฐ์ฐ๋ค์ indivisible (or atomic) ์ฐ์ฐ OS support ์ ์ฒด๊ฐ ํ instruction cycle์ ์ํ๋จ โ P, V ์ฐ์ฐ์ ํตํด active ์ํ๋ฅผ ํ์ธํ๊ณ ์๊ณ์์ญ์ ์ง์ ํ๋ค ํน์ง โ ๋ฉํฐ ํ๋ก์ธ์ค ์์คํ ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ โ Busy waiting lock์ ๋๊ธฐํ๋ ๋์ loop๋ฅผ ๋๋ฉด์ busy waiting ์ํ๋ก ๋๊ธฐ Semaphore โ 1965๋ Dijkstra๊ฐ ์ ์ โ Busy waiting ๋ฌธ์ ํด๊ฒฐ โ ์์ด ์๋ ์ ์ํ ๋ณ์(S) ์ด๊ธฐํ ์ฐ์ฐ, P(), V()๋ก๋ง ์ ๊ทผ ๊ฐ๋ฅ P: P.. 2022. 12. 18. [3์ฃผ์ฐจ] Mutual Exclusion Solutions (SW & HW) Mutual Exclusion Solutions (SW & HW) SW Solutions Dekker's Algorithm โ Two process ME๋ฅผ ๋ณด์ฅํ๋ ์ต์ด์ ์๊ณ ๋ฆฌ์ฆ โ flag์ turn ๋๋ค ํ์ฉ Petersen's Algorithm โ dekker's algorithm ๋ณด๋ค ๊ฐ๋จํ๊ฒ ๊ตฌํ N-Process Mutual Exclusion โ ๋ค์ต์คํธ๋ผ(Dijkstra) ์ต์ด๋ก ํ๋ก์ธ์ค n๊ฐ์ ์ํธ๋ฐฐ์ ๋ฌธ์ ๋ฅผ ์ํํธ์จ์ด์ ์ผ๋ก ํด๊ฒฐ ์คํ์๊ฐ์ด ๊ฐ์ฅ ์งง์ ํ๋ก์ธ์ค์ ํ๋ก์ธ์ ํ ๋นํ๋ ์ธ๋งํฌ ๋ฐฉ๋ฒ, ๊ฐ์ฅ ์งง์ ํ๊ท ๋๊ธฐ์๊ฐ ์ ๊ณต โ ํฌ๋์ค(Knuth) โ ๋จํฌํธ(lamport) โ ํธ์จ(brinch Hansen) Dijkstra's Algorithm โ Dijkstra ์๊ณ ๋ฆฌ์ฆ์ flag[] .. 2022. 12. 17. [3์ฃผ์ฐจ] Process Synchronization and Mutual Exclusion ํ๋ก์ธ์ค ๋๊ธฐํ & ์ํธ๋ฐฐ์ (Process Synchronization and Mutual Exclusion) Process Synchronization โ ๋ค์ค ํ๋ก๊ทธ๋๋ฐ ์์คํ ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค ์กด์ฌ ํ๋ก์ธ์ค๋ค์ ์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ๋์ ๊ณต์ ์์ ๋๋ ๋ฐ์ดํฐ๊ฐ ์์ ๋, ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ โ ๋๊ธฐํ(Synchronization) ํ๋ก์ธ์ค๋ค์ด ์๋ก ๋์์ ๋ง์ถ๋ ๊ฒ ํ๋ก์ธ์ค๋ค์ด ์๋ก ์ ๋ณด๋ฅผ ๊ณต์ ํ๋ ๊ฒ Asynchronous and Concurrent P's โ ๋น๋๊ธฐ์ (Asynchronous) ํ๋ก์ธ์ค๋ค์ด ์๋ก์ ๋ํด ๋ชจ๋ฆ โ ๋ณํ์ (Concurrent) ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค ๋ค์ด ๋์์ ์์คํ ์ ์กด์ฌ โ ๋ณํ ์ํ์ค์ธ ๋น๋๊ธฐ์ ํ๋ก์ธ์ค๋ค์ด ๊ณต์ ์์์ ๋์ ์ ๊ทผํ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ Term.. 2022. 12. 16. ์ด์ 1 2 3 4 5 6 7 ๋ค์