Bibi's DevLog ๐ค๐
๋ฐ๋๋ฝ์ด๋? ๋ณธ๋ฌธ
๋ฐ๋๋ฝ DeadLock
๋ฐ๋๋ฝ (๊ต์ฐฉ ์ํ) ์ด๋?
: ํ๋ก์ธ์ค๊ฐ ์์์ ์ป์ง ๋ชปํด ๋ค์ ์ฒ๋ฆฌ๋ฅผ ํ์ง ๋ชปํ๋ ์ํ.
๋ ๊ฐ ์ด์์ ์์ ์ด ์๋ก ์๋๋ฐฉ์ ์์ ์ด ๋๋๊ธฐ๋ง์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ด ๊ฒฐ๊ณผ์ ์ผ๋ก ์๋ฌด๊ฒ๋ ์๋ฃ๋์ง ๋ชปํ๋ ์ํ๋ฅผ ๋งํจ.
๋ฐ๋๋ฝ ๋ฐ์ ์ํฉ
๋ฉํฐ ํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ์์, ์์คํ ์ ์ผ๋ก ํ์ ๋ ์์์ ์ฌ๋ฌ ๊ณณ์์ ์ฌ์ฉํ๋ ค๊ณ ํ ๋ ๋ฐ์ํ๋ค.
- ์ด๋ค ํ๋ก์ธ์ค๊ฐ ์์์ ์์ฒญํ์ ๋, ๊ทธ ์๊ฐ์ ๊ทธ ์์์ ์ฌ์ฉํ ์ ์๋ ์ํฉ์ด ๋ฐ์
- ์ด๋ฐ ๊ฒฝ์ฐ ํด๋น ํ๋ก์ธ์ค๋ ๋๊ธฐ ์ํ๊ฐ ๋จ
- ๋๊ธฐ ์ํ์ ํ๋ก์ธ์ค๋ค์ด ์คํ ์ํ๋ก ๋ณ๊ฒฝ๋ ์ ์์ ๋๋ฅผ ๊ต์ฐฉ ์ํ๋ผ๊ณ ํ๋ค.
๋ฐ๋๋ฝ ๋ฐ์ ์กฐ๊ฑด
- ๊ต์ฐฉ์ํ๊ฐ ์ผ์ด๋๋ ค๋ฉด ๋ค์์ ๋ค ํ์ ์กฐ๊ฑด์ ์ถฉ์กฑ์์ผ์ผ ํ๋ค.
- ์ฆ, ์๋ ์กฐ๊ฑด ์ค ํ๋๋ผ๋ ๋ง์กฑํ์ง ์์ผ๋ฉด ๊ต์ฐฉ ์ํ๋ ๋ฐ์ํ์ง ์๋๋ค.
- ์๋ 4๊ฐ์ง ์กฐ๊ฑด์ ์๋ก ์์ ํ ๋
๋ฆฝ์ ์ธ ๊ฒ์ ์๋๋ค.
- ์๋ฅผ ๋ค์ด, 4.์ํ๋๊ธฐ๋ 2.์ ์ ๋๊ธฐ์ 3.๋น์ ์ ์กฐ๊ฑด์ ๋ง์กฑํด์ผ ์ฑ๋ฆฝํ๋ ์กฐ๊ฑด์ด๋ค.
1. ์ํธ ๋ฐฐ์ Mutual exclusion
ํ๋ก์ธ์ค๋ค์ด ํ์๋ก ํ๋ ์์์ ๋ํด ๋ฐฐํ์ ์ธ ํต์ ๊ถ์ ์๊ตฌํ๋ค.
์ฆ, ์์์ ํ ๋ฒ์ ํ ํ๋ก์ธ์ค๋ง ์ฌ์ฉํ ์ ์๋ค.
2. ์ ์ ๋๊ธฐ Hold and Wait
ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ ์์์ ๊ฐ์ง ์ํ์์ ๋ค๋ฅธ ์์์ ๊ธฐ๋ค๋ฆฐ๋ค.
์ต์ํ ํ๋์ ์์์ ์ ์ ํ๊ณ ์์ผ๋ฉด์, ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋์ด ์ฌ์ฉ๋๊ณ ์๋ ์์์ ์ถ๊ฐ๋ก ์ ์ ํ๊ธฐ ์ํด ๋๊ธฐํ๋ ํ๋ก์ธ์ค๊ฐ ์์ด์ผ ํ๋ค.
3. ๋น์ ์ No Preemption
ํ๋ก์ธ์ค๊ฐ ์ด๋ค ์์์ ์ฌ์ฉ์ ๋๋ผ ๋๊น์ง ๊ทธ ์์์ ๋บ์ ์ ์๋ค.
์ฆ, ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋ ์์์ ์ฌ์ฉ์ด ๋๋ ๋๊น์ง ๊ฐ์ ๋ก ๋นผ์์ ์ ์๋ค.
4. ์ํ ๋๊ธฐ Circular Wait
๊ฐ ํ๋ก์ธ์ค๋ ์ํ์ ์ผ๋ก ๋ค์ ํ๋ก์ธ์ค๊ฐ ์๊ตฌํ๋ ์์์ ๊ฐ์ง๊ณ ์๋ค.
ํ๋ก์ธ์ค์ ์งํฉ P1, P2, P3 ... Pn์์ P1์ P2๊ฐ ์ ์ ํ ์์์ ๋๊ธฐํ๊ณ , P2๋ P3์ด ์ ์ ํ ์์์ ๋๊ธฐํ๊ณ , ... Pn-1์ Pn์ด ์ ์ ํ ์์์ ๋๊ธฐํ๊ณ , Pn์ P1์ด ์ ์ ํ ์์์ ์๊ตฌํด์ผ ํ๋ค.
๋ฐ๋๋ฝ ๊ด๋ฆฌ
ํ์ฌ ๋๋ถ๋ถ์ ์ด์ ์ฒด์ ๋ค์ ๊ต์ฐฉ ์ํ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
๋์ ์ฃผ๋ก ์ 4๊ฐ์ง ์กฐ๊ฑด ์ค ํ๋๋ฅผ ๋ง์์ผ๋ก์จ ๋ฐ๋๋ฝ์ ์๋ฐฉํ๋ค.
๋ฐ๋๋ฝ์ ์๋ฐฉ
- ์ํธ ๋ฐฐ์ , ์ ์ ๋๊ธฐ, ๋น์ ์ , ์ํ ๋๊ธฐ ์กฐ๊ฑด์ ์ ๊ฑฐํจ์ผ๋ก์จ ๋ฐ๋๋ฝ์ ์๋ฐฉํ๋ค.
- ์ํธ๋ฐฐ์ ๋ถ์ : ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ์์์ ์ฌ์ฉํ ์ ์๊ฒ ํจ
- ์ ์ ๋๊ธฐ ๋ถ์ : ํ๋ก์ธ์ค ์คํ ์ ํ์ํ ๋ชจ๋ ์์์ ํ ๋นํจ
- ๋น์ ์ ๋ถ์ : ์์์ ์ ์ ํ๋ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ์์์ ์๊ตฌํ ๋ ์ ์ ํ๋ ์์์ ๋ฐ๋ฉํ๊ณ , ์๊ตฌํ ์์์ ์ฌ์ฉํ๊ธฐ ์ํด ๊ธฐ๋ค๋ฆฌ๋๋ก ํจ
- ์ํ๋๊ธฐ ๋ถ์ : ์์์ ๊ณ ์ ๋ฒํธ๋ฅผ ํ ๋นํ๊ณ , ๋ฒํธ ์์๋๋ก ์์์ ์๊ตฌํ๋๋ก ํจ
- ๋จ์ : ์์ ๋ญ๋น๊ฐ ์ฌํ๊ณ , ๋น์ฉ์ด ๋ง์ด ๋ ๋ค.
๋ฐ๋๋ฝ์ ํํผ
- ์์์ด ์ด๋ป๊ฒ ์์ฒญ๋ ์ง์ ๋ํ ์ถ๊ฐ์ ๋ณด๋ฅผ ์ ๊ณตํ๋๋ก ์๊ตฌํ๋ ๊ฒ. ์ํ๋๊ธฐ๊ฐ ๋ฐ์ํ์ง ์๋๋ก ์์ ํ ๋น ์ํ๋ฅผ ๊ฒ์ฌํ๋ค.
- ์์ ํ ๋น ๊ทธ๋ํ ์๊ณ ๋ฆฌ์ฆ
- ์ํ์ ์๊ณจ์ฆ
๋ฐ๋๋ฝ์ ๋ฌด์
- ์๋ฐฉ, ํํผ๊ธฐ๋ฒ์ ํ๋ก๊ทธ๋จ์ ๋ฃ์ผ๋ฉด ์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ฏธ์น ์ ์๋ค. ๋ฐ๋ผ์ ๋ฐ๋๋ฝ์ ๋ฐ์ ํ๋ฅ ์ด ๋น๊ต์ ๋ฎ์ ๊ฒฝ์ฐ ์ด๋ฅผ ๋ฌด์ํ๊ณ ํน๋ณํ ์กฐ์น๋ฅผ ์ทจํ์ง ์๋๋ค.
๋ฐ๋๋ฝ์ ๋ฐ๊ฒฌ
๊ฐ์/๋ฐ๊ฒฌ์ ํ๋ detection ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ฐ๋๋ฝ ๋ฐ์์ ์ฒดํฌํ๋ ๋ฐฉ์.
๋จ์ : ์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ฏธ์น ์ ์๋ค.
์ถ์ฒ : ์ํค๋ฐฑ๊ณผ, [๋ธ๋ก๊ทธ](
'๐ฅ BE ๋ฐฑ์๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ์ ์น, ๋์ ์น, MVC ์น ํ๋ ์์ํฌ (0) | 2021.03.12 |
---|---|
[ํ ํ๋ฆฟ ์์ง] handlebars , handlebars๋ก HTML ํ์ผ ๋๋๊ธฐ (์ค๋ณต์ ๊ฑฐ) (0) | 2021.03.11 |
[ํ ํ๋ฆฟ ์์ง] mustache ๊ธฐ๋ณธ ๋ฌธ๋ฒ (0) | 2021.03.09 |
๋ชจ๋์ด๋? (0) | 2021.02.16 |
ํ์ผ ๋์ ๊ฐํ์ ์ถ๊ฐํด์ผ ํ๋ ์ด์ (0) | 2021.02.15 |