보시는 바와 같이 Computer System은 크게 Application Program, Os, H/W로 구성되는 것을 확인할 수 있을 겁니다.
Q. 왜 여기서 Device Controller와 Device driver에 대해 설명하려는데 Computer System 구조에 대해 살펴보는가?
=> 그 이유는 Device driver와 Device Controller가 정확히 어디에 위치해 있는지를 파악하고서 역할을 알아야 더 이해하기 쉽다고 생각하기 때문입니다.
특정 H/W, device를 제어하기 위한 프로그램.
Ex) 마우스 연결, 키보드 연결 시 설치되는 Driver
Q. 이러한 Device driver는 왜 필요할까요?
=> 다양한 H/W인 입출력 장치(키보드, 마우스, 프린트 등)를 제어하기 위해.
즉 각 입출력 장치에 맞는 '드라이버'가 필요하기 때문이다.
device driver는 OS 코드 중 각 장치별 처리 루틴을 의미하기도 한다.
해당 I/O 장치를 관리하는 일종의 작은 CPU로 볼 수 있다.
Q. 왜 CPU라고 볼 수 있는가?
제어 정보를 위한 Register로 status register, control register를 가지고 있으며, data 정보를 저장하기 위한 local buffer를 가지고 있기 때문이다.
Device Controller는 I/O가 끝났을 경우 Interrupt로 CPU에 그 사실을 알리는 역할도 하고 있다.
(단, DMA Device controller가 있다면, DMA Device controller가 CPU에 interrupt를 보낸다.)
Device driver와 Device Controller의 차이점은 Device driver의 경우는 software이지만 Device Controller는 hardware라는 점이다.
I/O Bus와 연결해보면 I/O device controller는 device controller이다.