컨트롤러의 status, command, data register가 장치와 커널의 실제 접점이다.
장치 컨트롤러와 드라이버 경계
I/O 계층은 장치 세부 명령을 드라이버가 감추고, 커널은 interrupt, DMA, buffer cache로 CPU와 장치 속도 차이를 조절합니다.
01device register
02driver
03interrupt / DMA
04buffer cache
드라이버는 장치별 명령을 공통 파일/블록/네트워크 인터페이스로 변환한다.
완료 알림은 interrupt가 맡고, 큰 데이터 이동은 DMA가 CPU 복사를 줄인다.
반복 읽기와 지연 쓰기는 캐시가 흡수하지만 flush 시점이 일관성을 좌우한다.
장치 문제는 user API가 아니라 드라이버 큐, interrupt 발생 여부, DMA 버퍼, 캐시 flush 지점을 따라가야 실제 병목이 보입니다.