磁盘存储空间的管理实践报告.docx

上传人:b****2 文档编号:1517011 上传时间:2022-10-22 格式:DOCX 页数:13 大小:21KB
下载 相关 举报
磁盘存储空间的管理实践报告.docx_第1页
第1页 / 共13页
磁盘存储空间的管理实践报告.docx_第2页
第2页 / 共13页
磁盘存储空间的管理实践报告.docx_第3页
第3页 / 共13页
磁盘存储空间的管理实践报告.docx_第4页
第4页 / 共13页
磁盘存储空间的管理实践报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

磁盘存储空间的管理实践报告.docx

《磁盘存储空间的管理实践报告.docx》由会员分享,可在线阅读,更多相关《磁盘存储空间的管理实践报告.docx(13页珍藏版)》请在冰豆网上搜索。

磁盘存储空间的管理实践报告.docx

磁盘存储空间的管理实践报告

"操作系统"课程设计任务书

指导教师**

成晓静

教研室

信计

课程设计题目

磁盘存储空间的管理

人数

4

学时

1

设计目的、任务和要求

(一)目的

要求学生运用适当的编程语言,模拟UNI*系统中的成组法。

从而对操作系统有更深入的认识与理解。

〔二〕任务

在UNI*系统中,以组为单位,用空闲块自己管理自己。

要求用成组法实现磁盘空间的分配和回收〔假定每组管理5个磁盘块〕。

建立一个文件目录,管理已经建立的文件的情况,按照给定的文件名进展空间回收

〔三〕要求

学生3个人组成一个小组,要求根据上述任务,通过查找资料,完成程序设计,并撰写分析报告,报告要表达工作过程、测试结果、分析等容。

设计的法和步骤

查阅资料,展开充分理论分析,在掌握算法原理后进展软件设计,完成以下任务:

1、熟悉此次设计的目标,查阅相关资料;

2、对算法理论进展剖析,论证算法实现的可行性;

3、根据可行的算法设计,进展软件程序实现,并最终解决实际问题。

设计工作方案

本案例时间为5天,具体安排如下

●熟悉课设目标,查阅相关资料:

1天

●算法理论进展剖析,论证算法实现的可行性:

1天

●根据可行的算法设计,进展软件程序实现:

2天

●对所设计的程序解决实际问题并分析,撰写分析报告:

1天

主要参考资料

"计算机操作系统"汤小丹电子科技大学

"操作系统课程设计"善平季江民大学

 

教研室签字:

年月日

 

院签字:

年月日

1.相关知识

1.1空闲盘块的组织

〔1〕空闲盘块好栈用来存放当前可用的一组空闲的盘块好〔最多含100个号〕,以及栈有的空闲盘块号数N。

顺便指出,N还兼作栈顶指针用。

〔2〕文件区中的所以空闲盘块被分成假设干组,比方,将每100个盘块作为一组。

假定盘上共有1000个盘块,每块大小为1kb,其中201~7999号盘块用于存放文件,即作为文件区,这样,该区的最末一组盘块号应为7901~7999;次末组为7801~7900….;第二组盘块号为301~400;第一组为201~300

〔3〕将每一组含有的盘块总数N和该组所有的盘块记入其前一组的第一个盘块的S.freee(0)~S.free(99)中。

这样,由各组的第一个盘块可链成一条链。

〔4〕将第一组的盘块总数和所有的盘块号记入空闲盘块号栈中,作为当前可供分配的空闲盘块号。

〔5〕最末一组只有99个盘块,其盘块号分别记入其前一组的S.freee

(1)~S.free(99)中,而在S.freee(0)中则存放"0〞,作为空闲盘块链的完毕标志。

1.2空闲盘块的分配与回收

当系统要为用户分配文件所需的盘块时,须调用盘块分配过程来完成。

该过程首先检查空闲盘块号栈是否上锁,如未上锁,便从栈顶取出一空闲盘块号,将与之对应的盘块分配给用户,然后将栈顶指针下移一格。

假设该盘块号已是栈底,即S.freee(0),这是当前栈中最后一格可分配的盘块号。

由于在该盘块号所对应的盘块号记有下一组可用的盘块号,因此,须调用磁盘读过程,将栈底盘块号所对应的盘块的容读入栈中,作为新的盘块号栈的容,并把原栈底对应的盘块分配出去。

然后,再分配一相应的缓冲区。

