文档介绍:                                  12《操作系统》课程设计任务书指导教师姓名成晓静教研室信计课程设计题目磁盘存储空间的管理人数4学时1周设计目的、任务和要求(一)目的要求学生运用适当的编程语言,模拟UNIX系统中的成组链接法。从而对操作系统有更深入的认识与理解。(二)任务在UNIX系统中,以组为单位,用空闲块自己管理自己。要求用成组链接法实现磁盘空间的分配和回收(假定每组管理5个磁盘块)。建立一个文件目录,管理已经建立的文件的情况,按照给定的文件名进行空间回收(三)要求学生3个人组成一个小组,要求根据上述任务,通过查找资料,完成程序设计,并撰写分析报告,报告要体现工作过程、测试结果、分析等内容。设计的方法和步骤查阅资料,展开充分理论分析,在掌握算法原理后进行软件设计,完成下列任务:1、熟悉此次设计的目标,查阅相关资料;2、对算法理论进行剖析,论证算法实现的可行性;3、根据可行的算法设计,进行软件程序实现,并最终解决实际问题。设计工作计划本案例时间为5天,具体安排如下●熟悉课设目标,查阅相关资料:1天●算法理论进行剖析,论证算法实现的可行性:1天●根据可行的算法设计,进行软件程序实现:2天●对所设计的程序解决实际问题并分析,撰写分析报告:1天主要参考资料《计算机操作系统》汤小丹西安电子科技大学出版社《操作系统课程设计》李善平季江民浙江大学出版社教研室签字:年月日院签字:年月日       (1)空闲盘块好栈用来存放当前可用的一组空闲的盘块好(最多含100个号),以及栈中尚有的空闲盘块号数N。顺便指出,N还兼作栈顶指针用。(2)文件区中的所以空闲盘块被分成若干组,比如,将每100个盘块作为一组。假定盘上共有1000个盘块,每块大小为1kb,其中201~7999号盘块用于存放文件,即作为文件区,这样,该区的最末一组盘块号应为7901~7999;次末组为7801~7900….;第二组盘块号为301~400;第一组为201~300(3)(0)~(99)中。这样,由各组的第一个盘块可链成一条链。(4)将第一组的盘块总数和所有的盘块号记入空闲盘块号栈中,作为当前可供分配的空闲盘块号。(5)最末一组只有99个盘块,(1)~(99)中,(0)中则存放“0”,作为空闲盘块链的结束标志。,须调用盘块分配过程来完成。该过程首先检查空闲盘块号栈是否上锁,如未上锁,便从栈顶取出一空闲盘块号,将与之对应的盘块分配给用户,然后将栈顶指针下移一格。若该盘块号已是栈底,(0),这是当前栈中最后一格可分配的盘块号。由于在该盘块号所对应的盘块号记有下一组可用的盘块号,因此,须调用磁盘读过程,将栈底盘块号所对应的盘块的内容读入栈中,作为新的盘块号栈的内容,并把原栈底对应的盘块分配出去。然后,再分配一相应的缓冲区。最后,把栈中的空闲盘块数减1并返回。在系统回收空闲盘块时,须调用盘块回收过程进行回收。它是将回收盘块的盘块号记入空闲盘块号栈的顶部,并执行空闲盘块数加1操作。当栈中空闲盘块号数目已达100时,表示栈已满,便将现有栈中的100盘块号记入新回收的盘块中,再将其盘块号作为新栈底。、  ,9个一维数组分别表示9个空闲块,程序运行时,先将专用块A〔0〕复制到内存中,然后进行功能选择,分配时,查MA,从中找出空闲块号,当一组的空闲块只剩第一块时,应把该块中指出的下一组的空闲块数和块号复制专用块这,然后把该块分配给申请者,当一组的空闲块分配完后则把专用块内容(下一组链接情况)复制到内存,再为申请者分配。回收时,输入待回收的块号,查找该块是否已被分配,若未分配,退出,否则,当前组不满规定块数时,将归还块登记入该组,若当前组已满,则另建一新组,这时归还块作为新一组的第一块,应把内存中登记的一组链接情况MA复制到归还块中,然后在MA这重新登记一个新组。显示分组情况。(1)intMA;  /*空闲块数组*/(2)intA[9][6]={{5,1,2,3,4,5},{