I/O Devices์ ์ข ๋ฅ
I/O Devices๋ ์ /์ถ๋ ฅ์ ๊ด๋ฆฌํ๋ ์ฅ์น๋ก ๋ชฉ์ ์ ๋ฐ๋ผ ์ฌ๋ฌ ์ข ๋ฅ๊ฐ ์๋ค.
๋จผ์ , ํค๋ณด๋๋ ๋ง์ฐ์ค, ๋์คํ๋ ์ด ๋ฑ์ ์ฌ๋์ด ์ด์ฉํ๋ ์ฅ์น๊ฐ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ผ์๋ Controllers, Actuators, Disk, tape driver ๋ฑ์ ๊ธฐ๊ณ๊ฐ ์ด์ฉํ๋ ์ฅ์น๊ฐ ์์ผ๋ฉฐ ๋ชจ๋ ๋ฑ์ ํต์ ์ ์ํ ์ฅ์น๊ฐ ์กด์ฌํ๋ค.
์ธ์์๋ ๋๋ฌด ๋ง์ ์ฅ์น๋ค์ด ์๊ณ , ์ด์์ฒด์ ๋ํ ๋ค์ํ๊ธฐ ๋๋ฌธ์ ๊ฐ ์ด์์ฒด์ ์ ๋ง๋ ์ฅ์น๋ค์ ์ ์ ํ ์ ๋ผ์๋ฃ์ ํ์๊ฐ ์๋ค.
์ด๋ค ๋ฐฉ์์ผ๋ก ๋ผ์๋ฃ๋์ง ์ดํด๋ณด๊ธฐ ์ด์ ์ ์ /์ถ๋ ฅ ์ฅ์น์ ์ผ๋ฐ์ ์ธ ๊ตฌ์ฑ์ ๋ํด ์์๋ณด์.
I/O Devices
I/O Devices๋ ๋๊ฐ 3 ๊ฐ์ ์์๋ก ์ด๋ฃจ์ด์ง๋ค.
Controller Register, Status Register, Internel Buffer์ด๋ค.
์ฅ? Register๋ CPU์๋ง ์๋ ๊ฒ ์๋๊ฐ? Devices์์ ์ Register๊ฐ ๋ค์ด๊ฐ๊น? ๋ผ๋ ์๊ฐ์ด ๋ค ์ ์๋ค.
๋ง๋ ๋ง์ด๋ค. ์ค์ ๋ก๋ Device ์์ฒด์ Register๊ฐ ์๋ ๊ฒ ์๋๋ผ Device driver๊ฐ Register๊ฐ์ ๋ณ๊ฒฝ์ํด์ผ๋ก์จ, Device๋ก ์ ๊ธฐ์ ์ธ ์ ํธ๋ฅผ ๋ณด๋ธ๋ค.
Controller Register์ด ํ๋ ์ญํ ์ ๋ณดํต Device๊ฐ 1๊ณผ 0์ ํตํด์ ํด์ผํ ๋ช ๋ น์ ์ํํ๋ค.
Status Register๋ ํ์ฌ I/O ์์ ์ด ์ํ ์ ์ธ์ง, ์ํ ์ค์ธ์ง, ์ํ์ด ๋๋ฌ๋ ์ง ์ฒดํฌํ๋ค.
I/O Management
์์ ๋งํ๋ฏ์ด, ์ธ์์๋ ๋๋ฌด ๋ง์ ์ฅ์น๋ค๊ณผ ์ด์์ฒด์ ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ด๋ค ๊ฐ์ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํ๋ค.
๋ฐ๋ผ์ ์ด์์ฒด์ ์์ฒด์์ Status Register๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ ์ณ์ง ์๋ค. ๊ฐ ์ฅ์น๋ค๋ง๋ค Status Register์ ๋ฐ๋ผ ๋์ํ๋ ๋ฐฉ์์ด ๋ค๋ฅผ ์๋ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ Kernel ์์ญ์ด๋, I/O๋ง์ ๋ด๋นํ๋ ํน์ํ ์ปค๋ ๊ณ์ธต์ ๋ง๋ค๊ฒ ๋์๋ค. ๋ฐ๋ก "Kernel I/O Subsystem"์ธ ๊ฒ์ด๋ค.
์ด์ ๋ฐ๋ผ ๊ทธ ๋ฐ์ ํ๋์จ์ด ๋จ์์๋ ๋ณํ๊ฐ ์๊ฒผ๋ค. ๊ทธ๋ฅ Device ์์ฒด๋ฅผ ์ฐ๊ฒฐ์ํค๋ ๊ฒ์ ๋ฌด๋ฆฌ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ๋ชจ๋ ํํ๋ก ๊ตฌํํ์๋ค. ๋ชจ๋ ํํ๋ก ๊ตฌํํ๋ค๋ฉด ์ฝ๊ฒ ํ/๋ถ์ฐฉ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ค.
ํ๋์จ์ด ์์ญ์ Device์ Device Controller๋ก ๋ถ๋ฆฌํ์๊ณ , ์ํํธ์จ์ด ์์ญ์ Device Driver์ Kernel I/O SubSystem์ผ๋ก ๋ถ๋ฆฌํ์๋ค. ์ํํธ์จ์ด ์์ญ์ Device Driver๋ฅผ ํตํด ์ค์ ๋ก ํ๋์จ์ด์ ์ ๊ทผํ์ฌ ๊ด๋ฆฌ๋ฅผ ํ ์ ์๊ฒ ๋ ๊ฒ์ด๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ Device Driver๋ ๊ฐ ์ ์กฐ์ฌ ์ธก์์ ๋ง๋ค์ด์ผ ํ๋ค.
device driver๋ง ๋ง๋ค๋ฉด ๋์ผ๊น? Kernel I/O subsystem ์์์์ I/O ๋ช ๋ น์ ๋ชจ๋ device driver๊ฐ ์ ๋ถ ์์ฉํ ์ ์์๊น? ์๊ทธ๋๋ OS๋ ์ฌ๋ฌ๊ฐ์ง์ธ๋ฐ ์ฝ์ง๋ ์์ ๊ฒ์ด๋ค.
๊ทธ๋ ๊ธฐ์ ๋ง๋ ๊ฒ์ด device-driver interface์ด๋ค.
์ธํฐํ์ด์ค๋ ์๋ก ๋ค๋ฅธ ๊ตฌํ์ฒด(์ฌ๊ธฐ์๋ ์ฅ์น๋ค)์ด๋๋ผ๋, ์ธํฐํ์ด์ค๋ฅผ ํตํด์ ๋์ผํ ๋ช ๋ น์ ์ํํ๋ฉด ๊ตฌํ์ฒด์ ๋ฐ๋ฅธ ์ ํฉํ ํ๋์ ํ๋ค.
device driver๊ฐ ์ฌ๋ฌ ๊ฐ์ง์ด๋๋ผ๋ ์ด์์ฒด์ ์ ๋ง๋ device-driver interface๋ฅผ ์์ฑํ๋ค๋ฉด ๋ฌธ์ ์์ ๊ฒ์ด๋ค.
์ค์ ๋ก ํ๋ก์ธ์ค๊ฐ ๋ช ๋ น์ ๋ด๋ฆฌ๋ฉด, Device๋ ์์ ๊ฐ์ ๊ณผ์ ์ ํตํด ๋ช ๋ น์ ์ํํ๋ค.
ํน์ดํ ๊ฒ์ DDI(Device Driver Interface)๊ฐ ๋ง์น File System๊ณผ ๊ฐ์ด ๋์ํ๋ค๋ ๊ฒ์ด๋ค. ๋ง์น ํ์ผ์ ์ฝ๊ณ ์ฐ๋ ๊ฒ ๋ง๋ฅ ์ฅ์น๋ฅผ ์ฝ๊ณ ์ฐ๋๋ก ํ๋ค.
kernel I/O Management
I/O๋ง ๋ด๋นํ๋ค๊ณ ํ๋ _Kernel I/O Management_๊ฐ ์ค์ ๋ก ์ํํ๋ ์ญํ ์ ๋ฌด์์ธ์ง ํ๋ฒ ์ดํด๋ณด์.
- Device Reservation
- ์ฅ์น๋ฅผ ์์ฝํ๊ณ ํ ๋นํ๋ค.
- ์์์ ๋ค๋ฅธ ์์ ์ ํ๊ณ ์๋ค๋ฉด, ๋๊ธฐ ํ์ ์ง์ด๋ฃ๊ณ ๋ค๋ฅธ ์์ ์ ์ํํ๋ค.
- Device Scheduling
- ํ์ ๋ค์ด๊ฐ ์๋ ์์ ์ค์์ ์ด๋ค ์์ ์ ์ํํ ์ง ์ ํ๋ค.
- ํ์ด์ง๋ง, ๋ค์ด์จ๋๋ก ์์ ์ ํ์ง ์์ ์๋ ์๋ค. ์ด๋ "์ฑ๋ฅ" ๋๋ฌธ์ด๋ค.
- ํ๋ก์ธ์ค ์ค์ผ์ฅด๋ง(=ํ๋ก์ธ์ ์ค์ผ์ฅด๋ง)๊ณผ ๋น์ทํ ๋งฅ๋ฝ์ด๋ค.
- Error Handling
- ๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ๊ฐ ์ฅ์น์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์์ ์๋ฆฐ๋ค.
- Buffering
- ์ /์ถ๋ ฅ ๋ด์ฉ์ ์์๋ก ์ ์ฅํ๋ค
- ์ปค๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์ ์ฅํ๋ค.
- ๋ชฉ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์ฅ์น์ ์ปค๋๊ฐ์ ์๋ ์ฐจ์ด๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด์
- ๋๋์ ๋ด์ฉ์ ์ ๋ฌํ๊ธฐ ์ํด ์ฌ์ด์ฆ๋ฅผ ์กฐ์
- ์ถ๋ ฅ ๋ฒํผ์ ๋๋ ์ ๋์ ๋ด์ฉ๋ง์ ์ถ๋ ฅํ๊ธฐ ์ํด์ = Copy Semantics
- Caching
- ์ปดํจํฐ์ ์คํ ์๋๋ฅผ ๋์ด๊ธฐ ์ํด ์ปค๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์์๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
- Spooling
- ๋ณด์กฐ ๊ธฐ์ต ์ฅ์น์ ๊ณต๊ฐ์ ์ผ๋ถ๋ฅผ ์ถ๋ ฅ์ ์ํด ์ฌ์ฉํ๋ค.
'๐ Knowledge > ์ด์์ฒด์ (OS)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] I/O Control : Polling, Interrupt Driven I/O, DMA๋ฐฉ๋ฒ์ด๋? (0) | 2024.05.13 |
---|---|
[์ด์์ฒด์ ] ์ธํฐ๋ฝํธ๋ ๋ฌด์์ด๊ณ , ์ด๋ป๊ฒ ๋ฐ์ํ ๊น (0) | 2024.05.12 |
[์ด์์ฒด์ ] ํ์ผ ์์คํ ์ฌ๋ก(Linux) (0) | 2024.05.05 |
[์ด์์ฒด์ ] ๋ฐ์ดํฐ ๋ธ๋ก(Data Block)์ ๊ด๋ฆฌ (0) | 2024.05.05 |
[์ด์์ฒด์ ] ํ์ผ์์คํ ์ด๋? (0) | 2024.05.01 |