gpt4 book ai didi

linux - 进程是否可以在主内存中使用 0 页开始执行?

转载 作者:太空狗 更新时间:2023-10-29 12:03:02 26 4
gpt4 key购买 nike

我正在阅读一本关于操作系统 (Galvin) 的书。在解释 Demand Paging 时它说

在极端情况下,我们可以开始执行一个没有页面的进程 内存。当操作系统将指令指针设置为第一个 进程的指令,在非内存驻留页面上,进程 页面立即出错。

我的问题是操作系统如何为内存中甚至没有单页的进程设置指令指针(因为指令指针中的地址不能是磁盘或辅助内存地址,它必须是主内存地址但是0 页意味着内存中没有任何内容)。

最佳答案

这就是虚拟内存。这意味着在已知且恒定的逻辑地址与 transient 的物理地址之间存在短暂映射。然后,正常的处理级别纯粹在逻辑地址中工作,而不必知道物理上发生了什么。

所以操作系统会,例如假设二进制 A 在地址 N 处逻辑上可用。然后它将在虚拟映射中标记覆盖 N 到 N+(二进制大小)的页面当前是错误的。将 PC 设置为 N(或任何入口点)后,一旦 CPU 尝试从 PC 读取数据,MMU 就会触发故障。那时分页机制将捕获错误并执行通常的操作。

关于linux - 进程是否可以在主内存中使用 0 页开始执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27909031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com