实验四动态分区分配算法实验报告及程序

实验四动态分区分配算法实验报告及程序
实验四动态分区分配算法实验报告及程序

实验报告四动态分区分配算法

班级学号姓名

一、实验目的

动态分区分配是根据进程的实际需要,动态地为之分配内存空间,而在分配时,须按照一定的分配算法,从空闲分区表或空闲分区链中选出一分区分配给该作业。在本实验中运用了四种分配算法,分别是1.首次适应算法,2.循环首次适应算法,3.最坏适应算法4.最佳适应算法。

二、实验环境

普通的计算机一台,编译环境Microsoft Visual C++ 6.0

三、算法思想

1.数据结构

(1)分区开始地址startaddress

(2)分区大小size

(3)分区状态state

2.功能介绍

(1)首次适应算法

在首次适应算法中,是从已建立好的数组中顺序查找,直至找到第一个大小能满足要求的空闲分区为止,然后再按照作业大小,从该分区中划出一块内存空间分配给请求者,余下的空间令开辟一块新的地址,大小为原来的大小减去作业大小,若查找结束都不能找到一个满足要求的分区,则此次内存分配失败。

(2)循环首次适应算法

该算法是由首次适应算法演变而成,在为进程分配内存空间时,不再是每次都从第一个空间开始查找,而是从上次找到的空闲分区的下一个空闲分区开始查找,直至找到第一个能满足要求的空闲分区,从中划出一块与请求大小相等的内存空间分配给作业,为实现本算法,设置一个全局变量f,来控制循环查找,当f%N==0时,f=0;若查找结束都不能找到一个满足要求的分区,则此次内存分配失败。

(3)最坏适应算法

最坏适应分配算法是每次为作业分配内存时,扫描整个数组,总是把能满足条件的,又是最大的空闲分区分配给作业。

(4)最佳适应算法

最坏适应分配算法是每次为作业分配内存时,扫描整个数组,总是把能满足条件的,又是最小的空闲分区分配给作业。

四、源程序

#include

#define L 10

typedef struct LNode

{int startaddress;

int size;

int state;

}LNode;

LNode

P[L]={{0,128,0},{200,256,0},{500,512,0},{1 500,1600,0},{5000,150,0}};

int N=5; int f=0;

void print()