最后,把栈中的空闲盘块数减1并返回。

在系统回收空闲盘块时,须调用盘块回收过程进展回收。

它是将回收盘块的盘块号记入空闲盘块号栈的顶部,并执行空闲盘块数加1操作。

当栈中空闲盘块号数目已达100时,表示栈已满,便将现有栈中的100盘块号记入新回收的盘块中,再将其盘块号作为新栈底。

2.系统设计

2.1算法及说明

首先定义磁盘分配数组并初始化,9个一维数组分别表示9个空闲块,程序运行时,先将专用块A〔0〕复制到存中,然后进展功能选择,分配时,查MA,从中找出空闲块号,当一组的空闲块只剩第一块时,应把该块中指出的下一组的空闲块数和块号复制专用块这,然后把该块分配给申请者,当一组的空闲块分配完后则把专用块容〔下一组情况〕复制到存,再为申请者分配。

回收时,输入待回收的块号,查找该块是否已被分配,假设未分配,退出,否则,当前组不满规定块数时,将归还块登记入该组,假设当前组已满,则另建一新组,这时归还块作为新一组的第一块,应把存中登记的一组情况MA复制到归还块中,然后在MA这重新登记一个新组。

显示分组情况。

2.2算法流程图

选择分配还是回收磁盘空间

分配磁盘空间

回收磁盘空间

继续y/n"

假设为y则继续分配

假设为n则退出程序

2.3数据构造及各子程序

(1)intMA;/*空闲块数组*/

(2)intA[9][6]={{5,1,2,3,4,5},{5,6,7,8,9,10},{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0},

{0,0,0,0,0,0},{5,0,11,12,13,14},{0,0,0,0,0,0},{0,0,0,0,0,0}};

/*磁盘空间*/

(3)intmark[9];/*存放已分配的块*/

intNo=0;/*已分配的块数*/

(4)voiddisplay()/*显示分组情况*/

(5)voidassign()/*分配空闲块*/

(6)voidcallback()/*回收空闲块*/

(7)voidmenu()/*功能选择函数*/

3.成果

3.1磁盘存储空间的分配

运行后,显示文件区中的所有空闲盘块号,将其分为三组,每组5个盘块。

则第一组为1~5号盘块,第二组为6~10号盘块,第三组即最末一组为11~14号盘块。

〔注:

最后一组的盘块数为5是因为这是指可供使用的空闲盘块,在S.free(0)中存放的0为空闲盘块的结尾标志。

之后键盘输入,输入1分配磁盘存储空间〔每次仅分配一个存储空间〕。

3.2磁盘存储空间的回收

输入y表示继续。

接着继续输入2可以将已分配的磁盘存储空间进展回收。

3.3完毕

假设在选择continueornot"时选择n,则完毕程序。

4.总结

4.1个人总结勋

在一的课设中,我对操作系统中的磁盘存储空间的管理有了更深的认识,同时对其中的算法"成组法〞进展了深入的理解与运用,在VC6.0平台上运用C/C++语言对磁盘存储空间的管理进展了编程实现,在实践过程中也遇到了多的困难,但是在小组共同努力,共同合作的根底上,我们还是圆满的完成了任务。

同时深刻的理解了所学的知识。

对知识的理解程度要看你运用的好不好,实践时检验真理的标准,我也从中学到了很多东西。

在一的过程中,大家都付出了努力和汗水。

一起交流,一起共同进步。

同时我也了解到了团队合作的重要,一家都分工明确,各司其职,最终编写出完整可运行的程序。

磁盘存储空间一般可有空闲表法和空闲链表法来管理,但是空闲表法和空闲链表法都不适用于大型文件系统,因为这会使空闲表和空闲链表太长。

在UNI*系统中采用的是成组法,这是将上述两种法相结合而形成的一种空闲盘快管理法,他兼备了上述两种法的优点而抑制了两种法均有的表太长的缺点。

对成组法进展了编程实现让我更好的了解了该法的各项原理,同时也对我后续的课程乃至毕业后找工作都有很大的帮助。

总之,我很快乐能顺利完成任务并且学到很多东西。

4.2个人总结史迎丰

通过一的课设,我对操作系统有了进一步的了解,尤其是对成组法有了更深的学习和运用。

我更深刻地领会了操作系统工作原理和操作系统实现法,并提高了程序设计能力,虽然实验的过程中遇到一些困难,但及时发现仔细研究解决使我更能深刻的理解所学知识。

