Chapter12 입출력 시스템 & 디스크 관리
1. I/O System (HW)
2. I/O Mechanisms
2.1 Processor controlled memory access
- Polling
- Processor가 주기적으로 I/O 장치의 상태 확인
- 장점
- 간단함
- I/O 장치의 속도가 빠르고, 데이터 전송이 잦으면 빠름
- 단점
- 프로세서의 부담이 큼
- Interrupt
- I/O 장치가 작업을 완료한 후, 자신의 상태를 프로세서에게 전달
- 장점
- low overhead
- 뷸규칙한 요청 처리에 적합
- 단점
- Interrupt handling overhead 존재
2.2 Direct Memory Access(DMA)
- I/O 장치와 Memory 사이의 데이터 전송을 프로세서 개입 없이 수행
- I/O 장치와 프로세서 사이에 DMA 제어기를 두어서 수행
- 프로세서는 데이터 전송의 시작/종료 만 관여
-
- 프로세서가 DMA 제어기에 명령을 보냄
- DMA 제어기가 디스크 제어기에 데이터를 메인 메모리에 전송하라고 명령
- 디스크 제어기가 메인 메모리에 데이터 전송
- 데이터 전송을 완료하면 디스크 제어기가 DMA 제어기에게 완료 메세지 전송
- DMA 제어기가 프로세서에게 인터럽트 신호를 보냄
3. I/O Services of OS
- I/O Scheduling
- 입출력 요청에 대한 처리 순서 결정
- Error handling
- 입출력 중 발생하는 오류 처리
- Buffering
- I/O 장치와 Program 사이에 전송되는 데이터를 Buffer에 임시 저장하여 전송 속도 차이 문제 해결
- Caching
- 자주 사용하는 데이터를 미리 복사해 두어서, cache hit시 I/O를 생략 할 수 있음
- Spooling
- 한 I/O 장치에 여러 program이 요청을 보낼 시, 출력이 섞이지 않도록 하는 기법
4. Disk Scheduling
- Disk access 요청들의 처리 순서를 결정
- Disk system의 성능을 향상
- 평가 기준
- Throughput
- Mean response time
- Predictability
4.1 Optimizing seek time
- FCFS(First Come First Service)
- 요청이 도착한 순서에 따라 처리
- 장점
- 간단함
- starvation x
- 단점
- 최적 성능 달성에 대한 고려가 없음
- disk access 부하가 적은 경우에 적합
- SSTF(Shortest Seek Time First)
- 현재 head 위치에서 가장 가까운 요청 먼저 처리
- 장점
- Throughput↑
- 평균 응답 시간↓
- 단점
- predictability↓
- Starvation 존재
- 일괄 처리 시스템에 적합
- Scan Scheduling
- 현재 head의 진행 방향에서, head와 가장 가까운 요청 먼저 처리
- 진행방향을 기준으로 마지막 cylinder 도착 후, 반대 방향으로 진행
- 장점
- SSTF의 starvation문제 해결
- 단점
- head의 진행 방향 반대쪽 끝의 요청의 응답시간↑
- C-Scan Scheduling
- SCAN과 유사
- Head가 미리 정해진 방향으로만 이동 → 마지막 cylinder 도착 후, 시작 cylinder로 이동 후 재시작
- Scan대비 균등한 기회 제공
- Look scheduling
- elevator algorithm이라고도 불림
- 현재 진행 방향에 요청이 없으면 방향 전환
- scan에서의 불필요한 head의 이동을 제거 함
4.2 Optimizing rotational delay
- STLF (Shortest Latency Time First)
- Fixed head disk 시스템에 사용
- sector queuing algorithm 사용
- head 아래 도착한 sector의 queue에 있는 요청을 먼저 처리함
- 만약 moving head disk이면 head가 특정 cylinder에 도착하면, 고정 후 해당 cylinder의 요청을 모두 처리하는 방식으로 사용할 수 있음4.3 SPTF (Shortest Positioning Time First)
- Positioning time = Seek time + rotational delay
- Positioning time이 가장 작은 것 부터 처리
- 장점
- throughput↑, 응답시간↓
- 단점
- starvation문제
- Eschenbach scheduling
- disk가 1회전 하는 동안 요청을 처리할 수 있도록 요청을 정렬
- 만약 다수의 요청이 있는 track이나 sector가 있으면 다음 회전을 할 때 처리 됨
- disk가 1회전 하는 동안 요청을 처리할 수 있도록 요청을 정렬
5. RAID Architecture
- Redundant Array of Inexpensive Disks
- 여러 개의 물리 disk를 하나의 논리 disk로 사용하는 방법
- 성능 향상을 위해서
5.1 RAID 0
- 논리적인 한 block을 일정한 크기로 나누어 각 disk에 저장하는 방식
- 입출력 부하 균등 분배
- 한 디스크가 망가지면 데이터 손실이 발생
5.2 RAID 1
- 동일한 데이터를 mirroring disk에 중복 저장
- 최소 2개의 disk로 구성
- 한 disk에 장애가 생겨도 데이터 손실X
- 가용 disk 용량이 전체 disk의 용량의 절반이 됨
5.3 RAID 3
- RAID 0 + parity disk
- 한 disk에 장애가 발생하면 parity 정보를 이용하여 복구
- Write 시 parity 계산이 필요하므로 overhead가 있음
- 한 disk에 입출력이 몰리면 병목 현상이 발생
5.4 RAID 4
- RAID 3과 유사한 방법으로 Block 단위로 분산 저장을 함
- 독립된 access
- Write 시 parity 계산이 필요하므로 overhead가 있음
- 한 disk에 입출력이 몰리면 병목 현상이 발생
5.5 RAID 5
- RAID 4와 유사
- Parity 정보를 각 disk들에 분산 저장
- 가장 많이 사용하는 방법으로 성능과 신뢰도가 높음
'CS > [OS]' 카테고리의 다른 글
Chapter11 파일 시스템 (0) | 2022.01.04 |
---|---|
Chapter10 가상메모리 관리 (0) | 2021.12.30 |
Chapter9 가상메모리 (0) | 2021.12.28 |
Chapter8 메모리(주기억장치) 관리 (0) | 2021.12.23 |
Chapter7 교착상태(Deadlock Resolution) (0) | 2021.12.21 |