操作系统中抢占式和非抢占式内核的区别
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
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。