一过得很快,但是我们组很好的完成了任务,大家都付出了努力和汗水。

一起交流,一起共同进步。

我学会了团队的合作是多么重要,不管你个人是多么的厉害,如果是只要你一个人去完成这次课程,那都是很有难度的,但如果整个团队齐心协力的去完成它,则就会到达事半功倍的效果。

我们分工明确,每个人都非常认真的去完成自己的任务。

这次课设,我受益匪浅,不仅学习到了知识,还学会了团队合作。

同时,这次课设由c语言来完成,我发现我的c语言根底不是很扎实,不过通过同学的指导,我的c语言能力有了显著的提升。

认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。

所以这次课设对我们的作用是非常大的,我从中学会了很多平时上课学不到的东西。

这次课设虽然有些辛苦,但是我们能完美的完成任务,我感到很快乐,而且学到了很多。

4.3个人总结齐泓洋

时间如梭,一的操作系统课设即将完毕,时间虽短,但对于我来说,却是受益匪浅的,这期间,在教师和组员们的关心支持下,我逐步对成组法有了更深一步的了解。

空闲表法和空闲链表法都不适用于大型文件系统,因为这会使空闲表和空闲链表太长。

在UNI*系统中采用的是成组法,这是将上述两种法相结合而形成的一种空闲盘快管理法,他兼备了上述两种法的优点而抑制了两种法均有的表太长的缺点。

在UNI*系统中,将空闲块分成假设干组,每100个空闲块为一组,每组的第一空闲块登记了下一组空闲块的物理盘块号和空闲块总数。

如果一个组的第一个空闲块号等于0,则有特殊的含义,意味着该组是最后一组,即无下一个空闲块。

分配空闲块的时候,从前往后分配,先从第一组开场分配,第一组空闲的100块分完了,才进入第二组。

释放空闲块的时候正好相反,从后往前分配,先将释放的空闲块放到第一组,第一组满了,在第一组前再开辟一组,之前的第一组变成第二组。

做课程设计时,指导教师给了我们很大帮助,发现了很多我们没有想到的问题,提了很多改进系统的意见。

课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,这次课程设计虽然很累,但我学到了不少东西,对软件的设计过程和法有了更深入的了解,培养了我们的团队精神,锻炼了我们的沟通和表达能力。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能真正为社会效劳,从而提高自己的实际动手能力和独立思考的能力。

4.4个人总结霖

通过本学期的操作系统课程进程控制、请求分页存储器管理、设备管理、文件管理、进程调度等实验,模拟操作系统原理的实现,使我能更深刻地领会操作系统工作原理和操作系统实现法,并提高程序设计能力,虽然实验的过程中遇到一些困难,但及时发现仔细研究解决使我更能深刻的理解所学知识。

实验程序仍有诸多缺乏之处,但实验过程中收获颇多,也为以后的实验积累了经历,这也更能促使我进步。

在UNI*系统中,将空闲块分成假设干组,每100个空闲块为一组,每组的第一空闲块登记了下一组空闲块的物理盘块号和空闲块总数。

如果一个组的第一个空闲块号等于0,则有特殊的含义,意味着该组是最后一组,即无下一个空闲块。

分配空闲块的时候,从前往后分配,先从第一组开场分配,第一组空闲的100块分完了,才进入第二组。

释放空闲块的时候正好相反,从后往前分配,先将释放的空闲块放到第一组,第一组满了,在第一组前再开辟一组,之前的第一组变成第二组。

通过本次课程设计,让我对UNI*操作系统有了一定的了解,特别是掌握了一些根本的UNI*操作指令,对核的修改,调用,以及实现文件管理两面功能也加深了索引局部的认识,以前只是知道个原理性的东西,为接下来的UNI*学习打下了根底。

同时,也加深了对计算机操作系统这门课的局部知识点的理解。

也加强了我的调试能里,以及遇到问题能根本靠自己或上网检索的能力。

这个课设让我做使不则死板,后来遇到问题我不会非得按照那个貌似正确的步骤一步一步来做,而是会去想它的原理,用自己的法从本质上把问题解决。

这个课设既有趣又让我学到了不少东西,感教师的指导!

5.参考文献

"计算机操作系统"汤小丹电子科技大学

"操作系统课程设计"善平季江民大学

C/C++源代码:

*include

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1