찬란
입출력 시스템 & 디스크 관리 (I/O system & Disk management) 본문
해당 블로그의 내용은 학교에서 배운 내용을 개인적으로 정리한 내용이므로, 잘못된 부분이 있을 수도 있습니다.
개요
- I/O mechanisms
- I/O services of OS
- Disk scheduling
- RAID architecture
I/O system (HW)
I/O mechanisms
- Processor controlled memory access (프로그램 제어 메모리 접근)
- Polling
- Interrupt
- DMA, Direct Memory Access
Polling (programmed I/O)
- 프로세서(Processor)가 주기적으로 I/O 장치의 상태 확인
- 모든 I/O 장치를 순환하며 확인
- 전송 준비, 전송 상태 등
- 장점
- 단순함
- I/O장치가 빠르고, 데이터 전송이 잦을 경우 효율적
- 단점
- 프로세서의 부담이 큼
- Polling overhead(I/O device가 느린 경우)
- 프로세서의 부담이 큼
Interrupt
- I/O 장치가 작업을 완료한 후, 자신의 상태를 프로세서에게 전달
- Interrupt 발생 시, 프로세서는 데이터 전송 수집
DMA, Direct Memory Access
- Processor controlled memory access 의 단점
- 프로세서가 모든 데이터 전송을 처리해야 함
- HIgh overhead
- DIrect Memory Access
- I/O 장치와 memory 사이의 데이터 전송을 프로세서 개입 없이 수행
- 프로세서는 데이터 전송의 시작/종료만 관여
I/O services of OS
- I/O scheduling
- 입출력 요청에 대한 처리 순서 결정
- 시스템의 전반적 성능 향상
- Process의 요구에 대한 공평한 처리
- E.g., disk I/O scheduling
- 입출력 요청에 대한 처리 순서 결정
- Error handling
- 입출력 중 발생하는 오류 처리
- E.g., disk access fail, network, communication error 등
- I/O device information mangements
Buffering
- I/O 장치와 Program 사이에 전송되는 데이터를 buffer에 임시 저장
- 전송 속도(or 처리 단위) 차이 문제 해결
Caching
- 자주 사용하는 데이터를 고속 디스크에 미리 복사해 둠
- Cache hit 시 I/O를 생략 할 수 있음
Spooling
- 한 I/O 장치에 여러 프로그램들이 요청을 보낼 시, 출력이 섞이지 않도록 하는 기법
- 각 프로그램에 대응하는 disk file을 기록 (spooling)
- Spooling이 완료되면, spool을 한번에 하나씩 I/O 장치로 기록
Disk scheduling
- Disk access 요청들의 처리 순서를 결정
- Disk system의 성능을 향상
- 평가 기준
- Throughput
- 단위 시간당 처리량
- Mean response time
- 평균 응답 시간
- Predictability
- 응답 시간의 예측 가능성
- 요청이 무기한 연기(starvation)되지 않도록 방지
- Throughput
- Optimizing seek time
- FCFS
- SSTF
- Scan
- C-Scan
- Look
- Optimizing rotational delay
- Sector queueing (SLTF)
- SPTF
FCFS, First Come First Service
- 요청이 도착한 순서에 처리
- 장점
- 단순
- 공평한 처리 기법 (Starvation 방지)
- 단점
- 최적 성능 달성에 대한 고려가 없음
- Disk access 부하가 적은 경우에 적합
SSTF, Shortest Seek Time First
- 현재 head 위치에서 가장 가까운 요청 먼저 처리
- 장점
- Throughput 향상
- 평균 응답 시간 짧음
- 단점
- 예측 가능성 하향
- Starvation 발생 가능
- 일괄처리 시스템에 적합
Scan scheduling
- 현재 head의 진행 방향에서 head와 가장 가까운 요청 처리
- (진행방향 기준) 마지막 cylinder 도착 후, 반대 방향으로 진행
- 장점
- SSTF의 Startvation 문제 해결
- Throughput 및 평균 응답시간 우수
- 단점
- 진행 방향 반대쪽 끝의 요청들의 응답시간 상승
C-Scan scheduling
- SCAN과 유사
- Head가 미리 정해진 방향으로만 이동
- 마지막 cylinder 도착 후, 시작 cylinder로 이동 후 재시작
- 장점
- Scan대비 균등한 기회 제공
Look scheduling
- Elevator algorithm
- Scan(C-Scan)에서 현재 진행 방향에 요청이 없으면 방향 전환
- 마지막 cylinder까지 이동하지 않음
- Scan(C-Scan)의 실제 구현 방법
- 장점
- Scan의 불필요한 head 이동 제거
SLTF, Shortest Latency Time First
- Fixed head disk 시스템에 사용
- 각 Track마다 head를 가진 disk
- Head의 이동이 없음
- Sector queueing algorithm
- 각 sector별 queue 유지
- Head 아래 도착한 sector의 queue에 있는 요청을 먼저 처리함
- Moving head disk의 경우
- 같은 cylinder에 여러 개의 요청 처리를 위해 사용 가능
- Head가 특정 cylinder에 도착하면, 고정 후 해당 cylinder의 요청을 모두 처리
SPTF, Shortest Positioning Time First
- Positioning time = Seek time + rotational delay
- Positioning time이 작은 요청 먼저 처리
- 장점
- Throughput 상승
- 평균 응답 시간 짧아짐
- 단점
- 가장 안쪽과 바깥쪽 cylineder의 요청에 대해 starvation 현상 발생 가능
RAID architecture
- Redundant Array of Inexpennsive Disk (RAID)
- 여러 개의 물리 dsik를 하나의 논리 disk로 사용
- OS support, RAID, controller
RAID 0
- Disk stripping
- 논리적인 한 block을 일정한 크기로 나누어 각 disk에 저장
- 모든 disk에 입출력 부하 균등 분배
RAID 1
RAID 3
RAID 4
RAID 5
'운영체제' 카테고리의 다른 글
파일 시스템 (File system) (0) | 2023.06.10 |
---|---|
가상 메모리 (Virtual memory) (0) | 2023.06.10 |
메모리 관리 (Memory Management) (0) | 2023.06.10 |
레지스터(Register)에 대하여 (0) | 2023.04.20 |
메모리(Memory) 란? (0) | 2023.04.20 |
Comments