3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
1、操作系统算法的都有哪些撰写时间:2024年XX月XX日 (一) 在操作系统中存在多种调度算法,其中有的调度算法适用于作业调度,有的调度算法适用于进程调度,有的调度算法两者都适用。下面介绍几种常用的调度算法。 先来先服务(FCFS)调度算法 FCFS调度算法是一种最简单的调度算法,该调度算法既可以用于作业调度也可以用于进程调度。在作业调度中,算法每次从后备作业队列中选择最先进入该队列的一个或几个作业,将它们调入内存,分配必要的资源,创建进程并放入就绪队列。 在进程调度中,FCFS调度算法每次从就绪队列中选择最先进入该队列的进程,将处理机分配给它,使之投入运行,直到完成或因某种原因而阻塞时才释放处
2、理机。 下面通过一个实例来说明FCFS调度算法的性能。假设系统中有4个作业,它们的提交时间分别是8、8.4、8.8、9,运行时间依次是2、1、0.5、0.2,系统釆用FCFS调度算法,这组作业的平均等待时间、平均周转时间和平均带权周转时间见表2-3。 平均等待时间 t = (0x1.6x2.2x2.5)/4=1.575 平均周转时间 T = (2x2.6x2.7x2.7)/4=2.5 平均带权周转时间 W = (1x2.6x5.牡13.5)/4=5.625 FCFS调度算法属于不可剥夺算法。从表面上看,它对所有作业都是公平的,但若一个长作业先到达系统,就会使后面许多短作业等待很长时间,因此它不
3、能作为分时系统和实时系统的主要调度策略。但它常被结合在其他调度策略中使用。例如,在使用优先级作为调度策略的系统中,往往对多个具有相同优先级的进程按FCFS原则处理。 FCFS调度算法的特点是算法简单,但效率低;对长作业比较有利,但对短作业不利(相对SJF和高响应比);有利于CPU繁忙型作业,而不利于I/O繁忙型作业。 短作业优先(SJF)调度算法 短作业(进程)优先调度算法是指对短作业(进程)优先调度的算法。短作业优先(SJF)调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。而短进程优先(SPF)调度算法,则是从就绪队列中选择一个估计运行时间最短的进程,将处理
4、机分配给它,使之立即执行,直到完成或发生某事件而阻塞时,才释放处理机。 例如,考虑表2-3中给出的一组作业,若系统釆用短作业优先调度算法,其平星空体育在线入口均等待时间、平均周转时间和平均带权周转时间见表2-4。 平均等待时间 t = (0x2.3x1.4x1)/4=1.175 平均周转时间 T = (2x3.3x1.9x1.2)/4=2.1 平均带权周转时间 W = (1x3.3x3.8x6)/4=3.525 SJF调度算法也存在不容忽视的缺点: 该算法对长作业不利,由表2-3和表2-4可知,SJF调度算法中长作业的周转时间会增加。更严重的是,如果有一长作业进入系统的后备队列,由于调度程序总是优先调度那些
5、(即使是后进来的)短作业,将导致长作业长期不被调度(饥饿现象,注意区分死锁。后者是系统环形等待,前者是调度策略问题)。 该算法完全未考虑作业的紧迫程度,因而不能保证紧迫性作业会被及时处理。 由于作业的长短只是根据用户所提供的估计执行时间而定的,而用户又可能会有意或无意地缩短其作业的估计运行时间,致使该算法不一定能真正做到短作业优先调度。 注意,SJF调度算法的平均等待时间、平均周转时间最少。 优先级调度算法 优先级调度算法又称优先权调度算法,该算法既可以用于作业调度,也可以用于进程调度,该算法中的优先级用于描述作业运行的紧迫程度。 在作业调度中,优先级调度算法每次从后备作业队列中选择优先级最髙
6、的一个或几个作业,将它们调入内存,分配必要的资源,创建进程并放入就绪队列。在进程调度中,优先级调度算法每次从就绪队列中选择优先级最高的进程,将处理机分配给它,使之投入运行。 根据新的更高优先级进程能否抢占正在执行的进程,可将该调度算法分为: 非剥夺式优先级调度算法。当某一个进程正在处理机上运行时,即使有某个更为重要或紧迫的进程进入就绪队列,仍然让正在运行的进程继续运行,直到由于其自身的原因而主动让出处理机时(任务完成或等待事件),才把处理机分配给更为重要或紧迫的进程。 剥夺式优先级调度算法。当一个进程正在处理机上运行时,若有某个更为重要或紧迫的进程进入就绪队列,则立即暂停正在运行的进程,将处理
7、机分配给更重要或紧迫的进程。 而根据进程创建后其优先级是否可以改变,可以将进程优先级分为以下两种: 静态优先级。优先级是在创建进程时确定的,且在进程的整个运行期间保持不变。确定静态优先级的主要依据有进程类型、进程对资源的要求、用户要求。 动态优先级。在进程运行过程中,根据进程情况的变化动态调整优先级。动态调整优先级的主要依据为进程占有CPU时间的长短、就绪进程等待CPU时间的长短。 高响应比优先调度算法 高响应比优先调度算法主要用于作业调度,该算法是对FCFS调度算法和SJF调度算法的一种综合平衡,同时考虑每个作业的等待时间和估计的运行时间。在每次进行作业调度时,先计算后备作业队列中每个作业的
8、响应比,从中选出响应比最高的作业投入运行。 根据公式可知: 当作业的等待时间相同时,则要求服务时间越短,其响应比越高,有利于短作业。 当要求服务时间相同时,作业的响应比由其等待时间决定,等待时间越长,其响应比越高,因而它实现的是先来先服务。 对于长作业,作业的响应比可以随等待时间的增加而提高,当其等待时间足够长时,其响应比便可升到很高,从而也可获得处理机。克服了饥饿状态,兼顾了长作业。 时间片轮转调度算法 时间片轮转调度算法主要适用于分时系统。在这种算法中,系统将所有就绪进程按到达时间的先后次序排成一个队列,进程调度程序总是选择就绪队列中第一个进程执行,即先来先服务的原则,但仅能运行一个时间片
9、,如1ms。在使用完一个时间片后,即使进程并未完成其运行,它也必须释放出(被剥夺)处理机给下一个就绪的进程,而被剥夺的进程返回到就绪队列的末尾重新排队,等候再次运行。 在时间片轮转调度算法中,时间片的大小对系统性能的影响很大。如果时间片足够大,以至于所有进程都能在一个时间片内执行完毕,则时间片轮转调度算法就退化为先来先服务调度算法。如果时间片很小,那么处理机将在进程间过于频繁切换,使处理机的开销增大,而真正用于运行用户进程的时间将减少。因此时间片的大小应选择适当。 时间片的长短通常由以下因素确定:系统的响应时间、就绪队列中的进程数目和系统的处理能力。 多级反馈队列调度算法(集合了前几种算法的优
10、点) 多级反馈队列调度算法是时间片轮转调度算法和优先级调度算法的综合和发展,如图2-5 所示。通过动态调整进程优先级和时间片大小,多级反馈队列调度算法可以兼顾多方面的系统目标。例如,为提高系统吞吐量和缩短平均周转时间而照顾短进程;为获得较好的I/O设备利用率和缩短响应时间而照顾I/O型进程;同时,也不必事先估计进程的执行时间。 多级反馈队列调度算法 多级反馈队列调度算法的实现思想如下: 1.应设置多个就绪队列,并为各个队列赋予不同的优先级,第1级队列的优先级最高,第2级队列次之,其余队列的优先级逐次降低。 2.赋予各个队列中进程执行时间片的大小也各不相同,在优先级越高的队列中,每个进程的运行时
11、间片就越小。例如,第2级队列的时间片要比第1级队列的时间片长一倍, 第ix1级队列的时间片要比第i级队列的时间片长一倍。 3.当一个新进程进入内存后,首先将它放入第1级队列的末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第2级队列的末尾,再同样地按FCFS 原则等待调度执行;如果它在第2级队列中运行一个时间片后仍未完成,再以同样的方法放入第3级队列如此下去,当一个长进程从第1级队列依次降到第 n 级队列后,在第 n 级队列中便釆用时间片轮转的方式运行。 4.仅当第1级队列为空时,调度程序才
12、调度第2级队列中的进程运行;仅当第1 (i-1)级队列均为空时,才会调度第i级队列中的进程运行。如果处理机正在执行第i级队列中的某进程时,又有新进程进入优先级较高的队列(第 1 (i-1)中的任何一个队列),则此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进程放回到第i级队列的末尾,把处理机分配给新到的更高优先级的进程。 多级反馈队列的优势有: 终端型作业用户:短作业优先。 短批处理作业用户:周转时间较短。 长批处理作业用户:经过前面几个队列得到部分执行,不会长期得不到处理。 (二) 学了半个学期的操作系统,是不是感觉恍恍惚惚这周学的银行家算法是不是很多同学被绕晕了作业也让人迷
13、糊那今天办公室王老师就给大家梳理梳理! 啥是银行家算法 银行家算法是一种用来避免操作系统死锁出现的有效算法。为了让大家更好的理解,我们在解释银行家算法之前,先跟大家说说死锁的概念。 死锁 是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 死锁产生的四个必要条件: 1) 互斥条件:在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。 2) 请求和保持条件:指进程已经保持至少一个资源,
14、但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。 3) 不抢占条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。 4) 循环等待条件:指在发生死锁时,必然存在一个进程资源的环形链,即进程集合P0,P1,P2,Pn中的P0正在等待一个P1占用的资源;P1正在等待P2占用的资源,Pn正在等待已被P0占用的资源。 为实现银行家算法,系统必须设置若干数据结构。想更好解释银行家算法,那就得先跟大家先解释操作系统安全状态和不安全状态,以及安全序列。 安全序列: 是指一个进程序列P1,Pn是安全的,即对于每一个星空体育在线入口进程Pi(1in),它以后尚需要的资源量不超过系统当前剩余资源量与所有进程Pj (j i )当前占有资源量之和。 安全状态: 如果存在一个由系统中所有进程构成的安全序列P1,Pn,则系统处于安全状态。安全状态一定是没有死锁发生。 不安全状态: 不存在一个安全序列。不安全状态不一定导致死锁。 接下来跟大家解释一下银行家算法的数据结构与两个向量! 数据结构:
本文(2024年操作系统算法的都有哪些.docx)为本站会员(1****)主动上传,汇文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知汇文网(点击联系客服),我们立即给予删除!