内存管理 - 这次必须理解

从多个维度,去认识内存管理到底是做什么的,包含了哪些技术。做个简单的记录。

存储器层次结构

首先,在硬件的角度,存储器的结构分为 寄存器、L1高速缓存、L2高速缓存、L3、主存、硬盘、远程存储等。从左到右,代表了从贵到便宜,从快到慢,从小到大。本文要记录的是主存的软件上的管理。

操作系统

从工作内容上看,①与CPU、DMA或外部设备进行读入读出 ② 分配,给不同的进程分配内存空间 ③ 回收 ④ 地址转换 

内存覆盖

进程就是把程序载入到内存中,运行起来。如果程序很大,内存不够该怎么办呢?内存覆盖可以实现把用户空间分为一个固定区和若干个覆盖区,模块先放进外存中,而只载入需要使用的模块。

内存交换

换出:将等待状态的进程从内存移到外存;

换入:将准备好的进程从外存移入内存

分配管理方式

连续分配

单一连续分配:只适用于单用户、单任务的操作系统

固定分区分配

动态分区分配

    分配策略:首次适应算法、最佳适应算法、临近适应算法等

非连续分配

分页存储管理

分段存储管理

术语

    页表、页命中、缺页、多级页表

虚拟存储器系统将虚拟存储器分割成为 虚拟页(VP)的大小固定的块儿。类似的,物理存储器被分割为物理页(PP),也称为页帧(page frame).页表(page table)存储在物理存储器中,由页表条目(PTE)组成,PTE的数量=虚拟地址空间/页大小,PTE中含有有效位(SUP位:超级用户模式;READ/WRITE位对页面的读写和访问;)和映射。读取PTE中缓存的页时,称为页命中,否则称为缺页,会触发缺页异常。然后会进行交换(swapping)或页面调度(paging)。操作系统为每个进程提供了一个独立的页表。

 

内存紧缩

将各个占用分区向内存一端移动,然后将各个空闲分区合并成为一个空闲分区。

用户程序

虚拟存储空间

 

你可能感兴趣的:(计算机系统)