System Structure & Program Execution
Reference: ์ดํ์ฌ๋ ์ด์์ฒด์ ๊ฐ์ - ๋ฐํจ๊ฒฝ ๊ต์๋
์ปดํจํฐ ์์คํ
๊ตฌ์กฐ
Mode bit
Mode bit์ด๋?
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์๋ชป๋ ์ํ์ผ๋ก ๋ค๋ฅธ ํ๋ก๊ทธ๋จ ๋ฐ ์ด์์ฒด์ ์ ํผํด๊ฐ ๊ฐ์ง ์๋๋ก ํ๊ธฐ ์ํ ๋ณดํธ ์ฅ์น
Mode bit์ด ํ์ํ ์ด์
CPU๊ฐ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ๋์ด๊ฐ๋ฉด ์ด์์ฒด์ ๋ ์ ์ดํ ์ ์๊ธฐ ๋๋ฌธ
CPU์์ ๊ธฐ๊ณ์ด๋ฅผ ์คํํ ๋ ์ด์์ฒด์ ๊ฐ ์คํํ๋์ง or ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์คํํ๋์ง ๊ตฌ๋ถํ๋ ์กด์ฌ๊ฐ ํ์ํ๋ค
Mode bit์ ์ข ๋ฅ
Mode bit์ ํตํด ํ๋์จ์ด์ ์ผ๋ก ๋ ๊ฐ์ง ๋ชจ๋์ operation์ ์ง์ํ๋ค
1 ์ฌ์ฉ์ ๋ชจ๋
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ ์ํ
์ํํ ๊ธฐ๊ณ์ด (ํน๊ถ ๋ช ๋ น)๋ ์ฌ์ฉํ ์ ์๊ฒ ์ ํํ๋ค
0 ๋ชจ๋ํฐ ๋ชจ๋ (= Kernel mode, System mode)
OS ์ฝ๋ ์ํ
๋ณด์์ ํด์น ์ ์๋ ์ค์ํ ๋ช ๋ น์ด (
ํน๊ถ ๋ช ๋ น
)๋ ๋ชจ๋ํฐ ๋ชจ๋์์๋ง ์ํ ๊ฐ๋ฅํ๋ค
Mode bit ์ ํ ๋ฐฉ์
Interrupt๋ exception ๋ฐ์ ์ ํ๋์จ์ด๊ฐ mode bit์ 0์ผ๋ก ๋ฐ๊พผ๋ค
Interrupt๋ CPU Interrupt๋ฅผ ๋ปํจ
from Disk controller, I/O controller, etc.
exception์ ๊ถํ์ด ์๋ ์์ ์ ์คํํ๋ ค๊ณ ํ ๋ ๋ฐ์ํ๋ exception์ ๋ปํจ
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์๊ฒ CPU๋ฅผ ๋๊ธฐ๊ธฐ ์ ์ mode bit์ 1๋ก ์ธํ ํ๋ค
Registers
Register๋?
์ฐ์ฐ์ output์ ์ ์ฅํ๊ธฐ ์ํ ์ฉ๋๋ก, CPU์ ๋ถ์ด์๋ค
Register์ ์ข ๋ฅ
PC (Program Counter) Register
๋ค์๋ฒ์ ์คํํ ๊ธฐ๊ณ์ด์ memory ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค
CPU๋ PC register๊ฐ ๊ฐ๋ฆฌํค๊ณ ์๋ memory ์ฃผ์์ ๊ธฐ๊ณ์ด๋ฅผ ์คํํ๋ค
CPU Interrupt๊ฐ ๋ฐ์ํ๋ฉด PC Register๊ฐ ๋ฐ๋ผ๋ณด๊ณ ์๋ memory๋ OS๊ฐ ๋๋ค
Timer
Timer๋?
CPU ์ฌ์ฉ๊ถ์ ๋บ์ด์ค๋ ์์ ์ OS๊ฐ ํ ์ ์์
Timer์ ์ญํ
์ ํด์ง ์๊ฐ์ด ํ๋ฅธ ๋ค OS์๊ฒ ์ ์ด๊ถ์ด ๋์ด๊ฐ๋๋ก Interrupt๋ฅผ ๋ฐ์์ํจ๋ค
์ผ์ ์๊ฐ์ด ์ง๋๋ฉด Interrupt ๋ฅผ ๋ฐ์์์ผ์ CPU์ ์ฌ์ฉ๊ถ์ ๋บ์ด์ค๋ ์ญํ ์ ํ๋ค
Timer ๋์ ๋ฐฉ์
Timer๋ ๋งค clock tick ๋ง๋ค 1์ฉ ๊ฐ์ํ๋ค
Timer ๊ฐ์ด 0์ด ๋๋ฉด Timer Interrupt๊ฐ ๋ฐ์ํ๋ค
CPU๋ฅผ ํน์ ํ๋ก๊ทธ๋จ์ด ๋ ์ ํ๋ ๊ฒ์ผ๋ก ๋ถํฐ ๋ณดํธํ๋ค
Interrupt
Interrupt ๋์ ๋ฐฉ์
Interrupt ๋นํ ์์ ์ register์ Program Counter๋ฅผ ์ ์ฅํ ํ CPU์ ์ ์ด๋ฅผ Interrupt ์ฒ๋ฆฌ ๋ฃจํด์ ๋๊ธด๋ค
Interrupt ์ ์๋ฏธ
Interrupt (Hardware Interrupt)
Hardware๊ฐ ๋ฐ์์ํจ Interrupt
ex) I/O Controller๊ฐ ์ผ์ผํจ Interrupt
Trap (Software Interrupt)
Exception
Program์ด ์ค๋ฅ๋ฅผ ๋ฒํ ๊ฒฝ์ฐ
Program์ด ํน๊ถ ๋ช ๋ น์ ์ํํ๋ ค๊ณ ํ๋ฉด ๋ฐ์
System Call
Program์ด Kernel ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒฝ์ฐ
Interrupt ๊ด๋ จ ์ฉ์ด
Interrupt Vector
ํด๋น Interrupt ์ฒ๋ฆฌ ๋ฃจํด ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์์
Interrupt ์ฒ๋ฆฌ ๋ฃจํด
ํด๋น Interrupt๋ฅผ ์ฒ๋ฆฌํ๋ Kernel ํจ์
System Call
System Call์ด๋?
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด OS์ ์๋น์ค๋ฅผ ๋ฐ๊ธฐ ์ํด Kernel ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒ
CPU๊ฐ I/O ๋ฅผ ์์ฒญํ๋ ๊ธฐ๊ณ์ด๋
ํน๊ถ ๋ช ๋ น
์ด๋ค์ฆ, ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์คํํ ์ ์๋ค
๊ทธ๋์ OS์ ํด๋ฌ๋ผ๊ณ ์์ฒญ์ ํด์ผํ๋ค
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ค์ค๋ก Interrupt๋ฅผ ๊ฑฐ๋ ๊ฒ์ System Call ์ด๋ผ๊ณ ํ๋ค
CPU๋ฅผ OS์ ๋๊ธฐ๊ธฐ ์ํด์ ์ง์ Program Counter๋ฅผ ๋๊ธธ ์ ์๊ธฐ ๋๋ฌธ์ Interrupt๋ฅผ ๊ฑด๋ค
Device Controller
I/O Device Controller
ํด๋น I/O ์ฅ์น ์ ํ์ ๊ด๋ฆฌํ๋ ์ผ์ข ์ ์์ CPU
์ ์ด ์ ๋ณด๋ฅผ ์ํด
control register
,status register
๋ฅผ ๊ฐ์งcontrol register
processor๋ ๋ค๋ฅธ hardware ์ฅ์น์ ๋์์ ์ ์ดํ๊ณ ๊ตฌ์ฑํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ register
status register
processor์ ํ์ฌ ์ํ์ flag ์ ๋ณด๋ฅผ ์ ์ฅํ๋ register
์ฃผ๋ก processor์ ์คํ ์ํ, ์ฐ์ฐ ๊ฒฐ๊ณผ, Interrupt ์ํ์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ์ ์ดํ๋ค
Flag ์ข ๋ฅ
Zero Flag (ZF)
์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ 0์ธ ๊ฒฝ์ฐ์ ์ค์ ๋๋ค
์ฃผ๋ก ๋น๊ต ์ฐ์ฐ๊ณผ ๊ด๋ จ๋์ด ์ฌ์ฉ๋๋ค
Sign Flag (SF)
์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ ์์์ธ ๊ฒฝ์ฐ์ ์ค์ ๋๋ค
Overflow Flag (OF)
์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ์ ์ค์ ๋๋ค
์ ์ ์ฐ์ฐ์์ ์ฌ์ฉ๋๋ค
Carry Flag (CF)
์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ ์บ๋ฆฌ(์๋ฆฌ ์ฌ๋ฆผ)๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ์ ์ค์ ๋๋ค
์ฐ์ ์ฐ์ฐ์์ ์ฌ์ฉ๋๋ค
Parity Flag (PF)
์ฐ์ฐ ๊ฒฐ๊ณผ์ ํ์ ๋นํธ๋ค ์ค 1์ ๊ฐ์๊ฐ ์ง์์ผ ๊ฒฝ์ฐ์ ์ค์ ๋๋ค
local buffer๋ฅผ ๊ฐ์ง (์ผ์ข ์ data register)
I/O ๋ ์ค์ device ์ local buffer ์ฌ์ด์์ ์ผ์ด๋จ
Device Controller๋ I/O ๊ฐ ๋๋ฌ์ ๊ฒฝ์ฐ Interrupt ๋ก CPU์๊ฒ ๊ทธ ์ฌ์ค์ ์๋ฆผ
์ฉ์ด ์ ๋ฆฌ
Device Driver (์ฅ์น ๊ตฌ๋๊ธฐ)
OS ์ฝ๋ ์ค ๊ฐ ์ฅ์น๋ณ ์ฒ๋ฆฌ ๋ฃจํด โ software
CPU๊ฐ device controller์๊ฒ ๋ถํ์ ํ๋ ๊ธฐ๊ณ์ด
์ปดํจํฐ ๋ด๋ถ์์ CPU๊ฐ ์ํํ๋ ์ฝ๋
Device Controller (์ฅ์น ์ ์ด๊ธฐ)
๊ฐ ์ฅ์น๋ฅผ ์ ์ดํ๋ ์ผ์ข ์ ์์ CPU โ hardware
CPU๊ฐ OS์ ๋์ด๊ฐ๋ ๊ฒฝ์ฐ
Interrupt๊ฐ ๊ฑธ๋ฆฌ๋ฉด ๋์ด๊ฐ๋ค
Hardware ์ฅ์น๋ค์ด Interrupt๋ฅผ ๊ฑฐ๋ ๊ฒฝ์ฐ
โ ์ง์ ํ ์๋ฏธ์ Interrupt
Timer
CPU์ ๋ ์ ์ ๋ง๊ธฐ์ํ hardware
Program์ด ์ง์ Interrupt line์ ์ค์ ํ๋ ๊ฒฝ์ฐ
System call
CPU๊ฐ I/O ๋ฅผ ์์ฒญํ๋ ๊ธฐ๊ณ์ด๋
ํน๊ถ ๋ช ๋ น
์ด๋ผ ์ฌ์ฉ์ Program์ด ์คํํ ์ ์๊ธฐ ๋๋ฌธ์ ์กด์ฌํ๋ค
Sync I/O vs Async I/O
๋ ๊ฒฝ์ฐ ๋ชจ๋ I/O ์๋ฃ๋ Interrupt๋ฅผ ํตํด ์๋ ค์ค๋ค
๋๊ธฐ์ ์ ์ถ๋ ฅ (Synchronous I/O)
I/O ์์ฒญ ํ ์ ์ถ๋ ฅ ์์ ์ด
์๋ฃ๋ ํ
์์ผ ์ ์ด๊ฐ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ๋์ด๊ฐ๊ตฌํ ๋ฐฉ๋ฒ 1. I/O๊ฐ ๋๋ ๋๊ฐ์ง CPU๋ฅผ ๋ญ๋น์ํด - ๋งค ์์ ํ๋์ I/O๋ง ์ผ์ด๋ ์ ์์ 2. I/O๊ฐ ์๋ฃ๋ ๋๊น์ง ํด๋น ํ๋ก๊ทธ๋จ์๊ฒ์ CPU๋ฅผ ๋นผ์๊ณ , I/O ์ฒ๋ฆฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ค์ ๊ทธ ํ๋ก๊ทธ๋จ์ ์ค ์ธ์ - ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์๊ฒ CPU๋ฅผ ์ค
๋น๋๊ธฐ์ ์ ์ถ๋ ฅ (Asynchronous I/O)
I/O ๊ฐ ์์๋ ํ ์ ์ถ๋ ฅ ์์ ์ด ๋๋๊ธฐ๋ฅผ
๊ธฐ๋ค๋ฆฌ์ง ์๊ณ
์ ์ด๊ฐ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์์ฆ์
๋์ด๊ฐ
DMA (Direct Memory Access)
๋น ๋ฅธ I/O ์ฅ์น๋ฅผ memory์ ๊ฐ๊น์ด ์๋๋ก ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ
โ memory์ ์ง์ ์ ๊ทผํ๊ธฐ์ํ ์ฅ์น
CPU์ ์ค์ฌ ์์ด device controller๊ฐ device์ buffer storage์ ๋ด์ฉ์ block ๋จ์๋ก ์ง์ ์ ์ก
Byte ๋จ์๊ฐ ์๋๋ผ block ๋จ์๋ก interrupt๋ฅผ ๋ฐ์์ํจ๋ค
Last updated