第七章 文件系统(lab5)(v01).pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章 文件系统(lab5)(v01)

第七章. 文件系统(lab5 )(v0.1) 7.1. 实验目标 内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一 部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时 间。内核分类为微内核和单内核模式。 微内核(Microkernel kernel ):在微内核中,大部分内核都作为单独的进程在特权状态 下运行,他们通过消息传递进行通讯。在典型情况下,每个概念模块都有一个进程。因此, 假如在设计中有一个系统调用模块,那么就必然有一个相应的进程来接收系统调用,并和能 够执行系统调用的其他进程(或模块)通讯以完成所需任务。在这些设计中,微内核部分经 常只是个消息转发站:当系统调用模块要给文档系统模块发送消息时,消息直接通过内核转 发。这种方式有助于实现模块间的隔离。(某些时候,模块也能够直接给其他模块传递消息。) 最根本的思想还是要保持微内核尽量小,这样只需要把微内核本身进行移植就能够完成将整 个内核移植到新的平台上。其他模块都只依赖于微内核或其他模块,并不直接直接依赖硬件。 微内核设计的一个长处是在不影响系统其他部分的情况下,用更高效的实现代替现有文 档系统模块的工作将会更加容易。我们甚至能够在系统运行时将研发出的新系统模块或需要 替换现有模块的模块直接而且迅速的加入系统。另外一个长处是无需的模块将不会被加载到 内存中,因此微内核就能够更有效的利用内存。 单内核(Monolithic kernel ):单内核是个很大的进程。他的内部又能够被分为若干模块 (或是层次或其他)。但是在运行的时候,他是个单独的二进制大映象。其模块间的通讯是 通过直接调用其他模块中的函数实现的,而不是消息传递。 MIT 这次实验是在前面实验的基础上,实验一个简单的基于磁盘的微内核方式的文件 系统,文件系统本身作为一个用户进程运行,可以支持对层次目录结构中的文件进行 create,read,write 和delete 操作;并在此基础上实现类似Unix 的exec 功能的spawn 功能,从 磁盘文件系统装入并运行一个可执行文件。其他进程通过 IPC 请求来访问文件系统服务。 该实验分为2 部分:文件系统服务器、客户端和 Spawn 函数。前者为其他进程提供访问文 件系统的服务,客户端进程通过发送 IPC 请求完成文件的操作;后者从文件系统加载一个 进程运行。 本实验中的函数主要集中在fs 和lib 目录下的文件中: fs/fs.c fs/serv.c lib/file.c lib/spawn.c 在实验过程中,为了保证大家自己写的程序段的正确性,JOS 系统安排了一些检查函数, 在开启文件系统的时候进行检查,与实验2 中检查函数类似,如果这些检查函数发现大家写 的程序不符合实验原来的设想的话(主要是一堆的assert ),就会提前panic 掉。写完文件系 统相关函数可以让利用检查程序进行检查,以确保走的是正确的路。 主要的检查函数有: check_write_block(void); 该函数通过先打乱 superblock 然后重新读回,检查函数 write_block()是否能正常工作。 fs_test(); 该函数用于测试我们写的操作文件的函数是否正确,包括 file_open();file_get_block();file_flush();file_set_size();file_truncate();file_rewrite();等。 7.2. 背景知识 到目前为止,我们还只是单用户的操作系统,因此文件系统目前不支持权限和属主等属 性,目前也不支持硬链接,符号链接,时间戳和设备文件。对于磁盘文件系统的结构我们简 单介绍一下。 许多类UNIX 操作系统将磁盘分成两个域:inode 区域和data 区域。inode 用来保存文 件的状态属性,以及所指向数据块的指针。data 区域中包含了 data 块,这里存放文件的内 容和目录的元信息(包含的文件名以及指向文件 i 节点的指针)。如果文件系统中的多个目 录都指向文件的inode 节点,则称此文件为硬件链接的。在JOS 系统中,由于不支持硬连接, 用不到inode,只要把文件的元数据存放在所属的目录里就可以了。 基于磁盘的文件系统结构主要由4 部分组成: 1. 扇区(Se

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档