1. ๋ฉ๋ฐํ ๋ฆฌ
1.1 ๋์๋ฐฉ์
์ฒ ํ์ ๊ณผ์ ๋ philoํ๋ก์ธ์ค ๋ด๋ถ์ ์ฌ๋ฌ๊ฐ์ ์ฒ ํ์ ์ค๋ ๋๋ค์ ์์ฑํ์ฌ ์์กด์ํค๋ ๊ณผ์ ์ด๋ค. ํด๋น๊ณผ์ ์์ ๋ฉ์ธ์ค๋ ๋์ ์ญํ ๊ณผ ๋๋จธ์ง ์ฒ ํ์ ์ค๋ ๋๋ค์ ์ญํ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋ฉ์ธ์ค๋ ๋๋ die์ฌ๋ถ, full(์์์ ๋ค ๋จน์)์ํ๋ฅผ ๋ฐ์๋๊ธฐ๋ฅผ ํตํด ํ์ธํ๋ ์ญํ ์ ํ๋ค.
is_die
๋ฐ์ดํฐ๋ฅผwrite
ํ๋ค. - ์ถ๊ฐ : ์ค์ผ์ค๋ฌ์์๋ restrict๋ฎคํ ์ค๋ก ์ด๋ค ์ฒ ํ์๊ฐ ํฌํฌ๋ฅผ ์์์ ๋ค์ง ์ ํ๊ณ , eat ๋ฎคํ ์ค๋ฅผ ํตํด ์์ฌ๋ฅผ ์์ํ๋์ง ํ์ธํ๋ค.
- ์ฒ ํ์ ์ค๋ ๋๋ค์ ๋ฃจํด(๋ฐฅ์๊ฐ์๊ธฐโฆ)์ ์คํํ๋ค. ๋ฐฅ์ ๋จน๊ณ
philo๋ฐฐ์ด
์์ ์๊ธฐ ์ธ๋ฑ์ค์die์์ ์๊ฐ
,full์ฌ๋ถ
๋ฅผ ๊ฐฑ์ (write
)ํ๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก์ธ์ค๋ด ์ค๋ ๋๋ค์ ๋ฉ๋ชจ๋ฆฌ์์ stack์ ๋๋ง ๊ฐ์์ ๊ณต๊ฐ์ ๊ฐ์ง๊ณ ์๊ณ , heap, code๊ณต๊ฐ ๋ฑ์ ๊ณต์ ํ๋ค. ์ด๋ฌํ heap์ ํน์ฑ์ ์ด์ฉํด ๋ฎคํ ์ค๋ฅผ ์ต์ํํ๊ธฐ ์ํด ์๋์ ๊ฐ์ด heap์์ญ์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ์๋ค.
- ๋ฉ์ธ ์ค๋ ๋๋ง
is_die
๋ฅผ ์์ ํ๊ณ , ์ฒ ํ์ ์ค๋ ๋๋ค์ ์ฝ๊ธฐ๋งํ๋ค. - ์ฒ ํ์ ์ค๋ ๋๋ค์
philo๋ฐฐ์ด
์์ ๊ฐ์์ ์ธ๋ฑ์ค์ ๋ฐ์ดํฐ๋ง ์์ ํ๊ณ , ๋ฉ์ธ์ค๋ ๋๋ ์ฝ๊ธฐ๋งํ๋ค.
์ถ๊ฐ์ ์ผ๋ก, printf
ํ์ฌ ์ถ๋ ฅํ ๋, ์ถ๋ ฅ ๋์ค ๋ค๋ฅธ ์ค๋ ๋๋ก ๋์ด๊ฐ์ ํ
์คํธ๊ฐ ์์ด๋ ํ์์ด ๊ฐํน ๋ฐ์ํ๋ค. ๋ฐ๋ผ์ announce
๋ผ๋ ๋ณ๋์ ๋ฎคํ
์ค๋ฅผ ๋ง๋ค์ด mutex_lock(announce)
๋ฅผ ํต๊ณผํ ์ค๋ ๋๋ง ์ถ๋ ฅํ ์ ์๊ฒ(ํ๋ฒ์ ํ๋์ฉ) ํ์๋ค.
1.2 ๊ต์ฐฉ ํํผ
1.2.1 ๊ต์ฐฉ์ํ(๋ฐ๋๋ฝ) ์กฐ๊ฑด๊ณผ ๋์๋ฒ
๊ต์ฐฉ์ํ๋ ๊ฐ ๋ฉํฐ ์ค๋ ๋/ํ๋ก์ธ์ค ํ๊ฒฝ์์ ๋ค์๊ณผ ๊ฐ์ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑ์ ๋ฐ์ํ๋ค.
- ์ํธ๋ฐฐ์ : (๊ต์ฐฉ์ ์ ๋ฐํ๋)์์์ด ๋ฐฐํ์ ์ด์ฌ์ํ๋ค.
- ๋น์ ์ : ์ ์ ํ ์์์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ๋บ์์ ์๋ค.
- ์ ์ ์ ๋๊ธฐ : ์์์ ์ ์ ๋ฐ๊ณ , ๋ค๋ฅธ์์์ ๋๊ธฐํ๊ณ ์๋ ์ํ์ฌ์ผ ํ๋ค.
- ์ํ๋๊ธฐ : ์ ์ ๋ฐ ๋๊ธฐํ๋ ํ๋ก์ธ์ค๋ค์ ๊ด๊ณ๊ฐ ์์ ์ด๋ฃจ์ด์ผ ํ๋ค.
์ด๋ฅผ ํด๋น๊ณผ์ ์ ์ ์ฉ์์ผ๋ณด๋ฉด, ๋ชจ๋ ์ฒ ํ์๊ฐ ์์ ์ ์ผ์ชฝ ํฌํฌ๋ง ๋ค๊ณ ์ค๋ฅธ์ชฝ ํฌํฌ๋ฅผ ๋๊ธฐํ๊ณ ์๋ ์ํ์ด๋ค. ์ด ์ํ๋ฅผ ๊ต์ฐฉ์ํ ํ์์กฐ๊ฑด์ ํ์ ํ๋ฉด ํฌํฌ๋ ๋๊ฐ ์ง์ผ๋ฉด ์ง์์์๊ณ (์ํธ๋ฐฐ์ ), ๋บ์์ ์๋(๋น์ ์ ) ํน์ง์ ์ง๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ์ผ์ชฝํฌํฌ๋ฅผ ๋ค๊ณ ์ค๋ฅธ์ชฝํฌํฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ผ๋ฉฐ(์ ์ ์ ๋๊ธฐ), ๊ธฐ๋ค๋ฆฌ๋ ์ค๋ฅธ์ชฝ ํฌํฌ๋ ์ค๋ฅธ์ชฝ ์ฒ ํ์๊ฐ ๋ ์ผ์ชฝํฌํฌ์ด๋ค(์ํ๋๊ธฐ).
์์๊ฐ์ ๊ต์ฐฉ์ํ์ ๋์ํ๊ธฐ ์ํด์ ์ผ๋ฐ์ ์ผ๋ก ๊ต์ฐฉ์ํ ์/ํํผ/๊ฒ์ถ ๋ฐ ํ๋ณต 3๊ฐ์ง ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค.
- ๊ต์ฐฉ์ํ ์๋ฐฉ : ์์ ๊ต์ฐฉ์ํ ํ์์กฐ๊ฑด 4๊ฐ์ง์ค ํ๋๋ฅผ ๋ฌดํจํ ํ๋ ๋ฐฉ์.
- ์ฅ์ : ๊ตฌํ์ด ์ฌ์ดํธ์ด๋ค.
- ๋จ์ : ๋ฐฉ๋ฒ์ ํ๋ก์ธ์ค๋ ์ค๋ ๋๊ฐ ์์ฐ์ค๋ฝ๊ฒ ๋์ํ์ง ์๊ณ ์์์ด ๋ญ๋น๋์ด ๋์ด ์ ์ฌ์ฉ๋์ง ์๋๋ค.
- ๊ณผ์ ์ ์ ์ฉ : ์ฐ์ ์ํธ๋ฐฐ์ , ๋น์ ์ ์ ๋ฌธ์ ํน์ฑ์ ๋ฌดํจํํ ์ ์๋ค. ์ ์ ์ ๋๊ธฐ๋ฅผ ๋ฌดํจํํ๋ ๋ฐฉ๋ฒ์ ํ๋ฒ์ ๋ ํฌํฌ๋ฅผ ์ง์์ ์์๋๋ง ์ง๊ฒํ์ฌ ๋ฌดํจํํ ์ ์๋ค. ํ์ง๋ง ํฌํฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ์ง ๋ชปํ๊ฒ ๋์ด ์ฒ ํ์๊ฐ ๊ตถ์ด์ฃฝ๋๋ค. ์ํ๋๊ธฐ ๋ฌดํจํ๊ฐ ๊ฐ์ฅ ์ ํฉํ ์๋ฐฉ๋ฒ์ด๋ค. ํ๋์ ์ฒ ํ์๋ง ์ผ-์ค ์์๋ก ํฌํฌ๋ฅผ ์ก๊ณ ๋๋จธ์ง๋ ์ค-์ผ ์์๋ก ์ก๊ฒ ํ๋ค. ํ์ง๋ง ๋ถ์์ฐ์ค๋ฌ์ด ์์ ํ ๋น ๋ฐฉ์์ด๋ค.
- ๊ต์ฐฉ์ํ ํํผ : ์์์ ์ด๋ป๊ฒ ์์ฒญํ ์ง ์๊ตฌํ๊ณ , ๊ทธ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์์์ ์ ์ ํ๊ฒ ๋ถ๋ฐฐํ์ฌ ๊ต์ฐฉ์ํ๋ฅผ ์๋ฐฉํ๋ ๊ธฐ๋ฒ์ด๋ค.
- ์ฅ์ : ์๋ฐฉ ๋ฐฉ์์ ๋นํด ์์ ์ฌ์ฉ์ด ๋ ํจ์จ์ ์ด๋ค.
- ๋จ์ : ๊ฐ ์ ์ ์ํ๋ฅผ ํ์ ํ๊ณ , ํ์์ ์ด๋ฅผ ์ค์ง ๋ง์ง ์ ํํด์ผ ํ๋ค. ์ฆ ๊ฐ ํ๋ก์ธ์ค/์ค๋ ๋๊ฐ ์ธ์ ์ด๋ค ์์์ ์๊ตฌํ ์ง ์ ํํ ์์์ผํ๋ค.
- ๊ต์ฐฉ์ํ ๊ฒ์ถ ๋ฐ ํ๋ณต : ๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ๋์ง ํ์ ํ๊ณ , ๋ฐ์์ ํ๋ก์ธ์ค/์ค๋ ๋ ์ค๋จ ํ ์ด๋ฅผ ํ๋ณตํ๋ ๋ฐฉ์์ด๋ค. ํด๋น๊ณผ์ ์์๋ ์ฌ์ฉํ ์ ์๋ค.
๋ฐ๋ผ์ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ฐฉ ๊ธฐ๋ฒ-์ํ๋๊ธฐ๋ฌดํจํ์ ํํผ ๊ธฐ๋ฒ๋๊ฐ์ง ๋ฟ์ด๋ค.
1.2.2 ๊ต์ฐฉ์ํ ๋์
๋ฉ๋ฐํ ๋ฆฌ ๋ถ๋ถ์์ ๊ณ ๋ คํ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋ชจ๋ ํฌํฌ๋ ์ฒ ํ์ ์ฌ์ด์ ์๋ค(์๋ก ๋ค๋ฅธ ํฌํฌ๋ค์ด๋ค).
- ๋ฎคํ ์ค๋ง์ ์ฌ์ฉํ๋ค.
์์ ๊ฐ์ ํน์ฑ๋๋ฌธ์ ํํผ ๊ธฐ๋ฒ์ ํตํด ์์(ํฌํฌ)๋ฅผ ์ต์ ํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๋ค์ด ์๋ค๊ณ ํ๋จํ์๋ค.
1. ๊ฐํฌํฌ์ ์ฒ ํ์๋ง๋ค ๋ฎคํ
์ค๋ฅผ ํ ๋นํด์ ์ ๊ทผ์ ์ ์ดํด์ผํ๋ค. 2. ์ด๋ค ํฌํฌ ์ฌ์ฉ์ ์๋ฝํ ์ง ์ ์ดํ๋ ์ค๋ ๋๋ ๋ฐ๋ก ๋ง๋ค์ด์ ๋๋ ค์ผํ๋ ์์
์ด ํ์ํ๋ค.3. ์ด๋ ๊ฒ ํ๋ค๊ณ ํด๋, ์ ์ดํ๋ ์ค๋ ๋๊ฐ ํฌํฌ๋ฅผ ์ง๊ธฐ์ ์ ๋์ํ์ฌ ๊ต์ฐฉ์ํ๋ฅผ ๋ง์์ ์์์ง๋ ๋ณด์ฅํ ์ ์๋ค.
๋ฐ๋ผ์ ์ฝ๊ฐ์ ์ด์ํจ์ด ์์ง๋ง ๋ ํ์คํ ์๋ฐฉ๊ธฐ๋ฒ์ ์ํ๋๊ธฐ ๋ฌดํจํ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ์ค๋ ๋์ ์ ์ฉํ์๋ค.
์์ ๋ด์ฉ๋ค์ ๊ณผ์ ๋ฅผ ์๋ชป ๊ตฌํํ์ฌ์ ์ ์ฉํ ๋ด์ฉ๋ค์ด๋ค. ๋ฉ๋ฐํ ๋ฆฌ ๊ณผ์ ์์๋ ๊ต์ฐฉ์ํ๋ฅผ ํํผํ๋๋ผ๋ ์ฒ ํ์๋ค์ด ๊ตถ์ด์ฃฝ์์ ์๋ค. ๋ฐ๋ผ์ **์ค์ผ์ค๋ง**์ ํตํด ํฌํฌ๋ฅผ ๋ค์ ์ฒ ํ์ ์์๋ฅผ ์ ํ๋ค.
์ง์์ธ๊ฒฝ์ฐ ๋ชจ๋ ํฌํฌ๊ฐ ๋์ง ์๊ฒ ์ค์ผ์ค๋ง ํ ์ ์์ด์ ๋ค์๊ณผ ๊ฐ์ ์์๋ก ์ค์ผ์ค๋ง ํ๋ฉด ๋๋ค.
- ์ง์ ์ฒ ํ์๋ค ์์ฌ
- ํ์ ์ฒ ํ์๋ค ์์ฌ
ํ์์ธ๊ฒฝ์ฐ ์ต์ ํ๋์ ํฌํฌ๊ฐ ๋ ์ ๋ฐ์ ์๋ค. ๋ฐ๋ผ์ ๋ ธ๋ ํฌํฌ์ ์์น๋ฅผ ํ์ ํ๊ฒ ํ์ฌ ์ต๋ํ ๊ณตํํ๊ฒ ์์ฌํ๊ฒ ํ๋ค. 7๋ช ์ ์ฒ ํ์๊ฐ ์๋ค๊ณ ๊ฐ์ ํ์. ๊ทธ๋ฌ๋ฉด ์ฒ ํ์๋ 0๋ฒ๋ถํฐ 6๋ฒ๊น์ง ์๋ค.
- 0 2 4 ๋ฒ ์ฒ ํ์ ์์ฌ(5๋ฒ ํฌํฌ ๋)
- 1 3 5 ๋ฒ ์ฒ ํ์ ์์ฌ(6๋ฒ ํฌํฌ ๋)
- 2 4 6 ๋ฒ ์ฒ ํ์ ์์ฌ(1๋ฒ ํฌํฌ ๋)
- 3 5 0 ๋ฒ ์ฒ ํ์ ์์ฌ(2๋ฒ ํฌํฌ ๋)
- 4 6 1 ๋ฒ ์ฒ ํ์ ์์ฌ(3๋ฒ ํฌํฌ ๋)โฆ
์์ ๊ฐ์ ๊ท์น์ฑ์ ๊ฐ์ง๊ณ ์๋ค. ์๋ฅผ ์ฝ๋๋ก ํํํ๋ฉด ์ง์์์๋ ์ ์ฉ ๊ฐ๋ฅํ ํ๋์ ์์์ผ๋ก ํํ๋๋ค. ์ด๋ฌํ ์์์ ์ค์ผ์ค๋ฌ ์ค๋ ๋์ ์ ์ฉํ์ฌ ์ ํด์ ์์์ ์ค๋ ๋์ restriction์ unlockํด์ฃผ์ด์ ๋์ํ๊ฒ ํ๋ค.
์ดํ ์ค์ผ์ค๋ฌ๋ eat๋ฎคํ ์ค๋ฅผ ํตํด ์ ํ ์ฒ ํ์๋ค์ด ํฌํฌ๋ฅผ ๋ค ์ง์๋์ง ํ์ธํ๊ณ , ๋ค์ ์์์ ์ฒ ํ์๋ค์ restriction์ unlockํด์ค๋ค.
2. ๋ณด๋์ค
2.1 ๋์๋ฐฉ์
๋ณด๋์ค์์ ์ฒ ํ์๋ ๋ณ๋์ ํ๋ก์ธ์ค๋ค์ด๋ฏ๋ก ์ด๋ ํ ๋ฉ๋ชจ๋ฆฌ๋ ๊ณต์ ๋์ง ์๋๋ค. ๋ํ ํด๋น ๊ณผ์ ์์ ํ์ฉ๋๋ ํจ์์ค kill
์ ์ ์ธํ ์ด๋ ํ signal๊ด๋ จ ํจ์๋ ์ฌ์ฉ ๋ถ๊ฐํ๋ค. ๋ฐ๋ผ์ ์ธ๋งํฌ์ด์ ์ ์ (wait
) ๋ฐ ํด์ (post
)๋ฅผ ํตํด์๋ง ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ์ํ๋ฅผ ์ ๋ฌํ ์ ์๋ค.
๋์๋ฐฉ์์ ๊ตฌํํ๋ฉด์ ๊ฐ์ฅ ์ค์ํ๊ฒ ์์ฉํ ๊ฐ๋ ์ ๋ค์๊ณผ ๊ฐ๋ค. ์ธ๋งํฌ์ด์ ์๋์ด ๋ถ์กฑํ์ฌ ๋๊ธฐํ๋ ํ๋ก์ธ์ค/์ค๋ ๋์ ๊ฒฝ์ฐ ๋๊ธฐ ํ์ ๋ค์ด๊ฐ์ ๋๊ธฐ์ํ๋ก ์ ํ๋๊ธฐ ๋๋ฌธ์, CPU ์ ์ ์ ์ํฅ์ ๋ฏธ์น์น ์๋๋ค. ๋ํ, ๋ฎคํ ์ค์ ๋ฌ๋ฆฌ ์ธ๋งํฌ์ด๋ฅผ ์ ์ (wait)ํ์ง ์์ ํ๋ก์ธ์ค์์ ํ์ ์๋ค.
์ด๋ฌํ ๊ฐ๋ ๋ค์ ์ต๋ํ ํ์ฉํ์ฌ ๋ฐ์ ๋๊ธฐ๋ฅผ ์ต์ํ ํด๋ณด๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ค.
- ์ฐ์ ์ํ๋ฅผ ํ์ธํ๊ธฐ์ํ ์ธ๋งํฌ์ด๋ฅผ ํ ๋น ๋ฐ ์ ์ ์ํจ๋ค. ์ฒ ํ์ ์๋งํผ
die
์full
์ธ๋งํฌ์ด๋ฅผ ํ ๋นํ๊ณ , fork ์ด์ ์ ์ด๋ฅผ ์ ๋ถ ์ ์ ์ํจ๋ค. - ์ดํ ๋ฉ์ธ ํ๋ก์ธ์ค(philo_bonus)์ [die], [full]์ค๋ ๋๋ ๊ฐ๊ฐ
sem_wait(die)
,sem_wait(full)
์ฝ๋์ ์ํด ๋๊ธฐํ ์ํ๋ก ๋น ์ง๋ค. -> ๋ฐ์๋๊ธฐ ํํผ
์ดํ๋ ์๋ ์ด๋ฏธ์ง์์ ์ค๋ช .
๋ณด๋์ค์์ ํฌํธ๋ ์ค์์ ๋์ฌ์๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ํฌํฌ๊ฐ ์๊ธฐ๋ฉด, sem_wait
์ ์ํด block๋์๋ ํ๋ก์ธ์ค ์ค ํ๋๊ฐ (OS์ ์ํด) run state๋ก ์ง์
ํ๊ฒ ๋์ ๋จน๊ณ ์๊ณ ์๊ฐํ๊ณ โฆ ๋ฅผ ์ํํ๊ฒ ๋๋ค. ๋น์ฐํ ๋จน๊ณ ๋์๋ ํฌํฌ๋ฅผ ๋ฐํํ๋ค.
- ๊ฐ ์ฒ ํ์๋ค์ ์ง์ ๋ ํ์๋งํผ ์์ฌํ๋ฉด
sem_post(full)
ํ์ฌ ์ ์ ๋ฅผ ํ๋์ฉ ํผ๋ค. - ๋ฉ์ธ ํ๋ก์ธ์ค(philo_bonus)์ [full]์ค๋ ๋๋ ์ฒ ํ์ ๊ฐ์๋งํผ
sem_wait(full)
ํ๋ค. - ์ฒ ํ์ ์๋ฅผ ๋ง์กฑ์ํค๋ฉด ๊ทธ ์ดํ์
sem_post(die)
๋๋ค(์ด๋ die์ถ๋ ฅ์ ํ์ง ์์.). ๋ชจ๋ ์ฒ ํ์ ํ๋ก์ธ์ค๋ค์kill
ํ๊ณ ํ ๋น๋ ๊ฐ๋ค์ ๋ฐํํ๋ฉฐ ํ๋ก๊ทธ๋จ์ ๋๋ธ๋ค.
- ์ฒ ํ์ ํ๋ก์ธ์ค์ [die_check]์ค๋ ๋๋ ํ๋์
die_check์ธ๋งํฌ์ด
์ ์ํด ํ๋ฒ์ ํ๋์ฉ ๋์๊ฐ๋ฉด์ ์ํ๋ฅผ ํ์ธํ๋ค. -> ๋ฐ์ ๋๊ธฐ๋ฅผ ํตํ CPU๋ถํ ์ต์ํ - [die_chekc]์ค๋ ๋์์ ์ฃฝ์์ด ํ์ธ๋๋ฉด die์ถ๋ ฅ์ ํ๊ณ ,
sem_post(die)
๋ฅผ ํ๋ค. - ๋ฉ์ธ ํ๋ก์ธ์ค(philo_bonus)์ [die]์ค๋ ๋๊ฐ ๊นจ์ด๋๊ณ ๋ชจ๋ ์ฒ ํ์ ํ๋ก์ธ์ค๋ค์
kill
ํ๊ณ ํ ๋น๋์๋ ์์๋ค์ ๋ฐํํ ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๋ค.
2.2 ๊ต์ฐฉ ํํผ ๊ธฐ๋ฒ
๋ณด๋์ค๊ณผ์ ๋ ๋ฉ๋ฐํ ๋ฆฌ์ ๋ฌ๋ฆฌ ์ธ๋งํฌ์ด๋ฅผ ํตํด ํฌํฌ์ ์ ๊ทผ์ ์ ํํ๋ค. ์ด๋ ์ธ๋งํฌ์ด๋ ๋ฎคํ ์ค์ ๋ฌ๋ฆฌ ์์์ ๊ฐ์๋ฅผ ์ ํ ์ ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ชจ๋ ์ฒ ํ์๋ค์ด ํ์์ ํฌํฌ๋ฅผ ๋ค๊ณ ์๋ ์ํฉ๋ง ํผํ๋ฉด ๊ต์ฐฉ์ํ๋ฅผ ๋ง์์ ์๋ค. ์ด๋ฐ ์ํฉ์ ์๊ถ์ ํตํด ์ฒซํฌํฌ๋ฅผ ๋ค๊ณ ์๋ ์ฒ ํ์์ ์๋ฅผ **๋ชจ๋ ์ฒ ํ์์ ์ - 1**๋ก ์ ํํ์ฌ ํํผํ์๋ค(๊ต์ฐฉ ํํผ ๊ธฐ๋ฒ).