操作系统先进先出算法的实现.docx
《操作系统先进先出算法的实现.docx》由会员分享,可在线阅读,更多相关《操作系统先进先出算法的实现.docx(12页珍藏版)》请在冰豆网上搜索。
操作系统先进先出算法的实现
枣庄学院
信息科学与工程学院课程设计任务书
题目:
在Linux下先进先出算法的实现
学生1:
学生2:
专业:
计算机多媒体技术
课程:
操作系统
指导教师:
职称:
讲师
完成时间:
2013年12月----2014年1月
枣庄学院信息科学与工程学院制
2013年12月20日
课程设计任务书及成绩评定
课程设计的任务和具体要求
操作系统课程设计是操作系统课程学习的延续。
主要目的是配合操作系统课程的学习,对Linux操作系统有一定掌握,能够熟练操作,并能在Linux系统下模拟实现操作系统的功能,有助于对操作系统的理解。
本次课程设计共分两部分,其中第一部分为操作题,同学们需要对Linux的基本的命令(常用的几个,讲课的时候强调的),这部分,任课教师实时检查,让学生用命令完成一定的功能,然后,根据完成情况评定成绩。
第二部分为编程设计题,每组同学必须独立完成,可以选择进程调度,也可以根据自己的兴趣,选择模拟实现磁盘调度、银行家算法、页面置换算法等。
指导教师签字:
日期:
指导教师评语
成绩:
指导教师签字:
日期:
课程设计所需软件、硬件等
1.Windowsxp系统
2.WIN-TC
课程设计进度计划
起至日期
工作内容
备注
2012年12月20日
2012年12月23日
2012年12月24日
2012年12月25日
查找资料系统分析
概要设计
详细设计
写课程设计报告
参考文献、资料索引
序号
文献、资料名称
编著者
出版单位
[1]c语言课程设计案例精编清华大学出版社2004年版作者:
郭翠英
[2]计算机操作系统西安交通大学出版社2010年版作者:
殷士勇
[3]操作系统概念高等教育出版社2010年版作者:
西尔伯查茨
。
1.引言…………………………………………………………………………4
2.Linux的基本命令………………………………………………………4
2.1Linux目录管理有关命令………………………………………………4
2.2更改目录或文件访问权限的命令………………………………………4
2.3显示文件内容的命令……………………………………………………5
2.4文件管理命令……………………………………………………………5
3.算法思路……………………………………………………………………5
3.1先进先出算法步骤………………………………………………………5
3.2数据结构…………………………………………………………………6
3.3程序流程图………………………………………………………………6
3.4程序代码…………………………………………………………………6
4.程序调试……………………………………………………………………9
5.总结分析……………………………………………………………………10
1.引言
1.通过一学期的操作系统的学习,理解了一些linux操作系统的基本语法命令,也掌握了一些操作系统的运行过程,掌握了一些算法。
先进先出(FIFO)就是其中之一,我们想在期末课程设计来通过模拟实现请求页式存储管理的基本页面置换算法,了解虚拟存储技术的特点,掌握虚拟存储请求页式存储管理中基本页面置换算法的基本思想和实现过程。
2.虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。
在虚拟存储器系统中,作业无需全部装入,只要装入一部分就可运行。
本实验使用请求分页存储管理。
建立一个页表,要访问页面时,先查页表,若当前页在内存中,直接访问,不在内存中则调入该页到内存中,同时用FIFO算法淘汰最先进入内存的页。
3.操作系统课程设计是操作系统课程学习的延续。
主要目的是配合操作系统课程的学习,对LINUX操作系统有一定掌握,能够熟练操作,并能在LINUX系统下模拟实现操作系统的功能,有助于对操作系统的理解。
2.Linux的基本命令
2.1Linux目录管理有关命令
(1)pwd---显示当前工作目录的绝对路径
格式:
pwd
(2)cd---改变当前工作目录
命令格式:
cd[目录名]
(3)Ls---列出文件目录的信息
命令格式:
ls[可选项][子目录名][文件名]
(4)mkdir---建立目录
命令格式:
mkdir[可选项][目录名]
(5)rmdir---删除目录
本命令用于删除指定的一个或多个目录,必须保证要删除的目录中没有任何文件。
命令格式:
rmdir[可选项][目录名]
2.2更改目录或文件访问权限的命令
(1)Ls---查看访问权限
格式:
ls–l文件名
(2)chmod---改变文件或目录的访问权限
命令格式:
chmod[可选项][权限][目录或文件名]
(3)chgrp命令----改变文件或目录所属的组。
命令格式:
chgrp[选项]groupfilename
选项:
-R:
递归式地改变指定目录及其下的所有子目录和文件的属组
(4)chown----更改某个文件或目录的属主和属组
命令格式:
chown[选项]文件或目录的新属主[.文件或目录所在的新组][文件名|目录]
2.3显示文件内容的命令
(1)cat----显示,新建,连接文件
(2)more---在终端屏幕按屏显示文本文件。
命令格式:
more[-选项]文件
(3)less
less命令的功能几乎和more命令一样,也是用来按页显示文件,不同之处在于less命令在显示文件时允许用户既可以向前又可以向后翻阅文件。
(4)Head---显示文件或标准输入的头几行
命令格式:
head[-n]文件
(5)tail---显示文件的尾部
命令格式:
tail[+/-num][参数]文件
2.4文件管理命令
(1)touch---功能:
将文件的修改时间改为当前时间,如果文件不存在则建立一个空文件。
命令格式:
touch[-选项]文件
(2)cp---功能:
文件或目录的拷贝,如同dos的copy
命令格式:
cp[选项]源文件或目录目标文件或目录
(3)mv---功能:
为文件或目录改名或将文件由一个目录移入另一个目录中
命令格式:
mv[选项]源文件或目录目标文件或目录
(4)rm---功能:
删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除
3.算法的实现
在请求分页存储器管理系统设计中,先进先出(FIFO)算法是一种给出页面访问的顺序与分配给作业的主存块数,使用队列作为数据结构编写算法,实现统计缺页次数与页面置换操作,该算法总是先淘汰最先进入内存的页面,即选择在内存中停留时间最久的页面予以淘汰。
3.1先进先出算法步骤
(1)设置一些页面参数
intpagenum=0内存页面数
inttotal=0要访问的页面总数
intlacknumber缺页的总数
(2)设置一个队列
intseque[20]={0};队列长度设置为20,且初值设为0
(3)执行算法
输入1,2,3,4,1,2,5,1,2,3,4,5
以输入-1结束
3.2数据结构
Array[0][20]定义一个数组
Voidmain()系统主函数
Cin>>pagenum键盘输入页号
3.3程序流程图
程序流程图如下所示:
3.4程序代码
#include
usingnamespacestd;
intpagenum=0;
inttotal=0;
intlacknumber=0;
voidmain()
{
intarray[1][20];
for(inty=0;y<2;y++)
for(intx=0;x<20;x++)
{array[y][x]=-1;}
intseque[20]={0};
cout<<"请输入内存的页面数:
";
cin>>pagenum;
cout<<"请输入页面的访问顺序(输入-1结束):
";
for(inti=0;i<20;i++)
{
intnum;
cin>>num;
if(num!
=-1)
{
seque[i]=num;
total++;
}
Else
{seque[i]=num;break;}
}
cout<<"总的页面数为"< intj=0;
for(i=0;i {
if(i {
array[0][i]=seque[i];
cout<<"页面"< cout<<"缺页 此时页面内容为";
for(intj=0;j {cout< cout<<"(-1代表没有内容)"< }
cout< }
intkk=0;
for(i=pagenum;i{
intflag=0;
for(intk=0;k {
if(array[0][k]==seque[i])
{flag=1;break;}
}
cout< if(flag==1)
{ cout<<"页面"<cout<<"此时页面内容为";
for(intj=0;j {cout< }
cout< if(flag==0)
{
inttem=array[0][kk];
array[0][kk]=seque[i];
cout<<"页面"< cout<<"缺页 页面"< cout<<"此时页面内容为";
for(intj=0;j {cout< cout< kk++;
lacknumber++;
if(kk==pagenum)
{kk=0;}
}
}
lacknumber=pagenum+lacknumber;
cout<<"缺页率="<}
4.程序调试
.
5.总结分析
这次试验让我深刻的体会到先进先出算法在页面置换中的作用,它总是把最先进去的页面最早的置换出来,提高了进程在执行的速率。
使我对存储器管理有了更深刻的理解。
在写代码的过程中遇到了一些困难,主要是大一上学期学习的C语言,到现在时间跨度有点长,许多知识都已经生疏了,通过查询C语言的课本,询问老师和同学,不断的运行,改正,虽然还有很多不足之处,但由于时间紧迫,无法做到完美,万分抱歉,希望老师不要介意。
---------------------------XX
在排版的过程中,一次又一次的更正并追求与老师所要求的版式一致,可能有些地方理解的有些错误,但由于时间紧迫,无法做到完美,同样希望能得到老师的理解。
-------------------XX
友情提示:
范文可能无法思考和涵盖全面,供参考!
最好找专业人士起草或审核后使用,感谢您的下载!