《现代操作系统》学习笔记之存储管理之地址空间

acquisitive acquisitive     2022-08-19     217

关键词:

内存定位技术

  内存定位有三种方式:绝对地址、静态重定位和动态重定位。

  绝对地址:

  使用绝对地址是最简单的定位方式。例如在一个程序中,执行JMP 28就会跳转到内存的28号存储单元。无论程序在内存中的什么位置都是如此。显然这种定位方式不允许内存中同时存在两个程序,否则一个程序的程序计数器很可能会跳转到另一个程序的空间中。

  静态重定位:

  静态重定位的处理方法为在加载程序到内存中时,将程序中所有的地址都加上在内存中的起始地址。比如一个程序被加载到从1000号开始的内存空间,而且程序中有一条指令JMP 28,那么程序被加载入内存后这条指令会变成 JMP 1028。静态重定位的难点在于区分程序中哪些值是常量,哪些值是地址。

  动态重定位:

  使用动态重定位的cpu有两个特殊的寄存器:基址寄存器和界限寄存器。当一个进程运行时,程序的起始地址被装载到基址寄存器中,程序的长度被装载到界限寄存器中。当程序要进行内存操作时,cpu会首先将指令中的地址加上基址寄存器中的地址,再把地址送到内存总线。此外,cpu还会检查地址是否大于界限寄存器中的值。如果访问的地址超出了界限则会出错并停止访问。

 

交换技术

  交换就是把暂时不用的进程放到外存上,需要时再读入内存。

  有些进程的数据段可以增长。因此在把进程移入内存时通常会为它分配一些额外的空间。

 

空闲内存管理

  位图法:

  把内存空间划分成大小相等的块,用一个位图来记录这些块的使用情况。某一位为0代表对应的块空闲,1代表被使用。

  链表法:

  使用一个双向链表记录内存的使用情况。除了指向前后节点的指针外,链表的节点中还包含三个字段:标志位(标志内存是否空闲)、内存段的起始地址,内存段的长度。

  加载一个进程时,在链表中找到一个大于或等于进程大小的空闲段,修改空闲段节点,并插入进程段节点。

  进程被移出内存时,删除进程段节点,根据具体情况增加或合并空闲段节点。

                                                                                                                                                                                                                                                                                                                                                        

计算机操作系统之存储管理

