12.1 File System Structure
- What is a file system?
- The textbook lists a six-layer structure for a general file system. Explain what each layer does.
- Why is it better to divide the functions of a file system into multiple layers?
12.2 File System Implementation
- What is a file control block (FCB)? What are some of the common information stored in FCB?
- What is a system-wide open-file table? What information does it contain?
- What is a per-process open-file table? What information does it contain?
- Explain the meaning of Figure 12.3 on page 548.
- What is an inode? What kinds of information does an inode include?
- What is a virtual file system? Why do we need it?
12.3 Directory Implementation
- Explain how a linear list based directory works.
- Explain how a hash table based directory works.
12.4 Allocation Methods
Files are stored as blocks of disk space.
- How does contiguous allocation work?
- How does linked allocation work?
- How does indexed allocation work?
- Explain the inode structure in Figure 12.9
- Pros and cons of each of these methods.
- Compare and contrast these schemes with the ones used in memory management. Differences? Similarities?
12.5 Free Space Management
An OS uses various mechanisms to manage free blocks on disks.
- How does bit-vector work?
- How does linked list work?
- How does grouping work?
- How does counting work?
12.6 Efficiency and Performance
- What is the meaning of efficiency in the file system context?
- How does the block size affect the performance of a file system?
- How does the buffering scheme affect the performance of a file system?
- What does unified buffer cache mean? Why is it better to use unified buffer cache, compared to using separate cache for memory-mapped I/O?