Unix와 유사한 파일 시스템을 갖춘 하드 드라이브와 다음 사양이 제공됩니다.
블록 크기는 4KB, 블록 주소 길이는 4바이트이며, i-node는 전통적인 구조(직접 포인터 10개, 간접 포인터 1개, 이중 간접 포인터 1개, 삼중 간접 포인터 1개)를 가지고 있습니다.
다음 파일이 차지하는 블록 수(데이터 블록 및 주소 블록 포함)는 얼마입니까?
- 파일 A 크기는 20KB입니다.
- 파일 B 크기는 200KB입니다.
- 파일 C, 크기 2000KB
- 파일 D, 크기 20000KB
여기서 문제는 이 문제를 해결할 수 있는 공식조차 찾을 수 없다는 것입니다. 수식이 있으면 값만 바꾸면 끝납니다. 문제 해결을 도와달라고 요청하는 것이 아니라 지침을 요청하는 것뿐입니다.
답변1
데이터 구조 어딘가에 문서가 있을 것입니다.
이것은 내 일이고 나는 의도적으로 그것을 하지 않습니다(이것은 당신의 숙제/공부입니다).
20K 파일의 경우 이는 단지 inode(간접 블록 없음)입니다. 따라서 20KB/(4KB/블록) + inode = 5블록 + inode입니다.
다른 경우에는 간접 포인터가 몇 개 있는지 알아야 합니다.간접 차단(4KB / (4B/포인터) = 1K 포인터). 4KB × 10 + 4KB × 1K = 4KB × ( 1K + 10 ) = 4KB × 1034 = 4136KB이면 충분합니다. (inode를 잊지 마세요. 얼마나 큰지는 모르겠습니다.)
이중 및 삼중 간접 참조의 경우. 각각 1K 포인터(1 블록)를 가리키는 1K 포인터(1 블록)의 트리가 있지만 각 포인터는 null일 수 있으므로 모든 블록이 할당되지는 않습니다.
그리고 트리플의 경우, 그것은 단지 확장일 뿐입니다.
또한 직접 블록을 먼저 할당한 다음 이를 크기에서 뺍니다. 그런 다음 간접 할당 및 빼기, 이중 간접 할당 및 빼기, 삼중 간접 할당을 수행합니다. 적합하지 않은 경우 최신 파일 시스템으로 업그레이드해야 합니다(이미 수행했지만 기본 사항을 이해하는 것이 더 쉽기 때문에 교육에는 이전 파일 시스템이 사용됩니다).