非抢占式优先级算法
⑴ 嵌入式实时系统的抢占式调度和非抢占式调度
1)抢占式调度通常是优先级驱动的调度。每个任务都有优先级,任何时候老渣具有最高优先级且已拦桐启动的任务先执行。一个正在执行的任务放弃处理器的条件为:自愿放弃处理器(等待资源或执行完毕);有高优先级任务启动,该高优先级任务将抢占其执行。除了共享资源的临界段之外,高优先级任务一旦准备就绪,可在任何时候抢占低优先级任务的执行。抢占式调度的优点是实时性好、反应快,调度算法相对简单,可优先保证高优先级任务的时间约侍衡悄束,其缺点是上下文切换多。而非抢占式调度是指不允许任务在执行期间被中断,任务一旦占用处理器就必须执行完毕或自愿放弃。其优点是上下文切换少;缺点是在一般情况下,处理器有效资源利用率低,可调度性不好。
⑵ 非抢占式优先级调度算法
非抢占式优先级调度算法是一种操作系统进程调度算法,它的主要特点是按照进程的优先级进行非抢占式调度。在这种算法中,当一个进程正在运行时,不会因为其他进程的优先级更高而被中断,直到它自己完成或因某种原因放弃处理机。
非抢占式优先级调度算法的原理相对简单,主要包括以下几个步骤:
初始化:为每个进程分配一个优先级,优先级的数值越小,优先级越高。
调度:根据优先级高低,依次选择优先级最高的进程进行执行。当一个进程正在运行时,不会因为其他进程的优先级更高而被中断。
更新优先级:在每个时间片结束后,根据一定的策略更新进程的优先级,以保证公平性和避免饥饿现象。
非抢占式优先级调度算法主要用于批处理系统和某些对实时性要求不严的实时系统中。它可以充分利用系统的资源,提高系统的吞吐量和效率。同时,由于它不涉及抢占,因此可以避免因频繁切换进程而产生的开销。但是,该算法也存在一些问题,例如可能导致某些进程长时间得不到服务,出现“饥饿”现象。因此,在具体应用中需要根据实际情况进行选择。
⑶ 五种进程调度算法的总结;
1、时间片轮转调度 算法 (RR):给每个进程固定的执行时间,根据进程到达的先后顺序让进程在单位时间片内执行,执行完成后便调度下一个进程执行,时间片轮转调度不考虑进程等待时间和执行时间,属于抢占式调度。优点是兼顾长短作业;缺点是平均等待时间较长,上下文切换较费时。适用于分时系统。
2、先来先服务调度算法(FCFS):根据进程到达的先后顺序执行进程,不考虑等待时间和执行时间,会产生饥饿现象。属于非抢占式调度,优点是公平,实现简单;缺点是不利于短作业。
3、优先级调度算法(HPF):在进程等待队列中选择优先级最高的来执行。
4、多级反馈队列调度算法:将时间片轮转与优先级调度相结合,把进程按优先级分成不同的队列,先按优先级调度,优先级相同的,按时间片轮转。优点是兼顾长短作业,有较好的响应时间,可行性强,适用于各种作业环境。
5、高响应比优先调度算法:根据“响应比=(进程执行时间+进程等待时间)/ 进程执行时间”这个公式得到的响应比来进行调度。高响应比优先算法在等待时间相同的情况下,作业执行的时间越短,响应比越高,满足段任务优先,同时响应比会随着等待时间增加而变大,优先级会提高,能够避免饥饿现象。优点是兼顾长短作业,缺点是计算响应比开销大,适用于批处理系统。