用户user空间和内核kernel空间
为了避免用户进程直接操作内核,保证内核安全,操作系统将虚拟内存划分为两部分,一部分是内核空间(Kernel-space)/ˈkɜːnl /,一部分是用户空间(User-space)。
内核是操作系统的核心,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的权限。
内核空间中存放的是内核代码和数据,而进程的用户空间中存放的是用户程序的代码和数据。不管是内核空间还是用户空间,它们都处于虚拟空间中,都是对物理地址的映射。
在Linux 系统中, 内核进程和用户进程所占的虚拟内存比例是1:3。
当进程运行在内核空间时就处于内核态,而进程运行在用户空间时则处于用户态。
进程在内核空间以执行任意命令,调用系统的一切资源;在用户空间只能执行简单的运算,不能直接调用系统资源,必须通过系统接口(又称system call),才能向内核发出指令。
top 命令:
us 代表CPU 消耗在User space 的时间百分比;
sy 代表CPU 消耗在Kernel space 的时间百分比。