Assignment 9, due July 14
Assume you've been given the job of designing a file system for a similar (but modern, and therefore much larger) disk drive to be attached to modern computer; the exact details of the capacity are irrelevant, but assume it's large compared to RAM and assume there is no sector structure.
a) Suggest why a programer given this job would be tempted to use a fixed sector size, imposed by software, even though the hardware does not require this.
b) Suggest a representation for files stored on disk that allows the file to be composed of numerous different-sized segments.
c) Evaluate the Unix read(), write(), lseek() file abstraction as a candidate for the user-side interface of this file system, assuming that you actually implement files using numerous different-sized segments.
Assume you have two disk drives, and you want to organize them as a RAID in software. Each disk records a checksum for every sector written and checks that checksum on read. Explain how your raid_write and raid_read operations would use these checksums to allow the data to survive the failure of either disk drive.