请允许我跳过实验三文件系统操作,那个跟着实验指导做就行完全没啥动脑子的
实验目的:
对现有的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中应该提供修改文件大小的方法,完成对文件的扩展,并能够根据文件大小为其分配足够大的扇区。
函数原型