입출력 시스템(IO System)

Solf·2023년 7월 1일
0

운영체제

목록 보기
12/13

컴퓨터는 필수장치인 CPU와 메모리, 주변장치인 입출력장치와 저장장치로 구성된다.

용어

저속 주변장치: 오고가는 데이터 양이 적어 데이터 전송률이 낮은 장치(ex 키보드)
고속 주변장치: 대용량의 데이터가 오고 가므로 데이터 전송률이 높은 장치(ex 그래픽카드)

채널: 버스에 많은 장치가 연결되기에 하나만 사용하면 병목현상이 발생한다. 이를 막기위해 여러 버스를 묶어놓은 것을 채널이라고 한다.

입출력 버스의 구조

초기의 입출력 버스는 모든 장치가 하나의 버스로 연결된 폴링방식이였다. CPU가 입출력을 직접하기에 입출력을 끝날 때까지 다른 작업을 할 수 없었다.

이를 입출력 제어기(I/O controller)을 둠으로서 모든 입출력은 입출력제어기가 관리하며 CPU는 더욱 높은 효율을 낼 수 있었다.

또한 고속 주변장치와 저속 주변장치의 버스를 분리함으로서 채널 선택기가 이 버스 사이의 데이터 전송을 맡아 관리함으로서 더욱 효율적인 구조를 갖췄다. 그래픽카드의 경우 입출력 버스로 감당이 어려워져 CPU와 마찬가지로 메인 버스를 연결하여 사용하게 되었다
AGP(Accelerated Graphics Port): 그래픽 카드 전용 포트

이때 하나의 버스 채널은 주소 버스, 데이터 버스, 제어 버스로 구성된다.
주소 버스: 데이터를 가져올 주소
데이터 버스: 실제로 송수신되는 데이터
제어 버스: 명령어의 시작과 종료, 데이터의 이동방향, 오류처리, 인터럽트등 다양한 신호를 싣는다.

인터럽트

인터럽트는 오류와 관련된 예외 상황 인터럽트와 사용자의 의지로 사용자가 직접 발생 시키는 시그널이 있다. 이는 인터럽트 핸들러에 의해 함수 형태로 처리되며 인터럽트 벡터는 어디서 인터럽트가 발생했는지 위치를 나타낸다.

단일 버퍼와 이중 버퍼

버퍼는 속도가 다른 두 장치의 속도 차이를 완화하는 역할을 한다. 이때 단일 버퍼를 사용하면 데이터를 담는 작업과 퍼가는 작업을 동시에 하기 어렵다 이는 이중 버퍼로 해결한다.

profile
CS/Back-End

0개의 댓글