-
大小: 971B文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-06-02
- 語言: 其他
- 標簽: 動態(tài)分區(qū)??地址轉(zhuǎn)換??
資源簡介
模擬設(shè)計動態(tài)分區(qū)存儲管理中地址轉(zhuǎn)換
頁式段式管理

代碼片段和文件信息
#include
#include?
#include?
#include?
#define?N?5//最大進程數(shù)
#define?max?20 //每個進程的最大容量
#define?memory?100 //整個內(nèi)存大小
struct?table{ //已分配的或未分配的
int?start; //進程起始地址
int?length; //進程大小
int?hao;?????????//進程號
table*next;
};
int?n; //實際的進程數(shù)
table?*head; //head
void?fenpei(int?a)
{
int?sum=0;
????table?*p1*p2;
p1=p2=new?table;
p1->start=1;
????p1->hao=1;
????srand(time(0));?//seed
????Sleep(1000);
????p1->length=rand()%max+1;???????//?random?number?1-20
????p1->next=NULL;
????cout<start<<“???????“<length< ????sum=p1->length+sum;
????for(int?m=2;m<=a;m++)
{
????if(head==NULL)head=p1;
else?p2->next=p1;
p2=p1;
p1=new?table;
p1->start=sum+1;
p1->hao=m;
????Sleep(800);
????srand(time(0));???????
????p1->length=rand()%max+1;???????
????p1->next=NULL;
cout<start<<“???????“<length< sum=p1->length+sum;
}
????p2->next=p1;
cout<<“-------------------------------------“< ????cout< }
void?panduan(int?bint?c)
{
int?ma;
for(table*t=head;t->hao!=b;t=t->next){}
????if(c<0)cout<<“邏輯地址輸入錯誤!“< if(c>t->length)cout<<“VR越界!“< ????else
{
?????ma=t->start+c;
?cout<<“?物理地址為:“< }???
}
int?main()
{
int?ij;
????cout<<“請輸入實際進程數(shù)(1~5):“;
cin>>n;
if(n<1||n>5)return?0;
????cout<<“各進程的起始地址和申請的空間大小為:“< fenpei(n);
????do
{
?????cout<<“請輸入要訪問的進程號(1~5):“;
?????cin>>i;
?????if(i<1||i>n)return?0;
?????cout<<“請輸入要訪問的邏輯地址:“;
?????cin>>j;
?panduan(ij);
}while(i!=0);
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1720??2010-01-27?21:25??模擬設(shè)計動態(tài)分區(qū)存儲管理中地址轉(zhuǎn)換.cpp
-----------?---------??----------?-----??----
?????????????????1720????????????????????1
評論
共有 條評論