教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 求职职场 >

操作系统课程设计-模拟设计页式存储管理的分配与回收

来源:网络收集 时间:2026-01-23
导读: 课程设计 模拟设计页式存储管理的分 题目 配与回收 学院 专业 班级 姓名 指导教师 计算机科学与技术 计算机科学与技术 XX XX XXX 2011 年 01 月 09 日 课程设计任务书 学生姓名:XX 专业班级: 计算机0902班 指导教师:XXX工作单位:计算机科学与技术学院 题

课程设计

模拟设计页式存储管理的分

题目

配与回收

学院 专业 班级 姓名

指导教师

计算机科学与技术 计算机科学与技术

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字,全部文档内容请下载后查看。喜欢就下载吧 ……

操作系统课程设计-模拟设计页式存储管理的分配与回收.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/118936.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)