说“linux内核是抢占式的”是什么意思?

我读到Linux内核是抢占式的,这与大多数Unix内核不同。那么,内核先发制人到底意味着什么呢

一些类比或例子比纯粹的理论解释要好

添加1–2018年7月12日上午11:00

先发制人只是多任务的一种范例。还有一些类似于协作式多任务处理。通过比较可以更好地理解它们

在Linux内核版本2.5.4之前,Linux内核不是抢占式的,这意味着在内核模式下运行的进程不能移出处理器,直到它自己离开处理器或开始等待某些输入输出操作完成

通常,用户模式下的进程可以使用系统调用进入内核模式。以前,当内核为非抢占式时,低优先级进程可以通过重复调用系统调用并保持内核模式来拒绝高优先级进程访问处理器,从而使高优先级进程优先级反转。即使较低优先级进程的时间片过期,它也将继续运行,直到它在内核中完成工作或自动放弃控制为止。如果等待运行的高优先级进程是用户正在键入的文本编辑器或准备重新填充音频缓冲区的MP3播放器,则结果是交互性能较差。这种非抢占式内核是当时的一个主要缺点

发表评论