【发布时间】:2021-08-02 02:38:50
【问题描述】:
不确定这里是否有人可以回答这个问题。
我了解到操作系统会检查程序的指令是否更改了其分配的内存之外的内容,如果发生更改,则操作系统将不允许程序执行此操作。
但是,如果操作系统必须对每条指令进行检查,这不会占用至少 5/6 的 CPU 吗?我试图复制这个,这就是我想出多少时钟周期来检查每条指令。
如果我理解错了,请纠正我,因为我无法想象一个操作系统会占用这么多 CPU。
【问题讨论】:
-
有硬件辅助。最简单的有两种模式,特权和用户。不允许用户接触特权寄存器或内存地址(通常由页表强制执行,只能由特权位创建)。更复杂的具有更细粒度的功能,因此某些系统寄存器可用,或提供预设值以假装它们可用。
标签: memory operating-system cpu