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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 內存分配.cpp

?? 裝入作業:采用最先適應算法。輸入要裝入的作業的大小
?? CPP
字號:
/*
 程序說明:
 裝入作業:采用最先適應算法。輸入要裝入的作業的大小,程序查找合適位置插入;若空間不足,給出"內存不足"的提示;若總的剩余空間足夠,但分配不連續,則提示整理內存;若作業總數已達最大值,在插入時給出提示,要求撤除不需要的作業。
 撤除作業:需要輸入要撤除的作業的起始地址,程序找到目標表目后,將其狀態置空,并檢查其相鄰表目,若為空,則合并之;若輸入的首地址沒有在表中找到,則提示錯誤;空閑表目不能再次被撤除;起始地址為零的表目為操作系統,不能被撤除。
 整理內存:將所有的已分配表目向低地址端移動,將其連成一片,所有空閑表目將被合并到表尾的"空表目"。
 print() 函數:用于輸出空閑分區表。

 部分變量說明:
 wlon 作業長度 ;whadr   起始地址 ;
 maxl 數組長度 ;nowlong 當前作業的總長度 ;
 i、j 、k 循環控制變量
 狀態表示:  1:已分配   0:空閑   -1:空表目
 */
///////////////////////////////////////////////////////////
#include<iostream.h>
#include<iomanip.h>

