동캄의 코딩도장

운영체제 [I/O system] 본문

CS/운영체제

운영체제 [I/O system]

동 캄 2022. 1. 21. 00:00

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