可以做动画的网站都有哪些软件下载六安人事考试网

当前位置: 首页 > news >正文

可以做动画的网站都有哪些软件下载,六安人事考试网,积分购物型网站,西安网站建设huanxi进程都希望自己能够占用CPU进行工作#xff0c;那么这涉及到前面说过的进程上下文切换。 一旦操作系统把进程切换到运行状态#xff0c;也就意味着该进程占用着CPU在执行#xff0c;但是操作系统把进程切换到其他状态的时候#xff0c;就不能在CPU中执行了#xff0c;于是…进程都希望自己能够占用CPU进行工作那么这涉及到前面说过的进程上下文切换。 一旦操作系统把进程切换到运行状态也就意味着该进程占用着CPU在执行但是操作系统把进程切换到其他状态的时候就不能在CPU中执行了于是操作系统会选择下一个要运行的进程。 选择一个进程运行这一功能是在操作系统中完成的通常称为调度程序scheduler。 调度时机 在进程的生命周期中当进程从一个运行状态到另一个状态变化的时候其实就会触发一次调度。 比如 从就绪态 - 运行态当进程被创建的时候会进入到就绪队列操作系统会从就绪队列选择一个进程运行从运行态 - 阻塞态当进程发生I/O事件而阻塞时操作系统必须选择另外一个进程运行从运行态 -结束态当进程退出结束后操作系统得从就绪队列选择另外一个进程运行 因为这些状态变化的时候操作系统是需要考虑是否要让新的进程给CPU运行或者是否让当前进程从CPU上退出来而换到另一个进程运行。 另外如果硬件时钟提供某个频率的周期性中断那么可以根据如何处理时钟中断把调度算法分为两类 非抢占式调度算法挑选一个进程然后让该进程运行直到被阻塞或者直到该进程退出才会调用另一个进程也就是说不会管时钟中断这个事情抢占式调度算法挑选一个进程然后让该进程只允许某段时间如果在该时间段结束时该进程仍然在运行则会将其挂起接着调度程序从就绪队列中挑选另外一个进程。这种抢占式调度处理需要在时间间隔的末端发生时钟中断以便把CPU控制返回给调度程序进行调度也就是时间片机制 调度原则 原则一如果运行的程序发生了I/O事件的请求那么CPU使用率肯定很低因为此时进程在阻塞等待硬盘的数据返回。这样的过程势必会造成CPU突然的空闲。所以为了提高CPU利用率在这种发送I/O事件致使CPU空闲的情况下调度程序需要从就绪队列中选择一个进程来运行。 原则二有的程序执行某个任务花费的时间会比较长如果这个程序一直占用着CPU会造成系统吞吐量CPU单位时间内完成的进程数量的降低。所以要提高系统的吞吐率调度程序要权衡长任务和短任务进程的运行完成数量。 原则三从进程开始到结束的过程中实际上是包含两个时间分别是进程运行时间和进程等待时间这两个时间总和就称为周转时间。进程的周转时间越小越好如果进程的等待时间很长而运行的时间很短那周转时间就很长这不是我们所希望的调度程序应该避免这种情况发生。 原则四处于就绪队列的进程也不能等太久当然希望这个等待的时间越短越好这样可以使得进程更快的在CPU中执行。所以就绪队列中进程的等待时间也是调度程序所需要考虑的原则。 原则五对于鼠标、键盘这种交互式比较强的应用我们当然希望它的响应时间越快越好否则就会影响用户体验。所以对于交互式比较强的应用响应时间也是调度程序需要考虑的原则。 针对上面的五种调度原则总结成如下 CPU利用率调度程序应确保CPU是始终匆忙的状态这可以提高CPU的利用率系统吞吐量吞吐量表示的是单位时间内CPU完成进程的数量长时间的进程会占用较长的CPU资源因此会降低吞吐量相反短作业的进程会提升系统吞吐量周转时间周转时间是进程运行 阻塞时间 等待时间的总和一个进程的周转时间越小越好等待时间这个等待时间不是阻塞状态的时间而是进程处于就绪队列的时间等待时间越长用户越不满意响应时间用户提交请求到系统第一次产生响应所花费的时间在交互式系统中响应时间是衡量调度算法好坏的主要标准。 调度算法 不同的调度算法适用的场景也是不同的。 单核CPU系统中常见的调度算法   先来先服务调度算法 最简单的一个调度算法就是非抢占式的先来先服务算法FCFS 每次从就绪队列选择最先进入队列的进程然后一直运行直到进程退出或被阻塞才会继续从队列中选择第一个进程接着运行。 这似乎很合理但是当一个作业先运行了那么后面的短作业等待的时间就会很长不利于短作业。 FCFS对长作业有利适用于CPU繁忙型作业的系统而不适用于I/O繁忙型作业的系统。 最短作业优先调度算法 最短作业优先SJF调度算法它会优先选择运行时间最短的进程来运行这有助于提高系统的吞吐量。 这显然对长作业不利很容易造成一种极端现象。 比如一个长作业在就绪队列等待运行而这个就绪队列有非常多的短作业那么就会使得长作业不断地往后推周转时间边长致使长作业长期不会被运行。 高响应比优先调度算法 前面的 [先来先服务调度算法] 和 [最短作业优先调度算法] 都没有很好的权衡短作业和长作业。 那么高响应比优先HRRN调度算法主要是权衡了短作业和长作业。 每次进行进程调度时先计算 [响应比优先级] 然后把 [响应比优先级]最高的进程投入运行 [响应比优先级]的计算公式 从上面的公式可以发现 如果两个进程的 [等待时间] 相同 [要求的服务时间] 越短[响应比] 就越高这样短作业的进程容易被选中运行如果两个进程 [要求的服务时间] 相同时 [等待时间] 越长[响应比] 就越高这就兼顾到了长作业的进程因为进程的响应比可以随时间等待的增加而提高当其等待时间足够长时其响应比便可以升到很高从而获得运行的机会 但是进程要求的服务时间是不可知的所以高响应比优先调度算法是理想型的调度算法现实中是实现不了的。 时间片轮转调度算法 最古老最简单最公平且最广泛的算法就是时间片轮转RR调度算法。 每一个进程被分配一个时间段称为时间片即允许该进程在该时间段中运行。 如果时间片用完进程还在运行那么将会把此进程从CPU释放出来并把CPU分配给另外一个进程如果该进程在时间片结束前阻塞或结束则CPU立即进行切换 另外时间片的长度就是一个很关键的点 如果时间片设的太短会导致过多的进程上下文切换降低了CPU效率如果设的太长了又可能引起对短作业进程的响应时间变长 一般来说时间片设为 20ms~50ms 通常是一个比较合理的折中值 最高优先级调度算法 前面的 [时间片轮转算法] 做了个假设即让所有的进程同等重要大家的运行时间都是一样。 但是对于用户计算机系统它们希望调度是有优先级的即希望调度程序能从就绪队列中选择最高优先级的进程进行运行这称为最高优先级HPF算法。 进程的优先级可以分为静态优先级和动态优先级 静态优先级创建进程的时候就已经确定了然后整个运行时间优先级都不会变化动态优先级根据进程的动态变化调整优先级比如如果进程运行时间增加则降低其优先级如果进程等待时间就绪队列的等待时间增加则升高其优先级也就是随着时间的推移增加等待进程的优先级 该算法也有两种处理优先级的方法非抢占式和抢占式 非抢占式当就绪队列中出现优先级高的进程运行完当前进程再选择优先级高的进程抢占式当就绪队列中出现优先级高的进程当前进程挂起调度优先级高的进程运行 但是依然有缺点可能会导致低优先级的进程永远不会运行。 多级反馈队列调度算法 多级反馈队列MFQ调度算法是 [时间片轮转算法] 和 [最高优先级算法] 的综合和发展。 [多级] 表示有多个队列每个队列的优先级从高到低同时优先级越高时间片越短 [反馈] 表示如果有新的进程加入优先级高的队列时立刻停止当前正在运行的进程转而去运行优先级高的队列 工作方式 设置多个队列赋予每个队列不同的优先级每个队列优先级从高到低同时优先级越高时间片越短新的进程会被放入到第一级队列的末尾按先来先服务的原则排队等待调度如果在第一级队列规定的时间片没运行完成则将其转入到第二级队列的末尾以此类推直至完成当较高优先级的队列为空才调度较低优先级的队列中的进程运行。如果进程运行时有新进程进入较高优先级的队列则停止当前运行的进程并将其移入到原队列末尾接着让较高优先级的进程运行。 可以发现对于短作业可能可以在第一级队列很快被处理完成。对于长作业如果在第一级队列处理不完可以移入下次队列等待被执行虽然等待时间变长了但是运行时间也变长了所以该算法很好的兼顾了长短作业同时有较好的响应时间。