2.2 CPU와 I/O 연산

Mar 19, 2019


-> 목차

컴퓨터에서 연산을 한다는 것은 CPU가 무언가 일을 한다는 뜻이다.

입출력 장치들의 I/O연산은 I/O 컨트롤러가 담당하고,

컴퓨터 내에서 수행되는 연산은 메인 CPU가 담당한다.

이 때, 입출력 장치와 메인 CPU는 동시 수행이 가능하다.

각 장치마다 이를 제어하기 위해 설치된 장치 컨트롤러에는 장치로부터 들어오고 나가는 데이터를 임시로 저장하기 위한

작은 메모리를 가지고있는데 이를 로컬 버퍼(local buffer)라고 한다.

디스크나 키보드 등에서 데이터를 읽어오는 경우, 우선 로컬 버퍼에 데이터가 임시로 저장된 후 메모리에 전달된다.

이 때, 장치에서 로컬 버퍼로 읽어오는 일은 컨트롤러가 담당한다.

데이터를 모두 가지고 왔는지 확인하는 작업도 컨트롤러가 인터럽트를 발생시켜 CPU에게 보고하는 것이다.


CPU는 명령 하나를 수행할 때마다 인터럽트가 발생했는지를 체크한다.

인터럽트가 발생했으면 다음 명령을 수행하기 전에 인터럽츠 처리를 하게 되고 그 렇지 않으면 다음 명령을 계속 수행하게 된다.

인터럽트는 키보드 입력혹은 디스크에서 데이터를 다 읽어왔다는 등의 이벤트를 CPU에게 알려 줄 필요가 있는 경우

컨트롤러가 발생시키는 것이다.



위 글은 운영 체제와 정보 기술의 원리 -반효경책을 정리하기 위해 쓴 글입니다.
https://book.naver.com/bookdb/book_detail.nhn?bid=4392911