综合设计性实验29280.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文档。上传文档
查看更多
综合设计性实验29280.ppt

综合设计实验:模拟采用二级目录结构的磁盘文件系统中的文件操作 一、数据结构 1.采用二级目录结构时,第一级为主文件目录MFD,第二级为用户文件目录UFD,假定系统可同时管理N个用户文件,每个用户最多在磁盘上保存L个文件。约定用户把文件组织成记录式文件,文件中每个记录都是定长的,文件在磁盘上的组织形式索引,采用直接指针来记录文件创建时的数据块的地址,二级目录结构可用如下形式: ? 用户文件目录UFD中的文件控制块(FCB)有文件名,文件的存取权限,文件长度,文件的地址,文件的存取权限规定文件的使用权限为只读或可读可写,文件长度指组成该文件逻辑记录长度,文件地址指文件在外存磁盘上文件的首块地址,及其它块的地址(假定文件较小,一条逻辑记录恰好占用一个块,此处地址可以定义四个地址,类似UNIX/LINUX采用直接指针) (2) 为每个设置一个“用户已打开文件表(UOF),用以存放该用户当前正在使用文件的情况。如果用户最多同时打开或建立S个文件,则UOF中有S个登记栏。具体如下表: 二、实验要求: 显示初始的文件目录表、输入的文件操作命令和每条命令执行后的UOF文件,程序运行后打印所有用户的文件目录表。 (3)假定文件系统提供的文件操作有建立文件(CREATE),打开文件(OPEN),关闭文件(CLOSE),读文件(READ),写文件(WRITE)和删除文件(DELETE),在模拟程序中首先显示系统提示符#然后输入文件操作命令来模拟各用户程序中所调用的各种文件操作,用一个结束命令(end)停止程序执行。主程序结构流图如下: (4)用输入命令来模拟用户程序中调用的文件操作,这些命令的格式和和要求如下:①建立文件:create(文件名,文件长度,文件属性) ②写文件:write(文件名,记录号) 有两种情况,第一种是在执行create后要求写,第二种是在执行open后要求写,即对一个已存在的文件进行修改。 ③关闭文件:close(文件名),对某个文件不需要再读或写时,用户应关闭文件。 ④打开文件:open(文件名,操作类型),其中操作类型指出文件打开后,用户将对文件进行读或写。约定操作类型与文件属性不符合或正处于“建立”状态的文件不允许打开。 ⑤读文件:read(文件名,读长度),由于文件采用索引,可顺序读,也可随机读,自行设计流图。 ⑥删除文件 delete(文件名),从相应的用户文件目录UFD中将文件控制块删除,收回该文件占用的存储区域。自行设计流程。 * 文件A的控制块 文件B的控制块 文件C的控制块 … 文件X的控制块 文件Y的控制块 文件Z的控制块 … 文件A 文件B 文件C 文件X 文件Y 文件Z … 用户名 UFD起始 ABC 地址 用户名 UFD起始 XYZ 地址 … 用户文件目 UFD:ABC 用户文件目 UFD:XYZ 主目录(MFD) 写指针 读指针 状态(已打开) 文件长度 文件属性 文件名 开始 初始化文件目录表 初始化已开目录表 输入用户名 MFD中有 该用户? 输入命令 分析命令 无 有 结束 其他 显示:命令错 显示:无此用户 建立 create 打开 open 关闭 close 撤消 delete 读 read 写 write end 开始 查看用户的UFD UFD中有 该文件? 在UFD和UOF中找空登记栏 找一磁盘空闲块 i : = 找到的块号 是 否 显示:“建立”成功 显示:同名文件 不能建立 返回 在UFD和UOF中登记文件 名,记录长度,文件属性 在UFD登记栏中 文件地址 : = i 在该用户的UOF表中登记 状态 : = 建立 写指针 : = i 返回 显示:“写文件”成功 把修改信息写入找到的物理块中(用显示物理块号来模拟) 返回 开始 查看用户的UOF UOF中有 该文件? 是 否 显示:文件尚未建立或打开,不能写 返回 是 该文件为 “建立”状态 ? 否(打开状态) 文件属性 为”只读”? 否 是 显示:操作不合法,不能写 返回 把记录信息写到“写指针”指出的物理块中(用显示物理块号来模拟) 找一空闲块填文件链接字,修改“写指针” 顺序修改? 取出“写指针”指出的块号 修改“写指针” 是 否 找出存放指定记录的块号 开始 查看用户的UFD UFD中有 该文件? 是 否 显示:文件不存在 不能打开 返回 显示:“打开”成功 登记UOF:文件名,记录长度,文件属性 状态 : = “打开” 读指针 : = UFD中文件地址 写指针 : = UFD中文件地址 返回 查看用户的UOF UFD中有 该文件? 是 该文件为 “建立”状态 ?

文档评论(0)

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

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

1亿VIP精品文档

相关文档