操作系统-03-操作系统的作业管理
进程调度
进程调度是指计算机通过决策决定哪一个就绪进程可以获得CPU的使用权。
进程调度一般需要保留旧进程的运行信息,请出旧进程,再选择新进程,准备运行环境并分配CPU。
在了解进程调度之前,先了解下面的机制。
就绪队列的排队机制
在前文中我们知道所有的就绪进程都摆放在操作系统的就绪队列里。
就绪队列的排队机制就是将就绪进程按照一定的方式排成队列,以便调度程序可以最快找到就绪进程。
选择运行进程的委派机制
调度程序以一定的策略选择就绪进程,将CPU资源分配给它。
新老进程的上下文切换机制
保存当前进程的上下文信息,装入被委派执行进程的运行上下文。
非抢占式的调度
处理器一旦分配给某个进程,就让该进程一直使用下去
调度程序不以任何原因抢占正在被使用的处理器,直到进程完成工作或因为IO阻塞才会让出处理器
抢占式调度
允许调度程序以一定的策略暂停当前运行的进程
保存好旧进程的上下文信息,分配处理器给新进程
image-20210303230057946调度算法
先来先服务算法
按照先来先服务的原则,优先取出队列前面的进程进行调度。
短进程优先调度算法
调度程序优先选择就绪队列中估计运行时间最短的进程
短进程优先不利于长作业进程的执行。
高优先权优先调度算法
进程附带优先权,调度程序优先选择权重高的进程
高优先权先调度算法使得紧迫的任务可以优先处理
时间片轮转调度算法
按先来先服务的原则排列就绪进程
每次从队列头部取出待执行进程,分配一个时间片执行
是相对公平的调度算法,但不能保证及时响应用户
死锁
死锁是指两个或两个以上的进程在执行过程 中,由于竞争资源
或者由于彼此通信
而造成 的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的 进程称为死锁进程。
死锁的产生
竞争资源
共享资源数量不满足各个进程需求
各个进程之间发生资源竞争导致死锁
进程调度顺序不当
如题。
死锁的四个必要条件
互斥条件
进程对资源的使用时是排他性使用
,某资源只能由一个进程使用,其他进程需要只能等待
请求保持条件
进程至少保持一个资源,又提出了新的资源请求
新资源被占用,请求被阻塞
被阻塞的进程不释放自己保持的资源
不可剥夺条件
进程获得的资源在未完成使用前不可被剥夺
获得的资源只能由进程自身释放
环路等待条件
发生死锁时,必然存在进程-资源
环形链
死锁的处理
预防死锁的方法
摒弃请求保持条件
系统规定进程运行之前,一次性申请所有需要的资源
进程在运行期间不会提出资源请求,从而摒弃请求保持条件
摒弃不可剥夺条件
当一个进程请求新的资源得不到满足时,必须释放占有的资源
进程运行时占有的资源可以被释放,意味着可以被剥夺
摒弃环路等待条件
可用资源线性排序,申请必须按照需要递增申请
线性申请不再形成环路,从而摒弃了环路等待条件
银行家算法
内容略,按需百度。