Outline
① Disk Structure
② Solid-state disk (SSD) Characteristics
③ Disk Attachment
④ Disk Scheduling
⑤ Disk Management
⑥ RAID Structure
① Disk Structure
Spindle: 디스크의 중심. 데이터를 읽고 쓰기 위해서 spindle이 반드시 회전 해야함
Track: 여러 개의 sector로 구성
Sector: 데이터가 저장되는 최소 단위
Cylinder: spindle로부터 동일한 거리에 있는 track들의 집합
Platter: 데이터가 저장되는 공간. 여러 개의 track으로 구성
Arm assembly: 여러 개의 arm으로 구성됨
Read-write head: arm의 끝 부분. 특정 데이터를 읽고 쓰기 위해서 read-write head가 해당 track으로 가야함(seek). Read-write head가 서로 다른 cylinder를 가리킬 수 없음
Seek time: read-write head가 요청한 sector가 위치한 track으로 이동하는데 걸리는 시간
Rotational latency: 해당 sector가 read-write head의 밑으로 회전하는데 걸리는 시간
Transfer time: 데이터를 읽고 전송하는데 걸리는 시간
access time = seek time (트랙 찾기) + rotational latency (섹터 찾기) + transfer time (전송)
② Solid-state disk (SSD) Characteristics
● SSD 특징
1. HDD보다 비쌈
2. HDD보다 안정적
3. 수명 짧음
-> write 횟수 제한있기 때문에 wear-leveling을 통해 골고루 write 해야 함
4. 용량 작음
5. 더 빠름
6. 안움직임
-> seek time, rotational delay 없음
overwrite 안됨 : erase before write
R/W page 단위
erase block 단위 : 특정 page만 지울 수 없음
● Garbage collection
블록을 실제로 삭제하지 않고, 표기 후 적절한 시점에 일괄 삭제 처리하는 기술
● Flash Translation Layer
특정 content가 동일한 page에 계속 존재하지 않음 -> 특정 위치에 overwrite (X)
OS에서 보는 page 위치 계속 바뀜 -> mapping layer 하나 더 존재
③ Disk Attachment
1. DAS (Direct Attached Storage), Host-attached
-> I/O bus 통해서 storage 접근
2. NAS (Network Attached Storage)
-> local connection이 아닌 network protocol로 storage 접근
-> RPC (Remote Procedure Call) 사용
-> 네트워크 통해서 남는 공간을 공유
-> 유일하게 OS 탑재
3. SAN (Storage Area Network)
-> network protocol이 아닌 storage protocol 사용
-> FC-AL (Fiber Channel Arbitrated Loop) 사용
-> 네트워크 통해서 남는 공간 할당
NAS: 파일 단위 전송 (느림)
DAS, SAN: 블록 단위 전송 (빠름)
④ Disk Scheduling
1. FCFS
-> 순서대로 진행
2. SSTF (Shortest Seek Time First)
-> 현재 head 위치에서 가장 가까운 것 기준
-> starvation 발생
-> optimal 아님
3. SCAN (elevator)
-> head가 끝에서 끝으로 이동하면서 처리
4. C-SCAN (Circular-SCAN)
-> 한 방향으로만 이동
-> 한쪽 끝에 도착하면 방향전환이 아닌 처음 위치로 되돌아감
5. LOOK
-> 끝까지 가지 않고 해당 방향에 request가 있는지 확인
-> 없으면 방향 전환
6. C-LOOK
-> 끝까지 안감 + 한 방향으로만 이동
⑤ Disk Management
● Disk formatting
1. physical formatting (low-level formatting)
-> disk를 sector 단위로 분할
2. logical formatting (Making a file system)
-> 흔히 말하는 포맷
-> file system 생성하려면 데이터를 다 지워야함 (file system 초기화)
-> file system 자료구조를 disk에 저장
● Boot block
-> 부팅 시 필요한 정보들이 저장됨
-> boot block이 시스템을 초기화
-> bootstrap이 ROM에 저장됨
-> bootstrap loader가 메모리에 boot block을 load하고 제어권을 넘겨줌
● Swap space
-> swap-out 된 페이지가 저장된 disk 공간 (backing store)
-> 일반적인 file system에서 사용될 수도 있고
-> 별도의 raw disk partition에서 사용될 수도 있음
● Swap map
-> swap out된 page를 사용하고 있는 process 개수
⑥ RAID Structure
● 목적
1. throughput 향상
-> striping: 하나의 file을 여러 disk에 나눠서 저장
1) bit-level striping : 한 번 R/W 할 때 모든 디스크 동시 사용. 동기화 필요
2) block-level striping : 특정 disk에서만 R/W 될 수 있음
2. fault-tolerance
-> disk 여러 개 사용하면 고장 확률 높아짐
-> MTTF (Mean Time To Failure)
1 disk -> 100,000시간
100 disk -> 100,000시간 / 100 = 1,000시간 ≒ 41일
-> MTTR (Mean Time To Repair)
(MTTF)² / 2 * MTTR = (100,000)² / 2 * 10 ≒ 57,000년
해결책
1) mirroring : disk 복제, storage 용량 2배 필요
2) parity : parity block 사용 (XOR)
A B C (A⊕B⊕C)
A,B,C 중 하나 날라가도 복구 가능
-> A ⊕ B ⊕ (A⊕B⊕C)
-> A ⊕ C ⊕ (A⊕B⊕C)
-> B ⊕ C ⊕ (A⊕B⊕C)
● 추가 개념
1. Hot spare : 디스크 고장났을 때 대체
2. Rebuilding : 고장난 데이터를 복구하는 과정
● RAID (Redundant Array of Inexpensive (Independent) Disks)
1. RAID 0
-> non-redundant striping
-> 복구 불가
2. RAID 1
-> mirrored disks
-> storage 2배
3. RAID 3
-> bit-interleaved parity
-> parity + bit striping
4. RAID 4
-> block-interleaved parity
-> parity + block striping
-> 디스크 고장 안나면 낭비
5. RAID 5
-> block-interleaved distributed parity
-> parity 분산 + block striping
6. RAID 6
-> P+Q redundancy
-> 2개 동시에 고장나도 복구 가능
'CS 공부 > 운영체제' 카테고리의 다른 글
Chapter 13 ~ 15. File Systems (0) | 2021.09.24 |
---|---|
Chapter 10. Virtual Memory Management (0) | 2021.09.24 |
Chapter 9. Memory Management Strategies (0) | 2021.09.23 |
Chapter 8. Deadlocks (0) | 2021.09.23 |
Chapter 6, 7 Process Synchronization (0) | 2021.09.23 |