밥벌이/운영체제

입.출력 동작의 처리 기법

middleware 2011. 5. 5. 21:27
반응형
  • 프로그램 I/O(Programmed I/O)
    • CPU가 프로그램 수행 도중 입.출력과 관련된 명령어를 입.출력 모듈에게 보냄으로써 그 명령어를 수행
    • 출력 명령어
      제어, 검사, 읽기, 쓰기 등
    • 입.출력 주소 지정
      프로세서, 기억 장치, 입.출력 모듈 사이에는 메모리-사상 I/O(Memory-mapped I/O) 방식과 분리형 I/O(Isolated I/O 또는 I/O mapped) 방식의 2가지 주소 지정 방식이 있음
메모리-사상 I/O
  • 별도의 입.출력 명령어가 필요 없음
  • 메모리의 특정 번지를 액세스하면 자동으로 I/O가 발생
분리형 I/O
  • 입.출력을 위한 별도의 명령어를 둠
  • 각 명령어가 주변 장치를 지정하여 입.출력을 수행

▶ 주소 지정 방식 별 비교

   

  • 인터럽트-구동 I/O(Interrupt-driven I/O)
    • 프로그램 I/O 방식에서는 입.출력 모듈이 데이터를 수신 또는 송신할 준비가 될 때가지 프로세서가 기다려야 하는 단점이 있으나, 인터럽트-구동 I/O 방식에서는 프로세서로부터 입.출력 명령어를 받은 입.출력 모듈이 동작을 수행하는 동안 프로세서가 다른 프로그램을 처리할 수 있음
    • 인터럽트-구동 I/O방식에서는 입.출력 모듈이 입.출력 명령어 수행을 완료하였을 때 프로세서에게 인터럽트 신호를 보내 알리게 되며, 프로세서는 다시 원래의 프로그램 수행을 계속하게 됨
         
  • DMA(Direct Memory Access)
    • 데이터 전송에 CPU가 개입하는 문제를 해결
    • Hardwired Controller가 CPU 대신 입.출력을 담당
    • 주기억 장치와 입.출력 장치 간의 직접 데이터를 전송하는 기법
    • 시스템 버스 상에 모듈이 하나 추가되고, 사이클 스틸링(Cycle stealing)을 수행
      • 사이클 스틸링[Cycle stealing]
        • 입.출력 채널과 CPU가 동시에 주기억 장치를 접근 할 때 입.출력 채널에게 우선 순위를 높게 해 주는 것
        • 일반적으로 입.출력 채널은 적은 양의 사이클을 필요로 하기 때문에 채널의 우선순위를 높여주면 입.출력 장비의 효율이 높아지게 됨
반응형