下载此文档

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


文档分类:经济/贸易/财会 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
实验四内存分配算法
实验目的
一个好的计算机系统不仅要有一个足够容量的、存取速度高的、稳定可靠的主存储器,而且要能合理地分配和使用这些存储空间。当用户提出申请主存储器空间时,存储管理必须根据申请者的要求,按一定的策略分析主存空间的使用情况,找出足够的空闲区域分配给申请者。当作业撤离或主动归还主存资源时,则存储管理要收回作业占用的主存空间或归还部分主存空间。主存的分配和回收的实现是与主存储器的管理方式有关的,通过本实验帮助学生理解在动态分区管理方式下应怎样实现主存空间的分配和回收。
背景知识:
可变分区方式是按作业需要的主存空间大小来分割分区的。当要装入一个作业时,根据作业需要的主存量查看是否有足够的空闲空间,若有,则按需要量分割一个分区分配给该作业;若无,则作业不能装入。随着作业的装入、撤离、主存空间被分成许多个分区,有的分区被作业占用,而有的分区是空闲的。
实验内容
采用首次适应算法或循环首次算法或最佳适应算法分配主存空间。
由于本实验是模拟主存的分配,所以当把主存区分配给作业后并不实际启动装入程序装入作业,而用输出“分配情况”来代替。(即输出当时的空闲区说明表及其内存分配表)
利用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 << "请选择操

操作系统内存动态分配模拟算法 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人分享精品
  • 文件大小261 KB
  • 时间2018-04-18