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

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

?? clock.cpp

?? 模擬計(jì)算機(jī)操作系統(tǒng)中改進(jìn)的clock算法
?? CPP
字號(hào):
#include <iostream>
#include <list>
#include <string>
using namespace std;

struct MemPCB
{
	int pageId;                    //process_id
	bool accessed;					//whether is accessed
	bool modified;					//whether is modified
};

void DisplayMemPagestate(list<MemPCB>* tmpList, list<MemPCB>::iterator tmpIt);
void UpdateAccess(list<MemPCB>* tmpList, int* tmpAccessArray, int access_count);
void UpdateModify(list<MemPCB>* tmpList, int* tmpAccessArray, int modify_count);
void PageInvoke(list<MemPCB>* tmpList, int tmpPageID, list<MemPCB>::iterator& tmpIt);

void main()
{
	int pageArrayCount = 0;
	int mempageArrayPtrCount = 0;	
	int cirTmp = 0;
	char cmdStr[20];
	int ginvokePosition= 0;			//global variable indicate the position of the page will be invoked

	int* pageArrayPtr = NULL;	
	list<MemPCB> memPageList;
	list<MemPCB>::iterator it = NULL;     //global iteratoe points to the current position of the mem pages

    /*****************************************input the page sequence******************************************/
	cout << "please input the counts of the pages: ";
	cin >> pageArrayCount;
	pageArrayPtr = new int[pageArrayCount];
	cout << "please input the page invoking sequence: \n";
	for(cirTmp = 0; cirTmp < pageArrayCount; cirTmp ++)
	{
		cin >> pageArrayPtr[cirTmp];
	}
	
	/*************************************input the page sequence end******************************************/
	cout << "please input the page count the mem can hold:";
	cin >> mempageArrayPtrCount;
	
	/*********************************************************************************************************/
	cout << "PageArray:  { ";
	for(cirTmp = 0; cirTmp < pageArrayCount; cirTmp++)
	{
		 cout << pageArrayPtr[cirTmp] << " ";
	}
	cout << "}\n";
	/**********************************************************************************************************/
	
	for(cirTmp = 0; cirTmp < mempageArrayPtrCount; cirTmp++)
	{
		MemPCB tmpPageInfo = {pageArrayPtr[ginvokePosition],0,0};
		ginvokePosition++;		
		memPageList.push_back(tmpPageInfo);
	}
	DisplayMemPagestate(&memPageList,memPageList.begin());

	cout << "pageID:-----pageAccess------pageModify\n";
	while(1)
	{
		cout << "input the commands:\n";
		cin >> cmdStr;

		if(strcmp(cmdStr,"access") == 0)
		{
			int access_count = 0;
			cout << "input the access num:\n";
			cin >> access_count;
			int* access_array = new int[access_count];
			cout << "modified pages:\n";
			for(int cirTmp = 0; cirTmp < access_count; cirTmp++)
			{
				cin >> access_array[cirTmp];
			}
			UpdateAccess(&memPageList,access_array,access_count);
			DisplayMemPagestate(&memPageList,memPageList.begin());
		}

		if(strcmp(cmdStr,"modify") == 0)
		{
			int modify_count = 0;
			cout << "input the modified num:\n";
			cin >> modify_count;
			int* modify_array = new int[modify_count];
			cout << "modified pages:\n";
			for(int cirTmp = 0; cirTmp < modify_count; cirTmp++)
			{
				cin >> modify_array[cirTmp];
			}
			UpdateModify(&memPageList,modify_array,modify_count);
			DisplayMemPagestate(&memPageList,memPageList.begin());
		}
		
		if(strcmp(cmdStr,"step") == 0)
		{
			PageInvoke(&memPageList,pageArrayPtr[ginvokePosition],it);
			DisplayMemPagestate(&memPageList,it);
			ginvokePosition++;
			if(ginvokePosition == pageArrayCount)
			{
				cout << "approach the ending! \n";
				break;
			}
		}
	}
	
}

/****************************************show the mem state******************************************************/
void DisplayMemPagestate(list<MemPCB>* tmpList, list<MemPCB>::iterator tmpIt)
{
	list<MemPCB>::iterator it = tmpIt;

	cout << "the current iterator points to " 
		<< (*it).pageId << " "
		<< (*it).accessed<< " "
		<< (*it).modified<<endl;

	cout << "the mem page state is: \n";
	for(int cirTmp = 0; cirTmp <= tmpList->size(); cirTmp++)
	{
		if(it != tmpList->end())
		{		
			cout << (*it).pageId << " "
				<< (*it).accessed << " "
				<< (*it).modified << endl;
			it++;
		}
		else
			it++;
	}
}

