资源简介

模拟设计动态分区存储管理中地址转换 页式段式管理

资源截图

代码片段和文件信息

#include
#include 
#include 
#include 
#define N 5//最大进程数
#define max 20 //每个进程的最大容量
#define memory 100 //整个内存大小
struct table{ //已分配的或未分配的
int start; //进程起始地址
int length; //进程大小
int hao;         //进程号
table*next;
};
int n; //实际的进程数
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<<“请输入实际进程数(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  模拟设计动态分区存储管理中地址转换.cpp

----------- ---------  ---------- -----  ----

                 1720                    1


评论

共有 条评论