可变分区分配与回收——采用最坏算法,操作系统课程设计(2)

2019-03-28 19:47

哈尔滨理工大学课程设计报告

系统框架图:如图2

存储器动态分区分配模拟首次适应算法 最佳适应算法 最坏适应算法 图2 退出系统 分配内存 回收内存 返回上一级菜单

2、数据结构

(1)定义的全局变量:

#define SIZE 1000 // 内存初始大小 #define MINSIZE 5 // 碎片最小值

enum STATE { Free, Busy }//枚举类型,记录分区是否空闲的状态量 (2)定义的结构体:struct subAreaNode。记录分区的主要数据。 (3)函数

1)void intSubArea():分配初始分区内存。

2)int firstFit(int taskId, int size):首次适应算法实现函数,taskId为作业名,size为作业申请的内存大小。

哈尔滨理工大学课程设计报告

3)int bestFit(int taskId, int size):最佳适应算法实现函数,taskId为作业名,size为作业申请的内存大小。

4)int worstFit(int taskId, int size):最坏适应算法实现函数,taskId为作业名,size为作业申请的内存大小。

5)int freeSubArea(int taskId):内存回收函数,该函数主要用于实现内存的回收,根据回收内存的位置对分区进行合并操作。其中taskId为所需回收内存的作业号。

6)void showSubArea():显示空闲分区链情况。包括起始地址 ,空间大小 。工作状态 。作业号。

7)int main():主函数,主要用于显示操作界面,调用各个子函数等功能。

3、主要功能的流程图

(1)首次适应算法First_fit(int,int); 流程图(图3)

哈尔滨理工大学课程设计报告

开始 p = subHead.nxt,从链表的第一个节点开始寻找 Y p是否为空 N N p是否空闲,p->size大小是否满足作业需求 Y p->size与作业需求大小之差是否小于等于内存碎片 Y p中内存大小全部分配给作业 N 分割分区p,并把剩余内存存入新的执行完毕 结束 图3

哈尔滨理工大学课程设计报告

(2)最佳适应算法Best_fit(int,int); 流程图(图4)

哈尔滨理工大学课程设计报告

开始 subAreaNode*p= Y P是否N P是否满足最佳分配空间 N p=p-Y tar=p Y tarN 为tar->size-size是否小于等于内存碎片 N 切割tar,分配给作业,并把剩余内存重新链入链Y tar全部分配给作业 结束 图4


可变分区分配与回收——采用最坏算法,操作系统课程设计(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:司法考试《刑法》知识点:破坏社会主义市场经济秩序罪每日一练(2

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

马上注册会员

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