device controller: io 장치 유형을 관리하는 일종의 작은 cpu
io가 끝났을 경우 interrupt로 cpu에 그 사실을 알림
local buffer: device의 작업 공간
registers: 고속 메모리로 극히 소량의 데이터나 처리 중인 중간 결과와도 같은 프로세서가 바로 사용할 수 있는 데이터를 담고 있는 영역
mode bit: cpu에서 실행되고 있는 것이 운영체제인지 or 사용자 프로그램인지 구분
1 사용자 모드: 사용자 프로그램 수행
0 모니터 모드(= 커널, 시스템 모드)
인터럽트
io가 입력될 때 마다 interrupt를 발생시키면 성능이 많이 하락된다.
따라서 DMA를 통해 IO에 입력된 내용을 메모리에 입력하고 모든 입력이 되었으면 interrupt를 한번만 발생시켜 성능 하락을 최소화한다.
-timer: 특정 프로그램이 cpu를 독점하지 못하도록, 일정 시간 후 인터럽트 발생시켜 cpu 해제
time sharing을 구현하기 위해 사용
사용자 프로그램은 IO에 접근 할 수 없음, 따라서 os에 cpu 권한을 넘겨줘서 출력한다.
reference