📜  操作系统中抢占式内核与非抢占式内核之间的区别(1)

📅  最后修改于: 2023-12-03 15:10:12.879000             🧑  作者: Mango

操作系统中抢占式内核与非抢占式内核之间的区别

在操作系统中,内核可以分为抢占式内核和非抢占式内核两种类型。两者的区别在于它们在进程执行过程中能否被中断,进而被其他进程抢占CPU。

非抢占式内核

非抢占式内核(Non-preemptive kernel)是指内核不会被强制被中断,也就是说,一个进程在执行时,如果没有执行完,其他进程是不能够使用CPU资源的。这种内核的最主要优点是代码实现简单而且开销小,因为内核只需要在进程执行完后才去主动抢占CPU,不需要考虑中途被打断的情况。但是这种内核存在的问题是,当一个进程出现死循环或无限阻塞等情况时,整个系统就会被这个进程卡住。

抢占式内核

抢占式内核(Preemptive kernel)是指内核可以被其他进程强制中断,从而能够有机会将CPU资源分配给其他进程执行。在抢占式内核中,内核需要通过时钟中断、硬件中断、信号传递等机制对进程的执行进行调度,从而避免了死循环和无限阻塞的情况。此外,抢占式内核还能够支持对多核CPU的利用,提高了系统的并发性能。

抢占式内核与非抢占式内核的差异
  • 实现复杂度:非抢占式内核的实现相对简单而且开销小,而抢占式内核需要实现各种中断机制和调度算法,因此相对复杂。
  • 代码可读性:由于非抢占式内核的实现简单,代码可读性更高。
  • 系统可靠性:由于抢占式内核具有更好的容错性,因此相对更可靠。
  • 系统性能:抢占式内核能够更好地支持多核处理器,提高系统的并发性能。
参考资料