我的操作系统课程的最后一个示例问题:
大多数操作系统都支持“内存映射文件”;这描述了映射到正在运行的进程的地址空间的文件。对文件的读取和写入转换为内存读取和写入。我们可以想象存在两个新的系统调用,map() 和 unmap()。
a) 考虑 map();它接受文件名和虚拟地址,使操作系统将文件映射到从虚拟地址开始的地址空间。描述如何使用虚拟内存系统来支持这个调用。
b) 考虑 unmap();它将文件与虚拟地址空间分离。描述实现此系统调用应采用的统计信息。列出你所有的假设。
c) 在许多 UNIX 系统中,inode 保存在磁盘的开头。另一种设计是在创建文件时分配一个 inode,并将该 inode 放在文件第一个块的开头。讨论这种替代方案的利弊。
d) 如果包含空闲磁盘块信息的位图或空闲列表由于崩溃而完全丢失,会发生什么情况?无论如何要从这场灾难中恢复,还是磁盘不再可用。讨论您对 UNIX 和 FAT 样式的磁盘块分配的答案。
非常感谢有关这些问题的任何讨论信息。