计算机科学与技术学院
《操作系统》综合试验报告
(2016/2017学年 第一学期)
学生姓名:
学生专业: 网络工程 学生班级: 网络班 学生学号: 2 指导教师:
2016年 12 月 12 日
计算机科学与技术学院
综合试验任务书
课程设计名称 课程设计题目 学生姓名 《操作系统》课程设计 模拟实现用位示图法管理文件存储空间的分配与回收 专业班级 网 学号 2 综合试验任务内容 [问题描述] 设计实现一个综合的应用程序。内容如下: (1)首先对位示图算法原理进行深刻的理解和掌握; (2)程序首先要给出位示图初态。分配时,参数为文件名及需要分配的块 数。回收时,参数为文件名。 (3)回答信息:分配时,能够分配时,给出文件名和分配的具体块号。 否则,给出无法分配的信息。显示位示图。 (4)回收时:给出回收的具体块号。显示位示图。 [基本要求] (1)理解文件存储空间的分配与回收的基本概念,掌握产生文件存储空间的分配与回收的几种方法,体会位示图算法是管理文件存储空间的分配与回收的一种行之有效的方法。 (2)通过编写程序实现位示图算法,进一步理解位示图算法的原理和执行过程,掌握位示图算法的描述和应用,进一步熟练掌握文件存储空间的分配与回收的方法。 [测试要求] 对每一个模块的功能进行黑盒测试,保证各个模块功能的正确性。 指导教师: 时 间: 年 月 5 日
目录
第一章 功能需求描述 .......................................... 1
1.1功能列表与说明 .................................................. 1
1.2 操作界面 ........................................................ 1 1.3 界面操作 ........................................................ 1
第二章 系统设计描述 .......................................... 2
2.1 任务分解说明 .................................................... 2 2.2主要数据结构设计说明 ............................................ 2 2.3主要函数接口说明 ................................................ 2
第三章算法设计描述 ........................................... 5
3.1主要函数和函数的流程图 .......................................... 5
3.1.1. 盘块的分配算法流程图 .............................................. 5
3.2.2.盘块的回收算法流程图 ............................................... 6
第四章 开发过程描述 .......................................... 7
4.1 程序源码 ........................................................ 7
4.2 程序中遇到的错误及错误原因 ...................................... 7 4.3测试程序功能所用的数据和测试方法 ................................ 7
第五章 设计心得体会 .......................................... 8 附录1 程序源代码 ............................................ 9
第一章 功能需求描述
1.1功能列表与说明
功能名称 分配文件 回收文件 退出 功能描述 文件分配 回收文件 退出程序 1.2 操作界面
文件的存取和回收 1.分配文件 2.回收文件 3.退出 请输入选项:
1.3 界面操作
如图可以很清楚的看到可以输入1 2 3 三个数分别对应 分配文件、回收文件、退出三种操作。
1
第二章 系统设计描述
2.1 任务分解说明
1. 位示图法系统初始化。 2 .位示图法分配与回收算法。
2.2主要数据结构设计说明
1.空闲区结构体定义
typedef struct node{
int start_location; //空闲区对象变量的开始位置 int free_number; //空闲区块数目
struct node*next; //指向下一个空闲区的指针 }free_link;
2. 申请空间作业结构体定义
typedef struct link{
char office[20]; //作业名
int begin_location; //作业申请空间后的开始位置 int office_number; struct link *next; }office;
3. 相关位示图操作的结构体定义
typedef struct {
free_link *p; //空间区链表指针 office *q; }work;
//作业申请空间区的数目
//指向下一个申请空闲区的作业指针
//作业链表指针
2.3主要函数接口说明
2