๋๊ธฐํ๋
๋์๋ค๋ฐ์ ์ผ๋ก ์คํ๋๋ ํ๋ก์ธ์ค๋ค์ ๊ณต๋์ ๋ชฉ์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ํํ๊ธฐ ์ํด ์๋ก ํ๋ ฅํ๋ฉฐ ์ํฅ์ ์ฃผ๊ณ ๋ฐ๋๋ค. ์ด๋ ๊ฒ ํ๋ ฅํ์ฌ ์คํ๋๋ ํ๋ก์ธ์ค๋ค์ ์ผ๊ด์ฑ์ ๋ณด์ฅํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ ๋๊ธฐํ ๋์ด์ผ ํ๋ค.
๋๊ธฐํ์ ์๋ฏธ
- ํ๋ก์ธ์ค ๋๊ธฐํ
ํ๋ก์ธ์ค๋ค ์ฌ์ด์ ์ํ ์๊ธฐ๋ฅผ ๋ง์ถ๋ ๊ฒ
- ์คํ ์์ ์ ์ด: ํ๋ก์ธ์ค๋ฅผ ์ฌ๋ฐ๋ฅธ ์์๋๋ก ์คํํ๊ธฐ
- ์ํธ ๋ฐฐ์ : ๋์์ ์ ๊ทผํด์๋ ์ ๋๋ ์์์ ํ๋์ ํ๋ก์ธ์ค๋ง ์ ๊ทผํ๊ฒ ํ๊ธฐ
์คํ ์์ ์ ์ด
Reader ์ Writer ๋ผ๋ ๋์ข ๋ฅ์ ํ๋ก์ธ์ค๊ฐ ์๋ค๊ณ ๊ฐ์ ํ ๋ ๊ฐ์ ์ ์ฅํ๋ Writer๋ผ๋ ํ๋ก์ธ์ค๊ฐ ๋๋์ผ์ง๋ง Readerํ๋ก์ธ์ค๊ฐ ์คํ ํ ์ ์๋ค.(๊ฐ์ด ์กด์ฌ ํด์ผ ์ฝ์ ์ ์๊ธฐ ๋๋ฌธ์) ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์คํ ์์๊ฐ ์ค์ํ๋ฉฐ, ์ด๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์คํํ๋ ๊ฒ์ด ์คํ ์์ ์ ์ด ์ด๋ค.
์ํธ ๋ฐฐ์
10๋ง์์ด ์๋ ํต์ฅ์ 2๋ง์๊ณผ 5๋ง์์ ์ ๊ธ ํ๋ค๊ณ ๊ฐ์ ํ์๋, 2๋ง์์ ๋จผ์ ์ ๊ธํ๊ณ ์ด ๊ณผ์ ์ด ๋๋๊ธฐ ์ ์ 5๋ง์์ ์ ๊ธํ๋ฉด ์์ก์ด 10๋ง์(2๋ง์ ์ ๊ธ์ ์ ์ฐ ์ฒ๋ฆฌ๊ฐ ๋๊ธฐ ์ ์ด๊ธฐ ๋๋ฌธ์)์ผ๋ ์ ๊ธํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ต์ข ์์ก์ 15๋ง์์ด ๋ ์ ์๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ๋ฅผ ๋ง๊ธฐ ์ํด ํ๋์ ์์์ ๋์์ ์ ๊ทผ์ ๋ชปํ๊ฒ ํ๋ ๊ฒ์ด๊ณ , ์ด๋ฅผ ์ํธ ๋ฐฐ์ ๋ผ๊ณ ํ๋ค.
๊ณต์ ์์๊ณผ ์๊ณ ๊ตฌ์ญ
- ๊ณต์ ์์
๋๊ฐ ์ด์์ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ํ๋ ์์์ ๋งํ๋ค. (ex. ์ ์ญ๋ณ์)
- ์๊ณ๊ตฌ์ญ
๋์์ ์คํํ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ์์์ ์ ๊ทผํ๋ ์ฝ๋ ์์ญ
- ๋ ์ด์ค ์ปจ๋์
๋์ ๋ค๋ฐ์ ์ผ๋ก ์๊ณ ๊ตฌ์ญ์ ์ฝ๋๋ฅผ ์คํํ์ฌ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ
์ด์์ฒด์ ๋ ์๊ณ ๊ตฌ์ญ ๋ฌธ์ ๋ฅผ ์๋ ์ธ ๊ฐ์ง ์์น ํ์ ํด๊ฒฐํ๋ค.
- ์ํธ ๋ฐฐ์ : ํ ํ๋ก์ธ์ค๊ฐ ์๊ณ ๊ตฌ์ญ์ ์ง์
ํ๋ค๋ฉด ๋ค๋ฅธ ํ๋ก์ธ์ค๋ ์๊ณ ๊ตฌ์ญ์ ๋ค์ด ์ฌ ์ ์๋ค
- ์งํ: ์๊ณ ๊ตฌ์ญ์ ์ด๋ค ํ๋ก์ธ์ค๋ ์ง์
ํ์ง ์์๋ค๋ฉด ์๊ณ ๊ตฌ์ญ์ ์ง์
ํ๊ณ ์ ํ๋ ํ๋ก์ธ์ค๋ ๋ค์ด๊ฐ ์ ์์ด์ผ ํ๋ค.
- ์ ํ ๋๊ธฐ: ํ ํ๋ก์ธ์ค๊ฐ ์๊ณ ๊ตฌ์ญ์ ์ง์
ํ๊ณ ์ถ๋ค๋ฉด ๊ทธ ํ๋ก์ธ์จ ์ธ์ ๊ฐ๋ ์๊ณ ๊ตฌ์ญ์ ๋ค์ด ์ฌ ์ ์์ด์ผ ํ๋ค.(๋ฌดํ์ ๋๊ธฐํด์๋ ์ ๋๋ค.)
๋๊ธฐํ ๊ธฐ๋ฒ
๋ฎคํ ์ค ๋ฝ
ํ์์ค์ ์๋ฌผ์ ๊ฐ ์ ๊ฒจ ์๋ค๋ฉด ํ์์ค์ ์ฌ๋์ด ์๋ค๋ ๊ฒ๊ณผ ๊ฐ๋ค. ์ด์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ณต์ ์์์ ๋ฎคํ ์ค ๋ฝ์ ์ฌ์ฉํ์ฌ ํ๋์ ํ๋ก์ธ์ค๊ฐ ์๊ณ๊ตฌ์ญ์ ์์์ ์๋ ค์ค ์ ์๋ค.
๋ฎคํ ์ค ๋ฝ์ ๋งค์ฐ ๋จ์ํ ํํ๋ ํ๋์ ์ ์ญ ๋ณ์์ ๋ ๊ฐ์ ํจ์๋ก ๊ตฌํํ ์ ์๋ค.
- ์๋ฌผ์ ์ญํ : ํ๋ก์ธ์ค๋ค์ด ๊ณต์ ํ๋ ์ ์ญ ๋ณ์ lock
- ์๊ณ ๊ตฌ์ญ์ ์ ๊ทธ๋ ์ญํ : acquire ํจ์
- ์๊ฒ ๊ตฌ์ญ์ ์ ๊ธ์ ํด์ ํ๋ ์ญํ : release ํจ์
acquire ํจ์
ํ๋ก์ธ์ค๊ฐ ์๊ณ ๊ตฌ์ญ์ ์ง์ ํ๊ธฐ ์ ์ ํธ์ถํ๋ ํจ์์ด๋ค. ์๊ณ๊ตฌ์ญ์ด ์ ๊ฒจ ์๋ค๋ฉด ๊ตฌ์ญ์ด ์ด๋ฆด ๋๊น์ง ์๊ณ ๊ตฌ์ญ์ ๋ฐ๋ณต์ ์ผ๋ก ํ์ธํ๊ณ , ์๊ณ ๊ตฌ์ญ์ด ์ด๋ ค ์๋ค๋ฉด ์๊ณ ๊ตฌ์ญ์ ์ ๊ทธ๋ ํจ์์ด๋ค.
release ํจ์
์๊ณ ๊ตฌ์ญ์์์ ์์ ์ด ๋๋๊ณ ํธ์ถํ๋ ํจ์์ด๋ค. ํ์ฌ ์ ๊ธด ์๊ณ ๊ตฌ์ญ์ ์ด์ด์ฃผ๋ ํจ์์ด๋ค.
์ธ๋งํฌ
๋ฎคํ ์ค ๋ฝ์ ๊ณต์ ์์์ด ํ๋๋ผ๋ ๊ฐ์ ํ์ ๋ง๋ ๋๊ธฐํ ๋๊ตฌ์ธ ๋ฐ๋ฉด ์ธ๋ง ํฌ๋ ๊ณต์ ์์์ด ์ฌ๋ฌ ๊ฐ ์๋ ์ํฉ์์๋ ์ ์ฉ์ด ๊ฐ๋ฅํ ๋๊ธฐํ ๋๊ตฌ์ด๋ค.
์ธ๋งํฌ๋ ๋ฎคํ ์ค ๋ฝ๊ณผ ๋น์ทํ๊ฒ ํ๋์ ๋ณ์์ ๋๊ฐ์ ํจ์๋ก ๋จ์ํ๊ฒ ๊ตฌํํ ์ ์๋ค.
- ์๊ณ ๊ตฌ์ญ์ ์ง์ ํ ์ ์๋ ํ๋ก์ธ์ค์ ๊ฐ์๋ฅผ ํ๋๋ด๋ ์ ์ญ ๋ณ์ S
- ์๊ณ ๊ตฌ์ญ์ ๋ค์ด๊ฐ๋ ์ข์์ง, ๊ธฐ๋ค๋ ค์ผ ํ ์ง๋ฅผ ์๋ ค์ฃผ๋ wait ํจ์
- ์๊ณ ๊ตฌ์ญ ์์์ ๊ธฐ๋ค๋ฆฌ๋ ํ๋ก์ธ์ค์ '์ด์ ๊ฐ๋ ์ข๋ค'๊ณ ์ ํธ๋ฅผ ์ฃผ๋ signal ํจ์
๋ชจ๋ํฐ
๊ณต์ ์์๊ณผ ๊ณต์ ์์์ ์ ๊ทผํ๊ธฐ ์ํ ์ ๊ธํ๊ธฐ ์ํ ์ธํฐํ์ด์ค๋ฅผ ๋ฌถ์ด์ ๊ด๋ฆฌํ๋ค. ํ๋ก์ธ์ค๋ ๋ฐ๋์ ์ธํฐํ์ด์ค๋ฅผ ํตํด์๋ง ๊ณต์ ์์์ ์ ๊ทผํ๋๋ก ํ๋ค.
์ด๋ฅผ ์ํด ๋ชจ๋ํฐ๋ฅผ ํตํด ๊ณต์ ์์์ ์ ๊ทผํ๊ณ ์ ํ๋ ํ๋ก์ธ์ค๋ฅผ ํ์ ์ฝ์ ํ๊ณ , ํ์ ์ฝ์ ๋ ์์๋๋ก ํ๋์ฉ ๊ณต์ ์์์ ์ด์ฉํ๋๋ก ํ๋ค.
์ถ์ฒ: ํผ์ ๊ณต๋ถํ๋ ์ปดํจํฐ ๊ตฌ์กฐ+์ด์์ฒด์ , ๊ฐ๋ฏผ์ฒ ์ง์
'๐ฅ CS > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ด์์ฒด์ Day10 (CPU ์ค์ผ์ค๋ง) (0) | 2022.12.26 |
---|---|
์ด์์ฒด์ Day9 (ํ๋ก์ธ์ค์ ์ค๋ ๋) (0) | 2022.12.26 |
์ด์์ฒด์ Day8 (์ ์ถ๋ ฅ์ฅ์น) (0) | 2022.12.05 |
์ด์์ฒด์ Day7 (๋ณด์กฐ ๊ธฐ์ต์ฅ์น) (0) | 2022.11.29 |
์ด์์ฒด์ Day6 (๋ฉ๋ชจ๋ฆฌ์ ์บ์ ๋ฉ๋ชจ๋ฆฌ) (0) | 2022.11.21 |