2020-07-27

**

课程设计的选题有没有大佬帮一帮小萌新,初学者啥都闹不懂

**

伙伴存储管理系统演示
【问题描述】伙伴存储管理系统是一种巧妙而有效的方法。试写一个演示系统,演示分配和回收存储块前后的存储空间状态变化。
【基本要求】程序应不断地从终端读取整数n。每个整数是一个请求。如果n>0,则表示用户申请大小为n的空间:如果n<0,则表示归还起始地址(即下标)为-n的块才日果n=0,则表示结束运行。每读入一个数,就处理相应的请求,并显示处理之后的系统状态。系统状态由占用表和空闲表构成。显示系统状态意味着显示占用表中各块的始址和长度,以及空闲表中各种大小的空闲块的始址和长度。
【测试数据】l,一<①1>,3,4,4,4,一<①4>,一<①3>,2,2,2,2,一<②4>,一<①2>,一<②2>,一<③2>,一<④2>,一<③4>,40,0。其中,<③,2>表示第③次申请大小为2的空间使得块的始址。其余类推。
【实现提示】可以取m=5,即Spacesize=25,数据结构如下:Typedef struct BlkHeader{BlkHeader *llink,*rlink;int tag;Int kvalue;Int blkstart; //块起始地址}BlkHeader,*Link;Typedef struct{ Int blksize; Link first;}ListHeader;Typedef char ell; //cell也可以是其他单位主要变量是: cell space[Spacesize] //被管理的空间 ListHeader avail[m+1]; //可用空间表 Link ailocated;.//占用表的表头指针在这里,我们把每块的块头分离出来,通过blkstart域与相应的块建立联系。每个块一旦被分配,其块头就进入占用表,其中的各块头由rlink域链接在一起。tag域实际上不起作用,但为了与实际伙伴管理系统更接近,没有把它去掉。显然,在这种模拟实现方法中,不对数组space作任何引用或赋值。
【选作内容】(1)同时还用直观的图示方式显示状态。(2)写一个随机地申请和归还各种规格的存储块的函数考验你的伙伴系统。

一. 实验目的: 1.通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解。熟悉虚存管理的各种页面淘汰算法 2.通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。 二.实验要求 实验程序由以下三大部分组成: (1) 通过随机数产生一个指令序列(实际上是指令的逻辑地址序列),共320条指令。指令的地址按下述原则生成: A:50%的指令是顺序执行的 B:25%的指令要实现向前跳转,均匀分布在前地址部分 C:25%的指令要实现向后跳转,均匀分布在后地址部分 具体的实施方法是: A:在[0,319]的指令地址之间随机选取一起点m B:顺序执行一条指令,即执行地址为m+1的指令 C:在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’ D:顺序执行一条指令,其地址为m’+1 E:在后地址[m’+2,319]中随机选取一条指令并执行 F:重复步骤A-E,直到320次指令 (2) 将每条指令的逻辑地址变换为页地址 设:页面大小为1K; 用户内存容量4页到32页; 用户虚存容量为32K。 在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为: 第 0 条-第 9 条指令为第0页(对应逻辑地址为[0,9]) 第10条-第19条指令为第1页(对应逻辑地址为[10,19]) ……………………………… 第310条-第319条指令为第31页(对应逻辑地址为[310,319]) 按以上方式,用户指令可组成32页。 (3) 分别使用FIFO算法和LFU算法,计算给用户进程的这32页分配4,5,…,32个页面(内存块)时其缺页率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值