首页 > 系统相关 >《操作系统》内存管理_内存扩充技术补充

《操作系统》内存管理_内存扩充技术补充

时间:2024-07-04 23:32:32浏览次数:14  
标签:操作系统 覆盖 内存空间 调度 内存 扩充

前言

  操作系统王道书里面既然没有这个知识点,但却有一节网课。我不能不记笔记,所以我将这补充一下,写出博客。

操作系统内存管理的四大功能

  内存空间的分配与回收、地址转换、存储保护、内存空间的扩充

内存空间的扩充

覆盖技术

  早期的计算机内存很小,经常会出现内存大小不够的情况。

image-20240704231025475

  能同时访问的程序段放在固定区,不可以同时访问的程序段就放在覆盖区。

  必须由程序员声明覆盖结构,操作系统自动完成覆盖。缺点:对用户不透明,增加了用户的变成负担。覆盖技术只用在早期的操作系统之中,现状已经成为了历史。

image-20240704231102871

交换技术

 PCB要常驻于内存,用于存储进程的相关信息,后面进程运行的时候,会使用到。

image-20240704231542529

  低级调度是进程调度,高级调度是作业调度。

  七状态图:

image-20240704231754624

在外存的什么位置保存被换出的进程?

image-20240704232033885

什么时候进行交换?

image-20240704232151087

应该换出哪些内存?

image-20240704232228405

  但是PCB不会被换出内存,是常驻于内存中的。

虚拟存储技术

  后面有专门的一大节讲这个。

标签:操作系统,覆盖,内存空间,调度,内存,扩充
From: https://www.cnblogs.com/yidianxingyuan/p/18284888

相关文章

  • VMware开启CentOS Stream 9操作系统提示 “此主机支持 Intel VT-x,但 Intel VT-x 处于
    解决步骤:1.重启电脑2.华硕主板按(F2或DEL)键进入BIOS3.进入高级->CPU设置4.下拉,InterVirtualizationTechnology开启5.退出->保存改动参考网址:https://blog.csdn.net/web22050702/article/details/138712829......
  • c语言回顾-内存操作函数
    目录前言1.memcpy 函数1.1函数介绍1.2与strcpy的区别1.3memcpy的模拟2.memmove函数2.1函数介绍和使用2.2函数的模拟3.memset函数3.1函数介绍3.2函数的模拟4.memcmp函数4.1函数的使用4.2函数的模拟结束语前言在动态内存的章节中小编详细讲解了动态内存分......
  • C++内存管理
    内存管理C/C++内存分布静态区(数据段)全局变量:在整个程序运行期间都存在的变量,包括没有显式声明为static的全局变量。静态局部变量:在函数内部声明为static的变量。它们在函数首次调用时初始化,并在程序整个运行期间保持其值。静态全局变量:在文件作用域中声明为static的变量。......
  • 一、内存分区模型
    1.概述C++程序在执行时,将内存方向划分为4个区域。代码区:存放函数体的二进制代码,由操作系统进行管理全局区:存放全局变量,静态变量,常量栈区:由编译器自动分配释放,存放函数的参数值,局部变量堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收2.程序运行前编译后......
  • 内存管理-14-内核文档翻译-1-reserved-memory.txt
    本文翻译自:msm-5.4/arch/arm64/boot/dts/vendor/bindings/reserved-memory/reserved-memory.txt***Reserved内存区域***保留内存被指定为/reserved-memory节点下的一个节点。操作系统应将保留内存排除在正常使用之外,可以创建子节点来描述特定的保留(从正常使用中排除)内存区域......
  • 第四章 对象的实例化内存布局与访问定位
    对象的实例化内存布局与访问定位对象的实例化 对象创建的方式(1)new:最常见的方式、单例类中调用getInstance的静态类方法,XXXFactory的静态方法(2)Class的newInstance方法:在JDK9里面被标记为过时的方法,因为只能调用空参构造器,并且权限必须为public(3)Cons......
  • golang 内存逃逸 你应该知道的知识
    逃逸分析目录1.为什么要了解内存逃逸2.什么是逃逸分析3.内存逃逸的影响-性能和稳定性4.内存逃逸的原因5.内存逃逸的检测6.如何避免内存逃逸7.内存逃逸代码示例原文链接:一文弄懂Golang中的内存逃逸1.为什么要了解内存逃逸-内存逃逸是Go语言编程中一个特别需要注意的问......
  • cpu内存硬盘之间的工作原理!
    在现代计算机系统中,CPU(中央处理器)、内存(RAM)和硬盘(硬盘驱动器或固态硬盘)是三大核心组成部分。它们之间的协同工作关系直接影响整个计算机系统的性能和效率。为了更好地理解计算机的工作原理,CPU、内存和硬盘的基本功能及它们之间的相互交互。这三者的工作原理及其之间的关系。CP......
  • 面试官:Java类是如何被加载到内存中的?
    面试连环callJava类是如何被加载到内存中的?Java类的生命周期都有哪些阶段?JVM加载的class文件都有哪些来源?JVM在加载class文件时,何时判断class文件的格式是否符合要求?类生命周期一个类从被加载到虚拟机内存开始,到卸载出内存为止,它的整个生命周期将会经历加载、验证、准备、......
  • python自动化内存管理
    引用在编程中,引用是指用来标识、访问或操作某个对象的值的标识符或变量。我们可以将引用看作是对象的别名,通过引用可以操作对象,包括读取、修改和传递对象的值。举例来说,假设我们有一个字符串对象`name`,我们可以创建一个变量`person`来引用这个字符串对象。在这个例子中,`perso......