20.04.20 (์)
Updated:
์ค๋ ํ ์ผ (๊ณํ)
์ทจ์ ์ญ๋๊ฐ๋ฐ๋ก 6์ฃผ์ฐจ ๋ฃ๊ธฐ์์๊ณ ์ ๊ฐ๋ 7์ฃผ์ฐจ ๋ฃ๊ธฐ์๊ธฐ์ฌ์ด์ฝ๋ฉ 8์ฃผ์ฐจ ๋ฃ๊ธฐ์ด์์ฒด์ 5์ฃผ์ฐจ ๋ฃ๊ธฐ
์ค๋ ํ ์ผ
-
์ด์์ฒด์
์๊ฐํด ๋ณด์์ผ ํ ๊ฒ
-
semaphore ์์ s ๊ฐ์ ์ ๋๋ก ์์๋ก ์ด๊ธฐํ ํ๋ฉด ์๋๋ ์ด์
-
s ๊ฐ์ 1์ด ์๋ 3์ผ๋ก ์ด๊ธฐํ ํ๋ ๊ฒฝ์ฐ ๋ฐ์ํ๋ ์ผ
-
s ๊ฐ์ด ์์์ผ๋ ์๋ฏธํ๋ ๋ฐ๋ ๋ฌด์์ผ๊น?
MultiProgramming ๊ณผ MultiProcessing ์ ์ ํ ๋ค๋ฅธ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ค.
์ ์๋ ์ฌ๋ฌ๊ฐ์ ํ๋ก๊ทธ๋จ์ด ๋์์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ์ ๋ฒ๊ฐ์ ๊ฐ๋ฉฐ ์คํ ํ๋ ๊ฒ์ด๊ณ
ํ์๋ ์ค์ ๋ก CPU๊ฐ ์ฌ๋ฌ๊ฐ ์ด๋ฉฐ ๊ฐ๊ฐ์ CPU์์ ํ๋ก๊ทธ๋จ์ด ํ ๊ฐ์ฉ ์คํ ๋๋ค.
์ผ๋จ 5์ฅ์์ ๋ฐฐ์ฐ๋ ์ค์ํ ๋ด์ฉ์ ์์์ ๋ค๋ฃฐ๋ ๋ฐ์ ํ ์ ์๋ ์ธ๊ฐ์ง ์ค๋ฅ์ ๋ํด ๋ฐฐ์ฐ๊ณ
๊ทธ ์ค๋ฅ๋ฅผ ํด๊ฒฐ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ฐฐ์ด๋ค. ์ธ๊ฐ์ง ์ค๋ฅ๋ก๋ ์ํธ๋ฐฐ์ ์ ํ์์ฑ, deadlock, starvation์ด ์๋ค.
๊ทธ ์ค ๋จผ์ ์ํธ๋ฐฐ์ (Multual Exclusion) ์ ๋ํด ์์๋ณธ๋ค.
์ํธ๋ฐฐ์ ๋ Critical Section์ ์๋ ์ฝ๋๋ ํ ๋ฒ์ ํ ๊ฐ ์ฉ ์คํ์ ํด์ผํ๋ค.
์ํธ๋ฐฐ์ ๋ฅผ ์งํค๊ธฐ ์ํด ํ์ํ ์๊ตฌ๊ฐ 6๊ฐ์ง ์๋ค.
- Critical Section์๋ ํ ๋ฒ์ ํ ํ๋ก์ธ์ค๋ง ๋ค์ด๊ฐ ์ ์๋ค.
- Critical Section์ด ์๋ ์ง์ญ์์ ๋ฉ์ถฐ ์๋ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ๋ฐฉํดํด์ ์๋๋ค.
- Deadlock๊ณผ starvation์ด ์์ด์ผ ํ๋ค.
- Critical Section์ด ๋น์ด์๋๋ฐ ๋ชป ๋ค์ด๊ฐ๋ฉด ์๋๋ค.
- ํ๋ก์ธ์ค ๊ฐ์๋ ์๋์ ๋ฐ๋ผ์ ์๋์ ํ๊ธฐ๋ ํ๊ณ ์ํ๊ธฐ๋ ํ๋ฉด ์๋๋ค.
- Critical Section(์ดํ C.S) ์ ํ ํ๋ก์ธ์ค๊ฐ ๋ฌดํํ ์์ผ๋ฉด ์๋๋ค.
์ํธ๋ฐฐ์ ๋ฅผ ์งํค๊ธฐ ์ํด H.W ๋จ๊ณ, O/S ๋จ๊ณ, Application ๋จ๊ณ๊ฐ ์๋ค.
์ฐ์ H.W ๋จ๊ณ๋ฅผ ์์๋ณด์ ์์ฃผ ์์ฃผ ๊ฐ๋จํ๊ฒ ์ค๋ช ํ ๊ฒ์ด๋ค.
-
Compare and Swap Instruction
bolt ๊ฐ์ ํตํด C.S ์ง์ ์ฌ๋ถ๋ฅผ ํ๋จ ํ๋ค.
-
Exchange Instrcution
bolt ๊ฐ๊ณผ ๊ฐ ํ๋ก์ธ์ค์ key ๊ฐ์ ๋น๊ตํด C.S ์ง์ ์ฌ๋ถ๋ฅผ ํ๋จ ํ๋ค.
์ด H.W ๋จ๊ณ๋ฅผ ์ฌ์ฉ ํจ์ผ๋ก์จ ์ฅ์ ๊ณผ ๋จ์ ์ด ์๋ค.
์ฅ์ ์ ๋จผ์ ์์๋ณด์
- ํ๋ก์ธ์ค ๊ฐ์ ์๊ด ์์ด ๊ตฌํ ๊ฐ๋ฅ
- ๋งค์ฐ ๊ฐ๋จํ๊ฒ ๊ตฌํ ๊ฐ๋ฅ
- ๋ฉํฐ C.S ๊ตฌํ ๊ฐ๋ฅ
ํ์ง๋ง ๋จ์ ์ด ๋งค์ฐ๋งค์ฐ ์ปค ์์ฃผ ์ฌ์ฉํ์ง๋ ์๋๋ค๊ณ ํ๋ค.
๋จ์ ์ผ๋ก๋
-
Busy-Waiting
์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์์ฑํ์ง ์์์ง๋ง H.W๋ฅผ ํตํด ์ํธ๋ฐฐ์ ๋ฅผ ์ง์ํ๋ ๊ฒฝ์ฐ
bolt ๊ฐ์ ๋น๊ตํ๊ฑฐ๋ key ๊ฐ์ ๋น๊ตํ ๋ while๋ฌธ์ ์๋ฏธ์์ด ๊ณ์ ๋ฐ๋ณตํ ์ ์๋ค.
์ด ๊ฒฝ์ฐ CPU๋ ์ก์๋จน์ผ๋ฉด์ ์๋ฌด์ผ๋ ํ์ง ์๊ธฐ๋๋ฌธ์ Busy-Waiting ์ด๋ผ๊ณ ํ๋ค.
-
Starvation
๋ง ๊ทธ๋๋ก ๊ตถ๋ ๊ฒ์ด๋ค. ํน์ ํ๋ก์ธ์ค์๊ฒ ์์๋ฅผ ์์ค ์์ํ ์คํ๋์ง ๋ชปํ๋ ๊ฒ์ด๋ค.
-
Deadlock
๋ฉํฐ C.S๋ฅผ ๊ตฌํํ์ ๊ฒฝ์ฐ ๋ฐ์ ํ ์ ์๋ค.
๊ทธ๋์ Busy-Waiting๊ณผ Starvation์ ์์ ๋ ๋ฐฉ์์ผ๋ก O/S์์ ์ ๊ณตํ๋ Semaphore๋ฅผ ์ด์ฉํ ์ ์๋ค.
Semaphore์ ๊ตฌ์กฐ์ฒด ๋ณ์๋ก ์๊ฐํ ์ ์๋ค. ์ ์ ํ ๊ฐ์ ํ ํ ๊ฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
Semaphore์ ์ฌ๊ธฐ์ ๋ค ์ ๋ฆฌํ๊ธด ์ด๋ ค์ธ ๊ฒ ๊ฐ์์ ๋์ค์ ๋ฐ๋ก ํฌ์คํ ์ ํด์ผ๊ฒ ๋ค.
๊ทธ๋ฆฌ๊ณ ๋งจ~ ์ฒ์์ ๋งํ๋ ์๊ฐํด ๋ณด์์ผ ํ ๊ฒ
4์ 22์ผ ์์์ผ ์ ๋ฐฐ์ ๋์์ ๋ฐ์ ํด๊ฒฐํ๋ค.
-
semaphore ์์ s ๊ฐ์ ์ ๋๋ก ์์๋ก ์ด๊ธฐํ ํ๋ฉด ์๋๋ ์ด์
๋ง์ฝ ๋์ผ ์ฝ๋๋ฅผ ๊ฐ์ง ์ฌ๋ฌ ์ฐ๋ ๋๊ฐ ๋์ํ๋ ๊ฒฝ์ฐ ๋ฐ๋๋ฝ์ ๊ฑธ๋ฆฐ๋ค.
์ฌ๊ธฐ์ ์ถ๊ฐ๋ก 0์ธ ๊ฒฝ์ฐ๋ ์๋๋ค๊ณ ์๊ฐํ๋๋ฐ ์ฐฉ๊ฐ์ด์๋ค.
๋ชจ๋ ํ๋ก์ธ์ค๊ฐ wait โย C.S โย signal ์์ผ๋ก ๋์ํ๋๊ฒ ์๋๋ค.
์ด๋ค ํ๋ก์ธ์ค๋ signal ๋ง ์ฌ๋ฌ๋ฒ ์์์๋ ์๋ค.
๋ฐ๋ผ์ 0 ์ด์ด๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ฒ์ ๋ค์ด๊ฐ ํ๋ก์ธ์ค๋ฅผ ํ์์ ๋นผ์ค ์ ์๋ค.
-
s ๊ฐ์ 1์ด ์๋ 3์ผ๋ก ์ด๊ธฐํ ํ๋ ๊ฒฝ์ฐ ๋ฐ์ํ๋ ์ผ
C.S ๋ฐฉ์ ํฌ๊ธฐ๊ฐ 3์ผ๋ก ๋ฐ๋์ด ์ธ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ๋ค์ด์ ๋์ํ๋ค.
๋จ์ง ์ด ์ธ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ Race condition๋ง ์์ผ๋ฉด ๋๋ค.
์๋ค๋ฉด ์ฝ๋ฉ์ ์๋ชปํ๊ฒ์ด๋ค.
-
s ๊ฐ์ด ์์์ผ๋ ์๋ฏธํ๋ ๋ฐ๋ ๋ฌด์์ผ๊น?
โย s ๊ฐ์ ์ ๋ ๊ฐ์ด ํ์ ๋จ์์๋ ํ๋ก์ธ์ค ๊ฐ์๋ฅผ ์๋ฏธํ๋ค.
๋ด๊ฐ ๋น์ ์ด ๋ฌธ์ ๋ฅผ ํ๋ ๊ณ ์ ๊ด๋ ์ ์ฌ๋ก์กํ ์์๋ค. ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ wait โ C.S โ signal ์์ผ๋ก ๋์ํ๋๊ฒ ์๋๋ค.
์ด๋ค ํ๋ก์ธ์ค๋ signal๋ง ๊ฐ์ง๊ณ ์์ ์ ๋์๊ณ ๊ทธ๋ ๋ค ! ์์๋๋ก ๋์ํ๋ค๋ ์๊ฐ์ ๋ฒ๋ฆฌ์
์ ์์๋ ์ํธ๋ฐฐ์ ๋ฅผ ๋์์ฃผ๋ ์์์ผ ๋ฟ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์์ฒด์ 6์ฃผ์ฐจ ๊ฐ์๋ฅผ ๋ค์ผ๋ฉด ๋ ์ดํด๊ฐ ์ ๊ฐ๋ค๊ณ ํ๋๊น
์ด๋ฒ์ฃผ ์ฃผ๋ง์ ์ ๋ค์ด๋ณด์ !
-
๋ด์ผ ํ ์ผ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค 6์ฃผ์ฐจ ๋ฃ๊ธฐ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณด์ถฉ ๊ฐ์ ๋ฃ๊ธฐ
- ์์๊ณ ์ ๊ฐ๋ ๊ณผ์ ์ ์ถ Window OS๋ก ์ ์ถ
์ด๋ฒ์ฃผ ํ ์ผ
์ทจ์ ์ญ๋๊ฐ๋ฐ๋ก 6์ฃผ์ฐจ ๋ฃ๊ธฐ (์)์์๊ณ ์ ๊ฐ๋ 7์ฃผ์ฐจ ๋ฃ๊ธฐ (์)์๊ธฐ์ฌ์ด์ฝ๋ฉ 8์ฃผ์ฐจ ๋ฃ๊ธฐ (์)์ด์์ฒด์ 5์ฃผ์ฐจ ๋ฃ๊ธฐ (์)- ๋ฐ์ดํฐ๋ฒ ์ด์ค 6์ฃผ์ฐจ ๋ฃ๊ธฐ (ํ)
- ์์๊ณ ์ ๊ฐ๋ ๊ณผ์ ์ ์ถ (ํ)
- ๋ํ์์์ํ์ค์ฉ๊ธ์ต 5์ฃผ์ฐจ, 6์ฃผ์ฐจ ๋ฃ๊ธฐ (์)
- ๋ํ์์์ํ์ค์ฉ๊ธ์ต ๊ณผ์ ์ ์ถ (์)
- ํ๋ฅ ๊ณผ ํต๊ณ 6์ฃผ์ฐจ ๋ฃ๊ธฐ (๋ชฉ)
- ์ด์์ฒด์ 3, 4๊ฐ ํด์ฆ ์ค๋น (๋ชฉ)
- ์น ํ๋ก๊ทธ๋๋ฐ 6์ฃผ์ฐจ ๋ฃ๊ธฐ (๊ธ)
- ์ด์์ฒด์ 6์ฃผ์ฐจ ๋ฃ๊ธฐ (ํ )
Leave a comment