【问题标题】:Program exectuion Process and virtual memory程序执行进程和虚拟内存
【发布时间】:2017-10-02 15:07:06
【问题描述】:

因此,据我了解,当用户运行程序时,它会被放置到内存中,然后转移到 CPU 中执行。 CPU 无法直接访问物理内存,因此它会创建逻辑地址,然后将其映射到物理地址。

CPU如何知道何时创建逻辑地址,CPU是否知道它即将接收一些指令,从而准备一个逻辑地址?在什么时候创建虚拟内存?

【问题讨论】:

    标签: process operating-system paging virtual-memory


    【解决方案1】:
    1. CPU 确实可以直接访问物理内存。程序未传输到 CPU(忽略缓存)。

    2. 操作系统创建和维护页表,这些页表执行逻辑到物理地址的转换。调用操作系统服务将逻辑地址范围映射到进程地址空间。

    【讨论】:

    • 程序加载到RAM后,是CPU请求数据还是操作系统将数据发送给CPU?第一条指令是如何发送到 CPU 的,所以它知道如何根据第一条指令请求其他指令。
    • 程序加载器设置虚拟地址空间。当程序开始执行时,它会触发 [很多] 页面错误,因为它仍在磁盘上。当 CPU 第一次尝试访问页面时,页面会被加载。
    猜你喜欢
    • 2013-12-13
    • 2020-05-21
    • 2011-09-09
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多