๐ซง System Structure

์ด๋ฏธ์ง ์ถ์ฒ
๐ฉต CPU(Central Processing Unit)
- ์ปดํจํฐ์ ๋๋ ์ญํ ์ ํ๋ ์ฅ์น
- ๋ช
๋ น์ด๋ฅผ ํด์ํ๊ณ ์คํํ๋ ์ญํ -
fetch-Decode-Execute-Store
- CPU๋ ํด๋ญ ์ฌ์ดํด๋ง๋ค ๋ฉ๋ชจ๋ฆฌ ๋ด์ ๋ช
๋ น์ด๋ฅผ ํ๋์ฉ ์ฝ์ด์ ์ํ
- ๋ชจ๋ ํ๋ก๊ทธ๋จ๊ณผ ์์คํ
์ด ์๋ํ๋ ๋ฐ ํ์ํ ์ฐ์ฐ์ ์ํ
๐ค Register
- CPU ๋ด๋ถ์ ์กด์ฌํ๋ ์ด๊ณ ์ ์์ ๊ธฐ์ต ์ฅ์น
- ๋ช
๋ น์ด์ ๋ฐ์ดํฐ๋ฅผ ์์๋ก ์ ์ฅํ์ฌ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ๋ ์ญํ
๐ค Mode Bit
- ์ด์์ฒด์ ์ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ ๊ฐ์ ๊ถํ์ ๊ตฌ๋ถํ๊ธฐ ์ํ ๋นํธ
- CPU์ ์คํ ๋ชจ๋๋ฅผ ๊ฒฐ์ ํ๋ ์ญํ
1. ์ปค๋ ๋ชจ๋(Kernel Mode, Supervisor Mode, Monitor Mode)
0
- ์ด์์ฒด์ ๊ฐ ์คํ๋๋ ๋ชจ๋
- ๋ชจ๋ ๋ช
๋ น์ด์ ์์์ ์ ๊ทผ ๊ฐ๋ฅ(ํน๊ถ ๋ช
๋ น ์คํ ๊ฐ๋ฅ)
2. ์ฌ์ฉ์ ๋ชจ๋(User Mode)
1
- ์ผ๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋ชจ๋
- ์ ํ๋ ๋ช
๋ น์ด๋ง ์คํ ๊ฐ๋ฅ
Mode Bit์ ์ฌ์ฉ ๋ชฉ์
- ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ด์์ฒด์ ์ ์ค์ํ ์์์ ๋ฌด๋จ์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋ฐฉ์ง
- ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์๋ชป๋ ์ํ์ผ๋ก ๋ค๋ฅธ ํ๋ก๊ทธ๋จ ๋ฐ ์ด์์ฒด์ ๊ฐ ํผํด๊ฐ ๊ฐ์ง ์๋๋ก ๋ณดํธ
๐ค Interrupt Line
- CPU์ ์ธ๋ถ ์ฅ์น๊ฐ์ ์ ํธ๋ฅผ ์ ๋ฌํ๋ ํ๋์จ์ด ํ์
- CPU๊ฐ ํน์ ์ด๋ฒคํธ(์
์ถ๋ ฅ ์๋ฃ, ์ค๋ฅ ๋ฐ์ ๋ฑ)๋ฅผ ์ธ์ํ๋๋ก ํจ
๐ฉต Timer
- ํน์ ํ๋ก๊ทธ๋จ์ด CPU๋ฅผ ๋
์ ํ์ง ๋ชปํ๋๋ก ์๊ฐ์ ์ ํํ๊ณ ,
์ผ์ ์ฃผ๊ธฐ๋ก ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ํค๋ ์ฅ์น
- ์ด์์ฒด์ ๋ ํ์ด๋จธ๋ฅผ ํ์ฉํด CPU ์ค์ผ์ค๋ง ๋ฐ ๋ฉํฐํ์คํน์ ๊ด๋ฆฌ
Time Sharing(์๋ถํ )์ ๊ตฌํํ๊ธฐ ์ํด ์ฌ์ฉ
๐ค Timer ๋์ ๊ณผ์
- ์ด์์ฒด์ ๊ฐ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์๊ฒ CPU๋ฅผ ๋๊ฒจ์ค ๋ ํ์ด๋จธ ์๊ฐ ์ธํ
- ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ํ ๋น๋ ์๊ฐ๋์ CPU๋ฅผ ์ฌ์ฉํ๊ณ ,
ํ ๋น๋ ์๊ฐ์ด ์ข
๋ฃ๋๋ฉด ํ์ด๋จธ ์ธํฐ๋ฝํธ ๋ฐ์
- CPU๋ ๋ช
๋ น์ด ์คํ๊ณผ ์ธํฐ๋ฝํธ ๋ผ์ธ ํ์ธ์ ๋ฐ๋ณต
- ์ธํฐ๋ฝํธ๊ฐ ๋ค์ด์ค๋ฉด CPU๋ ์์
์ ๋ฉ์ถ๊ณ CPU ์ ์ด๊ถ์ ์ด์์ฒด์ ์๊ฒ ๋์ด๊ฐ
๐ฉต DMA Controller
DMA(Direct Memory Access, ์ง์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ)์ CPU๋ฅผ ๊ฑฐ์น์ง ์๊ณ
์ฃผ๋ณ ์ฅ์น(๋์คํฌ, ๋คํธ์ํฌ ์นด๋, ๊ทธ๋ํฝ ์นด๋ ๋ฑ)๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ํ๋ ๊ธฐ๋ฅ
- DMA๋ฅผ ๊ด๋ฆฌํ๋ ํ๋์จ์ด๊ฐ
DMA Controller๋ค.
- DMA Controller๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๊ทผํ ์ ์๋ ์ฅ์น๋ค.
๐ค DMA Controller์ ์ญํ
- ์ด์์ฒด์ ๋ CPU๊ฐ ํจ์จ์ ์ผ๋ก ๋์ํ๋๋ก ์์์ ๊ด๋ฆฌํ๋ ์ญํ
- ์
์ถ๋ ฅ(I/O) ์์
์ CPU๊ฐ ์ง์ ์ฒ๋ฆฌํ๋ฉด ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๊ธฐ ๋๋ฌธ์
DMA Controller๋ฅผ ์ด์ฉํด CPU์ ๋ถ๋ด์ ์ค์ธ๋ค.
- DMA๋ฅผ ์ฌ์ฉํด I/O์ฅ์น์ ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ ๋ฐ์ดํฐ ์ ์ก์ CPU ๊ฐ์
์์ด ๊ฐ๋ฅ
- DMA Controller๋ I/O์ฅ์น(๋ก์ปฌ ๋ฒํผ)์ ๋ฉ๋ชจ๋ฆฌ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์ด๋ํ๋ค.
- DMA๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํธ ๋จ์๊ฐ ์๋ ๋ธ๋ญ ๋จ์๋ก ์ ์กํ๊ณ ,
๋ฐ์ดํฐ ์ ์ก์ด ์๋ฃ๋์์ ๋ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ํจ๋ค(์ธํฐ๋ฝํธ ๋ฐ์ ๋น๋ ์ ํ)
๐ค DMA Controller์ ๋์ ๊ณผ์
- CPU๊ฐ DMA Contorller์๊ฒ ์์ฒญ: I/O ์ฅ์น์์ ํน์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ผ๋ก ๋ฐ์ดํฐ ์ ์ก์ ์์ฒญ
- DMA Controller๊ฐ ์ ์ก ์ํ: CPU์ ๊ฐ์
์์ด I/O ์ฅ์น์ ๋ฉ๋ชจ๋ฆฌ ๊ฐ ๋ฐ์ดํฐ ์ด๋
- ์ ์ก ์๋ฃ ํ CPU์๊ฒ ์๋ฆผ: DMA ์๋ฃ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์์ผ CPU์๊ฒ ์๋ฆผ
- CPU๊ฐ ํ์ ์์
์ ์ํ
๐ฉต Memory Controller
- CPU์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ(RAM)๊ฐ์ ๋ฐ์ดํฐ ์ด๋์ ๊ด๋ฆฌํ๋ ํ๋์จ์ด ์ฅ์น
- ์ด์์ฒด์ ์ CPU๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ์ ๊ทผํ์ง ์๊ณ , Memory Controller๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ฐ๋ ๊ตฌ์กฐ
๐ค ๊ทผ๋ฐ CPU๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ์ ๊ทผํ์ง ์๋๋ค๊ณ ?
- ๊ณผ๊ฑฐ์๋ Memory Controller๊ฐ CPU ์ธ๋ถ์ ์กด์ฌํ์ง๋ง,
ํ๋ CPU๋ Memory Controller๋ฅผ CPU ๋ด๋ถ์ ํฌํจ
- CPU๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ํต์ ํ ์ ์์ด ์๋๊ฐ ํจ์ฌ ๋นจ๋ผ์ง
๐ค Memory Controller์ ๋ ๋ค๋ฅธ ์ญํ
- CPU์ DMA๊ฐ ๋์์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ๊ฒฝ์ฐ ์ ๊ทผ ์์๋ฅผ ์กฐ์ ํด ์ถฉ๋์ ๋ฐฉ์งํ๋ ์ญํ
๐ฉต Device Controller
โ
CPU๋ ๋ฐ์๋ค! ๊ทธ๋ฆฌ๊ณ I/O์ ์ง์ ์ ๊ทผํ์ง ์๋๋ค.
โ
CPU ์คํ ์ค์ I/O์ ์์
์ํ ๋ณด๊ณ , ์์
๋ช
๋ น์ ๋ด๋ฆฌ๊ธฐ ์ํด Device Controller์๊ฒ ์์ํ๋ค.
- CPU์ I/O ์ฅ์น ์ฌ์ด์์ ๋ฐ์ดํฐ๋ฅผ ์ค์ฌํ๋ ํ๋์จ์ด
- ์ด์์ฒด์ ๊ฐ ์ฅ์น๋ฅผ ์ง์ ์ ์ดํ๋ ๋์ , Device Controller๊ฐ ๋์ ์ฅ์น๋ฅผ ๊ด๋ฆฌํ๊ณ ์ ์ด
- I/O์ฅ์น ๋ด๋ถ๋ฅผ ํต์ ํ๋ ์์ CPU์ญํ
- CPU์์ ์๋ ์ฐจ์ด๋ก ์ธํด ์ปจํธ๋กค๋ฌ๋ฅผ ๋
๐ค Device Controller์ ์ญํ
- I/O ์ฅ์น์ ์ ์ด ๋ฐ ๋ฐ์ดํฐ ์ ์ก
- CPU์ I/O ์ฅ์น ๊ฐ์ ๋ฐ์ดํฐ ๋ณํ
- ๋ฒํผ๋ง(Buffering) ๋ฐ ์บ์ฑ(Caching):
I/O ์๋๋ CPU๋ณด๋ค ๋๋ฆฌ๋ฏ๋ก, ๋ฒํผ(Buffer)๋ฅผ ํ์ฉํด ๋ฐ์ดํฐ๋ฅผ ๋ฏธ๋ฆฌ ์ ์ฅํ๊ณ ์ ์ก
- ์ธํฐ๋ฝํธ ๋ฐ์
- DMA ์ง์:
CPU ๊ฐ์
์์ด Device Controller๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ๋ฐ์ดํฐ ์ ์ก ๊ฐ๋ฅ
๐ค Device Controller์ ๋์ ๊ณผ์
- CPU๊ฐ I/O ์์
์์ฒญ
- Device Controller๊ฐ ํด๋น ์ฅ์น์ ๋ช
๋ น ์ ์ก
- Device๊ฐ ์์
์ํ
- ์์
์๋ฃ ํ ์ธํฐ๋ฝํธ ๋ฐ์
- CPU๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์งํ
๐ฉต Local Buffer
- I/O ์ฅ์น ๋ด๋ถ์ ์กด์ฌํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ(Device Controller์ ์์
๊ณต๊ฐ)
- ๋ฐ์ดํฐ๊ฐ CPU ๋๋ ๋ฉ๋ชจ๋ฆฌ๋ก ์ ์ก๋๊ธฐ ์ ์ ์์๋ก ์ ์ฅ๋๋ ๋ฒํผ
- CPU๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉด, ์ฅ์น๋ ๋ฐ์ดํฐ๋ฅผ Local Buffer์ ๋จผ์ ์ ์ฅ
- ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ๋ณด๋ด๋ ๊ฒ์ด ์๋๋ผ ๋ฒํผ์ ๋ชจ์์ ์ ์กํด ์ฑ๋ฅ ํฅ์
- CPU์ I/O ์ฅ์น ๊ฐ ์๋ ์ฐจ์ด๋ฅผ ์ํํ๋ ์ญํ
- ๋ฒํผ๋ง(๋ฒํผ๋ฅผ ์ฌ์ฉ)์ ํตํด CPU๊ฐ I/O ์ฅ์น๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๊ณ์ ์คํ ๊ฐ๋ฅ
๐ค Device Controller์ Local Buffer
๋์คํฌ์์ ํ์ผ์ ์ฝ๋ ๊ณผ์
CPU โ Device Controller โ Local Buffer โ Disk
- CPU๊ฐ ๋์คํฌ์์ ํ์ผ ์ฝ๊ธฐ ์์ฒญ - Device Controller๊ฐ ์์ฒญ์ ๋ฐ์
- Device Controller๊ฐ ๋์คํฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด Local Buffer์ ์ ์ฅ
- Local Buffer๊ฐ ๊ฐ๋์ฐจ๋ฉด, ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ ์ก
- ์ ์ก์ด ์๋ฃ๋๋ฉด ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์์ผ CPU์ ์๋ฆผ
โจ ๋์คํฌ๋ ์๋๊ฐ ๋๋ฆฌ๋ฏ๋ก, Local Buffer๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ ์ ์ก์ ์ต์ ํ
๐ซง Program Execution

