资源描述:
《操作系统课程设计 文件系统接口》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、目录实验名称-1-模块整体功能介绍及主要目标-2-头文件的分析-4-数据结构的分析-4-函数的分析-7-1,namei()函数-7-2.Dir_namei-10-3.Find_entry函数-11-5.sys_read()-15-6.block_read()和block_wriet()函数-18-sys_lseek()函数-21-9getblk()函数-24-sys_mkdir()函数-25-其他函数-27-分析体会-27-参考文献-29--28-操作系统课程设计实验报告实验名称文件系统接口实现源代码分析模块整体功能介绍及主要目
2、标第一部分是有关高速缓冲区的管理程序,主要实现了对硬盘等块备进行数据高速存取的函数。第二部分代码描述了文件系统的低层通用函数,说用文件索引节点的管理。磁盘数据块的分配和释放以及文件名与i节点的转换算法,第三部分程序是有关对文件中数据进读写操作,包括对字符设备,管道块读写文件中数据的访问,第四部分的程序主要涉及文件的系统调用接口的实现,主要涉及文件打开,关闭。创建以及有关文件目录操作等的系统调用文件系统对操作系统对设备的读写操作提供了一个中间层,上层应用程序只要调用上层的接口函数如readfile()函数,传入参数路径和文件名就可
3、以了.对用户来说,他不用知道文件保存的具体的位置,是如何保存在硬件设备上的,用户只需要知道文件名和路径就可以了.其他的事由操作系统中的文件系统来完成.组用户的操作带来了方便也,使系统更安全.-28-引导块是计算机加电启动时可由ROMBIOS自动读入的执行代码和数据超级块是用于存放盘设备上文件系统结构的信息,并说明各部分在大小i节点图于说明i节点是否补使用,每个比特位代表一个i节点逻辑块位图用描述盘上的第个数据盘的使用情况,每个比特位代表盘上数据区中的一个数据据盘块。逻辑块位图的第一个比特位代表盘上数据区中第一个数据盘块。当一个数
4、据盘块被占用时,则逻辑块位图中相应比特位被置位盘上的i节点部分存产着文件第中文件(或目录)的索引点,每个文件(或目录)都有一个i节点,每个i节点结构中存放着对应文件的相关信息,如文件宿主的id(uid),文件所属组id(gid),文件长度和访问修改时间等.i节点位图最低比特位和i节点都闲置不用,并在创建文件系统时将i节点0的比特位置位文件中的数据是放在磁盘块的数据区中的,而一个文件名则通过对应的i节点与这些数据块相联系,这些盘块的号码就存放在i节点的逻辑块娄组i_Zone[]中-28-block_dev,c,char_dev.c
5、,pipe.c和file_dev.c都是为随后的程序read_write.c服务的。read_write.c程序主要实现了系统调用write()和read()。这4程序可以看作是系统调用与块设备,字符设备,管道“设备”和文件系统“设备”的接口驱动程序。头文件的分析#include内核配置头文件。定义键盘语言和硬盘类型(HD_TYPE)可选项。#include调度程序头文件,定义了任务结构task_struct、初始任务0的数据,还有一些有关描述符参数设置和获取的嵌入式
6、汇编函数宏语句。#include//内核头文件。含有一些内核常用函数的原形定义。#include//系统头文件。定义了设置或修改描述符/中断门等的嵌入式汇编宏。-28-#include//错误号头文件。包含系统中各种出错号。(Linus从minix中引进的)。#include//文件状态头文件。含有文件或文件系统状态结构stat{}和常量。在file_table.c文件structfilefile_table[NR_FILE];
7、//文件表数组(64项)。数据结构的分析structfile{//文件结构unsignedshortf_mode;//文件操作模式unsignedshortf_flags;文件打开和控制的标志unsignedshortf_count;对应文件句柄(文件描述符)数structm_inode*f_inode;指向对应i节点off_tf_pos;文件当前读写指针位置};structd_inode{//i节点结构unsignedshorti_mode;//文件的类型和属性(rws位)unsignedshorti_uid;//文件宿主的用
8、户idunsignedlongi_size;//文件长度(字节)unsignedlongi_time;//修改时间unsignedchari_gid;//文件宿主的组//链接数(有多少个文件目录指向该i节点)unsignedchari_nlinks;//文件所占