ํ์ปด์คํผ์ค 'ํ๊ธ'์ ํด๋ฆญ ํ ๋น ํ๋ฉด์ด ์ปค์๊ฐ ๊น๋นก์ด๊ณ ์๋ค. ์ด๋ hello world๋ฅผ ์์ฑํ๋ฉด ์ปดํจํฐ ๋ด๋ถ์์ ์ด๋ค์ผ์ด ๋ฐ์ํ๋๊ฐ?
์๋น ๋ต์ ๋ณด๊ธฐ (๐ Click)
- ํค๋ณด๋์์ ์ฌ์ฉ์ ์ ๋ ฅ์ด ๋ค์ด์ค๋ฉด ํค๋ณด๋ ์ปจํธ๋กค๋ฌ๊ฐ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์์ผ CPU์๊ฒ ํค๊ฐ ์ ๋ ฅ๋์๋ค๋ ์ฌ์ค์ ์๋ ค์ค๋ค.
- CPU๋ ํ์ฌ ์ํ์ค์ด๋ ์์ ์ ์ํ๋ฅผ ์ ์ฅํ๊ณ ์ธํฐ๋ฝํธ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด OS๋ด์ ์ ์๋ ํค๋ณด๋ ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ๋ฃจํด์ ์ฐพ์๊ฐ๋ค.
- ํค๋ณด๋ ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ๋ฃจํด์ ํค๋ณด๋๋ก ๋ถํฐ ์ ๋ ฅ๋ฐ์ ๋ด์ฉ์ ๋ฉ๋ชจ๋ฆฌ์ ํน์ ๋ถ๋ถ์ ์ ์ฅํด ํด๋น ํ๋ก๊ทธ๋จ์๊ฒ ํค๋ณด๋ ์ ๋ ฅ์ด ๋ค์ด์์์ ์๋ฆฌ๋ฉฐ ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ๋ฅผ ์๋ฃํ๋ค.
- ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ๊ฐ ๋๋๋ฉด ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๊ธฐ ์ง์ ์ํ๋ฅผ ๋ณต๊ตฌ์์ผ ์ค๋จ๋์๋ ์์ ์ ์ฌ๊ฐํ๋ค.
์๋น ๋ต์ ๋ณด๊ธฐ (๐ Click)
- ๋จผ์ ํ๊ฐ์ง ์ํฉ์ ๊ฐ์ ํด๋ณด๋ฉด ํ Server์์ ๊ฐ์ ์ผ์ ์ํํ๋ ํ๋ก์ธ์ค๋ฅผ ๋งค๋ฒ fork ํด์ ๋ง๋ ๋ค๊ณ ํด๋ณด์. ์ด๋ฐ ์ํฉ์ด ์กด์ฌํ๋ค๋ฉด ๋งค๋ฒ ๋์ผํ ์ฝ๋๋ฅผ ๋ณต์ฌํ์ฌ ์ผ์ ์ํํ๋ ๋นํจ์จ์ ์ธ ๋ชจ์ต์ ์์ํ ์ ์๋ค. fork๋ฅผ ํ๊ฒ ๋๋ฉด PCB, ์ฃผ์๋ณต์ฌ ๋ฑ๋ฑ ํด์ค ์ผ์ด ๋ง๋ค. ๊ทธ๋์ ๋ฑ์ฅํ๊ฒ ์ฐ๋ ๋์ธ๋ฐ ํ ํ๋ก์ธ์ค ๋ด์์ ๋ ๋ฆฝ์ ์ธ ์ผ์ ์ํํด์ค๋ค.
- ์ฐ๋ ๋๋ ๋ ์ง์คํฐ์ ์คํ์ ์ ์ธํ๊ณ ๋ ๋ชจ๋ ๊ณต์ ํ์ฌ ์ฌ์ฉํ๊ฒ ๋๋ค. ์ด๋ ๊ฒ ๋ ๊ฒฝ์ฐ ํ๊ฐ์ง ์ฐ๋ ๋๊ฐ I/O๋ฅผ ์ํํ ๋ ๋ค๋ฅธ ์ฐ๋ ๋๋ ๋ค๋ฅธ์ผ์ ํ๋ ์์ผ๋ก ์ผ์ ์ข ๋ ํจ์จ์ ์ผ๋ก ์ํํ ์ ์๊ฒ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ฆ๊ฐ์ด multi-processor ํ๊ฒฝ์ ๊ฐ์ถ ์ํ์์๋ ์ฐ๋ ๋๋ก ๊ฐ CPU์ ์ผ์ ํ ๋นํด์ ์ํํด ์ค ์ ์๊ฒ ๋๋ค.
์๋น ๋ต์ ๋ณด๊ธฐ (๐ Click)
- ์คํ ์ํ์ ์๋ ๊ฒ์ ํ๋ก์ธ์ค
- ํ๋๋์คํฌ ์์ ์๋ ๊ฒ์ ํ๋ก๊ทธ๋จ
์๋น ๋ต์ ๋ณด๊ธฐ (๐ Click)
Trap ์ S/W์ ์ผ๋ก ๋ฐ์ํ๋ ์ธํฐ๋ฝํธ๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ช ์นญ์ผ๋ก ์๊ณ ์์ต๋๋ค. ์๋ก System Call, Segmentation fault ๊ฐ์๊ฒ ์์ต๋๋ค. ์ธํฐ๋ฝํธ๋ ์ปจํธ๋กค ์จ๋ฅผ ๋๋ฅผ๋ ์ฒ๋ผ H/W์์ ๋ฐ์ํ๋ ๊ฒ์ ๋ช ์นญ ํ๋ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค.
์ธํฐ๋ฝํธ๋ ์ฅ์น ๋ด์์ ์์ธ์ํฉ์ด ๋ฐ์ํ์ฌ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๋ ์ฌ์ฉํ๋ ๊ฒ์ ๋งํฉ๋๋ค. interrupt vector์ ๊ทธ๋ฌํ ์ธํฐ๋ฝํธ ์ ํธ๊ฐ ์ค๊ฒ ๋ ๋ ์ฒ๋ฆฌํด์ผ ํ๋ ๋์์ ๊ฐ๋ฆฌํค๋ ์ฃผ์๋ฅผ ์ ์ด๋ ๊ด๋ฆฌํ๊ฒ ๋ฉ๋๋ค. ๋ฌด์กฐ๊ฑด ์ฐ์ ์ ์ผ๋ก ์ฒ๋ฆฌ๋๊ฒ ๋ฉ๋๋ค.
ํ๋์จ์ด ์ธํฐ๋ฝํธ
- ๊ฐ์ข ํ๋์จ์ด ์ฅ์น๋ค์ด CPU์๊ฒ ์๋น์ค๋ฅผ ๋ฐ์์ผ ํ๋ ๊ฒฝ์ฐ ๋ฐ์.
- ์ธํฐ๋ฝํธ ๋ผ์ธ์ ํตํด CPU์๊ฒ ์ ๋ฌ
์ํํธ์จ์ด ์ธํฐ๋ฝํธ
- ํ๋ก๊ทธ๋จ์ด ์๋ชป๋ ์ฐ์ฐ์ ์ํํ ๊ฒฝ์ฐ ์ด์ ๋ํ ์ ์ ํ ์ฒ๋ฆฌ๋ฅผ ์ํด ์ฌ์ฉ๋๋ ์์ธ ์ํฉ ์ฒ๋ฆฌ
- ์์ ์ด ์์ฑํ์ง ์์ ์ฝ๋๋ฅผ ์ด์์ฒด์ ๋ก๋ถํฐ ์๋น์ค๋ฅผ ๋ฐ๊ธฐ ์ํด ๋ฐ์์ํค๋ ์์คํ ์ฝ(์ด๋ฅผ ํธ๋ฉ์ด๋ผ๊ณ ํฉ๋๋ค.)
์๋น ๋ต์ ๋ณด๊ธฐ (๐ Click)
- ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์ฐ์ฐ์ด CPU์ ์ํด์๋ง ์ด๋ฃจ์ด์ง ๊ฒฝ์ฐ ์ฃผ๋ณ ์ฅ์น๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ์ํ ๋๋ง๋ค ์ธํฐ๋ฝํธ๋ฅผ ํตํด CPU ์ ๋ฌด๊ฐ ๋ฐฉํด๋ฅผ ๋ฐ๊ฒ ๋์ด CPU์ ์ฌ์ฉ์ ํจ์จ์ฑ์ด ๋จ์ด์ง๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
- DMA๋ ์ผ์ข ์ ์ปจํธ๋กค๋ฌ๋ก์ CPU๊ฐ ์ฃผ๋ณ ์ฅ์น๋ค์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์์ฒญ์ ์ํด ์์ฃผ ์ธํฐ๋ฝํธ๋นํ๋ ๊ฒ์ ๋ง์์ฃผ๋ ์ญํ ์ ํ๋ค.
- DMA๋ฅผ ์ฌ์ฉํ๋ฉด ๋ก์ปฌ ๋ฒํผ์์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฝ์ด์ค๋ ์์ ์ CPU๊ฐ ๋ด๋นํ๋ ๊ฒ์ด ์๋๋ผ, DMA๊ฐ ๋ํํ๋ฏ๋ก์ CPU๋ ์๋ ํ๋ ์์ ์ ๋ฉ์ถ๊ณ ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ ํ์๊ฐ ์์ด์ง๋ ๊ฒ์ด๋ค.
์ด์์ฒด์ ๋ ๋ค์ค ์ ์ ๊ฐ ํ๋์ ์ปดํจํฐ์ ์์์ ์ฌ์ฉํ ๋ ์์์ '๋ณดํธ'๋ฅผ ํฉ๋๋ค. ์ด๋ ํ ๋ณดํธ๋ฅผ ํ๋์ง ์ค๋ช ํ๊ณ ์๋๋ฆฌ์ค๋ฅผ ์ค๋ช ํ์ธ์
์๋น ๋ต์ ๋ณด๊ธฐ (๐ Click)
ํฌ๊ฒ ์ธ ๋ถ๋ถ์ผ๋ก ๋๋ ์ ์์ต๋๋ค.
[1] ์ ์ถ๋ ฅ์ฅ์น ๋ณดํธ
- A๊ฐ ํ๋ฆฐํฐ์ ์ธ์๋ฅผ ์์ฒญํ์ฌ ํ๋ฆฐํฐ๊ฐ A์ ์์ ์ ์ํ ์ค์ผ ๋ B๊ฐ ํ๋ฆฐํฐ ์์ฒญ์ ํ๋ฉด A์ ์์ ์ดํ์ B์ ์์ ์ ์ํํด์ผํฉ๋๋ค.
- ์ด์ ๊ด๊ณ๋ํน๊ถ ๋ช ๋ น(in, out) ๋ช ๋ น์ ์ํ๋ฆฌ์ผ์ด์ ์์ ํ๋ ๊ฒ์ด ์๋ ์ด์์ฒด์ ๊ฐ ์ํํฉ๋๋ค.
[2] ๋ฉ๋ชจ๋ฆฌ ๋ณดํธ
- A๊ฐ ์คํํ ํ๋ก์ธ์ค๋ B๊ฐ ์คํํ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฝ๊ฑฐ๋ ์ฐ์ง ๋ชปํ๋๋ก ๋ง์ต๋๋ค.
- CPU์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ MMU(Memory Management Unit)๋์ด์ base, limit ๋ ์ง์คํฐ ๊ฐ์ ์ฝ์ด์ ํด๋น ๋ฉ๋ชจ๋ฆฌ ๋ถ๋ถ์ ๋์ง ๋ชปํ๋๋ก ํฉ๋๋ค.
[3] CPU ๋ณดํธ
- while ( n = 1) ๊ณผ ๊ฐ์ด ์ค์ ํน์ ๊ณ ์๋ก ํ๋์ ํ๋ก์ธ์ค๊ฐ CPU์๊ฐ์ ๋ ์ ํ๋ ์ผ์ ๋ฐฉ์งํด์ผํฉ๋๋ค.
- ์ผ์ ์ฃผ๊ธฐ๋ก CPU์๊ฒ ํ์ด๋จธ๊ฐ ์ธํฐ๋ฝํธ๋ฅผ ๊ฑธ๋๋ก ํ๋ก๋ฅผ ์ค๊ณํฉ๋๋ค. ์ธํฐ๋ฝํธ๋ฅผ ๊ฑธ๋ฉด CPU๋ ์ง๊ธ ํ๋ ์ผ์ ๋ฉ์ถ๊ณ ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด์ผ๋ก ๋์ด๊ฐ๋๋ค. ์ด ์ฝ๋์๋ CPU ์๊ฐ์ด ๋ค๋ฅธ ๋ชจ๋ ํ๋ก์ธ์ค์๊ฒ ๊ณจ๊ณ ๋ฃจ ๊ฐ๋์ง, ํ ๋์๊ฒ ์ง์ค๋๋์ง ์ฒดํฌํฉ๋๋ค.
์๋น ๋ต์ ๋ณด๊ธฐ (๐ Click)
Topic
- ๋ฉํฐ์ค๋ ๋ฉ ์ํฉ์ ์ ์ด๋ฅผ ์ํด synchronized๋ฅผ ์ ๊ทน ํ์ฉ.
- ์ด๋ค ๋ฉํฐ์ค๋ ๋ ์ํฉ์ด์๋์ง, ์ synchronized๋ฅผ ์ผ๋์ง, synchronized๊ฐ mutex๋ฅผ ์ด๋ป๊ฒ ๋ณด์ฅํ๋์ง
- ๋ด๋ถ์ ์ผ๋ก ์ด๋ป๊ฒ ๊ตฌํํ๋์ง, ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์์๋์ง, ๋ค๋ฅธ ๋ฐฉ๋ฒ๊ณผ synchronized๋ฅผ ๋น๊ตํ์ ๋์ ์ฅ๋จ์ ์ ๋ฌด์์ธ์ง,
- ํน์ ์ํฉ์ ์ ์ํ ๋ค ์ด ๊ฒฝ์ฐ๋ผ๋ฉด ์ด๋ป๊ฒ ์ ์ฉ์ํฌ ์ ์์ ๊ฒ์ธ์ง
์๋น ๋ต์ ๋ณด๊ธฐ (๐ Click)
- ํจ์ํธ์ถ : ์์ ์ด ์์ฑํ ํจ์ ํน์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์ฅ๋ ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒ
- ์์คํ ์ฝ : ์ด์์ฒด์ ์ ์ ์๋ ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒ
์๋น๋ต์ ๋ณด๊ธฐ (๐ Click)
์ค๋ ๋์ ๋ฉํฐ์ค๋ ๋ ์ฃผ์ ๋ ๋ฉด์ ์์ ์ ๋ง ์ค์ํ ์ฃผ์ ์ ๋๋ค. L์ฌ์ ๊ฒฝ์ฐ ์ผ๋ง๋ ์จ๋ดค๋์ง ๊ผฌ๋ฆฌ ์ง๋ฌธ์ผ๋ก ๋ฑ์ฅํ ์ ๋ ฅ์ด ์์ต๋๋ค. ์์ฝ ๊ธ๋ก๋ ์ถฉ๋ถํ์ง ์์ ๊ฒ์ ๋๋ค. C์์ค์ด ์๋๋๋ผ๋ Java, Python ์ธ์ด ๋ ๋ฒจ์์ ๋๋ ค๋ณด๋ฉด์ ์ดํด๋ณผ๋ฒํ ์ค์ํ ์ฃผ์ ์ ๋๋ค. ์์ธํ๊ฒ ์๊ณ ์ถ๋ค๋ฉด Covenant. ํ์ด์ฌ ์ฝ๋๋ก ๋ณด๋ ๋ฉํฐ์ค๋ ๋๋ฅผ ์ฐธ๊ณ ํ์ธ์!
-
์ค๋ ๋
- ํ๋ก์ธ์ค ๋ด์ ์คํ ํ๋ฆ ๋จ์์ ๋๋ค.
- ์ฐ๋ ๋๋ ํ๋ก์ธ์ค์ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ, CPU ๋ฑ์ ์์์ ์ฌ์ฉํฉ๋๋ค.
- Stack๋ง ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ฉฐ Code, Data, Heap์ ์ฐ๋ ๋๊ฐ ๊ณต์ ํฉ๋๋ค.
- ์ค๋ ๋์ ๊ฒฝ์ฐ ๋๋ฒ๊น ์ด ์ด๋ ต๊ธฐ์ ๋๊ธฐํ ๋ฌธ์ ๋ ์ฃผ์ํด์ ๊ตฌํํด์ผํฉ๋๋ค.
-
๋ฉํฐ ์ค๋ ๋
- ํ ๊ฐ์ ๋จ์ผ ์ดํ๋ฆฌ์ผ์ด์ (์์ฉํ๋ก๊ทธ๋จ)์ ์ฌ๋ฌ ์ค๋ ๋๋ก ๊ตฌ์ฑ ํ ์์ ์ฒ๋ฆฌํด์ผํฉ๋๋ค.
- ํ๊ธ์์ ์ฑ๊ธ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ํ๋ฆฐํธ๋ฅผ ํ๋ ๊ฒฝ์ฐ ๋ฌธ์ ์์ ์ ๋ถ๊ฐ๋ฅํ ๊ฒ์ ๋๋ค.
- ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ ๊ณ ๋น์ฉ์ ๋๋ค. ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์์คํ ์์ ์๋ชจ ๊ฐ์ ๋ฐ ์ฒ๋ฆฌ๋ ์ฆ๊ฐ์ํฌ ์ ์์ต๋๋ค.
- ์ค๋ ๋๋ ์ด๋ฏธ ๊ณต์ ํ๊ณ ์๊ธฐ์ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์๊ธธ ํต์ ๋ถ๋ด์ด ๊ฐ์ํฉ๋๋ค.
- ๋ฉํฐ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋๋ฒ๊น ์ด ์ด๋ ต์ต๋๋ค. ์์ ๊ณต์ ๋ฌธ์ (์ผ๋ช ๊ต์ฐฉ์ํ)๊ฐ ์๊น๋๋ค.
์๋น๋ต์ ๋ณด๊ธฐ (๐ Click)
- ๋ ์ด์์ ํ๋ก์ธ์ค(์ค๋ ๋)๊ฐ ๊ณต์ ์์์ ํ๋ํ์ง ๋ชปํด ๋ ์ด์ ์คํํ ์ ์๊ณ ๋ฌดํ์ ๊ธฐ๋ค๋ ค์ผํ๋ ์ํฉ์ ๋งํฉ๋๋ค.
๋ค์ ๋ค๊ฐ์ง ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํด์ผ Deadlock์ด ๋ฐ์ํฉ๋๋ค.
- ์ํธ๋ฐฐ์ (Mutual exclusion)
- (1) ์ฌ๋ฌ ์ค๋ ๋๊ฐ ๋์์ ์ฌ์ฉํ์ง ๋ชปํ๊ณ (2) ๊ฐ์๊ฐ ์ ํ์ ์ด๋ผ๋ฉด ์ํธ๋ฐฐ์ฌ ์กฐ๊ฑด์ ๋๋ค.
- ์ํธ๋ฐฐ์ ์ํฉ ์์. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ, ์ธ๋งํฌ์ด
- ์ ๊ธ & ๋๊ธฐ(Lock & Wait)
- ์ค๋ ๋๊ฐ ์์์ ์ ์ ํ๋ฉด ์์ ์ ๋ง์น ๋๊น์ง ์ด๋ฏธ ์ ์ ํ ์์์ ๋ด๋์๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
- ์ ์ ๋ถ๊ฐ(No Preemption)
- ์ค๋ ๋๊ฐ ๋ค๋ฅธ ์ค๋ ๋๋ก๋ถํฐ ์์์ ๋นผ์์ง ๋ชปํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
- ์์์ ์ ์ ํ ์ค๋ ๋๊ฐ ์์์ ๋ด๋์์ผ์ง ๋ค๋ฅธ ์ค๋ ๋๊ฐ ์์์ ํ๋ํ ์ ์์ต๋๋ค.
- ์ํ ๋๊ธฐ(Circular wait)
- ๊ฐ ์ค๋ ๋๊ฐ ํ์ํ ์์์ด ์๋ก ๋ค๋ฅธ ์ค๋ ๋์ ์๋ ์ํฉ์ ๋๋ค.
- ๊ทธ๋ํ๋ก ๊ทธ๋ฆด์ ์ํ์ผ๋ก ๋ณด์ ๋๋ค.
- ์ฃฝ์์ ํฌ์น(deadly embrace)๋ผ๊ณ ํฉ๋๋ค.
- ์ํธ๋ฐฐ์ ํผํ๋ ๋ฒ
- ๋์์ ์ฌ์ฉํด๋ ๊ด์ฐฎ์ ์์์ ์ฌ์ฉํฉ๋๋ค.
- ์์์ ์๋ฅผ ์ค๋ ๋ ์ ์ด์์ผ๋ก ๋๋ฆฝ๋๋ค.
- ์์์ ์ ์ ํ๊ธฐ ์ ํ์ํ ์์์ด ๋ชจ๋ ์๋์ง ํ์ธํฉ๋๋ค.
- ์ ๊ธ & ๋๊ธฐ ํผํ๋ ๋ฒ
- ๋๊ธฐ ํ์ง ์๋ ์ ๋ต์ ์ฌ์ฉํฉ๋๋ค.
- ์์์ ์ ์ ํ๊ธฐ ์ ์ ํ์ํ ์์์ด ์๋์ง ํ์ธํ๊ณ ์์์ด ๋ถ์กฑํ ๊ฒฝ์ฐ ๊ฐ์ง๊ณ ์๋ ์์์ ๋ชจ๋ ๋ด๋์ต๋๋ค.
- ๋ฌธ์ ์
- ๊ธฐ์(Starvation): ํ ์ค๋ ๋๊ฐ ๊ณ์ํด์ ํ์ํ ์์์ ์ ์ ํ์ง ๋ชปํ๋ค. ์ ์ ํ๊ณ ์ ํ๋ ์์์ด ํ ๋ฒ์ ํ๋ํ๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ ์ด ์ํฉ์ด ๋๋๋ฌ์ง๋๋ค.
- ๋ผ์ด๋ธ๋ฝ(Livelock): ์ฌ๋ฌ ์ค๋ ๋๊ฐ ๋์์ ์ ๊ทผํ๊ธฐ์ ์์์ ํ๋ํ๋ค๊ฐ ๋ด๋๋ ์ํฉ์ ๋ฐ๋ณตํฉ๋๋ค.
- ์ ์ ๋ถ๊ฐ ํผํ๋ ๋ฒ
- ์์์ด ํ์ํ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ค๋ ๋์ ์์์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋๋ค.
- ์์์ด ํ์ํ ์ค๋ ๋๊ฐ ์์์ ์์ ํ ์ค๋ ๋์๊ฒ ์์์ ์์ฒญํฉ๋๋ค.
- ์์์ ์์ ํ ์ค๋ ๋๊ฐ ๋ค๋ฅธ ์์์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค๋ฉด ์์ ์ด ์์ ํ ์์์ ๋ชจ๋ ํ์ด์ฃผ๊ณ ์ฒ์๋ถํฐ ์์ํฉ๋๋ค.
- ์ํ ๋๊ธฐ ํผํ๋ ๋ฒ
- ๋ฐ๋๋ฝ ๋ฐฉ์งํ๋ ํํ ์ ๋ ฅ์ ๋๋ค.
- ์ค๋ ๋์๊ฒ ์์๋๋ก ์์์ ํ ๋นํ๋ ๋ฐฉ์์ ๋๋ค.
- ํน์ ์์๋ค์ ์์๋ฅผ ์ค ๋ค์ ๊ฐ ์ค๋ ๋๋ค์ด ์์์ ์์ฒญํ ๋ ์ฐ์ ๋๊ฐ ์ฆ๊ฐํ๋ ์์๋ก ์์ฒญํ๊ฒ ํ๋ ๊ฒ์ ๋๋ค. ์์ฒญ ์์๋ณด๋ค ์ฐ์ ๋๊ฐ ํฐ ์์์ ์ ๋ถ ํด์ ํ ๊ฒฝ์ฐ์๋ง ์์ ์์ฒญ์ ํ๊ฐํ๋ ๋ฐฉ์์ ๋๋ค.
- ๋ฌธ์ ์
- ์์์ ํ ๋น ์์์ ์ฌ์ฉ ์์๊ฐ ๋ค๋ฅผ ์ ์์ต๋๋ค.
- ์์์ ์์๋ฅผ ํ ๋นํ๊ธฐ ์ด๋ ต์ต๋๋ค.
๋ต์ ์ค๋น์ค์ ๋๋ค.
๋ต์ ์ค๋น์ค์ ๋๋ค.
OS์์ ํ๋ก์ธ์ค๋ CPU์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ MMU(Memory Management Unit)๋ฅผ ๋์ด์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ ๊ทผํ ํ์ง ๋ชปํฉ๋๋ค. ๊ทธ๋ฌ๋ GDB์ ๊ฐ์ ๋๋ฒ๊ฑฐ์ ๊ฒฝ์ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ ๊ทผํ์ฌ ์ ๋์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ๊ฐ์ ์ฝ์ด์ฌ ์ ์์ต๋๋ค. ์ด๋ป๊ฒ ๊ฐ๋ฅํ์ง ๋์ ๋ฐฉ์์ ๋ํด์ ์ค๋ช ํ์ธ์.
๋ต์ ์ค๋น์ค์ ๋๋ค.
๋ต์ ์ค๋น์ค์ ๋๋ค.
๋ต์ ์ค๋น์ค์ ๋๋ค.
๋ต์ ์ค๋น์ค์ ๋๋ค.
๋ต์ ์ค๋น์ค์ ๋๋ค.
๋ง์ฐ์ค๋ก ํ๊ธ ๋ฐ๋ก๊ฐ๊ธฐ๋ฅผ ํด๋ฆญํ์ ๋ ์ปดํจํฐ์์ ์ผ์ด๋๋ ๋ชจ๋ ์ผ์ ๋ํด์ ์ค๋ช ํ์ธ์.
Points: Interrupt, Process Scheduling, Disk Scheduling, Swapping, Thread
๋ต์ ์ค๋น์ค์ ๋๋ค.