File Management

来自osdev
Zhang3讨论 | 贡献2022年4月2日 (六) 04:00的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

This article is a stub! 此页面或段落为 草稿。 你可以通过更精确的编辑贡献 来帮助本wiki。

本文的语气或风格 可能无法反映整个wiki使用的百科全书式语气。 有关建议,请参阅 Wikipedia's article on tone

本页面或章节指其读者或编者使用人称 , 我的, 我们 或者 我们的。 用encyclopedic百科全书式的语言风格进行编辑

单内核在单一mono (因此得名) 过程中处理一切。 而微内核由几个负责所有繁重工作的进程组成: 分配内存,管理进程 - 以及管理永久数据存储,如硬盘或软盘。 这正是文件系统相关的话题。

举例说,我们有一个文件系统服务(file system service)。 它负责将文件系统的最新状态保存在软盘/HD(并最终还会有管道处理等...)上 文件系统服务最基本的基本任务是跟踪已分配/未分配的块以及 (在ext2的情况下)说明文件是由那些块分配而成的inodes - 此外你还需要对文件/块(file/block)管理的块。 文件系统服务通常执行的另一项任务是将块保存在内存中以便快速访问。 与简单的内存访问相比,从磁盘存储中检索的速度很慢。 所以文件系统服务需要保留所谓的块缓存。 现在,设想一下出现了这些情况: 你使用了分页,同时将文件系统服务作为独立进程。 它获取块并将其保留在其地址空间中。

你必须做大量的工作来将检索到的块数据传输来执行read(),而调用的用户进程中-write()则与之相反。

总之,在内核空间中需要有一个任务负责保存块缓存并执行实际的读/写操作。