文档介绍:操作系统原理实验报告学生姓名徐心萌学号专业班级物联网工程1501学院信息科学与工程学院完成时间2017年6月9日目录实验一银行家算法 4一、实验目的 4二、实验要求 4三、实验原理 4四、程序框图 6五、实验结果 7六、实验小结 8实验二页面置换算法 9一、实验目的 9二、实验要求 9三、实验原理 9四、程序框图 10五、实验结果 12六、实验小结 12实验三调度算法 13一、实验目的 13二、实验要求 13三、实验原理 13四、程序框图 14五、实验结果 16六、实验小结 18实验四地址转换 19一、实验目的 19二、实验要求 19三、实验原理 19四、程序框图 20五、实验结果 22六、实验小结 23程序清单 24实验一银行家算法一、实验目的1、进一步深入理解死锁的概念、产生死锁的原因、避免死锁和解除死锁的方法;2、掌握利用银行家算法避免死锁的方法。二、实验要求模拟银行家算法避免死锁的实现过程三、实验原理银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系统在进行资源分配之前,系统必须首先确定是否有足够的资源分配给该进程,然后计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则让进城等待。数据结构如下:(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。(4)需求矩阵Need:一个n×m的矩阵,用以表示每一个进程尚需的各类资源数。如果Need[i,j]=K,则表示进程i还需要Rj类资源K个,方能完成其任务。YNYY系统分配资源系统不分配资源开始数据结构初始化资源请求超过该进程的需求值?进程Pi发出资源请求资源请求超过当前可用资源值?系统资源试探性分配是否存在一个安全序列?结束NN四、程序框图五、实验结果六、实验小结银行家算法是一个思路很清楚的办法,在编写的过程中,在安全性算法那一步思考了很久,思考找到安全序列的办法,最后选择用贪心法求得安全序列。整个算法的核心主要是对于安全状态和不安全状态的判断,分两步,第一部是系统对请求值的合法性进行检查,第二部是安全性检查,看是否能找到看安全序列,若试探性分配后能找到安全序列,则进行分配,否则不予分配,从而达到避免死锁的目的。实验二页面置换算法一、实验目的1、进一步了解页面置换的原理和要求;2、理解最佳置换算法、先进先出、最近最久未使用、最少使用等各类置换算法的原理。二、实验要求利用各类置换算法实现对页面的置换三、实验原理1、先进先出置换算法(FIFO):是最简单的页面置换算法。这种算法的基本思想是:当需要淘汰一个页面时,总是选择驻留主存时间最长的页面进行淘汰,即先进入主存的页面先淘汰。其理由是:最早调入主存的页面不再被使用的可能性最大。2、最近最久未使用(LRU)算法:这种算法的基本思想是:利用局部性原理,根据一个作业在执行过程中过去的页面访问历史来推测未来的行为。它认为过去一段时间里不曾被访问过的页面,在最近的将来可能也不会再被访问。所以,这种算法的实质是:当需要淘汰一个页面时,总是选择在最近一段时间内最久不用的页面予以淘汰。 四、程序框图(FIFO置换算法)Y直接调用页面将页面调入内存开始页面申请页面是否在内存里?内存页面数是否达到上限?替换最先进入内存的页面结束YNN