免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3354 | 回复: 3

[操作系统] MMU除了给多进程提供支持外,还有什么作用? [复制链接]

论坛徽章:
0
发表于 2011-05-13 10:29 |显示全部楼层
本帖最后由 amaverick 于 2011-05-13 10:54 编辑

问题1
MMU实现了虚拟内存,这是多进程的基础。
除此之外MMU还有什么用的? 物理层上的MMU协处理器诞生的目的就是为了软件层上的多进程实现吗?

问题2
vxworks支持MMU,但vxworks又没有多进程的概念,只有线程(或者叫task)。那支持MMU的意义在哪?

论坛徽章:
1
射手座
日期:2013-11-07 09:19:48
发表于 2011-05-13 14:21 |显示全部楼层
以下是我的一点粗浅理解。
A1:
MMU的作用主要有两个,一是虚拟内存管理,二是内存保护。多进程的实现不仅仅依赖于虚拟内存,而虚拟内存的作用也不仅仅是实现多进程。比如说虚拟内存可以通过swap技术来实现比物理上实际的内存更大的内存,如果一个软件需要256M的内存,但是系统只有64M物理内存,通过虚拟内存和swap,照样可以跑起来。
A2:
vxworks可以认为是一种单进程多线程(任务)的OS,也就是说所有vxworks的线程(任务)共享一个内存空间,这会有一个问题:多个线程(任务)之间如何安全的共享同一个内存空间呢?通过MMU为不同的内存区域设置不同的访问权限,就可以解决内存的多线程(任务)共享的安全问题。

论坛徽章:
0
发表于 2011-05-13 17:21 |显示全部楼层
MMU不是必须的。MMU还可以完成多个处理核对资源的竞争判定。Linux所需的页机制可以在MMU上完成。页机制是有很多作用的……uclinux就不用MMU。

个人感觉。在VxWorks下,因为所有的全局函数和数据都是可以访问的,数据溢出很容易造成系统的不稳定。MMU可以施加一定的保护。比如保护text段不被意外修改什么的。
如果没有MMU,那么所有的数据都是透明的,会比较不稳定。

论坛徽章:
13
巨蟹座
日期:2013-10-30 18:29:4115-16赛季CBA联赛之青岛
日期:2019-01-04 17:30:1015-16赛季CBA联赛之天津
日期:2016-03-08 10:30:1715-16赛季CBA联赛之天津
日期:2015-12-10 15:56:452015年亚洲杯之约旦
日期:2015-03-09 16:29:36双鱼座
日期:2014-11-27 17:17:20寅虎
日期:2014-11-18 13:55:12双子座
日期:2014-03-31 15:41:32狮子座
日期:2014-03-14 11:23:24狮子座
日期:2014-02-19 16:30:12午马
日期:2013-11-04 23:22:31卯兔
日期:2013-10-30 19:51:15
发表于 2011-05-24 21:26 |显示全部楼层
学习中 分享中
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP