嵌入式操作系统chap8要领.pptVIP

  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文档。上传文档
查看更多
为了便于对文件进行控制和管理,文件系统为每个文件唯一地设置一个文件控制块(File Control Block)。 文件控制块是文件存在的标志。它是操作系统为管理文件而设置的数据结构,存放了为管理文件所需的所有有关信息。 文件控制块的作用是操作系统和要处理的文件之间相联系的一个纽带,操作系统要依靠FCB中的数据完成对文件的读或写操作。文件控制块通常包括下面一些信息: 文件名 文件类型 物理地址 文件大小 保护信息 使用计数 时间 三、虚拟文件系统 3、文件控制块(FCB) 一个文件控制块就是一个文件目录项,一个文件目录也可以看作是一个文件,称为目录文件。 文件控制块包含了文件除数据以外的控制信息,如文件名、存取权限等。因此一个文件控制块的存储空间还是很大。 如果将文件控制块直接保存在目录文件中,那么目录文件将占据较多的物理块。而且进行文件查找时,将读取多个物理块,从而降低了检索文件的速度。 为了解决这一问题,Linux引入了索引节点的数据结构。 三、虚拟文件系统 3、文件控制块(FCB) 为了减少目录文件所占的物理块,Linux将文件控制块一分为二,第一部分是文件名,第二部分是其他信息。 其他信息被组织成定长的数据结构,称为索引节点。每个索引节点都有一个编号,称为索引号。每个文件目录项只保存文件名及文件名对应的索引号。这样文件目录项中只剩下14字节的文件名和2字节的索引号,一个512字节的物理块就可以保存32个文件目录项。即,一个包含32个文件或子目录的目录,只占据1个物理块。 可见,目录文件占据的物理块被大大减少。下图是使用了索引节点的物理文件的物理结构示意图: 三、虚拟文件系统 3、文件控制块(FCB) 索引节点对象:由inode结构体表示,定义在linux/fs.h中,如下 : struct inode { }; ?有时,某些文件系统可能并不能完整的包含索引节点结构体要求的所有信息。 如有的文件系统可能并不记录文件的创建时间,这时,该文件系统就可以在实现中选择任意合适的办法来解决这个问题,它可以在i_ctime中存储0,或者让i_ctime等于i_mtime,甚至任何其他值。索引节点对象中的inode_operations项存放了操作函数列表,定义在linux/fs.h中,如下: struct inode_operations { }; 三、虚拟文件系统 3、文件控制块(FCB) 每一个文件除了具有一个索引节点inode数据结构外,还有一个目录项dentry(directory enrty)数据结构。 dentry数据结构中有个d_inode指针指向相应的inode结构。dentry和inode所描述的目标不同,dentry结构代表的是逻辑意义上的文件,所描述的是文件逻辑上的属性,因此,目录项对象在磁盘上并没有对应的映像;而inode结构代表的是物理意义上的文件,记录的是物理上的属性,对于Ext2文件系统来说,ext2_ inode结构在磁盘上就有对应的映像。一个索引节点对象可能对应多个目录项对象。 三、虚拟文件系统 4、VFS目录项 一个有效的dentry结构必定有一个inode结构,这是因为一个目录项要么代表着一个文件,要么代表着一个目录,而目录实际上也是文件。所以,只要dentry结构是有效的,则其指针d_inode必定指向一个inode结构。可是,反过来则不然,一个inode却可能对应着不止一个dentry结构;也就是说,一个文件可以有不止一个文件名或路径名。这是因为一个已经建立的文件可以被连接(link)到其他文件名。 目录项对象:目录项中也可包括安装点。在路径/mnt/cdrom/foo中,/,mnt,cdrom都属于目录项对象。目录项由dentry结构体表示,定义在文件linux/dcache.h中,描述如下: struct dentry { }; 三、虚拟文件系统 4、VFS目录项 由于目录项并非真正保存在磁盘上,所有目录项没有对应的磁盘数据结构,VFS根据字符串形式的路径名现场创建它,目录项结构体也没有是否被修改的标志。 结构体dentry_operation指明了VFS操作目录的所有方法,如下: struct dentry_operations { }; 三、虚拟文件系统 4、VFS目录项 文件对象是已打开的文件在内存中的表示,主要用于建立进程和磁盘上的文件的对应关系。它由sys_open创建,由sys_close销毁。文件对象和物理文件的关系类似于进程和程序。一个文件对应的文件对象可能不是唯一的,但是其对应的索引节点和目录项对象是唯一的。 文件对象在内核中用file结构表示,它在include\linux\fs.h中实现: struct file { }; 文件对象的操作有file_ope

文档评论(0)

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

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

1亿VIP精品文档

相关文档