问题
问答题
处理机为什么要区分核心态和用户态两种操作方式什么情况下进行两种方式的转换
答案
参考答案:在CPU中运行的操作系统程序和用户程序对应的机器指令集是不同的。操作系统程序使用所有指令,但用户程序只能使用部分指令。从资源管理和程序控制执行的角度出发,将指令系统分为两大部分:特权指令和非特权指令。在程序执行时,根据执行程序对资源和机器指令的使用权限,把机器设置为两个状态:核心态和用户态。
也就是说,当系统处于核心态时,就可以使用所有指令、资源,并具备改变CPU状态的能力;而当CPU在用户态时,只能使用非特权指令。
如果CPU执行用户程序时(用户态)出现了中断,系统将自行转到中断处理程序,CPU就由用户态转换到核心态;中断处理结束后,返回继续执行用户程序,此时CPU又由核心态转到用户态。