网站大量收购闲置独家精品文档,联系QQ:2885784924

模拟设计磁盘文件的链接存储结构.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE 1 操作系统课程设计 题目:模拟设计磁盘文件的链接存储结构 班级: 姓名: 学号: 序号 项目名称 考核比重 得分 1 方案设计 10% 2 系统设计 50% 3 系统验收 15% 4 课设报告 25% 总成绩 100% 2020年6月 PAGE PAGE 1 目录 一、课程设计目的2 二、课题内容2 设计思路3 四、功能介绍6 五、源代码13 六、心得与体会15 第 第 PAGE 1 页 共 NUMPAGES 15 页 课程设计目标 文件系统是操作系统用于明确存础设备(常见的是础盘,也有基于NMAND?Flash?的因态硬盘)或分区上的文件的方法和数据结构:即在存钻设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操织和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分E,负责文件存储并对存入的文件进行保护和伦索的系统。具体地说。它负责为用户建立文件,存入、读出、修改、转然交件.控制文件的存取,当用户不再使用时地销文件等。从而加深对操作系统的理解。 1.了解磁盘文件的管理方式。 2.掌握文件物理结构和存取方式。 3.明晰文件的逻辑地址和物理地址。 课题内容 设计和实现文件存储空间的分配,并完成用户的读写请求: A、磁盘文件的管理采用显式链接结构,将文件占用的物理块号和链接针 录在一张文件分配表(FAT)中。文件第一块的块号记录在索引结点中。文件 录只记录文件名和索引结点的编号。索引结点的结构如下: 索引结点编号 文件属性 创建时间 文件第一块块号 文件占用盘块数 备用 B、假定磁盘存储空间共有100个物理块用于存放数据, 目录文件和索引 点可直接访问,不存放在这100个块中。 C、一个物理块可存放3个文件逻辑记录,并且假设文件逻辑记录定长。 D、用键盘输入的方式模拟用户读写请求,输入格式如下: Create(filename) Write(filename, text, logical_record_no) Read ( filename, logical_record_no) (其中filename是要读写的文件名,text是写入的内容,logical_record_no 是逻辑记录号。) 设计思路 创建文件(create): 在当前目录里创建文件,在内存中找到空闲文件块来存放用户文件信息,新创建的文件的状态默认为关闭,同时更新位示图和索引表。 删除文件(delete): 在目录中找到要删除的文件的目录项,使之成为空项,回收该文件所占用的存储空间。 打开文件(open): 在当前目录进行操作,根据文件名,在索引表里找到该文件的物理块号,然后找到该文件的信息,将文件的状态设为打开。 关闭文件(close): 在当前目录进行操作,根据给出的文件名,在索引表里找到该文件的物理块号,根据块号找到该文件信息,若此文件当前状态是打开则将该文件的状态设为关闭。否则,输出“当前目录没有要关闭的文件”。 读文件(read): 在当前目录进行操作,根据文件名,检测文件是否已经打开,若文件已经打开则将文件的信息显示到屏幕上。 写文件(write): 在当前目录进行操作,根据文件名。检测文件是否打开,若已经打开,用户输入完成后,使用CTRL+D,结束输入,系统将用户的输入内容,保存到相应的文件块(小心越界情况)。 源代码 #includeiostream.h #include?math.h #includeiomanip.h #includestring.h #includefstream.h int?i=0,j=0,sum=0,tt=0,r,ii,k,g,m; int?a[100][32]; class??file//文件类 {private: int?no;??//文件编号 char?name[10];??//文件名 public: int?tag;??//删除标记?1:已删?0:未删 file(?){?} char?*getname(?){return?name;}?//获取姓名 int?gettag(?){return?tag;}?//获取删除标记 int?getno()?{return?no;}??????????//获取文件编号 int?getlength()?{return?length;}??????????//获取文件大小 int?getblocknum()?{return?blocknu

文档评论(0)

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

个人介绍

1亿VIP精品文档

相关文档