内存空间的扩充

一、覆盖技术

解决程序大小超过物理内存总和问题

1.思想

将程序分为多个段/模块,常用段常驻内存,不常用段在需要时调入内存

2.组成

固定区(存放常驻内存,调入后到运行结束时才调出)+覆盖区(存放不常用段,需要时调入,不需要时调出内存)

二、交换技术

1.思想

内存空间紧张时,系统将内存中某些进程暂时换出外存(挂起状态),将外存中某些已具备运行条件的进程换入内存。实质是进程在内存与磁盘间的动态调度,即内存调度,决定将哪个处于挂起状态的进程重新调入内存。

2.磁盘空间组成

文件区(采用离散分配方式存放文件)+对换区(存放被换出的进程数据,采用连续分配方式)

对换区的I/O速度比文件区更快

3.交换原则

优先换出阻塞进程、长驻优先级低的进程;PCB会常驻内存,不会被换出外存

区别:覆盖是在同一个程序或进程中进行的;交换是在不同进程之间进行的。

三、虚拟存储技术

1.传统存储管理方式

必须要一次性将作业全部装入内存才运行,作业装入内存后会一直驻留在内存中,内存空间不够。

2.实现原理

由局部性原理设计(时间局部性-大量循环导致的多次访问某数据

空间局部性-数据连续存放导致的多次访问存储单元及其附近的区域)

在程序装入时,将很快会用到的程序装入内存,暂时用不到的部分留在外存 ------>程序执行时,访问信息不在内存时,由操作系统将信息从外存调入内存------>若内存空间不够,OS将内存中暂时用不到的信息换出到外存

3.虚拟内存

在操作系统管理下,用户使用似乎有一个比实际内存大得多的内存。

特征:多次性-允许作业被分成多次调入内存;对换性-允许作业在运行过程中换入、换出;虚拟性-从逻辑上扩充内存容量

4.实现过程

采用离散分配的内存管理方式 ,由于虚拟内存的特点,需要在非连续(离散)分配存储管理的基础上增加请求调页/调段功能、页面/段置换功能。

相关推荐
_OP_CHEN2 小时前
【Linux系统编程】(二十五)从路径到挂载:Ext 系列文件系统的 “导航” 与 “整合” 核心揭秘
linux·操作系统·文件系统·c/c++·ext2文件系统·路径解析·挂载分区
HalvmånEver2 天前
Linux:线程 ID 与地址空间布局:深入理解线程内存分布(线程七)
linux·运维·服务器·操作系统·线程
Trouvaille ~2 天前
【Linux】线程同步与互斥(四):线程池与任务管理
linux·运维·服务器·c++·操作系统·线程池·日志系统
燃于AC之乐2 天前
【Linux系统编程】Shell解释器完全实现:从命令解析、环境变量管理到内建命令的全面解析
linux·操作系统·命令行工具·进程控制·shell编程
2401_841495642 天前
【操作系统】存储器管理算法
python·操作系统·存储器管理·连续内存分配算法·非连续内存分配算法·虚拟存储页面置换算法·内存碎片整理与回收算法
holeer2 天前
CS.Math 之《离散数学》| 知识点笔记
数据结构·数据库·数学建模·操作系统·抽象代数·计算机组成
Serene_Dream3 天前
OS 内存小结
操作系统·内存
程序员一点3 天前
第3章:首次启动与基础配置
操作系统·openeuler
冰冷的希望3 天前
【系统】VMware17虚拟机安装黑苹果macOS 15.0详细步骤(保姆级)
macos·操作系统·系统·vmware·虚拟机·黑苹果
请输入蚊子4 天前
«操作系统真像还原» 第二章 编写MBR主引导记录
linux·汇编·操作系统·bochs·操作系统真像还原