{ int i;

printf("起始地址分区状态\n");

for(i=0;i

printf("%3d %8d %4d\n",P[i].startaddress, P[i].size,P[i].state);}

void First()

{ int i,l=0,m;

printf("\n输入请求分配分区的大小:");

scanf("%d",&m);

for(i=0;i

{ if(P[i].size

continue;

else if(P[i].size==m)

{ P[i].state=1;

l=1;

break; }

else

{

P[N].startaddress=P[i].startaddress+m;

P[N].size=P[i].size-m;

P[i].size=m;P[i].state=1;

l=1; N++;

break; } }

if(l==1||i

{ printf("地址成功分配\n\n");

printf("地址分配成功后的状态:\n");

print(); }

else

printf("没有可以分配的地址空间\n"); } void CirFirst()

{ int l=0,m,t=0;

printf("\n输入请求分配分区的大小:");

scanf("%d",&m);

while(f

{ if(P[f].size

{ f=f+1;

if(f%N==0)

{ f=0;t=1;}

continue; }

if(P[f].size==m && P[f].state!=1)

{ P[f].state=1;

l=1; f++;

break; }

if(P[f].size>m && P[f].state!=1)

{ P[N].startaddress=P[f].startaddress+m;

P[N].size=P[f].size-m;

P[f].size=m;

P[f].state=1;

l=1; N++;

f++; break; } }

if(l==1)

{ printf("地址成功分配\n\n");

printf("地址分配成功后的状态:\n");

print(); }

else

printf("没有可以分配的地址空间\n"); } void Worst()

{int i,t=0,l=0,m;

int a[L];

printf("\n输入请求分配分区的大小:");

scanf("%d",&m);

for(i=0;i

{ a[i]=0;

if(P[i].size

continue;

else if(P[i].size==m)

{ P[i].state=1;

l=1; break; }

else

a[i]=P[i].size-m; }

if(l==0)

{ for(i=0;i

{ if(a[i]!=0)

t=i; }

for(i=0;i

{ if(a[i]!=0 && a[i]>a[t])

t=i; }

P[N].startaddress=P[t].startaddress+m;

P[N].size=P[t].size-m;

P[t].size=m;P[t].state=1;

l=1; N++; }

if(l==1||i

{ printf("地址成功分配\n\n");

printf("地址分配成功后的状态:\n");

print(); }

else

printf("没有可以分配的地址空间\n"); } void Best()

{ int i,t=0,l=0,m;

int a[L];

printf("\n输入请求分配分区的大小:");

scanf("%d",&m);

for(i=0;i

{ a[i]=0;

if(P[i].size

continue;

else if(P[i].size==m)

{ P[i].state=1;

l=1;

break;

}

else

a[i]=P[i].size-m; }

if(l==0)

{ for(i=0;i

{ if(a[i]!=0)

t=i; }

for(i=0;i

{ if(a[i]!=0 && a[i]

t=i; }

P[N].startaddress=P[t].startaddress+m;

P[N].size=P[t].size-m;

P[t].size=m;P[t].state=1;

l=1; N++; }

if(l==1||i

{ printf("地址成功分配\n\n");

printf("地址分配成功后的状态:\n");

print(); }

else

printf("没有可以分配的地址空间\n"); } void main()

{ int k=0;

printf("动态分区分配算法:");

while(k!=5)

{printf("\n~~~~~~~~主菜单~~~~~~~~~");

printf("\n1、首次适应算法\n2、循环首次适应算法");

printf("\n3、最坏适应算法\n4、最佳适应算法");

printf("\n5、退出\n");

printf("请选择算法:");

scanf("%d",&k);

switch(k)

{ case 1:

printf("\n初始状态为:\n");

print();

First();

continue;

case 2:

printf("\n初始状态为:\n");

print();

CirFirst();

continue;

case 3:

printf("\n初始状态为:\n"); print();

Worst();

continue;

case 4:

printf("\n初始状态为:\n");

print();

Best();

continue;

case 5:

break;

default:printf("选择错误,请重新选择。\n");

} } }

五、运行结果

运行效果如下所示,首先列出主菜单,如图1所示,初始状态为已定义好的数组,首先采用首次适应算法,输入的分区大小为500,从图2可以看出,第一个满足条件的起始地址为500,分区大小为512,分配后,起始地址为500的状态设为1,将其余的分区令开辟空间存储。

(1)(2)

然后采用算法2即循环首次适应算法,在第一次的分配作业大小为1500,则系统

就会将地址为1500的分区进行分配,剩余分区令开辟空间,如图3所示;在第二次的

分配作业大小为200,依照算法可得,地址为200的分区复合要求,则将其分配给作业,

如图4所示。

(3) (4)

(5) (6)

在算法3中,采用的是最坏适应算法,设分配作业大小为20,由初始状态可知,分

区最大且没有被分配的起始地址为5000,大小为150,分配后的状态如图5所示。在算

法4中,采用的是最优适应算法,设分配大小为10,由初始状态可知,分区最小且没

有被分配的起始地址为1000,大小为12,分配后的状态如图6所示。

最后选择5,则结束程序的运行,效果如图7所示。

(7)

六、实验总结

在一开始老师布置这次的实验题目时,自己根本不知道要干什么,因为在上课时对动态分区分配这节内容不是太了解,所以在上机时不知道如何下手,后来,将本章内容反复的看了几遍之后,终于有了自己的思路。

在程序的编写过程中,我并没有按照书上所说的定义了双向链表来实现各种算法的执行,我只简单的运用了结构体数组,通过这种方法比较容易理解与编写,在这几个算法中,只有循环首次适应算法编写起来有点困难,因为涉及到了循环,而其他的算法只运行一遍就能够得出所要的效果,因此在程序中,我使用了一个全局变量来掌控循环以及记录上次运行到的地方,只要理解了算法的主要思想,编写程序就比较容易了。

另外,还有一点是在本实验中还有一个算法没有编写,即快速适应算法,这个算法必须要求使用链表,因为要根据其容量大小进行分类,将其单独设立一个空闲的分区链表。这是程序需要改进的地方,由于这次临近考试,暂时没有编写,在以后的时间中,一定会将此算法编写出来。

动态规划实验报告

华东师范大学计算机科学技术系上机实践报告 一、 内容与设计思想 1.对于以下5 个矩阵: M 1: 2?3, M 2: 3?6, M 3: 6?4, M 4: 4?2, M 5: 2?7 , (a) 找出这5个矩阵相乘需要的最小数量乘法的次数。 (b) 请给出一个括号化表达式,使在这种次序下达到乘法的次数最少。 输入: 第一行为正整数N,表示有N 组测试数据; 每组测试数据的第一行为n,表示有n 个矩阵,2<=n<=50; 接下去的n 行,每行有两个整数x 和y,表示第ni 个矩阵是x*y 的。 输出: 对行每组数据,输出一行,每行一个整数,最小的矩阵连乘积。 我们保证输出的结果在2^64之内。 基本思想: 对于n 个矩阵的连乘积,设其不同的计算次序为P(n)。 由于每种加括号方式都可以分解为两个子矩阵的加括号问题:(A1...Ak)(Ak+1…An)可以得到关于P(n)的递推式如下: 2.定义0/1/2背包问题为:}x p max{n 1i i i ∑=。限制条件为:c x w n 1i i i ≤∑=,且 n i 1},2,1,0{x i ≤≤∈。设f(i , y)表示剩余容量为y ,剩余物品为:i ,i+1,…,n 时的最优解的值。 1.)给出f(i , y)的递推表达式; 2.)请设计求解f(i , y)的算法,并实现你的算法; 3.)设W=[10,20,15,30],P=[6,10,15,18],c=48,请用你的算法求解。 输入: 第一行为一个正整数N ,表示有几组测试数据。 每组测试数据的第一行为两个整数n 和M ,0=-=∑-=

伏安法测电阻实验报告(学生)

伏安法测电阻实验报告 姓名 得分 实验名称: 伏安法测量定值电阻的阻值 一、实验目的:会用伏安法(即用电压表和电流表)测量定值电阻的阻值 二、实验原理: 三、实验器材:电源、 、 、 、待测定值电阻、开关各一个、导线若干 四、实验电路图: 五、实验步骤: 1) 开关,按照电路图连接电路; 2)接入电路的滑动变阻器阻值调到 ; 3)检查无误后,再闭合开关S ,改变滑动变阻器的阻值三次,分别读出对应 的电流表、电压表的示数,并填入下面的表格中; 4)断开开关,计算定值电阻R 阻值 ,并算出三次阻值的平均值填入表格; 5)先拆除... 电源两极导线,再拆除其它部分实验线路,整理好实验器材。 实验注意事项: ①连接电路时开关要处于断开位置; ②滑动变阻器的滑片要放在最大电阻值的位置; ③电压表选用0-3V 量程,电流表选用0-0.6A ; ④注意认清电压表、电流表的“+”、“-”接线柱,使电流“+”进“-‘”出; ⑤ 可以先连“主电路”即由电阻R 、电流表、电压表、滑动变阻器、单刀开关、电源组 成的串联电路,检查无误后再接电压表; ⑥注意分度值,正确读出电流表、电压表上的数值. 六、实验数据记录与处理: 电压(V ) 电流(A ) 电阻(Ω) 电阻平均值(Ω) 1 2 3 思考:1.图像斜率表示什么?? 2.斜率越大,表示什么? 3.斜率会随着电压增大而增大吗?说明什么问题? 4.如果将未知电阻换成小灯泡?计算电阻的大小还 能用多测几次取平均值的做法吗? 实验总结: 回顾自己在实验中的表现和收获,对于实验中存在的问题,要作为以后的教训. 物 理 量 序 号 =++=3321R R R R

完整word版,SPSS聚类分析实验报告.docx

SPSS 聚类分析实验报告 一.实验目的: 1、理解聚类分析的相关理论与应用 2、熟悉运用聚类分析对经济、社会问题进行分析、 3、熟练 SPSS软件相关操作 4、熟悉实验报告的书写 二.实验要求: 1、生成新变量总消费支出=各变量之和 2、对变量食品支出和居住支出进行配对样本T 检验,并说明检验结果 3、对各省的总消费支出做出条形图(用EXCEL做图也行) 4、利用 K-Mean法把 31 省分成 3 类 5、对聚类分析结果进行解释说明 6、完成实验报告 三.实验方法与步骤 准备工作:把实验所用数据从 Word文档复制到 Excel ,并进一步导入到 SPSS数据文件中。 分析:由于本实验中要对 31 个个案进行分类,数量比较大,用系统聚类法当然也 可以得出结果,但是相比之下在数据量较大时, K 均值聚类法更快速高效,而且准确性更高。 四、实验结果与数据处理: 1.用系统聚类法对所有个案进行聚类:

生成新变量总消费支出 =各变量之和如图所示: 2.对变量食品支出和居住支出进行配对样本 T 检验,如图所示:

得出结论: 3.对各省的总消费支出做出条形图,如图所示: 4.对聚类分析结果进行解释说明: K均值分析将这样的城市分为三类: 第一类北京、上海、广东 第二类除第一类第三类以外的 第三类天津、福建、内蒙古、辽宁、山东 第一类经济发展水平高,各项支出占总支出比重高,人民生活水平高。第二类城市位于中西部地区,经济落后,人民消费水平低。第三类城市位于中东部地区,经济发展较好。

初始聚类中心 聚类 123 食品支出7776.983052.575790.72衣着支出1794.061205.891281.25居住支出2166.221245.001606.27家庭设备及服务支出1800.19612.59972.24医疗保健支出1005.54774.89617.36交通和通信支出4076.461340.902196.88文化与娱乐服务支出3363.251229.681786.00其它商品和服务支出1217.70331.14499.30总消费支出23200.409792.6614750.02 迭代历史记录a 聚类中心内的更改 迭代123 11250.5921698.8651216.114 2416.86470.786173.731 3138.955 2.94924.819 446.318.123 3.546 5849.114319.1791362.411 6805.00415.199606.915 7161.001.72475.864 832.200.0349.483 9 6.440.002 1.185 10 1.2887.815E-5.148

动态规划算法的应用实验报告

实验二动态规划算法的应用 一、实验目的 1.掌握动态规划算法的基本思想,包括最优子结构性质和基于表格的最优值计算方法。 2.熟练掌握分阶段的和递推的最优子结构分析方法。 3.学会利用动态规划算法解决实际问题。 二、实验内容 1.问题描述: 题目一:数塔问题 给定一个数塔,其存储形式为如下所示的下三角矩阵。在此数塔中,从顶部出发,在每一节点可以选择向下走还是向右走,一直走到底层。请找出一条路径,使路径上的数值和最大。 输入样例(数塔): 9 12 15 10 6 8 2 18 9 5 19 7 10 4 16 输出样例(最大路径和): 59 三、算法设计 void main() { 申明一个5*5的二维数组; for(int i=0;i<5;i++) { for(int j=0;j<=i;j++) { 输入数组元素p[i][j]; }

} for(int k=0;k<5;k++) { for(int w=0;w<=k;w++) { 输出数组元素p[k][w]; } } for(int a=4;a>0;a--) { for(int s=0;s<=a;s++) { if(p[a][s]大于p[a][s+1]) p[a-1][s]等于p[a-1][s]加p[a][s]; else p[a-1][s] 等于p[a-1][s] 加p[a][s+1]; } } 输出p[0][0] }

四.程序调试及运行结果分析 五.实验总结 虽然这个实验比较简单,但是通过这次实验使我更加了解的动态规划法的好处和、,在解决问题时要尝试使用动态规划,这样就有可能得到一种即简单复杂性有不高的算法。

伏安法测电阻实验报告

科学探究的主要步骤 ※一、提出问题 ※二、猜想与假设 ※三、设计实验 (一) 实验原理 (二) 实验装置图 (三)实验器材和规格 (三)实验步骤 (四)记录数据和现象的表格 四、进行试验 ※五、分析与论证 ※六、评估 七、交流与合作 ※最后:总结实验注意事项 第一方面:电学主要实验

滑动变阻器复习提纲 1、原理——通过改变接入电路中电阻丝的长度,来改变电路中的电阻, 从而改变电路中的电流。 2、构造和铭牌意义——200Ω:滑动变阻器的最大阻值 1.5A:滑动变阻器允许通过的最大电流 3、结构示意图和电路符号——

4、变阻特点——能够连续改变接入电路中的电阻值。 5、接线方法—— 6、使用方法——与被调节电路(用电器)串联

7、作用——1、保护电路 2、改变所在电路中的电压分配或电流大小 8、注意事项——电流不能超过允许通过的最大电流值 9、在日常生活中的应用——可调亮度的电灯、可调热度的电锅、 收音机的音量调节旋钮?…… 实验题目:导体的电阻一定时,通过导体的电流和导体两端电压的关系(研究欧姆定 律实验新教材方案) 一、提出问题: 通过前面的学习,同学们已经定性的知道:加在导体两端的电压越高,通过导体的电流就会越大;导体的电阻越大,通过导体的电流越小。现在我们共同来探究:如果知道了一个导体的电阻值和它两端的电压值,能不能计算出通过它的电流呢?即通过导体的电流与导体两端的电压和导体的电阻有什么定量关系? 二、猜想与假设: 1、电阻不变,电压越大,电流越。(填“大”或“小”)

2、电压不变,电阻越大,电流越。(填“大”或“小”) 3、电流用I表示,电压用U表示,电阻用R表示,则三者之间可能会有什么关系? 三、设计实验: (一) 实验器材:干电池3节,10 Ω和5 Ω电阻各一个,电压表、电流表,滑动变阻器、 开关各一只,导线若干。 (二)实验电路图: 1、从研究电流与电压的关系时,能否能否保证电压成整数倍的变化,鉴

对数据进行聚类分析实验报告

对数据进行聚类分析实验报告 1.方法背景 聚类分析又称群分析,是多元统计分析中研究样本或指标的一种主要的分类方法,在古老的分类学中,人们主要靠经验和专业知识,很少利用数学方法。随着生产技术和科学的发展,分类越来越细,以致有时仅凭经验和专业知识还不能进行确切分类,于是数学这个有用的工具逐渐被引进到分类学中,形成了数值分类学。近些年来,数理统计的多元分析方法有了迅速的发展,多元分析的技术自然被引用到分类学中,于是从数值分类学中逐渐的分离出聚类分析这个新的分支。结合了更为强大的数学工具的聚类分析方法已经越来越多应用到经济分析和社会工作分析中。在经济领域中,主要是根据影响国家、地区及至单个企业的经济效益、发展水平的各项指标进行聚类分析,然后很据分析结果进行综合评价,以便得出科学的结论。 2.基本要求 用FAMALE.TXT、MALE.TXT和/或test2.txt的数据作为本次实验使用的样本集,利用C均值和分级聚类方法对样本集进行聚类分析,对结果进行分析,从而加深对所学内容的理解和感性认识。 3.实验要求 (1)把FAMALE.TXT和MALE.TXT两个文件合并成一个,同时采用身高和体重数据作为特征,设类别数为2,利用C均值聚类方法对数据进行聚类,并将聚类结果表示在二维平面上。尝试不同初始值对此数据集是否会造成不同的结果。 (2)对1中的数据利用C均值聚类方法分别进行两类、三类、四类、五类聚类,画出聚类指标与类别数之间的关系曲线,探讨是否可以确定出合理的类别数目。 (3)对1中的数据利用分级聚类方法进行聚类,分析聚类结果,体会分级聚类方法。。(4)利用test2.txt数据或者把test2.txt的数据与上述1中的数据合并在一起,重复上述实验,考察结果是否有变化,对观察到的现象进行分析,写出体会 4.实验步骤及流程图 根据以上实验要求,本次试验我们将分为两组:一、首先对FEMALE 与MALE中数据组成的样本按照上面要求用C均值法进行聚类分析,然后对FEMALE、MALE、test2中数据组成的样本集用C均值法进行聚类分析,比较二者结果。二、将上述两个样本用分即聚类方法进行聚类,观察聚类结果。并将两种聚类结果进行比较。 (1)、C均值算法思想

动态规划算法实验

一、实验目的 (2) 二、实验内容 (2) 三、实验步骤 (3) 四.程序调试及运行结果分析 (5) 附录:程序清单(程序过长,可附主要部分) (7)

实验四动态规划算法的应用 一、实验目的 1.掌握动态规划算法的基本思想,包括最优子结构性质和基于表格的最优值计算方法。 2.熟练掌握分阶段的和递推的最优子结构分析方法。 3.学会利用动态规划算法解决实际问题。 二、实验内容 1.问题描述: 题目一:数塔问题 给定一个数塔,其存储形式为如下所示的下三角矩阵。在此数塔中,从顶部出发,在每一节点可以选择向下走还是向右走,一直走到底层。请找出一条路径,使路径上的数值和最大。 输入样例(数塔): 9 12 15 10 6 8 2 18 9 5 19 7 10 4 16 输出样例(最大路径和): 59 题目二:最长单调递增子序列问题(课本184页例28) 设有由n个不相同的整数组成的数列,记为:a(1)、a(2)、……、a(n)且a(i)<>a(j) (i<>j) 若存在i1

题目三 0-1背包问题 给定n种物品和一个背包。物品i的重量是wi,其价值为vi,背包的容量为c,。问应如何选择装入背包中的物品,使得装入背包中物品的总价值最大? 在选择装入背包的物品时,对每种物品只有两个选择:装入或不装入,且不能重复装入。输入数据的第一行分别为:背包的容量c,,物品的个数n。接下来的n 行表示n个物品的重量和价值。输出为最大的总价值。 输入样例: 20 3 11 9 9 10 7 5 输出样例 19 2.数据输入:个人设定,由键盘输入。 3.要求: 1)上述题目任选一做。上机前,完成程序代码的编写 2)独立完成实验及实验报告 三、实验步骤 1.理解算法思想和问题要求; 2.编程实现题目要求; 3.上机输入和调试自己所编的程序; 4.验证分析实验结果; 5.整理出实验报告。

伏安法测电阻的实验报告

班级 姓名 座号 日期 一、实验题目:测量小灯泡的电阻 二、实验目的:用电压表、电流表测电灯工作时的电阻。 三、实验原理: 。 实验方法: 法 四、实验器材:学生电源、2.5V小 灯泡、开关、导线、测量灯泡两端 电压的 、测量通过灯泡 电流的 、改变灯泡两端电 压和通过其电流的 。 五、实验电路图: 六、实验步骤: (1)按电路图连接电路。 (注意:①开关应 。②注意电压表和电流表量程的选 择,“+”、“-”接线柱。③滑动变阻器采用“一上一下”接法,闭合开关前,滑片应位于 处。④爱护实验器材。) (2)检查无误后,闭合开关,移动滑动变阻器的滑片(注意:移动要慢),分别使灯泡暗红、微弱发光、正常发光(灯泡两端电压 2.5V),测出对应的电压值和电流值,填入下面的表格中。 (3)算出灯丝在不同亮度时的电阻。 七、实验数据记录表格:实验过程中,用手感受灯泡在不同亮度下的温度。随着灯泡亮度的增加,灯泡的温度 。 实验次数灯泡亮度电压U/V电流I/A电阻R/Ω1灯丝暗红1 2微弱发光 1.5 3正常发光 2.5

八、问题讨论:分析上表数据,你会发现:随着灯丝发光亮度的增加, 你测出的灯丝电阻 ,是什么原因使灯丝的电阻发生变化的 呢?答: 。 习题: 1、小组测量小灯泡的电阻,设计的电路图中有1处错误,请你将错误之处圈出来,并改正在原 图上。然后按照改正好的电路图,将没有完成的实物图连接好。 2、小刚同学测量2.5V小灯泡的电阻时,连接的电路如图: (1)检查电路,发现有一根导线连接错误,请你在连接错误的导线上 打“×”,若没有发现错误,闭合开关,会出现 现象.在图中补画出正确的连 线.闭合开关前,他应将滑动变阻器的滑片调到 端(填“A”或“B”); 实验次数123 电压U/V 2.0 2.5 2.8 电流I/A0.200.240.25 (2)小刚改正错误后,按正确的操作测得的数据如右表: 则第1次测得的小灯泡的电阻为 ;小灯泡正常发光时的 电阻为________Ω。 从表中计算出三次小灯泡的电阻不相等,你认为可能的原因是 . 3、下图是“伏安法测电阻”的实验电路图。 ⑴在图中的圆圈内填入电流表、电压表的符号; ⑵某同学规范操作,正确测量,测得3组实验数据分别是:U1 = 2.4V,I1 = 0.20A;U2 = 4.5V,I2 = 0.38A;U3 = 6.0V,I3 = 0.50A。请你在虚线框内为他设计一个表格,并把这些数据正确填写 在你设计的表格内。 P R0 R x S ⑶、根据表格中数据,请你算出待测电阻R x≈ 。 ⑷、分析表格中的数据,你能得出的一个结论是:

动态分区分配方式模拟

使用动态分区分配方式的模拟 1内容 (1)用C语言分别实现采用首次适应算法和最佳适应算法的动态分区分配过程alloc( )和回收过程free( )。其中,空闲分区通过空闲分区链来管理:在进行内存分配时,系统优先使用空闲区低端的空间。 (2)假设初始状态下,可用的内存空间为640KB,并有下列的请求序列:?作业1申请130KB。 ?作业2申请60KB。 ?作业3申请100KB。 ?作业2释放60KB。 ?作业4申请200KB。 ?作业3释放100KB。 ?作业1释放130KB。 ?作业5申请140KB。 ?作业6申请60KB。 ?作业7申请50KB。 ?作业6释放60KB。 请分别采用首次适应算法和最佳适应算法,对内存块进行分配和回收,要求每次分配和回收后显示出空闲分区链的情况。 2、示例程序: //Tittle: 使用动态分区算法的模拟 //author: XuYongzhen #include #include #include #include using namespace std; typedef struct DuLNode{ struct DuLNode *prior; struct DuLNode *next; int address; int jsize; int jnumber;//显示分区被那个作业占用,显示零则为空闲分区; }DuLNode,*DuLinkList ; void CreatList(DuLinkList &L){ DuLinkList p=(DuLinkList)malloc(sizeof(DuLNode)); L->next=p; L->jnumber=100;//为释放头结点后面的结点空间做统一化处理 p->prior=L; p->next=NULL; p->jsize=600; p->address=0; p->jnumber=0;

SPSS的聚类分析实验报告

实验报告 姓名学号专业班级 课程名 统计分析SPSS软件实验室 称 成绩指导教师 实验名称SPSS的聚类分析 1、实验目的: 掌握层次聚类分析和K-Means聚类分析的基本思想和具体,并能够对分析结果进行解释。 二、实验题目: 1.、现要对一个班同学的语文水平进行聚类,拟聚为三类,聚类依据是 两次语文考试的成绩。数据如下表所示。试用系统聚类法和K-均值法进 行聚类分析。 人名第一次语文成绩第二次语文成绩 张三9998 王五8889 赵四7980 小杨8978 蓝天7578 小白6065 李之7987 马武7576 郭炎6056 刘小100100

3、实验步骤(最好有截图): 1.先打开常用软件里的SPSS 11.5 for Windows.exe,在Variable View 中根据题目输入相关数据,如下图所示 2.在Data View中先输入数据,结果如下图所示 3. 首先试用系统聚类法对相关数据进行聚类 4. 选择菜单:【Analyze】→【Classify】→【Hierarchical Cluster】,然后选择参与层次聚类分析的变量两次语文考试的成绩到【Variable(s)】框中,再选择一个字符型变量“人名”作为标记变量到【Label Cases by】框中。

5.按“Plots”后进行选择 6.按“Statistics”后进行选择

7.按“Method”后进行选择

8.对第一个表格进行保存,并且命名为“语文水平.sav”,同时保存输出结果 4、实验结果及分析(最好有截图): 第一题: 1. 首先试用系统聚类法对相关数据进行聚类

动态规划算法分析实验报告

四、实验结果显示 五、实验总结 通过理解最优子结构的性质和子问题重叠性质,在VC++6.0环境下实现动态规划算法。动态规划算法是由单阶段的决策最优逐步转化为多阶段的决策最优,最后构造一个最优解。经过反复的调试操作,程序运行才得出结果。

六、附录 A #include #include #include #include #define MAX 100 #define n 12 #define k 5 int c[n][n]; void init(int cost[]) { int i,j; for(i=0;i<13;i++) { for(j=0;j<13;j++) { c[i][j]=MAX; } } c[1][2]=9; c[1][3]=7;c[1][4]=3; c[1][5]=2; c[2][6]=4; c[2][7]=2; c[2][8]=1; c[3][6]=2; c[3][7]=7; c[4][8]=11; c[5][7]=11;c[5][8]=8; c[6][9]=6; c[6][10]=5; c[7][9]=4; c[7][10]=3; c[8][10]=5;c[8][11]=6; c[9][12]=4; c[10][12]=2; c[11][12]=5; } void fgraph(int cost[],int path[],int d[]) { int r,j,temp,min; for(j=0;j<=n;j++) cost[j]=0; for(j=n-1;j>=1;j--) { temp=0; min=c[j][temp]+cost[temp]; for(r=0;r<=n;r++) { if(c[j][r]!=MAX)

伏安法测电阻实验报告

实验目的 ? 掌握伏安法测量电阻时,电流表内接和外接时的条件; ? 通过对二极管伏安特性的测试,了解非线性电阻,掌握二极管的非线性特点。 实验仪器 DH6102型伏安特性实验仪 本实验仪由直流稳压电源、可变电阻器、电流表、电压表及被测元件等五部分组成。 实验原理 一、概述 伏安法测电阻是电阻测量的基本方法之一。当一个元件两端加上电压时,元件内就有电流通过,电压和电流之间存在着一定的关系。该元件的电流随外加电压的变化曲线,称为伏安特性曲线。从伏安特性曲线所遵循的规律,可以得知该元件的导电特性。 二、线性电阻和非线性电阻 ? 线性电阻 非线性电阻 对线性电阻我们可以直接通过欧姆定律, 对非线性电阻我们不能应用欧姆定律但 确定出线性电阻阻值: 是可以考虑一小段特性曲线,确定出动态 R =U /I 电阻: R =△U /△I 三、实验线路的比较与选择 实验中使用的电路对电流表有内接和外接两种: 当电流表内阻为0,电压表内阻无穷大时,两种电路都不会带来附加测量误差。 被测电阻: 非理想状态(电流表内阻非0,电压表内阻非无穷大),如果用上述公式计算电阻值,无论采用哪一种联接都将产生接入(系统)误差。 1、内接法的接入误差和修正 采用这种方法测量,我们 得到的电阻实际是电流表 内阻和待测电阻之和,即: I U R x A x R R I U

需要对其进行修正,即: 当Rx >>RA ,采用电流表内接,接入误差较小。 2、外接法的接入误差和修正 当采用外接法时,我们得到的 实际上是电压表内阻和待测电阻 并联后的阻值,即: 需要对其进行修正,即: 当RV >>Rx ,采用电流表外接,接入误差较小。 四、二极管的伏安特性 二极管是一种具有单向导电的二端器件,具有按照外加电压的方向,使电流流动或不流动的性质。 对二极管施加正向电压时,则二极管中就有正向电流通过,随着电压的增加,开始时,电流随电压变化很缓慢,而当正向偏置电压增至接近二极管导通电压时(硅管为 0.7V 左右),电流急剧增加,二极管导通后,电压的少许变化,电流的变化都很大。 当施加反向电压时,二极管处于截止状态,其反向电压增 加至该二极管的击穿电压时,电流猛增,二极管被击穿,在二 极管使用中应竭力避免出现击穿观察,这很容易造成二极管的 永久性损坏。所以在做二极管反向特性时,应串入限流电阻, 以防因反向电流过大而损坏二极管,并注意不要超过二极管允 许的最大反向电压值。 二极管的应用 1、整流二极管:利用二极管单向导电性,可以把方向交替变化的交流电变换成单一方向的脉冲直流电。 2、开关元件:二极管在正向电压作用下电阻很小,处于导通状态,相当于一只接通的开关;在反向电压作用下,电阻很大,处于截止状态,如同一只断开的开关。利用二极管的开关特性,可以组成各种逻辑电路。 3、限幅元件:二极管正向导通后,它的正向压降基本保持不变(硅管为0.7V ,锗管为0.3V )。利用这一特性,在电路中作为限幅元件,可以把信号幅度限制在一定范围内。 4、继流二极管:在开关电源的电感中和继电器等感性负载中起继流作用。 5、检波二极管:在收音机中起检波作用。 6、变容二极管:使用于电视机的高频头中。 7、显示元件:用于VCD 、 DVD 、计算器等显示器上。 8、稳压二极管:反向击穿电压恒定,且击穿后可恢复,利用这一特性可以实现稳压电路。 实验内容(一) 1.测定线性电阻的伏安特性 ⑴选被测电阻器的电阻为1K Ω,电流表量程为20mA ,电压表量程为20V 。 ⑵电流表内接测试: 将电流表内接,调节直流稳压电源,取合适的电压变化值(如从2.000V 变化到14.000V ,变化步长取为2.000V ),将相应的电流值记录列表 。 A x R I U R V x R R U I 11 V x R U I R 11

聚类分析实验报告记录

聚类分析实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

《应用多元统计分析》 课程实验报告 实验名称:用聚类分析的方法研究山东省17个市的产业类型 的差异化 学生班级:统计0901 学生姓名:贾绪顺杜春霖陈维民张鹏 指导老师:____________张艳丽_____________________ 完成日期:2011.12.12

一,实验内容 根据聚类分析的原理,使用系统聚类分析的COMplete linkage (最长距离法)和WARD(离差平方和法),运用SPSS软件对2009年山东省17个城市生产总值的数据进行Q型聚类,将17个城市分为5类,发现不同城市产业类型的差异化,并解释造成这种差异的原因 二,实验目的 希望通过实验研究山东省17个市的生产总值的差异化,并分析造成这种差异化的原因,可以更深刻的掌握聚类分析的原理;进一步熟悉聚类分析问题的提出、解决问题的思路、方法和技能;达到能综合运用所学基本理论和专业知识;锻炼收集、整理、运用资料的能力的目的;希望能会调用SPSS软件聚类分析有关过程命令,并且可以对数据处理结果进行正确判断分析,作出综合评价。 三,实验方法背景与原理 3.1方法背景 聚类分析又称群分析,是多元统计分析中研究样本或指标的一种主要的分类方法,在古老的分类学中,人们主要靠经验和专业知识,很少利用数学方法。随着生产技术和科学的发展,分类越来越细,以致有时仅凭经验和专业知识还不能进行确切分类,于是数学这个有用的工具逐渐被引进到分类学中,形成了数值分类学。近些年来,数理统计的多元分析方法有了迅速的发展,多元分析的技术自然被引用到分类学中,于是从数值分类学中逐渐的分离出聚类分析这个新的分支。结合了更为强大的数学工具的聚类分析方法已经越来越多应用到经济分析和社会工作分析中。在经济领域中,主要是根据影响国家、地区及至单个企业的经济效益、发展水平的各项指标进行聚类分析,然后很据分析结果进行综合评价,以便得出科学的结论。 聚类分析源于很多领域,包括数学,计算机科学,统计学,生物学和经济学。在不同的应用领域,很多聚类技术都得到了发展,这些技术方法被用作描述数据,衡量不同数据源间的相似性,以及把数据源分类到不同的簇中。聚类分析的主要应用,在商业方面,最常见的就是客户群的细分问题,可以从客户人口特征、消费行为和喜好方面的数据,对客户进行特征分析,充分利用数据进行客户的客观分组,使诸多特征有相似性的客户能被分在同一组内,而不相似的客户能被区分到另一些组中。在生物方面,聚类分析可以用来对动植物进行分类,对基因进行分类等,从而获取对动植物种群固有结构的认识,对物种进行很好的分类。在电子商务方面,聚类分析在电子商务中网站建设数据挖掘中也是很重要的一个方面,通过对客户的浏览行为、浏览网站、客户的年龄等,对客户进行分析,找出不同客户的共同特征,通过共同特征对客户进行分类,可以帮助电子商户更好的了解他们的客户,并向客户提供更合适的服务。在保险行业上,根据产、寿险进行分类,不同类别的公司进行分类,对保险投资比例进行分类管理,从而提高保险投资的效率。 3.2实验的方法与原理 聚类分析是研究“物以类聚”的一种科学有效的方法。做聚类分析时,出于不同的目的和要求,可以选择不同的统计量和聚类方法。 聚类分析方法中最常用的一种是系统聚类法,其基本思想是:先将待聚类的n个样品(或者变量)各自看成一类,共有n类;然后按照选定的方法计算每两类之间的聚类统计量,即某种距离(或者相似系数),将关系最为密切的两类合为一类,其余不变,即得到n-1类;再按照前面的计算方法计算新类与其他类之间的距离(或相似系数),再将关系最为密切的

伏安法测电阻实验报告

伏安法测电阻实验报告 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

科学探究的主要步骤※一、提出问题 ※二、猜想与假设 ※三、设计实验 (一) 实验原理 (二) 实验装置图 (三)实验器材和规格 (三)实验步骤 (四)记录数据和现象的表格 四、进行试验 ※五、分析与论证 ※六、评估 七、交流与合作 ※最后:总结实验注意事项 第一方面:电学主要实验 滑动变阻器复习提纲 1、原理——通过改变接入电路中电阻丝的长度,来改变电路中的电阻,从而改 变电路中的电流。 2、构造和铭牌意义——200Ω:滑动变阻器的最大阻值 :滑动变阻器允许通过的最大电流 3、结构示意图和电路符号—— 4、变阻特点——能够连续改变接入电路中

的电阻值。 5、接线方法—— 6、使用方法——与被调节电路(用电器)串联 7、作用——1、保护电路 2、改变所在电路中的电压分配或电流大小 8、注意事项——电流不能超过允许通过的最大电流值 9、在日常生活中的应用——可调亮度的电灯、可调热度的电锅、 收音机的音量调节旋钮…… 实验题目:导体的电阻一定时,通过导体的电流和导体两端电压的关系(研究欧姆定律实验新教材方案) 一、提出问题: 通过前面的学习,同学们已经定性的知道:加在导体两端的电压越高,通过导体的电流就会越大;导体的电阻越大,通过导体的电流越小。现在我们共同来探究:如果知道了一个导体的电阻值和它两端的电压值,能不能计算出通过它的电流呢即通过导体的电流与导体两端的电压和导体的电阻有什么定量关系 二、猜想与假设: 1、电阻不变,电压越大,电流越。(填“大”或“小”) 2、电压不变,电阻越大,电流越。(填“大”或“小”) 3、电流用I表示,电压用U表示,电阻用R表示,则三者之间可能会有什么关系 三、设计实验:

动态分区分配方式的模拟C语言代码和C代码

实验三使用动态分区分配方式的模拟 1、实验目的 了解动态分区分配方式中使用的数据结构和分配算法,并进一步加深对动态分区存储管理方式及其实现过程的理解。 2、实验内容 (1) 用C语言分别实现采用首次适应算法和最佳适应算法的动态分区分配过程alloc( )和回收过程free( )。其中,空闲分区通过空闲分区链来管理:在进行内存分配时,系统优先使用空闲区低端的空间。 (2) 假设初始状态下,可用的内存空间为640KB,并有下列的请求序列: ?作业1申请130KB。 ?作业2申请60KB。 ?作业3申请100KB。 ?作业2释放60KB。 ?作业4申请200KB。 ?作业3释放100KB。 ?作业1释放130KB。 ?作业5申请140KB。 ?作业6申请60KB。 ?作业7申请50KB。 ?作业6释放60KB。 请分别采用首次适应算法和最佳适应算法,对内存块进行分配和回收,要求每次分配和回收后显示出空闲分区链的情况。 程序代码——C语言实现 #include #include struct node //空闲分区链结点的定义 { node *before; node *after; int size; int address; int state; }; node L; struct usenode { usenode *next; int num; int add; int size; }U,*n;

void Init() //空闲分区链的初始化 { node *p; p=(node *)malloc(sizeof(node)); p->before=&L; p->after=NULL; p->size=640; p->address=0; p->state=0; L.after=p; L.before=NULL; L.size=0; U.next=NULL; n=&U; } node *search(int a) { node *p=L.after; if(p==NULL) { printf("没有空闲的区域!"); p=NULL; return p; } else { while(p!=NULL && a>p->size) p=p->after; if(p==NULL) { printf("没有找到合适的空闲空间!"); p=NULL; return p; } else return p; } } void recovery(int a,int b) //内存回收算法 {

数据挖掘实验报告三

实验三 一、实验原理 K-Means算法是一种 cluster analysis 的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法。 在数据挖掘中,K-Means算法是一种cluster analysis的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法。 算法原理: (1) 随机选取k个中心点; (2) 在第j次迭代中,对于每个样本点,选取最近的中心点,归为该类; (3) 更新中心点为每类的均值; (4) j<-j+1 ,重复(2)(3)迭代更新,直至误差小到某个值或者到达一定的迭代步 数,误差不变. 空间复杂度o(N) 时间复杂度o(I*K*N) 其中N为样本点个数,K为中心点个数,I为迭代次数 二、实验目的: 1、利用R实现数据标准化。 2、利用R实现K-Meams聚类过程。 3、了解K-Means聚类算法在客户价值分析实例中的应用。 三、实验内容 依据航空公司客户价值分析的LRFMC模型提取客户信息的LRFMC指标。对其进行标准差标准化并保存后,采用k-means算法完成客户的聚类,分析每类的客户特征,从而获得每类客户的价值。编写R程序,完成客户的k-means聚类,获得聚类中心与类标号,并统计每个类别的客户数

四、实验步骤 1、依据航空公司客户价值分析的LRFMC模型提取客户信息的LRFMC指标。

2、确定要探索分析的变量 3、利用R实现数据标准化。 4、采用k-means算法完成客户的聚类,分析每类的客户特征,从而获得每类客户的价值。

五、实验结果 客户的k-means聚类,获得聚类中心与类标号,并统计每个类别的客户数 六、思考与分析 使用不同的预处理对数据进行变化,在使用k-means算法进行聚类,对比聚类的结果。 kmenas算法首先选择K个初始质心,其中K是用户指定的参数,即所期望的簇的个数。 这样做的前提是我们已经知道数据集中包含多少个簇. 1.与层次聚类结合 经常会产生较好的聚类结果的一个有趣策略是,首先采用层次凝聚算法决定结果

南京邮电大学算法设计实验报告——动态规划法

实验报告 (2009/2010学年第一学期) 课程名称算法分析与设计A 实验名称动态规划法 实验时间2009 年11 月20 日指导单位计算机学院软件工程系 指导教师张怡婷 学生姓名丁力琪班级学号B07030907 学院(系) 计算机学院专业软件工程

实验报告 实验名称动态规划法指导教师张怡婷实验类型验证实验学时2×2实验时间2009-11-20一、实验目的和任务 目的:加深对动态规划法的算法原理及实现过程的理解,学习用动态规划法解决实际应用中的最长公共子序列问题。 任务:用动态规划法实现求两序列的最长公共子序列,其比较结果可用于基因比较、文章比较等多个领域。 要求:掌握动态规划法的思想,及动态规划法在实际中的应用;分析最长公共子序列的问题特征,选择算法策略并设计具体算法,编程实现两输入序列的比较,并输出它们的最长公共子序列。 二、实验环境(实验设备) 硬件:计算机 软件:Visual C++

三、实验原理及内容(包括操作过程、结果分析等) 1、最长公共子序列(LCS)问题是:给定两个字符序列X={x1,x2,……,x m}和Y={y1,y2,……,y n},要求找出X和Y的一个最长公共子序列。 例如:X={a,b,c,b,d,a,b},Y={b,d,c,a,b,a}。它们的最长公共子序列LSC={b,c,d,a}。 通过“穷举法”列出所有X的所有子序列,检查其是否为Y的子序列并记录最长公共子序列并记录最长公共子序列的长度这种方法,求解时间为指数级别的,因此不可取。 2、分析LCS问题特征可知,如果Z={z1,z2,……,z k}为它们的最长公共子序列,则它们一定具有以下性质: (1)若x m=y n,则z k=x m=y n,且Z k-1是X m-1和Y n-1的最长公共子序列; (2)若x m≠y n且x m≠z k,则Z是X m-1和Y的最长公共子序列; (3)若x m≠y n且z k≠y n,则Z是X和Y的最长公共子序列。 这样就将求X和Y的最长公共子序列问题,分解为求解较小规模的问题: 若x m=y m,则进一步分解为求解两个(前缀)子字符序列X m-1和Y n-1的最长公共子序列问题; 如果x m≠y n,则原问题转化为求解两个子问题,即找出X m-1和Y的最长公共子序列与找出X 和Y n-1的最长公共子序列,取两者中较长者作为X和Y的最长公共子序列。 由此可见,两个序列的最长公共子序列包含了这两个序列的前缀的最长公共子序列,具有最优子结构性质。 3、令c[i][j]保存字符序列X i={x1,x2,……,x i}和Y j={y1,y2,……,y j}的最长公共子序列的长度,由上述分析可得如下递推式: 0 i=0或j=0 c[i][j]= c[i-1][j-1]+1 i,j>0且x i=y j max{c[i][j-1],c[i-1][j]} i,j>0且x i≠y j 由此可见,最长公共子序列的求解具有重叠子问题性质,如果采用递归算法实现,会得到一个指数时间算法,因此需要采用动态规划法自底向上求解,并保存子问题的解,这样可以避免重复计算子问题,在多项式时间内完成计算。 4、为了能由最优解值进一步得到最优解(即最长公共子序列),还需要一个二维数组s[][],数组中的元素s[i][j]记录c[i][j]的值是由三个子问题c[i-1][j-1]+1,c[i][j-1]和c[i-1][j]中的哪一个计算得到,从而可以得到最优解的当前解分量(即最长公共子序列中的当前字符),最终构造出最长公共子序列自身。

伏安法测电阻实验报告单

黑虎中学《伏安法测电阻》实验报告 班次:____________组次:_____________ 姓名:时间: 一.测量定值电阻的阻值 (1)实验原理: (2)实验器材: (3)电路图:实物图: (4)实验步骤: 1、开关按照电路图连接电路,滑动变阻器滑片处于位置。 2、闭合开关,调节,读出值和值并记录;计算出 值。 4、继续调节重复上述实验,并记录和计算。 (5)实验数据: 实验序号电压U/V电流I/A电阻R X/Ω平均值R X/Ω1 2 3 (6)滑动变阻器的作用:

二.测量小灯泡的电阻: (1电路图: 实物图 : (2)实验数据: 实验序号 电压U/V 电流I/A 灯泡电阻R L /Ω 1 2 3 (3)灯泡正常发光时的电阻是:R L = (4)问题:计算灯泡电阻时能不能取平均值为什么 练习:1.某同学按下图所示电路连好实验器材后,闭合开关,灯泡正常发光,但电压表指针不动,这可能是 ( ) A .电流表烧坏,电路开路 B .电流表完好,与电流表相 连的导线断了 C .电压表接线柱处导线短路 D .电压表接线柱处导线断路 A V L R S

2一个20Ω的电阻,接在由4节干电池串联的电源上,要测这个电阻中的电流和两端的电压,电流表、电压表选的量程应为 ( ) A.0~,0~3V B.0~,0~15V C.0~3 A,0~3 V D.0~3 A,0~15 V 3.现有下列器材,电流表(0~ 0~3A)、电压表(0~3V 0~15V)、滑动变阻器(10Ω 2A)、4V电源、待测小灯泡的电阻(正常发光的电压为,电阻为6Ω左右)、开关一只、导线若干。要求用伏安法测定小灯泡正常发光时灯丝的电阻,测量时两表的指针要偏过表面刻度盘的中线。 (1)试画出电路图; (2)电流表的量程应为 __________ 电压表的量程为____________ ; (3)下列步骤的合理排列顺序为________________ 。 A . 闭合开关 B .将测出的数据填入表格中 C . 计算被测小灯泡的电阻 D .读出两表的示数 E .断开开关 F .将滑动变阻器的阻值调到最大位置 G .根据电路图连接电路 H .调节滑动变阻器使电压表示数为

最新c++动态分区分配算法模拟(操作系统课程设计)

c++动态分区分配算法模拟(操作系统课程 设计)

课程设计 课程设计名称:操作系统课程设计 专业班级: 学生姓名: 学号: 指导教师: 课程设计时间:6月13日-——6月17日

计算机科学专业课程设计任务书 说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页

1:需求分析 (1)用C语言实现采用首次适应算法的动态分区分配过程alloc()和回收过程free()。其中,空闲分区通过空闲分区链表来管理,在进行内存分配时,系统优先使用空闲区低端的空间。 (2)假设初始状态下,可用的内存空间为640KB,并有下列的请求序列:作业1申请130KB;作业2申请60KB;作业3申请100KB;作业2释放60KB;作业4申请200 KB;作业3释放100 KB;作业1释放 130 KB;作业5申请140 KB;作业6申请60 KB;作业7申请 50KB;作业6释放60 KB。采用首次适应算法进行内存块的分配和回 收,同时显示内存块分配和回收后空闲内存分区链的情况。 2:概要设计 (1)数据结构:作业队列数据结构,用于存储待处理作业;阻塞作业队列数据结构,用于存储阻塞的作业。已分配内存块的双向链表,记录当前系 统已分配的各个内存块;未分配内存块的双向链表,记录系统中剩余的 各个内存块;系统内存分配总情况的结点对象,记录系统中阻塞的作业 总数,已分配的内存块数,剩余的内存块数。 (2)主函数:对作业队列、阻塞队列、已分配内存块链表、未分配内存块链表、系统总内存分配情况结点对象进行初始化,调用分配函数或回收函 数,循环处理11个作业步。 (3)分配函数alloc():首次适应算法检索未分配的内存块链表,若找到合适的内存块,则加以判断,空闲内存块大小减去作业去请求内存块大小小于

相关文档
最新文档