一.共享内存在系统中,两个不同的进程都会维护自己的一块地址空间,这个地址空间一般是虚拟地址,会通过mmu和页表映射到对应的物理内存中,因为不同的进程会有不同的内存空间,因此两个进程之间是无法看见彼此的数据的,而共享内存就是使两个进程看到同一块地址空间,以此来实..
分类:
系统相关 时间:
2016-04-15 23:10:55
阅读次数:
230
学习内核的内存管理如果脱离了MMU的硬件原理,只去学习其软件逻辑,真的很难懂。说到底,软件代码的逻辑是为硬件服务,只是为了充分发挥硬件的各项功能,因此学习linux的内存管理机制,首先要学习下该处理器架构下MMU的工作原理,这样对我们理解页表机制的逻辑很有帮助...
分类:
系统相关 时间:
2016-04-05 17:46:52
阅读次数:
327
转自:http://bbs.chinaunix.net/thread-3642079-1-1.html 最近在调试Linux内核,跟踪启动过程。发现在没有turn on mmu之前,可以使用物理地址,通过向串口Fifo丢数据的方式输出调试信息。但是代码一旦运行到开启mmu,在汇编阶段,mmu只做了物 ...
分类:
其他好文 时间:
2016-04-01 14:51:36
阅读次数:
488
现代操作系统普遍采用虚拟内存管理(Virtual Memory Management)机制 这需要处理器中的MMU(Memory Management Unit,内存管理单元)提供支持 ps:MMU是设计在CPU内部的。 引入两个概念,虚拟地址和物理地址 如果处理器没有MMU 或者有MMU但没有启用 ...
分类:
其他好文 时间:
2016-03-30 12:28:14
阅读次数:
235
MMU由一个或一组芯片组成,其功能是把逻辑地址映射为物理地址,进行地址转换(MMU是CPU的一部分)
机器指令仍然用逻辑地址指定一个操作数的地址或一条指令的地址
MMU包含两个部件:分段部件和分页部件,分段机制将逻辑地址转换为线性地址,分页机制把线性地址转换为物理地址。
系统的运行速度一般是被CPU从内存中取得指令和数据速率限制的。
TLB(translation lookside buf...
分类:
系统相关 时间:
2016-03-29 12:58:33
阅读次数:
332
linux内核的组成 一、linux内核源代码目录结构 1.1Linux 内核的组成部分 Linux 内核主要由进程调度(SCHED) 、内存管理(MMU) 、虚拟文件系统(VFS) 、网络接口(NET)和进程间通信(IPC)等 5 个子系统组成。 1.1.1进程调度 精度调度控制系统中的多个进程对
分类:
系统相关 时间:
2016-03-19 21:06:35
阅读次数:
267
首先,我们要分清ARM CPU上的三个地址:虚拟地址(VA,Virtual Address)、变换后的虚拟地址(MVA,Modified Virtual Address)、物理地址(PA,Physical Address) 启动MMU后,CPU核对外发出虚拟地址VA,VA被转换为MVA供MMU使用,
分类:
其他好文 时间:
2016-03-16 20:56:29
阅读次数:
191
一.内存管理基本知识 1.S3C2440最多会用到两级页表:以段的方式进行转换时只用到一级页表,以页的方式进行转换时用到两级页表。页的大小有三种:大页(64KB),小页(4KB),极小页(1KB)。条目也称为"描述符",有:段描述符,大页描述符,小页描述符,极小页描述符——他们保存大页,小页,极小页
分类:
系统相关 时间:
2016-03-13 19:54:22
阅读次数:
305
上图中的cp15就是协处理器。 那么什么是协处理器呢?如下: Cp15的详细信息:系统控制协处理器,通过修改cp15的寄存器,可以修改MMU,cache,时钟模式等系统选项,从而完成系统控制。 CP15的寄存器要通过MRC和MCR指令来访问。来自为知笔记(Wiz)
分类:
其他好文 时间:
2016-03-08 23:31:08
阅读次数:
179
初始化流程图 Traps.c (arch\arm\kernel) 20738 Main.c (init) 21877 Traps.c (arch\arm\kernel) 20738 Mmu.c (arch\arm\mm) 30868 Mmu.c (arch\arm\mm) 30868 Setup.c
分类:
其他好文 时间:
2016-03-03 17:42:44
阅读次数:
105