CPU ์ค์ผ์ค๋ง์ด๋? ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ์คํ๋๊ณ ์๋ ๊ฒฝ์ฐ CPU๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด ํ๋ก์ธ์ค๋ฅผ ์ ๋ฐฐ์ ํ๋๋ก ํ๋ ๊ฒ ์ค๋ฒํค๋๋ ์ค์ด๊ณ , ์ฌ์ฉ๋ฅ ์ ๋๋ฆฌ๊ณ ๊ธฐ์ ํ์์ ๋ฐ์ํ์ง ์๋๋ก ํ๋ ๊ฒ Batch System : ๊ฐ๋ฅํ๋ฉด ๋ง์ ์ผ์ ์ํ, ์ฒ๋ฆฌ๋์ด ์ค์ํ๋ค. Interactive System : ๋น ๋ฅธ ์๋ต์๊ฐ == ์ ์ ๋๊ธฐ ์๊ฐ Real-time System : ๋ฐ๋๋ผ์ธ ๋ง์ถ๊ธฐ ์ ์ ๊ณผ ๋น์ ์ ์ค์ผ์ค๋ง ์ ์ ์ค์ผ์ค๋ง : OS๊ฐ CPU์ ์ฌ์ฉ๊ถ์ ํ๋ก์ธ์ค์๊ฒ ๋บ์ ์ ์๋ ๊ฒฝ์ฐ ๋น์ ์ ์ค์ผ์ค๋ง : ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๊ฑฐ๋ I/O๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ๋ ์คํ ๋ณด์ฅ CPU ์ค์ผ์ค๋ง์ ์ข ๋ฅ ๋น์ ์ ์ค์ผ์ค๋ง : FCFS (Fist Come First Served) FIFO(First In First..
ํ๋ก์ธ์ค vs ํ๋ก๊ทธ๋จ ํ๋ก๊ทธ๋จ : ํน์ ์์ ์ ์ํํ๊ธฐ ์ํ ์ฝ๋๋ค์ ๋ชจ์ ํ๋ก์ธ์ค : ํ๋ก๊ทธ๋จ์ด ์ปค๋์ ๋ฑ๋ก๋ ์ํ๋ฅผ ํ๋ก์ธ์ค๋ผ๊ณ ํ๋ค. ์ฑ๋ฅ ํฅ์์ ์ํด ์ปค๋์ด ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๋ค. JOB : ํ๋ก๊ทธ๋จ + ๋ฐ์ดํฐ ํ๋ก์ธ์ค๋? ์ปค๋์ ๋ฑ๋ก๋ ์ปค๋์ ๊ด๋ฆฌํ์ ์๋ ํ๋ก๊ทธ๋จ ๊ฐ์ข ์์์ ์์ฒญํ๊ณ ํ ๋น๋ฐ์ ์ ์๋ ๋์ ๊ฐ์ฒด PCB๋ฅผ ํ ๋น ๋ฐ์ ๊ฐ์ฒด PCB๋? ์ปค๋๋ด์ ์กด์ฌํ๋ฉฐ, ํ๋ก์ธ์ค์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ค. PCB์๋ ๋ค์๊ณผ ๊ฐ์ ํ๋๊ฐ ์กด์ฌํ๋ค. ์ค์ผ์ค๋ง ์ ๋ณด ํ๋ก์ธ์ค ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ ๋ณด ์ ์ถ๋ ฅ ์ํ ์ ๋ณด ๋ฌธ๋งฅ ์ ์ฅ ์์ญ ๊ณ์ ์ ๋ณด(๋ค์ค ์์คํ ์ธ ๊ฒฝ์ฐ๋ฅผ ์ํ ์ ๋ณด) ํ๋ก์ธ์ค ์ํ Created State (-> ready or suspended ready) ํ๋ก๊ทธ๋จ์ ์ปค๋์ ๋ฑ๋กํ ์ํ, PCB๋ฅผ..
์ด์์ฒด์ ์ ๊ตฌ์กฐ ์ปค๋ ํต, ๊ด๋ฆฌ์ ํ๋ก๊ทธ๋จ, ์์ฃผ ํ๋ก๊ทธ๋จ, ์ ์ด ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค. ํ๊ตญ์ด๋ก ์๋งน์ด๋ผ๋ ๋ป, ํต์ฌ์ ์๋ฏธํ๋ค. ์์ฃผ ์ฐ์ด๋ ๊ธฐ๋ฅ(ํ๋ก์ธ์ค ๊ด๋ฆฌ, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ...)๋ค์ ๋ชจ์๋์๊ธฐ์ ํญ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด ์๋ค. ์ ํธ๋ฆฌํฐ ์ด์์ฒด์ ์์ ์ปค๋์ ์ ์ธํ ๋ชจ๋ ๋ถ๋ถ์ ๋งํ๋ค. ๊ฐ๋ ์ฐ์ด๋ ๊ธฐ๋ฅ๋ค์ด๊ธฐ์ ํ์ํ ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋๋ค. ์์คํ ์ฝ ์ปค๋์๊ฒ ๋ฌด์์ธ๊ฐ๋ฅผ ์์ฒญํ๊ธฐ ์ํ API ์ด์์ฒด์ ์ ๊ธฐ๋ฅ ํ๋ก์ธ์ค ๊ด๋ฆฌ ์์ฑ/์ญ์ , ์ํ ๊ด๋ฆฌ ์์ ํ ๋น ํ๋ก์ธ์ค ๊ฐ ํต์ ๋ฐ ๋๊ธฐํ ๊ต์ฐฉ์ํ ํด๊ฒฐ PCB๋ฅผ ๊ฐ์ง์ผ๋ก์จ ํ๋ก์ธ์ค ์ ๋ณด๋ฅผ ๊ด๋ฆฌ ํ๋ก์ธ์ ๊ด๋ฆฌ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ง ๊ด๋ฆฌ(์ฒ๋ฆฌ ์์ ๊ด๋ฆฌ, CPU ํ ๋น) ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ํ๋ก์ธ์ค์ ๋ํ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐ ํ์ ๊ฐ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ์์ญ ..
์ด์์ฒด์ ์ ํ๋์จ์ด์ ๊ด๊ณ ํ๋ก์ธ์์๊ฒ ์ฒ๋ฆฌํ ์์ ํ ๋น ๋ฐ ๊ด๋ฆฌ (ํ๋ก์ธ์ค ์์ฑ ๋ฐ ๊ด๋ฆฌ) ํ๋ก๊ทธ๋จ์ ํ๋ก์ธ์ ์ฌ์ฉ ์๊ฐ ๊ด๋ฆฌ, ๋ณต์ ํ๋ก๊ทธ๋จ๊ฐ ์ฌ์ฉ ์๊ฐ ์กฐ์จ ํ๋ก๊ทธ๋จ์ ์์ฒญ์ ๋ฐ๋ฅธ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐ ํ์, ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์ฑ ๋ฐ ๊ด๋ฆฌ, ๋ ผ๋ฆฌ์ฃผ์ -> ๋ฌผ๋ฆฌ์ฃผ์ ๋ณํ ์ฃผ๋ณ ์ฅ์น ์ฌ์ฉ์ ์ํ ์ธํฐํ์ด์ค ์ ๊ณต (์ฅ์น๋๋ผ์ด๋ฒ ๊ด๋ฆฌ) ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ํ์ผ ์์ฑ ๋ฐ ์ญ์ , ๋์คํฌ ๊ณต๊ฐ ๊ด๋ฆฌ ์ปดํจํฐ ํ๋์จ์ด๋ ํฌ๊ฒ ํ๋ก์ธ์, ๋ฉ๋ชจ๋ฆฌ, ์ฃผ๋ณ์ฅ์น๋ก ๋ถ๋ฅํ ์ ์๋ค. ํ๋ก์ธ์ ์ฐ์ฐ ์ํ(์ฐ์ฐ์ฅ์น)์ด ๊ฐ๋ฅํ๋ฉฐ ์ปดํจํฐ์ ๋ชจ๋ ์ฅ์น์ ๋์์ ์ ์ด(์ ์ด์ฅ์น)ํ๋ค. ๋ ์ง์คํฐ ํ๋ง๋๋ก ๋งํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ค ํ๋์ด๋ค. ์ผ๋ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ์ ๋ค๋ฅธ ์ ์ ํ๋ก์ธ์ ๋ด๋ถ์ ์๋ ๋ฉ๋ชจ๋ฆฌ๋ผ๋ ์ ์ด๋ค. ์ปดํจํฐ์์ ๊ฐ์ฅ ๋น ๋ฅธ ๋ฉ๋ชจ๋ฆฌ์ด๋ค...
์ธํฐ๋ฝํธ (Interrupt) ์ธํฐ๋ฝํธ๋? ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๋์ค์ ์๊ธฐ์น ์์ ์ํฉ์ด ๋ฐ์ํ ๊ฒฝ์ฐ ์คํ ์ค์ธ ์์ ์ ์ค๋จํ๊ณ , ์ํฉ์ ์ฒ๋ฆฌํ ํ ์คํ ์ค์ด๋ ์์ ์ผ๋ก ๋ณต๊ทํ์ฌ ๋ง์ ์ฒ๋ฆฌํ๋ ๊ฒ. ์ฆ, ์ง๊ธ๋ณด๋ค ์ค์ํ ์ผ์ด ๋ฐ์ํ๋ฉด ๊ทธ ์ผ์ ๋จผ์ ์ฒ๋ฆฌํ๋ ๊ฒ ์ธ๋ถ ์ธํฐ๋ฝํธ CPU์ ํ๋์จ์ด ์ ํธ์ ์ํด ๋ฐ์ ์ ์ถ๋ ฅ ์ฅ์น, ํ์ด๋ฐ ์์น, ์ ์ ๋ฑ ์ธ๋ถ์ ์์ธ์ ๋ฐ์ ์ ์ ์ด์, ๊ธฐ๊ณ ์ฐฉ์ค, ์ธ๋ถ ์ ํธ, ์ ์ถ๋ ฅ ๋ด๋ถ ์ธํฐ๋ฝํธ CPU์ ํ๋์จ์ด ์ ํธ์ ์ํด ๋ฐ์ Trap์ด๋ผ ๋ถ๋ฅด๋ฉฐ, ์๋ชป๋ ๋ช ๋ น์ด๋ ์๋ชป๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ๋ ๋ฐ์ 0์ผ๋ก ๋๋๊ธฐ, ์ค๋ฒํ๋ก์ฐ, Exception.. SW ์ธํฐ๋ฝํธ ๋ช ๋ น์ด์ ์ํ์ ์ํด ๋ฐ์ ์ฌ์ฉ์๊ฐ ํ๋ก๊ทธ๋จ์ ์คํ์ํฌ ๋ ๋ฐ์ SW์ด์ฉ ์ค์ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์คํ์ํค๋ฉด ์๋ถํ ์ฒ..