免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6192 | 回复: 19

虚拟内存的意义?对硬件有什么要求? [复制链接]

论坛徽章:
0
发表于 2006-03-21 08:35 |显示全部楼层
这是【FreeBSD操作系统设计与实现】的习题5.1,原文如下:

5.1 What does it mean for a machine to support virtual memory? What four hardware facilities are typically required for a machine to support virtual memory?

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
发表于 2006-03-21 09:19 |显示全部楼层
这部分我还没有看,先看看我回答的和老大们讲的有什么差别

What does it mean for a machine to support virtual memory?
进程保护,虚拟大空间支持,权限检查,多进程支持  我想出来4个。

four hardware facilities
虚拟和实地址的转换、映射设备,大容量后备存储器  想出来2个。

论坛徽章:
0
发表于 2006-03-21 09:43 |显示全部楼层
这是俺从书上总结的答案(有点像答政治题)

虚拟内存的意义:
1、“穷庙富和尚”,主存小的机器也可以运行超过主存容量的大程序。
2、“给点阳光就灿烂”,程序可以更快启动,不必把自己整个都塞到主存中。
3、“海阔凭鱼跃,天高任鸟飞”,程序员对于地址空间的使用更为自由,不必再斤斤计较了。

对硬件的要求:
1、能够防止程序改变它们自己的地址映射。
2、能够区分地址空间中的驻留部分和未驻留部分,程序访问未驻留部分时即挂起,所需内容放到内存中之后即恢复。
3、能够保存机器状态以恢复指令执行。
4、能够采集程序对内存的引用信息。

论坛徽章:
0
发表于 2006-03-21 11:14 |显示全部楼层
CPU对虚存的支持主要是其分页单元吧? 还有MMU和TLB, 感觉断点恢复什么的与虚存不是很有关系

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
发表于 2006-03-21 11:45 |显示全部楼层
原帖由 albcamus 于 2006-3-21 11:14 发表
CPU对虚存的支持主要是其分页单元吧? 还有MMU和TLB, 感觉断点恢复什么的与虚存不是很有关系


我觉得对虚拟内存的支持来说,TLB可有可无,它的存在是考虑效率。

论坛徽章:
0
发表于 2006-03-21 11:52 |显示全部楼层
原帖由 albcamus 于 2006-3-21 11:14 发表
CPU对虚存的支持主要是其分页单元吧? 还有MMU和TLB, 感觉断点恢复什么的与虚存不是很有关系


我感觉这本书主要侧重于偏“软”一点的虚存系统的数据组织和相关算法,对于实际的地址映射过程却不太关心,不像《Linux内核源代码情景分析》那样。

此处的第三点断点恢复主要是和第二点关联起来说的,作者的意思是当一个进程引用了一个目前不在主存中的页面的时候,就需要把这个进程挂起,在把所请求的页面调进主存之后再恢复进程的运行,所以才把这个“断点恢复”的能力也列为了一条。

论坛徽章:
0
发表于 2006-03-21 12:21 |显示全部楼层
以I686为例,上面老大所列举的几点有哪些是cpu硬件实现?哪些是操作系统实现的?

论坛徽章:
0
发表于 2006-03-21 12:43 |显示全部楼层
原帖由 albcamus 于 2006-3-21 11:14 发表
CPU对虚存的支持主要是其分页单元吧? 还有MMU和TLB


我是从书中专门讲硬件要求的一节中摘出来的,所有就有了遗漏,

albcamus老大说的分页单元和MMU都是虚拟内存的根本,我前面列出的只能算是一些“额外”的要求,

论坛徽章:
0
发表于 2006-03-21 13:47 |显示全部楼层
记得内存管理在IA架构上有个从实模式到保护模式的历史过程,而页式管理也不是一开始就有的,寻址方式也有个从段式逻辑地址到线性地址再到页式地址的过程,不知道有没有大虾能结合历史原因讲解一下这些方式在历史上的变迁和其不同时期的特点和作用,能加强一下理解,本人对于存储管理这方面是基本上处于不很懂得状态。

另问下,对于i386-i686页大小都是固定4kb吗?有没有方法改变?X86_64和EM64T呢?

论坛徽章:
0
发表于 2006-03-21 14:28 |显示全部楼层
原帖由 colddawn 于 2006-3-21 13:47 发表
记得内存管理在IA架构上有个从实模式到保护模式的历史过程,而页式管理也不是一开始就有的,寻址方式也有个从段式逻辑地址到线性地址再到页式地址的过程,不知道有没有大虾能结合历史原因讲解一下这些方式在历史上 ...


这个恐怕谁都不敢讲不愿讲……太复杂啦

IA32从某个开始, 支持PSE, 4M的大页面。 应该是写cr0或者其他的控制寄存器的某个标志置1就生效的, 具体记不清楚。 EM64T技术, BSD支持的怎么样? 官方Linux内核的支持不清楚, 只知道Novell版支持。

P.S. 雨丝风片版主别对偶们小朋友那么客气,偶会折寿的说
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP