1 / 10
文档名称:

操作系统内存动态分配模拟算法.docx

格式:docx   大小:261KB   页数:10页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

操作系统内存动态分配模拟算法.docx

上传人:分享精品 2018/4/18 文件大小:261 KB

下载得到文件列表

操作系统内存动态分配模拟算法.docx

相关文档

文档介绍

文档介绍:实验四内存分配算法
实验目的
一个好的计算机系统不仅要有一个足够容量的、存取速度高的、稳定可靠的主存储器,而且要能合理地分配和使用这些存储空间。当用户提出申请主存储器空间时,存储管理必须根据申请者的要求,按一定的策略分析主存空间的使用情况,找出足够的空闲区域分配给申请者。当作业撤离或主动归还主存资源时,则存储管理要收回作业占用的主存空间或归还部分主存空间。主存的分配和回收的实现是与主存储器的管理方式有关的,通过本实验帮助学生理解在动态分区管理方式下应怎样实现主存空间的分配和回收。
背景知识:
可变分区方式是按作业需要的主存空间大小来分割分区的。当要装入一个作业时,根据作业需要的主存量查看是否有足够的空闲空间,若有,则按需要量分割一个分区分配给该作业;若无,则作业不能装入。随着作业的装入、撤离、主存空间被分成许多个分区,有的分区被作业占用,而有的分区是空闲的。
实验内容
采用首次适应算法或循环首次算法或最佳适应算法分配主存空间。
由于本实验是模拟主存的分配,所以当把主存区分配给作业后并不实际启动装入程序装入作业,而用输出“分配情况”来代替。(即输出当时的空闲区说明表及其内存分配表)
利用VC++。
实验代码
#include<iostream>
#include<list>
using namespace std;
//定义内存的大小
const int SIZE=64;
//作业结构体,保存作业信息
struct Project{
int number;
int length;
};
//内存块结构体,保存内存块信息
struct Block{
int address;
int length;
int busy;
};
int first_fit(list<Block> &, Project , list<Project> &);//声明首次适配算法函数
int best_fit(list<Block> &, Project , list<Project> &);//声明最佳适配算法函数
int next_fit(list<Block> &, Project , list<Project> &);//声明下次适配算法函数
void swap_out(list<Block> &, Project , list<Project> &);//声明换出作业的函数
void print_info(list<Block>, list<Project>);//声明打印内存和作业函数
int remain_length(list<Block>);//声明计算剩余内存的函数
int main(){
list<Block> B_List;
list<Project> P_List;
Block m1 = { 1, SIZE, 0 };
(m1);
print_info(B_List, P_List);
while (true)
{
cout << "\n\t\" << endl << "\t\" << endl << "\t\\n" << endl << "请选择操

最近更新