操作系统--内存管理

内存

内存管理:因为不可能也没有必要将所有用户进程和系统所需要的全部程序与数据放入内存,所以操作系统必须对内存空间进行合理的划分和有效的动态分配。
功能:内存空间的分配与回收;地址转换;内存空间的扩充;存储保护
程序装入和链接:编译-->链接-->装入
编译:静态编译/动态编译。
静态编译:编译器在编译可执行文件时,将需要调用的库中的内容提取出来,链接到编译文件中
动态编译:编译器在编译时附带了一个动态链接库,缩小了执行文件本身,加快了编译速度,节省了系统资源。
链接:静态链接/装入时动态链接/运行时动态装入
装入:绝对装入/可重定位装入/动态运行时装入

连续分配管理方式

1.单一连续分配
2.固定分区分配
3.动态分区分配

非连续分配管理方式

1.基本分页存储管理方式

页:进程中的块
页框:内存中的块
页表:系统为每个进程建立一张页表,记录页面在内存中对应的物理块号。

2.基本分段存储管理方式

3.段页式管理方式

分段和分页之间的区别

分页存储:以页这一物理单位进行内存分配,页的大小固定,逻辑地址是一维的,只产生内部碎片,离散分配,提高内存利用率。
分段存储:以段这一逻辑单位进行内存分配,段的大小不固定,逻辑地址是二维的,只产生外部碎片,更易于实现信息的共享和保护。

虚拟内存

基于局部性原理

虚拟存储器

定义:系统为用户提供了一个比实际内存大得多的存储器,这个存储器实际并不存在。
特征:多次性、对换性、虚拟性
虚拟内存技术的实现:传统的非连续分配+请求调页(段)功能+页面(段)置换功能=请求分页(段)管理

请求分页管理方式

页表新增4个字段:状态位,访问字段、修改位、外存地址
缺页中断机制:需要访问的页面不在内存中时,便产生了一个缺页中断,请求操作系统将所缺的页调入内存。若内存中有空闲块,将要调入的页装入空闲块;若内存中没有空闲块,则要淘汰某页。

页面置换算法

1.最佳置换算法(OPT):选择以后不用或最长时间不用的页面
2.先进先出页面置换算法(FIFO):选择最先装入的页面----->会导致Belady异常(增加页框反而导致缺页率上升
3.最近最久未使用(LRU):选择最近最久未使用的页面
4.时钟(CLOCK)置换算法:选择最近未用的页面
5.改进型CLOCK置换算法:在clock的基础上考虑页面修改的问题

页面分配策略

驻留集:给一个进程分配的物理页框的集合
驻留集页数太少导致缺页率太高引起抖动;页数太多,浪费。
页面分配策略:1.固定分配局部置换 2.可变分配全局置换 3.可变分配局部置换
调入时机:1.预调页策略(运行前)2.请求调页策略(运行期间)
抖动:刚刚换出的页面马上就要换入主存,刚刚换入的页面马上又要换出主存,频繁的页面调度
工作集:在某段时间间隔内,进程要访问的页面集合。(工作集<驻留集

你可能感兴趣的:(操作系统--内存管理)