1、物理内存和虚拟内存
malloc 能够申请得虚拟内存和物理内存无关,只是和虚拟内存地址空间有关,内存管理单元 MMU 来处理存放在贮存的查询表动态翻译虚拟地址。
CPU和主存的L1-L3的高速缓存称为SRAM,DRAM表示虚拟内存系统的缓存,会出现缺页也就是缓存未命中,页表这种数据结构,记录物理页和虚拟页的关联,如果没有查找到虚拟页在DRAM,就会选择一个牺牲页,将虚拟页从磁盘复制到DRAM,替换掉牺牲页。
内存管理方式:
块管理:块管理是将内存分成一块一块的内存空间,将程序片段分配给一块内存,因为片段可能是几个字节,导致浪费内存
页管理:将内存空间划定成一个个固定大小的空间,页和块的内存大小相当,因此可以离散得放入任一页,页长和程序没有关系,
段管理:段是根据程序得自然分界来长度动态改变得区域。
分段优点:
1、可以动态改变,允许自由改变,高效利用主存,
2、方便分段共享,分段保护、动态链接
3、段得逻辑独立性使其更易于编译、管理、修改和保护
分段存储的缺点:
1、容易产生段碎片
2、段的大小不固定,所以存储管理较麻烦
内存碎片:多次分配导致,内存分配导致很多间隙,这些间隙就是内存碎片
内碎片:分配块大小和他们的有效负荷大小之差的和
外碎片:空间太小,无法给任何程序分配,内存空闲可以满足分配要求,但是地址不连续或者其他原因,导致无法满足当前申请
虚拟内存置换算法;