OS里面说单CPU系统只有一个页表寄存器,存放页表首地址和页表长度,所有进程轮流使用。
计组里面说页表基址寄存器每个进程都有一个,存放页表首地址。
我记得os说为了很多进程搞很多寄存器很不划算,因为单cpu里一次只有一个进程运行,轮流使用就好了,那为什么计组给每个进程一个页表基址寄存器,这不是很费钱吗?
页表寄存器和页表基址寄存器是一个东西吗
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 一轮明月照丘壑 2024-09-20 19:32关注
以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
页表寄存器和页表基址寄存器不是同一个东西。具体来说:
- 页表寄存器:在某些系统中,确实存在一个或多个页表寄存器,用于存放页表的首地址和页表长度。所有进程会轮流使用这个页表寄存器。当系统正在处理某个进程时,该进程的页表首地址会被加载到页表寄存器中,这样CPU在需要时将虚拟地址转换为物理地址时,就可以通过这个寄存器快速找到页表信息。这种设计是为了减少寄存器的数量,因为在一个时间点,只有一个进程在运行。
- 页表基址寄存器:每个进程通常都有一个页表基址寄存器,存放的是该进程的页表的首地址。每个进程都有自己的虚拟内存空间,因此每个进程都有自己的页表。当进程被调度并执行时,其页表基址会被加载到相应的寄存器中,以便进行地址转换。这样设计是为了支持多进程和多虚拟内存空间。
对于你所提到的关于成本的问题,确实,为每个进程都提供一个独立的页表基址寄存器会增加硬件成本。然而,这种设计是为了支持操作系统中的多进程环境以及虚拟内存机制。虽然会增加成本,但对于支持现代计算机系统的并发性和高效性来说,这是必要的。
总的来说,这两种机制都是为了实现虚拟内存到物理内存的映射,但它们的工作方式和服务对象有所不同。页表寄存器可能服务于整个系统的地址转换,而页表基址寄存器则针对每个进程的地址转换。
解决 无用评论 打赏 举报
悬赏问题
- ¥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驱动,如何解决?