๐ฃ ์๋ก
KOCW ๋ฐํจ๊ฒฝ ๊ต์๋์ ์ด์์ฒด์ ์์ ์ ๋ค์ผ๋ฉด์ ์์ฑํ ๊ธ์ ๋๋ค.
์ปดํจํฐ ์์คํ ๊ตฌ์กฐ, Mode bit, Timer, Device Controller, ์ ์ถ๋ ฅ(I/O)์ ์ํ, ์์คํ ์ฝ(System Call), ์ธํฐ๋ฝํธ(Interrupt)
๐ ์ปดํจํฐ ์์คํ ๊ตฌ์กฐ
Main Memory
CPU์ ์์
๊ณต๊ฐ์ ๋งํ๋ค.
device controller
๊ฐ๊ฐ์ IO ๋๋ฐ์ด์ค๋ฅผ ์ ๋ดํ๋ ์์ CPU ์ญํ ์ ํ๋ค.
device controller์๋ ๋๋ฐ์ด์ค์ ์ ๋ณด๋ฅผ ๋ด๊ธฐ ์ํ local buffer๋ผ๋ ๊ฒ์ด ์กด์ฌํ๋ค.
[local buffer]
๋ฉ์ธ CPU์ ์์
๊ณต๊ฐ์ธ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ฏ์ด ๋๋ฐ์ด์ค ์ปจํธ๋กค๋ฌ๋ ์์
๊ณต๊ฐ์ด ํ์ํ๋ฐ local buffer๊ฐ ๊ทธ ์ญํ ์ ํ๋ค.
[์ง๋ฌธ] CPU ๋์ ์ device controller๊ฐ ์ ๋ดํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ?
CPU์ ๋๋ฐ์ด์ค์ ์๋ ์ฐจ์ด๊ฐ ๋งค์ฐ ๋ง์ด ๋๊ธฐ ๋๋ฌธ์ CPU๊ฐ ์ ๋ดํ์ง ์๊ณ device controller๊ฐ ์ ๋ดํ๊ฒ ๋๋ค.
[์ง๋ฌธ] device driver & device controller๋ ๋ฌด์จ ์ฐจ์ด์ธ๊ฐ?
device driver๋ ์ํํธ์จ์ด๋ฅผ ๋ปํ๋ฉฐ, CPU๊ฐ ์คํํ๋ ๊ฐ ๋๋ฐ์ด์ค์ ์ ๊ทผํ๊ธฐ ์ํ ์ํํธ์จ์ด๋ฅผ ๋งํ๋ค.
device controller๋ ํ๋์จ์ด๋ฅผ ๋ปํ๋ฉฐ, ๊ฐ ์ฅ์น๋ฅผ ํต์ ํ๋ ์ผ์ข
์ ์์ CPU๋ฅผ ๋งํ๋ค.
CPU
CPU๋ ํด๋ญ๋ง๋ค ๋ฉ๋ชจ๋ฆฌ์์ ์ธ์คํธ๋ญ์
์ ํ๋์ฉ ์ฝ์ด์ ์คํํ๋ ์ญํ ์ ํ๋ค. (CPU์ ์ด๋ช
..?)
IO๊ฐ ์ผ์ด๋๋ฉด CPU๊ฐ ์ง์ ์ ๊ทผํ๋ ๊ฒ์ด ์๋๋ผ disk controller์์ ์ํจ๋ค.
(CPU๋ ์ธ์คํธ๋ญ์
์คํ๋ฟ ์๋๋ผ, ์ธํฐ๋ฝํธ ๋ผ์ธ๋ ํ์ธํ๋ค)
CPU ๋ด๋ถ์๋ ์ธํฐ๋ฝํธ ๋ผ์ธ(interreupt line), ๋ ์ง์คํฐ(register), mode bit์ด ์กด์ฌํ๋ค.
[์ ๊ทผ ๋ฒ์]
CPU๋ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ local buffer์ ์ ๊ทผ ๊ฐ๋ฅ
[์ธํฐ๋ฝํธ ๋ผ์ธ(interrupt line)]
์๋ฅผ ๋ค์ด ๋์คํฌ์์ ๋ญ๊ฐ ์ฝ๋๊ฐ, ํค๋ณด๋์์ ์
๋ ฅ์ ๋ฐ๋ ๋ฑ ์์
์ด ์๋ฃ๋๋ฉด ์ธํฐ๋ฝํธ ๋ผ์ธ์ผ๋ก ์๋ฆฐ๋ค.
[๋ ์ง์คํฐ(register)]
CPU ๋ด๋ถ์ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ๋ ๋น ๋ฅด๋ฉด์ ์ ๋ณด๋ฅผ ์ ์ฅํ ์ ์๋ ์์ ๊ณต๊ฐ์ด๋ค.
๋ ์ง์คํฐ ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ ์ง์คํฐ์ธ PC(Program Counter) ๋ ์ง์คํฐ๊ฐ ์๋ค.
CPU๋ PC ๋ ์ง์คํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ๋ฉ๋ชจ๋ฆฌ ์์น์์ ์ธ์คํธ๋ญ์
์ ์ฝ์ด์ ์ํํ๋ค.
[Mode bit]
CPU์์ ์คํ๋๋ ๊ฒ์ด ์ด์์ฒด์ ์ธ์ง ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ธ์ง ๊ตฌ๋ถํด์ค๋ค.
1 (์ฌ์ฉ์ ๋ชจ๋) - ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด CPU๋ฅผ ๊ฐ์ง ๋, ์ ํ๋ ์ธ์คํธ๋ญ์
๋ง ์คํ์ํฌ ์ ์๋ค.
์ฌ์ฉ์ ๋ชจ๋๋ ๋์ ์ง(?)์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ณดํธ๊ฐ ํ์ํ๋ค.
0 (์ปค๋ ๋ชจ๋) - ์ด์์ฒด์
์ด์์ฒด์ ๊ฐ CPU์์ ์คํ ์ค์ผ ๋, ๋ชจ๋ ์ธ์คํธ๋ญ์
์ ์คํํ ์ ์๋ค.
(๋ชจ๋ํฐ ๋ชจ๋ or ์์คํ
๋ชจ๋๋ผ๊ณ ๋ ๋ถ๋ฆผ)
Timer
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์์ while๋ฌธ์ผ๋ก ๋ฌดํ ๋ฃจํ๋ฅผ ๋๊ฒ ๋๋ค๋ฉด ํน์ ํ๋ก๊ทธ๋จ์ด CPU๋ฅผ ๋
์ ํ ์ ์๋ค.
Timer๋ ํน์ ํ๋ก๊ทธ๋จ์ด CPU๋ฅผ ๋
์ ํ๋ ๊ฒ์ ๋ง๊ธฐ ์ํ ํ๋์จ์ด์ด๋ค.
[๋์]
์ปดํจํฐ๋ฅผ ์์ํ๋ฉด ์ฒ์์ ์ด์์ฒด์ ๊ฐ CPU๋ฅผ ๊ฐ์ง๊ณ ์๋ค๊ฐ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์๊ฒ CPU๋ฅผ ๋๊ฒจ์ค๋ค.
ํ์ง๋ง ๊ทธ๋ฅ ๋๊ฒจ์ฃผ์ง ์๊ณ Timer์ ๊ฐ์ ์ธํ
ํ๊ณ ๋๊ฒจ์ฃผ๊ฒ ๋๋ค.
(์ด์์ฒด์ ์์ ํ๋ก๊ทธ๋จ๋ฟ๋ง ์๋๋ผ, ํ๋ก๊ทธ๋จ์์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ๋ ๋ง์ฐฌ๊ฐ์ง)
(ํด๋ญ ํฑ ๋๋ง๋ค 1์ฉ ๊ฐ์ํ๊ณ , 0์ด ๋๋ฉด ํ์ด๋จธ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๋ค)
๐ CPU๊ฐ ์ธํฐ๋ฝํธ๋ฅผ ๋๋ฌด ๋ง์ด ๋นํ๊ณ ์๋ ๊ฒ ์๋๊น?
์ธํฐ๋ฝํธ๊ฐ ๋ง์ด ๋นํ๋ฉด, ๋น ๋ฅธ ์ฅ์น์ธ CPU๊ฐ ํจ์จ์ ์ด์ง ์๋ค.
์ผ์ ์์ํ๋ ค๊ณ ํ๋ฉด ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๊ณ ์ด๋ฐ ๊ณผ์ ์ด ๋ฐ๋ณต๋๋ค๋ฉด ์ ๋๋ก ์ผ์ ํ์ง ๋ชปํ๋ ์ํฉ์ด ๋ฐ์ํ๊ฒ ๋๋ค.
๊ทธ๋์ ํด๊ฒฐ๋ฐฉ์์ผ๋ก DMA controller๋ฅผ ๋๊ณ ์๋ค.
DMA(Direct Memory Access) controller
์ด๋ฆ์ด ์์ํ๋ฏ์ด ์ง์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ์ ์๋ ์ปจํธ๋กค๋ฌ์ด๋ค.
๊ธฐ์กด์๋ CPU๋ง ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผ ๊ฐ๋ฅํ์ง๋ง, DMA controller๋ ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ฒ ๋๋ค.
[์ง๋ฌธ] CPU์ DMA controller๊ฐ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผ ๊ฐ๋ฅํ์ ๋, ๋ฌธ์ ์ ์ด ์๋?
ํน์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋์์ ์ ๊ทผํ ๋ ๋ฌธ์ ์ ์ด ๋ฐ์ํ ์ ์๋ค.
๊ทธ๋์ ํด๊ฒฐ๋ฐฉ์์ผ๋ก memory controller๊ฐ ์ด๋ฅผ ์ค์ฌํ๋ค. ์ฆ, ๊ตํต์ ๋ฆฌ ์ญํ ์ ํ๋ค.
[์ง๋ฌธ] ๊ทธ๋์ DMA controller๋ ์ ์๋ ๊ฑธ๊น?
I/O ์ฅ์น๊ฐ ์์ฃผ ์ธํฐ๋ฝํธ๋ฅผ ํ๋ CPU๊ฐ ๋๋ฌด ๋ฐฉํด๋ฐ๊ณ ์๋ค.
์์
์ด ๋ค์ด์์ ๋, CPU์๊ฒ ์ธํฐ๋ฝํธ๋ฅผ ๊ฑฐ๋๋ฐ CPU๊ฐ local buffer์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์นดํผํ๋ ์ผ์ด ์ค๋ฒํค๋๊ฐ ํฌ๋ค.
๊ทธ๋์ DMA controller๊ฐ local buffer์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์นดํผ๋ฅผ ํด์ค๋ค.
์์
์ด ๋๋ฌ์ผ๋ฉด CPU์๊ฒ ์ธํฐ๋ฝํธ๋ฅผ ํ ๋ฒ๋ง ๊ฑธ์ด์
"๋ด๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์นดํผ๊น์ง ํ์ด"๋ผ๋ ๋ณด๊ณ ๋ฅผ ํ๋ฉด, CPU๋ ์์ ์ด ๋งก์ ์ผ์ ๋ ์ง์คํ ์ ์๋ค.
๐ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์ด๋ป๊ฒ I/O๋ฅผ ํ ๊น?
์์คํ ์ฝ(system call)
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ด์์ฒด์ ์๊ฒ I/O๋ฅผ ์์ฒญํ๋ ๊ฒ์ ๋งํ๋ค.
(์ด์์ฒด์ ์ ์๋น์ค๋ฅผ ๋ฐ๊ธฐ ์ํด ์ปค๋ ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒ)
[์ง๋ฌธ] ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ด์์ฒด์ ์๊ฒ ๋ฐ๋ก ์์ฒญํ๋ ๊ฒ ๊ฐ๋ฅํ๊ฐ?
๊ฒฐ๋ก ์ ๋ถ๊ฐ๋ฅํ๋ค. ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ณ ์๋ค๊ฐ I/O๋ฅผ ํด์ผ ํ๋ ์ํฉ์ด ์ค๋ฉด ๋ฐ๋ก OS๋ก ์ฃผ์ ์ ํ๋ฅผ ํ ์ ์๋ค.
mode bit์ด 1๋ก ์ค์ ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๋ค.
๊ทธ๋์ ํ๋ก๊ทธ๋จ์ด ์ง์ ์ธํฐ๋ฝํธ ๋ผ์ธ์ ์ธํ
์ ํด์ผ ํ๋ค.
์์์ ์ค๋ช
ํ์ง๋ง CPU๋ ์ธ์คํธ๋ญ์
์ ์ํํ๋ ๊ฒ๋ง ์๋๋ผ ์ธํฐ๋ฝํธ ๋ผ์ธ๋ ๊ณ์ ํ์ธ์ ํ๊ธฐ ๋๋ฌธ์
CPU๋ ๋ค์ ์ธ์คํธ๋ญ์
์ ์ํํ๋ ๊ฒ ์๋๋ผ mode bit์ 0์ผ๋ก ๋ฐ๊พธ๊ณ CPU ์ ์ด๊ถ์ OS๋ก ๋๊ธฐ๊ฒ ๋๋ค.
๊ทธ๋ ๊ฒ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด OS์๊ฒ I/O๋ฅผ ์์ฒญํ์ฌ ์ํํ ์ ์๋ค.
์ธํฐ๋ฝํธ์ ์๋ฏธ
๋์ ์๋ฏธ๋ก๋ ์ธํฐ๋ฝํธ์ด์ง๋ง, ์ธํฐ๋ฝํธ๋ ํ๋์จ์ด๊ฐ ๋ฐ์์์ผฐ๋, ์ํํธ์จ์ด๊ฐ ๋ฐ์์์ผฐ๋์ ๋ฐ๋ผ ๋๋ ์ ์๋ค.
(์ผ๋ฐ์ ์ผ๋ก ์ธํฐ๋ฝํธ๋ ํ๋์จ์ด ์ธํฐ๋ฝํธ๋ฅผ ๋ปํ๋ค)
[Interrupt]
ํ๋์จ์ด๊ฐ ๋ฐ์์ํจ ์ธํฐ๋ฝํธ๋ฅผ ๋ปํ๋ค.
[Trap]
์ํํธ์จ์ด๊ฐ ๋ฐ์์ํจ ์ธํฐ๋ฝํธ๋ฅผ ๋ปํ๋ค.
์ธํฐ๋ฝํธ ๊ด๋ จ ์ฉ์ด
[์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ๋ฃจํด(interrupt service routine, ์ธํฐ๋ฝํธ ํธ๋ค๋ฌ)]
์ธํฐ๋ฝํธ๋ง๋ค ์ค์ ์ฒ๋ฆฌํด์ผ ํ๋ ์ฝ๋๋ฅผ ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ๋ฃจํด์ด๋ผ๊ณ ํ๋ค.
[์ธํฐ๋ฝํธ ๋ฒกํฐ]
1๋ฒ ์ธํฐ๋ฝํธ๊ฐ ๋ค์ด์ค๋ฉด ์ด๋ค ํจ์์ธ์ง, 2๋ฒ ์ธํฐ๋ฝํธ๊ฐ ๋ค์ด์ค๋ฉด ์ด๋ค ํจ์๋ฅผ ์คํํด์ผ ํ๋์ง
์ด์ ํด๋นํ๋ ์ฃผ์๊ฐ ์ธํฐ๋ฝํธ ๋ฒกํฐ๋ผ๊ณ ํ๋ค.
๋ฐํจ๊ฒฝ [์ด์์ฒด์ ] 3. System Structure & Program Execution 1
์ค๋ช ์ด ์์ต๋๋ค.
core.ewha.ac.kr
์ด์์ฒด์
์ด์์ฒด์ ๋ ์ปดํจํฐ ํ๋์จ์ด ๋ฐ๋ก ์์ ์ค์น๋๋ ์ํํธ์จ์ด ๊ณ์ธต์ผ๋ก์ ๋ชจ๋ ์ปดํจํฐ ์์คํ ์ ํ์์ ์ธ ๋ถ๋ถ์ด๋ค. ๋ณธ ๊ฐ์ข์์๋ ์ด์ ๊ฐ์ ์ด์์ฒด์ ์ ๊ฐ๋ ๊ณผ ์ญํ , ์ด์์ฒด์ ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ
www.kocw.net
'OS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ป KOCW-OS-4: Process (0) | 2020.10.26 |
---|---|
๐ป KOCW-OS-3: System Structure & Program Execution 2 (0) | 2020.10.05 |
๐ป KOCW-OS-2: System Structure & Program Execution 1 (0) | 2020.10.04 |
๐ป KOCW-OS-1: Introduction to Operating Systems (0) | 2020.10.03 |