![可变分区存储管理方式的内存分配和回收_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-2/3/21743ca5-3f21-4e4f-8927-b53f3f8609ed/21743ca5-3f21-4e4f-8927-b53f3f8609ed1.gif)
![可变分区存储管理方式的内存分配和回收_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-2/3/21743ca5-3f21-4e4f-8927-b53f3f8609ed/21743ca5-3f21-4e4f-8927-b53f3f8609ed2.gif)
![可变分区存储管理方式的内存分配和回收_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-2/3/21743ca5-3f21-4e4f-8927-b53f3f8609ed/21743ca5-3f21-4e4f-8927-b53f3f8609ed3.gif)
![可变分区存储管理方式的内存分配和回收_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-2/3/21743ca5-3f21-4e4f-8927-b53f3f8609ed/21743ca5-3f21-4e4f-8927-b53f3f8609ed4.gif)
![可变分区存储管理方式的内存分配和回收_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-2/3/21743ca5-3f21-4e4f-8927-b53f3f8609ed/21743ca5-3f21-4e4f-8927-b53f3f8609ed5.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include<stdio.h>/定义输入/输出函数#include<iostream.h>/数据流输入/输出 #include<string.h>/字符串处理#include<iomanip.h>/参数化输入/输出const int MJ=10;/假定系统允许的最大作业数量为10typedef struct nodeint address;int length;char tag10;job;job freesMJ;int free_quantity;job occupysMJ;int occupy_quantity;int read()FIL
2、E *fp;char fn10;cout<<"请输入初始空闲表文件名:"cin>>fn;if(fp=fopen(fn,"r")=NULL) 其意义是在当前目录下打开文件file a,只允许进行“读”操作,并使fp指向该文件cout<<"错误,文件打不开,请检查文件名"<<endl;elsewhile(!feof(fp)fscanf(fp,"%d,%d",&freesfree_quantity.address,&freesfree_quantity.le
3、ngth);free_quantity+; fscanf(文件指针,格式字符串,输入表列);return 1;return 0;void sort()int i,j,p;for(i=0;i<free_quantity-1;i+)p=i;for(j=i+1;j<free_quantity;j+)if(freesj.address<freesp.address)p=j;if(p!=i)freesfree_quantity=freesi;freesi=freesp;freesp=freesfree_quantity;void view()int i;cout<<endl
4、<<"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm"<<endl;cout<<"输出空闲区表:n起始地址 分区长度 状态n"<<endl;for(i=0;i<free_quantity;i+)cout.setf(2);cout.width(12);cout<<freesi.address;cout.width(10);cout<<freesi.length;cout.width(8);cout<&l
5、t;freesi.tag<<endl;cout<<endl<<"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww"<<endl;cout<<"输出已分分区表:n起始地址 分区长度 占用作业名n"<<endl;for(i=0;i<occupy_quantity;i+)cout.setf(2);cout.width(12);cout<<occupysi.address;cout.width(10);
6、cout<<occupysi.length;cout.width(8);cout<<occupysi.tag<<endl;void ear()char job_name10;int job_length;int i,j,flag,t;cout<<"请输入分配内存的作业名和空间大小:"cin>>job_name;cin>>job_length;flag=0;for(i=0;i<free_quantity;i+) /寻找空间大于作业的空闲区登记项if(freesi.length>=job_len
7、gth)flag=1;if(flag=0) /未找到空闲区,返回cout<<endl<<"无可用的空闲区n"<<endl;elset=0;i=0;while(t=0)if(freesi.length>=job_length)/找到可用空闲区,开始分配t=1;i+;i-;occupysoccupy_quantity.address=freesi.address; /修改已分配区表 strcpy(occupysoccupy_quantity.tag,job_name);occupysoccupy_quantity.length=job_
8、length;occupy_quantity+;if(freesi.length>job_length)freesi.address+=job_length;freesi.length-=job_length;elsefor(j=i;j<free_quantity-1;j+)freesj=freesj+1;free_quantity-;cout<<"内存空间成功:)"<<endl; void reclaim()/回收作业所占的内存空间char job_name20;int i,j,flag,p=0;int address;int leng
9、th;/寻找已分分区表中对应的登记项cout<<"输入要回收分区的作业名:"cin>>job_name;flag=-1;for(i=0;i<occupy_quantity;i+)if(!strcmp(occupysi.tag,job_name)flag=i;address=occupysi.address;length=occupysi.length;if(flag=-1) /在已分分区表中找不到作业cout<<"没有这个作业名"<<endl;else/修改空闲区表,加入空闲表for(i=0;i<
10、;free_quantity;i+)if(freesi.address+freesi.length)=address)if(i+1)<free_quantity)&&(freesi+1.address=address+length)freesi.length=freesi.length+freesi+1.length+length;for(j=i+1;j<free_quantity;j+)freesj=freesj+1;free_quantity-;p=1;elsefreesi.length+=length;p=1;if(freesi.address=(addres
11、s+length)freesi.address=address;freesi.length+=length;p=1;if(p=0)freesfree_quantity.address=address;freesfree_quantity.length=length;free_quantity+;/删除分配表中的该作业for(i=flag;i<occupy_quantity;i+)occupysi=occupysi+1;occupy_quantity-;void main()int flag=0;int t=1;int chioce=0;int i;for(i=0;i<MJ;i+)f
12、reesi.address=-1;/空闲区表初始化freesi.length=0;strcpy(freesi.tag,"free");occupysi.address=-1;/已分分区表初始化occupysi.length=0;strcpy(occupysi.tag,"");free_quantity=0;occupy_quantity=0;flag=read();while(flag=1)sort();cout<<"选择功能项: (0-退出,1-分配内存,2-回收内存,3-显示内存)n"<<endl;cout<<&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2029年联合血管造影行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2024-2029年羊毛外套行业市场现状供需分析及市场深度研究发展前景及规划投资研究报告
- 2024-2029年网游行业市场发展前景及发展趋势与投资机会研究报告
- 2024-2029年绒毛膜促性腺激素行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2024-2029年纱线行业市场深度分析及发展策略研究报告
- 2024-2029年红外辐射测温仪行业市场发展分析及发展趋势前景预测报告
- 2024-2029年索具螺钉行业市场现状供需分析及市场深度研究发展前景及规划投资研究报告
- 2024-2029年精密食品温度计行业市场现状供需分析及市场深度研究发展前景及规划投资研究报告
- 自动多排钻相关行业投资规划报告
- 泌尿肛肠外科手术器械相关行业投资方案范本
- 混凝土硬路肩施工方案
- 2024年度保密知识教育考试附完整答案(全优)
- 美国文学概论智慧树知到期末考试答案章节答案2024年吉林师范大学
- 国家开放大学2024春《马克思主义基本原理-试卷A》大作业参考答案
- 幼儿园跳绳活动方案及总结大班
- 2024年吉林省安全生产知识竞赛考试题库(含答案)
- 主编控制器项目项目申请书
- 浙江省绍兴市2022-2023学年七年级下学期语文期末试卷(含答案)2
- (高清版)WST 408-2024 定量检验程序分析性能验证指南
- 两个甲方和乙方的合同范本
- DZT 0206-2020 矿产地质勘查规范 高岭土、叶蜡石、耐火粘土(正式版)
评论
0/150
提交评论