파일처리

[파일처리] 하드디스크(Hard Disk)의 구조

서노리 2022. 4. 11. 02:46
반응형

하드디스크의 구조

(위에서 본 모습)

(옆에서 본 모습)

  • Platter
    - 데이터가 저장되는 곳, 즉 디스크를 말한다.
    - platter 여러 개가 겹쳐져있는 구조를 가진다. 

  • Spindle
    - 플래터를 회전시키는 역할을 한다.

  • Arm
    - head가 원하는 곳을 읽을 수 있도록 이동시켜주는 역할을 한다.

  • Head
    - arm 끝에 달려있는 장치로 플래터에 데이터를 읽거나 쓰는 역할을 한다.

플래터의 구체적인 단위

 

  • Sector
    - 트랙을 구성하는 최소 단위 = 가장 작은 저장 단위(보통 512byte)

  • Track
    - 트랙은 섹터로 구성되며 섹터가 쭉 나열되어 있는 것

  • Cylinder
    - 같은 위치에 존재하는 트랙들의 모음(논리적 단위)

  • Cluster
    - 연속된 섹터의 모음(논리적 단위)
    - 파일에 할당하는 최소 단위
    - FAT(File Allocation Table)로 관리

FAT(File Allocation Table)

저장의 최소 단위는 섹터이지만 파일은 클러스터 단위로 저장된다. 따라서 논리적인 단위인 클러스터를 관리하기 위해 FAT를 사용한다. 왼쪽 테이블은 파일이 어떤 클러스터에 저장되어 있는지 저장되어 있고, FAT에는 특정 클러스터가 어느 섹터인지 저장되어 있다.

 

  • Extents
    - 하나의 파일을 표현하기 위해 사용된 서로 인접한 클러스터
    - 한 파일을 저장하기 위해 필요한 연속된 클러스터 공간이 없을 때 여러 개의 extents로 하나의 파일을 저장하게 된다.
    - 이러한 경우 하나의 파일을 읽을 때 헤드가 이동해야 해서 시간이 더 걸린다. (Seek time)

 

b와 같은 경우 하나의 파일이 3개의 extents로 구성

 

 

※ Fragmentation(단편화)

하드디스크를 사용하다 보면 데이터가 연속되어 저장되다가 삭제 등을 통해 빈 공간이 많이 생기게 된다. 결국 나중에는 파일들을 저장하기 위해 여러 개의 extents를 써야만 하는 상황이 오는데 이를 단편화(Fragmentation)라고 한다. 윈도우 시스템 도구에 있는 디스크 조각모음은 이런 단편화 현상을 없애고 파일들을 연속적으로 배치해주는 작업을 해준다.

 


저장용량 계산하기

#섹터 저장 용량 : 512 bytes
#트랙당 섹터 수 : 63개
#실린더의 트랙 수(플래터 개수) : 16개
#실린더 개수 : 4,092개

 

하드디스크 총 용량 : 512 * 63 * 4,092 * 16 = 2,111,864,832 bytes

 

※ 예제
: We want to store a file with 50,000 fixed-length data records.
How many cylinders does the file require if each data record requires 256 bytes?

 

풀이

: 데이터의 총용량은 50,000 * 256 bytes이고 실린더의 용량은 512 * 63 * 16 이므로
필요한 실린더의 개수는 (50,000 * 256) / (512 * 63 * 16) = 24.8


 

반응형