1

我的操作系统课程的最后一个示例问题:

大多数操作系统都支持“内存映射文件”;这描述了映射到正在运行的进程的地址空间的文件。对文件的读取和写入转换为内存读取和写入。我们可以想象存在两个新的系统调用,map() 和 unmap()。

a) 考虑 map();它接受文件名和虚拟地址,使操作系统将文件映射到从虚拟地址开始的地址空间。描述如何使用虚拟内存系统来支持这个调用。

b) 考虑 unmap();它将文件与虚拟地址空间分离。描述实现此系统调用应采用的统计信息。列出你所有的假设。

c) 在许多 UNIX 系统中,inode 保存在磁盘的开头。另一种设计是在创建文件时分配一个 inode,并将该 inode 放在文件第一个块的开头。讨论这种替代方案的利弊。

d) 如果包含空闲磁盘块信息的位图或空闲列表由于崩溃而完全丢失,会发生什么情况?无论如何要从这场灾难中恢复,还是磁盘不再可用。讨论您对 UNIX 和 FAT 样式的磁盘块分配的答案。

非常感谢有关这些问题的任何讨论信息。

4

1 回答 1

1

c) 在为新文件分配内存时,检索目录/文件和数据的开销尤其如此,这会导致查找每个 inode 并检索它们的文件大小、权限等,当大量小文件需要大量空间时,这很好在磁盘启动时可能会花费大量内存。

于 2011-04-07T11:03:02.823 回答