进程优先级反转

来源:互联网 发布:819事变 知乎 编辑:程序博客网 时间:2024/06/05 17:56

进程优先级
进程优先级
控制,是分时操作系统对不同重要程度的进程时间片划分的一个参照标准.分时操作系统在一个进程的时间片使用完,或由于等待外设等原因而放弃时间片时,会根据进程的优先级来考虑接下来调度上CPU的进程,并确定其时间片长度.高优先级进程优先调度上CPU,并被配给较长的时间片.
每个进程都有一个固定优先级,这是以进程所做工作的实时性要求来决定的.例如,对IO操作进行控制的进程,通常使用中断控制,使用较低的优先级;而界面刷新进程,由于要快速相应用户操作,需要较高的实时性,即较高的优先级.
进程调度常用算法
① 静态优先级算法.进程在创建时就确定了它的优先级,而且进程运行过程中不再动态的改变.
② 动态优先级算法.在进程运行过程种优先级数可以动态变化.
③ 时间片轮算法.按照就绪进程先来先服务规则排成队列,每个进程分配给一个时间片.
进程优先级反转可以看作动态优先级算法的一个实现方式.
进程优先级反转
进程优先级的反转,是指在一定特殊情况下,为了避免一些问题(如:死锁),或为了提高系统整体效率,强制让高优先级的进程为低优先级进程让出时间片,造成实际进程优先级与预设值不符的现象或措施.
进程优先级反转的必要性
每个进程都有一个固定优先级,但是一直以固定优先级运行进程有时是不合理的.有时,低优先级进程需要比高优先级进程优先得到CPU时间片.
在如下几种情况下,需要进行高低优先级之间的优先级反转:
高优先级的进程要求获得一个资源,而此资源已被一个低优先级进程获得.在这种情况下,在一些先执行完高优先级进程才考虑低优先进程的调度算法中,会造成死锁.而且,为了效率问题,即使调度算法不只调度高优先算法,也必然把较多时间片分给高优先进程,低优先进程执行时间短,要较长时间才能释放资源,造成整体效率降低.
高优先级进程与低优先进程进行进程通信,高优先进程由于时间片长,调度上CPU的次数多,会长期由于通信通道缓存满(高优先进程写入)或空(高优先进程读出),造成大量的等待,使得系统
实现进程优先级反转的一般方法
对于多进程申请同一资源的情况,一般系统会对占用了可重用资源(内存,端口,设备)的进程,适当的提高优先级,使其尽快完成工作.对于多个进程共享内存,文件的优先控制,一般要由程序员自己留意.
对于进程通信优先级问题,很多系统中采用了,提高进程通信的低优先进程的优先,使其等于高优先进程的优先级.

原创粉丝点击