- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统综合实验(终结版版).
操作系统综合实验
——位示图法管理文件存储空间的分配与回收
实验组成员
组长:葛加文
成员:周颜安 翟秋明 崔建奎
一、实验目的
磁盘初始化时把磁盘存储空间分成许多块(扇区),这些空间可以被多个用户共享。用户作业在执行期间常常要在磁盘上建立文件或把已经建立在磁盘上的文件删去,这就涉及到磁盘存储空间的分配和回收。一个文件存放到磁盘上,可以组织成顺序文件(连续文件)、链接文件(串联文件)、索引文件等,因此,磁盘存储空间的分配有两种方式,一种是分配连续的存储空间,另一种是可以分配不连续的存储空间。怎样有效地管理磁盘存储空间是操作系统应解决的一个重要问题,通过本实验使学生掌握磁盘存储空间的分配和回收算法。
二、实验内容
位示图法管理文件存储空间的分配与回收
(1) 为了提高磁盘存储空间的利用率,可在磁盘上组织成链接文件、索引文件,这类文件可以把逻辑记录存放在不连续的存储空间。为了表示哪些磁盘空间已被占用,哪些磁盘空间是空闲的,可用位示图来指出。位示图由若干字节构成,每一位与磁盘上的一块对应,“1”状态表示相应块已占用,“0”状态表示该块为空闲。位示图的形式与实习四中的位示图一样,但要注意,对于主存储空间和磁盘存储空间应该用不同的位示图来管理,绝不可混用。
(2) 申请一块磁盘空间时,由分配程序查位示图,找出一个为“0”的位,计算出这一位对应块的磁盘物理地址,且把该位置成占用状态“1”。为了程序编写方便,假设现在有一个盘组共8个柱面,每个柱面有两个磁道,每个磁道分成4个物理记录。那么,当在位示图中找到某一字节的某一位为“0”时,这个空闲块对应的磁盘物理地址为:
柱面号=字节号
磁道号=[ ]
物理记录号={ }
(3) 归还一块磁盘空间时,由回收程序根据归还的磁盘物理地址计算出归还块在位示图中的对应位,把该位置成“0”。按照(2)中假设的盘组,归还块在位示图中的位置计算如下:
字节号=柱面号
位数=磁道号?4+物理记录号
(4) 设计申请一块磁盘空间和归还一块磁盘空间的程序。要求能显示或打印程序运行前和运行后的位示图;分配时把分配到的磁盘空间的物理地址显示或打印出来,归还时把归还块对应于位示图的字节号和位数显示或打印出来。如下表所示:
柱面号 磁道号 物理记录号 0 0 1 0 0 2 0 1 0 0 1 3 1 0 0 1 1 2 表1-1
三、实验步骤
1、任务分析:
(1)给出位示图初态
(2)程序人口参数:
分配时:参数为文件名及需要分配的块数,
回收时:参数为文件名。
(3)回答信息:
分配时:能够分配时,给出文件名和分配的具体块号,否则,给出无法分配的信息。显示位示图。
回收时:给出回收的具体块号。显示位示图。
2、设计概要:
void ReadMe() 程序说明及注释
void Initbitmap() 位图初始化
void main() void allocate() 分配,自动
void reclaim() 回收,指定回收
void displaymap() 显示位示图
程序流程图如下所示:
详细设计
程序设计思路
本程序的设计题目是采用位示图法来模拟管理存储空间的分配与回收。而位示图采用一个二维数组来描述。为了程序的编写方便,编者将存储空间分为8个柱面,每个柱面2个磁道,每个磁道上有4个物理记录号。这样就形成了一个8*8的二维矩阵(这些参数都可在程序随时改动,为了修改简便,编者特地使用了宏定义来初始化这些参数)。在程序中既是bitmap[8][8]的二维数组。数组中的每一个元素只有俩个可选的真值,0或1。0表示该位所代表的物理记录号未被分配,是空闲的,而1表示此物理记录号已被分配,占用。
基于以上分析,就可以确定程序的设计思路。(详细流程见程序流程图)分配时,用户给出分配函数的参数,即要分配的文件名和要分配的物理块数,首先检查位示图中有没有满足剩余的物理块数足够与之分配,若有便在fbc表中建立一个fbc表项,建立相应的信息,如文件名、物理块数以及相应物理块数的参数信息,在位示图中找到相应的位置,连续的为之分配需要的物理块数;若没有足够的物理块数,则给出“空间不足,分配失败”的错误信息。回收时,根据用户给出的文件名,在fb
文档评论(0)