欢迎来到天天文库
浏览记录
ID:9651561
大小:827.00 KB
页数:14页
时间:2018-05-04
《操作系统课程设计报告磁盘空间管理》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、课 程 设 计(操作系统)题 目: 磁盘空间管理/Diskallocation班 级:计算机科学与技术姓 名:指导教师: 系主任:2017年09月01日目录1题目分析12数据结构及函数21.1主要变量参数21.2文件数据结构21.3主要函数23流程图34实现技术44.1命令行程序44.2图形界面程序85设计结论和心得12I121题目分析磁盘空间管理在操作系统中地位至关重要,由于磁盘具有可直接访问的特性,故当利用磁盘来存放文件时,具有很大的灵活性。在为文件分配外存空间时所要考虑的主要问题是:怎样才能有效的利用外村空间和如何提高对文件的访问速度。目前,常用的外
2、存分配方法有连续分配、链接分配和索引分配三种。通常,在一个系统中,仅采用其中的一种方法来为文件分配外存空间。在本次课程设计中,主要是针对连续分配和链接分配两种方式设计程序模拟磁盘空间的管理。文件的物理结构与外存分配方式有关。不同的分配方式会形成不同的文件结构,连续分配会形成顺序式的文件结构,而链接分配则会形成链接式文件结构。本次课程设计将主要采用C++语言和C#语言,同时运用文件物理结构和磁盘空间管理的相关知识,开发出两个版本的磁盘空间管理模拟软件。实现连续分配、链接分配两种外存分配方式,能够显示文件的逻辑块地址和物理块地址映射关系,能够实时的显示文件空间占用情况和磁盘空间
3、的使用情况。同时为了处理好连续分配可能带来的磁盘碎片话问题,为了尽可能最大化的利用磁盘空间,将构造磁盘紧凑函数用来模拟磁盘紧凑功能的实现。其中C++语言将开发出简单的命令行程序,然后用C#语言转成有图形界面的完整模拟程序。122数据结构及函数1.1主要变量参数intdisksum;//磁盘空间大小intdiskrem;//磁盘剩余空间大小intfiresum;//文件占据空间大小intfireid;//存储文件个数intway;//存储方式intdisk[10240];//模拟磁盘存储块stringrun="1";//操作选项1.2文件数据结构structFire{stri
4、ngname;//文件名int_size;//文件大小intst,en;//连续文件首位地址intloc[100];//存储文件物理地址};1.3主要函数存储文件函数:voidstorefire();删除文件函数:voidstorefire();磁盘紧凑函数:voidcompactdisk();显示地址函数:voidadressshow();显示空间占用函数:voidshow();打印初始化函数:voidprin();123流程图图1总流程图图2存储文件流程图图3删除文件流程图124实现技术第1章第2章第3章1.1命令行程序第1章第2章第3章为实现简单命令行程序设计,采用C
5、++语言,VS2017开发环境。具体采用的技术如下:(1)字典树存储查找算法。在进行存储文件、删除文件、显示映射地址时,需要查询文件名是否存在,当文件数量特别大时,如果采用顺序查找,效率十分低,采用字典树查找算法就能快速高效的查询文件是否存在;(2)线段树算法。进行连续存储时,需要判断磁盘是否存在连续的空间能够存储下当前文件,采用顺序查找判断同样是效率低下,采用线段树算法优化可以很大程度上节省程序运行时间;(3)链表。进行链接存储文件时,采用链表存储更方便,删除文件时操作更加便捷。实现步骤如下:(1)程序初始化,设置磁盘空间大小,选择文件存储方式;(2)选择执行的操作,存储
6、、删除、紧凑及各种信息显示;(3)执行操作,输入需要的相关信息,如存储文件时需要输入文件名和文件大小;(4)程序内部运行完成后返回(2),直至选择退出系统。运行结果如下:(1)以下给出多种功能演示的正常情况的运行情况,截图如下:图4存储操作12图5删除文件图6磁盘使用情况(删除文件前)图7磁盘使用情况(删除文件后)图8磁盘紧凑处理图9地址映射显示(紧凑处理前)12图10地址映射显示(紧凑处理后)图11链接存储后的地址映射(2)除了以上正常情况输入输出外,考虑到本程序设计大量的输入操作,为了避免人为操作的失误,导致程序意外终止崩溃的情况发生,程序内部还增加了大量的容错机制,即
7、使输入错误的数据类型也能使程序正常运行,以下仅给出几例输入错误截图:12图12存储方式选择错误示例图13操作方式选择错误示例图14存储文件输入重名文件图15存储文件超出剩余空间大小121.1图形界面程序为了完成本次课程设计的任务要求,实现用图形界面演示,本人又重新采用C#语言,在VS2017开发环境下,开发出第二个版本的磁盘管理系统。具体采用的技术如下:(1)采用Lable控件用作显示文字标签,显示程序中需要的一些文字提示;(2)采用TextBox控件用作输入输出的接口,输入一些信息或者显示输出的信息;(3)采用B
此文档下载收益归作者所有