[操作系统实验lab2]实验报告

static void * alloc(u_int n, u_int align, int clear)
{
	extern char end[]; 	
	int i;
	u_long alloced_mem;
	if(freemem==0)
		freemem=(u_long)end;
	freemem = (((u_long)(freemem))+(align)-1)&~((align)-1);
	//Step 1 finished.
	alloced_mem = freemem;
	//Step 2 finished.
	freemem +=(((u_long)(n))+(align)-1)&~((align)-1);
	//Step 3 finished.
	if(clear == 1){
		for(i=alloced_mem;i<alloced_mem+n;i++)
			 *i = 0;
	}
	//Step 4 finished.
	return (void *)alloced_mem;
	//Step 5 finished.
}
原文地址:https://www.cnblogs.com/SivilTaram/p/4456592.html