进程调度
一.进程调度基础
在单个CPU下,在任何时刻只能有一个进程处于执行,
进程调度是操作系统进程管理的一个重要部分,其任务是选择下一个要运行的进程
进程调度的目标:达到极小化平均响应时间,极大化系统吞吐率,保持系统各个功能部件均处于繁忙状态(因为CPU非常昂贵,让其闲置是一种浪费)和提供某种貌似公平的机制
二.基本调度算法
先来先服务算法(fcfs):优点-简单且容易实现,缺点-用户的交互式体验比较差
时间片轮转算法:周期性的进行进程切换(每个进程轮流执行一定时间)
短任务优先算法:任务用优先级区分,短任务的优先级比长任务高,安排优先级高的任务先运行
非抢占式:当已经在CPU上运行的任务结束或阻塞时,从候选任务中选择执行时间最短的进程来执行
抢占式:每增加一个新的进程就需要对所有进程(包括正在CPU上运行的进程)进行检查,谁的时间短就运行谁
优先级调度算法:给每个进程赋予一个优先级,每次需要进程切换时,找一个优先级最高的进程进行调度
混合调度算法:将所有进程分为不同的大类,每个大类为一个优先级,如果两个进程处于不同的大类,则处于高优先级大类的进程优先执行,如果处于同一个大类,则采用时间片轮转算法来执行
进程调度的过程:
三.调度异常之优先级倒挂
优先级倒挂指的是一个低优先级任务持有一个被高优先级任务所需要的共享资源,这样高优先级任务因为资源缺乏而处于受阻状态,一直到低优先级任务释放资源为止,这样就造成了这两个任务的优先级倒挂
作者:周旭龙
出处:http://edisonchou.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
http://www.cnblogs.com/edisonchou/p/5022508.html