728x90
๋์๋ค๋ฐ์ ์ผ๋ก ์คํ๋๋ ํ๋ก์ธ์ค๋ค์ ์๋ก ํ๋ ฅํ๋ฉฐ ์ํฅ์ ์ฃผ๊ณ ๋ฐ๋๋ค
์ด ๊ณผ์ ์์ ์์์ ์ผ๊ด์ฑ์ ๋ณด์ฅํด์ผ ํ๋ค. → ํ๋ก์ธ์ค๋ค์ ๋๊ธฐํ๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ค
1. ํ๋ก์ธ์ค ๋๊ธฐํ์ ์๋ฏธ
- ํ๋ก์ธ์ค๋ค์ ์ํ ์๊ธฐ๋ฅผ ๋ง์ถ๋ ๊ฒ
- ํฌ๊ฒ ๋๊ฐ์ง๋ฅผ ์๋ฏธํจ
- ์คํ ์์ ์ ์ด๋ฅผ ์ํ ๋๊ธฐํ: ํ๋ก์ธ์ค๋ฅผ ์ฌ๋ฐ๋ฅธ ์์๋๋ก ์คํํ๊ธฐ
- ์ํธ ๋ฐฐ์ ๋ฅผ ์ํ ๋๊ธฐํ: ๋์์ ์ ๊ทผํด์๋ ์๋๋ ์์์ ํ๋์ ํ๋ก์ธ์ค๋ง ์ ๊ทผํ๊ฒ ํ๊ธฐ
- (์คํ์ ๋ฌธ๋งฅ์ ๊ฐ๋ ๋ชจ๋ ๋์์ ๋๊ธฐํ ๋์์ด๊ธฐ์ ์ค๋ ๋๋ ๋๊ธฐํ ๋์์ ๋๋ค)
- ๊ณต๋์ ๋ชฉ์ ์ ์ํด ๋์์ ์ํ๋๋ ํ๋ก์ธ์ค
- ex) ์๋ ํ๋ก์ธ์ ํ๋ก๊ทธ๋จ
- ๋ง์ถค๋ฒ ๊ฒ์ฌ ํ๋ก์ธ์ค
- ์ ๋ ฅ ๋ด์ฉ์ ํ๋ฉด์ ์ถ๋ ฅํ๋ ํ๋ก์ธ์ค
- A. No. ์ฌ๋ฐ๋ฅธ ์ํ์ ์ํด ํ๋ก์ธ์ค๋ค์ ๋๊ธฐํ๋์ด์ผ ํ๋ค
- ex) ์๋ ํ๋ก์ธ์ ํ๋ก๊ทธ๋จ
2. ์คํ ์์ ์ ์ด๋ฅผ ์ํ ๋๊ธฐํ
: ๋์๋ค๋ฐ์ ์ผ๋ก ์คํ๋๋ ๋ ๊ฐ ์ด์์ ํ๋ก์ธ์ค๊ฐ ์์ ๋ ์คํ ์์๋ฅผ ์ ์ดํ๋๋ก ๋๊ธฐํ๋ฅผ ํด์ฃผ๋ ๊ฒ
- reader writer problem
- Writer: Book.txt ํ์ผ์ ๊ฐ์ ์ ์ฅํ๋ ํ๋ก์ธ์ค
- Reader: Book.txt ํ์ผ์ ์ ์ฅ๋ ๊ฐ์ ์ฝ์ด๋ค์ด๋ ํ๋ก์ธ์ค
- Reader์ Writer ํ๋ก์ธ์ค๋ ๋ฌด์์ ์๋ฌด๋ ๊ฒ๋ ์คํ๋์ด์ ์๋๋ค. ์คํ์ ์์๊ฐ ์๊ธฐ ๋๋ฌธ
- Reader ํ๋ก์ธ์ค๋ ‘Book.txt’ ์์ ๊ฐ์ด ์กด์ฌํ๋ค’๋ ํน์ ์กฐ๊ฑด์ด ๋ง์กฑ๋์ด์ผ๋ง ์คํ ๊ฐ๋ฅ
3. ์ํธ ๋ฐฐ์ ๋ฅผ ์ํ ๋๊ธฐํ
- ๊ณต์ ๊ฐ ๋ถ๊ฐ๋ฅํ ์์์ ๋์ ์ฌ์ฉ์ ํผํ๊ธฐ ์ํ ๋๊ธฐํ
- ํ ๋ฒ์ ํ๋์ ํ๋ก์ธ์ค๋ง ์ ๊ทผํด์ผ ํ๋ ์์์ ๋์ ์ ๊ทผ์ ํผํ๊ธฐ ์ํ ๋๊ธฐํ
- Bank account problem
- ํ์ฌ ๊ณ์ข์ ์์ก์ด 10๋ง์ ์๋ค.
- ํ๋ก์ธ์คA๋ ํ์ฌ ์์ก์ 2๋ง์์ ์ถ๊ฐํ๋ ํ๋ก์ธ์ค, ํ๋ก์ธ์ค B๋ ํ์ฌ ์์ก์ 5๋ง์์ ์ถ๊ฐํ๋ ํ๋ก์ธ์ค์ผ ๋ A์ B๋ฅผ ๋์์ ์คํํ๋ฉด? ๋น์ฐํ ๊ณ์ข์ 17๋ง์์ด ๋จ์๊น?
- 17๋ง์์ด ์๋ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋ค
- A์ B์ฌ์ด์ ๋ฌธ๋งฅ๊ตํ์ด ์ผ์ด๋๋ฉด์ A์ ํ๋ก์ธ์ค๊ฐ ๋ง๋ฌด๋ฆฌ ๋์ง ์์ ์์ก์ด 10์ผ๋ B๊ฐ 10์ 5๋ฅผ ๋ํ๊ณ ํ๋ก์ธ์ค๊ฐ ๋๋ ํ์, A๊ฐ ๋ค์ ์งํ๋๋ฉด ๊ธฐ์กด์ ์ฝ์ด๋ค์ธ ์์ก์ธ 10๋ง์์ 2๋ง์์ ๋ํ๊ฒ ๋ ์ ์์.
- Producer & Comsumer problem
- ๋ฌผ๊ฑด์ ๊ณ์ํด์ ์์ํ๋ ์์ฐ์์ ๋ฌผ๊ฑด์ ๊ณ์ํด์ ์๋นํ๋ ์๋น์๊ฐ ‘์ดํฉ’ ๋ณ์๋ฅผ ๊ณต์ ํ ๊ฒฝ์ฐ→ ๋๊ธฐํ๊ฐ ๋์ง ์์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ ๋ฌธ์
- → ๋์์ ์ ๊ทผํด์๋ ์๋๋ ์์(์ดํฉ)์ ๋์์ ์ ๊ทผํด์ ๋ฐ์ํ ๋ฌธ์
- ์์ฐ์๋ฅผ 100000๋ฒ, ์๋น์๋ฅผ 100000๋ฒ ์คํํ๋ฉด ‘์ดํฉ’์?
4.๊ณต์ ์์๊ณผ ์๊ณ ๊ตฌ์ญ
- ๊ณต์ ์์: ์ฌ๋ฌ ํ๋ก์ธ์ค ํน์ ์ค๋ ๋๊ฐ ๊ณต์ ํ๋ ์์
- ์ ์ญ ๋ณ์, ํ์ผ, ์ ์ถ๋ ฅ์ฅ์น, ๋ณด์กฐ๊ธฐ์ต ์ฅ์น, … - ์๊ณ ๊ตฌ์ญ: ๋์์ ์คํํ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ์์์ ์ ๊ทผํ๋ ์ฝ๋ ์์ญ
- ์์ ์์์ ‘์ดํฉ’ ๋ณ์, ‘์์ก’ ๋ณ์, … - ์๊ณ ๊ตฌ์ญ์ ๋์์ ์ ๊ทผํ๋ฉด ์์์ ์ผ๊ด์ฑ์ด ๊นจ์ง ์ ์๋ค. ์ด๋ฅผ ๋ ์ด์ค ์ปจ๋์ (race condition)์ด๋ผ๊ณ ํ๋ค
5. ์ด์์ฒด์ ๊ฐ ์๊ณ ๊ตฌ์ญ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ธ ๊ฐ์ง ์์น (์ํธ ๋ฐฐ์ ๋ฅผ ์ํ ๋๊ธฐํ๋ฅผ ์ํ ์ธ ๊ฐ์ง ์์น)
- ์ํธ ๋ฐฐ์ mutual exclution: ํ ํ๋ก์ธ์ค๊ฐ ์๊ณ ๊ตฌ์ญ์ ์ง์ ํ๋ค๋ฉด ๋ค๋ฅธ ํ๋ก์ธ์ค๋ ๋ค์ด์ฌ ์ ์๋ค
- ์งํ progress: ์๊ณ ๊ตฌ์ญ์ ์ด๋ค ํ๋ก์ธ์ค๋ ์ง์ ํ์ง ์์๋ค๋ฉด ์ง์ ํ๊ณ ์ ํ๋ ํ๋ก์ธ์ค๋ ๋ค์ด๊ฐ ์ ์์ด์ผ ํ๋ค
- ์ ํ ๋๊ธฐ bounded waiting: ํ ํ๋ก์ธ์ค๊ฐ ์๊ณ ๊ตฌ์ญ์ ์ง์ ํ๊ณ ์ถ๋ค๋ฉด ์ธ์ ๊ฐ๋ ์๊ณ ๊ตฌ์ญ์ ๋ค์ด์ฌ ์ ์์ด์ผ ํ๋ค(์๊ณ ๊ตฌ์ญ์ ๋ค์ด์ค๊ธฐ ์ํด ๋ฌดํ์ ๋๊ธฐํด์๋ ์ ๋๋ค)
ใํผ์ ๊ณต๋ถํ๋ ์ปดํจํฐ ๊ตฌ์กฐ+์ด์์ฒด์ ใ ๊ฐ์ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋ ๊ธ์ ๋๋ค
728x90