【nachos】山东大学操作系统课设实验nachos系统(3)扩展文件系统

本文档介绍了如何在山东大学操作系统课设中扩展Nachos文件系统,使其能支持新命令(ap、hap、nap)并允许文件大小扩展。实验涉及源码分析、接口定义、代码修改及测试,包括在fileheader中添加扩展方法、openfile的调整以及makefile和ftest.cc的更新。最终,实验成功实现了文件大小扩展和新命令的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请允许我跳过实验三文件系统操作,那个跟着实验指导做就行完全没啥动脑子的

实验目的:

对现有的nachos文件系统进行修改,使之能够扩展文件的大小。

Nachos新命令:

ap unixfile nachosfile 将unixfile中的内容添加到nachosfile的尾部
-hap unixfile nachosfile 将unixfile中的内容添加到nachosfile的一半并覆盖
-nap unixfile nachosfile 将unixfile中的内容添加到nachosfile的尾部,如果nachosfile不存在,则创建该文件。

以上命令在实验开始前暂未完全实现,故不能直接使用。

实验内容:

一、阅读文件系统源码(略)

二、分析文件系统结构并做出选择,决定要修改哪些文件

对文件系统的分析如图,disk和synchdisk是文件系统的最底层,负责将指定数据写入指定扇区,在我们的任务中不需要修改。Bitmap储存磁盘状况,Directory储存文件头位置,也不需要修改。文件系统只负责打开和文件,创建文件,理论上也不需要修改,看实际实现决定。但文件具体修改操作是在openfile中,所以它一定要修改,fileHeader保存了文件的大小、数据扇区,所以也要被修改。

三、定义接口。

在fileheader中应该提供修改文件大小的方法,完成对文件的扩展,并能够根据文件大小为其分配足够大的扇区。
函数原型:
bool Extend(int newSize);
返回值:是否成功(判断包括磁盘已满等多种错误)
参数:newSize:新的文件大小,应大于现有文件大小。

在openfile中应提供将文件被修改的内容写回磁盘的方法。Writeat实现已经将内容写入磁盘,而fileheader并没有将文件大小更新,数据扇

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值