操作系统第三次Word下载.docx
- 文档编号:21738760
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:9
- 大小:48.81KB
操作系统第三次Word下载.docx
《操作系统第三次Word下载.docx》由会员分享,可在线阅读,更多相关《操作系统第三次Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
机器编号
指导教师
实验时间
2016年6月14日
一、实验综述
1.实验目的及要求
理解动态异长存储分区资源管理,掌握所需数据结构和管理程序,了解各种存储分配算法的优点和缺点。
实验内容
分析UNIX最先适应(FF)存储分配算法,即map数据结构、存储分配函数malloc()和存储释放函数mfree(),找出与算法有关的成分。
修改上述与算法有关的成分,使其分别体现BF分配原则和WF分配原则。
2.实验设备、软件
PC,
Linux
二、实验过程(实验步骤、记录、数据、分析)
实验代码:
#ifdefHAVE_CONFIG_H
#include<
config.h>
#endif
stdio.h>
stdlib.h>
#defineMAPSIZE100
structmap//存储资源表结构
{
intm_addr;
intm_size;
};
structmapmap[MAPSIZE];
//存储资源表
//BF存储分配函数
intBF_malloc(structmap*mp,intsize)
registerinta,s;
registerstructmap*bp,*bpp;
for(bp=mp;
bp->
m_size;
bp++)
{
if(bp->
m_size>
=size)
a=bp->
m_addr;
s=bp->
for(bpp=bp;
bpp->
bpp++)
{//最佳适应
if(bpp->
=size&
&
m_size<
s)
a=bpp->
s=bpp->
bp=bpp;
}
m_addr+=size;
if((bp->
m_size-=size)==0)
do
bp++;
(bp-1)->
m_addr=bp->
while((bp-1)->
m_size=bp->
m_size);
return(a);
}
return(-1);
}
//WF存储分配函数
intWF_malloc(structmap*mp,intsize)
bpp++)
{//最坏适应
s)
bp->
m_size-=size)==0)
//存储释放函数
voidmfree(structmap*mp,intaa,intsize)
registerstructmap*bp;
registerintt;
registerinta;
a=aa;
m_addr<
=a&
m_size!
=0;
;
if(bp>
mp&
m_addr+(bp-1)->
m_size==a)
{//与前合并
m_size+=size;
if(a+size==bp->
m_addr)
{//前后合并
m_size+=bp->
while(bp->
m_size)
else
m_addr&
{//与后合并
m_addr-=size;
elseif(size)
{//无合并
t=bp->
m_addr=a;
a=t;
t=bp->
m_size=size;
while(size=t);
voidinit()
structmap*bp;
intaddr,size;
inti=0;
bp=map;
printf("
Pleaseinputstartingaddrandtotalsize:
"
);
scanf("
%d,%d"
&
addr,&
size);
m_addr=addr;
m_size=size;
(++bp)->
m_size=0;
//表尾
voidshow_map()
//system("
clear"
//清屏
\nCurrentmemorymap...\n"
Address\t\tSize\n"
while(bp->
m_size!
=0)
<
%d\t\t%d>
\n"
bp->
m_addr,bp->
main()
inta,s;
intc;
inti;
init();
pleaseinput,bforBF,wforWF:
%c"
c);
show_map();
//显示存储资源表
printf(“pleaseinput,bforBF,wforWF,eforexit);
Pleaseinput,1forrequest,2forrelease,0forexit:
%d"
switch(i)
case1:
Pleaseinputsize:
&
s);
if(c==’b’)//BF
a=BF_malloc(map,s))
else//WF
a=WF_malloc(map,s))
if(a==-1)
requestcan'
tbesatisfied\n"
else
allocmemoryataddress:
%d,size:
%d\n"
a,s);
break;
case2:
Pleaseinputaddrandsize:
a,&
mfree(map,a,s);
case0:
exit(0);
while
(1);
3.实验结果及分析
四.总结
通过这次的实验,基本理解操作系统动态不等
长存储资源分配算法,基本完成实验的要求。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 第三次