操作系统的作业管理

进程调度是什么?

指计算机通过决策决定哪个就绪进程获得cpu的使用权

两个步骤:

1>保留旧进程的运行信息,清出就进城

2>准备新进程的运行环境并分配cpu

进程调度的三种机制

1>就绪队列的排队机制

 

 

将就绪进程按照一定的方式排成队列,以便调度程序可以最快找到就绪进程。
2>选择运行进程的委派机制
调度程序以一定的策略选择就绪进程,将CPU资源分配给它。
3>新老进程的上下文切换
指的是保存当前进程的上下文信息,装入被委派执行进程的运行上下文。
CPU内部的高速缓存(cache)里的老进程上下文备份到主存,将新进程的上下文存入CPU的cache。

进程调度方式可以分为两种,按照老进程是否执行完成。

非抢占式调度,抢占式调度

非抢占式:

◆ 处理器一旦分配给某个进程,就让该进程一直使用下去

◆ 调度程序不以任何原因抢占正在被使用的处理器
◆ 直到进程完成工作或因为IO阻塞才会让出处理器
抢占式:
◆ 允许调度程序以一定的策略暂停当前运行的进程
◆ 保存好旧进程的上下文信息,分配处理器给新进程
 
进程调度的算法:
◆ 先来先服务调度算法
 优先选择就绪队列中靠前的进程。
◆ 短进程优先调度算法
优先选择就绪队列中估计运行时间最短的进程。
不利于长作业进程执行。
◆ 高优先权优先调度算法
进程附带优先权,优先选择权重高的进程执行,使得紧迫任务可以优先处理,例如前台进程的优先级高于后台进程。
◆ 时间片轮转调度算法
按照先来先服务排列进程,每次从头部取出进程并分配时间片执行,时间片的时间结束,插入就绪队列尾部,相对公平。
 
死锁
 
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。
死锁的产生原因是竞争资源或者进程调度顺序不当。竞争资源指共享资源数量不满足各个进程需求,各个进程之间发生资源竞争导致死锁。
 
死锁的四个必要条件
互斥条件
进程对资源的使用是排他性的使用,资源只能一个进程使用,其他进程只能等待。
请求保持条件
进程运行时至少保持持有一个资源,又提出新的资源请求,新资源被占用,请求阻塞,被阻塞的进程不释放资源。
不可剥夺条件
进程资源在未完成使用前不能被剥夺,获得的资源只能有进程自身释放。
环路等待条件
发生死锁时,必然存在进程-资源环形链。
破坏任意一个条件就可以破坏死锁
如,系统规定运行之前一次性申请所有所需资源。(请求保持条件)。当一个进程请求新的资源得不到满足,必须释放占有的资源。(请求保持条件)。可用资源先行排序,申请必须按照需要递增申请(环形等待条件)。
 
 
posted @ 2022-04-28 17:34  wangao96  阅读(144)  评论(0编辑  收藏  举报