- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统的存储管但理方式
操作系统 实验报告
实验名称:
操作系统的存储管理方式
班 级:
姓 名:
学 号:
类 型:
实验地点:
日 期:
一、实验目的:
动态测试WINDOWS2000/XP系统内存
二、实验环境:
PC机一台(VC、C、VB等编程环境)
三、实验内容和要求:
1.了解WINDOWS 用户进程地址空间分布、系统地址空间分布、WINDOWS中用户空间内存分配方式(以页为单位的虚拟内存分配方法)、WINDOWS的内存保护机制。
四、实验步骤:
#includeiostream
#includecstring
#includectime
#includewindows.h
using namespace std;
const int MM_SIZE=100; //内存块数
const int ROW=10; //绘制内存行数
const int COL=10; //绘制内存列数
const int NEME_LEN=10; //名字长度
const int WAITTIME=2000; //等待时间
int UsedNum=0; //当前已占用的内存块数
int FreeNum=MM_SIZE; //当前空闲的内存块数
int ProCnt=0; //当前用户进程数
int NowID=1; //当前分配的进程编号
int MM[MM_SIZE]; //Main Memony
//0 - 内存块未被使用
//-1 - 内存块在初始化时已被系统占用
//k - 内存块已被分配给pID=k 的用户进程
/*进程Obj*/
class PROCESS
{
public:
PROCESS():next(0){} //构造函数重载,用于构造队列队头
PROCESS(char* Name,int pN):PageNum(pN),next(0)
{
pName=new char[NEME_LEN];
strcpy(pName,Name);
PageTable=new int[MM_SIZE];
for(int i=0;iMM_SIZE;i++)
PageTable[i]=-1;
pID=NowID++;
}
~PROCESS()
{
delete pName;
delete PageTable;
}
PROCESS* next; //指向下一个进程
char* GetpName(void)const {return pName;} //获取进程名
int GetpID(void)const {return pID;} //获取进程编号
int GetPageNum(void)const {return PageNum;} //获取进程所需页数
void UnionTable(int i,int j); //关联页号i 与块号j(创建页表)
void PrintPageTable(void); //打印页表
protected:
char* pName; //进程名
int pID; //进程编号
int PageNum; //进程所需页数
int* PageTable; //页表
};
PROCESS* ProLinkHead=new PROCESS; //申请进程队列队头空间
void PROCESS::UnionTable(int i,int j)
{
PageTable[i]=j;
return;
}
void PROCESS::PrintPageTable(void)
{
cout PAGETABLE (页表)endl;
cout 页号ID 块号ID#endl;
for(int i=0;iMM_SIZE;i++)
if(PageTable[i]!=-1)
printf( %-2d %-2d\n,i,PageTable[i]);
coutendl;
return;
}
void Initial_MM(void); //初始化
void Menu(void); //菜单
void CheckMM(void); //查看内存状态
void PrintProList(void); //打印当前用户进程列表
void CheckPro(void); //查看进程状态
void CreatePro(void); //创建新用户进程
void DelPro(void); //删除用户进程
/*主函数*/
int main(void)
{
srand(time(0));
Initial_MM();
Menu();
return 0;
}
/*初始化内存状态*/
void Initial_MM(void)
{
memset(MM,0,sizeof(int)*MM_SIZE); //缺省所
您可能关注的文档
最近下载
- 餐饮值班管理课程培训.pptx
- 尔雅《批判与创意思考》课后习题+期末试题.docx VIP
- 6-4正奇租赁二期资产支持专项计划现金流预测分析报告1213日.pdf
- 算法设计与分析(北航)中国大学MOOC慕课 章节测验期末考试客观题答案.docx
- 2024年山东省济宁市中考化学试卷(附答案).docx VIP
- T IAC CAMRA 50-2024 《事故汽车常用零部件修复与更换判别规范》(2).pdf
- 北师大版数学八年级下册第六章 平行四边形 大单元整体教学设计学历案教案附作业设计(基于新课标教学评一致性).docx
- 长江经济带港口发展研究(2011~).docx VIP
- 染色技术 8.1 涤纶结构特点和分散染料分类 8.1 涤纶结构特点、分散染料分类.pptx
- 人教版三年级下册必读书目《中国古代寓言故事》 .pdf
文档评论(0)