시스템 설계자를위한 실제 질문 분석 (1)-파일 시스템의 물리적 구조

1 실제 문제 분석

파일 시스템이 인덱스 노드 관리를 채택하고 인덱스 노드에 8 개의 주소 항목 iaddr [0] ~ iaddr [7]이 있고 각 주소 항목의 크기가 4B라고 가정합니다. iaddr [0] ~ iaddr [4]는 직접 주소 인덱싱을 사용하고, iaddr [5] 및 iaddr [6]는 첫 번째 수준의 간접 주소 인덱싱을 사용하고, iaddr [7]은 두 번째 수준의 간접 주소 인덱싱을 사용합니다. 디스크 인덱스 블록과 디스크 데이터 블록의 크기가 모두 1KB라고 가정하면 File1 파일의 인덱스 노드는 아래 그림과 같습니다. 사용자가 File1 파일의 논리 블록 번호가 5와 261 인 정보에 액세스하면 해당 물리 블록 번호는 각각 (3)이고 물리 블록 번호 (101)는 (4)를 저장합니다.

(3) A. 89 및 90 B. 89 및 136 C. 58 및 187 D. 90 및 136

(4) A. 파일 1 정보 B. 직접 주소 색인 테이블 C. 1 차 주소 색인 테이블 D. 2 차 주소 색인 테이블

문제 해결의 열쇠는 그림을 보는 것입니다. 그림에서 셀의 주소는 물리적 블록 주소이고 논리적 블록은 빈 셀이며 논리적 블록 번호는 표시되지 않습니다.

첫째, 주제의 내용에 따라 다음과 같은 논리 블록 번호를 유도 할 수있다. 참고 : 논리 블록 번호는 0부터 시작합니다. 0부터 4까지 5 개의 논리 블록 번호가 있으며 직접 주소 인덱스가 사용됩니다.

물리적 블록의 각 주소 항목 크기가 4B이기 때문에 디스크 인덱스 블록의 크기는 1KB (1024B)입니다. 1024/4 = 256이므로 디스크 인덱스 블록은 256 개의 물리적 블록 주소를 저장할 수 있습니다. 따라서 첫 번째 수준의 간접 주소 인덱스에 해당하는 논리 블록 번호 범위를 유추 할 수 있습니다.
각 인덱스 블록은 256 개의 물리적 블록 주소를 저장할 수 있기 때문에 첫 번째 레벨 1 간접 주소 인덱스에 해당하는 논리적 블록 번호 범위는 5 ~ 260이고, 두 번째 레벨 1 간접 주소 인덱스에 해당하는 논리적 블록 번호 범위는 다음과 같습니다. 261 ~ 516. 구체적인 계산 단계는 다음과 같습니다.
[1] 260 = 5 + 256 -1.
[2] 516 = 261 + 256 -1.

따라서 첫 번째 빈 선택 C.

블록 번호는 101입니다. 물리적 주소는 2 차 인덱스 방식을 채택하고 그 라인은 2 차 주소 인덱스를 저장하는 1 차 주소 인덱스 테이블에 연결됩니다. 그래서 두 번째 빈 선택 D.


이 질문에는 다음 지식 포인트가 포함됩니다.

2 파일 시스템의 물리적 구조

파일의 물리적 구조는 파일이 저장 장치에 저장되는 방식을 나타냅니다. 파일의 물리적 구조는 메모리 활용 효율성을 높이고 액세스 시간을 줄이는 데 중점을 둡니다. 파일 저장 장치는 일반적으로 동일한 크기의 물리적 블록으로 나뉘며 물리적 블록은 정보를 할당하고 전송하는 기본 단위입니다. 파일의 물리적 구조는 파일 저장 장치의 블록 전략과 파일 할당 전략을 포함하며 저장 장치에서 파일 정보의 저장 위치를 ​​결정합니다. 일반적으로 사용되는 파일 할당 전략은 다음과 같습니다.

(1) 순차 배포 (연속 배포)

