1、湖南工业大学 课 程 设 计 资 料 袋 计算机与通信学院 学院(系、部) 2013~2014学年第1学期 课程名称计算机操作系统指导教师左新娥职称讲师 学生姓名陈彦兵专业班级网络1101学号11408400108 题 目存储管理系统设计 成 绩起止日期2013年12月9日~2013年12月15日 目 录 清 单 序号 材 料 名 称 资料数量 备 注 1 课程设计任务书 2 课程设计说明书 3 4 5 6 课程设计任务书 20
2、13 —2014学年第 1 学期 学院(系、部) 计算机与通信学院专业网络工程 班级111—2 课程名称:计算机操作系统学生姓名: 陈彦兵 设计题目:存储管理系统设计指导教师: 左新娥 完成期限:自 2013年12月9日至 2013年12月15日共1周 内 容 及 任 务 一、设计内容 设计一个允许n个进程并发运行的进程管理模拟系统。该系统包括有简单的进程控制、同步与通讯机构,其进程调度算法可以选择优先级调度,时间片轮转,短进程优先等。每个进程用一个PCB表示,其内容根据具体情况设置。各进程之间有一定的同步关系(可选)。系统在运行过程中应能显示或打
3、印各进程的状态及有关参数的变化情况,以便观察进程的运行过程及系统的管理过程。 二、设计任务 课程设计说明书(纸质+电子版),内容包括:设计内容、系统分析(包括可行性分析、需求分析等)及功能分析;系统设计(要求画出系统整体功能框图、流程图、并给出相应地关键的代码且对所使用的主要数据结构进行说明等。)、设计总结(评价/遇到的问题/体会/建议等)、使用说明等。 三、设计要求 1. 按功能要求开发系统,能正确运行。程序代码书写规范,有充足的注释。 2. 课程设计所使用的编程语言任选,但建议使用C或C++; 3. 绿色软件:程序运行不需安装,避免写系统和注册表; 进 度 安 排 起
4、止日期 工作内容 课程设计前一周 召开动员大会,学生选题; 2013—12-9~2013-12—10 系统分析和设计; 2013—12—11~2013-11-13 熟悉软件开发工具、编码系统、系统测试以及中期答辩; 2013—12—14~2013-12—15 撰写并提交课程设计说明书 (含电子文档)、源程序等. 主 要 参 考 资 料 [1]罗宇、邹鹏、邓胜兰等著.《操作系统》[M].北京:电子工业出版社,2011 [2]Andrew S.Tanenbaum 著.陈向群等译.《现代操作系统》[M].北京:机械工业出版社,2007 [3]邓胜兰编著.《操作系统
5、基础》[M].北京:机械工业出版社,2009 [4]Dave Probert著,陈向群等译《Windows操作系统原理》[M].北京:机械工业出版 ,2006 [5]罗宇 褚瑞等等著.《操作系统课程设计》[M].北京:机械工业出版,2004 指导教师(签字):年 月 日 系(教研室)主任(签字):年 月 日 2 课程设计说明书 课程名称:计算机操作系统 设计题目:存储管理系统设计 专 业:网络工程班级:1101 学生姓名: 陈彦兵学 号: 11408400108 指导教师:左新娥 2012年 12月 7日 .11. 目录 1
6、 课程设计简介4 1.1实验目的4 1。2 课程设计内容4 2课程设计实现过程5 2.1系统流程图5 2。2结构体及先关数组的设计6 2.3主要功能函数设计6 1.给物理块赋初值6 2.初始化页面并产生一组随机数6 3.查找是否有空闲内存7 4.查找内存中是否有该页面7 5.查找应予置换的页面7 3设计总结15 参考文献16 1 课程设计简介 1。1实验目的 通过请求页式存储管理中页面置换算法模拟程序,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。 1.2 课程设计内容 1。通过随机数产生一个指令序列,共320条指令,指令的地址按下述原则生产:
7、 50%的指令是顺序执行的; 25%的指令是均匀分布在前地址部分; 25%的指令是均匀分布在后地址部分。 2。将指令序列变换成为页地址流,设页面大小为1K;用户内存容量为4页到32页;用户虚存容量为32K。在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:第0条至第9条指令为第0页;第10条至19条指令为第1页;…第310条至319条指令为第31页. 3。计算并输出下述各种算法在不同内存容量下的命中率。 (1) 先进先出算法(FIFO) (2) 最近最少使用算法(LRU) (3) 最佳使用算(OPT) 命中率=1-页面失效次数/页地址流长度.
8、本实验中,页地址流长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。 1.3思路 设计一个类,把页面存储管理系统分成各个模块,把不同的功能进行封装。实现程序设计的安全易移植性。把各个分页算法分装在类的功能函数中。 2课程设计实现过程 开始 2.1系统流程图 是 产生一组随机数 选择页面置换速发 最久未使用 最佳置换算法 FIFO算法 运行结束 是否接着运行 否 程序结束 2。2结构体及先关数组的设计 1.主要结构体 用来存放物理块的大小以及页面是否已经被访问。 s
9、truct pageInfor
{
int ID;//页面号
int visit;//被访问标记
}; /* 页面逻辑结构,结构为方便算法实现设计*/
2。主要变量设计
#define Bsize 3 //物理块数
#define Psize 20 //页面块数
pageInfor * block;//物理块
pageInfor * page;//页面号串
2。3主要功能函数设计
1.给物理块赋初值
void BlockClear()
{
for(int i=0; i 10、i++)
{
block[i]。ID = -1;
block[i].visit = 0;
}
2.初始化页面并产生一组随机数
void inital()
{
int QString[Psize]={0};
srand(time(0));
for(int i=0;i〈20;i++)
{
QString[i]=rand()%10;
printf(”%d”,QString[i]);
}
cout〈〈endl;
block = new pageInfor[Bsize];
BlockClear();
11、 page = new pageInfor[Psize];
for(i=0; i〈Psize; i++)
{
page[i].ID = QString[i];
page[i]。visit = 0;
}
}
3.查找是否有空闲内存
int findSpace()
{
for(int i=0; i〈Bsize; i++)
if(block[i].ID == —1)
return i;//找到空闲内存,返回BLOCK中位置
return -1;
}
4.查找内存中是否有该页面
int findExist(int curpage)
{
f 12、or(int i=0; i〈Bsize; i++)
if(block[i]。ID == page[curpage]。ID)
return i;//找到内存中有该页面,返回BLOCK中位置
return —1;
}
5.查找应予置换的页面
int findReplace()
{
int pos = 0;
for(int i=0; i〈Bsize; i++)
if(block[i]。visit 〉= block[pos].visit)
pos = i;//找到应予置换页面,返回BLOCK中位置
return pos;
}
6.FIFO算法
void FIFO()
13、 {
count=0;
int exist,space,position ;
for(int i=0; i 14、 page[i];
display();
}
else
{
position = findReplace();
cout<〈”即将访问的是页面"〈〈page[i]。ID〈〈”\n将被置换出的是页面"〈〈block[position].ID<〈endl;
block[position] = page[i];
display();
count++;
}
}
for(int j=0; j 15、所有页面visit++
}
cout〈<”\nFIFO算法的缺页率是:”〈〈(float)count/20〈〈endl;
}
7.LRU算法
void LRU()
{
count=0;
int exist,space,position ;
for(int i=0; i 16、
block[exist]。visit = —1;//恢复存在的并刚访问过的BLOCK中页面visit为—1
}
else
{
space = findSpace();
if(space != —1)
{
block[space] = page[i];
display();
}
else
{
position = findReplace();
cout〈<”即将访问的是页面”〈〈pag 17、e[i].ID<<"\n将被置换出的是页面”< 18、0;
int exist,space,position ;
for(int i=0; i 19、ce] = page[i];
display();
}
else
{
for(int k=0; k〈Bsize; k++)
for(int j=i; j〈Psize; j++)
{
if(block[k].ID != page[j]。ID)
{
block[k]。visit = 1000;
}
else
{
block[k]。visit = j;
break;
}
} 20、
position = findReplace();
cout〈〈"即将访问的是页面”〈 21、页和块的大小相等,通过页表进行管理。页式系统的逻辑地址分为页号和页内位移量.页表包括页号和块号数据项,它们一一对应。根据逻辑空间的页号,查找页表对应项找到对应的块号,块号乘以块长,加上位移量就行成存储空间的物理地址.每个作业的逻辑地址空间是连续的,重定位到内存空间后就不一定连续了。
3. 写出这三种页面置换算法的实现思想。
FIFO算法总是淘汰最先调入主存的页面,即淘汰在主存中驻留时间最长的页面,认为驻留时间最长的页不再使用的可能性较大。
LRU算法淘汰的页面是最近一段时间内最久未被访问的那一页,它是基于程序局部性原理来考虑的,认为那些刚被使用过的页面可能还要立即被使用,而那些在较长时间 22、内未被使用的页面可能不会立即使用。
OPT算法,当要调入一页而必须淘汰旧页时,应该淘汰以后不再访问的页,或距现在最长时间后要访问的页面.
4.对不同算法的性能进行评价。
FIFO算法较易实现,对具有线性顺序特征的程序比较适用,而对具有其他特征的程序则效率不高,此算法还可能出现抖动现象异常。LRU算法基于程序的局部性原理,所以适用用大多数程序,此算实现必须维护一个特殊的队列—-页面淘汰队列。OPT算法虽然产生的缺页数最少,然而,却需要预测程序的页面引用串,这是无法预知的,不可能对程序的运行过程做出精确的断言,不过此理论算法可用做衡量各种具体算法的标准。
参考文献
[1]袁庆龙,候文义. 23、Ni-P合金镀层组织形貌及显微硬度研究[J].太原理工大学学报,2001,32(1):51—53.(连续出版物:[序号] 主要责任者.文献题名[J].刊名,出版年份,卷号(期号):起止页码)
[2] 刘国钧,王连成.图书馆史研究[M].北京:高等教育出版社,1979:15—18,31.(专著:[序号] 主要责任者.文献题名[M].出版地:出版者,出版年:起止页码.)
[3]孙品一.高校学报编辑工作现代化特征[C].中国高等学校自然科学学报研究会.科技编辑学论文集(2).北京:北京师范大学出版社,1998:10—22.(论文集:[序号] 主要责任者.文献题名[C]∥主编.论文集名.出版地:出版者,出版年:起止页码.)






