当前位置: 技术问答>linux和unix
:(关于用户态和内核态不懂,帮帮忙啊。
来源: 互联网 发布时间:2015-12-21
本文导语: 进程不管在用户态或内核态都可能要用CPU吧?那么用户态的进程使用CPU谁管理它啊?那不和内核态中的进程搅和在一起了?大家都挤到一个CPU上了。 | mz_1984() ( ) 信誉:100 Blog 2006-10-2...
进程不管在用户态或内核态都可能要用CPU吧?那么用户态的进程使用CPU谁管理它啊?那不和内核态中的进程搅和在一起了?大家都挤到一个CPU上了。
|
mz_1984() ( ) 信誉:100 Blog 2006-10-20 16:31:00 得分: 0
这个我了解到了,但是进程调度和管理程序不是属于内核的么?那么在用户态的进程使用CPU谁去管理它们啊?
它们不会打乱内核进程使用CPU的计划么?
内核去管理用户态的进程使用CPU啊,当用户态的进程的时间片用完时就会切换到其他进程
你说的“它们”是指用户进程吗?它们不会影响,CPU的使用是由内核控制的,用户态的进程无法自切换到其他进程,进程切换或调度都要内核来完成(进程切换使用的一些指令用户特权等级无法使用)
这个我了解到了,但是进程调度和管理程序不是属于内核的么?那么在用户态的进程使用CPU谁去管理它们啊?
它们不会打乱内核进程使用CPU的计划么?
内核去管理用户态的进程使用CPU啊,当用户态的进程的时间片用完时就会切换到其他进程
你说的“它们”是指用户进程吗?它们不会影响,CPU的使用是由内核控制的,用户态的进程无法自切换到其他进程,进程切换或调度都要内核来完成(进程切换使用的一些指令用户特权等级无法使用)
|
在内核态下,CPU可执行任何指令,在用户态下CPU只能执行非特权指令。当CPU处于内核态,可以随意进入用户态;而当CPU处于用户态,只能通过中断的方式进入内核态。一般程序一开始都是运行于用户态,当程序需要使用系统资源时,就必须通过调用软中断进入内核态.
|
用户从用户态切换到内核态只有在系统调用和中断两种情况下发生,而当CPU运行在内核态的时候,必须要让系统内核切换到用户态才能进入到用户态