- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验五磁盘存储空间的分配与回收
磁盘存储空间的分配与回收
一.实验内容:
模拟实现磁盘空间的分配与回收.
二.实验目的:
磁盘格式化时,系统把磁盘存储空间分成许多磁道.每个磁道又分成若干个扇区(又叫做块).这些空间就是用来存放用户文件的.当用户的文件不再需要时,就应该删除.把一个文件存放到磁盘上时,可以组织成连续文件,链接文件,索引文件等.因此,磁盘空间的分配方法也有两种,一种是连续空间的分配;一种是不连续空间的分配(又叫动态分配).如何充分有效的利用磁盘空间,是操作系统应解决的重要课题之一.通过本实验,使学生对磁盘空间的分配与回收有一个较深入的理解.
三.实验题目:
1.用位示图管理磁盘空间,设计一个申请与申请与回收一个或几个磁盘块的分配与回收算法.
要求打印或显示程序运行前和运行后的位示图,以及分配和回收磁盘的物理过程.
提示:
磁盘的位示图用若干个字节构成,每一位对应一个磁盘块.”1表示占用,”0”表示空闲.为了简单,假定现有一个磁盘组,共40个柱面.每个柱面四个磁道,每个磁道又划分成4个物理记录.假定字长为16位,其位示图如下图所示:
位
字 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 0 1 2 3 4 5 6 7 8
申请一个磁盘块时,由分配程序查位示图,找出一个为0的位,并计算磁盘的物理地址(即求出它的柱面号,磁道号和扇区号).
由位示图计算磁盘的相对块号的公式如下:
相对块号=字号*16+位号
之后再将相对块号转换成磁盘的物理地址:
柱面号=相对块号/16的商,也即柱面号=字号
磁道号=(相对块号/16的余数)/4的商,也即(位号/4)的商
物理块号=(相对块号/16的余数)/4的余数,也即(位号/4)的余数(3)当释放一个相对物理块时,运行回收程序,计算该块在位示图中的位置,再把相应位置”0”.计算公式如下:
先由磁盘地址计算相对块号:
相对块号=柱面号*16+磁道号*4+物理块号
再计算字号和位号:
字号=相对块号/16的商,也即字号=柱面号
位号=磁道号*物理块数/每磁道+物理块号
(4)按照用户要求,申请分配一系列磁盘块,运行分配程序,完成分配.将分配相对块号返回用户,并将相对块号转换成磁盘绝对地址给以显示和系统各表和用户已分配的情况进行显示.
(5)分配框图如图:
(6)设计一个回收算法,将上述已分配的给用户的各盘块释放,并显示系统各表.
收获与体会:
通过进行操作系统的上机实验,我们从中可以更深刻的理解书本上的内容,以及操作系统中的一些最基本的原理.同时这也是对我们C语言的能力的一个锻炼和提高.在这几次上机实验中,我们还接触到了Linux系统,学会了该系统的最基本的使用方法,譬如挂载软盘,编译源程序等等,这也为我们以后更好的掌握该系统打下了很好的基础.但是从这次实践中,我们也感觉到自己在很多方面还存在不足,比如对某些函数的应用还不熟练,希望以后能多练习多实践,这样才能真正提高自己对课程的理解.
附源程序:
/*本程序顺序分配空间,所以运行后开始几个数字都是1*/
#includestring.h
#includestdio.h
#define ROW 12
#define COLUMN 16
#define AREA 192
int a[ROW][COLUMN]={1,1,1,0,0,1,0,1,1,1,0,0,1,0,0,0,
1,0,1,0,0,0,1,0,1,0,1,0,1,1,1,1,
1,1,1,0,1,0,1,1,0,1,0,0,1,1,0,1,
0,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,
1,0,1,1,0,1,0,1,0,1,1,1,1,0,1,0,
1,0,0,1,1,0,1,0,0,0,1,0,1,0,1,0,
0,1,0,1,1,1,0,1,0,0,0,1,0,1,0,1,
0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,
1,0,1,1,1,0,1,1,1,0,0,1,0,0,0,0,
0,1,0,1,0,1,1,0,1,0,1,0,1,0,1,0,
1,1,0,0,1,0,1,1,0,0,0,1,0,1,0,0,
0,0,0,1,0,0,0,1,1,1,0,1,0,1,
文档评论(0)