티스토리 뷰

I/O System (HW)


I/O Mechanisms

  • How to send data between processor and I/O device

 

1. Processor controlled memory access

  • Polling (Programmed I/O)
  • Interrupt

2. Direct Memory Access (DMA)

 

 

Polling (Programmed I/O)

  • Processor가 주기적으로 I/O 장치의 상태 확인
    • 모든 I/O 장치를 순환하면 확인
    • 전송 준비 및 전송 상태 등
  • 장점
    • Simple
    • I/O 장치가 빠르고, 데이터 전송이 잦은 경우 효율적
  • 단점
    • Processor의 부담이 큼
    • Pooling overhead (I/O device가 느린 경우)

 

Interrupt

  • I/O 장치가 작업을 완료한 후, 자신의 상태를 Processor에게 전달
    • Interrupt 발생 시, Processor는 데이터 전송 수행

  • 장점
    • Pooling 대비 low overhead
    • 불규칙적인 요청 처리에 적합
  • 단점
    •  Interrupt handling overhead

 

Direct Memory Access (DMA)

  • Processor controlled memory access 방법
    • Processor가 모든 데이터 전송을 처리해야 함
    • High overhead for the processor
  • Direct Memory Access
    • I/O 장치와 Memory 사이의 데이터 전송을 Processor 개입없이 수행

  • Processor는 데이터 전송의 시작/종료 만 관여


I/O Services of OS

  • OS Supports for better I/O performance

  • I/O Scheduling
    • 입출력 요청에 대한 처리 순서 결정
      • 시스템의 전반적 성능 향상
      • Process의 요구에 대한 공평한 처리
    • E.g., Disk I/O scheduling
  • Error handling
    • 입출력 중 발생하는 오류 처리
    • E.g., disk access fail, network communication error 등
  • I/O device information managements
  • Buffering
    • I/O 장치와 Program 사이에 전송되는 데이터를 Buffer에 임시 저장
    • 전송 속도 (or 처리 단위) 차이 문제 해결

  • Caching
    • 자주 사용하는 데이터를 미리 복사해 둠
    • Cache hit시 I/O를 생략 할 수 있음
  • Spooling
    • 한 I/O 장치에 여러 Program이 요청을 보낼 시, 출력이 섞이지 않도록 하는 기법
      • 각 Program에 대응하는 disk file에 기록 (spooling)
      • Spooling이 완료 되면, spool을 한번에 하나씩 I/O 장치로 전송

강의

www.youtube.com/watch?v=CtOggyroUeA&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=43

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함