3

我对类 Unix 机器上的用户模式和主管模式有几个问题。

用户模式和主管模式有什么区别?我知道用户进程无法访问所有内存和硬件并执行所有指令。还有更多吗?

不同模式有什么好处?

从用户模式切换到管理员模式时涉及哪些步骤?

当用户程序进行系统调用时,模式必须从用户模式更改为管理员模式。我在其他地方读到,这是通过使用 int x80 在 x86 机器上实现的。那么模式切换与中断处理有何不同呢?

它与上下文切换有何不同?

在不同的架构中是如何实现监督者模式的?

任何答案或指示将不胜感激!

4

2 回答 2

5

CPU 在物理上不允许访问被确定为“特权”的区域。因为这是在硬件中强制执行的,所以它使您的操作系统能够自我保护。如果没有这种机制,操作系统就不会有“安全性”,因为最晦涩的代码片段可以简单地访问内核内存并读取所有密码。

用户模式到主管模式的切换很昂贵,因为它是上下文切换,并且出于安全目的,必须刷新缓存(否则您可能能够访问您不打算访问的内容)。

至于上下文切换,这本质上涉及切换到内核模式以执行任务。当 CPU 调度程序定时器中断触发时,它会切换到内核模式,选择下一个要执行的任务,然后切换回用户模式并恢复下一个任务。

于 2009-01-26T05:59:54.653 回答
3

存在两个概念:

  • 软件用户/内核模式,在执行系统调用或返回表单系统调用时相互切换,
  • 硬件用户/管理员模式,它们在中断时相互切换。

在硬件管理模式下执行的代码很少,主要是低级别的中断例程和启动的最开始。甚至大部分软件内核模式都是在硬件用户模式下执行的。

于 2009-01-26T06:28:22.520 回答