IO System
JeongSeulho
2023년 03월 07일
준비중...
클립보드로 복사
📌I/O System (HW)
📌I/O Mechanisms
- 프로세서와 입출력장치 사이의 데이터 송수신 방법
📖Processor controlled memory access
✏️polling 기법
- Processor가 주기적으로 I/O 장치의 상태 확인
- 모든 I/O 장치를 순환하면서 전송 준비 및 전송 상태 등을 확인
- I/O 장치가 빠르고, 데이터 전송이 잦은 경우 효율적
- Processor의 부담이 큼
✏️Interrupt 기법
- I/O 장치가 작업을 완료한 후, 자신의 상태를 Processor에게 전달
- Interrupt 발생 시, Processor는 데이터 전송 수행
- Pooling 대비 low overhead
- 불규칙적인 요청 처리에 적합
- Interrupt handling overhead
📖Direct Memory Access (DMA)
- I/O 장치와 Memory 사이의 데이터 전송을Processor 개입 없이 수행
- Processor는 데이터 전송의 시작/종료 만 관여
📌I/O Services of OS
- I/O 성능을 높이기 위한 방법들
📖I/O Scheduling
- 입출력 요청에 대한 처리 순서 결정
- Process의 요구에 대한 공평한 처리
📖Error handling
- 입출력 중 발생하는 오류 처리
📖Buffering
- I/O 장치와 Program 사이에 전송되는 데이터를 Buffer에 임시 저장
- 전송 속도 (or 처리 단위) 차이 문제 해결
- 100개 보내고 10개 받을 수 있으면 감당안되니 만든 중간 창고
- 10개 보내고 100개 받을 수 있을 때에도 처음에 창고에 모아놨다가 100개씩 보내서 안끊기 연속되게 함
📖Caching
- 자주 사용하는 데이터를 미리 복사해 둠
- Cache hit시 I/O를 생략 할 수 있음
📖Spooling
- 한 I/O 장치에 여러 Program이 요청을 보낼 시, 출력이 섞이지 않도록 하는 기법
- 각 Program에 대응하는 disk file에 기록 (spooling)
- Spooling이 완료 되면, spool을 한번에 하나씩 I/O 장치로 전송