๐ ๊ณต์ ์์์ ๋ํด ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ์ ๊ทผ์ ์๋ํ ๋, ํ์ด๋ฐ์ด๋ ์์ ๋ฑ์ด ๊ฒฐ๊ณผ๊ฐ์ ์ํฅ์ ์ค ์ ์๋ ์ํ
→ ๊ณต์ ์์์ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ์ ๊ทผํ ๋ ์๋ฃ์ ์ผ๊ด์ฑ์ ํด์น๋ ๊ฒฐ๊ณผ๊ฐ ๋ํ๋ ์ ์์
โถ๏ธ ๋ฐ์ํ๋ ๊ฒฝ์ฐ
- ์ปค๋ ์ฝ๋ ์คํ ์ค์ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ
- ๋ฌธ์ ์ : ์ปค๋๋ชจ๋์์ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํด ์์ ์ ์ํํ๋ค๊ฐ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํด ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๋ ๊ฒฝ์ฐ
- ํด๊ฒฐ : ์ปค๋๋ชจ๋์์ ์์ ์ ์ํํ๋ ๋์ ์ธํฐ๋ฝํธ๋ฅผ disable์์ผ CPU์ ์ด๊ถ์ ๊ฐ์ ธ๊ฐ์ง ๋ชปํ๋๋ก ํจ
- ํ๋ก์ธ์ค๊ฐ ‘system call’์ ํ์ฌ ์ปค๋๋ชจ๋๋ก ์ง์
ํ๊ณ ์์
์ ์ํํ๋ ๋์ค ๋ฌธ๋งฅ ๊ตํ์ด ๋ฐ์ํ ๋
- ๋ฌธ์ ์ : ํ๋ก์ธ์ค 1์ด ์ปค๋๋ชจ๋์์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๋ ๋์ค ์๊ฐ์ด ์ด๊ณผ๋์ด CPU์ ์ด๊ถ์ด ํ๋ก์ธ์ค 2๋ก ๋์ด๊ฐ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๋ ๊ฒฝ์ฐ
- ํด๊ฒฐ : ํ๋ก์ธ์ค๊ฐ ์ปค๋ ๋ชจ๋์์ ์์ ์ํ๋ ๊ฒฝ์ฐ์๋ ์๊ฐ์ด ์ด๊ณผ๋๋๋ผ๋ CPU์ ์ด๊ถ์ด ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ๋์ด๊ฐ์ง ์๋๋ก ํจ
- ๋ฉํฐ ํ๋ก์ธ์์์ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ์ปค๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ ๊ฒฝ์ฐ
- ๋ฌธ์ ์ : ๋ฉํฐํ๋ก์ธ์ค ํ๊ฒฝ์์ 2๊ฐ์ CPU๊ฐ ๋์์ ์ปค๋ ๋ด๋ถ์ ๊ณต์ ๋ฐ์ดํฐ์ ์ ๊ทผํ์ฌ ์กฐ์ํ๋ ๊ฒฝ์ฐ์ ๋ฐ์ํ ์ ์์
- ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์ ๋ ๊ฐ ์ด์์ ์ค๋ ๋๊ฐ ๊ณตํต์ ์ ์ญ๋ณ์์ ์ ๊ทผํ ๊ฒฝ์ฐ ๊ฒฝ์์ํ๊ฐ ๋ฐ์ํ ์ ์์ โ๏ธ ํด๊ฒฐ : ์ปค๋ ๋ด๋ถ์ ์๋ ๊ณต์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ๋๋ง๋ค ๊ทธ ๋ฐ์ดํฐ์ ๋ํด lock/unlock ํจ์ผ๋ก์จ ํด๊ฒฐํ ์ ์์
- ๐๐ป 3, 4๋ฒ์ ๊ฒฝ์ฐ Race Condition ๊ด๊ณ๋ 3๊ฐ์ง ๋ฌธ์ ์ ์ง๋ฉด
โถ๏ธ ์๊ณ ์์ญ(Critical Section)
๐ ๊ณต์ ์์์ ๋ํ์ฌ ํ ๋ฒ์ ํ๋์ ํ๋ก์ธ์ค๋ง์ด ์ด์ ์ ๊ทผํ ์ ์๋๋ก ํต์ ํด์ผํ๋๋ฐ, ๊ทธ๋ฌํ ํต์ ๊ฐ ํ์ํ ์์ญ์ ์๊ณ ์์ญ์ด๋ผ๊ณ ๋ถ๋ฆ
- ์๊ณ ์์ญ์ ์
์ฅ ์์ญ(Entry section)๊ณผ ํด์ฅ ์์ญ(Exit section)์ ๊ธฐ์ค์ผ๋ก ๊ตฌ๋ถ
→ ๊ฐ ํ๋ก์ธ์ค๋ ์ ์ฅ ์์ญ์์ ๊ถํ์ ํ๋ํ๊ณ , ํด์ฅ ์์ญ์์ ๊ถํ์ ๋ฐํํ๋ ์์ผ๋ก ํต์ ๊ฐ ์ด๋ค์ง
โ๏ธ ์๊ณ ์์ญ ํด๊ฒฐ ์กฐ๊ฑด
- ์ํธ ๋ฐฐ์ (Mutual Exclusion) : ์ด๋ค ํ๋ก์ธ์ค๊ฐ ์๊ณ ์์ญ์ ์ํ์ค์ด๋ฉด ๋ค๋ฅธ ๋ชจ๋ ํ๋ก์ธ์ค๋ค์ ๊ทธ ์๊ณ ์์ญ์ ๋ค์ด๊ฐ์ง ๋ชปํ๊ฒ ๋ง์
- ์งํ(Progress) : ์๊ณ ์์ญ์ ๋ค์ด๊ฐ ํ๋ก์ธ์ค๊ฐ ์์ง ์์ ์ํ์์ ์๊ณ ์์ญ์ ๋ค์ด๊ฐ๋ ค๋ ํ๋ก์ธ์ค๊ฐ ์์ผ๋ฉด ๋ค์ด๊ฐ๊ฒ ํด์ค. ์๊ณ ์์ญ์ ์๋ ํ๋ก์ธ์ค ์ธ์๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์๊ณ ์์ญ์ ์ง์ ํ๋ ๊ฒ์ ๋ฐฉํดํ ์ ์์
- ์ ํ ๋๊ธฐ(Bounded Waiting) : ๊ธฐ์ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ํ๋ก์ธ์ค๊ฐ ์๊ณ ์์ญ์ ๋ค์ด๊ฐ๋ ค๊ณ ์์ฒญํ ํ๋ถํฐ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ด ์๊ณ ์์ญ์ ๋ค์ด๊ฐ๋ ํ์์ ํ๊ณ๊ฐ ์์ด์ผ ํจ
โ๏ธ ์๊ณ ์์ญ ํด๊ฒฐ ๋ฐฉ๋ฒ
- ์ ์ ๋ชจ๋ ๋๊ธฐํ : ์ปค๋ ์ฝ๋๊ฐ ์คํ๋์ง ์๋ ๋๊ธฐํ ๊ธฐ๋ฒ. ํผํฐ์จ ์๊ณ ๋ฆฌ์ฆ(Pterson’s Algorithm)์ด ์์
- ์ปค๋ ๋ชจ๋ ๋๊ธฐํ : ์ปค๋์์ ์ ๊ณตํ๋ ๋๊ธฐํ ๊ธฐ๋ฅ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ. ๊ฐ ํ๋ก์ธ์ค๋ค ์์ ์ค๋ ๋ค๋ผ๋ฆฌ์ ๋๊ธฐํ๋ ๊ฐ๋ฅ
- ์ธ๋งํฌ์ด, ๋ฎคํ ์ค, ๋ชจ๋ํฐ ๋ฑ์ ๋ฐฉ๋ฒ
'CS > OS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CS] ํ์ด์ง๊ณผ ์ธ๊ทธ๋ฉํ ์ด์ (0) | 2024.03.01 |
---|---|
[CS] ์ธ๋งํฌ์ด(Semaphore) & ๋ฎคํ ์ค(Mutex) (0) | 2024.02.25 |
[CS] ๋ฐ๋๋ฝ (0) | 2024.02.06 |
[CS] CPU ์ค์ผ์ค๋ง (1) | 2024.02.06 |
[CS] IPC(Inter Process Communication) (0) | 2024.02.06 |