我对类 Unix 机器上的用户模式和主管模式有几个问题。
用户模式和主管模式有什么区别?我知道用户进程无法访问所有内存和硬件并执行所有指令。还有更多吗?
不同模式有什么好处?
从用户模式切换到管理员模式时涉及哪些步骤?
当用户程序进行系统调用时,模式必须从用户模式更改为管理员模式。我在其他地方读到,这是通过使用 int x80 在 x86 机器上实现的。那么模式切换与中断处理有何不同呢?
它与上下文切换有何不同?
在不同的架构中是如何实现监督者模式的?
任何答案或指示将不胜感激!
我对类 Unix 机器上的用户模式和主管模式有几个问题。
用户模式和主管模式有什么区别?我知道用户进程无法访问所有内存和硬件并执行所有指令。还有更多吗?
不同模式有什么好处?
从用户模式切换到管理员模式时涉及哪些步骤?
当用户程序进行系统调用时,模式必须从用户模式更改为管理员模式。我在其他地方读到,这是通过使用 int x80 在 x86 机器上实现的。那么模式切换与中断处理有何不同呢?
它与上下文切换有何不同?
在不同的架构中是如何实现监督者模式的?
任何答案或指示将不胜感激!
CPU 在物理上不允许访问被确定为“特权”的区域。因为这是在硬件中强制执行的,所以它使您的操作系统能够自我保护。如果没有这种机制,操作系统就不会有“安全性”,因为最晦涩的代码片段可以简单地访问内核内存并读取所有密码。
用户模式到主管模式的切换很昂贵,因为它是上下文切换,并且出于安全目的,必须刷新缓存(否则您可能能够访问您不打算访问的内容)。
至于上下文切换,这本质上涉及切换到内核模式以执行任务。当 CPU 调度程序定时器中断触发时,它会切换到内核模式,选择下一个要执行的任务,然后切换回用户模式并恢复下一个任务。
存在两个概念:
在硬件管理模式下执行的代码很少,主要是低级别的中断例程和启动的最开始。甚至大部分软件内核模式都是在硬件用户模式下执行的。