1. 시스템 구조
CPU와 주메모리가 메모리 버스
로 연결되어 있다.
몇 가지 장치들이 범용 I/O 버스
에 연결이 되어 있는데, 많은 현대의 시스템에서는 PCI를 사용하고 있다.
마지막으로, 그 아래에는 SCSI나 SATA 또는 USB와 같은 주변장치용 버스
가 있다.
이 버스들을 통해 디스크, 마우스, 키보드와 같은 느린 장치들이 연결된다.
시스템 설계자들은 이러한 계층 구조를 택하여 고성능 장치들을 CPU에 가깝게 배치하여고 느린 성능의 장치들은 그보다 멀리 배치하였다.
디스크처럼 느린 장치를 주변 I/O 버스에 연결하여 얻는 이득이 많은데, 그 중 하나는 많은 장치
들을 연결할 수 있다는 것이다.
2. 표준 장치
이번에는 가상의 표준 장치
를 살펴보고, 이 장치를 효율적으로 활용하기 위해 필요한 것은 무엇인지 알아보자.
두 개의 중요한 요소가 있다.
첫 번째는 시스템의 다른 구성 요소에게 제공하는 하드웨어 인터페이스
이다.
소프트웨어가 인터페이스를 제공하듯이 하드웨어도 인터페이스를 제공하여 시스템 소프트웨어가 동작을 제어
할 수 있도록 해야 한다.
그렇기 때문에 모든 하드웨어 장치들은 특정한 상호 동작을 위한 방식과 명시적인 인터페이스를 갖고 있다.
장치가 갖고 있어야 하는 두 번째 요소는 내부 구조
이다.
구현 방법에 따라 다르지만, 장치의 기능
을 추상화
하여 시스템에 제공하는 책임을 갖고 있다.
위에서 보인 그림에서 장치의 인터페이스는 3개의 레지스터
로 구성되어 있는 것을 보았다.
상태(status) 레지스터
는 장치의 현재 상태를 읽을 수 있으며 명령어(command) 레지스터
는 장치가 특정 동작을 수행하도록 요청할 때, 그리고 데이터(data) 레지스터
는 장치에 데이터를 보내거나 받거나 할 때 사용한다.
이 레지스터들을 읽거나 쓰는 것을 통해 운영체제는 장치의 동작을 제어할 수 있다.