我了解如果程序需要访问某些受保护的指令,则需要使用系统调用接口。IO 设备访问就是一个例子。生成一个中断,将模式设置为内核模式等。
我的问题是:如何阻止程序访问超出其进程边界的内存。例如访问超出其长度的访问数组或只是任意访问 ta 随机内存地址。
我理解的方式,只有操作系统有能力检查程序是否在其范围内访问内存。并且为了能够使用操作系统,需要中断。这是否意味着数组/变量内存分配必须是系统调用。我对此表示怀疑。
另一种选择是内存控制器或处理器有能力确保程序不会访问超出其范围的内存。
在这方面的任何澄清将不胜感激。