[ComputerScience] 블록과 할당 방식
블록과 할당 방식
파일은 디렉터리에 논리적으로 존재하지만, 실제 데이터는 보조기억장치에 물리적으로 저장됩니다.
운영체제는 효율적인 저장, 탐색, 확장을 위해 데이터를 블록 단위로 관리하며, 여러 가지 할당 방식을 통해 블록을 배치합니다.
이때 블록은 파일 시스템에서 데이터를 저장하고 접근하는 기본 단위로, 다양한 계층과 명칭이 존재하지만 일반적으로는 블록이라는 용어를 사용합니다.
블록
블록(Block)은 디스크에서 데이터를 읽고 쓰는 기본 단위이며, 디렉터리 역시 파일의 일종이므로 블록 단위로 관리됩니다.
블록 단위로 데이터를 관리하면 디스크 공간을 효율적으로 사용할 수 있고, 입출력 속도를 예측하기 쉽습니다.
파일이 저장될 때 하나 이상의 블록이 할당되며, 블록 주소를 통해 파일 데이터를 관리합니다.
대부분의 현재 파일 시스템에서 블록 하나는 4096바이트(4KB)입니다.
연결 할당
연결 할당(Linked Allocation)은 각 블록이 다음 블록의 주소를 포함하여 각각의 블록이 다음 블록을 가리키는 체인 형태로 연결되는 방식입니다.
디렉터리 엔트리에는 파일의 첫 번째 블록 주소와 길이만 기록됩니다.
파일 크기가 늘어나면 새로운 블록을 연결해 확장할 수 있습니다.
장점은 다음과 같습니다.
- 파일을 동적으로 확장하기 쉽습니다.
- 내부 단편화 문제가 최소화 됩니다.
단점은 다음과 같습니다.
- 다음 블록을 가리키는 포인터가 필요하기 때문에 블록 내부의 일부 공간(오버헤드)을 차지합니다.
- 블록 접근 시 순차 탐색이 필요하기 때문에 임의 접근이 비효율적입니다.
- 일부 블록이 손상될 경우 이후의 데이터에 접근이 불가능 할 수 있습니다.
색인 할당
색인 할당(Indexed Allocation)은 모든 블록의 주소를 별도의 색인 블록(Index Block)에 저장하는 방식입니다.
디렉터리 엔트리에는 파일 이름과 색인 블록 주소가 기록됩니다.
장점은 다음과 같습니다.
- 임의 접근이 가능합니다.
- 일부 블록이 손상되어도 나머지 블록에 접근이 가능합니다.
단점은 다음과 같습니다.
- 색인 블록의 공간이 커야 많은 블록 주소를 담을 수 있습니다.
- 색인 블록의 공간에 오버헤드가 존재합니다.
- 매우 큰 파일은 색인 블록이 여러 단계를 필요로 합니다.
댓글남기기