UNIX에서는 각 개별 입출력 장치는 각각의 특수 파일과 관련됨
특정 장치 상에 있는 물리적 번호가 참조되면 운영체제는 그 블록이 버퍼 캐시에 있는지 검사
-> 해시테이블로 구성된 장치 리스트에서 각각의 참조가 해시테이블의 특정한 항목으로 매핑됨
-> 각 버퍼와 존재하는 해시 포인터는 그 해시 테이블 항목을 위한 체인의 다음 버퍼를 가리킴
단말기나 프린터와 같은 문자형 장치 -> 다른 유형의 버퍼링이 적절
문자 큐는 입출력 장치가 쓰고 프로세스가 읽거나 프로세스가 쓰고 장치가 읽음
=> 문자 큐들은 오직 한 번만 읽혀질 수 있음
단순히 장치와 프로세스 공간 사이의 DMA를 의미
프로세스가 쓸 수 있는 가장 빠른 입출력 방법
버퍼를 사용하지 않는 입출력을 수행하는 프로세스는 주기억장치에 잠겨 스왑될 수 있음
=> 주기억장치 일부를 고착시켜 스와핑 기회를 줄임.
구분 | 버퍼를 사용하지 않는 입출력 | 버퍼 캐시 | 문자 큐 |
---|---|---|---|
디스크 장치 (블록형) | X | X | |
테이프 장치 (블록형) | X | X | |
단말기 (문자형) | X | ||
통신 라인 (문자형) | X | ||
프린터 (문자형) | X | X |