java实现的一个简单的动态分区内存分配算法的实现

这篇博客介绍了如何使用Java实现一个简单的动态分区内存分配算法,包括关键的表结构设计和内存回收机制。提供了完整的代码链接,适用于首次适应等四种算法,但未包含注释。
摘要由CSDN通过智能技术生成

java实现的一个简单的动态分区内存分配算法的实现

本人只是一个学生,写这篇东西纯粹是做完课设留个记录,代码仅供参考,不一定正确。
																			By Aimer_majiko_sayuri	   2019-1-2
实现动态分区内存分配的四个算法:
1.首次适应算法。
2.循环首次适应算法。
3.最佳适应算法。
4.最差适应算法。

关键代码:
//表结构
class DynamicTable{
int number;
int size;
int iniadd;
char state;
+各种set and get方法;
}

	//首次适应
void allocRamFirst(int allocsize){
		int index ,restsize,size,address,listsize;
		listsize = dylist.size();
		System.out.println("分配内存"+allocsize+"KB");
		for(index = 0 ;index < listsize ;index++)
		{
		  DynamicTable temp = (DynamicTable) dylist.get(index);
		  //寻找第一次适应的内存块
		  if(temp.getState() == 'n' && temp.getSize() >= allocsize)
			{	
			  	address = temp.getIniadd();
			  	size = temp.getSize();
				restsize = size - allocsize ;
				temp.setSize(allocsize);
				temp.setState('y');
				dylist.set(index,temp);
				
				if(restsize >= recycle)
				{	
					DynamicTable dyt = new DynamicTable(index ,restsize , address + allocsize , 'n');
					dylist.add(index + 1 ,dyt);
				}
				else{
					temp.setSize(allocsize + restsize);
					dylist.set(index,temp);
				}
				break;//找到第一次的则直接退出分配内存程序
			}
		}
		//System.out.println(index);
		if(index =&
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值