os课程设计模拟内存分配算法mfc实现-毕业论文

os课程设计模拟内存分配算法mfc实现-毕业论文

ID:11872462

大小:280.88 KB

页数:27页

时间:2018-07-14

os课程设计模拟内存分配算法mfc实现-毕业论文_第1页
os课程设计模拟内存分配算法mfc实现-毕业论文_第2页
os课程设计模拟内存分配算法mfc实现-毕业论文_第3页
os课程设计模拟内存分配算法mfc实现-毕业论文_第4页
os课程设计模拟内存分配算法mfc实现-毕业论文_第5页
资源描述:

《os课程设计模拟内存分配算法mfc实现-毕业论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、课程设计报告设计题目:内存的连续分配算法班级:学号:姓名:指导老师:设计时间:摘要271、主要算法包括:固定分区分配、动态分区分配、伙伴算法、可重定位分区分配。2、内容要求:1)定义与算法相关的数据结构,如PCB,空闲分区表;2)至少实现两种以上分配算法,且用户可以选择在某次执行过程中使用何种算法;3)在使用动态分区分配或可重定位分区分配算法时必须实现紧凑和对换功能;4)动态分区分配和可重定位分区分配必选一个实现。本系统模拟了操作系统内存分配算法的实现,实现了固定分区分配和动态分区分配,以及可重定位分区

2、分配算法,采用PCB定义结构体来表示一个进程,定义了进程的名称和大小,进程内存起始地址和进程状态。内存分区表采用单链表来模拟实现。关键词:固定分区分配、动态分区分配、可重定位分区分配。目录271.概述……………………….42.课程设计任务及要求2.1设计任务………………………..42.2设计要求………………………..43.算法及数据结构3.1算法的总体思想(流程)………………………53.2PCB模块3.2.1功能(运算)……………………….53.2.2数据结构(存储结构)……………………….53.2.3

3、算法(实现)……………………….53.3进程队列模块3.3.1功能………………………63.3.2数据结构………………………63.3.3算法………………………64.程序设计与实现4.1程序流程图……………………..74.2程序说明(代码)4.3实验结果……………………..95.结论……………………..106.参考文献。……………………..107.收获、体会和建议。……………………..10一:概述27本系统模拟了操作系统内存分配算法的实现,实现了固定分区分配和动态分区分配,以及可重定位分区分配算法,采用PC

4、B定义结构体来表示一个进程,定义了进程的名称和大小,进程内存起始地址和进程状态。内存分区表采用单链表来模拟实现。固定分区实现就是将单链表的每个节点的大小设为固定大小,系统默认如果按固定分区分配的话,只能分成20个相等大小的分区,因此系统只能最多运行20个进程。动态分区的实现是根据进程所申请的内存大小来决定动态的有系统进行分配内存空间大小,因此分区表里的空闲分区个数是不定的,根据进程数和进程大小决定的。可重定位分区算法比动态分区算法增加了紧凑和进程对换的功能。二:课程设计任务及要求设计任务:使用C++MF

5、C实现模拟操作系统内存分配算法的实现,定义结构体数据结构表示进程,定义单链表表示内存分区表。设计要求:定义与算法相关的数据结构,如PCB,空闲分区表;至少实现两种以上分配算法,且用户可以选择在某次执行过程中使用何种算法;在使用动态分区分配或可重定位分区分配算法时必须实现紧凑和对换功能;动态分区分配和可重定位分区分配必选一个实现。三:算法及数据结构27#definefree0//表示进程状态空闲#definebusy1//表示进程状态忙typedefintStatus;//表示进程状态structPCB/

6、/表示进程PCB结构体{CStringname;//进程nameStatusstatus;//进程状态busyorfreeintlStartAddres;//进程起始地址intSize;//进程大小};structNode//表示组成链表的结点结构体{PCBdata;Node*next;};27classQueue//表示分区表的单链表类{public:Queue();~Queue(){}//voidShow();//内存区分配情况显示intGetLength();intGetAllFree();//获

7、得所有空闲分区总大小voidInitialMemory(int);//初始化内存区域大小voidFixedPartitonAlloc();//固定分区分配初始化空闲内存链表boolAllocProFixed(CString,int);//为进程分配内存(执行固定分区分配算法)boolAllocProDynamic(CString,int);//为进程分配内存(动态分区分配)boolFreeMemory(CString);//释放进程内存boolAllMerge(int);//内存紧凑分区算法boolSw

8、aping(int,PCB&);//进程对换算法Node*GetFirst();//返回头结点voidClear();//链表节点清除private:Node*first;};#include"StdAfx.h"#include"Queue.h"27Queue::Queue(){//默认头结点数据first=newNode;first->data.lStartAddres=0;first->data.name="";first->data.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。