资源简介
模拟设计页式存储管理的分配与回收
段式页式管理
代码片段和文件信息
#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.em
文件 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.em
文件 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个文件信息
- 上一篇:DO-WHILE循环语句的翻译程序设计LL1法、输出四元式
- 下一篇:QT5学习资料
相关资源
- 浙江理工大学操作系统实验3+主存空间
- 操作系统课程设计-段页式存储管理的
- 操作系统模拟分页式存储管理中硬件
- 操作系统课程设计——主存空间的分
- 模拟设计动态分区存储管理的分配与
- 模拟段式存储管理的分配与回收操作
- 模拟分页式存储管理中硬件的地址转
- 模拟系统请求分页式存储管理
- 操作系统-页式存储管理
- 操作系统+首次适应算法实现内存的分
- Linux内存分配与回收
- 天津理工大学,操作系统实验报告*
- 操作系统实验——位示图法管理存储
- 请求页式存储管理实验
- 操作系统实验报告 主存空间的分配与
- 操作系统实验四主存空间的分配与回
- 用位示图管理磁盘空间的分配与回收
- 实现请求页式存储管理模拟程序
- 模拟设计动态分区存储管理的分配与
- 用位示图管理磁盘空间的分配与回收
- 文件管理.用位示图管理磁盘空间的分
- 操作系统实验五 主存空间的分配与回
- 请求分页式存储管理
评论
共有 条评论