ํ๋ก์ธ์ค์ ์ค๋ ๋์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ์?
ํ๋ก์ธ์ค๋ .exe๊ฐ์ ์์ง ์คํ๋์ง ์์ ํ์ผ์ ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ํ๋๋ฐ ๊ทธ ํ๋ก๊ทธ๋จ์ ์คํ์ํค๋ฉด ํ๋ก์ธ์ค๋ค.
์ฆ ์ปดํจํฐ์์ ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ์ด๋ค.
์ค๋ ๋๋ ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ฐ์ ์์์ ์ด์ฉํ๋ ์คํ ํ๋ฆ์ ๋จ์์ด๋ค.
๋์ ํฐ ์ฐจ์ด๋ ์ค๋ ๋๋ ์ค๋ ๋๋ผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ์ง๋ง ํ๋ก์ธ์ค๋ ์์ ์ ์์๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
๋ฐ๋ผ์ ํ ์ค๋ ๋๊ฐ ์ข ๋ฃ๋๋ค๋ฉด ๋ค๋ฅธ ์ค๋ ๋์๊ฒ ์ํฅ์ ๋ผ์น์ง๋ง ํ๋ก์ธ์ค๋ ํ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋์ด๋ ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ์ํฅ์ ๋ผ์น์ง ์๋๋ค.
๊ต์ฐฉ์ํ๋ ๋ฌด์์ด๋ฉฐ, ๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ๊ธฐ ์ํด์๋ ์ด๋ค ์กฐ๊ฑด์ด ์์ด์ผ ํ๋์?
๊ต์ฐฉ์ํ๋ ํ๋ก์ธ์ค or ์ค๋ ๋๋ค์ด ์๋ก ํ์ํ ์์์ ํ์ ์ ์ผ๋ก ์๋ก ๊ฐ์ง๊ณ ์๋ ๊ฒ์ด๋ค.
๊ต์ฐฉ ์ํ ๋ฐ์ ์กฐ๊ฑด์ 4๊ฐ์ง์ด๊ณ ๋ชจ๋ ์ถฉ์กฑ๋์ด์ผ ํ๋ค.
์ํธ ๋ฐฐ์ (Mutual Exclusion)
- ํ ๋ฒ์ ํ ๊ฐ์ ํ๋ก์ธ์ค๋ง์ด ๊ณต์ ์์์ ์ฌ์ฉํ ์ ์์ด์ผ ํจ -> ์๋ก lock์ ์ฌ์ฉํ ์ ์๋ค๋ ๋ง
๋น์ ์ (Non-Preemptive)
- ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋ ์์์ ์ฌ์ฉ์ด ๋๋ ๋๊น์ง ๊ฐ์ ๋ก ๋นผ์์ ์ ์์ด์ผ ํจ -> ์๋ก lock์ ์ฌ์ฉํ ์ ์๋ค๋ ๋ง
์ ์ ์ ๋๊ธฐ (Hold & Wait)
- ์ต์ํ ํ๋์ ์์์ ์ ์ ํ๊ณ ์์ผ๋ฉด์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋์ด ์ฌ์ฉ๋๊ณ ์๋ ์์์ ์ถ๊ฐ๋ก ์ ์ ํ๊ธฐ ์ํด ๋๊ธฐํ๋ ํ๋ก์ธ์ค๊ฐ ์์ด์ผ ํจ
ํํ ๋๊ธฐ (Circular Wait)
- ๊ณต์ ์์๊ณผ ์์์ ์ฌ์ฉํ๊ธฐ ์ํด ๋๊ธฐํ๋ ํ๋ก์ธ์ค๋ค์ด ์ํ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ด ์์ ์๊ฒ ํ ๋น๋ ์์์ ์ ์ ํ๋ฉด์ ์์ด๋ ๋ค์ ์๋ ํ๋ก์ธ์ค์ ์์์ ์๊ตฌํด์ผ ํจ
๊ต์ฐฉ์ํ์ ํด๊ฒฐ๋ฒ์ ๋ฌด์์ธ๊ฐ์?
1. ์๋ฐฉ
- ๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ์ง ์๋๋ก ์ฌ์ ์ ์์คํ ์ ์ ์ดํ๋ ๋ฐฉ๋ฒ
- ์์ ์ดํด๋ณธ ๊ต์ฐฉ์ํ ๋ฐ์์ ๋ค ๊ฐ์ง ์กฐ๊ฑด ์ค ์ด๋ ํ๋๋ฅผ ์ ๊ฑฐํจ์ผ๋ก์จ ์ํ
1. ์ํธ ๋ฐฐ์ ๋ถ์
์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ๋์์ ๊ณต์ ์์์ ์ฌ์ฉํ ์ ์์
2. ์ ์ ๋๊ธฐ ๋ถ์
ํ๋ก์ธ์ค๊ฐ ์คํ๋๊ธฐ ์ ์ ํ์ํ ๋ชจ๋ ์์์ ํ ๋นํ์ฌ ํ๋ก์ธ์ค ๋๊ธฐ๋ฅผ ์์ ๊ฑฐ๋, ์์์ด ์ ์ ๋์ง ์์ ์ํ์์๋ง ์์ ์์ฒญ์ ๋ฐ๋๋ก ํจ
3. ๋น์ ์ ๋ถ์
๋ชจ๋ ์์์ ๋ํ ์ ์ ์ ํ์ฉ
4. ์ํ ๋๊ธฐ ๋ถ์
์์์ ์ ํ์ผ๋ก ๋ถ๋ฅํ์ฌ ๊ณ ์ ๋ฒํธ๋ฅผ ํ ๋นํ๊ณ , ๊ฐ ํ๋ก์ธ์ค๋ ํ์ฌ ์ ์ ํ ์์์ ๊ณ ์ ๋ฒํธ๋ณด๋ค ์์ด๋ ๋ค ํ์ชฝ ๋ฐฉํฅ์ผ๋ก๋ง ์์์ ์๊ตฌํ๋๋ก ํจ
- ์์์ ๋ญ๋น๊ฐ ์ฌํ ๊ธฐ๋ฒ
2. ํํผ
- ๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ ๋ฐฐ์ ํ์ง ์๊ณ ๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ๋ฉด ์ ์ ํ ํผํด๊ฐ๋ ๋ฐฉ๋ฒ
- ๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ฉด ์์ ํ ๋น(Unsafe allocation)์ ํ์ง ์๊ณ ์์ ํ ์ํ(Safe state)์์๋ง ์์ ์์ฒญ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ
- Banker's Algorithm์ด ์ฌ์ฉ
3. ๊ฒ์ถ
- ํ์ฌ ์ด์์ฒด์ ๋ ์ด ๊ฒ์ถ๋ฐฉ์์ผ๋ก ์ฌ์ฉ
- ์์คํ ์ ๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ๋์ง ์ ๊ฒํ์ฌ ๊ต์ฐฉ์ํ์ ์๋ ํ๋ก์ธ์ค์ ์์์ ๋ฐ๊ฒฌํ๋ ๊ฒ
- ๊ทธ ์ค์๋ ํ์์์, ์์ ํ ๋น ๊ทธ๋ํ ๋ฑ์ ์ฌ์ฉํ ์ ์์
4. ํ๋ณต
- ๊ต์ฐฉ์ํ๋ฅผ ์ผ์ผํจ ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃ์ํค๊ฑฐ๋, ๊ต์ฐฉ์ํ์ ํ๋ก์ธ์ค์ ํ ๋น๋ ์์์ ์ ์ (preempt)ํ์ฌ ํ๋ก์ธ์ค๋ ์์์ ํ๋ณตํ๋ ๊ฒ
๋ฎคํ ์ค์ ์ธ๋งํฌ์ด์ ๋ํด์ ์ค๋ช ํด ๋ณด์์ค.
- ๊ณต์ ๋ ์์์ ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ๋์์ ์ ๊ทผํ ๋, ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ํ๋์ ํ๋ก์ธ์ค๋ง ์ ๊ทผํ ์ ์๋๋ก ์ ํํ๋๋ก ํ๋ ๋๊ตฌ์ด๋ค.
- ๋ฎคํ ์ค๋ ๋๊ธฐํ ๋์์ด ํ๋์ด๊ณ , ์ํ๊ฐ 0, 1 ๋ฟ์ด๋ฏ๋ก Lock์ ๊ฐ์ง ์ ์๋ค,
- ์ธ๋งํฌ์ด๋ ๋๊ธฐํ ๋์์ด ํ๋ ์ด์์ด๊ณ , ์์ ํ์ง ์๋ ์ค๋ ๋๊ฐ Semaphore๋ฅผ ํด์ ํ ์ ์๋ค.
์ปจํ ์คํธ ์ค์์นญ์ด๋ ๋ฌด์์ธ๊ฐ์?
- ํ์ฌ ์์ ํ๊ณ ์๋ ํ๋ก์ธ์ค๋ฅผ ๊ตํํ๋ ์์ ์ด๋ค.
- ์๋ ์คํํ๊ณ ์๋ ํ๋ก์ธ์ค์ context๋ฅผ PCB๋ผ๊ณ ํ๋ ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅ & ์๋ก ์คํํ ํ๋ก์ธ์ค์ context๋ฅผ PCB์์ ๋ถ๋ฌ์จ๋ค.
๊ฒฝ์ ์ํ๋ ๋ฌด์์ธ๊ฐ์?
๋ ์ด์์ ์ ๋ ฅ ๋๋ ์กฐ์์ ํ์ด๋ฐ์ด๋ ์์ ๋ฑ์ด ๊ณต์ ์์์ ๋์์ ์ ๊ทผํ์ฌ ๊ฒฐ๊ณผ๊ฐ์ ์ํฅ์ ์ค ์ ์๋ ์ํ์ด๋ค.
ex) ์ํ์ 10000์์ด ์์ ๋, ์๋ค์ 10000์์ ์ถ๊ธํ๊ณ ์๋ง๋ ์๋ค์๊ฒ 5000์์ ์ ๊ธํจ → 0์ → 5000์์ด ๋๋ฆฌ๋ผ ์์ but ๊ฒฝ์์ํ๋ผ๋ฉด?
๋์์ ์ถ๊ธ๊ณผ ์ ๊ธ์ด ์งํ๋๋ ๊ฒฝ์ฐ
์๋ค์ ์ ์ฅ : ํ์ฌ์๊ณ 10000์ – 10000์ ์ถ๊ธ = ๊ธฐ๋์๊ณ 0์
์๋ง์ ์ ์ฅ : ํ์ฌ์๊ณ 10000์ – 5000์ ์ ๊ธ = ๊ธฐ๋์๊ณ 15000์
๋ฐ๋ผ์ ๊ฒฝ์์ํ๋ ๊ณต์ ๋ฐ์ดํฐ(์๊ณ )์ ์ต์ข ๊ฐ์ ๋ณด์ฅํ ์ ์๋ ์ํฉ์ ๋งํจ
์ง๋ฌธ ์ถ์ฒ
'CS > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CS ๋ฉด์ ์ง๋ฌธ] ํ๋ก์ธ์ค(2) (0) | 2023.06.05 |
---|