use*_*860 3 supervisor-mode switch-statement
我有几个关于类 Unix 机器上的用户模式和主管模式的问题。
用户模式和主管模式有什么区别?我知道用户进程无法访问所有内存和硬件并执行所有指令。还有更多吗?
不同模式有什么好处?
从用户模式切换到管理员模式需要哪些步骤?
当用户程序进行系统调用时,模式必须从用户模式更改为管理员模式。我在别处读到这是通过使用 int x80 在 x86 机器上实现的。那么模式切换与中断处理有何不同?
它与上下文切换有何不同?
不同架构下如何实现监管模式?
任何答案或指示将不胜感激!
CPU 将不允许访问被确定为“特权”的区域。因为这是在硬件中强制执行的,所以它使您的操作系统能够自我保护。没有这种机制,操作系统就没有“安全性”,因为最晦涩的代码段可以简单地访问内核内存并读取所有密码。
用户模式到主管模式的切换很昂贵,因为它是上下文切换,并且出于安全目的必须刷新缓存(否则您可能能够访问您不希望访问的内容)。
至于上下文切换,这本质上涉及切换到内核模式以执行任务。当 CPU 调度程序定时器中断触发时,它会切换到内核模式,选择下一个要执行的任务,然后切换回用户模式并继续执行下一个任务。