码迷,mamicode.com
首页 > 其他好文 > 详细

用户空间和内核空间

时间:2021-01-22 11:51:06      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:程序崩溃   虚拟   inux   interrupt   loading   外部   资源   block   文件   

用户空间和内核空间

? 学习Linux时,经常可以看到两个词:User space(用户空间)可 Kernel space(内容空间)

简单的锁,Kernel space是Linux内核的运行空间,User space 是用户程序的运行空间。为了安全,它们是隔离的。即使用户的程序崩溃了,内核也不受影响、

? 虚拟的内存被操作系统划分成两块:内核空间和用户空间,内核空间是内核代码运行的地方,用户空间是用户程序代码运行的地方。当进行运行在内核空间的时就处于内核状态,大概进程运行在用户空间时就处于用户态。

? Kernel space 可以执行任意命令,调用系统的一切资源。User space只能执行简单的运算。不能直接调用系统资源。必须通过系统接口(又称system call),才能发出指令。

? 通过系统接口,进程可以从用户空间切换到内核空间。

str = "m" //用户空间
x = x + 2;
file.write(str) //切换到内核空间
y = x + 4;//切换回用户空间

? 上面代码中,第一行和第二行都是简单的赋值运算。在User space 执行。第三行需要写入文件,就要切换到Kernel space ,因为用户不能直接写文件,必须通过内核安排。第四行又是赋值运算,接切回User space。

? 查看CPU时间在User space 与 Kernel Space之间的分配情况,可以使用top命令。他的第三行输出就是cpu的时间分配统计

技术图片

? 其中第一项3.2us 就是cpu消耗在User space 的时间百分比。第二项 3.2sy是消耗在Kernel space的时间百分比

? ni : niceness的缩写,CPU消耗在nice进程(低优先级)的时间百分比

? id :idle的缩写,CPU消耗在闲置进程的世界百分比,这个值越低,表示CPU越忙

? wa:wait缩写,CPU等待外部I/O的时间百分比,这段时间CPU不能干其他时间,但是也没有执行运算,这个值太高就说明外部设备有问题

? hi:hardware interrupt 的缩写,CPU 响应硬件中断请求的时间百分比

? si:software interrupt 的缩写,CPU响应软件中断请求的时间百分比

? st :stole time 的缩写,该项指标只对虚拟机有效,表示分配给当前虚拟机的cpu时间之中,被同一台物理机上的其它虚拟机偷走的时间

用户空间和内核空间

标签:程序崩溃   虚拟   inux   interrupt   loading   外部   资源   block   文件   

原文地址:https://www.cnblogs.com/lvjingying/p/14307752.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!