1. I/O mechanisms
- 프로세서와 I/O 장치 사이에 데이터를 보내는 방법
1) processor controlled memory access
- 프로세서가 모든 데이터 전송을 처리
(1) Pooling
- 프로세서가 주기적으로 순환하면서 I/O 장치의 상태(전송준비, 전송상태 등)를 확인
- 장점
* I/O 장치가 빠르면서 데이터 전송이 잦은 경우 효율적
- 단점
* 프로세서에게 큰 부담
(2) Interrupt
- I/O 장치가 작업을 완료 후, 자신의 상태를 프로세서에게 전달
- Interrupt 발생 시, 프로세서는 데이터 전송 수행
- 장점
* Pooling 대비 overhead가 적음
* 불규칙적인 요청 처리에 적합
- 단점
* Interrupt handling overhead
- 사용
2) Direct Memory Access (DMA)
- Processor controlled memory access 방법은 프로세서가 모든 데이터 전송을 처리하기 때문에 overhead가 큼
- DMA 제어기를 통해 I/O 장치와 memory 사이의 데이터 전송을 프로세서의 개입 없이 수행
- 동작
* 프로세서는 데이터 전송의 시작/종료만 관여
① 프로세서가 전송 방향, 전송 바이트 수, 데이터 블록의 메모리 주소 등을 DMA 제어기로 보낸다.
② DMA 제어기는 디스크 제어기에 데이터를 메인 메모리로 전송하라고 요청한다.
③ 디스크 제어기가 메인 메모리에게 데이터를 전송한다.
④ 데이터 전송을 완료하면 디스크 제어기는 DMA 제어기에게 완료 메시지를 전달한다.
⑤ DMA 제어기가 프로세서에 인터럽트 신호를 보낸다.
2. I/O services of OS
- I/O 성능 향상을 위한 OS 지원
1) I/O scheduling
- 입출력 요청에 대한 처리 순서 결정
* 시스템의 전반적 성능 향상
* 프로세스의 요구에 대한 공평한 처리
- Error handling
* 입출력 중 발생하는 오류 처리
2) Buffering
- I/O 장치와 프로그램 사이에 전송되는 데이터를 buffer에 임시 저장
- 전송 속도 차이 문제 해결
3) Cashing
- 자주 사용하는 데이터를 미리 복사
- Cashe hit시 I/O를 생략할 수 있음, 왜냐하면 미리 데이터를 복사했기 때문에
4) Spooling
- 한 I/O 장치에 여러 프로그램이 요청을 보낼 시, 출력이 섞이지 않도록 하는 기법
- 각 프로그램이 요청한 내용을 개별로 기록한 뒤에(Spooling), 내용이 기록된 묶음을 하나씩 전송
- 예시 : A, B, C 요청이 동시에 오면, A 내용이 모두 모일 때까지, B 내용이 모두 모일 때까지, C 내용이 모두 모일 때까지 대기하다가 모두 모인 A/B/C를 묶음으로 보냄
본 내용은 한국기술교육대학교 김덕수 교수님의 유튜브 강의를 듣고 정리한 내용입니다.
'Software Courses > Operating System' 카테고리의 다른 글
File system implementation (0) | 2020.12.14 |
---|---|
File protection (0) | 2020.12.14 |
Directory structure (0) | 2020.12.13 |
File System (0) | 2020.12.13 |
Disk System (0) | 2020.12.13 |