逻辑组成和分解.doc

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

课程设计报告 (学 院)系: 华信学院 专 业: 计算机科学与技术 姓 名: 班 级: 学 号: 指导教师: 日期: 2010年06月23日 “操作系统”课程设计报告 姓名 学号 4 日期 2010-6-12—2010-6-23 实验室 指导教师 设备编号 7 课程设计题目 逻辑记录的成组和分解 一、实习内容 模拟逻辑记录的成组和分解操作,提高磁盘存储空间的利用率。 二、实习目的 当磁盘被初始化后,存储空间的分块大小就确定了,但由于不同的用户或同一用户的不同文件的逻辑记录大小是各不相同的。在逻辑记录较小的情况下,若让一个逻辑记录独占一个物理块,那么存储空间的利用率是不高的。操作系统提供逻辑记录的成组和分解操作不仅有利于提高存储空间的利用率,而且可减少输入输出操作次数,提高计算机系统的工作效率。本实习帮助我们掌握成组和分解操作的技术以及了解成组和分解操作的实现过程。 三、实习过程 1. 数据结构设计 (1)建立索引表项的结构体 struct indexitem { int logicnum; int factnum; }; (2)定义文件类 class file{ public: char name[5]; //文件名 int rl; //文件记录的大小 int length; //文件的记录号长度 struct indexitem *p; //定义只想索引表 public: file() {} void get(char n[5],int recodesize1,int length1); void constract(); void dissolve(); void print(); void productindex(); //动态产生数组 }; 2. 算法设计 算法思想:我们知道磁盘被初如化后,存储空间的分块大小就确定了,但由于逻辑记录大小是各不相同的。当逻辑记录较小时,若让一个逻辑记录独占一个物理块,那么存储空间的利用率是不高的,而且增加了I/0操作,减少了存取效率,资源浪费。因此操作系统提供逻辑记录的成组和分解操作不仅有利于提高存储空间的利用率,而且可减少输入输出操作次数,提高计算机系统的工作效率。它的主要是依靠内存,在内存中开辟了一块连续的空间,用来存放存取文件的一部分记录。当存时,当达到一个物理块时,就启动磁盘存入。当读取时,就要根据文件 的索引表去启动磁盘,读取打算读的那个逻辑记录号所在的物理块号,把其内容读到内存开辟的缓存中,再经过查找就可以找到想读取的逻辑记录号了。这就成功的找到了。 3. 程序流程图 图1成组操作模拟算法 图2 分解操作模拟算法 图3 主函数 四. 程序实现及运行结果 (1) 源程序链接 (2) 运行 keshe\keshe.dsw点击图标 图4 显示提示语 图5按1存储文件 并提示输入 图6输入文件f1,记录大小256,共10个块 图7开辟2为缓存存始址,并显示 图8按1存储文件 并提示输入 图9输入文件f2,记录大小512,共7个块 图10开辟2为缓存存始址,并显示 图11 打印f1和f2文件的索引表 图12 打开一个不存在的文件,显示出错 图13 打开文件f1,提示输入缓存地址 图14 提醒输入记录号 图15 因为1号不在缓存,所以启动磁盘,移到缓存中 并显示在缓存中的相对位置 图16 按1继续 图17 因为3号记录已在缓存,直接显示相对位置 图18 因为6号记录不在缓存,启动磁盘, 把物理块内的内容移到缓存,并显示相对位置 图19 打开文件f2,并提醒输入 缓存中的始址 图20 因为文件f2的4号记录不在缓存中 所以启动磁盘,把物理块内的内容移到缓存,并显示相对位置 图21 不读了,输入2退到主目录 图22 按4 结束程序 五、实习总结 通过这两周的课程设计,我自己从老师提供的几个题目中找到了自己感兴趣的一个实际的问题(逻辑记录的成组与分解),在实习过程中,引进了一些新的思想,例如动态数组类Carray,和c++里面的活动数组。经过我一步步调试、删改,积累了一些经验,并且复习了以前学习的知识。经过这次操作系统的课程设计,加深了对操作系统课上学习的一些思想理解,感觉这是最大的收获。在课程设计的过程中,我真正认识到了操作系统作为一门基础课,以及其的几大功能。是硬件的第一层。为我们提供了强大的功能和大量的服务。我们这个阶段只能来模拟操作系统的部分功能

文档评论(0)

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

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

1亿VIP精品文档

相关文档