struct works //表目結構
{
	int hadr;		//起始地址
	int lon;		//長度
	int state;		//狀態
};
// 函數定義 //
bool load_works(works [],int &,int &);
bool remove_works(works [],int &,int &);
void print(works [],int,int);
void tidy_memory(works [],int &);
// *****   ***** //
const int MAX=2000;	//最大總長度(內存容量)
const int MAXWORKS=20;	//最多支持20個作業
void main()
{
	works w[MAXWORKS];	//最多支持20個作業
	int choice,maxl,nowlong;
	// ***裝入操作系統*** //
	cout<<"裝入操作系統.................."<<endl;
	w[0].hadr=0; 
	w[0].lon=1; 
	w[0].state=1;
	// *****   ***** //
	maxl=0;		//數組長度標志
	nowlong=1;	//當前總長度
	print(w,maxl,nowlong);	//輸出空閑分區表
	
	while(true)	//開始循環
	{
		cout<<" 1.裝入作業;2.撤除作業;3.整理內存;0.退出程序"<<endl;
		cout<<"CHOICE # > ";
		cin>>choice;
		if(choice==0)break;	//退出程序
		if(choice==1)		//裝入作業
		{
			if(maxl==MAXWORKS-1) //作業數已達最大值
			{
				cout<<"\n警告!作業數已達最大值,請撤除多余的作業以釋放空間!\n"<<endl;
				continue;
			}
			if(load_works(w,maxl,nowlong))
				print(w,maxl,nowlong);	//輸出空閑分區表
		}
		else
		if(choice==2)		//撤除作業
		{
			if(remove_works(w,maxl,nowlong))
				print(w,maxl,nowlong);	//輸出空閑分區表
		}
		else
		if(choice==3)		//整理內存
		{
			tidy_memory(w,maxl);
			print(w,maxl,nowlong);	//輸出空閑分區表
		}
		else continue;
	}//while(true)
}//main()
////////////////////////////////////////////////////////////
//裝入作業
bool load_works(works w[],int & maxl,int & nowlong)
{
	int wlon,i,j;
	cout<<"作業長度 > ";
	cin>>wlon;			//作業長度

	if(wlon>MAX-nowlong)
	{
		cout<<"\t***>>>>> 警告! 內存不足! <<<<<***"<<endl;
		return false;
	}

	for(i=0;i<=maxl;i++)
	{
		if(w[i].state==1)continue;//表目非空
		if(w[i].lon<wlon)continue;//表目長度太小

		if(w[i].lon==wlon)	//表長等于作業長度
		{
			w[i].state=1;	//修改表目狀態
			nowlong=nowlong+wlon;//修改當前內存容量
			return true;
		}

		for(j=maxl;j>i;j--)			//表長大于作業長度
			w[j+1]=w[j];			//w[i]以后表目后移一格
		//拆分w[i]并裝入作業
		w[i+1].hadr=w[i].hadr+wlon;	//修改w[i+1]首地址
		w[i+1].lon=w[i].lon-wlon;	//修改w[i+1]長度
		w[i+1].state=0;				//修改w[i+1]狀態
		w[i].lon=wlon;	//修改w[i]長度
		w[i].state=1;	//修改w[i]狀態
		maxl++;			//數組長度加1
		nowlong=nowlong+wlon;//修改當前內存容量
		return true;
	}//for(i=0;i<=maxl;i++)

	//原空閑表目不能滿足要求或無空閑表目
	if(i>maxl)
	{
		if((MAX-(w[i-1].hadr+w[i-1].lon))<wlon)//表尾空閑長度不足
		{
			cout<<"\t***>>>>> 提示...內存需要整理... <<<<<***"<<endl;
			return false;
		}
		//新建表目
		w[i].hadr=w[i-1].hadr+w[i-1].lon;//起始地址
		w[i].lon=wlon;	//長度
		w[i].state=1;	//狀態
		maxl++;			//數組長度標志加1
		nowlong=nowlong+wlon;//修改當前內存容量
	}
	return true;
}
///////////////////////////////////////////////////////////
//撤除作業
bool remove_works(works w[],int & maxl,int & nowlong)
{
	int whadr,i,j;
	cout<<"要撤除的作業的起始地址 & > ";
	cin>>whadr;
	if(whadr==0)
	{
		cout<<"\t***>>>>> 警告!操作系統不能被撤除! <<<<<***"<<endl;
		return false;
	}
	for(i=0;i<=maxl;i++)//查找目標表目
	{
		if(w[i].hadr==whadr)	//w[i]為符合的表目
		{
			if(w[i].state==0)
			{
				cout<<"\t***>>>>> 提示...表目已經為空... <<<<<***"<<endl;
				return false;
			}
			w[i].state=0;		//狀態置空
			nowlong=nowlong-w[i].lon;//修改當前內存容量

			if(w[i+1].state==0)	//如果w[i+1]為空,合并w[i]、w[i+1]
			{
				w[i].lon=w[i].lon+w[i+1].lon;
				for(j=i+1;j<maxl;j++)//w[i]以后表目前移一格
				{
					w[j].hadr=w[j+1].hadr;
					w[j].lon=w[j+1].lon;
					w[j].state=w[j+1].state;
				}
				maxl--;		//數組長度標志減1
			}//if(w[i+1].state==0)

			if(w[i-1].state==0)	//如果w[i-1]為空,合并w[i]、w[i-1]
			{
				w[i-1].lon=w[i-1].lon+w[i].lon;
				for(j=i;j<maxl;j++)//w[i-1]以后表目前移一格
				{
					w[j].hadr=w[j+1].hadr;
					w[j].lon=w[j+1].lon;
					w[j].state=w[j+1].state;
				}
				maxl--;		//數組長度標志減1
			}//if(w[i-1].state==0)
			return true;
		}//if(w[i].hadr==whadr)
	}//for(i=0;i<=maxl;i++)
	if(i>maxl)
	{
		cout<<"\t***>>>>> 警告!地址輸入錯誤! <<<<<***"<<endl;
		return false;
	}
	return true;
}
///////////////////////////////////////////////////////////
//輸出空閑分區表
void print(works w[],int maxl,int nowlong)	
{
	int k;
	cout<<setw(10)<<"起始地址"<<setw(10)<<"長度"<<setw(10)<<"狀態"<<endl;
	for(k=0;k<=maxl;k++)
		cout<<setw(10)<<w[k].hadr<<setw(10)<<w[k].lon<<setw(10)<<w[k].state<<endl;

	if((w[k-1].hadr+w[k-1].lon)<MAX)//輸出空表目
	cout<<setw(10)<<w[k-1].hadr+w[k-1].lon
		<<setw(10)<<MAX-(w[k-1].hadr+w[k-1].lon)
		<<setw(10)<<"-1"<<endl;

	cout<<"當前作業總長度:"<<nowlong<<"\n當前空閑總長度:"<<MAX-nowlong
		<<"\n當前內存使用率:"<<(double(nowlong)/MAX)*100<<" %"<<endl;
}
///////////////////////////////////////////////////////////
//整理內存
void tidy_memory(works w[],int & maxl)
{
	int i,j;
	for(i=0;i<=maxl;i++)
	if(w[i].state==0)
	{
		for(j=i;j<maxl;j++)
		{
			w[j].hadr=w[j-1].hadr+w[j-1].lon;
			w[j].lon=w[j+1].lon;
			w[j].state=w[j+1].state;
		}
		maxl--;	//數組長度標志減1
	}
	cout<<" \t***... 內存整理完成 ...***"<<endl;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米一区二区三区av| 亚洲区小说区图片区qvod| 99综合影院在线| 国产一区二区毛片| 黄色精品一二区| 另类小说欧美激情| 日韩电影在线观看电影| 日韩精品久久久久久| 亚洲高清免费在线| 日本不卡视频在线观看| 日韩国产成人精品| 久久97超碰色| 国产成人在线色| www.爱久久.com| 色诱视频网站一区| 欧美三级韩国三级日本一级| 欧美精品粉嫩高潮一区二区| 欧美一区二区黄| 国产午夜精品一区二区三区视频| 久久综合给合久久狠狠狠97色69| 久久综合九色欧美综合狠狠| 五月天欧美精品| 久久精品久久99精品久久| 久久99精品国产麻豆不卡| 国产成人综合精品三级| 99国产精品99久久久久久| 91搞黄在线观看| 精品久久久久99| 国产精品久久久久三级| 午夜电影一区二区| 国产福利视频一区二区三区| 91小视频免费看| 日韩一区二区视频在线观看| 国产三级精品视频| 天天综合色天天| 粉嫩蜜臀av国产精品网站| 在线免费观看日本欧美| 精品动漫一区二区三区在线观看| 亚洲视频在线一区观看| 精品一二三四区| 91视频在线观看免费| 精品91自产拍在线观看一区| 亚洲欧美一区二区三区极速播放| 日韩高清不卡在线| 99久久婷婷国产综合精品电影| 日韩一区二区中文字幕| 中文字幕亚洲成人| 久久精品久久综合| 欧美午夜宅男影院| 国产精品久久久久久久久搜平片 | 欧美日韩另类国产亚洲欧美一级| 欧美sm美女调教| 亚洲第一福利视频在线| 高清beeg欧美| 欧美不卡一区二区三区四区| 一区二区三区日韩精品| 成人黄页在线观看| 精品国产百合女同互慰| 丝袜诱惑亚洲看片| 欧美自拍偷拍一区| 亚洲天堂网中文字| 国产成人精品免费视频网站| 日韩午夜av电影| 亚洲chinese男男1069| 色成人在线视频| 国产精品久久久久久久浪潮网站| 国产麻豆精品在线| 56国语精品自产拍在线观看| 亚洲一区在线视频| 91尤物视频在线观看| 国产精品无人区| 9l国产精品久久久久麻豆| 日本一区二区不卡视频| 国产丶欧美丶日本不卡视频| 欧美精品一区二| 国产一区二区在线视频| 久久亚洲二区三区| 国产一区二区三区免费播放| 久久一二三国产| 国产成人综合网| 中文字幕乱码久久午夜不卡| 成人理论电影网| 亚洲蜜臀av乱码久久精品| 色综合久久久久综合体桃花网| 亚洲人成影院在线观看| 日本道色综合久久| 天天操天天色综合| 欧美成人官网二区| 国产麻豆精品95视频| xvideos.蜜桃一区二区| 成人性生交大片免费看视频在线| 亚洲天堂福利av| 欧美性生活一区| 久久99久久99| 国产精品色一区二区三区| 色偷偷一区二区三区| 午夜激情久久久| 精品福利二区三区| 成人黄色软件下载| av在线这里只有精品| 亚洲国产视频在线| 精品久久久久香蕉网| 99精品热视频| 奇米影视7777精品一区二区| 国产免费成人在线视频| 91猫先生在线| 国产综合久久久久影院| 亚洲欧洲一区二区三区| 日韩一区二区在线看片| 成人激情午夜影院| 天天射综合影视| 国产精品美女久久久久久久| 欧美日韩国产免费一区二区 | 久久精品一区四区| 一本大道久久精品懂色aⅴ | 精品乱人伦小说| 一本在线高清不卡dvd| 美女视频黄频大全不卡视频在线播放 | 青草国产精品久久久久久| 中日韩av电影| 日韩天堂在线观看| 波多野结衣欧美| 激情偷乱视频一区二区三区| 亚洲欧美日韩国产综合在线 | 精品一区二区免费在线观看| 中文字幕亚洲精品在线观看| 欧美成人精品3d动漫h| 欧洲av一区二区嗯嗯嗯啊| 国产剧情一区在线| 婷婷国产v国产偷v亚洲高清| 国产精品久久久久久久久动漫| 欧美一激情一区二区三区| 日本精品一区二区三区高清 | 亚洲成人av福利| 久久久精品影视| 欧美激情一二三区| 日韩一区二区麻豆国产| 色狠狠色狠狠综合| 成人精品免费看| 国产一区二区免费看| 蜜桃视频免费观看一区| 亚洲男人的天堂av| 国产精品久久久久天堂| 欧美激情在线一区二区| 久久久影视传媒| 欧美刺激午夜性久久久久久久| 欧美日韩国产另类不卡| 欧美在线视频日韩| 欧美在线制服丝袜| 91福利社在线观看| 欧美在线影院一区二区| 色综合天天综合| 成人黄色在线视频| 国产精品2024| 国产精品综合久久| 国产精品一区二区在线观看网站 | 国产成人在线看| 国产精品综合在线视频| 国产麻豆一精品一av一免费| 欧美色视频在线| 欧美美女一区二区三区| 4438x成人网最大色成网站| 欧美日韩视频专区在线播放| 欧美老人xxxx18| 日韩视频一区二区在线观看| 精品日产卡一卡二卡麻豆| 日韩欧美视频一区| 精品久久久三级丝袜| 国产欧美日韩视频一区二区| 中文字幕av免费专区久久| 中文字幕在线观看不卡视频| 亚洲欧美偷拍另类a∨色屁股| 亚洲制服丝袜av| 秋霞影院一区二区| 国产精品69久久久久水密桃| 成人av电影在线观看| 欧美性xxxxx极品少妇| 日韩一级免费观看| 国产欧美日韩精品在线| 亚洲男人电影天堂| 蜜桃传媒麻豆第一区在线观看| 国产精品一区二区果冻传媒| 97se亚洲国产综合自在线观| 在线日韩一区二区| 欧美成人aa大片| 自拍偷拍国产精品| 免费欧美在线视频| 国产成人av自拍| 欧美日韩精品综合在线| 日韩一区二区电影在线| 1024国产精品| 日本伊人精品一区二区三区观看方式| 国产在线视视频有精品| 色成人在线视频| 国产三级欧美三级日产三级99 | 4hu四虎永久在线影院成人| 国产清纯白嫩初高生在线观看91 | 国产精品一区二区三区四区| 在线观看国产91| 国产日本欧美一区二区|