# 内存管理
# 分层存储体系
CPU L1 L2 L3 内存 硬盘
L1 < 1mb 2-4 cycle(CPU周期,ns)
L2 <= 20mb 10-20 cycle
L3 <= 100mb 20-60 cycle
RAM 200-300 cycle
HD RW:10-50m cycle(m百万)
SSD 内存的10-1000倍
频繁切换进程会导致缓存的失效
# 地址空间
地址空间是进程可以用来寻址的独立地址集合(进程隔离,地址包)
不能接触物理内存:破坏操作系统,进程互相干扰
每个进程都会有自己独立的地址空间,所以看上去每个进程都在独享计算机资源。
操作系统会对地址访问进行重定位和保护:比如JUMP 12 -> JUMP 12 + 18000,如果JUMP 20012 > 20000会执行失败。
有两个寄存器:基地址寄存器和界限寄存器,分别代表地址空间的下限和上限,比如18000,20000。
进程通过中断实现寄存器的切换,每个进程的状态会保存在一张表中。
# 虚拟内存
虚拟化是为了提高资源利用效率。将内存分成很多小块,进程轮流使用。
比如将32kb的内存虚拟化为64kb,程序运行在虚拟地址空间,遇到内存地址就映射到物理空间。
「页表 page table 」存储了虚拟地址空间和物理空间的映射关系,物理内存的每一块称之为「页框 page frame」。
内存管理单元(MMU,Memory Management Unit)
← 操作系统