/******************************************************************************************************************/
void UpdateAccess(list<MemPCB>* tmpList, int* tmpAccessArray, int access_count)
{
	while(access_count--)
	{
		for(list<MemPCB>::iterator it = tmpList->begin(); it != tmpList->end(); it++)
		{
			if((*it).pageId == tmpAccessArray[access_count])
				(*it).accessed = !(*it).accessed;
		}
	}
}

void UpdateModify(list<MemPCB>* tmpList, int* tmpAccessArray, int modify_count)
{
	while(modify_count--)
	{
		for(list<MemPCB>::iterator it = tmpList->begin(); it != tmpList->end(); it++)
		{
			if((*it).pageId == tmpAccessArray[modify_count])
				(*it).modified = !(*it).modified;
		}
	}
}

/*******************************************************************************************************************/
void PageInvoke(list<MemPCB>* tmpList, int tmpPageID, list<MemPCB>::iterator& tmpIt)
{
	//meaning of the parameter: the pointer to the mem page list, the invoking pageID, the current circle pointer
	int cirTmp = 0;

	if(tmpIt == NULL)
		tmpIt = tmpList->begin();
	while(1)
	{
		for(cirTmp = 0; cirTmp <= tmpList->size(); cirTmp++)
		{
			if(tmpIt != tmpList->end())
			{
				if( !((*tmpIt).accessed) && !((*tmpIt).modified))
				{
					(*tmpIt).pageId = tmpPageID;          //do not change the access pos at the first time
					return;				
				}
				tmpIt++;
			}
			else
				tmpIt++;
		}

		// when the using the above method failed it runs next
		for(cirTmp = 0; cirTmp <= tmpList->size(); cirTmp++)
		{
			if(tmpIt != tmpList->end())
			{
				if((*tmpIt).accessed == 0)
					(*tmpIt).pageId = tmpPageID;
				(*tmpIt).accessed = false;
				return;
			}
			else
				tmpIt++;
		}

		//when failed runs next
		
		list<MemPCB>::iterator it = tmpList->begin();
		for(cirTmp = 0; cirTmp <= tmpList->size(); cirTmp++)
		{
			if(it != tmpList->end())
				(*it).accessed = false;
			else
				it++;
		}
		PageInvoke(tmpList,tmpPageID, tmpIt);
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美国产一区在线观看| 国产精品福利一区| 欧美日韩一区三区| 在线区一区二视频| 色狠狠av一区二区三区| 成人av电影在线观看| 国产成人在线视频网站| 国产成人精品亚洲日本在线桃色| 激情久久五月天| 国产精品一区三区| 国产福利视频一区二区三区| 成人自拍视频在线观看| 国产成人精品三级麻豆| 99视频超级精品| 色综合久久久久久久久久久| 日本精品裸体写真集在线观看| 色狠狠色狠狠综合| 欧美精品乱码久久久久久按摩| 3d动漫精品啪啪1区2区免费| 欧美一级片在线| 精品国产凹凸成av人网站| 久久久五月婷婷| 欧美激情一二三区| 亚洲精品国久久99热| 亚洲午夜久久久久久久久电影院| 天天综合网 天天综合色| 青娱乐精品在线视频| 国产精品影视网| 不卡免费追剧大全电视剧网站| 色综合久久久久久久| 欧美剧情电影在线观看完整版免费励志电影 | 国产·精品毛片| bt7086福利一区国产| 色婷婷香蕉在线一区二区| 欧美日韩国产大片| 欧美成人午夜电影| 国产精品久99| 天天av天天翘天天综合网色鬼国产| 久久99久久99精品免视看婷婷| 国产麻豆欧美日韩一区| 91麻豆免费视频| 欧美一区二区视频在线观看2020| 精品电影一区二区三区| 亚洲女同ⅹxx女同tv| 日韩高清一级片| 成人国产精品免费观看| 欧美三电影在线| 国产婷婷一区二区| 一区二区三区免费| 韩国精品一区二区| 在线观看欧美精品| 久久蜜桃av一区二区天堂| 亚洲欧美激情插| 国产在线一区观看| 欧美亚洲一区三区| 日本一区二区在线不卡| 午夜精品久久久久久久99水蜜桃| 国产成人一级电影| 777色狠狠一区二区三区| 国产精品污www在线观看| 视频一区欧美精品| 色一区在线观看| 国产欧美一区视频| 日韩精品1区2区3区| av欧美精品.com| 精品美女一区二区| 亚洲国产视频网站| av亚洲精华国产精华| 精品福利视频一区二区三区| 亚洲国产一区二区三区| 成人高清免费观看| 精品精品国产高清a毛片牛牛| 一区二区三区免费在线观看| 成人午夜伦理影院| 欧美精品一区二区久久久| 污片在线观看一区二区| 91片黄在线观看| 欧美国产日本韩| 国产精品资源网| 精品少妇一区二区三区在线播放 | 亚洲国产精品久久久久秋霞影院| 成人午夜又粗又硬又大| 久久网这里都是精品| 麻豆久久久久久久| 欧美日本一区二区三区| 一区二区三区中文字幕在线观看| 成人18精品视频| 欧美国产日韩在线观看| 国产一区二区三区| 精品久久久久香蕉网| 91小视频在线免费看| 精品国产成人系列| 久久99精品视频| 日韩一区二区免费视频| 午夜精品福利视频网站| 在线观看成人小视频| 亚洲欧美日韩中文字幕一区二区三区 | 91成人在线免费观看| 国产精品久久久久久久久久免费看| 国产一区二区三区在线看麻豆| 日韩一级精品视频在线观看| 青青青伊人色综合久久| 欧美久久久久久久久中文字幕| 亚洲主播在线观看| 欧美亚洲动漫另类| 亚洲va天堂va国产va久| 欧美日韩免费观看一区三区| 亚洲444eee在线观看| 欧美久久久久免费| 日本美女视频一区二区| 日韩区在线观看| 久久国产欧美日韩精品| 欧美电视剧免费观看| 狠狠色狠狠色综合系列| 久久亚洲捆绑美女| 福利视频网站一区二区三区| 国产精品久久久久久久午夜片 | 99九九99九九九视频精品| 中文字幕亚洲在| 亚洲图片欧美激情| 欧美午夜免费电影| 日本不卡的三区四区五区| 欧美成人vps| 国产91精品精华液一区二区三区 | 国产欧美精品一区aⅴ影院| 国产精品一区在线观看你懂的| 国产精品免费久久| 色噜噜久久综合| 蜜桃一区二区三区在线| 久久婷婷国产综合精品青草| 成人免费高清在线| 一区二区三区免费| 日韩免费视频一区二区| 国产成人高清在线| 一区av在线播放| 欧美白人最猛性xxxxx69交| 国产精品一区二区黑丝| 亚洲欧美国产三级| 日韩亚洲欧美高清| 国产成人av一区二区三区在线| 亚洲欧美电影院| 91精品国产综合久久蜜臀| 国产精品系列在线观看| 亚洲精品乱码久久久久| 日韩精品一区二区三区蜜臀| 不卡av免费在线观看| 午夜久久久久久电影| 国产夜色精品一区二区av| 一本色道久久综合亚洲精品按摩| 日本午夜精品视频在线观看 | 国产欧美精品一区| 欧美午夜片在线观看| 国产一区二区三区免费看| 亚洲欧美一区二区三区国产精品| 欧美一区二区三区播放老司机| 国产成人免费高清| 视频一区二区中文字幕| 欧美经典一区二区三区| 欧美日韩黄色一区二区| 国产91丝袜在线18| 日韩一区精品视频| 国产精品成人午夜| 日韩一卡二卡三卡| 91久久精品日日躁夜夜躁欧美| 九色综合国产一区二区三区| 又紧又大又爽精品一区二区| 2020国产成人综合网| 欧美日韩中文一区| 9l国产精品久久久久麻豆| 奇米精品一区二区三区四区 | 久久久久国产一区二区三区四区| 欧美在线看片a免费观看| 国产成人午夜99999| 日韩精品亚洲一区二区三区免费| 欧美韩日一区二区三区| 欧美一级黄色大片| 欧美视频一区二区三区| 不卡av电影在线播放| 国产自产2019最新不卡| 偷偷要91色婷婷| 亚洲激情五月婷婷| 中文一区在线播放| 久久你懂得1024| 日韩欧美国产麻豆| 欧美精品在线一区二区| 一本色道久久综合亚洲aⅴ蜜桃| 国产成人精品免费网站| 国产一区视频在线看| 日韩精品一级中文字幕精品视频免费观看| 亚洲精品视频在线观看网站| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美一级久久久| 337p亚洲精品色噜噜噜| 欧美日韩精品二区第二页| 在线看一区二区| 色综合天天性综合| 99精品一区二区三区| 不卡av免费在线观看| 成人动漫视频在线| 成人av免费网站|