본문 바로가기

Study/운영체제

Chapter#19 I/O : HDD and RAID

반응형

Chapter#19 I/O : HDD and RAID

- Hard Distk Drives

- Disk Scheduling

- RAID

 

시스템 프로그래밍 수업 내용이랑 겹치는 부분


Hard Disk Drivers (HDDs)

 

Disk Geometry

각 Platter : 2 surface

각 Surface : Ring 형태의 tracks

각 track : gaps로 나눠진 sectors

 

Disk Operation

disk surface : fixed rotation rate로 회전

read/write head : arm 끝에 달려서 disk surface를 얇은 air cushion을 두고 읽음. arm에 의해 track이동

 

Disk Access

surface는 CCW로 돎

헤더가 위에 있을 때 해당 sector의 read/write작업 수행

 

Disk Access Time Components

Average Time to access some target sector : Taccess = Tavg seek + Tavg rotation + Tavg transfer

Seek Time(Tavg seek) :

- target sector에 해당하는 track 찾는데 걸리는 시간

- 3-9 ms

Rotational Latency(Tavg rotation) :

- target sector 위치로 헤드를 옮기는데 걸리는 시간

- 1/2 x 1/RPMs x 60sec/min

- 7200RPMs

Transfer Time(Tavg transfer) : 

- target sector 읽는데 걸리는 시간

- 1/RPMs x 1/(avg # sectors/track) x 60sec/min

seek timerotational latency가 dominant함

sector의 첫 bit가 가장 expensive하다

SRAM access time은 4ns/doubleword, DRAM access time은 60ns, Disk는 SRAM보다 40,000배 느림

 

Logical Disk Blocks

Disk를 복잡하게 생각하지 않고 b-sized logical blocks로 이뤄져있다고 abstraction을 둠

Mapping between logical blocks and actual sectors

- disk controller라는 hardware/firmware device에 의해 유지됨

- logical block에 대한 request를 (surface, track, sector) triple로 변환

- 연속적인 logical block은 연속적인 sector에 map

- bad sector에 대한 logical block은 healthy sector로 remap


Disk Scheduling

Seek time과 Rotational latency를 줄이자!

 

I/O request에 들어오는 정보

- I/O mode (read or write)

- Memory address

- Disk address(offset)

- Number of sectors to transfer(length)

 

I/O queueing

- disk drive가 available하면 I/O request 즉시 응답

- 아니면, 새 I/O request가 queue에 들어옴

 

I/O(or Disk) scheduling

- queue는 pending request를 가짐

- OS는 I/O performance를 최대화 하기 위한 pending request 선택 전략을 짜야함

 

FCFS (First-Come and First-Served) : 먼저 들어온 순서대로

SSTF (Shortest Seek Time First) : 현재 head 위치에서 가장 가까운 위치로 이동 -> starvation 발생할 수 있음

SCAN(Elevator Algorithm) : 한쪽 끝까지 갔다가 다시 반대쪽 끝까지 가는 것을 반복

-> 헤드가 지나간 자리에 request가 들어오면, 반대끝까지 갔다가 다시 돌아와야됨

C-SCAN : 한쪽 끝까지 갔다가 바로 다시 원래 시작점으로 가서 다시 시작

 

Selecting Disk-Scheduling Algorithm

- SSTF가 일반적 전략

- SCAN/C-SCAN이 Disk에 heavy load하는 경우 less starvation을 일으켜 더 좋음


RAID ( Redundant Array of Inexpensive Disks )

여러 disk를 묶어서 faster, bigger, more reliable disk system을 만들자!

Performance & Capacity : Using multiple disks in parallel

Reliability : RAID는 loss of disk 허용

 

RAID Abstraction & Interface

기존과 똑같이 모든 disks를 묶어서 logical blocks를 map

 

RAID 0

logical block을 각 disk에 번갈아가며 둠

장점 : performance & space efficiency

- High performance : n times

- High space efficiency : 1.0

단점 : high failure rate

- r이 drive failure rate이면 array failure rate은 1-(1-r)^n

- r이 5%라 가정하고 n=2라면 array failure rate은 0.0975(>r)

 

RAID 1

똑같은 data를 2개 이상 disk에 extra copy함

장점 : log failure rate

- r이 drive failure rate이면 array failure rate은 r^n

- r이 5%라 가정하고 n=2라면 array failure rate은 0.0025

단점 : low performance & space efficiency

- read performance : n times

- write performance : 1

- space efficiency : 1/n

 

RAID 4

n-1개 disk에는 각 data를 넣음, 마지막 disk에는 각 disk data를 xor시켜둔 parity block을 둠

=> 한 disk가 깨지는 경우 복원 가능

Relatively high performance : n-1 times read/write

Relatively high space efficiency : 1/n

Relatively low failure rate : 1-{(1-r)^n + nr(1-r)^n-1}

- r이 5%라 가정하고 n=4라면 array failure rate은 0.014

 

RAID 5

RAID 4와 달리 한 disk에 parity block 다 집어넣지 않고, 여러 디스크에 분산시킴

better random performance - parity disk is not a bottleneck

 

RAID 6

RAID 5에서 parity block을 하나 더 추가

RAID 5에 비해 lower failure rate

RAID 5에 비해 lower performance : write operation에서 parity 연산에 대한 overhead가 커짐

General Solution in enterprise systems

 

학교 강의를 토대로 개인 공부 목적으로 작성되어 오타가 및 오류가 있을 수 있으며, 문제가 될 시 삭제될 수 있습니다.

반응형

'Study > 운영체제' 카테고리의 다른 글

Chapter#21 IO : File and Directory  (0) 2021.12.10
Chapter#20 Flash-based SSDs  (0) 2021.12.10
Chapter#18 I/O Device  (0) 2021.12.10
Chapter#17 Swapping  (0) 2021.12.10
Chapter#16 Paging Advanced  (0) 2021.12.09