1.MMU:将虚拟地址转换成物理地址,才传给存储管理器进行寻址。
2.操作系统通过MMU使各个用户进程都有自己独立的地址空间:地址映射功能使每个进程拥有看起来一样地址空间,内存访问权限的检查可以保护每个进程所用的内存不会被其他进程破坏。
3.虚拟地址要转换成物理地址才能读写实际的数据,通过将虚拟地址空间,物理地址空间划分为一个同样大小的一块块小空间,然后为这两类小空间建立映射空间,有可能多块虚拟地址映射到同一块物理地址空间,或者有些虚拟地址空间映射具体物理地址空间上去。启动mmu后,CPU对外发出虚拟地址,然后MMU将虚拟地址转成物理地址再进行访问。
4.虚拟地址空间到物理空间的转换过程
在ARM 中使用页表的方式进行转换。linux内核一般使用两级页表的方式。
页表:像我们书上的目录,有主目录,次目录,当我们要找一个知识点的时候先找到主目录,然后再找到次目录再找到相应的知识点。
每个进程都会在内存中创建一个目录,目录存放地址保存起来。当需要访问目录时候,就会讲目录放到CPU的一个专用寄存器里面,然后MMU读取这个寄存器里面的值就会帮我们找到我们要访问的物理地址。
页表示怎样建立的呢?
实际上它就是内存的一个地址存放了第一级目录的内存地址,然后在第一个级的内存内又存放了实际的物理地址。
相当于二级指针。
2.操作系统通过MMU使各个用户进程都有自己独立的地址空间:地址映射功能使每个进程拥有看起来一样地址空间,内存访问权限的检查可以保护每个进程所用的内存不会被其他进程破坏。
3.虚拟地址要转换成物理地址才能读写实际的数据,通过将虚拟地址空间,物理地址空间划分为一个同样大小的一块块小空间,然后为这两类小空间建立映射空间,有可能多块虚拟地址映射到同一块物理地址空间,或者有些虚拟地址空间映射具体物理地址空间上去。启动mmu后,CPU对外发出虚拟地址,然后MMU将虚拟地址转成物理地址再进行访问。
4.虚拟地址空间到物理空间的转换过程
在ARM 中使用页表的方式进行转换。linux内核一般使用两级页表的方式。
页表:像我们书上的目录,有主目录,次目录,当我们要找一个知识点的时候先找到主目录,然后再找到次目录再找到相应的知识点。
每个进程都会在内存中创建一个目录,目录存放地址保存起来。当需要访问目录时候,就会讲目录放到CPU的一个专用寄存器里面,然后MMU读取这个寄存器里面的值就会帮我们找到我们要访问的物理地址。
页表示怎样建立的呢?
实际上它就是内存的一个地址存放了第一级目录的内存地址,然后在第一个级的内存内又存放了实际的物理地址。
相当于二级指针。