하드디스크 / cluster, block
하드디스크 : 컴퓨터를 구성하는 보조기억장치
하드디스크 구성
- 스핀들 (Spindle) : Platter를 회전시키는 회전축
- 플래터 (Platter) : 데이터를 저장하는 자성재료로 코팅되어진 원판
- 액추에이터 (Actuator) : 수직으로 움직이며 Platter에 데이터를 입력하는 장치
- Platter
- 여러개 겹겹이 쌓여있는 구조 ( 2개이상의 원판으로 이루어짐 -> 용량 부족으로 인해)
- Sector : 전체 디스크를 일정하게 나눈 구역 (물리적, 보통 512byte를 1 sector로 구분)
- Track : 1 sector안에 데이터를 저장하기 힘들어 같은 반지름의 길이를 가진 Sector의 모임
Spindle이 회전하고 Actuator는 움직이지 않으므로 가장 빠르게 디스크에 데이터를 일고 쓸 수 있는 방법은 Platter의 윗면 sector부분을 읽고 바로 밑면에 데이터를 읽는 방법이 빠르다.
따라서 1sector가 넘어가는 데이터를 쓸 때는 Platter의 윗면, 아랫면, 같은 Track에 존재하는 sector의 윗면 , 아랫면 순으로 반복되며 쓸 수 있다.
Cluster / Block (논리적)
컴퓨터가 발전함에 따라 파일의 용량이 커지게 되었고 sector(512byte) 를 단위로 파일을 읽고 쓰는데는 시간이 오래 걸리게 되었다.
-> 이러한 문제를 해결하기 위해 sector 여러개를 묶어 하나의 단위로 설정한 것이 Cluster와 Block (의미는 다르지 않으나 window에서 Cluster, UNIX 계열에서 Block이라는 명명을 자주사용)
-> Cluster/Block 단위를 사용하면 단위로 떨어지지 않아 빈공간이 실제로 저장할 때 빈 공간이 남게 되는데 이것을 Slack Space라 부른다.
파일시스템
Sector단위(물리적) 를 사용하여 실린더의 데이터를 저장하는 방식에는 문제가 있어서 Cluster/Block (논리적) 방식을 이용한 파일시스템이 생성되었다.
문제점
1. 빨간색 데이터의 양이 늘어날 경우
-> 빨간색 데이터가 늘어날 경우 같은 Level의 트랙에는 빈공간이 없어 좀 더 안쪽 트랙에 데이터를 저장한다.
-> 다른 트랙에 데이터를 저장하였지만 데이터가 어느 공간에 있는지 알 수 없으므로 다른 트랙의 위치를 찾기위해 시간(자원)을 소모하게 된다.
2. 데이터를 삭제할 경우
-> 데이터를 삭제할 경우 디스크안에 빈 공간이 생기게되어 공간낭비가 되게 된다.
이러한 문제점으로 인해 위치를 알 수 있는 주소 지정 방식을 사용한다.
주소지정방식
1.CHS(Cylinder Head Sector)
-> Cylinder(층), Head, Sector 순으로 주소를 지정한다.
ex) (2,3,2) -> 2번 째 층의 Cylinder의 3번째 head가 읽을 수 있는 2번 자리의 sector의 위치를 의미
문제점
내부 트랙은 외부 트랙보다 sector의 수가 적지만 주소지정형식의 통일을 위하여 내부 트랙의 sector 수를 기준으로 주소지정방식을 사용한다. -> 외부 트랙들은 실제 sector수 보다 적은 수로 사용 되어 실제 용량보다 적게 사용되어 진다.
그래서 논리적 주소지정방식인 LBA(Logical Block Addressing) 을 사용
2. LBA(Logical Block Addressing)
-> CHS 방식을 논리주소로 바꿔 사용한다. (물리주소에서 논리주소로의 변환은 BIOS가 해준다)
ex) (0,0,1), (0,0,2), (0,0,3) ... (1,1,1) -> 0, 1 ,2 ... 100, 101
https://mamu2830.blogspot.com/2019/10/chs-lba.html