1. ํ๋ก๊ทธ๋จ ๋ก๋ ๋ฐ ์คํ ์ค๋น
- ์ด์์ฒด์ ๊ฐ ์คํํ ํ๋ก๊ทธ๋จ๊ณผ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋
- CPU๋ ์ด์์ฒด์ ์ ๋ช
๋ น์ ๋ฐ๋ผ ํ๋ก๊ทธ๋จ์ ์์ ์ฃผ์๋ก ์ ์ด๊ถ์ ์ด๋์์ผ ์คํ ์์
2. CPU ๋ช
๋ น ์คํ
- CPU๋ ๋ช
๋ น์ด ์ฌ์ดํด(
Fetch, Decode, Execute)์ ๋ฐ๋ณตํ์ฌ
๋ฉ๋ชจ๋ฆฌ์์ ํ๋ก๊ทธ๋จ ๋ช
๋ น์ ์ฝ์ด์ ํด์ํ๊ณ ์คํ
3. I/O ์์
์์ฒญ ๋ฐ์
- ํ๋ก๊ทธ๋จ ์คํ ์ค I/O ์์
์ด ํ์ํ ๋, CPU๋ Device์์ ๋ฐ์ดํฐ ์ ์ก์ ์์ฒญ
- ์ด ๊ณผ์ ์์ CPU๋ Device Controller์ DMA Controller๋ฅผ ํตํด I/O ์์
์ ์ฒ๋ฆฌ
4. DMA Controller๋ฅผ ํตํ ๋ฐ์ดํฐ ์ ์ก
(1) CPU์ ์์ฒญ
- ์ ์กํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์, ์ ์กํ ๋ฐ์ดํฐ ํฌ๊ธฐ, ๋ฐ์ดํฐ๋ฅผ ์ ์กํ I/O ๋๋ฐ์ด์ค ์ ๋ณด
- CPU๋ ์์ ์ ๋ณด๋ฅผ DMA Controller์๊ฒ ์ ๋ฌ
- ์ดํ DMA Controller๊ฐ ๋ฐ์ดํฐ ์ ์ก์ ์ฒ๋ฆฌํ๋๋ก ์ ์ด๊ถ์ ๋๊น
(2) DMA Controller์ Device Controller์ ํ๋ ฅ
Device Controller๋ ์ฐ๊ฒฐ๋ I/O ์ฅ์น์์ ์ธ๋ถ ์์
์ ์ฒ๋ฆฌํ๋ฉฐ,
๋ฐ์ดํฐ๋ฅผ ๋ฒํผ์ ์ ์ฅํ๊ฑฐ๋ ๋ฒํผ๋ก๋ถํฐ ์ฝ์ด์ด
DMA Controller๋ ๋ฉ๋ชจ๋ฆฌ์ Device Controller ๊ฐ์ ๋ฐ์ดํฐ ์ ์ก์ CPU ๊ฐ์
์์ด ์ง์ ์ํ
(3) ์์
์๋ฃ ์๋ฆผ
- ๋ฐ์ดํฐ ์ ์ก์ด ์๋ฃ๋๋ฉด DMA Controller๋ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์์ผ CPU์๊ฒ ์์
์๋ฃ๋ฅผ ์๋ฆผ
5. CPU์ ํ์ ์์
- CPU๋ ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ๊ณ I/O ์์
๊ฒฐ๊ณผ๋ฅผ ํ์ธ
- ์ดํ, ํ๋ก๊ทธ๋จ์ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉฐ ๊ณ์ํด์ ์์
์ ์งํ
6. Timer์ ์ญํ
- ์ด์์ฒด์ ๊ฐ CPU ์ฌ์ฉ ์๊ฐ์ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฃผ๊ธฐ์ ์ผ๋ก ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ํด
- Timer๋ฅผ ํตํด ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ๋
์ ํ์ง ๋ชปํ๋๋ก ์กฐ์
7. ํ๋ก๊ทธ๋จ ์ข
๋ฃ
- ํ๋ก๊ทธ๋จ์ด ๋ชจ๋ ๋ช
๋ น์ ์คํํ๊ณ ์ข
๋ฃํ๊ฒ ๋๋ฉด
- CPU๋ ์ ์ด๊ถ์ ์ด์์ฒด์ ์ ๋ฐํ
- ์ด์์ฒด์ ๋ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ, ๋๋ฐ์ด์ค ๋ฑ์ ์์์ ์ ๋ฆฌํ๊ณ ๋ค๋ฅธ ์์
์ ์ค๋น