您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 计算机操作系统实验指导书(罗晓清)
《计算机操作系统》实验指导书罗晓清编写适用专业:计算机科学与技术江南大学物联网工程学院2011年10月1前言计算机操作系统(OperatingSystem简称OS)是计算机中最重要的系统软件,也是最活跃的学科之一,是计算机相关本科专业的核心课程。通过本课程的学习使学生掌握操作系统的基本概念、技术、原理,具备一定的从不同层次分析与使用操作系统功能的能力。了解计算机操作系统方面的新技术、新理论与新发展。本实验指导书,是根据《操作系统》课程教学大纲的要求而编写的,目的是让学生能够进一步了解操作系统的基本概念、原理,通过综合性、验证性和设计性等实验,熟练掌握操作系统的运行机理和各种算法思想,尤其是操作系统的核心功能。同时还希望通过实验进一步提高学生的动手能力和综合运用先修课程的能力。由于编写仓促,难免有错误和不足之处,恳请读者不吝赐教。2目录前言....................................................................................................................1实验一进程调度.....................................................................................................3实验二银行家算法.................................................................................................6实验三存储管理...................................................................................................103实验一进程调度实验学时:4学时实验类型:设计实验要求:必修一、实验目的多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处理机。因而引起进程调度。本实验模拟在单处理机情况下的处理机调度问题,加深对进程调度的理解。二、实验内容1.优先权法、轮转法简化假设1)进程为计算型的(无I/O)2)进程状态:ready、running、finish3)进程需要的CPU时间以时间片为单位确定2.算法描述1)优先权法——动态优先权当前运行进程用完时间片后,其优先权减去一个常数。2)轮转法三、流程图4产生n个进程,对每个进程用随机数产生进程的轮转时间片数及进程所需的时间片数,已占用CPU的时间片数置为0按进程产生的先后次序拉成就绪队列链链首进程投入运行时间片到,进程所需时间片数减1,已占用CPU时间片数加1输出各进程的运行情况进程所需时间片数=0?撤销该进程就绪队列为空吗?占用CPU的时间片数=轮转时间片数?占用CPU的时间片数置为0把该进程插入就绪队列尾BNYNYY结束N开始键盘输入进程数n,和调度方法的选择优先权法?轮转法产生n个进程,对每个进程产生一个PCB,并用随机数产生进程的优先权及进程所需的CPU时间按优先权大小,把n个进程拉成一个就绪队列初始化其他数据结构区链首进程投入运行时间片到,进程所需的CPU时间减1,优先权减3,输出个进程的运行情况所需的CPU时间=0?撤销进程就绪队列为空?结束将进程插入就绪队列NYNYYBN5四、实验要求1.产生的各种随机数的取值范围加以限制,如所需的CPU时间限制在1~20之间。2.进程数n不要太大通常取4~8个3.使用动态数据结构4.独立编程5.至少三种调度算法五、实验报告主要包括实验预习和实验报告两部分。学生在上机做实验前,要根据教师布置的题目,对实验内容应作相应的预习,编写相关程序,准备好测试数据,进行静态检查后方可上机。实验结束后,根据实验过程和结果写出实验报告,主要内容包括对实验数据、实验中的特殊现象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法等。严禁抄袭或拷贝他人的成果,自觉培养科学、严谨的作风。六、其它说明学生在实验过程中应遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理。。开始键盘输入进程数n,和调度方法的选择优先权法?轮转法产生n个进程,对每个进程产生一个PCB,并用随机数产生进程的优先权及进程所需的CPU时间按优先权大小,把n个进程拉成一个就绪队列初始化其他数据结构区链首进程投入运行时间片到,进程所需的CPU时间减1,优先权减3,输出个进程的运行情况所需的CPU时间=0?撤销进程就绪队列为空?结束将进程插入就绪队列NYNYYBN6实验二银行家算法实验学时:4学时实验类型:设计实验要求:必修一、实验目的死锁会引起计算机工作僵死,因此操作系统中必须防止。本实验的目的在于让学生独立的使用高级语言编写和调试一个系统动态分配资源的简单模拟程序,了解死锁产生的条件和原因,并采用银行家算法有效地防止死锁的发生,以加深对课堂上所讲授的知识的理解。二、实验要求设计有n个进程共享m个系统资源的系统,进程可动态的申请和释放资源,系统按各进程的申请动态的分配资源。系统能显示各个进程申请和释放资源,以及系统动态分配资源的过程,便于用户观察和分析;三、数据结构1.可利用资源向量Available,它是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源的数目,其初始值是系统中所配置的该类全部可用资源数目。其数值随该类资源的分配和回收而动态地改变。如果Available(j)=k,标是系统中现有Rj类资源k个。2.最大需求矩阵Max,这是一个n×m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果Max(i,j)=k,表示进程i需要Rj类资源的最大数目为k。3.分配矩阵Allocation,这是一个n×m的矩阵,它定义了系统中的每类资源当前一分配到每一个进程的资源数。如果Allocation(i,j)=k,表示进程i当前已经分到Rj类资源的数目为k。Allocationi表示进程i的分配向量,有矩阵Allocation7的第i行构成。4.需求矩阵Need,这是一个n×m的矩阵,用以表示每个进程还需要的各类资源的数目。如果Need(i,j)=k,表示进程i还需要Rj类资源k个,才能完成其任务。Needi表示进程i的需求向量,由矩阵Need的第i行构成。上述三个矩阵间存在关系:Need(i,j)=Max(i,j)-Allocation(i,j);四、银行家算法参考教材P96五、安全性算法1.设置两个向量。Work:它表示系统可提供给进程继续运行的各类资源数目,它包含m个元素,开始执行安全性算法时,Work=Available。Finish:它表示系统是否有足够的资源分配给进程,使之运行完成,开始Finish(I)=false;当有足够资源分配给进程Pi时,令Finish(i)=true;2.从进程集合中找到一个能满足下述条件的进程。Finish(i)==false;Needi≤work;如找到则执行步骤3;否则,执行步骤4;3.当进程Pi获得资源后,可顺利执行直到完成,并释放出分配给它的资源,故应执行Work=work+AllocationiFinish(i)=true;转向步骤2;4.若所有进程的Finish(i)都为true,则表示系统处于安全状态;否则,系统处于不安全状态。六、流程8开始输入资源数m,及各类资源总数,初始化Available向量输入进程数n,i=1输入进程i的最大需求向量max。i≤nmax≤资源总数提示错误重新输入i加1任选一个进程作为当前进程输入该进程的资源请求量Request调用银行家算法,及安全性算法,完成分配,或并给出提示该进程的Need向量为0该进程已运行结束Need矩阵为0所有进程运行都结束结束NYYNNY初始化need矩阵NY9七、实验报告主要包括实验预习和实验报告两部分。学生在上机做实验前,要根据教师布置的题目,对实验内容应作相应的预习,编写相关程序,准备好测试数据,进行静态检查后方可上机。实验结束后,根据实验过程和结果写出实验报告,主要内容包括对实验数据、实验中的特殊现象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法等。严禁抄袭或拷贝他人的成果,自觉培养科学、严谨的作风。八、其它说明学生在实验过程中应遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理。10实验三存储管理实验学时:4学时实验类型:设计实验要求:必修一、实验目的存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。本实验的目的是通过请求页式管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。二、实验内容(1)通过计算不同算法的命中率比较算法的优劣。同时也考虑了用户内存容量对命中率的影响。页面失效次数为每次访问相应指令时,该指令所对应的页不在内存中的次数。在本实验中,假定页面大小为1k,用户虚存容量为32k,用户内存容量为4页到32页。(2)produce_addstream通过随机数产生一个指令序列,共320条指令。A、指令的地址按下述原则生成:1)50%的指令是顺序执行的2)25%的指令是均匀分布在前地址部分3)25%的指令是均匀分布在后地址部分页地址流长度页面失效次数命中率111B、具体的实施方法是:1)在[0,319]的指令地址之间随机选取一起点m;2)顺序执行一条指令,即执行地址为m+1的指令;3)在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’;4)顺序执行一条指令,地址为m’+1的指令5)在后地址[m’+2,319]中随机选取一条指令并执行;6)重复上述步骤1)~5),直到执行320次指令C、将指令序列变换称为页地址流在用户虚存中,按每k存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:第0条~第9条指令为第0页(对应虚存地址为[0,9]);第10条~第19条指令为第1页(对应虚存地址为[10,19]);。。。。。。第310条~第319条指令为第31页(对应虚存地址为[310,319]);按以上方式,用户指令可组成32页。(3)计算并输出下属算法在不同内存容量下的命中率。1)先进先出的算法(FIFO);2)最近最少使用算法(LRU);12三、系统框图一、运行结果运行程序:开始生成地址流输入算法号S1≤S≤4形成地址页号用户内存空间msize=2Msize≤32OPT()FIFO()LRU()LFU()Msize加1S=?是否用其他算法继续结束NY1234YN提示出错,重新输入13a、终端先显示:Startmemorymanagement.Producingaddressflow,waitforwhile,please.b、地址流、地址页号流生成后,终端显示:Therearealgorithmsintheprogram1、Optimizationalgorithm2、Leastrecentlyusedalgorithm3、Firstinfirstoutalgorithm4、LeastfrequentlyusedalgorithmSelectanalgorithmnumber,please.用户输入适当淘汰算法的号码,并按回车,若是第一次选择,输出相应的地址页号流。然后输出该算法分别计算的用户内存从2k~32k时的命中率,若输入的号码不再1~4中,则显示:thereisnotthealgorithmintheprogram,并重复b。c、输出结果后,终端显示“doyoutryagainwithantheralgorithm(y/n)”。若键入y则重复b,否则结束。(一般讲四种算法都用过后结束,以便比较)。二、运行结果讨论1、比较各种算法的命中率2、分析当用户内存容量增加是对
本文标题:计算机操作系统实验指导书(罗晓清)
链接地址:https://www.777doc.com/doc-3193784 .html