What do you think of your colleague's analysis? Explain.
Your colleague is correct, as long as the file doesn't grow in size beyond what one index block can handle. Once the file requires more than one index block, then overhead in the form of next-block pointers are required no matter what the organization.
Where you colleague's analysis stumbles badly is in the number of disk accesses required to reach the appropriate data block. A singly-linked list of index blocks does have minimal overhead, but, it also has maximal disk-io operations to chase down the list to find the proper pointer. An indirect index is tree shaped, which still requires disk accesses, but in much smaller quantities than does a linked list (logarithmic in the number of pointers stored in an index block versus linear).
Yes, buffering is still required, because the low-level file system has to provide the translation between stream-oriented and block-oriented IO.
False. The only difference between singly- and doubly-linked lists in this context are the number of pointers that have to be updated; doubly-linked lists have twice as many pointers. However, both the previous and next block have to be modified on changes to the list (assuming the change doesn't come at either end), and the cost of doing the disk IO to access these blocks - which is the same in either case - more than swamps the doubled costs of pointer manipulations for doubly-linked lists.
Worms are self-replicating programs that spread themselves via networks. The only way worms can successfully establish themselves in new systems is if they masquerade as an established user to the system. Strong authentication is the most appropriate protection against masquerading.
This page last modified on 12 December 2001.