点我查看秘籍连载算法
进程可分为两种类型。一是操做系统自身运行时的内核类进程,也称为操做系统进程。另外一种即非内核类进程,不是操做系统自身的进程,而是想要实现某些功能,用户本身去启动的程序产生的进程,也称为用户类进程或用户进程。操作系统
操做系统自身也是一个程序,它启动以后也有不少内核进程在后台工做,并且这些内核进程都很是重要,是操做系统正常运行并提供服务的必要进程,好比负责调度类的进程、内存管理类进程等。3d
而操做系统要提供程序的运行平台,还要管理各种软硬件资源(好比进程调度是在管理CPU资源,内存的分配和回收是在管理内存资源,等等),那么操做系统必然要以一种最高权限的方式去运行,其它用户进程都必须不能具有这个最高权限。blog
此外,操做系统必需要在任何有须要的时候掌握CPU的控制权,由于进程是经过CPU去执行的,操做系统掌握了CPU的控制权,就表明操做系统进程开始执行。例如,在任何须要进行进程调度的时候,必须可以当即回到操做系统,让负责进程调度的进程开始根据调度算法去调度下一个进程。进程
提示内存
需注意,内核模式和用户模式这两种进程状态是CPU提供的控制,而不是操做系统提供的。在CPU中一个称为PSW(program status word,程序状态字)的寄存器中保存了和进程有关的一些控制位,例如内核模式和用户模式的进程状态。资源
这两种模式描述了进程的工做状态,是工做在内核模式下仍是工做在用户模式下。在内核模式下,表示具有了最高权限,操做系统自身进程都是工做在内核模式下;在用户模式下,执行的代码将受到一些限制,用户进程都是工做在用户模式下,该模式下的进程不能执行一些关键性的操做,好比用户进程必须不能让它本身也变成内核态进程工做在内核模式下,这样的话,权限的限制就没有意义了。get
工做在这两种状态下的进程也称为内核态进程和用户态进程。一般,为了在描述问题时区份内核模式和用户模式的进程,也会把这两种模式称为用户空间和内核空间。如图。内存管理
那么如何保证在须要的时候,可以当即切换回操做系统呢?经过中断,且待后文再述。后台