프로그래밍/컴퓨터구조 및 운영체제

장치 컨트롤러와 장치 드라이버

gameObject 2023. 11. 7. 10:33
728x90

* 혼자공부하는 컴퓨터구조 운영체제 책을 통해 공부한 내용입니다. 자세한 내용은 책을 참조바랍니다.

1. 입출력 장치와 보조기억장치는 컴퓨터 내부와 어떻게 소통하는것일까?

 

2. 입출력장치는 CPU, 메모리 보다 다루기가 더 까다롭다

- 입출력장치에는 종류가 너무 많다.

 -> 종류가 너무 많기 때문에 장치마다 속도, 데이터 전송 형식 등이 다양하다.

- 일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다.

 -> 전송률(transfer rate)란 데이터를 얼마나 빨리 교환할 수 있는지를 나타낸다.

 


장치 컨트롤러

위와 같은 이유 입출력장치의 다양성, 전송률의 속도차이 때문에

입출력장치는 장치 컨트롤러를 통해 컴퓨터와 연결된다.

입출력 제어기(I/O controller), 입출력 모듈(I/O module)

- 모든 입출력장치는 하나 이상의 장치컨트롤러와 연결되어 있으며 장치컨트롤러에도 여러개의 입출력장치가 붙어있을 수 있다.

 

역할

- CPU와 입출력장치 간의 통신 중개를 한다.

- 입출력 오류 검출을 한다. -> 장치 컨트롤러에 연결된 입출력장치에 문제가 있는지 확인한다.

- 데이터 버퍼링 (*버퍼링 : 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼 라는 임시 저장공간에 저장하여 전송률을 비슷하게 맞추는 방법이다.)

(전송률 높은곳 >> 버퍼(모았다가 조금씩 데이터를 내보낸다) >> 전송률 낮은곳)

(전송률 낮은곳 >> 버퍼(모았다가 한번에 내보낸다) >> 전송률 높은곳)

 

 

데이터 / 상태 / 제어 3가지 정보를 주고받는다.

 

1) 데이터 레지스터 : CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터(버퍼).

2) 상태 레지스터

 - 상태정보를 저장한다.(입출력 장치 오류 / 작업의 완료여부 / 입출력 작업 가능여부)

3) 제어 레지스터 : 입출력장치가 수행할 내용에 대한 제어 정보

 

장치 드라이버

- 장치 컨트롤러의 동작을 감지하고 제어하는 프로그램

 

** 장치 컨트롤러 : 하드웨어적 통로 

** 장치 드라이버 : 소프트웨어적 통로 

 

장치 드라이버가 설치되어 있지 않다면 해당 입출력장치를 사용할 수 없다.

장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램이다.

 

주체는 운영체제로써 드라이버를 인식하고 실행시켜 준다.

728x90