#defineNULL0#defineLENsizeof(structAs"> #defineNULL0#defineLENsizeof(structAs" />
欢迎来到天天文库
浏览记录
ID:41161767
大小:30.50 KB
页数:4页
时间:2019-08-17
《模拟内存的分配与回收》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、模拟内存的分配与回收//可变分区式存储管理(最先适应算法)#include"stdlib.h"#include"conio.h"#include#defineNULL0#defineLENsizeof(structAssigntab)#defineDEBUG//数据结构的定义//已分配区表Assigtab,未分配区表Unassigntab,保存一栏的信息temp//标志sign为NULL时表示该栏为空//定义两个结构体指针Asshead(指向表Assigtab)和Unahead
2、(指向表Unassigntab)//用全局变量sucessedstructAssigntab{intnumber;//分区号intaddr;//起始地址intlength;//长度charsign[10];//标志structAssigntab*next;//指向下一个分区号};structAssigntab*Asshead,*Unahead,*waithead;structAssigntab*p,*q;structAssigntab*r1,*s1;intn=0;intn1=0;intn2=0;in
3、tsuccess=0;//主函数intmain(){charch;p=q=(structAssigntab*)malloc(LEN);r1=s1=(structAssigntab*)malloc(LEN);init();cout<<"请选择操作码:";cin>>ch;do{if(ch=='0')break;switch(ch){case'1':displayUna();break;//查询未分分配区表case'2':displayAss();break;//查询已分配区表case'3':displa
4、ywait();break;//查询等待作业队列case'4':fenpei();break;//装载一个作业case'5':huishou();break;//撤消一个作业}cout<<"请选择操作码:";cin>>ch;if(ch=='0')break;}while(1);return0;}//分页式存储管理#include#include#include#include"stdlib.h"#include"conio.h"#def
5、ineNULL0#defineLENsizeof(structpagetable)#defineLENJsizeof(structjobtable)//作业的页表结构体structpagetable{intpagenum;//页号intblocknum;//块号structpagetable*next;//指向下一项};//作业表结构体structjobtable{charjobname[10];//作业的名字intjobsize;//作业的大小structpagetable*head;//指向作业
6、的页表structjobtable*next;//指向下一个作业};intweitu[8][8];//位示图intweitusize=2;//内存每块为2Kintblank=64;//当前空闲的块号intsign=0;//内存分配错误标志intlist=0;//作业序列intn=0;//内存作业队列标志intn1=0;//等待作业队列标志structjobtable*r,*s;structjobtable*r1,*s1;structjobtable*jobhead;//作业表structjobtab
7、le*waithead;//等待作业表//主函数intmain(){charch;//初始化工作jobhead=NULL;waithead=NULL;initweitu();r=s=(structjobtable*)malloc(LENJ);r1=s1=(structjobtable*)malloc(LENJ);//菜单功能cout<<"**********分页式内存管理的模拟系统************"<8、"<<"查询内存中作业队列,请按:3"<<"查询某作业的页表,请按:4"<<"装载一个作业,请按:5"<<"撤消一个作业,请按:6"<<"退出系统,请按:0";cout<<"**********************************************"<>ch;do{if(ch=='0'){cout<<"你真的要退出系统吗?(Y/N):";cin>>ch;if(ch=='Y')
8、"<<"查询内存中作业队列,请按:3"<<"查询某作业的页表,请按:4"<<"装载一个作业,请按:5"<<"撤消一个作业,请按:6"<<"退出系统,请按:0";cout<<"**********************************************"<>ch;do{if(ch=='0'){cout<<"你真的要退出系统吗?(Y/N):";cin>>ch;if(ch=='Y')
此文档下载收益归作者所有