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

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

?? 最先適應算法.cpp

?? 在可變分區管理方式下采用最先適應算法實現主存分配和實現主存回收(第二個程序)
?? CPP
字號:
// 功能:
//   《計算機操作系統》實驗
//   首次適應性算法
//   摸擬 動態分區 存儲管理方式的主存 分配 和 回收
////////////////////////////////////////////////////////////

 

#include "iostream.h"
#include "iomanip.h"

#define ERR_NOFREEAREA 1
#define ERR_NOADEQUACYAREA 2
#define ERR_ALLOCATED 4

#define ERR_NOJOBS 1
#define ERR_NOSUCHJOB 2
#define ERR_RECLAIMED 4


typedef struct tagUsedNode
{
 long address;
 long length;
 int flag; //作業名
 struct tagUsedNode *next;
} USED_AREA , *USED_TABLE;

typedef struct tagFreeNode
{
 long address;
 long length;
 struct tagFreeNode *next;
} FREE_AREA , *FREE_TABLE;

//空閑區、作業區鏈表
USED_TABLE usedTable = NULL;
FREE_TABLE freeTable = NULL;


//給作業分配空間
//jobname: 作業名
//jobsize: 作業所需空間大小
int Allocate( int jobname , long jobsize )
{
 //如果沒有空閑區
 if( freeTable == NULL )
  return ERR_NOFREEAREA;
 FREE_TABLE p = freeTable;
 FREE_TABLE q = p;
 //找首次適應空閑區
 while( p != NULL && p->length < jobsize )
 {
  q = p;
  p = p->next;
 }
 //如果找不到有足夠空間的分區
 if( p == NULL )
  return ERR_NOADEQUACYAREA;

 USED_TABLE x = new USED_AREA;
 x->address = p->address;
 x->length = jobsize;
 x->flag = jobname;
 x->next = NULL;

 //如果該分區大于作業需求,空間大小減去作業大小
 if( p->length > jobsize )
 {
  p->length -= jobsize;
  p->address += jobsize;
 }
 //如果該分區等于作業大小,刪除該分區
 else
 {
  if( p == freeTable )
   freeTable = NULL;
  else
   q->next = p->next;
  delete p;
 }
 //作業加入“作業表”中
 USED_TABLE r = usedTable;
 USED_TABLE t = r;

 while( r != NULL && r->address < x->address )
 {
  t = r;
  r = r->next;
 }
 
 if( usedTable == NULL )
  usedTable = x;
 else
 {
  x->next = r;
  t->next = x;
 }

 return ERR_ALLOCATED;
}


//回收作業空間
//jobname: 作業名
int Reclaim( int jobname )
{
 if( usedTable == NULL )
  return ERR_NOJOBS;
 USED_TABLE p = usedTable;
 USED_TABLE q = p;
 while( p != NULL && p->flag != jobname )
 {
  q = p;
  p = p->next;
 }
 //如果沒有該作業
 if( p == NULL )
  return ERR_NOSUCHJOB;
 //回收后的空間加入到空閑區
 FREE_TABLE r = freeTable;
 FREE_TABLE t = r;
 FREE_TABLE x;
 while( r != NULL && r->address < p->address )
 {
  t = r;
  r = r->next;
 }

 x = new FREE_AREA;
 x->address = p->address;
 x->length = p->length;
 x->next = NULL;

 if( r == freeTable )
 {
  x->next = r;
  freeTable = x;
  t = freeTable;
 }
 else
 {
  x->next = r;
  t->next = x;
 }
 //合并分區
 while( t->next != NULL && t->address + t->length == t->next->address )
 {
  t->length += t->next->length;
  r = t->next;
  t->next = t->next->next;
  delete r;
 }
 //刪除該作業
 if( p == usedTable )
 {
  usedTable = usedTable->next;
 }
 else
  q->next = p->next;
 delete p;

 return ERR_RECLAIMED;
}

int Init()
{
 freeTable = new FREE_AREA;
 freeTable->address = 0;
 freeTable->length = 1024;
 freeTable->next = NULL;
 return 1;
}

void jobrequest()
{
 int jobname;
 int jobsize;

 cout<<"...................."<<endl;
 cout<<"作業名: ";
 cin >> jobname;
 cout<<"作業長度: ";
 cin >> jobsize;

 if( Allocate( jobname , jobsize ) == ERR_ALLOCATED )
  cout<<"該作業已成功獲得所需空間"<<endl;
 else
  cout<<"該作業沒有獲得所需空間"<<endl;
 cout<<"...................."<<endl;
}

