HDD
HDD는 데이터를 자기 정보로 변환하여 그것을 플래터라고 불리는 자기 장치에 기록하는 저장 장치
HDD 데이터 전송 흐름 과정
HDD의 기계적 처리로 인해 레이턴시가 커짐
HDD의 성능 특성
자기 헤드의 위치를 원하는 동심원의 위치에 맞추기만 하면 플래터를 회전시키는 것만으로 여러 개의 연속된 섹터의 데이터를 한 번에 읽어 여러 개의 섹터 데이터를 한 번의 접근 요청에 의해 함께 읽을 수 있음.
한 번에 읽을 수 있는 양은 HDD마다 제한이 있음
하지만 연속되지 않은 여러 개의 섹터에 접근 시 소요 시간이 길어짐
IO 스케쥴러
블록 장치 계층의 I/O 스케쥴러 기능은 블록 장치에 접근하려는 요청을 일정 기간 모아둔 뒤, 다음과 같은 가공을 한 다음 디바이스 드라이버에 I/O 요청을 함으로써 I/O 성능을 향상시키는 것을 목표로 함
정렬 뒤에 병합이 발생하는 경우도 있으며 이 경우 또한 I/O 성능 향상을 기대할 수 있음.
I/O 스케쥴러 덕분에 사용자 프로그램을 만드는 사람이 블록 장치의 성능 특성에 대해 자세히 이해할 필요 없이 어느 정도 성능이 나오게 되어 있음
미리 읽기
프로그램으로부터 데이터에 접근할 때에는 공간적 국소성이라는 특징이 있음
이 특징을 이용하기 위해서 블록 장치 계층에는 미리 읽기 라는 기능이 있음
시퀀셜 접근의 경우 성능을 높일 수 있음
예측대로 접근하지 않았을 경우는 단순히 읽었던 데이터를 버리면 됨
SSD
SSD와 HDD의 가장 큰 차이점은 SSD의 경우는 데이터에 접근하는 것이 기계적 동작이 아닌 전기적 동작만으로 이루어진다는 것
이러한 특징으로 랜던 접근 성능도 HDD보다 빠름
스루풋(throughput) & 레이턴시(latency)
스루풋(throughput) : 단위 시간당 처리된 일의 양으로 높을수록 좋음
레이턴시(latency) : 각각의 처리가 시작부터 종료까지의 경과된 시간으로 짧을수록 좋음
소프트웨어 만들때 주의 점