컴퓨터 시스템은 CPU, 구성요소, 공유 메모리에 대한 접근을 제공하는 공통 버스를 통해 연결된 여러 장치 컨트롤러로 구성된다.
각 장치 컨트롤러는 디스크 드라이브, 오디오 장치, 그래픽 디스플레이와 같은 특정 유형의 장치를 담당하고, 로컬 버퍼 저장소와 특수 목적 레지스터 집합을 유지 관리한다.
장치 컨트롤러는 제어하고 있는 장치와 로컬 버퍼 저장소 간에 데이터를 이동한다.
각 장치 컨트롤러에는 장치 드라이버가 있는데, 이 장치 드라이버는 장치 컨트롤러의 작동을 잘 알고 있고, 어떤 운영체제이든 간에 장치에 대한 일관된 인터페이스를 제공한다.
CPU와 장치 컨트롤러는 병렬도 실행되어 메모리 사이클을 놓고 경쟁한다. 공유 메모리를 질서 있게 접근하기 위해 메모리 컨트롤러는 메모리에 대한 접근을 동기화한다.