OS里面说单CPU系统只有一个页表寄存器,存放页表首地址和页表长度,所有进程轮流使用。
计组里面说页表基址寄存器每个进程都有一个,存放页表首地址。
我记得os说为了很多进程搞很多寄存器很不划算,因为单cpu里一次只有一个进程运行,轮流使用就好了,那为什么计组给每个进程一个页表基址寄存器,这不是很费钱吗?
页表寄存器和页表基址寄存器是一个东西吗
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 一轮明月照丘壑 2024-09-20 19:32关注
以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
页表寄存器和页表基址寄存器不是同一个东西。具体来说:
- 页表寄存器:在某些系统中,确实存在一个或多个页表寄存器,用于存放页表的首地址和页表长度。所有进程会轮流使用这个页表寄存器。当系统正在处理某个进程时,该进程的页表首地址会被加载到页表寄存器中,这样CPU在需要时将虚拟地址转换为物理地址时,就可以通过这个寄存器快速找到页表信息。这种设计是为了减少寄存器的数量,因为在一个时间点,只有一个进程在运行。
- 页表基址寄存器:每个进程通常都有一个页表基址寄存器,存放的是该进程的页表的首地址。每个进程都有自己的虚拟内存空间,因此每个进程都有自己的页表。当进程被调度并执行时,其页表基址会被加载到相应的寄存器中,以便进行地址转换。这样设计是为了支持多进程和多虚拟内存空间。
对于你所提到的关于成本的问题,确实,为每个进程都提供一个独立的页表基址寄存器会增加硬件成本。然而,这种设计是为了支持操作系统中的多进程环境以及虚拟内存机制。虽然会增加成本,但对于支持现代计算机系统的并发性和高效性来说,这是必要的。
总的来说,这两种机制都是为了实现虚拟内存到物理内存的映射,但它们的工作方式和服务对象有所不同。页表寄存器可能服务于整个系统的地址转换,而页表基址寄存器则针对每个进程的地址转换。
解决 2无用
悬赏问题
- ¥15 做个有关计算的小程序
- ¥15 MPI读取tif文件无法正常给各进程分配路径
- ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
- ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
- ¥15 setInterval 页面闪烁,怎么解决
- ¥15 如何让企业微信机器人实现消息汇总整合
- ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
- ¥15 如何用Python爬取各高校教师公开的教育和工作经历
- ¥15 TLE9879QXA40 电机驱动
- ¥20 对于工程问题的非线性数学模型进行线性化