上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.3.3 可抢占与不可抢占
在操作系统对进程(或线程)的调度策略中存在两种不同的调度方式:可抢占方式和不可抢占方式。在可抢占方式下,操作系统以时间片(Time Slice)为单位来完成进程调度。针对每个进程,一次只能运行一个或几个时间片,一旦时间片消耗完毕,操作系统就会强行暂停其运行,而选择其他重新获得时间片的进程投入运行。在不可抢占方式下,进程会一直运行,操作系统不会强制剥夺其运行权,而是等待其自行放弃运行为止(或者是发生系统调用)。一般情况下,只有系统调用时,操作系统才进行新一轮调度。
这两种方式在嵌入式操作系统中都被大规模地应用。但很显然,可抢占调度机制具备更好的实时性,因此在一些对实时性要求很高的场合,一般采用可抢占调度方式。但可抢占调度方式会引发另外一个问题,即多个进程之间对共享资源访问的同步问题。因此,在实现可抢占调度的同时,必须实现互斥机制、同步机制等操作系统机制来解决可抢占性所带来的问题。不可抢占操作系统不存在“资源竞争”的问题,但也存在同步问题。Hello China操作系统的调度机制是基于可抢占方式制定的。