System Structure
Last updated
Last updated
CPU
๋ฉ๋ชจ๋ฆฌ๋ก๋ถํฐ ๋งค ํด๋ญ ์ฌ์ดํด๋ง๋ค ๋ช ๋ น(instruction)์ ํ ์ค์ฉ ์ฝ์ด ์คํ
register
CPU์์ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ๋ ๋น ๋ฅด๋ฉด์, ์ ๋ณด๋ฅผ ์ ์ฅํ ์ ์๋ ๊ณต๊ฐ.
๋ํ register : Program Counter(pc)
mode bit
์ด์์ฒด์ ์ธ์ง, ์ฌ์ฉ์ํ๋ก๊ทธ๋จ์ธ์ง ๊ตฌ๋ถ์ ํด์ฃผ๋ bit
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์๋ชป๋ ์ํ์ผ๋ก, ๋ค๋ฅธ ํ๋ก๊ทธ๋จ ๋ฐ ์ด์์ฒด์ ์ ํผํด๊ฐ ๊ฐ์ง ์๋๋ก ํ๊ธฐ ์ํ ๋ณดํธ์ฅ์น.
ํ๋์จ์ด(HW, ์ดํ HW) ์ ์ผ๋ก ๋๊ฐ์ง ๋ชจ๋์ operation์ง์
1: ์ฌ์ฉ์๋ชจ๋
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ ์ํ
์ ํ๋ instruction๋ง ์ํ. (๋ณด์์ ๋ฐ๋ผ)
์ปค๋๋ชจ๋๋ฅผ ์ํ์ค์ด๋ค๊ฐ, ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์๊ฒ CPU๋ฅผ ๋๊ธฐ๊ธฐ ์ ์ mode bit๋ฅผ 0์ผ๋ก ๋ณ๊ฒฝ.
0: ์ปค๋๋ชจ๋ (=๋ชจ๋ํฐ๋ชจ๋, ์์คํ ๋ชจ๋)
OS ์ฝ๋ ์ํ
๋ณด์์ ํด์น ์ ์๋ ์ค์ํ ๋ช ๋ น์ด๋ ์ปค๋ ๋ชจ๋์์๋ง ์ํ์ด ๊ฐ๋ฅํ 'ํน๊ถ ๋ช ๋ น'์ผ๋ก ๊ท์ ํ๋ค.
๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ๋ฟ๋ง์ด ์๋๋ผ, I/O ๋๋ฐ์ด์ค ์ ๊ทผ ํน์ ๋ชจ๋ instruction์ ์ํํ ์ ์๋ค.
์ธํฐ๋ฝํธ๋ ์์ธ์ํฉ์์ ํ๋์จ์ด๊ฐ mode bit๋ฅผ 0์ผ๋ก ๋ณ๊ฒฝ.
interrupt line (interrupt request line)
I/O ๋๋ฐ์ด์ค์์ ๋ฐ์ํ ์ด๋ฒคํธ(์ธํฐ๋ฝํธ)๋ฅผ ์๋ ค์ค ๋ ์ฌ์ฉ๋๋ ์ฅ์น.
์: ํค๋ณด๋ ์ ๋ ฅ์ด ๋๋ฌ๊ฑฐ๋, ๋์คํฌ์์ ์ฝ์ด์ค๋ ์์ ์ด ๋๋ฌ์์ ์๋ฆด๋ ๋ฑ
CPU๋ ํ๋์ insturction์ ์ํํ ํ, interrupt line์ ํ์ธํ์ฌ interrupt๊ฐ ๋ฐ์๋์ง ํ์ธํ๊ณ , ๋ฐ์ ์, ํ์ฌ pc ์ฃผ์๋ฅผ ์ฝ์ด๋ค์ด๋ ๊ฒ์ด ์๋๋ผ, ์ ์ ํ๋ ์์ ์ ๋ฉ์ถ๊ณ cpu๋ฅผ ๋๊ฐ ์ฐ๊ณ ์์๋ ์๊ด์์ด ์ ์ด๊ถ์ OS๋ก ๋๊ธด๋ค.
OS๋ interrupt๋ง๋ค ์ํฉ์ ๋ง๊ฒ ์ฒ๋ฆฌํด์ผํ๋ ์ปค๋ ํจ์๋ก ์ ์๋ ์ธํฐ๋ฝํธ ๋ฒกํฐ๋ฅผ ์ฐธ์กฐํ์ฌ ์ธํฐ๋ฝํธ ์ฒ๋ฆฌํ๋ ์ปค๋ ํจ์๋ฅผ ์ํํ๋ค.
์ธํฐ๋ฝํธ ๋ฒกํฐ = [์ธํฐ๋ฝํธ ๋ฒํธ: ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ์ฃผ์(์ฒ๋ฆฌ๋ฃจํด, ํธ๋ค๋ฌ)]
MEMORY
CPU์ ์์ ๊ณต๊ฐ
DISK
ํ์ผ์ ์ ์ฅ, ์ฝ์ด๋ค์ด๋ I/O์ธก๋ฉด
device controller
๊ฐ I/O ๋๋ฐ์ด์ค๋ค์ ๋๋ฐ์ด์ค๋ฅผ ์ ๋ดํ๋ ์์ cpu๊ฐ์ ๊ฒ๋ค์ด ๋ถ์ด์๋๋ฐ ์ด๋ฅผ device controller๋ผ๊ณ ํ๋ค. (disk controller, usb controller, graphic controller,...)
I/O ๋๋ฐ์ด์ค๋ ์ฑ๋ฅ (์ฒ๋ฆฌํ๋ ์๋) ์ด ๋ง์ด ์ฐจ์ด๊ฐ ๋๋ค.
์: Disk๋ CPU์ ๋นํด 100๋ง๋ฐฐ ๊ฐ๋ ๋๋ฆผ.
๋ฐ๋ผ์, CPU๊ฐ ์ง์ Disk๋ฅผ ๊ด์ฅํ๋ ๊ฒ์ด ์๋๋ผ, disk controller๊ฐ ๋ด๋น
local Buffer:
๋ฉ์ธ CPU์ ์์ ๊ณต๊ฐ์ธ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ฏ, ๊ฐ device controller์ ์์ ๊ณต๊ฐ.
timer
ํน์ ํ๋ก๊ทธ๋จ์ด CPU๋ฅผ ๋ ์ ํ๋ ๊ฒ์ ๋ง๊ธฐ ์ํ ํ๋์จ์ด ์ฅ์น
์ปดํจํฐ๊ฐ ์ผ์ง๋ฉด, OS๊ฐ CPU๋ฅผ ๊ฐ์ง๊ณ ์๋ค๊ฐ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ ์คํ์ timer์ ๊ฐ์ ์ธํ ํ ํ CPU๋ฅผ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์๊ฒ ๋๊ฒจ์ค๋ค. ์ด ๋, ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ timer์ ์ธํ ํ ์๊ฐ์ด ๋ค ๋๋ฉด, CPU๋ก interrupt๋ฅผ ๊ฑธ์ด์ค๋ค. (๋งค ํด๋ญ ์ฌ์ดํด๋ง๋ค 1์ฉ ๊ฐ์ํ๋ฉด์ ํ์ด๋จธ ๊ฐ์ด 0์ด ๋๋ฉด ํ์ด๋จธ ์ธํฐ๋ฝํธ ๋ฐ์)
time sharing(์๋ถํ )์ ๊ตฌํํ๊ธฐ ์ํด ๋๋ฆฌ ์ฌ์ฉ๋จ.
DMA (Direct Memory Access)
์๋๋ CPU๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ์๋๋ฐ, CPU์ ๋ ๋ฆฝ์ ์ผ๋ก ์ง์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ์ ์๊ฒ ๋จ.
์ง์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ์ปจํธ๋กค๋ฌ.
I/O์ฅ์น์ ๋ฐ์ดํฐ๋ device controller์ ์ํด local buffer๋ก ์ด๋ํ๋ค.
์ด ๋ ์ ์กํ ๋ฐ์ดํฐ๊ฐ ๋ง์ ๊ฒฝ์ฐ, ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ memory๋ก copyํ๋ ์์ ์ cpu๊ฐ ํ๊ฒ ๋๋ฉด ์ค๋ฒํค๋๊ฐ ํฌ๋ค. ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ์๊ฒผ๋ค. DMA๋ก ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ copy(์ ์ก)ํ ํ์ ์ ์ก ์๋ฃ๋ ์ธํฐ๋ฝํธ๋ฅผ ๋จ ํ๋ฒ๋ง ๊ฑธ๋ฉด ์ค๋ฒํค๋๊ฐ ๊ฐ์ํ๋ค.
local buffer์ ํน์ ํฌ๊ธฐ (๋ธ๋ญ or page์ ๋์ ๋ฐ์ดํฐ)๊ฐ ์์ด๋ฉด, ๊ทธ ๋ cpu์ ํ๋ฒ interrupt๋ฅผ ๊ฑธ์ด์ค.
(DMA๊ฐ Memory์ ๋ด์ฉ์ copyํด์ฃผ๊ณ , ๋ธ๋ญ ๋จ์์ ๋ฐ์ดํฐ๊ฐ ์์ ๊ฒฝ์ฐ์๋งcpu์ ์๋ ค์ฃผ์ด interrupt๋นํ๋ ๋น๋๋ฅผ ์ค์ฌ์ค)
cpu์ ์ค์ฌ ์์ด device controller๊ฐ device์ buffer storage๋ด์ฉ์ ๋ฉ๋ชจ๋ฆฌ์ block ๋จ์๋ก ์ง์ ์ ์ก
byte๋จ์๊ฐ ์๋ block(ํน์ page) ๋จ์๋ก ์ธํฐ๋ฝํธ ๋ฐ์.
Memory Controller
CPU์ DMA๊ฐ ๋์์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ๊ตํต์ ๋ฆฌํ๋ ์ญํ ์ํ.