티스토리 뷰
I/O System (HW)
I/O Mechanisms
- How to send data between processor and I/O device
1. Processor controlled memory access
- Polling (Programmed I/O)
- Interrupt
2. Direct Memory Access (DMA)
Polling (Programmed I/O)
- Processor가 주기적으로 I/O 장치의 상태 확인
- 모든 I/O 장치를 순환하면 확인
- 전송 준비 및 전송 상태 등
- 장점
- Simple
- I/O 장치가 빠르고, 데이터 전송이 잦은 경우 효율적
- 단점
- Processor의 부담이 큼
- Pooling overhead (I/O device가 느린 경우)
Interrupt
- I/O 장치가 작업을 완료한 후, 자신의 상태를 Processor에게 전달
- Interrupt 발생 시, Processor는 데이터 전송 수행
- 장점
- Pooling 대비 low overhead
- 불규칙적인 요청 처리에 적합
- 단점
- Interrupt handling overhead
Direct Memory Access (DMA)
- Processor controlled memory access 방법
- Processor가 모든 데이터 전송을 처리해야 함
- High overhead for the processor
- Direct Memory Access
- I/O 장치와 Memory 사이의 데이터 전송을 Processor 개입없이 수행
- Processor는 데이터 전송의 시작/종료 만 관여
I/O Services of OS
- OS Supports for better I/O performance
- I/O Scheduling
- 입출력 요청에 대한 처리 순서 결정
- 시스템의 전반적 성능 향상
- Process의 요구에 대한 공평한 처리
- E.g., Disk I/O scheduling
- 입출력 요청에 대한 처리 순서 결정
- Error handling
- 입출력 중 발생하는 오류 처리
- E.g., disk access fail, network communication error 등
- I/O device information managements
- Buffering
- I/O 장치와 Program 사이에 전송되는 데이터를 Buffer에 임시 저장
- 전송 속도 (or 처리 단위) 차이 문제 해결
- Caching
- 자주 사용하는 데이터를 미리 복사해 둠
- Cache hit시 I/O를 생략 할 수 있음
- Spooling
- 한 I/O 장치에 여러 Program이 요청을 보낼 시, 출력이 섞이지 않도록 하는 기법
- 각 Program에 대응하는 disk file에 기록 (spooling)
- Spooling이 완료 되면, spool을 한번에 하나씩 I/O 장치로 전송
- 한 I/O 장치에 여러 Program이 요청을 보낼 시, 출력이 섞이지 않도록 하는 기법
강의
www.youtube.com/watch?v=CtOggyroUeA&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=43
'운영체제' 카테고리의 다른 글
디스크 관리 - Disk Scheduling, RAID Architecture (0) | 2021.01.26 |
---|---|
파일 시스템 #3 - File System Implementation(Allocation methods, Free space management) (0) | 2021.01.24 |
파일 시스템 #2 - Directory Structure, File Protection (0) | 2021.01.22 |
파일 시스템 #1 - Disk System, File System (0) | 2021.01.21 |
가상 메모리 관리 #3 - Replacement Strategies(Variable allocation) (0) | 2021.01.20 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Spring
- vmware
- oracle
- Allocation methods
- Flume
- linux
- I/O Mechanisms
- RAID Architecture
- SPARK
- Replacement Strategies
- Disk System
- HDFS
- SQL
- gradle
- springboot
- mapreduce
- Java
- hadoop
- I/O Services of OS
- 빅데이터 플랫폼
- Variable allocation
- 하둡
- JSON
- 빅데이터
- Free space management
- jdbc
- Disk Scheduling
- maven
- File Protection
- aop
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함