基本分页存储管理的模拟实现.docx
- 文档编号:23455404
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:16
- 大小:234.27KB
基本分页存储管理的模拟实现.docx
《基本分页存储管理的模拟实现.docx》由会员分享,可在线阅读,更多相关《基本分页存储管理的模拟实现.docx(16页珍藏版)》请在冰豆网上搜索。
基本分页存储管理的模拟实现
基本分页存储管理的模拟实现
学院:
专业:
学生姓名:
学号:
指导教师:
2014年3月18日
一、设计内容2
2、相关操作系统的知识介绍………………………………2
三、课程设计的目的及要求2
四、程序功能说明……………………………………………3
五、算法整体思想3
六、主要功能模块进程图3
七、实验结果4
八、实验总结7
九、程序代码………………………………………………7
一、设计内容
根据设计要求实现对基本分页存储管理的模拟
二、相关操作系统的知识介绍
连续分配方式会形成许多“碎片”,虽然可通过“紧凑”方法将许多碎片拼接成可用的大块空间,但须为之付出很大的开销。
如果允许将一个进程直接分散的装入到许多不相邻接的分区中,则无需在进行“紧凑”。
基于这一思想而产生了离散分配方式。
如果离散分配的基本单位是页,则称为分页存储管理方式;如果离散分配的基本单位是段,则称为分段存储管理方式。
在分页存储管理方式中,如果不具备页面对换功能,则称为基本的分页存储管理方式,或称为纯分页存储管理方式,它不具有支持实现虚拟存储的功能,它要求把每个作业全部装入内存后方能运行。
3、课程设计的目的及要求
1、课程设计的目的
操作系统课程设计是计算机专业重要的教学环节,它为我们提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的机会。
●进一步巩固和复习操作系统的基础知识。
●培养我们结构化程序、模块化程序设计的方法和能力。
●提高我们调试程序的技巧和软件设计的能力。
●提高我们分析问题、解决问题以及综合利用C语言进行程序设计的能力。
2、设计要求
1.选择恰当的数据结构表示页表
2.进程名,进程所需页数,进程进行的操作(装入/退出)等操作可有键盘输入,也可从文件读出。
3.每进行一次进程的装入或者退出操作,就显示出操作执行后内存中各页的分配情况。
四、程序功能说明
函数各模块部分功能
()创建内存新函数
()建立新进程
()回收进程,释放内存
(L)显示所有进程所占物理块信息
(L)查看进程信息
()显示内存块使用信息
函数的整体功能
这个程序是为了实现离散分配方式,以消减内存的外零头,提高内存的利用率,由系统把逻辑地址划分为页号和页内地址两部分。
通过这个程序实现了将进程分页处理,划分物理块。
五、算法整体思想
先定义A[100]来记录内存物理块;=99来记录内存物理块数=100来记录未使用的物理块数。
首先通过()函数初始化内存而后通过()建立新的进程,输入进程号,进程名,进程大小,计算出所需要的进程页数以及分配物理块。
通过()来删除所选择的进程信息,释放内存。
通过(L)显示以上两个函数所产生的进程信息。
而后通过(L)查看进程信息。
通过()显示内存物理块的分布情况。
当输入进程号>f,然后通过0至j>3时终止,如若>>f当是时进程存在,重新输入,当不是时>;如若非此情况则输入进程名称和进程大小,然后通过进程页数1024,若页内地址0,1显示所需页数,比较页数与物理块的大小,如果页数大于物理块数则内存物理块不足,新建进程失败;如果小于则分配内存物理块。
六、主要功能模块进程图
Y
N
Y
N
七、实验结果
添加进程
删除进程
内存使用情况
查看进程
八、实验总结
通过本次操作系统课设,本次课设为我们提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的机会。
进一步巩固和复习操作系统的基础知识。
培养我们结构化程序、模块化程序设计的方法和能力。
提高我们调试程序的技巧和软件设计的能力。
提高我们分析问题、解决问题以及综合利用C语言进行程序设计的能力。
本次课设掌握了如何创建一个进程,添加进程和删除进程。
通过本次课设,我也发现我的好多不足之处,首先在源程序的录入上就遇到了很大的麻烦,由于英文录入的速度比较慢,在源程序代码的录入上就花费了很多的功夫,还有就是C语言的基本功还不够扎实,出现了很多不该出现的毛病,还好在设计过程,让我深深体会到老师在课堂上讲的内容和要注意的地方的重要性,也正是老师在课堂上提前给我们做了提醒和学习,我在设计时才没花费太多的时间去更正这些问题。
在以后的学习中,我一定要注意基本功的学习。
谢谢老师对我的指导与教诲,在今后的学习中一定会用心再用心,不辜负老师对学生的教诲!
九、程序代码
""
""
""
A[100];内存物理块,0:
未使用,非0:
已使用
=99;记录内存的物理块数,值为A[100]最大下标
=100;记录内存未使用物理块数
{
f;进程号
[8];进程名
;进程大小
n;进程页数
[100];页表,下标表示页号,内容表示进程各页所在物理块
*;},*;内存初始化
()
{
i=0;
(i=0<=;)
A[i]=0;
}建立新进程
()
{
;
;
p;
;
()(());
p=L;
("输入进程号:
");
("">f);
0;
(p<3)查找进程号是否重复
{
(>>f)
p=>;
{
("\n该进程已存在,重新输入:
");
("">f);
p=重新指向头结点
;
}
}
(j<3)
{("输入进程名称:
");
("">);
("输入进程的大小:
");
("">);
>>1024;
>1024;
(0)
>>1;
("所需要的页数为:
");
("\n">n);
(>n>)
{
("\n内存物理块不足,新建进程失败!
!
!
\n\n");
}
{
>n;
m=0;
(0;i<=;)
(A[i]0m<>n)
{
A[i]>f;
>[m]=i;
;
}
(L)
L=;
{
p=L;查找最后一个节点
(>)
{
p=>;
}
>=;
}
>=;
}
}
{
("\n错误次数过多,返回主菜单:
");
}
}回收进程,释放内存
()
{
;z;
("请输入要删除的进程号:
");
("");
p=查找进程;用p记录
q=p;
(p)
{
(>)
{
("该进程已删除");
;
}
{
q=p;
p=>;
}
}
(p)
{
("\n该进程不存在!
!
!
\n");
}
{
(i=0;i<>n;)
A[>[i]]=0;
>n;
(>>f)要删除的是头结点
{
L=>;
}
{
>=>;
}
}
}显示所有进程占用的物理块
(L)
{
i=0;
("\n内存物理块分配情况:
\n");
p=L;
("该进程信息:
\n");
("进程号\t\t进程名称\t进程页数\t所用物理块\n");
(p)
{
("\t\t">f);
("\t\t">);
("\t\t">n);
i;
(i=0<>n;)
(",">[i]);
("\n");
p=>;
}
}查看进程
(L)
{
z;
("输入要查询的进程号");
("");
p=L;
()
{
(>f)
{
("进程号\t\t进程名称\t进程页数\t所用物理块\n");
("\t\t">f);
("\t\t">);
("\t\t">n);
i;
(i=0<>n;)
(",">[i]);
("\n");
;
}
>;
}
()
("要查询的进程不存在\n");
}显示内存块使用情况,不分进程
()
{
i=0;
("内存物理块分配情况\n");
(i=0;i<=;)
{("\t"[i]);
(109)
("\n");
}
}
()
{
();
;
0;
{
("\t\t基本分页存储管理算法\n");
("\t\t******************************\n");
("\t\t*1.添加进程2.删除进程*\n");
("\t\t*3.内存使用情况4.查看进程*\n");
("\t\t******************************\n");
("请选择():
");
("");
(i){
1:
(L);
(L);
;
2:
(L);
(L);
;
3:
();
;
4:
(L);
;
}
}(0);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本 分页 存储 管理 模拟 实现