void jobreclaim()
{
 int jobname;
 cout<<"...................."<<endl;
 cout<<"作業名: ";
 cin >>jobname;
 int result = Reclaim( jobname );
 if(  result == ERR_RECLAIMED )
  cout<<"該作業已成功回收"<<endl;
 else if( result == ERR_NOSUCHJOB || result == ERR_NOJOBS )
  cout<<"系統沒有作業或該作業不存在"<<endl;
 cout<<"...................."<<endl;
}

void freeTablePrint()
{
 cout<<"........................................"<<endl;
 cout<<setw(10)<<"address"<<setw(10)<<"length"<<setw(10)<<"state"<<endl<<endl;
 FREE_TABLE p = freeTable;
 USED_TABLE q = usedTable;
 int x , y;
 while( p || q )
 {
  if( p )
   x = p->address;
  else
   x = 0x7fffffff;
  if( q )
   y = q->address;
  else
   y = 0x7fffffff;

  if( x < y )
  {
   cout<<setw(10)<<p->address<<setw(10)<<p->length<<setw(10)<<"空閑"<<endl;
   p = p->next;
  }
  if( x > y )
  {
   cout<<setw(10)<<q->address<<setw(10)<<q->length<<setw(10)<<"已分配"<<setw(10)<<"ID="<<q->flag<<endl;
   q = q->next;
  }
 }
 cout<<"........................................"<<endl;

}

