구분 | 설명 |
---|---|
인간인식 장치(Human readable) | 컴퓨터 사용자가 컴퓨터와 대화하는데 적합한 장치 디스플레이, 키보드, 마우스 등 |
기계인식 장치(Machine readable) | 전자 장비와의 통신에 적합한 장치 디스크, 테이프 드라이브, 센서, 제어기, 작동 장치 등 |
통신 장치(Communication) | 원격 장치와 통신하는데 적합한 장치 디지털 라인 드라이버와 모뎀 등 |
구분 | 설명 |
---|---|
프로그램된 입출력(Programmed I/O) | 처리기는 프로세스를 대신하여 입출력 모듈에게 입출력 명령을 보냄 해당 프로세스는 진행을 멈추고 요청된 입출력 작업이 완료될 때까지 바쁜 대기(busy wait)상태 |
인터럽트 구동 입출력(Interrupt-driven I/O) | 처리기는 한 프로세스를 대신하여 입출력 명령을 보냄 입출력 명령이 블록형인 경우 -> 운영체제의 명령을 실행, 현 프로세스를 블록 상태로 전이시키고 다른 프로세스 스케줄 입출력 명령이 비블록형인 경우-> 명령을 내린 프로세스의 명령어를 계속 실행 |
직접 메모리 접근(DMA: Direct Memory Access) | DMA모듈이 주기억장치와 입출력 모듈간의 데이터 교환 제어 |
구분 | 인터럽트 없음 | 인터럽트 사용 |
---|---|---|
처리기를 통한 입출력 장치와 메모리 사이의 전송 | 프로그램된 입출력 | 인터럽트 구동 입출력 |
입출력 장치와 메모리 사이의 직접전송 | 직접 메모리 접근(DMA) |
✔️ 입출력 기능이 발달하면서 점점 더 많은 입출력 기능이 처리기 개입 없이 수행
DMA 장치는 처리기를 흉내낼 수 있고, 실제로 처리기처럼 시스템 버스를 제어할 수 있음
=> 시스템 버스를 거쳐 메모리로 데이터를 주고받는 데 필요
✔️ 모든 모듈이 동일한 시스템 버스 공유
✔️ DMA 모듈은 대행처리기로서 메모리와 입출력 모듈 간에 데이터를 교환하기 위해 프로그램된 입출력 사용
✔️ 처리기 제어 하의 프로그램된 입출력처럼 한 단어를 전송시킬 때마다 두 개의 버스 사이클 필요(전송 요청 후 데이터 전송) => 비효율적
✔️ DMA 모듈과 하나 이상의 입출력 모듈 사이에 시스템 버스가 아닌 통로가 존재
✔️ 입출력 버스를 통해 입출력 모듈들을 DMA 모듈에 연결하는 방식으로 한 단계 진전
✔️ DMA 모듈의 입출력 인터페이스 수를 하나로 줄여 주고 확장성 높은 구성 제공
✔️ DMA 모듈이 처리기나 주기억장치와 함께 공유하는 시스템 버스
=>메모리와 데이터를 교환하거나 처리기와 제어 신호를 교환할 때 DMA 모듈에 의해서만 사용됨
✔️ DMA와 입출력 모듈 간의 데이터 교환은 시스템 버스 밖에서 일어남