MMU机制在进程中使用时的一些问题
来源:互联网 发布:瞻博网络待遇 编辑:程序博客网 时间:2024/05/22 03:05
32位linux系统中每个进程拥有4GB的虚拟地址空间(上文介绍:Linux进程空间与虚拟地址的好处),那么虚拟地址空间如何与实际物理内存进行对应呢—MMU(Memory Management Unit)。关于MMU的实现细节即分页处理的原理,网上分析的很多,下面我列出了部分疑惑的问题;
MMU的作用:
将虚拟地址转换为物理地址,解决应用程序使用的内存总大小会大于物理内存总大小的问题
MCU(Mov Reg0)-----虚拟地址0----->MMU-------物理地址4096-------->MEM
MMU何时开启:
一般在bootloader中初始化MMU,当内核启动后调用paging_init()建立映射表。
每个进程的虚拟地址空间怎么处理的:
每个进程拥有一张内存映射表。在fork()新进程的时候就会为新进程建立一个内存映射表,数据结构为mm_struct;
每个进程的内存映射表最初会映射多大物理内存:
待探讨
多个进程间如何平衡物理内存的使用呢?
待探讨
为什么没有MMU的处理器无法安装操作系统:
所谓的处理器就是计算机的核心运算硬件,现在使用windows操作系统的用户使用的机器之中的处理器多数都是X86内核,而实际之上很多时候我们用户都是会在心目之中把一个处理器和其运行的特定操作系统挂钩,之前说的X86和windows操作系统,而在Cortex-A系列硬件之上我们运行的多数都是Android操作系统,或者是linux操作系统。 这些操作系统虽然说各自不同,但是都是有相同的部分,比如说对于内存的管理就是如此。一般我们把对于内存的管理模块都是称之为MMU,但是实际之上在win7旗舰版操作系统之中并不是所有的内存管理任务都是操作系统完成的,处理器也是提供了MMU硬件支持,一般我们都说有MMU支持的处理器是可以安装操作系统的。 没有MMU的处理器无法安装操作系统? 我们在上面说了没有MMU的处理器是不能安装操作系统的,其实并不是这样,现在很多的使用在嵌入式系统之中的MCU处理器都是不具备MMU,但是这种处理器可以与运行一些最为简单的实时操作系统。这种操作系统甚至也是可以提供多任务功能。 无MMU处理器到底是有什么限制 实际之上如果一个处理器没有MMU的话,那么其就是不能支持和我们通用计算机一样在外部存储器之中部署程序,其只能是把应用程序和操作系统混合在一起。这样的程序处理方式其实和一般的无操作系统程序类似,所以说很多人认为这不能算是操作系统。
- MMU机制在进程中使用时的一些问题
- 通过JTAG在AXD中调试使用MMU的程序
- arm中mmu的一些计算
- 使用Session机制一些常见的问题
- 使用Session机制一些常见的问题
- 使用Session机制一些常见的问题
- 在VS中使用cocos2d-x遇见的一些问题
- 关于在R中使用C程序的一些问题
- 在sklearn中使用DataFrame的一些问题
- 在使用oracle中遇到的一些问题
- 关于在使用UBUNTU系统中遇到的一些问题
- 在AndroidStudio中使用gradle构建出现的一些问题
- 在java中使用Mysq数据库遇到的一些问题
- MFC在共享DLL中使用和在静态库中使用的一些问题
- 有关MMU的问题!
- 在Minifilter中使用PsSetCreateProcessNotifyRoutine之后监控到的一些进程信息
- MFC在共享DLL中使用转换为静态库中使用的一些问题
- ARM 中MMU使用实例
- 技术人员如何创业《四》- 打造超强执行力团队
- 实现短信接口发送
- 代码的布局
- 找出链表中是否存在环
- Unity Debug
- MMU机制在进程中使用时的一些问题
- 将字符串转换为整数
- 在centos6.6上安装运行docker
- 6.26 iOS开发Delegate使用
- 【Unity技巧】四元数(Quaternion)和旋转
- ios 写项目的时候遇到的问题及解决方案
- 设置qq在线客服 并跟随页面滚动
- redis 3.2.8主从HA搭建
- 引入XSD的两种方式