1.无进程的内核
在一些操作系统当中操作系统的内核在所有的进程之外执行。也就是说操作系统有自己的内存区域和系统栈,当进程发生 中断,陷阱或系统调用时,此进程的上下文环境被保存在系统栈中,控制权转移给内核。操作系统执行完毕后,恢复进程的上 下文,此进程继续执行,或者保存该进程的上下文环境,然后指派另一进程执行。
2.在用户进程中执行
在操作系统管理
的n个进程映像中,不仅仅有进程控制块,用户栈和用户专有数据空间,还有内核栈和所有进程共享着的操作系统代码。
当发生一个中断,陷阱或是系统调用时,处理器置于内核态,控制权交给操作系统处理,并将此进程上下文环境保存起来进行模式切换。当中断完成后,恢复进程继续执行或是将控制权交给进程切换例程进行进程切换,这样进程中断并恢复执行的过程中只需要进行模式切换而不需要进行进程切换,从而减少开销。
3.基于进程的操作系统
把操作系统作为一组普通的系统进程来执行,既当一个进程发生中断,陷阱或是系统调用时,处理器转变为内核态,进程切换例程切换至系统进程,并保存用户进程的上下文执行环境,也就是说,内核函数被组织成独立的进程。当终端结束时,恢复用户进程继续执行,处理器转变为用户态,由进程切换例程将系统进程切换为用户进程,或是将控制权交给分派器执行下一进程。