亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? test c.cpp

?? 實現(xiàn)動態(tài)分區(qū)管理模擬最先適應(yīng)法和最佳適應(yīng)法
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
#include<stdio.h>
#include<stdlib.h>
#define MEM 600
struct free_node//the node of free space;
{
	free_node *front;//the node before it;
	int fe_head_address;//the head address of free space;
	int fe_tail_address;//the tail address of free space;
	int fe_size;//the size of free space;
	free_node *next;//the node after it;
};
struct allocated_node
{
	int process_ID;//the ID of the process which has been allocated;
	int allo_head_address;//the head address of the allocated space;
	int allo_tail_address;//the tail address of the allocated space;
	int allo_size;//the size of the allocated space;
	allocated_node *next;//the next node;
};
typedef free_node fre;
typedef allocated_node allocated;
fre * fe_first=0;
fre * fe_tail=0;
fre * f_sign=0;
allocated * allo_first=0;
allocated * allo_tail=0;
allocated * a_sign=0;
int temp_head=0;//
void init(void);
bool check_if_free(int);
bool check_if_allocated(int);
void firstfit_allocate(int);
void bestfit_allocate(int);
void addrevise(int,int);
void freerevise();
void print();
void firstfit_free( );
void bestfit_free();
void sort_sign();
void insert();
void menu1(void);
void menu2(void);

void menu1(void)
{
	printf("You can choose one method to manage you memeory.\n");
	
	printf("*************************************\n");
	printf("*****1-first fit algorithm***********\n");
	printf("*****2-best  fit algorithm***********\n");
	printf("*****3-quit               ***********\n");
}

