操作系统--内存扩充、分配与回收、虚拟内存、页面置换

本文深入探讨了操作系统的内存管理,包括内存的逻辑地址与物理地址、进程运行原理、内存分配策略。重点讲解了虚拟内存的请求分页、页面置换算法(如OPT、FIFO、LRU、CLOCK)以及页面分配策略,旨在理解如何优化内存资源的使用。
摘要由CSDN通过智能技术生成


内存概述

什么是内存:
内存是用于存放数据的硬件,程序执行前需要先放到内存中才能被CPU处理。

存储单元
将内存分为一个一个的小区间,每个区间就是一个存储单元。

内存地址
给内存的存储单元编地址,有两种:

  • 按字节编址:每个存储单元的大小为1字节(8位)
  • 按字编址:字长为16位的计算机,每个存储单元的大小为1个字(16位)

逻辑地址和物理地址

  • 逻辑地址:编译生成的指令中是逻辑地址,是相对地址。
  • 物理地址:是数据实际存放在内存当中的地址,是绝对地址。

进程运行的基本原理

进程执行的流程:
在这里插入图片描述
装入方式

  • 绝对装入: 在编译时,如果直到程序将放到内存中的哪个位置,编译时将产生绝对地址的目标代码,装入程序按照装入模块中的地址,将程序和数据装入内存。
    缺点:只适合单道程序环境。
  • 静态重定位: 编译、链接后的装入模块的地址都是从0开始,指令中也是逻辑地址。在装入时对地址进行重定位,将逻辑地址变换为物理地址。
    缺点:内存必须有足够的空间才能装入该进程,且运行期间不能移动。
  • 动态重定位: 使用重定位寄存器,当该进程被调度运行时,才会获取寄存器中的信息,将逻辑地址转换为物理地址。
    优点:运行期间也可移动。

链接方式

  • 静态链接: 在程序运行前,将个目标模块链接成一个完整的装入模块,之后不可拆分。
  • 装入时动态链接: 将各目标模块装入内存时,边装入边链接。
  • 运行时动态链接: 在程序执行中需要该目标模块时,才对它进行链接。

内存管理*

内存管理的主要内容

  • 地址转换: 对应三种装入方式
  • 存储保护: 保证各进程在自己的内存空间内运行,不会越界访问,两种方式:
    1.设置上下限寄存器
    2.重定位寄存器+界地址寄存器
  • 内存空间的扩充(虚拟)
  • 内存空间的分配与回收

内存空间的扩充

  • 覆盖技术:将程序分为多个段,常用的段常驻内存,不常用的段在需要时调入内存(固定区,覆盖区)。
  • 交换技术:内存空间紧张时,系统会将内存中某些进程暂时换出外存,外存中已具备运行条件的进程换入内存(中级调度)。
  • 虚拟存储技术:后文

注:磁盘空间分为文件区和对换区,文件区采用离散分配方式,对换区采用连续分配方式

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值