๋ณธ ๊ฒ์๊ธ์ KOCW ์ดํ์ฌ์๋ํ๊ต ๋ฐํจ๊ฒฝ ๊ต์๋์ <์ด์์ฒด์ > ๊ฐ์๋ฅผ ๋ฃ๊ณ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.
๊ฒ์๊ธ์ ํฌํจ๋๋ ์ด๋ฏธ์ง ์๋ฃ ๋ํ ํด๋น ๊ฐ์์ ํฌํจ๋ ๊ฐ์ ์๋ฃ์ ๋๋ค.
์ปดํจํฐ ์์คํ ๊ตฌ์กฐ
์ปดํจํฐ ์์คํ ์ ํฌ๊ฒ CPU, Memory, ์ฃผ๋ณ์ฅ์น(ํ๋๋์คํฌ, ์ ์ถ๋ ฅ ์ฅ์น)๋ก ๊ตฌ์ฑ๋๊ณ , ์ด๋ค์ ์์คํ ๋ฒ์ค๋ก ์ฐ๊ฒฐํฉ๋๋ค.
๋จผ์ ๊ฐ๋ตํ๊ฒ ์ค๋ช ํด๋ณด๋ฉด, CPU๋ ๋ชจ๋ ์ฅ์น์ ๋์์ ์ ์ดํ๊ณ ๋ช ๋ น์ ์คํํ๋ ์ค์์ฒ๋ฆฌ์ฅ์น์ด๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ๋ CPU์ ์์ ๊ณต๊ฐ์ ๋๋ค.
์ฃผ๋ณ์ฅ์น๋ ํฐ ๊ฐ๋ ์ผ๋ก ๋ชจ๋ ์ ์ถ๋ ฅ ์ฅ์น๋ผ๊ณ ๋ณผ ์ ์๋๋ฐ, ์ ๋ ฅ ์ฅ์น์๋ ํค๋ณด๋, ๋ง์ฐ์ค ๋ฑ์ด ์์ผ๋ฉฐ ์ถ๋ ฅ์ฅ์น๋ ๋ชจ๋ํฐ, ํ๋ฆฐํฐ ๋ฑ์ด ์์ต๋๋ค. ํ๋๋์คํฌ๋ ๋ณด์กฐ๊ธฐ์ต์ฅ์น๋ก ๋ณดํต ์ด์ผ๊ธฐ ํ์ง๋ง, ํ๋๋์คํฌ์ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฝ์ด๋ค์ด๊ธฐ๋ ํ๊ณ (์ ๋ ฅ ์ฅ์น๋ก์์ ์ญํ ), ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋์คํฌ์ ํ์ผ ์์คํ ์ ์ ์ฅ(์ถ๋ ฅ์ฅ์น๋ก์์ ์ญํ )ํ๊ธฐ๋ ํ๊ธฐ ๋๋ฌธ์ ์ ์ถ๋ ฅ ์ฅ์น๋ก ๋ณผ ์ ์์ต๋๋ค.
CPU
CPU๋ ์ค์์ฒ๋ฆฌ์ฅ์น๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ, ๋งค ํด๋ญ ์ฌ์ดํด ๋ง๋ค ๋ฉ๋ชจ๋ฆฌ์์ ๊ธฐ๊ณ์ด(= instruction)์ ์ฝ์ด ์คํํจ์ผ๋ก์จ ๋ช ๋ น์ ์คํํ๊ณ ์ปดํจํฐ ์์คํ ์ ์ฅ์น์ ๋์์ ์ ์ดํฉ๋๋ค.
- registers: CPU ๋ด๋ถ์ ์์ผ๋ฉฐ, CPU๊ฐ ์ฌ์ฉํ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๋ ๊ฐ์ฅ ๋น ๋ฅธ ๋ฉ๋ชจ๋ฆฌ
- Mode bit: mode bit์ผ๋ก ์ธํด ์ด์์ฒด์ ๋ฅผ ์ํ์ฌ ์คํ๋๋ ์์ ๊ณผ ์ฌ์ฉ์๋ฅผ ์ํด ์คํ๋๋ ์์ ์ ๊ตฌ๋ถ
- Interrupt line: interrupt์ ๋ฐ์์ ๊ฐ์ง. CPU๋ ํ๋์ instruction์ด ๋๋๊ณ ๋๋ฉด interrupt line์ ์ฒดํฌ
Mode bit
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์๋ชป๋ ์ํ์ผ๋ก ๋ค๋ฅธ ํ๋ก๊ทธ๋จ ๋ฐ ์ด์์ฒด์ ์ ํผํด๊ฐ ๊ฐ์ง ์๋๋ก ํ๊ธฐ ์ํ ๋ณดํธ ์ฅ์น์ ๋๋ค.
Mode bit์ ํตํด ํ๋์จ์ด์ ์ผ๋ก ๋ ๊ฐ์ง ๋ชจ๋์ operation์ ์ง์ํฉ๋๋ค.
1 ์ฌ์ฉ์ ๋ชจ๋: ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ ์ํ
0 ๋ชจ๋ํฐ ๋ชจ๋(= ์ปค๋ ๋ชจ๋, ์์คํ ๋ชจ๋): OS ์ฝ๋ ์ํ
๋ณด์์ ํด์น ์ ์๋ ์ค์ํ ๋ช ๋ น์ด๋ ๋ชจ๋ํฐ ๋ชจ๋์์๋ง ์ํ ๊ฐ๋ฅํ 'ํน๊ถ๋ช ๋ น'์ผ๋ก ๊ท์ ํฉ๋๋ค.Interrupt๋ Exception ๋ฐ์ ์ ํ๋์จ์ด๊ฐ mode bit์ 0์ผ๋ก ๋ฐ๊พธ๊ณ , ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์๊ฒ CPU๋ฅผ ๋๊ธฐ๊ธฐ ์ ์ mode bit์ 1๋ก ์ธํ ํฉ๋๋ค.
- mode bit์ด 0์ผ ๋: ์ด์์ฒด์ ๊ฐ CPU๋ฅผ ๊ฐ์ง๊ณ ์์ ๋ (๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ, I/O device ์ ๊ทผ instruction๊น์ง ๋ฌด์จ ์ผ์ด๋ ๋ค ํ ์ ์๋๋ก ์ ์๋์ด ์์)
- mode bit์ด 1์ผ ๋: ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด CPU๋ฅผ ๊ฐ์ง๊ณ ์์ ๋ (๋ณด์ ์์ ๋ชฉ์ ์ผ๋ก ์ ํ๋ instruction๋ง ์คํ ๊ฐ๋ฅ)
Timer
ํน์ ํ๋ก๊ทธ๋จ์ด CPU๋ฅผ ๋ ์ ํ๋ ๊ฒ์ ๋ง๊ธฐ ์ํด ์ผ์ ๊ฐ๊ฒฉ์ผ๋ก interrupt ๋ฅผ ๋ฐ์์ํค๋ ํ๋์จ์ด์ ๋๋ค.
(์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ CPU๋ฅผ ํ ๋นํ๊ฒ ๋๋ฉด CPU ์ ์ด๊ถ์ด OS์๊ฒ ์์ด ๋ค์ ๋บ์ ์ ์๊ธฐ ๋๋ฌธ์ timer๋ฅผ ๋์ด CPU ๋ ์ ๋ฐฉ์ง)
- ํ์ด๋จธ๋ ๋งค ํด๋ญ ํฑ ๋๋ง๋ค 1์ฉ ๊ฐ์ํ๋๋ฐ, ํ์ด๋จธ ๊ฐ์ด 0์ด ๋๋ฉด ํ์ด๋จธ ์ธํฐ๋ฝํธ ๋ฐ์
- CPU๋ฅผ ํน์ ํ๋ก๊ทธ๋จ์ด ๋ ์ ํ๋ ๊ฒ์ผ๋ก๋ถํฐ ๋ณดํธ
- ํ์ด๋จธ๋ time sharing์ ๊ตฌํํ๊ธฐ ์ํด ๋๋ฆฌ ์ด์ฉ๋จ
- ํ์ด๋จธ๋ ํ์ฌ ์๊ฐ์ ๊ณ์ฐํ๊ธฐ ์ํด์๋ ์ฌ์ฉ
I/O Device
I/O device์ ์ข ๋ฅ์๋ ํค๋ณด๋, ๋ง์ฐ์ค, ์คํผ์ปค, ํ๋ฆฐํฐ, ๋์คํฌ ๋ฑ์ด ์์ต๋๋ค.๊ฐ๊ฐ์ I/O device์๋ ํด๋น ์ฅ์น๋ฅผ ๊ด๋ฆฌํ๋ ์ผ์ข ์ ์์ CPU์ธ device controller๊ฐ ์กด์ฌํฉ๋๋ค.I/O๋ ์ค์ device์ local buffer ์ฌ์ด์์ ์ผ์ด๋ฉ๋๋ค.
Device Controller
- ํด๋น I/O ์ฅ์น์ ํ์ ๊ด๋ฆฌํ๋ ์ผ์ข ์ ์์ CPU
- ์ ์ด ์ ๋ณด๋ฅผ ์ํด control register, status register๋ฅผ ๊ฐ์ง
- local buffer๋ฅผ ๊ฐ์ง (์ผ์ข ์ data register)
I/O ์์ ์ ๋งค์ฐ ์ค๋ ๊ฑธ๋ฆฌ๋ ์์ ์ด๊ธฐ ๋๋ฌธ์, CPU๊ฐ ์ ์ดํ์ง ์์ต๋๋ค. (CPU๋ ๋ฉ๋ชจ๋ฆฌ์์ instruction ์ฝ์ด์ ์ํ๋ง)
I/O ์์ ์ ์์ฒญ๋ฐ์ผ๋ฉด I/O ์์ ์ Device Controller ๊ฐ ์งํํ๊ณ , ์์ ์ด ๋๋๊ฒ ๋๋ฉด interrupt๋ฅผ ๊ฑธ์ด ์์ ์ด ๋๋ฌ์์ CPU์๊ฒ ์๋ ค CPU ๊ฐ Local Buffer์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด๊ฐ๊ฒ ๋ฉ๋๋ค.
๋ํ, ์ ์ด ์ ๋ณด๋ฅผ ์ํด control register, status register๋ฅผ ๊ฐ์ง๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ local buffer๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. (๋ฐ์ดํฐ ์์ฒด๋ local buffer์ ์ ์ฅํ๊ฒ ๋๊ณ , ์ด๋ฅผ ํ๋ฉด์ ์ถ๋ ฅํ๋ผ์ ๊ฐ์ ์ง์๋ ์ ์ด register๋ฅผ ํตํด CPU๊ฐ device controller์๊ฒ ํ๊ฒ ๋๋ ๊ฒ)
DMA(Direct Memory Access) Controller
DMA (Direct Memory Access)
- I/O ์ฅ์น๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ๊น์ด ์๋๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํด์ ์ฌ์ฉ. ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. (์๋๋ CPU ๋ง ๊ฐ๋ฅ)
- CPU์ ์ค์ฌ ์์ด DMA controller๊ฐ device์ buffer storage์ ๋ด์ฉ์ ๋ฉ๋ชจ๋ฆฌ์ block ๋จ์๋ก ์ง์ ์ ์ก
- ๋ฐ์ดํธ ๋จ์๊ฐ ์๋๋ผ block ๋จ์๋ก ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ํด
I/O ์์ ์ด ์๋ฃ๋์ด Device Controller๊ฐ CPU์๊ฒ interrupt๋ฅผ ๊ฑธ๋ฉด, CPU๊ฐ local buffer์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด๊ฐ๊ฒ ๋๋๋ฐ, I/O ์์ ์ด ๋๋ ๋ ๋ง๋ค ์ธํฐ๋ฝํธ๊ฐ ๊ฑธ๋ฆฌ๊ฒ ๋๋ค๋ฉด CPU๊ฐ interrupt๋ฅผ ๋นํ๋ ๋น๋๊ฐ ๋๋ฌด ์ฆ์ CPU๊ฐ ๋นํจ์จ์ ์ผ๋ก ์๋ํ๊ฒ ๋ฉ๋๋ค.
I/O์ ๊ณผ๋ํ interrupt๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด DMA Controller๊ฐ ์กด์ฌํฉ๋๋ค.
local buffer์ ์ผ์ ๋ถ๋์ ๋ฐ์ดํฐ๊ฐ ์์ด๋ฉด DMA Controller๊ฐ block ๋จ์๋ก ํ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ์ copy ํ๊ณ interrupt๋ฅผ ๊ฑธ์ด์ค๋๋ค. DMA๋ฅผ ๋ ์ผ๋ก์จ CPU๊ฐ interrupt ๋นํ๋ ๋น๋๊ฐ ์ค์ด๋ค๊ฒ ๋์ด CPU๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ๋ฉ๋๋ค.
DMA controller๊ฐ ์กด์ฌํจ์ผ๋ก์จ CPU, DMA ๋ ๋ค ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ์ ์๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋์ด์ ๋์์ ํน์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ๊ทผํ๋ฉด ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๊ธฐ ๋๋ฌธ์ Memory Controller๊ฐ ์ค์ฌ์ญํ ์ ๋ด๋นํฉ๋๋ค.
'๐ฅ CS > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] ํ๋ก์ธ์ค ์ํ (0) | 2023.02.13 |
---|---|
[์ด์์ฒด์ ] ํ๋ก์ธ์ค (0) | 2023.02.12 |
[์ด์์ฒด์ ] ํ๋ก๊ทธ๋จ์ ์คํ (1) | 2023.02.01 |
[์ด์์ฒด์ ] I/O์ ์ํ - ์ธํฐ๋ฝํธ(Interrupt)์ ์์คํ ์ฝ(System Call) (1) | 2023.01.14 |
[์ด์์ฒด์ ] ์ด์์ฒด์ ๋? (0) | 2022.12.18 |