文档介绍:精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
综合实验报告
大的空闲区,登记在空闲区说明表中。例如,在提示(1)中列举的情况下,如果作业2撤离,归还所占主存区域时,应与上、下相邻的空闲区一起合成一个大的空闲区登记在空闲区说明表中。归还主存时的回收算法如图4-2。
(5) 请按最先适应算法设计主存分配和回收的程序。然后按(1)中假设主存中已装入三个作业,且形成两个空闲区,确定空闲区说明表的初值。现有一个需要主存量为6K的作业4申请装入主存;然后作业3撤离;再作业2撤离。请你为它们进行主存分配和回收,把空闲区说明表的初值以及每次分配或回收后的变化显示出来或打印出来。
图4-1 最先适应分配模拟算法
精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
图4-2 主存回收算法
:
#include <iostream>
using namespace std;
typedef struct SNode { // Space Node
int start,end; // 起始,结束
int length; // 长度大小
struct SNode *next; // 指向下一结点的指针
}* SP;
SP Head=(SP)malloc(sizeof(SNode)); // 全局变量,内存空间头结
void DispSpace() { // 显示内存空间分配情况
SP p=Head->next;
cout<<"\n 空闲区说明表 \n"
<<"---地址--长度---\n";
while (p)
{
cout<<" "<<p->start
<<" "<<p->length<<endl;
p=p->next;
}
精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
cout<<"----------------\n";
}
void Initial() { // 初始化说明表
SP p,q;
p=(SP)malloc(sizeof(SNode));
q=(SP)malloc(sizeof(SNode));
p->start=14; p->length=12; p->end=26;
q->start=32; q->length=96; q->end=128; // 指导书上的作业分配
Head->next=p; // 与头结点连接
p->next=q;
q->next