void menu2(void)
{
	printf("Now you can allocate and free the memory!\n");
	printf("please input (1,2,3)\n");
	printf("**************************************\n");
	printf("1-require allocating memory for process\n");
	printf("2-free the allocated memory for process\n");
	printf("3-back\n");
}
void init(void)
{
	fe_first=(fre *)malloc(sizeof(fre));
	fe_tail=fe_first;
	fe_first->fe_size=MEM;
	fe_first->next=NULL;
	fe_first->front=NULL;
	fe_first->fe_head_address=0;
	fe_first->fe_tail_address=MEM-1;
	fe_first->fe_size=MEM;
	allo_first=allo_tail=NULL;
}
bool check_if_free(int r_size)
{
	f_sign=fe_first;
	while(f_sign!=NULL)
	{
		if(f_sign->fe_size>=r_size)return true;
		f_sign=f_sign->next;
	}
	return false;
}
bool check_if_allocated(int r_id)
{
	a_sign=allo_first;
	while(a_sign!=NULL)
	{
		if(a_sign->process_ID==r_id)return true;
		a_sign=a_sign->next;
    }
	return false;
}
void firstfit_allocate(int r_size)
{
    if(f_sign==fe_first)
	{
		if(f_sign->fe_size==r_size)
		{fe_first=f_sign->next;
		if(fe_first!=NULL)
		{fe_first->front=NULL;}
		}
		else{
			temp_head=f_sign->fe_head_address;
			f_sign->fe_head_address=f_sign->fe_head_address+r_size;
			f_sign->fe_size=f_sign->fe_size-r_size;
		}
	}
	else if(f_sign==fe_tail)
	{
        if(f_sign->fe_size==r_size)
		{
			fe_tail=f_sign->front;
			fe_tail->next=NULL;
		}else{
			temp_head=f_sign->fe_head_address;
           f_sign->fe_head_address=f_sign->fe_head_address+r_size;
			f_sign->fe_size=f_sign->fe_size-r_size;}
	}
	else
	{
		if(f_sign->fe_size==r_size)
		{
			f_sign->next->front=f_sign->front;
			f_sign->front->next=f_sign->next;
		}else{
			temp_head=f_sign->fe_head_address;
            f_sign->fe_head_address=f_sign->fe_head_address+r_size;
			f_sign->fe_size=f_sign->fe_size-r_size;}
	}
}
void addrevise(int id,int r_size)
{
   if(allo_first==NULL)
   {
	   allo_first=(allocated *)malloc(sizeof(allocated));
	   allo_first->process_ID=id;
	   allo_first->allo_size=r_size;
	   allo_first->allo_head_address=temp_head;
	   allo_first->allo_tail_address=f_sign->fe_head_address-1;
	   allo_first->next=NULL;
	   allo_tail=allo_first;
   }
   else
   {
	   allo_tail->next=(allocated *)malloc(sizeof(allocated));
	   allo_tail=allo_tail->next;
	   allo_tail->process_ID=id;
	   allo_tail->allo_size=r_size;
	   allo_tail->allo_head_address=temp_head;
	   if(fe_first==0){allo_tail->allo_tail_address=MEM-1;}
	   else{
		   allo_tail->allo_tail_address=f_sign->fe_head_address-1;}
	   allo_tail->next=NULL;
   }
   if(f_sign->fe_size+r_size==r_size)//this bug takes me 1 hour!!!my god!!
   {
      free(f_sign);
      f_sign=NULL;
   }
}
void print()
{
	printf("allocated space:\n");
	allocated * p=allo_first;
	if(p==NULL)printf("0\n");
	while(p!=NULL)
	{
		printf("the head address:%d\n",p->allo_head_address);
		printf("the end address:%d\n",p->allo_tail_address);
		printf("the length of the area:%d\n",p->allo_size);
		printf("the ID of the process:%d\n",p->process_ID);
		p=p->next;
	}
	printf("free space:\n");
	fre * fp=fe_first;
	if(fp==NULL)printf("0");
	while(fp!=NULL)
	{
        printf("the head address:%d\n",fp->fe_head_address);
		printf("the end address:%d\n",fp->fe_tail_address);
		printf("the length of the free area:%d\n",fp->fe_size);
		fp=fp->next;
	}
}
void firstfit_free( )
{
	fre * p=0;
	if(fe_first==NULL)
	{
		fe_first=(fre *)malloc(sizeof(fre));
		fe_first->fe_head_address=a_sign->allo_head_address;
		fe_first->fe_size=a_sign->allo_size;
		fe_first->fe_tail_address=a_sign->allo_tail_address;
		fe_first->front=NULL;
		fe_first->next=NULL;
		fe_tail=fe_first;
	}
	else{
	if(a_sign->allo_tail_address<fe_first->fe_head_address)
	{
		
      if(a_sign->allo_tail_address+1==fe_first->fe_head_address)
	  {
		  fe_first->fe_head_address=a_sign->allo_head_address;
		  fe_first->fe_size+=a_sign->allo_size;
	  }
	  
	  else
	  {
          p=(fre *)malloc(sizeof(fre));
		  p->fe_head_address=a_sign->allo_head_address;
		  p->fe_tail_address=a_sign->allo_tail_address;
		  p->fe_size=a_sign->allo_size;
		  p->front=NULL;
		  p->next=fe_first;
		  fe_first->front=p;
		  fe_first=p;
	  }
	}
	else if(a_sign->allo_head_address>fe_tail->fe_tail_address)
	{
		if(a_sign->allo_head_address==fe_tail->fe_tail_address+1)
		{
			fe_tail->fe_tail_address=a_sign->allo_tail_address;
			fe_tail->fe_size+=a_sign->allo_size;
		}
		else
		{
			p=(fre *)malloc(sizeof(fre));
			p->fe_head_address=a_sign->allo_head_address;
			p->fe_tail_address=a_sign->allo_tail_address;
			p->fe_size=a_sign->allo_size;
			p->next=NULL;
			p->front=fe_tail;
			fe_tail->next=p;
			fe_tail=p;
		}
	}
	else
	{
		if((fe_first==fe_tail)&&fe_first->fe_tail_address==a_sign->allo_head_address+1)
		{
		  fe_first->fe_tail_address=a_sign->allo_tail_address;
          fe_first->fe_size+=a_sign->allo_size;
		  return;
		}
		fre * move=fe_first;
		bool tool=true;
		while(tool)
		{
		if((a_sign->allo_head_address<move->next->fe_head_address)&&
				(a_sign->allo_head_address>move->fe_head_address)){
			if(	(move->fe_tail_address+1==a_sign->allo_head_address)&&
				(a_sign->allo_tail_address+1==move->next->fe_head_address))
			{
				move->fe_size=move->fe_size+move->next->fe_size+a_sign->allo_size;
				move->fe_tail_address=move->next->fe_tail_address;
				p=move->next;
				move->next=move->next->next;
				if(p->next!=NULL){
					move->next->front=move;}
				free(p);
				p=0;
				tool=false;
			}
			else if(tool&&(move->fe_tail_address+1==a_sign->allo_head_address))
			{
				move->fe_size+=a_sign->allo_size;
				move->fe_tail_address=a_sign->allo_tail_address;
				tool=false;
			}
			else if(tool&&(a_sign->allo_tail_address+1==move->next->fe_head_address))
			{
				move->next->fe_head_address=a_sign->allo_head_address;
				move->next->fe_size+=a_sign->allo_size;
				tool=false;
			}
			else if(tool)
			{
				p=(fre *)malloc(sizeof(fre));
				p->next=move->next;
				move->next->front=p;
				move->next=p;
				p->front=move;
				p->fe_head_address=a_sign->allo_head_address;
				p->fe_size=a_sign->allo_size;
				p->fe_tail_address=a_sign->allo_tail_address;
				tool=false;
			}
			
			}
          move=move->next;
		}

	}
	}
  
}



