Kernel์ ์ด์์ฒด์ ์ค ํญ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ์๋ ์ด์์ฒด์ ์ ํต์ฌ ๋ถ๋ถ์ผ๋ก์จ Hardware์ ์์ฉ ํ๋ก๊ทธ๋จ ์ฌ์ด์์ Interface๋ฅผ ์ ๊ณตํ๋ ์ญํ ์ ํ๋ค. ํ์ง๋ง ์ปค๋์ ํญ์ ์ปดํจํฐ ์์๋ค์ ๋ณด๊ณ ์๊ธฐ ๋๋ฌธ์ User์ ์ํธ์์ฉ์ ํ์ง ์๋๋ค. ๋ฐ๋ผ์ ์ฌ์ฉ์์ ์ง์ ์ ์ธ ์ํธ์์ฉ์ ์ํด ํ๋ก๊ทธ๋จ์ ์ ๊ณตํ๋ค.
Component of Computer System
Hardware๊ฐ ๋ฐ๋ฅ์ ์กด์ฌํ๋ค. ๊ทธ ์์ ์ด์์ฒด์ ๊ฐ ๋์๊ฐ๋ค. OS๋ ํ๋์จ์ด๋ฅผ ๋ ์ ์ , ์ง์ ์ ์ผ๋ก ๋ค๋ฃฐ ์ ์๋ ์ํํธ์จ์ด์ด๋ค. ํ๋์จ์ด๋ฅผ ๊ฑด๋๋ฆด๋ ํญ์ OS๋ฅผ ํตํด์ ์ ๊ทผํ๊ฒ ๋๋ค. ํน๊ถ ๊ณ์ธต์ด ์กด์ฌํ๋ค. ๊ทธ ์์์ ๋๋ ํ๋ก๊ทธ๋จ์ ์์ฉํ๋ก๊ทธ๋จ, ์ดํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์์คํ ํ๋ก๊ทธ๋จ, ๊ทธ๋ฅ ์์ฉํ๋ก๊ทธ๋จ์ผ๋ก ๋๋๋ค. ์์คํ ํ๋ก๊ทธ๋จ์ ์์ฉํ๋ก๊ทธ๋จ์์ ์ ๊ณตํด์ฃผ๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ปดํ์ผ๋ฌ๊ฐ ๊ทธ ์์ด๊ณ , ์ด๊ฒ์ ํตํด์ ๊ฐ๋ฐ์ ํ ์ ์๊ณ , ์์คํ ์ ๋์์ฃผ๋ ํ๋ก๊ทธ๋จ์ธ๋ฐ ์ผ๋ฐ์ ์ผ๋ก ์์คํ ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ๋งํ๋ค. application์ ์ํ๋ค๊ณ ๋งํ ์ ์๋ค. ์ด๋ค ํ ์คํฌ๋ฅผ ์ํํ ๋ ๋์์ฃผ๋ ๊ฒ์ ์ดํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋จ์ ์ํ๋ค. ์ฌ์ฉ์ User๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ํตํด์ ์ฌ์ฉ์ ํ๋ค. ์ฌ๋์ผ์๋ ์๊ณ ๊ธฐ๊ณ์ผ ์๋ ์๋ค.
What Operating System do
ํ๊ฒฝ์ ์ ๊ณตํด์ค๋ค. ์ด ๊ด์ ์ ์ด์์ฒด์ ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ดค์ ๋ ์์์ ์๋๋ฅผ ๋ด๋ ค๋ค๋ณด์์ ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ค. ๋ฐ์์ ๋ณด๊ฒ ๋๋ฉด ํ๋์จ์ด ์ ์ฅ์์ ์ด์์ฒด์ ๋ ํ๋์จ์ด์ ๊ด๋ฆฌ์๊ฐ ๋๋ค. ํ๋์จ์ด๋ฅผ ์ง์ ๊ฑด๋๋ฆด์์๋ ๊ฒ์ ์ด์์ฒด์ ๊ฐ ์ ์ผํ๋ค. ๋ชจ๋ ํ๋์จ์ด๋ฅผ ๊ด๋ฆฌํด์ฃผ๋ ๊ด๋ฆฌ์ ์ญํ ์ด๋ค.
User view
PC ํ๊ฒฝ์์ GUI ๊ฐ์ ์ฒด์ ๊ฐ ์ค์ํ๊ณ , Performance๋ ์ค์ํ๋ค. ์ด๋ฐ ๊ฒ๋ค์ด ๊ฐ์ธ์ฉ ์ปดํจํฐ์์ ์ค์ํ๋ค. ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ์์๋ ํฐ์น ์คํฌ๋ฆฐ, ์์ฑ ์ธ์, ๊ทธ๋ฆฌ๊ณ ๋ฒ ํฐ๋ฆฌ ์๋ช ๋ ์ค์ํ๋ค. ๋ถํ์ํ๊ฒ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ํ๊ฒ๋๋ฉด ๋ฒ ํฐ๋ฆฌ๋ฅผ ๋ง์ด ์ฌ์ฉํ๊ฒ ๋๋ค. ๊ณ์ฐ์ ํ๋๋ผ๋ ๋ฒ ํฐ๋ฆฌ๋ฅผ ์ ๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ํ๋ค. Multi user system์์ ์ฌ๋ฌ๊ฐ์ ์ปดํจํ ์ ํ๊ฒ ๋๋๋ฐ Resource Utilization์ด ์ค์ํ๋ค. ์ปดํจํฐ resource๋ฅผ ๊ต๋๋ก ์ฌ์ฉํด์ผ ํ๋๋ฐ ์ด ๊ฒ์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ด์ผ ํ๋ค. ์ค์ผ์ค๋ง์ด ํ์ํ๋ฐ ์ด๊ฒ์ด ์๋ชป๋๋ฉด resource๊ฐ ๋จ์๋๊ฒ ๋๋ค. ๊ทธ๋ฐ์ผ์ด ์๋๋ก ์ต๋ํ ์์คํ ์ ํจ์จ์ ์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ๊ฒ์ด ์ค์ํ๋ค. Network-based, Embedd ๋ฑ๋ ์กด์ฌํ๋ค
System View
OS๊ฐ ํ๋ ์ผ. ํ๋๋ Resource allocater์ ์ญํ . ์๋ฅผ ๋ค์ด ํ์ผ์ ์ ๊ทผํ๋ ๊ฒ์ ์๊ฐํด๋ณด์. ์ด๊ณ ์ฐ๊ณ ์ ์ฅํ๋ค. fopen์ ํ ๋ ๋์คํฌ์ ์ผ๋ถ ํน์ ์์ญ์ด ํ์ผ์ธ๋ฐ ์คํํ๊ณ ๋ซ๊ธฐ ์ ๊น์ง ๋ ํผ์ ์ฐ๊ฒ๋ค๊ณ ์์ฒญ์ ํ๋ ๊ฒ์ด๋ค. os๊ฐ ๋ณด๊ธฐ์ ๋ฌธ์ ๊ฐ ์์ผ๋ฉด writingํ ์ ์๋ ๊ถํ์ ๋ ์ ์ ์ผ๋ก ์ฃผ๋ ๊ฒ์ด๋ค. ๋ ์ ์ ์ด์ง ์๋ค๋ค๋ฉด ๋ค๋ฅธ ์ฌ๋์ด ์ด๊ฒ์ ์ด์ด์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. OS์ ์ข ๋ฅ์ ๋ฐ๋ผ ๋ ์ ์ ๊ถํ์ด ๋ค๋ฅด๋ค. Reading ๋ง์ ๊ณต์ ํ๋ ๊ฒฝ์ฐ ๋์์ ์ฝ์ ์ ์๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ฅ์ด ๋ค๋ฅด๋ค. ํ๋ฆฐํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ฌ๋์ด ๊ทธ ๋ฌธ์๋ฅผ ํธ์งํ๋ ๊ฒฝ์ฐ ์์ด๊ฒ ๋๋ฏ๋ก ๋์์ ์ฌ์ฉํ๋ ๊ฒ์ ํ์ฉํ๋ฉด ์๋ผ๋ฏ๋ก ๋ ์ ์ ๊ถํ์ ๋ถ์ฌํ๋ค. ๋ค๋ฅธ ์๋ก malloc์ด ์๋ค. ๋์ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ด๋.. ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋์จ์ด ๋ฆฌ์์ค์ธ๋ฐ ๋จ๋คํ๊ณ ๊ฐ์ด ์ฌ์ฉํ๋ resource์ด๋ค. ์ ์์ ์ผ๋ก ์คํดํ๊ธฐ ์ํด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ๋์ค์๋ ๋จ๋ค์ด ์ ๊ทผํ ์ ์๋๋ก ํด์ผํ๋ค. ์ผ๋ฐํํ๋ฉด resource allocation์ด ๋๋ค. ๋ฉ๋ชจ๋ฆฌ, ํ์ผ ์คํ, ํ์ผ ์ ์ฅ, IO ๊ธฐ๊ธฐ๋ค์ด ๊ทธ ์๊ฐ ๋๋ค.
๋ ๋ฒ์งธ์ ๊ด์ . ์ฌ๋ฌ๊ฐ์ ํ๋ก๊ทธ๋จ์ด ๋๊ธฐ ๋๋ฌธ์ ์๊ธฐ๋ ๋ฌธ์ . ์) ํฌ์ธํฐ๋ฅผ ์๋ชป์ผ๋ค๋ ์๊ธฐ๋ ์ฃผ์๊ฐ์ ์๋ชป ์ป๋ค๋ ์ ํธ์ด๋ค. ์ ๊ทผ์ ํ ๋ ์ ์์ ์ธ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์ ๊ทผ์ ํ๋๋ฐ ๋ค๋ฅธ ๊ณณ์ ํฌ์ธํฐํ ๋ ์๋ฑํ ๊ณณ์ ๊ฐ๋ฆฌํค๊ฒ ๋๋ ๋ฒ๊ทธ๊ฐ ์กด์ฌํ๋ค. OS ์ ์ฅ์์ ํ ๋น๋์ง ์์ ์์ญ์ ์ ๊ทผ์ ํ๋ ค๊ณ ํ๋ ๊ตฌ๋๋ผ๊ณ ์ธ์ํ๊ณ ํ๋ก๊ทธ๋จ์ด terminate๋๋๋ก ํ๋ค. ๊ทธ๊ฒ์ด os์ ์ญํ ์ด๋ค. ๋ฆฌ์์ค๋ ๊ณต์ฉ์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ปจํธ๋กค์ ํด์ฃผ๋ ๊ฒ์ด๋ค.
Computer System Operation
Booting์ ํ ๋ ๋ฌด์จ์ผ์ด ์ผ์ด๋๋๊ฐ. ๋ฉ์ธ๋ณด๋์๋ ์์ ํ๋ก๊ทธ๋จ์ด ๋ค์ด๊ฐ์๋ค. ์ปดํจํฐ๋ฅผ ์์ํ๋ฉด ๋ฌด์กฐ๊ฑด ๊ทธ ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ฒ ๋์ด์๋ค. ๊ทธ ํ๋ก๊ทธ๋จ์ ๋๊ฐ์ง์ ์ผ์ ํ๋ค. ๊ทธ ์์คํ ์ Bootstrap loader๋ผ๊ณ ํ๋ค. Bios ๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค . ๊ทธ ๊ธฐ๋ฅ์ ์์๋ณด์ . ํ๋๋ ํ์ฌ ์์คํ , ํ๋์จ์ด๋ฅผ ์ฒดํฌํ๋ค. ํค๋ณด๋์ ์ ๋ฌด ๋ฑ์ ์ฒดํฌํ๊ณ ์ด๊ธฐํ๋ฅผ ํ๋ค. ์ด๊ธฐํ์๋ cpu์ ๋์ง์คํฐ ์ค์ ์ด๋ฐ๊ฒ๋ค์ด ์๋ค. ๋ ๋ฒ์งธ๋ OS๋ฅผ load ํ๋ค. OS๋ฅผ ์ด๋ป๊ฒ ์ฐพ์์ ๋ถํ ์ ์ํค๋ ๊ฐ? Bootstrap loader๋ ์ด๋ค OS์ธ์ง ์ ๊ฒฝ๋ ์์ด๋ค. ๋ธํธ์คํธ๋ฉ์ 0๋ฒ ๋ธ๋ก์ ์ฌ๋ ค์ ์คํ์ ์ํจ๋ค. ๋๊ตฐ๊ฐ๊ฐ 0๋ฒ ๋ธ๋ก์ ๊ทธ OS๋ฅผ ์ฌ๋ ค๋๋ ๊ฒ์ด๋ค. ๋ก๋๋ ๋ ๋ถํ ์ด ์ด๋ฃจ์ด์ง๋ค. ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ด๊ธฐํํ๊ฑฐ๋ ํ์ํ ํ๋ก์ธ์ค๋ฅผ ๋ฐ์นญํ๋ ์ผ์ ํ๋ค.
์) ์ด์์ฒด์ ์ ๋์์ ์์ญ๊ฐ์ ํ๋ก๊ทธ๋จ์ด ๋์๊ฐ๊ธฐ ์ํด์ ์ ๋ณด๊ฐ ์ ์ฅ๋๋ ๊ณต๊ฐ์ด ์์ด์ผ ํ๋ค. ๊ทธ๋ฐ linked list ํํ์ ๊ตฌ์กฐ๊ฐ ์ด๊ธฐํ๊ฐ ๋๋ฉด Booting์ด ๋๋๋ค. OS๋ Booting์ด ๋๋ฉด ์๋ฌด๊ฒ๋ ์ด์ ํ์ง ์๋๋ค. ์์ฒญ์ ๊ทธ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋๋ค. ๋ค์ ์์ฒญ์ ๊ทธ์ ๊ธฐ๋ค๋ฆด ๋ฟ์ด๋ค.
์) ํ๋ก๊ทธ๋จ์ ์คํํ ๋ ์์ด์ฝ์ ๋๋ธ ํด๋ฆญ์ ํ๋ ๋ช ๋ น์ด ๊ฐ๋ค. ๋ง์ฐ์ค ํด๋ฆญ์ผ๋ก ์ ํธ(Interrupt)๋ฅผ ๋ฐ์์ํจ๋ค. ๊ทธ ์ ํธ๊ฐ OS์ ์ ๋ฌ์ด ๋๋ฉด ๊ทธ ์ ํธ๋ฅผ ๋ฐ์์ ์ฒ๋ฆฌ๋ฅผ ํ๋ค. OS๋ ๊ทธ ๋ง์ฐ์ค๋ฅด ์์ง์ฌ์ฃผ๊ณ ๋๋ธํด๋ฆญํ ๋ event๊ฐ ๋ฐ์์ ํ๊ณ (Event๋ ์ถ์์ ์ธ ๋ง์ด๊ณ Interrupt๋ ๊ตฌ์ฒด์ ์ธ ๋ํ ์ผ์ ๋์ํ๋ค) ๊ทธ ์ขํ๋ฅผ ๋ณด๊ณ ์์ด์ฝ์ ํด๋นํ๋ ์ํํธ์จ์ด๋ฅผ ์คํํ๋ค. ๊ทธ ๊ณผ์ ์ด ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํด์ฃผ๋ ์์ฒญ์ ์ํํ๋ ๊ณผ์ ์ด๋ค. ๋๋ธํด๋ฆญ == ์ฝ์, ๊ทธ๋ฆฌ๊ณ ์์ฒญ์ ๊ธฐ๋ค๋ฆฐ๋ค. Interrupt driven program์ด๋ผ๊ณ ์ค๋๋ ๋ถ๋ฆฌ๊ณ ์๋ค.
Modern Computer System
์ปดํจํฐ ์์คํ ์ค์์ CPU๊ฐ ์กด์ฌํ์ง ์๋๋ค. Bus, ๋ฐ์ดํฐ๊ฐ ์ ์ก๋๋ Common Bus๊ฐ ์กด์ฌํ๋ค. Bus๋ ์ฌ๋ฌ ๊ฐ์ ์ฅ์น๋ค์ ์ฐ๊ฒฐํ๊ณ ์๋ ๊ณต์ฉ ๋ฒ์ค์ด๋ค. ์ ๊ณต์ฉ์ธ๊ฐ? CPU์์ Disk ๋ก ๊ฐ๋, ๋ค์ํ ๊ฒฝ์ฐ์ sharingํ ๋ ์ฌ์ฉํ๋ ๊ณต์ฉ ๋ฒ์ค๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ฌ๋ฌ ์ฅ์น๋ฅผ ๋งค๋ฌ์ ๋์ผ๋ฉด ์ฐ๊ฒฐ์ด ๊ฐ๋จํด์ง๊ณ ํ์ฅ์ฑ์ด ์ข์์ง ์ ๋ฐ์ ์๋ค. ์ค์ํ ์ฑ์ง์ด ์กด์ฌํ๋ค. Bus๋ผ๋ ๋ฐ์ดํฐ Path๋ ๊ต์ฅํ ํฌ๊ณ ๋น ๋ฅด๋ค.
์ฅ์น๊ฐ ์ด๋ป๊ฒ ๋ถ๋๊ฐ?? disk๋ bus์ ๋นํด ์์ฒญ๋๊ฒ ๋๋ฆฌ๋ค. ๋ฌด์์ธ๊ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ค. ๊ทธ๋์ ๊ทธ ์ค๊ฐ์ controller๋ผ๋ ๊ฒ์ด ์กด์ฌํ๋ค. controller๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋์ ์์นํ ๊ฒ์ด ๋ด๋ถ๊ฐ ๋๊ณ ์์ ๊ฒ์ด ์ธ๋ถ๊ฐ ๋๋ค. bus์ ์ง์ ์ ์ผ๋ก device๊ฐ ์ฐ๊ฒฐํ ์ ์์ผ๋ฏ๋ก controller๊ฐ ์๋๋ฐ ๊ทธ ์์ buffer๊ฐ ์กด์ฌํ๋ค. ์๋๊ฐ ๋ง์ง ์์ผ๋ฏ๋ก buffer์๋ค๊ฐ ์ ๋ณด๋ฅผ ์ง์ด๋ฃ๊ฒ ๋๋ค. IO์์ ์ฝ๊ณ ์ธ๋๋ ์ผ๋จ buffer์ ์ง์ด๋ฃ๊ณ Bus๊ฐ ๊ฐ์ ธ์จ๋ค๋ ๊ฒ์ด๋ค. ๋๋ผ์ด๋ฒ์ controller๊ฐ ์ด๋ป๊ฒ ๋ค๋ฅธ๊ฐ..?! controller๋ ํ๋์จ์ด์ด๋ค. ๋๋ผ์ด๋ฒ๋ ์ํํธ์จ์ด์ด๋ค.
Modern Computer System (cont'd)
๊ตฌ์กฐ์ ์ค์์ฑ์ด ์กด์ฌํ๋ค. ๊ฐ Device๊ฐ ๋์์ ๋๋ฌํ ์ ์๋ค๋ ๊ฒ์ด๋ค. Disk๊ฐ ์ฝ๊ฑฐ๋ ์ฐ๋ ๋์์ cpu๊ฐ ๋ค๋ฅธ ์ผ์ ์ํํ ์ ์๋ค๋ ์ ์ด๋ค. ๋์์ ์ผ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค๋ ์ !! ๋ค์์ ๋ฉ๋ชจ๋ฆฌ์ ํน์ง์ด ์๋ค. Bus ์ค์ฌ์ ๊ตฌ์กฐ์์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ์์ง์ด๋๋ฐ ํ๋ธ์ ์ญํ ์ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. disk์์ cpu๋ฅผ ์ง์ ์ฝ์ด์ฌ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋ค. ํค๋ณด๋ ํ์ ์ ๊ฒฝ์ฐ controller์์ cpu๋ก ๋ฐ๋ก ๊ฐ๋ ๊ฒ์ด ์๋๋ผ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ด์ฌํ๋ค. Graphic adapter์์ cpu์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋งค๊ฐ์ฒด๊ฐ ๋๋ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋ค.
Interrupt์ ๋ํ ์ค๋ช . CPU๊ฐ ๋๋ค๊ฐ disk controller๊ฐ diskํํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋์ cpu๋ ๋ค๋ฅธ ์์ ์ ์งํํ ์ ์๋ค. Disk์ ์๋ ๋ด์ฉ์ ๋ค ์ฝ์ด์์ ๋, CPU์๊ฒ ์๋ฃ ์ ํธ๋ฅผ ๋ณด๋ด๊ฒ ๋๋ค. ๊ทธ Event๋ฅผ ๋ฐ์์ํค๊ฒ ๋๋ค. Interrupt๋ฅผ handling ํด์ผํ๋ค. ๋ด๊ฐ ๋ญ๊ฐ๋ฅผ ํ๊ณ ์๋๋ฐ ์ด๋ค ์ ํธ๊ฐ ๊ฐ์๊ธฐ ํ ํ๊ณ ์๋ฆผ์ด ์ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
Interrupt
Asynchronous signal, ๋ฌด์จ ๋ป์ธ๊ฐ? ์์ธกํ ์ ์๋ ์ ํธ๋ผ๋ ๊ฒ์ด๋ค. ๋ง์ฐ์ค๋ฅผ ์๊ฐํด๋ณด๋ฉด ๋ด๊ฐ ํ๊ณ ์ถ์ ๋ ํด๋ฆญ์ ํ๊ณ ์์ง์ธ๋ค๋ ๊ฒ์ ๋ณด๋ฉด ์ดํดํ ์ ์๋ค. ํนํ ํ๋์จ์ด์์ ๋์ค๋ Interrupt๊ฐ asynchronousํ๋ค. CPU๊ฐ disk accessc๋ฅผ ํ๊ธฐ ์ํด์ ๋ด ์ดํ๋ฆฌ์ผ์ด์ ์ด disk controller์๊ฒ ์ง์ ์์ฒญ์ ํ ์ ์๋ค. ๊ทธ๋์ Interrupt๋ฅผ ํตํด์ ์์ฒญ์ ํ๊ฒ ๋๋ค. HW interrupt, ๋ง์ฐ์ค ํด๋ฆญ, ํค๋ณด๋์ ์ ๋ ฅ์ด ๊ทธ ์์ด๋ค. Asynchronous ํ๋ค.
SW Interrupt ๋ ์์คํ ์ฝ์ด๋ผ๋ ๊ฒ์ด ์๋ค. OS์ ์์ฒญํ๊ธฐ ์ํด์ Interrupt ๋ฅผ ๋ฐ์์ํค๊ฒ ๋๋๋ฐ ์์ธ๊ฐ ์๋ค. 0์ผ๋ก ๋๋๊ฒ ๋๋ ์์์ ์งํํ ๊ฒฝ์ฐ, ํ๋ก๊ทธ๋จ์ด ์ฃฝ๊ฒ ๋๋ค. 0์ผ๋ก ๋๋๋ ์๊ฐ์ Interrupt๊ฐ ๋์ค๊ฒ ๋๊ณ OS๊ฐ ํ๋ก๊ทธ๋จ์ ์ฃฝ์ฌ๋ฒ๋ฆฌ๊ฒ ๋๋ ๊ฒ์ด๋ค.. Invalid memory access, ํฌ์ธํฐ์ ๊ฒฝ์ฐ ์ด์ํ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ Interrupt๋ฅผ ๋ฐ์์ํค๊ณ ํ๋ก๊ทธ๋จ์ ์ข ๋ฃ์ํจ๋ค. ์ด๋ฐ ์ค๋ฅ๋ค์ ์๋์ ์ผ๋ก ๋ฐ์์ํจ ๊ฒ์ด ์๋๋ค. ์ด๋ฐ ๊ฒ๋ค์ Exception์ด๋ผ๊ณ ๋ณธ๋ค.
Intel Processor Event-Vector Table
Interrupt์๋ ์ข ๋ฅ๊ฐ ๋ค๋ฅด๊ณ ๊ณ ์ ํ ๋ฒํธ๊ฐ ๋งค๊ฒจ์ ธ ์๊ณ IRQ ๋ฒํธ๋ผ๊ณ ๋ถ๋ฅธ๋ค. Interrupt Request ๋ฒํธ๋ผ๊ณ ๋ถ๋ฅธ๋ค. Interrupt Handler๋ ์ฌ๋ฌ ๊ฐ๊ฐ ์กด์ฌํ๋ค. 5๋ฒ Interrupt๊ฐ ๋ฐ์ํ์ ๋๋ 5๋ฒ Handler๊ฐ ์๋ํด์ผ ํ๋ค. ํ๋ฅผ ํ๋ ๋ง๋ค๊ณ Interrupt handler์ ์์ ์ฃผ์๋ฅผ ๋ง๋ค๋ฉด ๋๋ค. ๊ทธ ํ๋ฅผ Interrupt vector๋ผ๊ณ ๋ถ๋ฅธ๋ค.
HardWare Process
์คํํ๊ฒ ๋๋ฉด ํ๋ก๊ทธ๋จ์ Intruction๋ค์ ์ํด์ ๊ตฌ์ฑ์ด ๋๋ค. Jump๋ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋ฅผ ํ๋๊ฐ. PC program counter๊ฐ ์กด์ฌํ๊ณ , ์ผ์ข ์ ํฌ์ธํฐ ๋ณ์์ด๊ณ ํ์ฌ ์คํํด์ผํ๋ Instruction์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค. jumpํ ๊ณณ์ ์ฃผ์๋ฅผ PC์ ์ง์ด๋ฃ๊ฒ ๋๋ค. ์ผ๋ฐ์ ์ธ ์ํฉ์์ Interrupt_Request๋ false์ด์ง๋ง ์๋ฅผ ๋ค์ด ์๋ฃ๋์๋ค๋ Interrupt๊ฐ ๋ฐ์ํ๋ฉด True๊ฐ ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์์ PC ๋ฒ์งธ์ Instruction์ ๋์ง์คํฐ๋ก ๊ฐ์ ธ์ค๊ณ PC๋ฅผ ์ฆ๊ฐ์ํจ๋ค. ๊ทธ๋ฆฌ๊ณ ์คํํ๊ณ ๋ค์ PC๋ฅผ ์คํํ๊ธฐ ์ ์ Interrupt๊ฐ ๋ฐ์ํ๋์ง ์ ๋ฌด๋ฅผ ํ์ธํ๋ค. ๋ฐ์ํ๋ค๋ฉด Interrupt Handler๋ก ๊ฐ์ผํ๋๋ฐ ๊ทธ ์ ์ ํ์ฌ ์์น๋ฅผ ์ ์ฅํด์ผ ํ๋ค. ํ์ฌ ์๋ PC์ ๊ฐ์ ์ ์ฅํ๊ฒ ๋๋ค. ๊ทธ๋ฆฌ๊ณ IRQ์ ํด๋นํ๋ ๊ณณ์ผ๋ก ์ด๋ํ๊ฒ ๋๋ค.