- 1、本文档共89页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 2. 长文件名的实现 为保证长文件名的向后兼容,对于每一个文件,设置两个名字,一个是所需的长文件名,用Unicode编码;另一个是标准的8+3文件名。这两个名字均可用来访问该文件; 系统自动地将一个长文件名转换为相应的8+3文件名,转换规则是:保留该文件名的前6个字符(不包括空格),并把它们转换为大写字符,然后再加上一个带有编号的后缀,如~1、~2等。 8+3文件名存放在目录项中,而长文件名被存放在一个或多个额外的目录项中,每个目录项存放13个字符,并按照反方向位于文件目录项之前; * 通过属性字段 Attributes 来判断一个目录项是一个普通的文件目录项,还是专门用于存放长文件名; Sequence字段:记录了一个长文件名的目录项编号,最后一个目录项(位于最开始)的编号被加上0x40以示区别; Checksum:验证长文件名与文件目录项是否匹配。 保存长文件名的目录项结构 Checksum * 一个长文件名的例子 长文件名:“The quick brown fox jumps over the lazy dog”; 8+3文件名:“THEQUI~1”。 * 第六章 结束 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 * * * * * * * * * * * * * * * * * * * * * * * * * * * 打开方式 读写指针 系统表指针 … … … … … … … … 进程P1的打开文件表 打开方式 读写指针 系统表指针 … … … … … … … … 进程P2的打开文件表 共享计数 FCB … … 2 … … … 系统内打开文件表 * 2. 打开文件 任何一个文件在使用前都必须先打开,打开文件的系 统调用为:fd = open(文件路径名,打开方式) 根据文件路径名一层层地去查找各级目录结构,找到该文件所在的目录项; 根据打开方式、共享说明等信息检查访问合法性; 查找系统内打开文件表,看文件是否已经被其他进程打开,若是,将文件的共享计数值加1,转S4;若否,将该文件的FCB从外存读入内存,保存在系统打开文件表的某个空表项中,共享计数置为1; 在进程打开文件表中增加一项,填写访问方式、当前读写指针等,并指向系统打开文件表对应表项; 返回一个指针给fd,指向 打开文件表中的相应表项,以后的文件操作均通过该指针来完成。 进程 * 目录的逐级搜索示例 文件路径名 目标目录项 根目录 Ann目录 mail目录 给定路径名,找到FCB * 文件控制块FCB fd=open(文件路径名,打开方式) 用户空间 查找目录项并验证合法性 若需要,把FCB读入内存 FCB 内核空间 外存 系统文件表 进程文件表 * 3. 关闭文件 文件在使用后必须关闭,相应的系统调用:close (fd) 根据fd,将进程打开文件表中的相应表项删除; 将系统打开文件表中相应表项的共享计数值减1,如果该值仍大于0,说明还有其他进程在使用该文件,此次操作结束,返回;否则转S3; 把更新后的文件信息复制回外存中的目录结构,然后把系统打开文件表中的相应表项删除。 * 4. 读取文件 系统调用函数 int read(fd,userBuf,size):从文 件fd的当前位置开始,顺序读取大小为size的数据块, 并保存在userBuf中,如read(fd, buf, 100)。 通过fd可以访问进程打开文件表中的相应表项,如文件的当前位置,并由此可访问系统打开文件表中的相应表项,即该文件的FCB,由此可知文件的各个逻辑块在外存上的存储位置; 需要验证本次操作的合法性,包括读取权限、数据块大小是否越界,等等; 以块为单位来访问外存,需将用户给出的文件地址转换为逻辑块,再转换为相应的物理块,然后根据物理块编号去访问外存。 * 文件的读操作(用户) 已访问部分 即将访问部分 文件起始位置 文件当前位置 文件结束位置 文件的逻辑地址空间 * 其他的一些系统调用: 创建文件create; 写文件write; 添加append; 文件定位seek; …… * 例题: 有一个文件系统
您可能关注的文档
最近下载
- 【通桥(2016)2322A-II-1】高速铁路预制无砟轨道后张法预应力混凝土简支箱梁(双线) 跨度31.5m(直、曲线) .pdf
- 2024年二建继续教育-合同管理和风险防范(必修)1、2答案.docx VIP
- 2024-2025高二化学人教版选择性必修2习题试卷第三章章节测评(解析带答案版).doc
- GB∕T 3953-2024电工圆铜线 GB∕T 3953-2024电工圆铜线.pdf
- 部编版六年级毕业作文总复习指导(名师作品).ppt
- 产品上架与下架操作指南.doc VIP
- 《你好!法语1》练习册答案.pdf
- 日本的设计文化.ppt VIP
- 甲醇行业未来发展趋势预测.docx
- 收发文件管理制度.docx
文档评论(0)