实验3内存管理 空闲分区表Word文档下载推荐.docx

上传人:b****4 文档编号:7321046 上传时间:2023-05-08 格式:DOCX 页数:17 大小:317.49KB
下载 相关 举报
实验3内存管理 空闲分区表Word文档下载推荐.docx_第1页
第1页 / 共17页
实验3内存管理 空闲分区表Word文档下载推荐.docx_第2页
第2页 / 共17页
实验3内存管理 空闲分区表Word文档下载推荐.docx_第3页
第3页 / 共17页
实验3内存管理 空闲分区表Word文档下载推荐.docx_第4页
第4页 / 共17页
实验3内存管理 空闲分区表Word文档下载推荐.docx_第5页
第5页 / 共17页
实验3内存管理 空闲分区表Word文档下载推荐.docx_第6页
第6页 / 共17页
实验3内存管理 空闲分区表Word文档下载推荐.docx_第7页
第7页 / 共17页
实验3内存管理 空闲分区表Word文档下载推荐.docx_第8页
第8页 / 共17页
实验3内存管理 空闲分区表Word文档下载推荐.docx_第9页
第9页 / 共17页
实验3内存管理 空闲分区表Word文档下载推荐.docx_第10页
第10页 / 共17页
实验3内存管理 空闲分区表Word文档下载推荐.docx_第11页
第11页 / 共17页
实验3内存管理 空闲分区表Word文档下载推荐.docx_第12页
第12页 / 共17页
实验3内存管理 空闲分区表Word文档下载推荐.docx_第13页
第13页 / 共17页
实验3内存管理 空闲分区表Word文档下载推荐.docx_第14页
第14页 / 共17页
实验3内存管理 空闲分区表Word文档下载推荐.docx_第15页
第15页 / 共17页
实验3内存管理 空闲分区表Word文档下载推荐.docx_第16页
第16页 / 共17页
实验3内存管理 空闲分区表Word文档下载推荐.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验3内存管理 空闲分区表Word文档下载推荐.docx

《实验3内存管理 空闲分区表Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验3内存管理 空闲分区表Word文档下载推荐.docx(17页珍藏版)》请在冰点文库上搜索。

实验3内存管理 空闲分区表Word文档下载推荐.docx

【2】创建空闲分区表

【3】为作业4申请空闲分区

【4】回收作业2、3的申请量

【5】打印作业完成情况

【6】回收作业1、4的申请量

【7】打印作业完成情况

3、打印一份源程序并附上注释。

#include<

stdio.h>

#defineNUM10//表单长度

voidshowallwork(work*w){//展示所有作业情况

printf("

以下是所有作业情况:

\n"

);

----------------------------------\n"

作业号所需空间大小起始地址状态\n"

for(inti=0;

i<

4;

i++)

{

printf("

%4d%8dk%8dk%6c\n"

w[i].id,w[i].size,w[i].from,w[i].state);

}

《r表示就绪状态,d表示正在执行,o表示完成》"

}

voidInit_work(work*w){//初始化作业

请输入作业号所需空间起始地址(0表示地址未分配):

\n"

for(inti=0;

i<

4;

"

scanf("

%d%dk%dk"

&

w[i].id,&

w[i].size,&

w[i].from);

if(w[i].from)

w[i].state='

d'

;

else

r'

------------------------作业《%d》已经创建\n"

w[i].id);

showallwork(w);

初始化作业完成\n"

voidInit_forms(form*f){//初始化表单

请输入起址长度:

for(inti=0,j=1;

i<

NUM;

if(j)

{

printf("

表%d\n"

i+1);

scanf("

%dk%dk"

f[i].startaddress,&

f[i].size);

f[i].state='

继续请按序号,完成请按0\n"

%d"

j);

请输入起址长度\n"

}

f[i].startaddress=10000;

f[i].size=0;

e'

voidsort_forms1(form*f){//按地址大小排序表单

formtemp;

for(inti=0;

NUM;

i++)

for(intj=0;

j<

NUM-i-1;

j++)

if(f[j].startaddress>

f[j+1].startaddress)

{

temp=f[j];

f[j]=f[j+1];

f[j+1]=temp;

}

voidsort_forms2(form*f){//按空间大小排序表单

if(f[j].size>

f[j+1].size)

voidshowallforms(form*f){//展示所有空表

sort_forms1(f);

以下是空闲分区表状态:

--------------------------------\n"

序号起址长度状态\n"

for(inti=0;

NUM&

&

f[i].state;

if(f[i].size)

%3d%8dk%8dk%6c\n"

i+1,f[i].startaddress,f[i].size,f[i].state);

《r表示未分配,e表示空表目显示》"

formadd_empty_form(){//在末尾加空表单

formf;

f.startaddress=10000;

f.size=0;

f.state='

returnf;

voidmerge(form*f){//合并相邻的空表单

for(inti=0;

i<

if(f[i].startaddress+f[i].size==f[i+1].startaddress&

f[i+1].size!

=0)

f[i].size=f[i].size+f[i+1].size;

for(intj=i+1;

j<

NUM-1;

f[NUM-1]=add_empty_form();

i--;

成功合并空表单\n"

voidAdd_form(form*f,work*w){//作业完成,归还空间,创建新的空闲分区

请输入完成的作业序号:

"

intn;

scanf("

n);

for(intj=0;

j<

4;

if(w[j].id==n)

temp.startaddress=w[j].from;

temp.size=w[j].size;

temp.state='

w[j].from=-1;

w[j].state='

o'

break;

NUM;

if(f[i].startaddress>

temp.startaddress)

for(intj=NUM-1;

j>

i;

j--)

f[j]=f[j-1];

f[i]=temp;

merge(f);

showallforms(f);

作业完成,归还空间\n"

voidapply_form(form*f,work*w){//

sort_forms2(f);

inti;

请输入作业号"

i);

for(intk=0;

k<

4;

k++)

if(w[k].id==i)

w[k].state='

for(intj=0;

if(f[j].size>

w[k].size)

{

w[k].from=f[j].startaddress;

f[j].startaddress=f[j].startaddress+w[k].size;

f[j].size=f[j].size-w[k].size;

break;

}

作业申请空间完成\n"

voidmanu(){//菜单

内存管理系统\n"

--------------------------------------\n"

|---1、创建新的空表------------------|\n"

|---2、创建新的作业序列--------------|\n"

|---3、项目完成创建新的空闲分区------|\n"

|---4、申请空闲分区------------------|\n"

|---5、查看分区表--------------------|\n"

|---6、查看作业表--------------------|\n"

返回请按0请输入您的选择:

voidmain(){//主函数

manu();

intoption;

option);

while

(1)

{

switch(option)

case1:

formf[NUM];

Init_forms(f);

break;

case2:

workw[4];

Init_work(w);

case3:

Add_form(f,w);

case4:

apply_form(f,w);

case5:

case6:

break;

default:

manu();

if(!

(option==1||option==2||option==3||option==4||option==5||option==6))

4、打印程序运行时的初值和运行结果,要求如下:

【1】打印空闲区说明表的初始状态

【2】创建空闲分区

【3】作业4的申请量以及为作业4分配后的空闲区说明表状态;

【4】再依次打印作业3和作业2的归还量以及回收作业3,作业2所占主存后的空闲区说明表。

【5】打印作业情况

【6】回收作业1、4

【7】查看作业完成情况

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2