= Solution
The logical <file data block> index and within-block <file offset> are
$$
2^{24}+20000=8201\cdot2048+1568.
$$
Direct pointers cover logical indices 0 through 9. The singly indirect region covers 10 through $10+512-1=521$. The requested <file data block> therefore lies in the doubly indirect region, at relative index
$$
8201-(10+512)=7679=14\cdot512+511.
$$
Follow the doubly <indirect block pointer> in the <inode>, read its top address block and select entry 14, read that second address block and select entry 511, then read the resulting <file data block> and take byte offset 1568. These entry indices are zero-based.
$$
\boxed{3\text{ block reads: two address blocks and one data block}.}
$$
This assumes a resident <inode> and no useful <buffer cache> entries for the three blocks; an uncached <inode> adds one read. Under one-based byte numbering the last offset is 1567, without changing either address-block index or the read count.
Back to article page