以下是本人大学学计算机操作系统的笔记。有版权的,转载请注明出处。 存储管理:就是对内存的管理。内存管理提高存储器的利用率以及从逻辑上扩充存储器。存储管理功能:内存的回收与分配,地址变换(程序中的逻辑... 查看详情

armv8datasheet学习笔记4:aarch64系统级体系结构之系统级存储模型

1.前言关于存储系统体系架构,可以概述如下:存储系统体系结构的形式VMSA存储属性 2.存储系统体系结构2.1.   地址空间指令地址空间溢出指令地址计算((address_of_current_instruction)+(size_of_executed_instruction))超过0xFFFFFF... 查看详情

存储管理学习笔记

重新复习《现代操作系统》对存储管理这一章做一下简单的归纳和总结操作系统中管理分层存储器体系的部分称为存储管理器1.无存储器抽象早期的计算机都没有存储器抽象,每一个程序都直接访问物理内存,即我指令指明用... 查看详情

构建之法:现代软件工程-阅读笔记

一、MSF的基本原则:1.推动信息共享与沟通2.为共同的远景而工作3.充分信任和授权4.各司其职,对项目共同负责5.保持敏捷,预期和适应变化6.交付增量的价值7.投资质量8.学习所有的经验9.与顾客合作二、MSF团队模型用户体验、产... 查看详情

操作系统笔记内存管理之分页,分段和段页式

基本内存管理:进程占用空间必须连续,导致外部碎片以及附加的compaction整个进程的swapin和swapout十分耗时。解决:分页->内存空间不必连续,无外部碎片,有内部碎片。可以部分swapin和out。分页式内存管理重定位物理内存:... 查看详情

20170914-构建之法:现代软件工程-阅读笔记

第一章-概论:  软件=程序+软件工程;  软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程;  软件工程包括以下领域:软件需求分析、软件设计、软件构建、软件测试和软件维护; ... 查看详情

[study]操作系统(代码片段)

文章目录一、概述1.1操作系统概述1.2运行机制1.3中断与异常1.4系统调用二、进程管理2.1进程定义及特征2.2进程状态与转换2.3进程控制2.4进程通信的三种方式2.5线程概念2.6三种多线程模型2.7处理机调度的三个层次2.8进程调度概述2.9... 查看详情

小林coding阅读笔记:操作系统篇之内存管理基础,虚拟内存分段分页(代码片段)

...xff1a;小林coding-4.1为什么要有虚拟内存?学习意义理解操作系统内存管理的方式理解局部性原理的设计映射思想相关说明该篇博文是个人阅读的重要梳理,仅做简单参考,详细请阅读小林coding的原文!内存管理基础... 查看详情

20170907-构建之法:现代软件工程-阅读笔记(补)

第1章概论 1.1软件=程序+软件工程1.2软件工程师什么:软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件维... 查看详情

《20171129-构建之法:现代软件工程-阅读笔记》

第九章1.PM是什么项目经理2.PM的能力要求观察理解和快速学习能力分析管理能力一定的专业能力自省的能力3.PM的任务带领团队形成团队的目标/远景,把抽象的目标转化为可执行的、具体的、优美的设计。管理软件的具体功能的... 查看详情

转载linux内核笔记之进程地址空间

原文:linux内核笔记之进程地址空间 进程的地址空间由允许进程使用的全部线性地址组成,在32位系统中为0~3GB,每个进程看到的线性地址集合是不同的。内核通过线性区的资源(数据结构)来表示线性地址区间,线性区是由... 查看详情

今天学习的裸板驱动之存储控制器心得(初始化sdram)

CPU只管操作地址,而有些地址代表的是某些存储设备。但是操作这些存储设备需要很多东西,比如需要制定bank,行/列地址等。所以就有了存储管理器,用来处理这种CPU操作的地址和存储设备间的转换。(1)存储管理器在得到一... 查看详情

408考研操作系统)第三章内存管理-第一节6:非连续分配管理方式之基本分页存储管理

文章目录一:分页存储管理基本思想二:分页存储管理基本概念(1)页框和页(2)页框和页关系(3)分页的优点三:分页存储管理实现地址转换(1)借鉴连续分配管理方式中的动态重定位(2)分页管理地址转换A:基本思想B... 查看详情

(王道408考研操作系统)第三章内存管理-第一节6-1:非连续分配管理方式之基本分页存储管理

文章目录一:分页存储管理基本思想二:分页存储管理基本概念(1)页框和页(2)页框和页关系(3)分页的优点三:分页存储管理实现地址转换(1)借鉴连续分配管理方式中的动态重定位(2)分页管理地址转换A:基本思想B... 查看详情

20171130-构建之法:现代软件工程-阅读笔记

第九章:项目经理  1、能力要求和任务:观察理解和快速学习能力、分析管理能力、一定的专业能力、自省的能力。第十章:典型用户和场景  1、规格说明书:    ~功能说明书:定义好相关概念,规范好一些假设,避... 查看详情

ceph学习笔记之九层级化的clustermap

集群映射由Device和桶(Buckets)组成,设备和桶都有ID描述和权重。Bucket可以包含任意设备或者其他的bucket,使他们形成内部节点的存储层次结构,设备总是在叶子节点。存储设备的权重由管理员设置以控制设备负责存储的相对数... 查看详情

操作系统之内存管理

1.背景1.1基本硬件Q1:如何确保每个进程有独立的内存空间,确定进程可访问的合法地址的范围?A1:采用基地址寄存器和界限地址寄存器。基地址寄存器含有最小的合法物理内存地址,界限地址寄存器决定范围大小。如基地址寄存... 查看详情

kafka学习笔记之highlevelconsumer相关参数

HighLevelConsumer相关参数自动管理offsetauto.commit.enable=trueauto.commit.interval.ms=60*1000手动管理offsetauto.commit.enable=falseConsumerConnector.commitOffsets();offset存储offsets.storage=zookeeper(kafka)dual.co 查看详情