이것은 가장 간단한 배포 방법입니다. 연속적인 물리 블록의 그룹은 파일이 생성 될 때 미리 할당되고, 그 정보 (또는 레코드)는 논리 파일의 정보 (또는 레코드)의 순서에 따라 물리 블록에 순차적으로 저장됩니다. 이러한 방식으로 파일 저장 장치에서 파일의 시작 위치 만 알면 파일의 길이에 접근 할 수 있으며,이 배포 방식은 순차 접근에 적합하며 인접 정보에 지속적으로 접근 할 때 접근 속도가 빠르다. 단점은 파일을 생성 할 때 파일의 정보 길이를 지정해야하며, 향후 동적으로 늘릴 수 없으며 일반적으로 자주 수정해야하는 파일에는 적합하지 않다는 것입니다.

(2) 링크 배포 (시리즈 배포)

이것은 단일 물리적 블록에서 하나씩 수행됩니다. 각 물리적 블록 (일반적으로 마지막 장치)에는 이후 연결되는 다음 물리적 블록의 주소를 가리키는 포인터가 있습니다. 이러한 방식으로 모든 물리적 블록이 링크되어 링크 큐를 형성합니다. 링크 파일을 설정할 때 파일의 길이를 지정할 필요가 없으며 파일의 설명 정보에서 파일의 첫 번째 물리적 블록 번호 만 지적하면되며 링크 파일의 파일 길이는 동적으로 증가 할 수 있습니다. 물리적 블록 사이의 포인터를 조정해야만 정보 블록을 삽입하거나 삭제할 수 있습니다. 링크 할당의 장점은 메모리 조각화 문제를 해결하고 저장 공간 활용도를 향상시킬 수 있다는 것입니다. 연결된 파일은 대기열에있는 링크 포인터의 순서로만 검색 할 수 있기 때문에 검색 효율성이 낮고 일반적으로 임의 액세스가 아닌 순차 액세스에만 적합합니다.

(3) 인덱스 할당

이것은 파일 스토리지를 불 연속적으로 할당하는 또 다른 방법입니다. 인덱스 할당 방식을 사용하는 시스템은 각 파일에 대한 인덱스 테이블을 생성하고 인덱스 테이블의 각 항목은 파일 정보가있는 논리적 블록 번호와 해당 물리적 ​​블록 번호를 나타냅니다. 인덱스 할당은 파일 동적 증가 요구 사항을 충족 할뿐만 아니라 편리하고 빠르게 임의 액세스를 실현할 수 있습니다. 일부 대용량 파일의 경우 인덱스 테이블의 크기가 물리적 블록 하나를 초과하면 인덱스 테이블의 할당 문제가 발생합니다. 일반적으로 다단계 (간접 인덱스) 기술을 사용하는데, 이때 인덱스 테이블이 가리키는 물리 블록은 파일이 아니라 파일 정보의 물리 블록 주소이다. 물리적 블록이 n 개의 주소를 저장할 수있는 경우 첫 번째 수준 간접 인덱스 모드에서 주소 지정 가능한 파일 길이는 [n 's quadratic] 블록이됩니다. 더 큰 파일의 경우 2 차 또는 3 차 간접 인덱싱을 사용할 수 있습니다 (예 : UNIX 운영 체제에서 3 차 인덱스 구조 사용).

인덱스 파일의 장점은 순차 액세스와 랜덤 액세스 모두에 적합하다는 것입니다. 단점은 인덱스 테이블이 저장 공간의 오버 헤드를 증가 시킨다는 것입니다.

또한 파일 액세스시 디스크에 두 번 액세스해야합니다. 하나는 인덱스 테이블에 액세스하고 다른 하나는 인덱스 테이블에서 제공하는 물리적 블록 번호에 따라 파일 정보에 액세스하는 것입니다. 효율성을 높이기 위해 개선 된 방법은 파일에서 작업하기 전에 인덱스 테이블을 미리 메모리에로드하는 것입니다. 이러한 방식으로 파일 액세스는 메모리 인덱스 테이블에서 해당 물리적 ​​블록 번호를 직접 결정할 수 있으므로 디스크에 대한 액세스는 한 번만 필요합니다.

추천

출처blog.csdn.net/deniro_li/article/details/108892955