📅  最后修改于: 2023-12-03 15:10:12.879000             🧑  作者: Mango
在操作系统中,内核可以分为抢占式内核和非抢占式内核两种类型。两者的区别在于它们在进程执行过程中能否被中断,进而被其他进程抢占CPU。
非抢占式内核(Non-preemptive kernel)是指内核不会被强制被中断,也就是说,一个进程在执行时,如果没有执行完,其他进程是不能够使用CPU资源的。这种内核的最主要优点是代码实现简单而且开销小,因为内核只需要在进程执行完后才去主动抢占CPU,不需要考虑中途被打断的情况。但是这种内核存在的问题是,当一个进程出现死循环或无限阻塞等情况时,整个系统就会被这个进程卡住。
抢占式内核(Preemptive kernel)是指内核可以被其他进程强制中断,从而能够有机会将CPU资源分配给其他进程执行。在抢占式内核中,内核需要通过时钟中断、硬件中断、信号传递等机制对进程的执行进行调度,从而避免了死循环和无限阻塞的情况。此外,抢占式内核还能够支持对多核CPU的利用,提高了系统的并发性能。