22. Hard Disk Drives

이주희·2022년 12월 8일
0

다수의 sector
0 ~ n-1까지
연속된 섹터를 접근하는 것이 접근 속도가 빠름

한번에 512B 보장
-> 4KB면 8번 읽기 수행됨

회전수(RPM)
rotation per minute

10000 RMP이면 한번 도는데 얼마나 걸리나..?

1분에 10000회
1회 도는 데 1/10000분
6/1000 초
-> 6ms 걸린다

sector 11 읽기 요청이 있다면...

  • 디스크 암을 해당 트랙으로 이동 : seek time
  • 해당 섹터로 이동 : rotation delay
  • 데이터 읽음 : transfer delay

track skew
한 트랙에서 다른 트랙 넘어갈 때 헤드 위치 재배치 필요

디스크에서 섹터 읽을 때
해당 트랙의 모든 섹터를 읽어서 메모리에 캐쉬한다 -> 동일 트랙 후속 요청을 위해

디스크에 쓸 때

  • write through
    실제로 다 쓰고 완료됨 인식
  • write back
    메모리에 넣었을 때 쓰기 완료라 인식
    -> 위험할 수 있다.

I/O Time

= seek time + rotation delay + transfer delay

I/O rate = R I/O = Size(transfer) / T I/O

ex)
탐색시간 평균 4ms, 회전 속도 7500 rpm, 512 바이트 섹터를 트랙당 500개 가진 디스크

2500 섹터로 구성된 1.28MB 읽을 때 전송하는데 걸리는 전체 시간

  • 순차적 구성 읽기 전체 시간
    트랙 수 : 2500 / 500 = 5
    첫 트랙 읽을 때
    seek time (4ms) + rotation delay(4ms) + transfer(한바퀴 도는데 걸리는 시간)
    1/7500 분
    = 60 / 7500 sec
    = 1 / 125
    = 0.008sec
    = 8msec
    => 16msec
    나머지는 탐색시간 없이 읽을 수 있다면
    4 * (4 + 8) = 128 msec

  • 무작위 접근 방식
    한 섹터 읽는 데 걸리는 시간
    4 + 4 + 8/500 msec
    이것을 총 2500회 읽게 된다
    (4 + 4+ 8/500) * 2500
    = 20.04초

다른 문제

탐색 시간 4ms
10000RPM
600개의 섹터
각 섹터는 512B의 데이터
파일에는 2000개의 섹터
평균 회전 대기 시간 == 완전한 회전 시간의 절반
전체 파일 읽는 데 필요한 시간..?
한바퀴 도는데 1/10000min=60/10000 sec = 6/1000 sec = 6msec

rotation time = 3msec
seek time = 4sec
한 섹터 transfer time = 6msec / 600 = 0.01msec

파일 읽는 데 걸리는 시간 = (3 + 4 + 0.01)* 2000 =
14000 + 20 = 14020msec

seek + rotation + transfer
=
disk schedule
트랙을 여러개 읽어야 할 때 순서 정하기!

  • FIFO
    들어온 순서대로

  • SSTF( shortest seek time first)
    현재 헤드에서 가까이 있는거부터
    안쪽, 바깥쪽 기아현상 발생가능

  • SCAN (엘리베이터 알고리즘)
    한방향 이동하다가 다시 돌아가 반대 처리
    바깥쪽 기아현상 발생 가능
    (중간은 서비스를 두번 받음)
    요청이 없어도 마지막까지 감
    scan-look : 제일 밑바닥 요청만 찍고 올라옴

  • C-SCAN
    항상 한쪽 방향에서 반대쪽으로 진행하며 요청 처리
    균등하게 배분
    c-look : 요청한 곳까지만 찍고 올라옴

위의 모든 알고리즘 다 arm이 고정됨...
(암 고정 현상)

-> 디스크 요청 큐를 세그먼트로 분할!
N-step-SCAN
길이가 N인 하위 큐로 분할
N이 커지면 SCAN 알고리즘에 성능 근접
N이 1이면 FIFO 정책

FSCAN
두개의 하위큐
스캔이 이뤄지는 동안 다른 큐에 채워지고
다른 쪽 큐 비우고 번갈아감

0개의 댓글