主存储器空间的分配和回收实验报告.doc_第1页
主存储器空间的分配和回收实验报告.doc_第2页
主存储器空间的分配和回收实验报告.doc_第3页
主存储器空间的分配和回收实验报告.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、实验内容 主存储器空间的分配和回收。#include #include#define COUNT 512typedef struct NODEchar name;/名称float start;/起始位置float end;/大小int flag;/是否分配的标志NODE;NODE OSCOUNT;/数组int count;/被分成的块数统计int applyfree;float numb;char c;/先对数组进行初始化,使没有分配的名称为 Pvoid init()count=1;OS0.name =P;OS0.start =0;OS0.end =COUNT;OS0.flag =1;/对数组的插入操作void insert(int m,float st,float en)int i;count+;for(i=count;im+1;i-)OSi=OSi-1;OSm.start =st;OSm.end =en;/移动操作,即对数组的删除操作void move(int m)int i;for(i=m;icount-1;i+)OSi=OSi+1;count-;/如果相邻块都没有分配,则要合并到一起void rremove(int m,float st,float en)if(!OSm-1.flag &!OSm+1.flag )OS =P;OSm.flag =1;if(OSm-1.flag )OSm-1.end =OSm-1.end +en;move(m);if(OSm+1.flag )OSm.end =OSm.end +OSm+1.end ;OS =P;OSm.flag =1;move(m+1);/打印输出void show()int i;printf(名称标识起址长度状态n);for(i=0;icount;i+)if(OSi.flag )printf(P);elseprintf(%c,OS );printf(%d%1.0f%1.0f,i,OSi.start ,OSi.end );if(OSi.flag )printf(未分配n);elseprintf(已分配n);/从键盘输入数据void putin()printf(请输入申请或者释放的进程名称及资源数量:n);rewind(stdin);scanf(%c,&c);scanf(%d,&applyfree);scanf(%f,&numb);int apply()int i=0;int applyflag=0;int freeflag=0;if(applyfree)/提出申请资源while(!applyflag&i=numb&OSi.flag )if(OSi.end =numb)OS =c;OSi.flag =0;elseinsert(i+1,OSi.start +numb,OSi.end -numb);OSi+1.flag =1;OSi+1.name =P;OSi.start =OSi.start ;OS =c;OSi.end =numb;OSi.flag =0;applyflag=1;i+;if(applyflag)printf(申请成功!n);return 1;elseprintf(申请失败!没有足够大的空闲空间。n);return 0;else/提出释放资源while(!freeflag&inumb)insert(i+1,OSi.start +numb,OSi.end -numb);OSi+1.name =P;OSi+1.flag =0;OSi.end =numb;OSi.flag =1;if(OSi-1.flag )rremove(i,OSi.start ,OSi.end );elseprintf(释放失败,因为正使用的数量小于要求释放的数量。n);return 0;freeflag=1;i+;if(freeflag)printf(释放成功!n);return 1;elsepri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论