1 / 32
文档名称:

操作系统实验报告.doc

格式:doc   大小:299KB   页数:32页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

操作系统实验报告.doc

上传人:飞龙在天 2021/8/19 文件大小:299 KB

下载得到文件列表

操作系统实验报告.doc

相关文档

文档介绍

文档介绍:操作系统实验报告
操作系统课程设计
28
郑州航空工业管理学院
计算机科学与应用系
课程设计报告
操作系统原理
姓名
学号
指导教师
专业
计算机科学与技术S
日期
2014年6月5日
成 绩
题目
动态分区分配算法的模拟






操作系统课程设计
1
郑州航空工业管理学院
目 录
1 题目简述 2
2 需求分析 2
2
2
3
3
3
3 概要设计与详细设计 3
3
5
4 编码与实现 10
10
17
5 课程设计总结 20
参考文献 21
附录 22
操作系统课程设计
2
郑州航空工业管理学院
动态分区分配算法的模拟
1 题目简述
动态分区分配是根据进程的实际需要,动态地为之分配内存空间。在实现可变分区分配时,将涉及到分区分配中所用到的数据结构、分配算法和分区的分配与回收操作。常用的数据结构有空闲分区表和空闲分区链两种,分区分配算法主要有首次适应算法、最佳适应算法、最坏适应算法等。
本次试验通过C语言进行编程调试并运行,形象地表现出动态分区分配方式,直观地展示了首次适应算法、最佳适应算法、最坏适应算法对内存的释放和回收方式之间的区别。加深了我对三种算法优缺点的理解,帮助我了解一些数据结构和分配算法,进一步加深我对动态分区存储器管理方式及其实现过程的理解。主要问题在于,如何解决三种算法对内存的释放和回收空间的表示。
动态分区分配又称为可变分区分配,这种分配方式并不是事先将主存划分成一块块的分区,而是在作业进入主存时,根据作业的大小动态地建立分区,并使分区的大小正好适适应作业的需要。因此,分区中的大小是可变的,分区的数目也是可变的。
2 需求分析

(1)首次适应算法(First_fit)
空闲分区链以地址递增的次序连接。在分配内存时,从联手开始顺序查找,直到找到一个大小能满足要求的空闲分区为止;然后再按照作业大小,从该分区划出一块内存空间给请求者,余下的空闲分区仍然留在空闲链中。若从链首直至链尾都找不到一个能满足要求的分区,则此次内存分配失败。
操作系统课程设计
4
郑州航空工业管理学院
(2)最佳适应算法(Best_fit)
它从全部空闲区中找出能满足作业要求的、且大小最小的空闲分区,这种方法能使碎片尽量小。为适应此算法,空闲分区表(空闲区链)中的空闲分区要按从小到大进行排序,自表头开始查找到第一个满足要求的自由分区分配。该算法保留大的空闲区,但造成许多小的空闲区。
(4)最坏适应算法(Worst_fit)
最坏适应分配算法要扫描整个空闲分区或链表,总是挑选一个最大的空闲分区分割给作业使用。该算法要求将所有的空闲分区按其容量从大到小的顺序形成一空闲分区链,查找时只要看第一个分区能否满足作业要求。优点是可使剩下的空闲分区不至于太小,产生碎片的几率最小,对中、小作业有利,同时该算法查找效率很高。
(4)内存回收(Free)
将释放作业所在内存块若改为空闲状态,删除其作业名,变为空。然后判断该空闲块是否与其他空闲块相连,若释放的内存空间与空闲块相连时,则合并其为同一个空闲链表,同时修改开始地址及分区大小。

(1)用C++语言实现程序设计;
(2)利用结构体进行相关信息处理;
(3)画出查询模块的流程图;
(4)界面友好(良好的人机互交),程序要有注释。

(1)掌握为实现多道程序并发执行,操作系统是如何通过作业调度选择作业进入内存;
(2)系统如何为进入内存的作业分配内存空间,实现多道作业同时驻留内存,就绪进程队列中的多个进程是如何以分式方式共享CPU,作业运行完成离开系统时,系统如何进行内存回收,计算进程周转时间;
操作系统课程设计
4
郑州航空工业管理学院
(3)画出所有模块的流程图;
(4)编写代码;
(5)程序分析与调试。

(1)WINDOWS2000/XP系统
(2)Microsoft Visual C++

C++语言
本程序采用C语言编写,在Windows下的Visual C++环境下编译,模拟可变分区存储管理方式的内存分配与回收。
3 概要设计与详细设计