操作系统的灵魂-------MMU
----MMU是Memory Management Unit的缩写,中文名是内存管理单元,有时称作分页内存管理单元(英语:paged memory management unit,缩写为PMMU)。它是一种负责处理中央处理器(CPU)的内存访问请求的计算机硬件。它的功能包括虚拟地址到物理地址的转换(即虚拟内存管理)、内存保护、中央处理器高速缓存的控制,在较为简单的计算机体系结构中,负责总线的仲裁以及存储体切换(bank switching,尤其是在8位的系统上)。
1.什么是虚拟内存?
----当运行多个进程或者一个进程需要更大的空间进行存储运行,但是主存的空间是有限的,于是虚拟内存创建了一个连续的更大的空间给进程使用。对于进程来说,虚拟内存就是一张连续的内存空间,这个空间有些在主存中,有些在磁盘中。
2.虚拟内存的作用
-----虚拟内存将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,可以高效地使用主存。为每个进程提供了一致的地址空间,简化了内存管理。保护了每个进程的地址空间不被其他进程破坏。
3.CPU存储数据

----CPU 在这里生成的物理地址为 4,把地址发送给内存,然后内存从该地址获取其中保存的字,最后将其发送回 CPU。
----MMU主要用来管理虚拟内存与物理内存的映射,由硬件自动完成。
4.页命中/缺页

页命中:
①处理器产生一个虚拟地址。
②MMU生成PTE地址,并从高速缓存/主存请求得到它。
③高速缓存/主存向MMU返回PTE。
④MMU构造物理地址,并把它传送给高速缓存/主存。
⑤高速缓存/主存返回所请求的数据字给处理器。

缺页:
①处理器产生一个虚拟地址。
②MMU生成PTE地址,并从高速缓存/主存请求得到它。
③高速缓存/主存向MMU返回PTE。
④PTE中的有效位是零,所以MMU触发了一次异常,传递CPU中的控制到操作系统内核中的缺页异常处理程序。
⑤缺页处理程序确定出物理内存中的牺牲页,如果这个页面已经被修改了,则把它换出到磁盘。
⑥缺页处理程序页面调入新的页面,并更新内存中的PTE。
⑦缺页处理程序返回到原来的进程,再次执行导致缺页的指令。CPU将引起缺页的虚拟地址重新发送给MMU。因为虚拟页面现在缓存在物理内存中,所以就会命中,主存就会将所请求字返回给处理器。
总结:
----这种方式成功的解决了直接使用物理内存会出现的问题。比如,虚拟内存中连续存储解决了物理内存碎片化,资源利用率过低的问题;每个进程只能访问自己独立的用户空间而内核空间是共用的解决了进程间的安全问题;缺页异常和选择牺牲页的算法提高了内存读写的效率等等
更详细介绍https://zhuanlan.zhihu.com/p/678338947

浙公网安备 33010602011771号