操作系统课程设计 文件系统接口.doc

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统课程设计 文件系统接口

目录 实验名称 - 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 - 操作系统课程设计实验报告 实验名称 文件系统接口实现源代码分析 模块整体功能介绍及主要目标 第一部分是有关高速缓冲区的管理程序,主要实现了对硬盘等块备进行数据高速存取的函数。 第二部分代码描述了文件系统的低层通用函数,说用文件索引节点的管理。磁盘数据块的分配和释放以及文件名与i节点的转换算法, 第三部分程序是有关对文件中数据进读写操作,包括对字符设备,管道块读写文件中数据的访问, 第四部分的程序主要涉及文件的系统调用接口的实现,主要涉及文件打开,关闭。创建以及有关文件目录操作等的系统调用 文件系统对操作系统对设备的读写操作提供了一个中间层,上层应用程序只要调用上层的接口函数如readfile()函数,传入参数路径和文件名就可以了.对用户来说,他不用知道文件保存的具体的位置,是如何保存在硬件设备上的,用户只需要知道文件名和路径就可以了.其他的事由操作系统中的文件系统来完成.组用户的操作带来了方便也,使系统更安全. 引导块是计算机加电启动时可由ROM BIOS自动读入的执行代码和数据 超级块是用于存放盘设备上文件系统结构的信息,并说明各部分在大小 i节点图于说明i节点是否补使用,每个比特位代表一个i节点逻辑块位图用描述盘上的第个数据盘的使用情况,每个比特位代表盘上数据区中的一个数据据盘块。 逻辑块位图的第一个比特位代表盘上数据区中第一个数据盘块。当一个数据盘块被占用时,则逻辑块位图中相应比特位被置位 盘上的i节点部分存产着文件第中文件(或目录)的索引点,每个文件(或目录)都有一个i节点,每个i节点结构中存放着对应文件的相关信息,如文件宿主的id(uid),文件所属组id(gid),文件长度和访问修改时间等. i节点位图最低比特位和i节点都闲置不用,并在创建文件系统时将i节点0的比特位置位 文件中的数据是放在磁盘块的数据区中的,而一个文件名则通过对应的i节点与这些数据块相联系,这些盘块的号码就存放在i节点的逻辑块娄组i_Zone[]中 block_dev,c,char_dev.c,pipe.c和file_dev.c都是为随后的程序read_write.c服务的。read_write.c程序主要实现了系统调用write()和read()。这4程序可以看作是系统调用与块设备,字符设备,管道“设备”和文件系统“设备”的接口驱动程序。 头文件的分析 #include linux/config.h 内核配置头文件。定义键盘语言和硬盘类型(HD_TYPE)可选项。 #include linux/sched.h 调度程序头文件,定义了任务结构task_struct、初始任务0 的数据, 还有一些有关描述符参数设置和获取的嵌入式汇编函数宏语句。 #include linux/kernel.h // 内核头文件。含有一些内核常用函数的原形定义。 #include asm/system.h // 系统头文件。定义了设置或修改描述符/中断门等的嵌入式汇编宏。 #include errno.h // 错误号头文件。包含系统中各种出错号。(Linus 从minix 中引进的)。 #include sys/stat.h // 文件状态头文件。含有文件或文件系统状态结构stat{}和常量。 在file_table.c 文件 struct file file_table[NR_FILE]; // 文件表数组(64 项)。 数据结构的分析 struct file { //文件结构 unsigned short f_mode; //文件操作模式 unsigned short f_flags; 文件打开和控制的标志 unsigned short f_count; 对应文件句柄(文件描述符)数 struct m_inode * f_inode; 指向对应i节点 off_t f_pos; 文件当前读写指针位置 }; struct d_inode { // i节点结构 unsigned short i_mode; //文件的类型

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档