void bestfit_free()
{
	fre * left=NULL;
	fre * right=NULL;
	fre * move=fe_first;
	while(move!=NULL)
	{
		if(move->fe_tail_address+1==a_sign->allo_head_address)
			left=move;
		if(a_sign->allo_tail_address+1==move->fe_head_address)
			right=move;
		move=move->next;
	}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲美女屁股眼交3| 国产精品丝袜久久久久久app| 亚洲午夜三级在线| 欧美视频一区二区三区在线观看| 一区二区三区波多野结衣在线观看| 一本一本大道香蕉久在线精品 | 欧美疯狂性受xxxxx喷水图片| 亚洲一区二区av在线| 欧美精品乱码久久久久久| 久久天堂av综合合色蜜桃网| 丝袜美腿亚洲综合| 欧美tk—视频vk| 国产宾馆实践打屁股91| 日韩一区日韩二区| 欧美色爱综合网| 久久精品99国产精品日本| 国产欧美日韩精品a在线观看| 白白色亚洲国产精品| 亚洲综合av网| 日韩精品一区二区在线| 成人午夜激情视频| 亚洲一区二区三区四区在线免费观看 | 国产美女一区二区三区| 国产精品短视频| 欧美喷水一区二区| 国产美女精品人人做人人爽| 亚洲欧美经典视频| 欧美一区二区三区在线| 高清国产午夜精品久久久久久| 亚洲激情校园春色| 日韩一级视频免费观看在线| 成人高清在线视频| 日本大胆欧美人术艺术动态| 欧美国产视频在线| 91精品国产一区二区三区香蕉 | 天堂久久一区二区三区| 国产欧美一区二区三区鸳鸯浴 | 国产一区二区电影| 亚洲综合在线视频| 久久久蜜臀国产一区二区| 在线国产电影不卡| 国产一区二区影院| 亚洲r级在线视频| 日本一区二区三区四区在线视频| 777午夜精品视频在线播放| 高清国产一区二区| 久久国产福利国产秒拍| 亚洲综合自拍偷拍| 中文字幕+乱码+中文字幕一区| 日韩一卡二卡三卡四卡| 欧洲激情一区二区| 国产iv一区二区三区| 美女高潮久久久| 亚洲风情在线资源站| 亚洲三级免费观看| 国产日韩精品一区二区浪潮av | 精品sm捆绑视频| 欧美日韩国产乱码电影| 99热在这里有精品免费| 韩国v欧美v亚洲v日本v| 视频一区视频二区在线观看| 亚洲男人天堂一区| 1024成人网| 中文成人av在线| 久久夜色精品国产欧美乱极品| 这里只有精品免费| 777xxx欧美| 欧美日韩国产首页在线观看| 精品视频在线视频| 色菇凉天天综合网| 91官网在线免费观看| av亚洲精华国产精华精华 | 亚洲欧美综合网| 国产日韩欧美高清在线| 国产亚洲精久久久久久| 亚洲精品一区二区三区影院| 精品日韩99亚洲| 精品福利一区二区三区免费视频| 91精品黄色片免费大全| 91精品黄色片免费大全| 日韩亚洲欧美一区二区三区| 91精品国产高清一区二区三区蜜臀 | 91老师片黄在线观看| av中文字幕在线不卡| 99久久久久免费精品国产| 成人av在线资源| 色婷婷av久久久久久久| 在线亚洲一区二区| 欧美日精品一区视频| 精品视频一区二区三区免费| 欧美日韩一区二区三区不卡| 91精品婷婷国产综合久久| 日韩一卡二卡三卡四卡| 久久综合av免费| 日本一区免费视频| 亚洲精品久久嫩草网站秘色| 亚洲成av人综合在线观看| 免费在线观看一区二区三区| 国产在线视频一区二区| 成人激情午夜影院| 欧美无人高清视频在线观看| 欧美一区二区三区人| 精品国产一区二区精华| 国产精品国产三级国产aⅴ中文 | 婷婷久久综合九色国产成人| 裸体在线国模精品偷拍| 成人精品一区二区三区中文字幕| 99久久婷婷国产综合精品电影| 欧美在线视频全部完| 欧美一区二区在线观看| 国产丝袜在线精品| 亚洲愉拍自拍另类高清精品| 久久精品国产在热久久| 国产精品一区二区免费不卡| 91高清视频在线| www国产成人| 亚洲免费观看高清完整版在线| 五月天激情综合| 成人综合婷婷国产精品久久 | 麻豆成人久久精品二区三区小说| 国产精品伊人色| 欧美性色黄大片手机版| 精品国产一区二区三区久久影院| 亚洲欧美自拍偷拍| 免费在线视频一区| 色综合夜色一区| 日韩午夜激情视频| 中文字幕一区二区三| 美女精品一区二区| 在线视频一区二区三| 国产日韩精品久久久| 婷婷综合五月天| 成人国产精品免费网站| 日韩欧美国产电影| 亚洲自拍偷拍图区| 成人永久看片免费视频天堂| 欧美一级高清片| 亚洲精品中文在线影院| 粉嫩高潮美女一区二区三区 | 在线精品视频小说1| 国产欧美日韩精品a在线观看| 日韩高清电影一区| 色欧美乱欧美15图片| 久久青草欧美一区二区三区| 日韩一区精品字幕| 欧美在线你懂的| 亚洲免费观看高清完整版在线观看熊 | 欧美理论在线播放| 亚洲日本欧美天堂| 99精品桃花视频在线观看| 精品不卡在线视频| 日韩av不卡在线观看| 欧美色电影在线| 亚洲一区中文日韩| 91在线国产福利| 中文字幕一区二区三区在线观看| 国产在线精品一区二区三区不卡| 7777精品伊人久久久大香线蕉经典版下载 | 麻豆成人久久精品二区三区小说| 欧美影院一区二区三区| 亚洲女同一区二区| 不卡一区中文字幕| 日本一区免费视频| 风间由美性色一区二区三区| 国产午夜精品一区二区三区四区| 精品一区二区三区蜜桃| 日韩美女天天操| 日本视频一区二区| 欧美一级日韩一级| 美女诱惑一区二区| 日韩精品在线看片z| 紧缚捆绑精品一区二区| 久久美女艺术照精彩视频福利播放| 日本大胆欧美人术艺术动态| 日韩欧美中文字幕一区| 男人的天堂亚洲一区| 亚洲精品一区二区三区99| 国产一区二区三区国产| 国产亚洲一区字幕| 99久久国产综合精品色伊 | 天堂在线一区二区| 7777精品伊人久久久大香线蕉最新版| 亚洲国产成人91porn| 欧美一区二区三区四区在线观看| 日韩和欧美的一区| 久久婷婷成人综合色| 成人免费视频一区| 一区二区三区四区国产精品| 欧美日韩亚洲高清一区二区| 日韩电影在线观看一区| 精品盗摄一区二区三区| 福利电影一区二区三区| 亚洲精品少妇30p| 欧美精品色一区二区三区| 美女视频免费一区| 国产精品视频在线看| 色激情天天射综合网| 蜜臀久久99精品久久久久宅男| 久久人人97超碰com| 91小视频在线|