已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈尔滨理工大学课程设计(操作系统)题目: 磁盘空间管理 / Disk allocation班级: 计算机科学与技术 姓名: 指导教师: 系主任: 2017年09月01日 哈尔滨理工大学课程设计报告目 录1 题目分析12 数据结构及函数21.1 主要变量参数21.2 文件数据结构21.3 主要函数23 流程图34 实现技术44.1 命令行程序44.2 图形界面程序85 设计结论和心得12I331 题目分析磁盘空间管理在操作系统中地位至关重要,由于磁盘具有可直接访问的特性 ,故当利用磁盘来存放文件时,具有很大的灵活性。在为文件分配外存空间时所要考虑的主要问题是:怎样才能有效的利用外村空间和如何提高对文件的访问速度。目前,常用的外存分配方法有连续分配、 链接分配和索引分配三种。通常,在一个系统中, 仅采用其中的一种方法来为文件分配外存空间。在本次课程设计中,主要是针对连续分配和链接分配两种方式设计程序模拟磁盘空间的管理。文件的物理结构与外存分配方式有关。不同的分配方式会形成不同的文件结构,连续分配会形成顺序式的文件结构,而链接分配则会形成链接式文件结构。本次课程设计将主要采用C+语言和C#语言,同时运用文件物理结构和磁盘空间管理的相关知识,开发出两个版本的磁盘空间管理模拟软件。实现连续分配、链接分配两种外存分配方式,能够显示文件的逻辑块地址和物理块地址映射关系,能够实时的显示文件空间占用情况和磁盘空间的使用情况。同时为了处理好连续分配可能带来的磁盘碎片话问题,为了尽可能最大化的利用磁盘空间,将构造磁盘紧凑函数用来模拟磁盘紧凑功能的实现。其中C+语言将开发出简单的命令行程序,然后用C#语言转成有图形界面的完整模拟程序。2 数据结构及函数1.1 主要变量参数int disksum;/磁盘空间大小int diskrem;/磁盘剩余空间大小int firesum;/文件占据空间大小int fireid;/存储文件个数int way;/存储方式int disk10240;/模拟磁盘存储块string run=1;/操作选项1.2 文件数据结构struct Fire string name;/文件名 int _size;/文件大小 int st,en;/连续文件首位地址 int loc100;/存储文件物理地址;1.3 主要函数存储文件函数:void storefire();删除文件函数:void storefire();磁盘紧凑函数:void compactdisk();显示地址函数:void adressshow();显示空间占用函数:void show();打印初始化函数:void prin();3 流程图图1 总流程图 图2 存储文件流程图图3 删除文件流程图4 实现技术第2章第3章第4章4.1 命令行程序第1章第2章第3章为实现简单命令行程序设计,采用C+语言,VS2017开发环境。具体采用的技术如下:(1)字典树存储查找算法。在进行存储文件、删除文件、显示映射地址时,需要查询文件名是否存在,当文件数量特别大时,如果采用顺序查找,效率十分低,采用字典树查找算法就能快速高效的查询文件是否存在;(2)线段树算法。进行连续存储时,需要判断磁盘是否存在连续的空间能够存储下当前文件,采用顺序查找判断同样是效率低下,采用线段树算法优化可以很大程度上节省程序运行时间;(3)链表。进行链接存储文件时,采用链表存储更方便,删除文件时操作更加便捷。实现步骤如下:(1)程序初始化,设置磁盘空间大小,选择文件存储方式;(2)选择执行的操作,存储、删除、紧凑及各种信息显示;(3)执行操作,输入需要的相关信息,如存储文件时需要输入文件名和文件大小;(4)程序内部运行完成后返回(2),直至选择退出系统。运行结果如下:(1)以下给出多种功能演示的正常情况的运行情况,截图如下:图4 存储操作图5删除文件图6 磁盘使用情况(删除文件前)图7 磁盘使用情况(删除文件后)图8 磁盘紧凑处理图9 地址映射显示(紧凑处理前)图10 地址映射显示(紧凑处理后)图11 链接存储后的地址映射(2)除了以上正常情况输入输出外,考虑到本程序设计大量的输入操作,为了避免人为操作的失误,导致程序意外终止崩溃的情况发生,程序内部还增加了大量的容错机制,即使输入错误的数据类型也能使程序正常运行,以下仅给出几例输入错误截图:图12 存储方式选择错误示例图13 操作方式选择错误示例图14 存储文件输入重名文件图15 存储文件超出剩余空间大小4.2 图形界面程序为了完成本次课程设计的任务要求,实现用图形界面演示,本人又重新采用C#语言,在VS2017开发环境下,开发出第二个版本的磁盘管理系统。具体采用的技术如下:(1) 采用Lable控件用作显示文字标签,显示程序中需要的一些文字提示;(2) 采用TextBox控件用作输入输出的接口,输入一些信息或者显示输出的信息;(3) 采用Button控件用作选择执行操作的按钮;(4) 采用RadioButton控件用来选择连续存储或者链接存储;(5) 具体算法运用与上述C+程序基本一致。以下是程序运行的部分截图:图16 登录界面(密码:password)图17 初始化界面图18 操作主界面图19 存储界面图20 删除界面图21 显示地址映射对于本程序,同样也进行了容错处理,对于输入错误的数据也会给出相应的提示,具体的示例如下截图所示:图22 输入错误的用户名图23 输入错误密码图24 文件名重名图25 删除不存在文件5 设计结论和心得通过课程设计得到如下结论:(1)深入理解了磁盘存储文件两种方式不同的内部机制,也理解了为什么不同的外存方式会形成不同物理结构的文件,同时也对连续存储和链接存储的优缺点有所了解,如连续存储容易使磁盘碎片化的问题更加严重,不能充分的利用磁盘的空间,而链接存储能有效的解决磁盘碎片化的问题,但却影响了磁盘的访问速度,两种方式各有长短,在实际生活中,应该根据文件的不同类型采用相应的外存分配方式;(2)在算法优化方面,测试程序时由于数据量相对较小并不能体现出所用到的字典树查找、线段树等算法的优势,但在实际生活中需要处理的数据往往特别大,所以对算法的优化还是十分有必要的,这次的课程设计也是综合考察了以前的课程数据结构预算法分析,能够将学过的知识加以运用才是学习的最终目的。有如下几点心得体会:(1)本次课程设计中,除了运用了之前学习过的C+语言,还边看边学边用地挑战了一下一门新语言C#语言,也提高了自主学习的能力,同时也理解到了编程的精髓所在,只要认真地学好了一门编程语言,打好基础,以后在入门其他编程语言的时候效率就会非常高,所以说基础知识非常重要,在学习的过程中千万不能眼高手低,一定要脚踏实地的静下心来学习,才能得到质的提升;(2)在开始本次课程设计之前,得知需要实现图形界面操作,内心其实是有一些畏惧的,因为以前做的课程设计和实验并没有要求实现图形界面,一直都是用命令行窗口运行演示的。由于没有做过图形界面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国腰椎治疗仪项目经营分析报告
- 互联网电子商务市场教案(2025-2026学年)
- 学习有关的演讲稿
- 2026年中国柿子椒项目经营分析报告
- 2025-2030中国液体化工物流市场供需平衡与价格走势预测报告
- 2025-2030中国漂洗添加剂行业知识图谱构建与信息挖掘应用
- 2025年微信营销考试题目及答案
- 企业品牌形象推广计划及公关活动方案
- 2026年中国通信线路安装项目经营分析报告
- 2025年及未来5年中国财务软件行业市场调研分析及投资战略咨询报告
- 云南罚没财物管理办法
- 食堂人员编制及岗位职责
- 海南省2025年中考化学真题试题(含答案)
- DB37∕T 4683-2023 非煤矿山企业安全管理信息化建设基本规范
- 体育教练培训课件
- JJF 2225-2025 高绝缘电阻测量仪(高阻计)校准规范
- 高血压疾病讲课件
- 财政直接支付管理制度
- 2025至2030年中国电力智能巡检机器人行业市场现状调查及发展前景研判报告
- 2024年广东省清远市事业单位招聘考试《公共基础知识》真题库及答案
- D级压力容器质量管理体系内审资料符合TSG07-2019附录M
评论
0/150
提交评论