【发布时间】:2021-03-23 11:26:53
【问题描述】:
我了解,如果程序需要访问某些受保护的指令,则需要使用系统调用接口。 IO 设备访问就是一个例子。生成一个中断,将模式设置为内核模式等。
我的问题是:如何阻止程序访问超出其进程边界的内存。例如访问超出其长度的访问数组或只是任意访问随机内存地址。
按照我的理解,只有操作系统才能检查程序是否在其范围内访问内存。并且为了能够使用操作系统,需要中断。这是否意味着数组/变量内存分配必须是系统调用。我怀疑。
另一种选择是内存控制器或处理器有能力确保程序不会访问超出其边界的内存。
任何关于这方面的澄清将不胜感激。
【问题讨论】:
标签: operating-system arch