전성빈의 사리사욕

[OS의 작동방식] 입출력 관리 본문

백엔드 로드맵따라가기/OS 및 일반적인 지식

[OS의 작동방식] 입출력 관리

Been2 2020. 8. 12. 23:08
728x90

I/O Devices and Connection

 

IO 디바이스는 컴퓨터에게 감각을 제공합니다. 또한 컴퓨터가 사용자에게 표현할 수 있게 합니다.

  input : 키보드, 마우스, 카메라 ..

  output : 모니터, 스피커

  I/O : 네트워크, 저장매체

 

IO 디바이스들은 Interface를 통해 연결됩니다.

  e.g. HDMI, USB, Ethernet ...

 

CPU와 메모리, I/O 컨트롤러 사이에는 상호 연결이 필요합니다. 이를 Bus라는 매체를 통해 연결합니다.

버스란 데이터와 데이터 전송의 동기화를 위한 병렬로 연결된 통로 입니다. 초기에는 버스란 용어는 전선을 의미했지만 최근에는 연결을 위한 물리적 배치들을 말합니다.

 

병목현상이 발생할 수 있다.

 

물리적인 요소에 의해 성능의 한계가 정해진다.

  통로의 길이, 연결 개수

 

최근에는 네트워크같은 스위치들을 통해 고속 직렬 연결을 사용한다.

 

I/O Methods

 

I/O 관리

  I/O는 OS에 의해 중재된다.

    멀티 프로세스에서는 I/O 자원을 공유한다.

      스케쥴링과 protection이 필요

  I/O는 asynchronous interrupt를 발생시킨다.

     exceptions와 같은 mechanism이다.

  I/O 프로그래밍은 멍청하다.

     OS가 abstractinos를 제공합니다.

 

  I/O devices are managed by I/O controller hardware

    Transfers data to/from device

    Synchronizes operations with SW

 

  Command registers

  Status registers

  Data registers

 

I/O Register Mapping

  Memory mapped I/O

  I/O instructions

 

Polling : Programmed I/O

 

Interrupt

 

DMA (Direct Memory Access)

 

Bus

 

버스 초창기 개념

 

버스란 시스탬 내의 모듈에 공유되는 전기적 신호 선이다. 모듈이 연결될 수 있는 여러 연결점을 가지고 같은 특성의 병력 전기적 와이어로 구성되어 있다. 한 순간에 하나의 병렬 신호만 사용이 가능하다.

종류로는 데이터 버스, 주소 버스, 제어버스 등이 있다.

 

 

버스 최근 개념

 

시스템 내,외부 모듈 사이에 데이터 전송을 위한 공유되는 통신 링크 규약이다. 병렬 또는 직렬로 연결되어 있으며 멀티드롭, 데이지 체인, 스위치드 허브와 연결되어 있따. 시스템 내부 모듈 연결 또는 외부장치와 연결된다.

네트워크 프로토콜과 경계

 

Bus Arbitration

 

버스는 한번에 하나의 신호만 주고받을 수 있기 때문에 여러 모듈이 연결된 상태에서 누구나가 사용이 가능하면 많은 오류를 낸다. 따라서 신호를 주고 받는것을 관리할 관리자가 필요하다.

 

728x90