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

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

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

img

  • 写回答

2条回答 默认 最新

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

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

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

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

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

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

    评论

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化