◎ 인터럽트 (Interrupt)
- 인터럽트 : 입출력 관리자가 CPU에 보내는 완료 신호
- 인터럽트 번호 : 많은 주변장치 중 어떤 것의 작업이 끝났는지를 CPU에 알려주기 위해 사용하는 번호
- 인터럽트 백터 : 여러개의 입출력 작업을 한꺼번에 처리하기 위해 여러 개의 인터럽트를 하나의 배열로 만든 것
◎ 인터럽트 방식
-
폴링 방식(Polling)
- CPU가 직접 입출력장치에서 데이터를 가져오거나 내보내는 방식 (초기 컴퓨터 시스템에서 사용)
- CPU가 본래 역할 외 모든 입출력까지 관여해야 하므로 작업 효율이 떨어짐
-
인터럽트 방식(Interrupt)
- 입출력 관리자가 대신 입출력을 해주는 방식
- CPU의 작업과 데이터 이동을 독립적으로 운영함으로써 시스템의 효율을 높임
◎ 인터럽트 방식의 동작 과정
- CPU가 입출력 관리자에게 입출력 명령을 보냄
- 입출력 관리자는 데이터를 옮김
- 명령받은 데이터 → 메모리
- 메모리에 있는 데이터 → 저장장치
- 데이터 전송 완료되면, 입출력 관리자는 CPU에 완료 신호를 보냄
◎ 직접 메모리 접근
- 입출력 관리자가 CPU의 허락 없이 메모리에 접근할 수 있는 권한
- 기본적으로 메모리는 CPU만 접근 권한을 가진 작업 공간이지만, 입출력 관리자는 허용함
◎ 메모리 매핑 입출력 (Memory Mapped I/O, MMIO)
- 메모리의 일정 공간을 입출력에 할당하는 기법
- "직접 메모리 접근"을 사용하게 된다면 CPU에서 사용하는 데이터와 입출력 장치에서 사용하는 데이터가 구분이 안됨
- 따라서 메모리의 공간을 나누어 사용함
◎ 사이클 훔치기
- CPU와 "직접 메모리 접근"이 동시에 메모리에 접근하면 보통 CPU가 메모리의 사용 권한을 양보함
- 입출력 장치의 속도가 느리기 때문에 CPU가 양보함