用户模式 ​​vs 管理员模式

use*_*860 3 supervisor-mode switch-statement

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

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

不同模式有什么好处?

从用户模式切换到管理员模式需要哪些步骤?

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

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

不同架构下如何实现监管模式?

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

Spe*_*nce 5

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

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

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