= Solution
Each address uses $32/8=4$ bytes, so an address block holds $q=2048/4=512$ pointers. Use zero-based <file offsets>. The requested <file offset> has
$$
3000=1\cdot2048+952.
$$
Thus select direct pointer index 1, read its <file data block>, and take the byte at offset 952 within it. No address block is needed:
$$
\boxed{1\text{ data-block read, assuming the inode is already resident}.}
$$
Fetching an uncached <inode> adds one read. If “byte 3000” instead uses one-based numbering, the within-block offset is 951; it is still the second <file data block>, with the same read count. Pathname lookup is separate from accessing a known <inode>.
Back to article page