【问题标题】:User mode vs supervisor mode用户模式与主管模式
【发布时间】:2009-01-26 05:54:58
【问题描述】:

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

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

不同模式有什么好处?

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

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

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

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

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

【问题讨论】:

  • “内核模式”是您所谓的“主管模式”的常用术语。在 UNIX/Linux 系统上,“supervisor”可以指以 root 用户身份运行的进程,这与内核模式不同。

标签: switch-statement supervisor-mode


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    存在两个概念:

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

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

    【讨论】:

      猜你喜欢
      • 2015-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 2014-02-05
      • 1970-01-01
      • 1970-01-01
      • 2016-05-03
      相关资源
      最近更新 更多