동캄의 코딩도장
운영체제 [I/O system] 본문
I/O Mechanisms
Processor controlled memory access
Polling (Programmed I/O)
processor가 주기적으로 I/O 장치의 상태 확인
- 모든 I/O 장치를 순환하면서 확인
- 전송 준비 및 전송 상태 등
장점
- simple
- I/O 장치가 빠르고, 데이터 전송이 잦은 경우 효율적
단점
- Processor의 부담이 큼 (Polling overhead)
Interrupt
I/O 장치가 작업을 완료한 후, 자신의 상태를 processor에게 전달
- interrupt 발생 시, Processor는 데이터 전송 수행
장점
- Pooling 대비 low overhead
- 불규칙적인 요청 처리에 적합
단점
- Interrupt handling overhead
Direct Memory Access (DMA)
- I/O 장치와 memory 사이의 데이터 전송을 Processor 개입 없이 수행
- 프로세서는 데이터 전송의 시작/종료만 관여
I/O services of OS
I/O scheduling
- 입출력 요청에 대한 처리 순서 결정 --> 시스템의 전반적 성능 향상, process의 요구에 대한 공평한 처리
- ex) Disk I/O scheduling
Error handling
- 입출력 중 발생하는 오류 처리
- ex) disk access fail, network communicaion error 등
I/O device informaion managements
Buffering
- I/O 장치와 program 사이에 전송되는 데이터를 Buffer에 임시 저장
- 전송 속도 (or 처리 단위) 차이 문제 해결
Caching
- 자주 사용하는 데이터를 미리 복사해 둠
- Cache hit시 I/O를 생략 할 수 있음
Spooling
한 I/O 장치에 여러 program이 요청을 보낼 시, 출력이 섞이지 않도록 하는 기법
-> 각 program에 대응하는 disk file에 기록 (spooling)
-> Spooling이 완료 되면, spool을 한번에 하나씩 I/O 장치로 전송
'CS > 운영체제' 카테고리의 다른 글
운영체제 [RAID] (0) | 2022.01.21 |
---|---|
운영체제 [디스크 스케줄링] (0) | 2022.01.21 |
운영체제 [파일 시스템 구현] (0) | 2022.01.20 |
운영체제 [파일 보호] (0) | 2022.01.20 |
운영체제 [디렉토리 구조] (0) | 2022.01.20 |