HDD의 데이터 읽기 쓰기의 동작 방식

HDD는 데이터를 자기 정보로 변환하여 플래터라고 불리는 자기 장치에 기록하는 저장 장치이다. 데이터는 섹터(512byte or 4KB)라고 불리는 단위로 읽고 쓴다. HDD로부터의 데이터 전송 흐름은

  1. 디바이스 드라이버가 데이터의 읽고 쓰기에 필요한 정보를 HDD에 전달. 섹터 번호, 섹터의 개수 그리고 섹터의 종류 등
  2. 스윙 암을 이동시키거나 플래터를 회전시켜 접근하고자 하는 섹터 위에 자기 헤드를 위치시킨다.
  3. 데이터를 읽고 쓴다.
  4. 읽을 경우에는 HDD의 읽기 처리가 완료된다

1,4는 전기처리라 빠르고 2,3은 기계처리라 느리다. 스윙암 이동을 최소화 하기위해 데이터를 최대한 연속적으로 배치해야한다.

블록 장치 계층

I/O 스케쥴러
블록 장치에 접근하려는 요청을 일정 기간 모아둔 뒤, 병합 / 정렬을 한 후 디바이스 드라이버에 I/O 요청을 한다.

  • 병합 : 여러 개의 연속된 섹터에 대한 I/O 요청을 하나로 모음
  • 정렬 : 여러 개의 불연속적인 섹터에 대한 I/O 요청을 섹터 번호 순서대로 정리

미리읽기
프로그램으로부터 데이터에 접근할 때에는 공간적 국소성이라는 특징이 있다. 이 특징을 이용하기 위해 블록 장치 계층에는 미리 읽기 라는 기능이 있다.
저장 장치 안에 있는 영역에 접근한 다음 그 바로 뒤에 연속되는 영역에 접근할 가능성이 매우 크다는 점을 예측하여 미리 읽어두는 기능이다.

SSD의 동작 방식

SSD의 경우 데이터에 접근하는 것이 전기적 동작만으로 이루어진다. 랜덤 접근(<-> 시퀀셜 접근, 연속적 접근)을 해도 HDD 보다 빠르다.