进程调度
进程调度是指计算机通过决策决定哪一个就绪进程可以获得CPU的使用权。
进程调度一般需要保留旧进程的运行信息,请出旧进程,再选择新进程,准备运行环境并分配CPU。
在了解进程调度之前,先了解下面的机制。
就绪队列的排队机制
在前文中我们知道所有的就绪进程都摆放在操作系统的就绪队列里。
就绪队列的排队机制就是将就绪进程按照一定的方式排成队列,以便调度程序可以最快找到就绪进程。
选择运行进程的委派机制
调度程序以一定的策略选择就绪进程,将CPU资源分配给它。
新老进程的上下文切换机制
保存当前进程的上下文信息,装入被委派执行进程的运行上下文。
非抢占式的调度
处理器一旦分配给某个进程,就让该进程一直使用下去
调度程序不以任何原因抢占正在被使用的处理器,直到进程完成工作或因为IO阻塞才会让出处理器
抢占式调度
允许调度程序以一定的策略暂停当前运行的进程
保存好旧进程的上下文信息,分配处理器给新进程

调度算法
先来先服务算法
按照先来先服务的原则,优先取出队列前面的进程进行调度。
短进程优先调度算法
调度程序优先选择就绪队列中估计运行时间最短的进程
短进程优先不利于长作业进程的执行。
高优先权优先调度算法
进程附带优先权,调度程序优先选择权重高的进程
高优先权先调度算法使得紧迫的任务可以优先处理
时间片轮转调度算法
按先来先服务的原则排列就绪进程
每次从队列头部取出待执行进程,分配一个时间片执行
是相对公平的调度算法,但不能保证及时响应用户
死锁
死锁是指两个或两个以上的进程在执行过程 中,由于竞争资源
或者由于彼此通信
而造成 的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的 进程称为死锁进程。
死锁的产生
竞争资源
共享资源数量不满足各个进程需求
各个进程之间发生资源竞争导致死锁
进程调度顺序不当
如题。
死锁的四个必要条件
互斥条件
进程对资源的使用时是排他性使用
,某资源只能由一个进程使用,其他进程需要只能等待
请求保持条件
进程至少保持一个资源,又提出了新的资源请求
新资源被占用,请求被阻塞
被阻塞的进程不释放自己保持的资源
不可剥夺条件
进程获得的资源在未完成使用前不可被剥夺
获得的资源只能由进程自身释放
环路等待条件
发生死锁时,必然存在进程-资源
环形链
死锁的处理
预防死锁的方法
摒弃请求保持条件
系统规定进程运行之前,一次性申请所有需要的资源
进程在运行期间不会提出资源请求,从而摒弃请求保持条件
摒弃不可剥夺条件
当一个进程请求新的资源得不到满足时,必须释放占有的资源
进程运行时占有的资源可以被释放,意味着可以被剥夺
摒弃环路等待条件
可用资源线性排序,申请必须按照需要递增申请
线性申请不再形成环路,从而摒弃了环路等待条件
银行家算法
内容略,按需百度。
网友评论