MMU除了给多进程提供支持外,还有什么作用?

发布于 2022-10-15 07:06:57 字数 242 浏览 28 评论 0

本帖最后由 amaverick 于 2011-05-13 10:54 编辑

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

撩心不撩汉 2022-10-22 07:06:57

以下是我的一点粗浅理解。
A1:
MMU的作用主要有两个,一是虚拟内存管理,二是内存保护。多进程的实现不仅仅依赖于虚拟内存,而虚拟内存的作用也不仅仅是实现多进程。比如说虚拟内存可以通过swap技术来实现比物理上实际的内存更大的内存,如果一个软件需要256M的内存,但是系统只有64M物理内存,通过虚拟内存和swap,照样可以跑起来。
A2:
vxworks可以认为是一种单进程多线程(任务)的OS,也就是说所有vxworks的线程(任务)共享一个内存空间,这会有一个问题:多个线程(任务)之间如何安全的共享同一个内存空间呢?通过MMU为不同的内存区域设置不同的访问权限,就可以解决内存的多线程(任务)共享的安全问题。

笙痞 2022-10-22 07:06:57

MMU不是必须的。MMU还可以完成多个处理核对资源的竞争判定。Linux所需的页机制可以在MMU上完成。页机制是有很多作用的……uclinux就不用MMU。

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

故人的歌 2022-10-22 07:06:57

学习中 分享中

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文