= Solution
Let a <disk block number> and a file number each occupy $h$ bytes. System B spends about $3h$ bytes per physical block on successor/count, predecessor and owner, leaving $B-3h$ payload bytes. It also needs its per-file header. In the traditional <inode> scheme, <file data blocks> are entirely payload; indexing occupies the fixed <inode> and separate indirect blocks.
For $N$ data blocks in a large densely occupied indirect tree, about $N/q$ lowest-level index blocks, $N/q^2$ next-level blocks and so on are needed. With $q=B/h$, the asymptotic indexing space is approximately
$$
B\left(\frac Nq+\frac N{q^2}+\cdots\right)\approx\frac{NB}{q-1},
$$
or about $Nh$ bytes when $q$ is large. Thus
$$
\boxed{\text{large-file UNIX indexing is roughly one address per data block, versus three fields in System B}.}
$$
This is a comparison of typical densely used structures. For a small file, the fixed <inode> dominates; near an indirect-level boundary, partly empty index blocks add overhead. Both schemes can waste part of the last block through <internal fragmentation>.
The main performance advantage is indexed access to an arbitrary <file offset>: the <inode> finds the required data block with at most three indirect levels, whereas System B may need to follow a long chain from one end. Index blocks can be cached and scanned in batches, leaving complete data blocks for transfers. The <inode> scheme also naturally supports <sparse files>, where absent data-block pointers represent zero-filled holes without allocating every intervening block.
There are additional costs. A cold lookup can require separate index-block reads, allocation near a boundary can require allocating and updating several index blocks, and small files can pay more fixed metadata cost. System B already has a tail pointer and can append with local chain updates, while its owner and predecessor fields can help recovery from surviving blocks. Losing a UNIX indirect block can disconnect many data blocks, and those blocks do not automatically carry System B's owner information. Thus the space and <file offset> access advantages do not imply uniformly cheaper updates or uniformly better recovery.
Back to article page