操作系统中抢占式和非抢占式内核的区别

1. 抢占式内核

顾名思义,抢占式内核是一种始终执行准备运行的最高优先级任务的内核。它不能使用非重入函数,除非并且直到函数是互斥的。

示例:Linux 2-6

2. 非抢占式内核

顾名思义,非抢占式内核是一种在内核数据结构上没有竞争条件的内核,因为一次只有一个进程在内核中处于活动状态。它被认为是实时应用程序的一个严重缺点,因为它不允许抢占在内核模式下运行的进程。

示例 : Linux 2.4

操作系统中抢占式和非抢占式内核的区别

抢占式内核 非抢占式内核
这是一个可以立即替换的过程。 这是一个继续运行的进程,直到它完成处理执行处理程序或自愿放弃 CPU。
与非抢占式内核相比,它更适合实时编程。 与抢占式内核相比,它不太适合实时编程。
在这种情况下,准备运行的更高优先级的任务被赋予 CPU 控制权。 在这种情况下,每个任务都被明确放弃了 CPU 控制。
即使在内核模式下,它通常也允许抢占。 它通常不允许抢占在内核模式下运行的进程。
响应时间是确定性的,与非抢占式内核相比,响应时间响应更快。 响应时间是不确定的,与抢占式内核相比,响应时间的响应速度较慢。
优先级较高的任务准备就绪,当前正在运行的任务将挂起并移动到就绪队列。 优先级较高的任务可能需要等待很长时间。
它不需要信号量。 共享数据通常需要信号量。
它不能使用非重入代码。 它可以使用非重入代码。
与非抢占式内核相比,设计抢占式内核更加困难。 与抢占式内核相比,设计非抢占式内核的难度较小。
它们在实际方案中更安全、更有用。 它们在实际场景中不太安全且用处不大。

操作系统中抢占式和非抢占式内核的区别

欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:操作系统中抢占式和非抢占式内核的区别
本文链接:https://www.vsdiffer.com/vs/difference-between-preemptive-and-non-preemptive-kernel-in-os.html
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。

相关主题

随机