操作系统-内存管理 - 4部分

本文详细介绍了操作系统内存管理的各个方面,包括内存扩展、地址转换的绝对装入、可定位装入和动态运行时装入、内存保护的上下限寄存器和重定位寄存器、覆盖与交换的概念以及内存的连续分配和非连续分配策略。重点讨论了动态分区分配的首次适应、最佳适应和最坏适应算法,并对比了基于页、段和段页式存储管理的基本概念和优缺点。最后,探讨了内存分配与回收的注意事项,强调了连续分配和非连续分配方式的区别及其对程序和内存空间的要求。
摘要由CSDN通过智能技术生成

内存的扩展

  • 操作系统需要提供某种技术在逻辑上对内存进行扩充

地址转换(逻辑地址转换成物理地址) -3部分

在这里插入图片描述

绝对装入(单道程序阶段,误操作系统)- 写程序时就完成翻译转换。

  • 不需要操作系统直接根据,根据物理地址对硬件进行直接操作

可定位装入(静态重定位,早期多批道处理阶段)- 进入内存时完成翻译转换,只有进入时一次

  • 模块采用的是相对地址
  • 装入目标程序的过程中,完成从逻辑地址到物理地址的转换
  • 但是,这个转换过程只是在装入时发生一次;作业装入必须一次完成,不能在内存中移动,也不能申请内存空间(因为进入内存过后,逻辑地址已经全部翻译为物理地址,并且只翻译一次,这就说明了作业一旦分配就不能移动的现象)

动态运行时装入(动态重定位,现代操作系统)- 在内存中,被运行时才翻译转换,可以翻译转换多次

  • 装入程序到内存当中,只有在程序需要真正运行时才开始转换
  • 特点:需要重定位寄存器(MMU),可以将程序的内存分配到不连续的内存区中,便于程序段的共享可以向用户提供更大的内存地址空间(地址空间大于内存空间,因为是需要时才翻译分配内存,说明我们程序的翻译过程可以有多次,这就赋予我们可以动态分配和回收内存块的能力,也间接扩大了逻辑地址空间)

为什么需要逻辑地址?

为了更好的移植性:使用了逻辑地址后,我们的程序就可以适用于更多的平台的,不会因为底层硬件的不同导致程序无法运行。
更好的使用内存空间:使用了逻辑地址后,我们可以更好更高效的分配内存地址和回收内存地址,提高内存地址的使用率

内存保护 -2部分

上下限寄存器

  • 存放用户作业的上下限地址
  • 每当cpu要访问时,都需要比对这两个寄存器的上下限,看是否越界

重定位寄存器(基地址寄存器)和界地址寄存器(限长寄存器)

  • 基地址寄存器类似于数组的首地址;限长寄存器类似于数组长度。
  • 我们可以使用这两个寄存器的值算出,进程的内存空间范围。

覆盖与交换 -2部分 (都是内存换出或换入,只是单位不同,虚拟内存的基础)

覆盖

  • 将程序分成多个段。常用的段驻守内存;不常用段,需要时才调入内存。 (以段为单位)
  • 内存也分为一个固定区,若干覆盖区,常用的段留守固定区;非常用的段在调入内存时,使用覆盖区

交换

  • 在内存紧张的时候将,内存中某些进程调出内存,把外存中已经是就绪态的进程调入内存中(以进程为单
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值