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
- ๋ชจ๋ํฐ ๋ด์๋ ํญ์ ํ๋์ ํ๋ก์ธ์ค๋ง ์ง์ ๊ฐ๋ฅ
โ Information hiding(์ ๋ณด ์ํ)
- ๊ณต์ ๋ฐ์ดํฐ๋ ๋ชจ๋ํฐ ๋ด์ ํ๋ก์ธ์ค๋ง ์ ๊ทผ ๊ฐ๋ฅ
โ Condition queue(์กฐ๊ฑด ํ)
- ๋ชจ๋ํฐ ๋ด์ ํน์ ์ด๋ฒคํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ํ๋ก์ธ์ค๊ฐ ๋๊ธฐ
โ Signaler queue(์ ํธ์ ๊ณต์ ํ)
- ๋ชจ๋ํฐ์ ํญ์ ํ๋์ ์ ํธ์ ๊ณต์ ํ๊ฐ ์กด์ฌ
- signal() ๋ช ๋ น์ ์คํํ ํ๋ก์ธ์ค๊ฐ ์์ ๋๊ธฐ
Monitor - ์์ ํ ๋น ๋ฌธ์
โ ๋ชจ๋ ๋ณ๋ก ready queue ์กด์ฌ
โ ํน์ ์ด๋ฒคํธ ๊ธฐ๋ค๋ฆฌ๋ condition queue
โ condition queue๋ฅผ ๊นจ์์ค(์ ํธ ์ ๊ณต) Signaler queue
์์ํ ๋น ์๋๋ฆฌ์ค
์ด๊ธฐ ์ํ
โ ์์ R ์ฌ์ฉ ๊ฐ๋ฅ
โ Monitor์์ ํ๋ก์ธ์ค ์์
state 1
โ ํ๋ก์ธ์ค P_j๊ฐ ๋ชจ๋ํฐ ์์์ ์์ R์ ์์ฒญ
state 2
โ ์์ R์ด P_j์๊ฒ ํ ๋น
โ ํ๋ก์ธ์ค P_k๊ฐ R ์์ฒญ, P_m ๋ํ R ์์ฒญ
state 3
โ P_j๊ฐ R๋ฐํ
โ R_Free.signal() ํธ์ถ์ ์ํด P_k๊ฐ wakeup
state 4
โ ์์ R์ด P_k์๊ฒ ํ ๋น
โ P_j๊ฐ ๋ชจ๋ํฐ ์์ผ๋ก ๋์์์, ๋จ์ ์์
์ํ
Producer-Consumer problem
Reader-Writer Problem
โ reader/writer ํ๋ก์ธ์ค๋ค ๊ฐ์ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ ๊ธฐ๋ฒ
โ writer ํ๋ก์ธ์ค์ ์ํ ๋ฐ์ดํฐ ์ ๊ทผ ์์๋ง ์ํธ ๋ฐฐ์ ๋ฐ ๋๊ธฐํ ํ์
โ ๋ชจ๋ํฐ ๊ตฌ์ฑ
- ๋ณ์ 2๊ฐ
- ํ์ฌ ์ฝ๊ธฐ ์์ ์ ์งํํ๊ณ ์๋ reader ํ๋ก์ธ์ค์ ์
- ํ์ฌ writer ํ๋ก์ธ์ค๊ฐ ์ฐ๊ธฐ ์์ ์ ์งํ ์ค์ธ์ง ํ์
- ์กฐ๊ฑด ํ 2๊ฐ
- reader/writer ํ๋ก์ธ์ค๊ฐ ๋๊ธฐํด์ผ ํ ๊ฒฝ์ฐ์ ์ฌ์ฉ
- ํ๋ก์์ ธ 4๊ฐ
- reader(writer) ํ๋ก์ธ์ค๊ฐ ์ฝ๊ธฐ(์ฐ๊ธฐ) ์์ ์ ์ํ ๊ฒฝ์ฐ์ ํธ์ถ, ์ฝ๊ธฐ(์ฐ๊ธฐ) ์์ ์ ๋ง์ณค์ ๋ ํธ์ถ
Dining Philosopher Problem
โ 5๋ช
์ ์ฒ ํ์
โ ์ฒ ํ์๋ค์ ๋ ๊ฐ์ง ์ผ๋ง ๋ฐ๋ณต: ์๊ฐํ๋ ์ผ/์คํ๊ฒํฐ๋ฅผ ๋จน๋ ์ผ
โ ๊ณต์ ์์: ์คํ๊ฒํฐ, ํฌํฌ
โ ์คํ๊ฒํฐ๋ฅผ ๋จน๊ธฐ ์ํด์๋ ์ข์ฐ ํฌํฌ 2๊ฐ ๋ชจ๋ ๋ค์ด์ผ ํ๋ค
์ฝ๋๋ก ๊ตฌํ
ํน์ง
โ ์ฅ์
- ์ฌ์ฉ์ด ์ฝ๋ค
- Deadlock ๋ฑ error ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ๋ฎ๋ค
โ ๋จ์
- ์ง์ํ๋ ์ธ์ด์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ
- ์ปดํ์ผ๋ฌ๊ฐ OS๋ฅผ ์ดํดํ๊ณ ์์ด์ผ ํ๋ค
- critical section ์ ๊ทผ์ ์ํ ์ฝ๋ ์์ฑ
'โญ Group_Study > Operating System' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[4์ฃผ์ฐจ] Deadlock: Deadlock Model (0) | 2022.12.23 |
---|---|
[4์ฃผ์ฐจ] Deadlock: Deadlock and Resource types (0) | 2022.12.22 |
[3์ฃผ์ฐจ] Mutual Exclusion Solutions (OS supported SW solution) (0) | 2022.12.18 |
[3์ฃผ์ฐจ] Mutual Exclusion Solutions (SW & HW) (1) | 2022.12.17 |
[3์ฃผ์ฐจ] Process Synchronization and Mutual Exclusion (0) | 2022.12.16 |
๋๊ธ