操作系统课程设计-模拟设计页式存储管理的分配与回收
课程设计
模拟设计页式存储管理的分
题目
配与回收
学院 专业 班级 姓名
指导教师
计算机科学与技术 计算机科学与技术
XX XX XXX
2011 年 01 月 09 日
课程设计任务书
学生姓名:XX 专业班级: 计算机0902班
指导教师:XXX工作单位:计算机科学与技术学院
题 目: 模拟设计页式存储管理的分配与回收 初始条件:
1.预备内容:阅读操作系统的内存管理章节内容,了解有关虚拟存储器、页式存储管理等概念,并体会页式管理内存的分配和回收过程。
2.实践准备:掌握一种计算机高级语言的使用。
要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写
等具体要求)
1.采用页式管理方案实施内存分配和回收。能够处理以下的情形
⑴能够输入给定的内存页面数,页面大小,进程的个数及每个进程的页数。 ⑵要求当某进程提出申请空间的大小后,显示能否满足申请,以及为该进程分配资源后内存空间的使用情况(被进程占用的页面,空闲的页面)。 2.设计报告内容应说明: ⑴课程设计目的与功能;
⑵需求分析,数据结构或模块说明(功能与框图); ⑶源程序的主要部分;
⑷测试用例,运行结果与运行情况分析; ⑸自我评价与总结:
i)你认为你完成的设计哪些地方做得比较好或比较出色; ii)什么地方做得不太好,以后如何改正;
iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训); iv)完成本题是否有其他的其他方法(如果有,简要说明该方法); v)对实验题的评价和改进意见,请你推荐设计题目。
时间安排:
设计安排一周:周1、周2:完成程序分析及设计。
周2、周3:完成程序调试及测试。 周4、周5:验收,撰写课程设计报告。
(注意事项:严禁抄袭,一旦发现,抄与被抄的一律按0分记)
指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日
模拟设计页式存储管理
的分配与回收
1需求分析
页式管理把内存空间按页的大小划分成片或者页面(page frame),然后把页式
统一管理。
图1 页的划分
图2 基本页表示例
静态分页管理的第一步是为要求内存的作业或进程分配足够的页面。系统通过 存储页面表、请求表以及页表来完成内存的分配工作。页表指的是内存中的一块固定存储区。页式管理时每个进程至少有一个页表。请求表指的是用来确定作业或进程的虚拟空间的各页在内存中的实际对应位置;另外整个系统有一个存储页面表,其描述了物理内存空间的分配使用状况。
图3 请求表的示例
存储页面表有两种构成方法: 1、位示图法 2、空闲页面链表法
模拟设计页式存储管理的分配与回收要求能够满足如下的要求:
(1)输入给定的内存页面数,页面大小,进程的个数及每个进程的页数。 (2)要求当某进程提出申请空间的大小后,显示能否满足申请,以及为该进程分配资源后内存空间的使用情况(被进程占用的页面,空闲的页面)。
2 功能设计
2.1 算法分析
首先,请求表给出进程或作业要求的页面数。然后,由存储页面表检查是否有足够的空闲页面,如果没有,则本次无法分配。如果有则首先分配设置页表,
应的页好填入页表中。
图4 分配页面的算法流程
2.2 数据结构
页式管理把内存空间按页的大小划分成片或者页面,再按照一定的规律建立起页表,并通过请求表将分配内容显示出来.将页表和请求表的内容使用结构体来定义是比较方便的.
//页表项结构
typedef struct _pagetableitem {
pageid pagenum; blockid blocknum;
//页表
//页号 //块号
}pgtabitem;
typedef pgtabitem * pagetable;
//请求表结构 typedef struct _reqtable {
unsigned pid;
//进程号 //请求页面数
unsigned reqpagenum;
pagetable pgtabadr; //页表始址 bool state;
//状态
} reqtabitem;
请求表还引入了支持快速插入和删除的list顺序容器来进行相关操作. list<reqtabitem> reqtable
因为模拟设计的关系,页面的起始地址均应该为随机的数值,所以程序在 设计过程中加入了随机数类的编写. class RandomNumber { private:
unsigned long randseed; public: };
采用当前系统的时间值来生成伪随机数分配地址.
定义随机数产生器:RandomNumber random 定义内存页面数:int pagenum 定义页面大小:int pagesize 定义进程个数:int pnum
用整数数组模拟分配的内存页面数int * mempage=new int[pagenum]
RandomNumber(unsigned long s=0); unsigned short Random(unsigned long n); double fRandom(void);
2.3模块说明
2.3.1主函数
主函数依次运行了程序中所实现的关键函数. int main(){
InitSys();//初始化系统 MainChoice();//输出系统菜单 Destroy();//释放申请的动态内存 return 0;}
2.3.2各个功能函数
初始化内存页面:void Init_Mempage(void) 获取内存使用情况:int Get_Mempagenum(void) 初始化默认的请求表:void Init_Reqtable(void) 为默认的进程分配内存:void Init_DistMem(void) 手动创建进程,并分配内存:void Dist_Mem(void) 释放申请的动态内存:void Destroy(void) 结束指定进程:void Kill(void)
2.3.3打印函数
打印出进程请求表:void PrintReqtable(void) 打印出页表:void PrintPageTable(void)
打印出内存使用情况:void PrintMem(void) 打印出物理块的大小:void PrintBlockSize(void)
2.3.4 其他函数
初始化系统:void InitSys(void) 输出主菜单:void MainMenu(void) 选择运行分支:void MainChoice()
3开发平台
3.1开发平台
(1) 使用系统:Windows7 (2) 使用语言:C++
(3) 开发工具:Visual C++ 2008
4测试用例,运行结果与运行情况分析
4.1测试方法
通过输入正常数据以及非正常数据对程序进行全方位测试
4.2测试结果
(1)程序主界面
(2)输入进程号和页面数
:
(3)显示进程页表:
(4)显示请求表
(5)显示内存使用情况以及物理块大小
(6)错误检验
武汉理工大学《操作系统》课程设计说明书
5源程序的主要部分
#include <iostream> #include <cstdlib> #include <iomanip> #include <list> #include "page.h" #include "Random.h"
using namespace std;
list<reqtabitem> 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< …… 此处隐藏:3830字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [求职职场]加法运算定律的运用练习题
- [求职职场]大型石油化工工业过程节能新技术
- [求职职场]2015-2020年中国箱纸板行业分析与投资
- [求职职场]NADEX-IWC5A点焊机故障代码
- [求职职场]英语阅读 非常有用
- [求职职场]鲁卫疾控发〔2012〕2号(联合,印发山东
- [求职职场]2014年莆田公务员行测技巧:数字推理的
- [求职职场]基于最近发展区理论的高中数学课堂有效
- [求职职场]与贸易有关的知识产权协议
- [求职职场]【王风范】微演说·职场演说三
- [求职职场]新时代国珍健康大课堂
- [求职职场]群论期末考试复习题
- [求职职场]施工现场消防安全专项施工方案(范本)-
- [求职职场]初中物理光学知识点归纳完美版
- [求职职场]毕业设计总结与体会范文
- [求职职场]江南大学2018年上半年展示设计第1阶段
- [求职职场]景尚乡民兵参战支前保障方案
- [求职职场]【优质】2019年工会职工之家建设工作总
- [求职职场]数据库技术与应用—SQL Server 2008(第
- [求职职场]汽车变速箱构造与工作原理
- 首钢工业区工业遗产资源保护与再利用研
- 第4课 《大学》节选
- 2016程序文件——检验检测结果发布程序
- 2011年高考试题文言文阅读全解释__2011
- 化学是一门基础的自然科学
- 海外做市商制度的借鉴意义
- 外国建筑史复习资料(
- 七年级下思想品德期末综合测试(二)
- 思政课部2013年上学期教学工作总结
- 电大国际公法任务3 0004
- 《圆的认识》教学设计
- 中国轨道交通牵引变流器行业市场发展调
- 中泰证券#定期报告:坚守时代硬科技和
- 浅论企业财务管理与企业经营投资风险的
- 大功率半导体激光器光纤耦合技术调研报
- 中国传统家具的现状与发展探讨
- Broadcom数字电视芯片助海尔扩展高清电
- 新HSK4词汇练习 超全(五)
- 2013届高考数学单元考点复习12
- 雨霖铃精品课件




