[기본원리] 디스크의 하드웨어 구조
- 프로그래밍 정보
- 2010. 7. 26.
반응형
디스크는 그 표면을 몇개의 영역으로 나누어서 사용합니다.
읽기전에 손가락 한번 클릭~ >_<
고마워요 ~ Chu ~ ♥
영역을 나누는 방법에는 '섹터방식' 과 '가변방식' 이 있지요.
섹터방식 : 고정된 길이로 영역을 나누는 방식
가변방식 : 일정하지 않은 길이로 영역을 나누는 방식
가변방식 : 일정하지 않은 길이로 영역을 나누는 방식
일반 PC에서는 섹터방식을 주로 사용하고,
섹터 방식에는 디스크 표면을 동심원으로 나눈 영역인 ' 트랙(track) ,
트랙을 일정 길이로 나눈 영역을 '섹터(sector) ' 라고 부릅니다.
여기에서 섹터는 디스크를 물리적으로 판독하고 기록하는 최소의 단위가 됩니다.
윈도우에서 사용하는 디스크는 1섹터를 512 바이트로 하는것이 일반적인데요,
하지만 윈도우가 논리적으로는 디스크를 읽거나 쓰는 단위가 섹터의 정수배인 '클러스터' 라고 합니다.
따라서 , 하드디스크의 용량이 늘어나면, 클러스터의 크기도 커지겠지요.
그런데 하드디스크 나 플로피 디스크등에 담겨있는 아무리 작은 파일이라도 1클러스터의 영역을 차지하기 때문에 두개 이상의 작은 파일을 같은 클러스터에 저장할 수는 없습니다.
따라서 모든 파일은 1클러스터의 정수배가 되는 디스크 공간을 점유하지요.
클러스터 단위의 읽기/쓰기에서는 특정 파일이 1클러스터를 채우지 못한 경우에 남는 공간만큼은 용량을 낭비하게 됩니다. 대문에 만약 클러스터의 크기를 작게 만들면 어떨까요?
클러스터의 크기를 작게 만들어버리면 디스크 접근횟수가 증가하기 때문에 파일의 읽기/쓰기 하는 시간이 길어지게 됩니다.
디스크의 표면에는 섹터의 구분을 나타내는 영역도 필요하므로 클러스터의 크기를 너무 작게만들면, 디스크 전체의 기억용량도 줄어들게되죠. 결국 섹터와 클러스터의 크기는 처리속도와 여유공간을 모두 생각해서 결정된 것입니다.
윈도우 FAT32 또는 XP/2000 등에서 쓰는 NTFS 는 클러스터의 간격이 상대적으로 작아졌기 때문에 이런 문제를 어느정도는 해결했다고 볼 수도 있겠네요 ^^
잘 만들어진 프로그램은 실행속도가 빠를 뿐만 아니라 전체적인 용량도 작습니다.
그러므로 항상 프로그램의 크기를 줄이도록 노력하는 것이 좋겠죠^^?
반응형