404号初学者 2024-09-20 10:40 采纳率: 0%
浏览 12

页表寄存器和页表基址寄存器是一个东西吗

OS里面说单CPU系统只有一个页表寄存器,存放页表首地址和页表长度,所有进程轮流使用。
计组里面说页表基址寄存器每个进程都有一个,存放页表首地址。
我记得os说为了很多进程搞很多寄存器很不划算,因为单cpu里一次只有一个进程运行,轮流使用就好了,那为什么计组给每个进程一个页表基址寄存器,这不是很费钱吗?

img

  • 写回答

1条回答 默认 最新

  • 一轮明月照丘壑 2024-09-20 19:32
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    页表寄存器和页表基址寄存器不是同一个东西。具体来说:

    1. 页表寄存器:在某些系统中,确实存在一个或多个页表寄存器,用于存放页表的首地址和页表长度。所有进程会轮流使用这个页表寄存器。当系统正在处理某个进程时,该进程的页表首地址会被加载到页表寄存器中,这样CPU在需要时将虚拟地址转换为物理地址时,就可以通过这个寄存器快速找到页表信息。这种设计是为了减少寄存器的数量,因为在一个时间点,只有一个进程在运行。
    2. 页表基址寄存器:每个进程通常都有一个页表基址寄存器,存放的是该进程的页表的首地址。每个进程都有自己的虚拟内存空间,因此每个进程都有自己的页表。当进程被调度并执行时,其页表基址会被加载到相应的寄存器中,以便进行地址转换。这样设计是为了支持多进程和多虚拟内存空间。

    对于你所提到的关于成本的问题,确实,为每个进程都提供一个独立的页表基址寄存器会增加硬件成本。然而,这种设计是为了支持操作系统中的多进程环境以及虚拟内存机制。虽然会增加成本,但对于支持现代计算机系统的并发性和高效性来说,这是必要的。

    总的来说,这两种机制都是为了实现虚拟内存到物理内存的映射,但它们的工作方式和服务对象有所不同。页表寄存器可能服务于整个系统的地址转换,而页表基址寄存器则针对每个进程的地址转换。

    评论

报告相同问题?

问题事件

  • 修改了问题 9月20日
  • 修改了问题 9月20日
  • 修改了问题 9月20日
  • 创建了问题 9月20日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?