์ปดํจํฐ ์์คํ ๊ตฌ์กฐ
CPU
- ๋ ์ง์คํฐ
- CPU๋ ํ๋ก๊ทธ๋จ ์นด์ดํฐ(์ํํด์ผ ํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ด๊ณ ์๋ ๋ ์ง์คํฐ)๊ฐ ๊ฐ๋ฆฌํค๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ช ๋ น์ ์ฒ๋ฆฌํ๊ฒ ๋๋ค.
- ์ธํฐ๋ฝํธ ๋ผ์ธ
- ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ํค๊ธฐ ์ํด ์ฃผ๋ณ ์ฅ์น๋ ์ธํฐ๋ฝํธ ๋ผ์ธ์ ์ธํ ํ๊ณ CPU๋ ๋งค๋ฒ ๋ช ๋ น์ ์ํํ ํ ์ธํฐ๋ฝํธ ๋ผ์ธ์ ์ฒดํฌํด ์๋น์ค ์์ฒญ์ด ์๋์ง ํ์ธํ๋ค.
- ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์๋ชป๋ ์ํ์ผ๋ก ๋ค๋ฅธ ํ๋ก๊ทธ๋จ ๋ฐ ์ด์์ฒด์ ์ ํผํด๊ฐ ๊ฐ์ง ์๋๋ก ํ๊ธฐ ์ํ ๋ณดํธ ์ ์ฐจ
- ๋ชจ๋๋น์ด 0์ผ๋ (๋ชจ๋ํฐ ๋ชจ๋ = ์ปค๋ ๋ชจ๋ = ์์คํ
๋ชจ๋)
- ์ด์์ฒด์ ๊ฐ cpu์์ ์คํ ์ค
- ๋ฌด์จ์ผ์ธ์ง ๋ค ํ ์์์
- ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ
- i/o device ์ ๊ทผ
- ๋ชจ๋๋น์ด 1์ผ ๋ (์ฌ์ฉ์ ๋ชจ๋)
- ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด cpu๊ฐ๊ณ ์์
- ๋ณด์์ ์ํด ์ ํ๋(ํ์ ๋) instruction๋ง ์คํํ ์ ์์
- ๋ณด์์ ํด์น ์ ์๋ ์ค์ํ ๋ช ๋ น์ด๋ ๋ชจ๋ํฐ ๋ชจ๋์์๋ง ์ํ ๊ฐ๋ฅํ ํน๊ถ ๋ช ๋ น์ผ๋ก ๊ท์
- Interrupt๋ Exception ๋ฐ์ ์ ํ๋์จ์ด๊ฐ mode bit → 0 ๋ณ๊ฒฝ
- ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์๊ฒ CPU๋ฅผ ๋๊ธฐ๊ธฐ ์ ์ mode bit → 1 ์ ํ Mode bit
๋ฉ๋ชจ๋ฆฌ
- CPU์ ์์ ๊ณต๊ฐ
DMA (Direct Memory Access)
- ๋น ๋ฅธ ์ ์ถ๋ ฅ ์ฅ์น๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ๊น์ด ์๋๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ
- CPU์ ์ค์ฌ ์์ด device controller๊ฐ device์ buffer storage์ ๋ด์ฉ์ ๋ฉ๋ชจ๋ฆฌ์ block ๋จ์๋ก ์ง์ ์ ์ก
- ๋ฐ์ดํธ ๋จ์๊ฐ ์๋๋ผ block ๋จ์๋ก ์ธํฐ๋ฝํธ ๋ฐ์์ํด
- ์ธํฐ๋ฝํธ๋ฅผ ์์ฃผ ๊ฑธ๋ฉด ๋ฌธ์ ๊ฐ ์๊ธฐ๋ DMA(=Controller)๊ฐ ์ง์ ๋์
ํ์ด๋จธ
- ์ ํด์ง ์๊ฐ์ด ํ๋ฅธ ๋ค ์ด์์ฒด์ ์๊ฒ ์ ์ด๊ถ์ด ๋์ด๊ฐ๋๋ก ์ธํฐ๋ฝํธ ๋ฐ์ ⇒ ํน์ ํ๋ก๊ทธ๋จ์ด CPU๋ฅผ ๋ ์ ํ๋ ๊ฒ์ ๋ง๊ธฐ ์ํจ
- ํ์ด๋จธ ๊ฐ์ด 0์ด ๋๋ฉด ํ์ด๋จธ ์ธํฐ๋ฝํธ ๋ฐ์
- time sharing์ ๊ตฌํํ๊ธฐ ์ํด ๋๋ฆฌ ์ด์ฉ๋จ
- ํ์ฌ ์๊ฐ์ ๊ณ์ฐํ๊ธฐ ์ํด์๋ ์ฌ์ฉ
- ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด CPU๋ฅผ ๊ณ์ ์ฌ์ฉํ๋ฉด CPU๋ฅผ ๋บ์ด์ฌ ๋ฐฉ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์ ํ์ด๋จธ๋ฅผ ์ฌ์ฉํ์ฌ ๋๊ฒจ์ค
Disk
- ๋๋ฐ์ด์ค ์ปจํธ๋กค๋ฌ๊ฐ ๋ด๋น
I/O device
- Device controller๊ฐ ๊ฐ๊ฐ I/O ๋๋ฐ์ด์ค์ ๋ถ์ด ์ ๋ดํ๋ CPU ์ญํ ์ ํจ
- Device controller
- ํด๋น I/O ์ฅ์น ์ ํ์ ๊ด๋ฆฌํ๋ ์ผ์ข ์ ์์ CPU
- ์ ์ด ์ ๋ณด๋ฅผ ์ํด control register, status register๋ฅผ ๊ฐ์ง
- local buffer๋ฅผ ๊ฐ์ง (์ผ์ข ์ data register)
- I/O๋ ์ค์ device์ local buffer ์ฌ์ด์์ ์ผ์ด๋จ
- Device controller๋ I/O๊ฐ ๋๋ฌ์ ๊ฒฝ์ฐ interrupt๋ก CPU์ ๊ทธ ์ฌ์ค์ ์๋ฆผDevice controller
- ๐กdevice driver : OS ์ฝ๋ ์ค ๊ฐ ์ฅ์น๋ณ ์ฒ๋ฆฌ ๋ฃจํด → software
- ๐กdevice controller : ๊ฐ ์ฅ์น๋ฅผ ํต์ ํ๋ ์ผ์ข ์ ์์ CPU → hardware
I/O ์ ์ํ
- ๋ชจ๋ ์ ์ถ๋ ฅ ๋ช ๋ น์ ํน๊ถ ๋ช ๋ น
- ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด I/O๋ฅผ ํ๋ ๋ฐฉ๋ฒ
- ์์คํ
์ฝ(System call)
- ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ด์์ฒด์ ์๊ฒ I/O ์์ฒญ
- CPU๊ฐ ์ธํฐ๋ฝํธ๊ฐ ๋ค์ด์จ์ง ํ์ธ
- ํ๋ก๊ทธ๋จ์ด ์ธํฐ๋ฝํธ๋ฅผ ์ฌ์ฉํด ๋ชจ๋๋น์ด 0์ผ๋ก ๋ฐ๋๊ณ ์ด์์ฒด์ ์ ํด๋นํ๋ ์ฃผ์๋ก ๋์ด๊ฐ
- trap์ ์ฌ์ฉํ์ฌ ์ธํฐ๋ฝํธ ๋ฒกํฐ์ ํน์ ์์น๋ก ์ด๋
- ์ ์ด๊ถ์ด ์ธํฐ๋ฝํธ ๋ฒกํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด์ผ๋ก ์ด๋
- ์ฌ๋ฐ๋ฅธ I/O ์์ฒญ์ธ์ง ํ์ธ ํ I/O๋ฅผ ์ํ
- I/O ์๋ฃ ์ ์ ์ด๊ถ์ ์์คํ ์ฝ ๋ค์ ๋ช ๋ น์ผ๋ก ์ฎ๊น
- ์์คํ
์ฝ(System call)
- ์ธํฐ๋ฝํธ
- ํ๋ ์ด์์ฒด์ ๋ ์ธํฐ๋ฝํธ์ ์ํด ๊ตฌ๋
- ์ธํฐ๋ฝํธ ๋นํ ์์ ์ ๋ ์ง์คํฐ์ program counter๋ฅผ save ํ ํ CPU์ ์ ์ด๋ฅผ ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ๋ฃจํด์ ๋๊น
- I/O๋ฅผ ํ๊ธฐ ์ํด์ ์ํํธ์จ์ด ์ธํฐ๋ฝํธ(ํธ๋ฉ)๋ฅผ ํตํด ์์ฒญํ๊ณ ๋๋๋ฉด ํ๋์จ์ด ์ธํฐ๋ฝํธ๋ฅผ ํตํด์ ๋๋ฌ๋ค๊ณ ์๋ฆผ
- Interrupt (ํ๋์จ์ด ์ธํฐ๋ฝํธ): ํ๋์จ์ด๊ฐ ๋ฐ์์ํจ ์ธํฐ๋ฝํธ
- Trap (์ํํธ์จ์ด ์ธํฐ๋ฝํธ)
(1) Exception
→ ํ๋ก๊ทธ๋จ์ด ์ค๋ฅ๋ฅผ ๋ฒํ ๊ฒฝ์ฐ
→ ์ธํฐ๋ฝํธ ๋ผ์ธ์ด ์๋์ผ๋ก ์ธํ ๋จ
→ CPU๊ฐ ์ด์์ฒด์ ์๊ฒ ๋์ด๊ฐ๊ณ ์ต์ ์ ์ํฉ์์๋ ๋ณดํต ๊ฐ์ ์ข ๋ฃ๋ก ๋์
(2) System call
→ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด OS์ ์๋น์ค๋ฅผ ๋ฐ๊ธฐ ์ํด OS์ ์์ฒญํด ์ปค๋ ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒฝ์ฐ
→ ์ปดํจํฐ๋ฅผ ํธ์คํธ๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํจ
- ์ธํฐ๋ฝํธ ๋ฒกํฐ
→ ํด๋น ์ธํฐ๋ฝํธ์ ์ฒ๋ฆฌ ๋ฃจํด ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์์
→ ์ฒ๋ฆฌํด์ผํ๋ ํจ์๋ก ์ ํํ๊ฒ ํด์ค
- ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ๋ฃจํด
→ ํด๋น ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ๋ ์ปค๋ ํจ์
→ ์ค์ ํด์ผํ๋ ์ผ
๋๊ธฐ์ ์ ์ถ๋ ฅ๊ณผ ๋น๋๊ธฐ์ ์ ์ถ๋ ฅ
- ๋๊ธฐ์ ์
์ถ๋ ฅ(synchronous I/O)
- I/O ์์ฒญ ํ ์ ์ถ๋ ฅ ์์ ์ด ์๋ฃ๋ ํ์์ผ ์ ์ด๊ฐ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ๋์ด๊ฐ
- ๊ตฌํ ๋ฐฉ๋ฒ 1
- I/O๊ฐ ๋๋ ๋๊น์ง CPU๋ฅผ ๋ญ๋น์ํด
- ๋งค ์์ ํ๋์ I/O๋ง ์ผ์ด๋ ์ ์์
- ๊ตฌํ ๋ฐฉ๋ฒ 2
- I/O๊ฐ ์๋ฃ๋ ๋๊น์ง ํด๋น ํ๋ก๊ทธ๋จ์๊ฒ์ CPU๋ฅผ ๋นผ์์
- I/O ์ฒ๋ฆฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ค์ ๊ทธ ํ๋ก๊ทธ๋จ์ ์ค ์ธ์
- ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์๊ฒ CPU๋ฅผ ์ค
- ๋น๋๊ธฐ์ ์
์ถ๋ ฅ(asynchronous I/O)
- I/O๊ฐ ์์๋ ํ ์ ์ถ๋ ฅ ์์ ์ด ๋๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ์ ์ด๊ฐ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์ฆ์ ๋์ด๊ฐ
- Synchronous: ๊ธฐ๋ค๋ฆผ
- Asynchronous: ์๊ธฐ๋ค๋ฆผ
- I/O ์์ ์์ฒญ๋ง ํด๋๊ณ ๋ฐ๋ก cpu ์ป์ด์ ์์ฒญํ ์์ ์ํ
์๋ก ๋ค๋ฅธ ์ ์ถ๋ ฅ ๋ช ๋ น์ด
- by I/O๋ฅผ ์ํํ๋ special instruction
- ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ๋ฐ๋ก ์๊ณ I/O ๋ฐ๋ก ์์
- by Memory Mapped I/O
- I/O ์ฅ์น๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ์ฐ์ฅ ์ฃผ์๋ฅผ ๋ถ์ฌ ์ฌ์ฉ
์ ์ฅ ์ฅ์น ๊ณ์ธต ๊ตฌ์กฐ
- ๋งจ ์ CPU
- CPU ์์ ๋ ์ง์คํฐ, ์บ์ ๋ฉ๋ชจ๋ฆฌ ...
- ์์ ์ฅ์น๋ค์ CPU๊ฐ ์ง์ ์ ๊ทผ ๊ฐ๋ฅ (byte๋จ์๋ก ์ ๊ทผ ๊ฐ๋ฅ)
- ๋์คํฌ๋ sector ๋จ์๋ก ์ ๊ทผ
- ์บ์ฑ
- ์ฌ์ฌ์ฉ ๋ชฉ์
- ์ ๋ณด๋ฅผ ๋ณด๋ค ๋น ๋ฅธ ์คํ ๋ฆฌ์ง ์์คํ ์ ๋ณต์ฌ; ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ second storage๋ฅผ ์ํ ์บ์๋ก ๊ฐ์ฃผ
'๐ฅ CS > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] Process Management | ์์คํ ์ฝ, CPU burst time (0) | 2022.08.24 |
---|---|
[์ด์์ฒด์ ] ํ๋ก์ธ์ค (2) | ๋๊ธฐ/๋น๋๊ธฐ์ ์ ์ถ๋ ฅ, Thread (0) | 2022.08.24 |
[์ด์์ฒด์ ] ํ๋ก์ธ์ค (1) | Process State, Context Switch, Scheduler (0) | 2022.08.11 |
[์ด์์ฒด์ ] Program Execution | ํ๋ก๊ทธ๋จ ์คํ (0) | 2022.08.10 |
[์ด์์ฒด์ ] Introduction to Operating System (0) | 2022.07.28 |