ํ๋ก์ธ์ค ๋๊ธฐํ
ํ๋ก์ธ์ค ๋๊ธฐํ๋ ํ๋ก์ธ์ค๋ค ์ฌ์ด์ ์ํ ์๊ธฐ๋ฅผ ๋ง์ถ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ด์์ฒด์ ์ ์ฅ์์๋ ํ๋ก์ธ์ค๋ค์ ์คํ ์์๋ฅผ ์ ์ดํ๊ณ ์ํธ ๋ฐฐ์ (๋์์ ์ ๊ทผํด์๋ ์๋๋ ์์์ ํ๋์ ํ๋ก์ธ์ค๋ง ์ ๊ทผ)์ ์ํํ ์ด๋ฃจ์ด๋ด์ผ ํ์ฃ . ์ด์ ๊ด๋ จํด์ ๊ณต์ ์์๊ณผ ์๊ณ ์์ญ, ์์ฐ์/์๋น์ ๋ฌธ์ , ๊ฒฝ์ ์ํ, ์๊ณ ์์ญ ๋ฑ์ ๊ฐ๋ ์ด ๋์ต๋๋ค. ์ด๋ฌํ ๊ฐ๋ ๋ค์ ์ด์ ์ ๋ค๋ค๊ธฐ ๋๋ฌธ์ ์๋๋ฅผ ์ฐธ๊ณ ํ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋๊ธฐํ ๊ธฐ๋ฒ
ํ๋ก์ธ์ค ๋๊ธฐํ์ ๊ธฐ๋ฒ์๋ ๋ฎคํ ์ค ๋ฝ, ์ธ๋งํฌ์ด, ๋ชจ๋ํฐ ๋ฑ์ด ์์ต๋๋ค. ์ด์์ฒด์ ๋ ๋๊ธฐํ ๊ธฐ๋ฒ์ ํตํด ์๊ณ ์์ญ์ ์ค์ง ํ๋์ ํ๋ก์ธ์ค๋ง ์ง์ ํ๋๋ก ์ ์ดํ๋ฉด์ ์คํ ์์๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๋ณด์ฅํฉ๋๋ค.
๋ฎคํ ์ค ๋ฝ
๋ฎคํ ์ค๋ Mutual Exclusion์ ์ฝ์ด๋ก, ์ฌ๋ฌ ์ค๋ ๋๊ฐ ๊ณต์ ์์์ ๋์์ ์ ๊ทผํ๋ ๊ฒ์ ๋ง๊ธฐ ์ํ ๋๊ธฐํ ๊ธฐ๋ฒ์ ๋๋ค. ๋ฎคํ ์ค๋ ์๊ณ ์์ญ(Critical Section)์ด๋ผ ๋ถ๋ฆฌ๋ ์ฝ๋ ์์ญ์ ๋ฝ(lock)์ ๊ฑธ์ด ๋ค๋ฅธ ์ค๋ ๋๊ฐ ํด๋น ์์ญ์ ๋ค์ด๊ฐ์ง ๋ชปํ๋๋ก ํฉ๋๋ค. ๋ฝ์ ํ๋์ ์ค๋ ๋๋ง ํ๋ํ ์ ์๊ณ , ๋ค๋ฅธ ์ค๋ ๋๋ ๋๊ธฐํ๊ฑฐ๋ ๋ค๋ฅธ ์์ ์ ์ํํด์ผ ํฉ๋๋ค. ๋ฎคํ ์ค๋ ์ค๋ ๋ ๊ฐ์ ๊ฒฝ์ ์ํ(Race Condition)๋ฅผ ๋ฐฉ์งํ๊ณ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
์ ๋ฆฌํ๋ฉด ๋ฎคํ ์ค ๋ฝ์ ์ํธ ๋ฐฐ์ ๋ฅผ ์ํ ๋๊ธฐํ ๋๊ตฌ๋ก์จ ํ์์ค์ ์ค์น๋ ์๋ฌผ์ ๋ผ๊ณ ๋ณด์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ์์ค์๋ ์๋ ํ ๋ช ์ฉ๋ง ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ ์๋์ด ํ์์ค์ ์ด์ฉํ๋ฉด ์๋ฌผ์ ๋ฅผ ์ ๊ทธ๊ณ ๋ค๋ฅธ ์๋๋ค์ ๊ธฐ๋ค๋ฆฝ๋๋ค. ํ์์ค ๋ฐ ์๋๋ค(๋๊ธฐํ๋ ํ๋ก์ธ์ค)์ ๊ฑธ๋ ค์๋ ์๋ฌผ์ (๋ฎคํ ์ค ๋ฝ)๋ฅผ ๋ณด๊ณ ํ์์ค(์๊ณ ์์ญ)์ ๋ค์ด๊ฐ์ง ์์ต๋๋ค.
์ธ๋งํฌ์ด
์ธ๋งํฌ์ด๋ ๋์์ ์ฌ๋ฌ ์ค๋ ๋๋ ํ๋ก์ธ์ค๊ฐ ํน์ ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๋ ํ์ฉ ๊ฐ์๋ฅผ ์ ์ดํ๋ ๋๊ธฐํ ๋๊ตฌ์ ๋๋ค. ์ธ๋งํฌ์ด๋ ์นด์ดํฐ ๊ฐ์ผ๋ก ํํ๋๋ฉฐ, ์ด ๊ฐ์ ๋ฐ๋ผ ํน์ ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๋ ์ค๋ ๋๋ ํ๋ก์ธ์ค์ ์๋ฅผ ์กฐ์ ํฉ๋๋ค. ์ธ๋งํฌ์ด๋ ๋ฎคํ ์ค์ ๋ฌ๋ฆฌ ์ฌ๋ฌ ์ค๋ ๋๊ฐ ๋์์ ์ ๊ทผํ ์ ์๋ ํ์ฉ ๊ฐ์๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. ์ธ๋งํฌ์ด๋ ์ฃผ๋ก ์ ํ๋ ์์์ ์ฌ๋ฌ ์ค๋ ๋๋ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
๋ฎคํ ์ค ๋ฝ์ ๊ณต์ ์์์ด ํ๋๋ง ์๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๊ณ , ์ธ๋งํฌ์ด๋ ๊ณต์ ์์์ด ์ฌ๋ฌ ๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ์ ์ฉ ๊ฐ๋ฅํฉ๋๋ค. ์ธ๋งํฌ์ด๋ ๋ฐ์ด๋๋ฆฌ ์ธ๋งํฌ์ด์ ์นด์ดํ ์ธ๋งํฌ์ด๊ฐ ์์ต๋๋ค. ๋๋ถ๋ถ์ ์ธ๋งํฌ์ด๋ ์นด์ดํ ์ธ๋งํฌ์ด๋ฅผ ๋ปํฉ๋๋ค.
์ธ๋งํฌ์ด์ ์ ๋๋ ์ด์ฐจ ์ ํธ๊ธฐ์์ ์์ต๋๋ค. ์๊ณ ์์ญ ์์์ ํ๋ก์ธ์ค๋ ์ค๋ ๋๊ฐ ์ ํธ๋ฅผ ๋ฐ์ผ๋ฉด ์ง์ ํ ์ ์๊ณ , STOP์ ํธ์ด๋ฉด ์ง์ ํ ์ ์์ต๋๋ค. ์ธ๋งํฌ์ด๋ ์๊ณ ๊ตฌ์ญ์ ์ง์ ํ ์ ์๋ ํ๋ก์ธ์ค์ ๊ฐ์๋ฅผ ๋ํ๋ด๋ ์ ์ญ ๋ณ์(S)์ ์๊ณ ์์ญ์ ๋ค์ด๊ฐ๋ ๋๋์ง ์๋ ค์ฃผ๋ waitํจ์, ๊ธฐ๋ค๋ฆฌ๋ ํ๋ก์ธ์ค๊ฐ ์๊ณ ์์ญ์ ๋ค์ด๊ฐ ์ ์๊ฒ ์ ํธ๋ฅผ ์ฃผ๋ signal ํจ์๋ก ๊ตฌํํ ์ ์์ต๋๋ค.
๋ชจ๋ํฐ
๋ชจ๋ํฐ๋ ๋ฎคํ ์ค์ ์ธ๋งํฌ์ด๋ฅผ ์ถ์ํํ ๊ณ ์์ค ๋๊ธฐํ ๋๊ตฌ์ ๋๋ค. ๋ชจ๋ํฐ๋ ๊ณต์ ๋ฐ์ดํฐ๋ ๋ฆฌ์์ค์ ์ ๊ทผํ๋ ๋ชจ๋ ์ค๋ ๋๊ฐ ์ง์ ์ ์๋ํ๋ฉด ๋ชจ๋ํฐ ๋ด๋ถ์ ํฌ๋ฆฌํฐ์ปฌ ์น์ ์ ๋์์ ์ ๊ทผํ ์ ์๋๋ก ํฉ๋๋ค. ๋ชจ๋ํฐ๋ ์๊ณ ์์ญ์ ๋ํ ์ ๊ทผ์ ์กฐ์ ํ๊ณ , ์ค๋ ๋ ๊ฐ์ ํต์ ์ ์ง์ํ๋ฉฐ, ๋๊ธฐํ๊ณ ์๋ ์ค๋ ๋๋ฅผ ๊นจ์ฐ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋ชจ๋ํฐ๋ ์ค๋ ๋ ๊ฐ์ ๋๊ธฐํ์ ํต์ ์ ๋ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋๋ก ๋์์ค๋๋ค.
์ธ๋งํฌ์ด๋ ์ฌ์ฉํ๊ธฐ ๋ถํธํ ๋ฉด์ด ์์ต๋๋ค. ๋งค๋ฒ ์๊ณ ์์ญ ์๋ค๋ก ์ผ์ผ์ด wait๊ณผ signal ํจ์๋ฅผ ๋ช ์ํด์ผ ํ๊ณ ์๋ชป๋ ์ฝ๋๋ก ์๊ธฐ์น ๋ชปํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์๋ ์์ต๋๋ค.
์ด์ ์ต๊ทผ ๋ฑ์ฅํ ๋ฐ์ ๋ ๋๊ธฐํ ๋๊ตฌ๊ฐ ๋ชจ๋ํฐ์ ๋๋ค. ๋ชจ๋ํฐ๋ ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉํ๊ธฐ ์ฌ์ด ๋๊ธฐํ ๋๊ตฌ์ด๋ฉฐ ์ํธ ๋ฐฐ์ ๋ฅผ ์ํ ๋๊ธฐํ ๋๊ตฌ์ ์คํ ์์ ์ ์ด๋ฅผ ์ํ ๋๊ธฐํ ๋๊ตฌ๋ฅผ ๋ชจ๋ ๊ฐ์ถ๊ณ ์์ต๋๋ค.
์ํธ ๋ฐฐ์ ๋ฅผ ์ํ ๋๊ธฐํ ์ธก๋ฉด์์๋ ๊ณต์ ์์๊ณผ ๊ณต์ ์์์ ์ ๊ทผํ๊ธฐ ์ํ ์ธํฐํ์ด์ค๋ฅผ ๋ฌถ์ด์ ๊ด๋ฆฌํฉ๋๋ค. ๊ณต์ ์์์ ์ ๊ทผํ๊ณ ์ ํ๋ ํ๋ก์ธ์ค๋ฅผ ํ๋ฅผ ๋ง๋ค๊ณ ๋ชจ๋ํฐ ์์ ํญ์ ํ๋์ ํ๋ก์ธ์ค๋ง ๋ค์ด์ค๋๋ก ํ์ฌ ์ํธ ๋ฐฐ์ ๋ฅผ ์ํ ๋๊ธฐํ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์คํ ์์ ์ ์ด๋ฅผ ์ํ ๋๊ธฐํ๋ ์ ๊ณตํฉ๋๋ค. ํน์ ์กฐ๊ฑด์ ๋ฐํ์ผ๋ก ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ณ ์ผ์ ์ค๋จํ๊ธฐ ์ํด ๋ชจ๋ํฐ๋ ์กฐ๊ฑด ๋ณ์(condition variable)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์กฐ๊ฑด ๋ณ์๋ ํ๋ก์ธ์ค๋ ์ค๋ ๋์ ์คํ ์์๋ฅผ ์ ์ดํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํน๋ณํ ๋ณ์์ ๋๋ค.
์ํธ ๋ฐฐ์ ๋ฅผ ์ํ ํ์ ์กฐ๊ฑด ๋ณ์์ ๋ํ ํ๋ ์๋ก ๋ค๋ฅธ ํ์ ๋๋ค. ๋ชจ๋ํฐ์์๋ ์กฐ๊ฑด ๋ณ์๋ฅผ ํ์ฉํ์ฌ ํ๋ก์ธ์ค๋ ์ค๋ ๋์ ์คํ ์์๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค. ์กฐ๊ฑด ๋ณ์๋ wait๊ณผ signalํจ์๋ฅผ ์ ๊ณตํ๋ฉฐ ์ค๋น์ํ์์ ๋๊ธฐํ๊ฑฐ๋ ์คํ์ํ๋ก ์ ํํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
์ถ์ฒ: ํผ์๊ณต๋ถํ๋ ์ปดํจํฐ๊ตฌ์กฐ+์ด์์ฒด์
'์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ฐ์๋ฉ๋ชจ๋ฆฌ(Virtual Memory)์ ํ์ด์ง ๊ธฐ๋ฒ(Paging) (0) | 2023.11.07 |
---|---|
์ด์์ฒด์ ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น(Memory Allocation) (2) | 2023.11.06 |
CPU ์ค์ผ์ค๋ง ๊ฐ๋ ๊ณผ ์๊ณ ๋ฆฌ์ฆ (0) | 2023.11.05 |
ํ๋ก์ธ์ค ๊ณ์ธต ๊ตฌ์กฐ (0) | 2023.10.31 |
๋ฐ๋ชฌ(Deamon) ํ๋ก์ธ์ค๋? (0) | 2023.10.28 |
๋๊ธ