• 大小: 1.49MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-01
  • 语言: 其他
  • 标签:

资源简介

模拟设计页式存储管理的分配与回收 段式页式管理

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include “page.h“
#include “Random.h“

using namespace std;


list reqtable;

RandomNumber random;
//随机数产生器
unsigned pagenum=random.Random(80)+21;
//内存页面数 21-100
unsigned pagesize=random.Random(16)+5;
//页面大小 5-20 
unsigned pnum=random.Random(4)+5;
//进程的个数 5-8
int * mempage=new int[pagenum];
//用整数数组模拟内存页面数

/*初始化内存使用表*/
void Init_Mempage(void)
{
int i=0;
for(i=0;i mempage[i]=0;
}

/*获取内存的使用情况*/
unsigned Get_Mempagenum(void)
{
unsigned sum=0;
for(int i=0;i if(mempage[i]==0)
sum++;
return sum;
}//Get_Mempagenum

/*初始化默认的请求表*/
void Init_Reqtable(void)
{
int i;
for(i=1;i<=pnum;i++)
{
reqtabitem preq;
preq.pid=i;
preq.reqpagenum=random.Random(4)+2;
//进程的大小 2-5
preq.state=false;
preq.pgtabadr=NULL;
reqtable.push_back(preq);
}


/*为默认的进程分配内存*/
void Init_DistMem(void)
{
int reqpnum; //进程请求页面数
int i;

list::iterator pos=reqtable.begin();

for(;pos!=reqtable.end();pos++)
{
reqpnum=(*pos).reqpagenum;
if(reqpnum>Get_Mempagenum())
cout<<“没有足够的内存!“< else
{
(*pos).state=true;
pagetable temp = new pgtabitem[reqpnum];
if(temp==NULL)
{
cout<<“Memory allocation Error!“< exit(0);
}//if memory allocation failure
(*pos).pgtabadr=temp;
for(i=0;i {
temp[i].pagenum=i; //页表的页号

int randnum=random.Random(pagenum)+1;
//随机产生一个块号
while(mempage[randnum]==1)
randnum=random.Random(pagenum)+1;
temp[i].blocknum=randnum;
//页表的块号
mempage[randnum]=1;
}//init pagetable for this process
}
}
}//

/*手动创建进程并分配内存*/
void Dist_Mem(void)
{
int i;
reqtabitem preq; //新创建进程记录
unsigned pid; //进程号
unsigned reqpnum; //请求页面数
bool flag=false;

do{
cout<<“请输入进程号:“;
flag=false;
cin>>pid;
for(list::iterator pos=reqtable.begin();pos!=reqtable.end();pos++)
{
if((*pos).pid==pid)
{
flag=true;
cout<<“该进程号已经存在请重新输入“< break;
}
}
}while(flag==true);
preq.pid=pid;
cout<<“请输入需要的页面数:“;
cin>>reqpnum;
preq.reqpagenum=reqpnum;
preq.state=false;
preq.pgtabadr=NULL;


reqpnum=preq.reqpagenum;
if(reqpnum>Get_Mempagenum())
cout<<“没有足够的内存进程创建失败!“< else
{
preq.state=true;
pagetable temp = new pgtabitem[reqpnum];
if(temp==NULL)
{
cout<<“Memory allocation Error!“< exit(0);
}//if memory allocation failure
preq.pgtabadr=temp;
for(i=0;i {
temp[i].pagenum=i; //页表的页号

int randnum=random.Random(pagenum)+1;
//随机产生一个块号
while(mempage[randnum]==1)
randnum=random.Random(pagenum)+1;
temp[i].blocknum=randnum;
//页表的块号
mempage[randnum]=1;
}//init pagetable for this process
}
reqtable.push_back(preq);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    .......       238  2006-06-18 18:00  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\os.plg

    .......       357  2006-02-16 14:36  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\Random.cpp

    .......      4421  2006-06-14 16:06  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\os.dsp

    .......       527  2006-06-14 16:06  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\os.dsw

    .......       595  2006-06-16 20:15  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\page.h

    .......       311  2006-06-16 20:16  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\Random.h

     文件       8551  2010-01-27 19:42  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\main.cpp

    .......     48640  2006-06-18 18:11  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\os.opt

     文件       7150  2010-01-27 19:42  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\Debug\BuildLog.htm

     文件        406  2010-01-26 17:11  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\Debug\os.exe.embed.manifest

     文件     330752  2010-01-27 19:42  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\Debug\vc90.idb

     文件     225280  2010-01-27 19:42  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\Debug\vc90.pdb

     文件       7269  2010-01-26 17:11  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\Debug\Random.obj

     文件        472  2010-01-26 17:11  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\Debug\os.exe.embed.manifest.res

     文件     650240  2010-01-27 19:42  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\Debug\os.exe

     文件    3337216  2010-01-27 19:42  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\Debug\os.pdb

     文件        381  2010-01-27 19:42  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\Debug\os.exe.intermediate.manifest

     文件         67  2010-01-27 19:42  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\Debug\mt.dep

     文件     559423  2010-01-27 19:42  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\Debug\main.obj

     文件    1561084  2010-01-27 19:42  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\Debug\os.ilk

     文件       5633  2010-01-26 17:11  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\os.vcproj

     文件        874  2010-01-27 17:19  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\os.sln

    ..A..H.     10240  2010-01-27 19:51  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\os.suo

     文件       1423  2010-01-27 19:51  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\os.vcproj.20100105-2154.Administrator.user

     文件    2731008  2010-01-27 19:51  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\os.ncb

     目录          0  2006-06-18 19:52  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收\Debug

     目录          0  2006-06-18 19:52  计算机0826肖瑶(操作系统)\模拟页式存储管理的分配与回收

     目录          0  2010-01-26 16:53  计算机0826肖瑶(操作系统)

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

              9492558                    28

............此处省略1个文件信息

评论

共有 条评论