기타/운영체제

[운영체제]Hard Disk Drives

stonesy 2022. 5. 23. 20:49
728x90

3. Hard Disk Drivers

3-1. The intergace

Interface

-Basic unit: 하드디스크는 기본적으로 섹터 단위로 구성되어 있다. 섹터의 크기는 512byte이다.

-디스크의 Address, LBA(Logical Block Address)

    LBA를 작성하는 2가지 방법

        →Sector Addressing(섹터를 그대로 사용하는 방법): 512B

           : 한번 읽거나 쓸때 512B단위로 접근한다.

        →Multi-sector Addressing(최근에는 섹터를 여러개 모아서 접근하는 multi-sector addressing을 사용한다.)

           : 보통 8개의 sector를 만들어 4KB의 block을 만들고, 이를 disk block이라고 부른다.

 

3-2. Basic Geometry

기본적 구조

  1. 원판 모양(Platter)→원판마다 2개의 surface가 있고, 2개의 surface에는 track(동심원)이 그려져 있다. track은 sector(512B의 기본 unit)로 나눠지고, sector가 데이터를 읽고쓰는 기본단위이다.
  2. 각 surface마다 head가 존재한다.

디스크의 접근시간: seek time+rotational latency+transfer time

-seek time: 헤드가 움직이는 해당 track으로 움직이는 시간

-rotational time: 필요한 sector의 위치로 회전하는 시간

-transfer time: 실제 데이터를 읽는 시간

 

3-3. A simple Disk Drive

*Track skew: seek time을 고려하여 sequential access를 고려한 것이다.

 

3-4. I/O Time: Doing the Math

입출력의 성능

Metrics, 성능을 나타낼 수 있는 지표

I/O time(latency): 실제 입출력을 하는데 얼마나 많은 시간이 걸리는가?

I/O rate(bandwidth): 대역폭. 정해진 시간만큼 얼마나 많은 데이터를 읽거나 쓸 수 있는가?

Workload: 일의 양

Random: 보통 크기가 작고, 임의의 위치에서 데이터를 읽어온다.

Sequential: 섹터들이 연속적으로 분포되어 있다. 섹터들이 연속적으로 비교적 큰 단위로 읽힌다.

 

*성능 계산

*RPM(분당회전수)

일반적으로 sequential한 접근 방식이 random한 접근방식보다 훨씬 빠르다. 한번의 seek, 한 번의 rotation만 필요하기 때문이다. 따라서 SW 설계시 디스크를 sequential하게 접근할 수 있도록 하면 훨씬 빠르게 할 수 있다.→가능한 순차적으로 I/O되도록 설계하는 것이 좋다.

 

3-4. Disk Scheduling

Disk Scheduling, 디스크 스케줄링

FCFS(First Come First Serve): 먼저 도착한 요청을 먼저 처리

-simple하게 구현가능하지만, seek time이 오래걸려 성능면에서 좋지 않다.

SSTF(Shortest Seek Time First): Seek time을 최적화시키는 방법

-seek time을 줄일 수 있다. 하지만, unfair하다.(형평성이 나빠질 수 있다.)

SCAN: 스캔하면서 요청을 처리

FCFS에 비해 seek time이 좋으며, SSTF에 비해 fair하다. 하지만, SCAN은 가장자리의 트랙이 불리하다. 따라서 이를 해결하기 위해서 한쪽 방향으로만 서비스를 제공하는 C-SCAN이 나왔다.

SPTF(Shortest Positioning Time First): seek time만을 고려하는 것이 아니라 rotation latency도 고려하여 최적화한다.

 

*Other scheduling issues

-Merge: 연속된 요청들은 묶어서 처리한다.

-디스크의 스케줄링을 예측한다.

 

728x90

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

[운영체제]Advanced File System  (0) 2022.06.04
[운영체제]Paging  (0) 2022.06.03
[운영체제]Memory Virtualization  (0) 2022.05.23
[운영체제]File System  (0) 2022.05.23
[운영체제]Persistence  (0) 2022.05.23