본문 바로가기

Study/운영체제

Chapter#18 I/O Device

반응형

Chapter#18 I/O Devices


 

 

I/O Devices

I/O System Architecture

memory bus를 통해서 main memory가 cpu에 붙는다

I/O bus를 통해서 system에 연결된다

Memory Bus : 100~300 GB/s

General I/O Bus : PCIe3.0 36GB/s ~ PCIe5.0 100GB/s

Peripheral I/O Bus : 5GB/s

hierarchical structrue 사용 이유 : 물리/비용적 issue

bus가 빠를수록 high performance를 유지하는건 비용이 크며 더 적은 device를 넣을 수 있다

 

Canonical Device

H/W interface : system software가 작동을 제어할 수 있도록 함

- Registers (Status, Command, Data)

Internal structure : implementation specific

- Micro-controller running firmware

- Memory(DRAM or SRAM or both)

- Other H/W-specific Chips

 

H/W Interface

Status register : device의 current status

Command register : device가 특정 작업을 하도록 함

Data register : device에 data를 주거나 가져옴

위 3개의 register로 OS가 device behavior를 control함

while (STATUS == BUSY)
 ; // wait unitl device is not busy
write data to data register
write command to command register
  (starts the device and executes command)
while (STATUS == BUSY)
 ; // wait untill device is done with your request

 

Polling : OS는 device가 도는 동안 기다림

Interrupts : device가 도는 동안 현 프로세스는 sleep시키고 context switch함. device가 종료되면 interrupt하며 기존 process wake

 

 

context switch가 비싼 작업이므로 Interrupts가 안좋을 수 있다

device 작업이 빠른 경우 : polling이 좋음

device 작업이 느린 경우 : Interrupts가 좋을 수 있음

 

Programmed I/O (PIO)

memory -> device로 많은 양의 data를 copy하는데 cpu낭비를 한다

DAM (Direct Memory Access)

일종의 H/W. data가 어디있는지와 얼마나 copy해야되는지를 알고 있음

 

 

Device Interaction

Special I/O instructions(old style)

Memory-mapped I/O

 

I/O Instruction (Port-mapped I/O)

device를 특정하는 port값과 data가 들어있는 register를 넘겨주는 I/O를 위한 CPU instructions 사용

e.g. outb(0x1f2, reg) | instruction(port,register)

 

Memory-mapped I/O

I/O device를 위한 memory address space 할당

OS에서 load/store를 통해 particular register access -> H/W가 main memory 대신 device에 load/store


학교 강의를 토대로 개인 공부 목적으로 작성되어 오타가 및 오류가 있을 수 있으며, 문제가 될 시 삭제될 수 있습니다.

 

반응형

'Study > 운영체제' 카테고리의 다른 글

Chapter#20 Flash-based SSDs  (0) 2021.12.10
Chapter#19 I/O : HDD and RAID  (0) 2021.12.10
Chapter#17 Swapping  (0) 2021.12.10
Chapter#16 Paging Advanced  (0) 2021.12.09
Chapter#15 Paging  (0) 2021.12.09