操作系统课程设计 伙伴系统

发布 2022-10-05 12:56:28 阅读 8843

哈尔滨理工大学。

课程设计。操作系统)

题目伙伴系统

班级: 计算机科学与技术计15-5班。

姓名 指导教师:

系主任: 2017 年 09 月 01 日。

5.设计结论和心得18

1. 题目分析。

linux中内存分配的伙伴堆算法模拟。

1)模拟内存实时情况。

2)实现buddyheap算法。

3)通过键盘输入随机产生的申请和释放操作。

4)每次申请或释放都显示实时的内存分配的对比图

利用数组来实现伙伴系统算法的3种功能,定义一个空闲分区数组和已分配分区数组,这2个数组都为2维数组,分别记录空闲分区块和已分配分区块的大小和内存地址。这样,在实现伙伴系统算法的3种功能就转化为对数组的操作。

分配内存:修改空闲分区数组,模拟按照伙伴系统算法思想划分合适分区进行分配,然后添加到已分配分区数组。

**内存:修改空闲分区数组,模拟按照伙伴系统算法思想**内存,然后从已分配分区数组中删除该内存块。

输出内存使用情况:输出空闲分区数组和已分配分区数组。

2. 数据结构。

模拟伙伴堆算法的问题中涉及的数据结构包括申请内存的大小,名字(为了直观表示),需要释放的内存的首地址,当前占用的内存数目,大小,每块内存起止地址,名字。

为了清晰实现伙伴算法的模拟,我们在该项目的实现模拟的是1024大小的存储空间,我们在程序中用伪**表示如下:

* 全局变量的声明 */

var buddy = new array("2","4","8","16","32","64","128","256","512","1024");分区大小 2的k次幂。

var free1 = new array("0","0","0","0","0","0","0","0","0","1");空闲分区的个数初始内存大小1024

var use =new array(100); 已分配分区表最多为100个进程分配记录已分配分区大小,内存地址。

var str = new array(100);

for (var per = 0; per <=100; per++)

use[per] =new array(2);

var free_addr = new array(10); 空闲分区的首地址 [i][j]表示2的i次方大小的空闲分区的第j个分区的首地址。

for (var per = 0; per <=10; per++)

free_addr[per] =new array(50);

free_addr[9][0] =0;

var maxsize=9; /最大空闲分区初始为1024

var usenum=0; /进程数初始为0

为了实现这些数据结构,用j**ascript语言定义功能函数如下:

function applyin();申请内存函数 */

function releaseout()/释放内存函数 */

function show()/显示内存占用和剩余情况 */

function shutwin()/关闭 */

function reset()/刷新 */

3. 流程图。

图1 前导界面流程图。

图2 演示界面流程图。

图3 申请内存流程图。

图4 释放内存流程图。

4. 实现技术。

为实现上述设计,采用web语言,sublime text3开发环境。具体采用的技术如下:

1)html实现整体元素显示。

2)css 实现样式的构建。

3)j**ascript / jquery 事件动态的获取。

4)chrome浏览器进行调试。

图5 整体界面-1

图6 整体界面-2

图7 前导界面动态效果。

设计网页样式以及功能,在html文件中添加标签,定义不同的类名,以便于css文件中样式的设定,为不同的标签对象设置不同的点击事件,设置点击事件响应。

图 8 添加图标段html文件。

图9 添加点击响应js文件。

点击**按钮,开始进入演示界面,如图10 所示。

图10 演示界面效果。

图11演示界面鼠标碰触动态效果。

通过设置伪类hover的样式当鼠标触碰该li 标签时,改变 li 样式。

图12 添加鼠标动态css文件。

1. 合法性检查。

判断输入申请的内存大小、名字不能为空,内存大小在0-1024之间,不合法弹出对应的提示框并将鼠标移动正确的位置,如图13, 图14,图15所示。

图13 没输入名字的提示框。

图14 没输入大小的提示框。

图15 输入不在范围的提示框。

图16 添加合法性检查js文件。

2. 申请内存。

正确的输入,提交后,会出现申请内存成功的提示框,如图17所示。

图17 申请成功的提示框。

在js文件中读入输入的申请内存的大小,和名字,在funtion apply-in 函数中,首先确定分配内存的大小,确定分配的起止地址,更新此时内存状况和此时能过最大存储的空间如图18所示。

图 18 添加申请内存的js文件。

如果此时没有要求申请的内存空间可以分配,则提示要求先释放内存,才能能过申请,如图19所示。

图19 空间不够的提示框。

图20 添加是否可以分配检查js文件。

1 .合法性检测。

图21 释放首地址为空的提示框。

图22 释放首地址错误的提示框。

图23 释放首地址检查的js文件。

2. 释放内存。

正确输入后,在js 中调用 function release-out() 函数如图24所示,执行寻找是否否能够有伙伴空闲能过合并,释放该段内存,更新此时内存状况和此时能够存储最大的空间,提示释放内存成功如图25所示。

图24 添加释放内存的js文件。

图25 释放内存成功的提示框。

图26 查看内存使用界面。

当点击查看内存占用情况按钮时,js文件调用function check() 函数,形成一个背景颜色较深的遮罩层,在遮罩层动态画出此时内存使用情况的**,如图27所示。

操作系统课程设计

课程设计 河北大学工商学院。装。订。线。操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专 操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专业计算机类 学号 姓名。指导教师。年 6 月 24 日。设备管理 2 2.1设计任务2 2.2设计要求...

操作系统课程设计

银行家算法模拟。系别 班级 组员 银行家算法模拟。1.课程设计目的。通过本次课程设计,加深对最经典的避免死锁的银行家算法的理解,掌握死锁形成必要条件 安全状态等概念的理解,通过用c语言编程模拟该算法,并在windows平台上实现,更好地掌握操作系统的原理及实现方法。2.任务及要求。设n为系统进程的个...

操作系统课程设计

学生实习实训报告。实习类型 操作系统课程设计 学号 0901110005 学生姓名 田兴杰 指导教师 曹春梅 专业班级 信息安全技术0901班 院 部 电子信息系 2011年 1 月 7日。实习实训成绩评定表。目录。目录3 摘要4关键字4 1.1虚拟机简介5 1.1.1 一般意义的虚拟机5 1.1....