본문 바로가기
Computer Science/OS (운영체제)

[OS] 입출력 시스템(I/O system)

by SIXXXX_ 2022. 3. 20.
728x90

입력 시스템 작동과정

  1. CPU가 장치제어기의 레지스터에 명령을 적재한다.
  2. 장치 제어기는 레지스터 내용을 조사해 수행할 동작을 검사한다.
  3. 레지스터 내용이 읽기 명령이라면 입력장치에게 읽기 신호를 보낸다.
  4. 입력장치는 데이터를 읽어서 버퍼에 저장한다
  5. 제어부분은 CPU에 인터럽트를 발생시킨다.
  6. CPU가 버퍼에서 데이터를 읽어 들이고 입력이 완료된다.

  • 장치제어기 : 공통버스와 장치사이에 위치해 장치를 제어하는 역할. 장치 제어기는 내부적으로 저장 장치를 가지고 있을 수 있으며 자신의 주변 장치와의 데이터 송수신을 할 수 있도록 인터페이스 역할을 한다.

 

동기식 입출력 

  • 입출력이 시작되고 입출력이 끝난 후에 제어가 사용자 프로세스로 복귀하는 구조이다.
  • 매순간마다 수행해야 할 입출력 요청은 하나가 되므로 운영체제는 어느 장치가 인터럽트를 호출하고 있는지 알고 있다.
  • 다만 여러 장치에 대한 동시 입출력이 불가능하며 각종 유용한 연산들이 병행 실행될 가능성을 완전히 배체한다.

비동기식 입출력

  • 입출력이 시작되고 끝나기 전에 사용자 프로그램으로 제어가 되돌아간다.
  • CPU가 하나의 요청을 보낸 다음에 인터럽트가 돌아오기 전까지 다른 일을 계속 수행할 수 있다는 장점을 지님, 다만 이 경우 입출력 장치 별로 장치의 종류, 주소, 상태 등의 정보를 매순간 저장하여 관리할 필요가 있다.
  • 이런 정보는 장치 상태 테이블의 형태로 저장되어 관리된다
  • 또한 다른 프로세스들이 같은 장치에 대해 요청을 할 수 있기 때문에 운영체제는 매 장치를 위해서 대기 큐를 유지해야 한다.
  • 하나의 입출력이 실행되는 동안에도 다른 시스템 작업들을 병행 할 수 있다는 점에서 효율성이 증가한다.

 

DMA구조(Direct Memory Access)

  • DMA 방식은 데이터를 낱개가 아니라 블록단위로 전송하는 효율적인 방식 중 하나다.
  • DMA 방식을 채택하면 한 블록 단위의 데이터 전송을 할때는 CPU의 간섭이 없고 자체적으로 입출력 작업을 처리할 수 있다.
  • 따라서 고속의 입출력 장치를 위해 사용이 되고 기존에 발생했던 병목 현상을 개선하는 기술로 활용된다.

DMA 의 구성도

DMA 입출력 방식의 작동과정

  1. 운영체제가 입출력 요청을 보낸다.
  2. DMA 제어기의 레지스터에 주소와 전송 길이가 저장된다.
  3. DMA 제어기는 한 블록의 입출력 동작을 수행하고 그동안 CPU는 다른 작업을 한다.
  4. 입출력 동작이 완료되면 DMA 제어기는 CPU에게 완료했다는 인터럽트를 보낸다.