【问题标题】:When CPU protection ring play it's role?CPU保护环什么时候发挥作用?
【发布时间】:2018-06-20 04:01:07
【问题描述】:

我正在阅读 cpu protection ringssystem call 工作。但这让我想到了一个不同的问题。如果我不(即用户程序)不使用内核 API 调用(系统调用),并且如果可能的话,将所有内容写入汇编并执行它会怎样。如果用户程序有一些不一致的代码,CPU 不能执行它们,否则系统可能会崩溃。但是在什么时候 CPU 意识到不能执行特定的instruction xyzw?保护级别如何在这里发挥关键作用?底层 ISA 是否为每条指令预定义了特权级别?

谢谢。

【问题讨论】:

  • 如果您尝试访问地址 X,则必须使用页表对其进行转换。在那里检查您是否有权访问该位置以及哪些权限。

标签: operating-system system-calls


【解决方案1】:

如果用户程序有一些不一致的代码,CPU不能 执行它们,否则系统可能会崩溃。但是在什么时间点 CPU意识到不能执行特定指令xyzw?

这是什么意思?

如果有错误的东西,比如除以 0,cpu 会在尝试执行它时引发异常。这会将您切换到内核,操作系统决定要做什么 - 通常会终止该进程。 modulo cpu bugs 这是所有“不一致”指令都会发生的情况。

cpu 一直引发异常并切换到内核 - 页面错误、第一次使用 fpu 等等都是标准原因。

【讨论】:

    猜你喜欢
    • 2021-04-26
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    • 2017-03-10
    • 2011-02-22
    • 2011-10-27
    • 2010-11-18
    • 1970-01-01
    相关资源
    最近更新 更多