轮询任务调度和抢占式任务调度有什么区别

时间:2022-07-17 20:17:29

在多任务系统中,在同一时刻通常会有多个任务处于活动状态,操作系统此时就需要对资源进行管理,在任务实现资源(CPU、内存等)的共享。任务调度是指基于给定时间点、给定时间间隔或者给定制执行次数自动执行任务。轮询任务调度与抢占式任务调度的区别在于抢占式调度中的优先级可以抢占CPU,而轮询的不能。

具体而言,轮询调度的原理是每一次把来自用户的请求轮流的分配给内部服务器,从1开始,直到N(内部服务器的个数),然后重新开始循环。只有当前任务主动放弃CPU控制权的情况下(比如任务挂器),才允许其他任务(包括高优先级的任务)控制CPU。其优点是简洁性,无需记录当前所有连接的状态,所以,它是一种无状态的调度。但缺点是不利于后面的请求及时得到响应。抢占式调度允许高优先级的任务打断当前执行的任务,抢占CPU的控制权。这有利于后面的高优先级的任务也能及时得到响应。但是实现相对较复杂,并且可能出现低优先级的任务长期打得不到调度的情况。