进程和处理机调度

来源:互联网 发布:java基础知识考试题目 编辑:程序博客网 时间:2024/04/30 23:58

n         死锁:指各并发进程彼此等待对方所占用的资源,且这些进程在未得到对方资源前不会释放自己所拥有的资源,从而导致并发进程不能继续向前推进的状态

    产生死锁的四个必要条件:资源互斥、非剥夺、请求和保持(部分分配)、环路等待。

n         死锁的解决方案

a)         预防:在系统设计时确定资源分配算法,保证不发生死锁

具体的方法是破坏产生死锁的四个必要条件之一

b)        避免:在系统运行过程中,对进程发出的每个系统能够满足的资源申请进行动态检查,

    并根据检查结果决定是否分配资源,若分配后系统可能发生思索,则不予分配,否则

    予以分配

c)         检测及解除

                                          1、允许死锁发生,操作系统不断监视系统进展情况,判断死锁是否发生

        2、一旦死锁发生则采取专门的措施,解除死锁并以最小的代价恢复操作系统的运行

n         进程调度

a)         进程调度的任务是控制协调进程对CPU的竞争,即按一定的调度算法从就绪队列中选中一个 进程,把CPU的使用权交给被选中的进程

b)         算法原则

                                i.      具有公平性

                              ii.       资源利用率高——特别是CPU的利用率

                             iii.       在交互式系统情况下追求相应时间

                            iv.        在批处理系统情况下追求系统吞吐量

n         各种进程调度算法

a)         先进先出进程调度算法(FIFOFCFS

                              i.         按照进程就绪的先后次序来调度进程

                             ii.        优点:实现简单

                            iii.         缺点:没考虑进程的优先级

b)        最短作业优先(SJF

                              i.        要求进程执行前先估计执行时间,给执行时间短的进程优先分配处理机

                             ii.        优点:缩短了等待时间,提高吞吐量

                            iii.        缺点;不利于长作业,时间估算不准

c)         基于优先级的调度(HPF——Highest Priority First

                              i.        优先选择就绪队列中优先级高的进程投入运行

                             ii.        优先级根据优先数来决定

d)         时间片轮转程序调度算法

    把CPU划分若干时间片,并且按顺序付给就绪队列中的每一个进程,进城

轮流占有CPU,当时间片用完时,即使进程未执行完毕,四通也剥夺该进程的CPU

将该进程排在就绪队列末尾,同时系统选择另一个进程运行。

e)        多级队列反馈调度算法

        将就绪队列分为N级,每个就绪队列分配给不同的时间片,队列级别越高,时间越长,级别越小,时间片越小,最后一级采用时间片轮转,其他队列采用先进先出;系统从第一级调度,当地一级为空时,系统转向第二队列......当运行进程用完一个时间片,放弃CPU时,进入下一级队列;等待进程被唤醒时,进入原来的就绪队列;当进程第一次就绪时,进入第一级队列。          

 

 

 

 
原创粉丝点击