void main()
{
 Init();

 int choose;
 bool exitFlag = false;
 while( !exitFlag )
 {
  cout<<"選擇功能項 ( 0 - 退出   1 - 分配主存  2 - 回收主存  3 - 顯示主存 )"<<endl;
  cout<<">";
  cin>>choose;
  switch( choose )
  {
  case 0:
   exitFlag = true;
   break;
  case 1:
   jobrequest();
   break;
  case 2:
   jobreclaim();
   break;
  case 3:
   freeTablePrint();
   break;
  }
 }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最新欧美精品一区二区三区| 欧美一区二区精品在线| 免费观看一级特黄欧美大片| 国产精品乱人伦中文| 欧美国产国产综合| 日本一区免费视频| 国产欧美日韩三级| 国产精品青草久久| 亚洲欧美日韩一区二区| 亚洲婷婷综合久久一本伊一区| 亚洲色图制服丝袜| 一区二区三区.www| 视频一区在线视频| 韩国成人福利片在线播放| 国产精品一品二品| 91丨国产丨九色丨pron| 欧美性受xxxx黑人xyx性爽| 欧美午夜精品久久久| 欧美二区乱c少妇| 精品国产免费人成电影在线观看四季| 久久综合色婷婷| 亚洲人成在线播放网站岛国| 亚洲一区免费在线观看| 欧美aaaaaa午夜精品| 精品无人码麻豆乱码1区2区| 成人av在线网| 欧美精品视频www在线观看| 日韩免费福利电影在线观看| 日本一区二区综合亚洲| 亚洲一区日韩精品中文字幕| 久久精品72免费观看| 岛国精品一区二区| 欧美日韩国产123区| 久久久电影一区二区三区| 亚洲人妖av一区二区| 日韩国产在线观看一区| 国产suv一区二区三区88区| 北岛玲一区二区三区四区| 欧美日韩性生活| 久久精品一区二区三区不卡 | 欧美日韩国产三级| 国产亚洲视频系列| 午夜私人影院久久久久| 成人午夜在线免费| 欧美一区二区私人影院日本| 国产精品久久久久久久裸模| 六月丁香婷婷色狠狠久久| 色综合久久88色综合天天免费| 精品久久久久久久一区二区蜜臀| 亚洲欧美激情一区二区| 国产精品 日产精品 欧美精品| 欧美视频一区在线| 国产精品麻豆欧美日韩ww| 久久99深爱久久99精品| 欧美猛男gaygay网站| 亚洲人精品午夜| 99热精品国产| 日本一区二区综合亚洲| 精品一区二区三区日韩| 欧美精品在线一区二区三区| 亚洲欧美电影一区二区| 国产91精品一区二区| 26uuu精品一区二区| 老汉av免费一区二区三区| 欧美色爱综合网| 一区二区三区日韩在线观看| 成人高清视频在线观看| 久久综合九色综合欧美98| 日韩av网站免费在线| 91精品国产色综合久久ai换脸 | 911国产精品| 亚洲国产婷婷综合在线精品| 99国产精品久久久| 亚洲欧美怡红院| 色婷婷综合久久久久中文一区二区| 欧美高清在线一区二区| 国产mv日韩mv欧美| 欧美高清在线精品一区| 成人理论电影网| 亚洲欧洲国产专区| 91亚洲国产成人精品一区二三| 中文字幕在线一区免费| 成人av网站在线观看免费| 中文字幕免费在线观看视频一区| 成人小视频在线观看| 久久久国产一区二区三区四区小说| 久久精品99国产精品| 久久久91精品国产一区二区精品 | 成人开心网精品视频| 一区二区中文视频| 欧洲亚洲国产日韩| 青青草97国产精品免费观看| 精品国产免费人成电影在线观看四季| 国产真实乱对白精彩久久| 国产精品无遮挡| 欧美性色黄大片| 精品一区二区三区免费播放| 欧美激情在线观看视频免费| 色吊一区二区三区| 日本网站在线观看一区二区三区| 欧美成人高清电影在线| 成人激情免费网站| 午夜精品久久久久久久蜜桃app| 欧美一区二区久久久| 粉嫩av一区二区三区在线播放| 亚洲精品国产精品乱码不99| 555夜色666亚洲国产免| 国产精品1区2区| 亚洲一区二区在线免费观看视频| 精品久久久网站| 日本韩国一区二区| 精品一区二区三区免费观看 | 6080日韩午夜伦伦午夜伦| 国产精品白丝jk白祙喷水网站| 亚洲精品成人悠悠色影视| 日韩欧美在线1卡| 色哟哟一区二区| 国产综合久久久久影院| 亚洲综合色噜噜狠狠| 国产婷婷色一区二区三区在线| 色菇凉天天综合网| 国产麻豆日韩欧美久久| 婷婷中文字幕一区三区| 中文字幕一区免费在线观看| 欧美mv日韩mv亚洲| 欧美亚洲一区二区在线观看| 国产成人在线观看| 免费欧美高清视频| 亚洲成av人片www| 中文字幕一区三区| 国产日韩亚洲欧美综合| 91精品国产欧美一区二区成人| 97精品国产97久久久久久久久久久久| 免费在线观看精品| 丝袜美腿亚洲一区二区图片| 亚洲乱码国产乱码精品精小说| 久久在线观看免费| 欧美xxxxxxxxx| 制服丝袜在线91| 91 com成人网| 欧美日本不卡视频| 欧美日韩小视频| 欧美日韩在线播| 欧洲一区在线电影| 91日韩在线专区| 91小宝寻花一区二区三区| 成人美女视频在线看| 懂色av一区二区三区免费看| 国产剧情一区二区| 国产老妇另类xxxxx| 激情五月播播久久久精品| 久草在线在线精品观看| 精品一区二区免费视频| 麻豆极品一区二区三区| 奇米精品一区二区三区四区| 日韩成人午夜电影| 美日韩黄色大片| 国产一区二区在线免费观看| 毛片av一区二区| 国产在线麻豆精品观看| 国产毛片精品视频| 不卡电影免费在线播放一区| 成人黄页在线观看| 91一区在线观看| 欧美日韩一级二级| 69久久夜色精品国产69蝌蚪网| 日韩一区和二区| 久久日韩精品一区二区五区| 国产婷婷色一区二区三区在线| 亚洲欧洲日韩综合一区二区| 亚洲一区二区三区在线看| 免费成人在线视频观看| 国产福利一区二区三区视频在线 | 日本一区二区三区视频视频| 国产精品久久网站| 亚洲香肠在线观看| 老司机午夜精品| 波多野结衣亚洲| 在线观看国产日韩| 欧美不卡123| 亚洲欧美另类久久久精品2019| 五月天网站亚洲| 国产成人精品免费视频网站| 色琪琪一区二区三区亚洲区| 欧美一区2区视频在线观看| 日本一区二区三区免费乱视频| 亚洲精品日韩综合观看成人91| 日本在线播放一区二区三区| 国产福利一区二区三区视频在线| 在线欧美日韩精品| 精品久久人人做人人爰| 一区二区三区美女| 国产一区二区三区高清播放| 欧美在线观看一二区| 久久你懂得1024| 婷婷久久综合九色国产成人 | 亚洲成精国产精品女| 成人中文字幕合集| 欧美一区二区三区不卡| 中文字幕在线观看不卡视频|