티끌모아 태산

iosystems 본문

CS 지식/운영체제

iosystems

goldpig 2023. 6. 21. 11:30
728x90

I/O: a major bottleneck in system performance

  • Demands CPU to execute device driver, kernel I/O code
  • Mode switching due to interrupt
  • Data copying
  • Network traffic especitally stressful

Three ways to interact with hardware device

  • Polling (e.g. , floppy driver)
  • interrupt-driven (e.g. most device)
  • DMA(Direct-memory-access)

Polling vs Interrupt

Polling은 I/O 장치의 상태를 주기적으로 확인하여 데이터를 전송하는 방식입니다. 프로세서는 I/O 장치가 데이터를 전송할 준비가 되었는지를 계속 확인하고, 준비가 되었을 때 데이터를 전송합니다. 주기적인 확인 과정은 프로세서의 시간과 자원을 낭비할 수 있으며, 효율적이지 않을 수 있습니다.

 

Interrupt는 I/O 장치로부터 신호(I/O devices request interrupt when need attention)를 받아 프로세서의 주의를 요청하는 방식입니다. I/O 장치는 작업이 완료되었을 때 인터럽트 신호를 발생시킵니다. 프로세서는 현재 수행 중인 작업을 중단하고, 인터럽트를 처리하기 위한 인터럽트 핸들러(Interrupt Handler)로 제어를 전달합니다. 인터럽트는 프로세서의 시간과 자원을 효율적으로 활용할 수 있으며, 빠른 응답성을 제공합니다.

DMA (Direct Memory Access)

I/O 장치와 메모리 사이에서 직접적으로 데이터를 전송하기 위해 CPU를 bypass. DMA 컨트롤러를 요구한다. 

I/O Software

Application I/O interface

when the devices vary so widely, how can the OS give a convenient and uniform I/O interface to application?

  • 디바이스 드라이버 (Device Drivers): 운영체제는 디바이스 드라이버를 통해 각각의 장치를 관리합니다. 디바이스 드라이버는 특정 장치와 상호작용하고, 장치의 동작을 추상화하여 운영체제와 애플리케이션 사이에서 일관된 인터페이스를 제공합니다.

 

728x90

'CS 지식 > 운영체제' 카테고리의 다른 글

운영체제 개요  (0) 2023.07.21
Deadlock  (0) 2023.06.21
Virtual Memory  (0) 2023.06.20