模拟实现用位示图法管理文件存储空间的分配与回收1(2)

2019-08-31 12:04

1.显示菜单函数

2. 置空位示图进行初始化

void zero_wst(){ int i;

for(i=0;i<256;i++)

WST[i]=0; }

3. 位示图输出显示将初始化或者申请或者回收后的位示图进行显示 void print_wst(int WST[256]){}

4. 已经申请空间的作业相关情况输出显示包括:作业名、申请空间的开始位置和截至位置

void print_office(work *w){} void menu(){}

5. 位示图操作的初始化包括:空闲区链表的初始化、作业链表的初始化

work *start(){}

6. 申请空间操作

work *request(work *w,int WST[256]){}

7. 回收空间操作

work *delect(work *w,int WET[]){} 8. 主函数 void main(){

int flag; work *w; zero_wst(); w=start(); while(1){

system(\print_wst(WST); print_office(w);

3

} }

menu(); cin>>flag; switch(flag){

case 1:w=request(w,WST);break; case 2:w=delect(w,WST);break; case 3:exit(0);

default:printf(\输入错误,请重新输入!\\n\}

4

第三章算法设计描述

3.1主要函数和函数的流程图

3.1.1. 盘块的分配算法流程图

Request()分配 输入文件名,和块数. strcmp(s->office,u->office)==0该文件是否已存在 是

r->free_number>=s->office_number能否查找到一个足够的空闲区域 是

当前空盘区块数是否分配完 将该作业结点插入作业链表表尾,,从该区域分配出对应大小空间,修改位示图 否 是

图3-1 盘块的分配

返回 释放该空闲区结点,把修改work里面两个首地址

5

3.2.2.盘块的回收算法流程图

能否找到对应文件 输入要查找的文件名,查找 Delect()回收

是 否 把该单元块数加入前一个空闲区结点 要回收的单元后为要回收的单元前为空

是 否

要回收的单元前后都空 把空闲区起始地址该为当前开始盘块空闲区盘块增加

结点空盘起始地址改为前一个,空闲区盘块增加 否 要回收的单元自成空盘区结点

返回 图3-2 盘块的回收算法流程图

6

修改位示图对应盘块的的内容,删除该文件结点. 修改work里面两个首地址 把该结点插入空闲区链表 第四章 开发过程描述

4.1 程序源码

由于源码较长,单独附加在后面,见附录1-程序源码

4.2 程序中遇到的错误及错误原因

编程中几乎没有遇到什么大的问题,只有一些语法中的小错误,编译器就解决完毕。

4.3测试程序功能所用的数据和测试方法

此次测试使用黑盒测试方法,目的是测试功能是否跟预期一样

预期输出 输出请输入文件名和块数 实际输出 输出请输入文件名和块数 输入文件名和块数 输入2选择回收

显示已有文件名:块数 输出请输入文件名 显示已有文件名:块数 输出请输入文件名 测试用例 输入1选择分配功能 7


模拟实现用位示图法管理文件存储空间的分配与回收1(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:土木工程施工试题库及答案2011

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: