《计算机操作系统》(第4版)第4章 存储器管理 复习笔记

2024-08-23 08:28

本文主要是介绍《计算机操作系统》(第4版)第4章 存储器管理 复习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

4 

一、存储器的层次结构

1. 多层结构的存储器系统

如图4-1所示,在存储层次中越往上,存储介质的访问速度越快,价格也越高,相对存储容量也越小。

图4-1 计算机系统存储层次示意

2.三级存储系统

(1)Cache- 主存存储体系

目的:弥补主存速度的不足。 (2)主存-辅存存储体系

目的:弥补主存容量的不足。

二、程序的装入和链接

在多道程序环境下,要使程序运行,必须先将它装入内存,然后再将其变为一个可以执行的程序,通常都要 经过以下几个步骤:编译、链接和装入。图4-2显示出了三步过程。

图4- 2 对用户程序的处理步骤

1. 程序的装入

程序的装入指的是由装入程序将装入模块装入内存,有以下三种方式:

(1)绝对装入方式。

(2)可重定位装入方式。

(3)动态运行时的装入方式。

【说明】动态运行装入需要一个重定位寄存器的支持。

2. 程序的链接

(1)静态链接方式。

(2)装入时动态链接。

(3)运行时动态链接。

三、连续分配存储管理方式

1. 单一连续分配

2. 固定分区分配

(1)划分分区的方法

 分区大小相等。

②分区大小不等。

(2)内部碎片

程序小于固定分区大小时,也会占用一个完整的分区空间,此时分区内部就存在空间浪费,称为内部碎片。

3. 动态分区分配

(1)动态分区分配又称为可变分区分配,它是根据进程的实际需要,动态地为之分配内存空间。

(2)回收内存时可能的情况;

①回收区与插入点的前一个空闲分区F 相邻接,见图4-3(a)。此时应将回收区与插入点的前一分区合并, 不必为回收分区分配新表项,而只需修改其前一分区F₁ 的大小。

②回收分区与插入点的后一空闲分区F 相邻接,见图4-3(b)。此时也可将两分区合并,形成新的空闲分区, 但用回收区的首址作为新空闲区的首址,大小为两者之和。

③回收区同时与插入点的前、后两个分区邻接,见图4-3(c)。此时将三个分区合并,使用F 的表项和F 的首址,取消F₂ 的表项,大小为三者之和。

图4-3 内存回收时的情况

④回收区既不与F₁ 邻接,又不与F₂ 邻接。这时应为回收区单独建立一个新表项,填写回收区的首址和大小, 并根据其首址插入到空闲链中的适当位置。

4. 基于顺序搜索的动态分区分配算法

(1)顺序搜索的定义

顺序搜索是指依次搜索空闲分区链上的空闲分区,去寻找一个大小能满足要求的分区。

(2)基于顺序搜索的动态分区算法的分类

①首次适应(first fit,FF)算法。

②循环首次适应(next fit,NF)算法。

③最佳适应 (best fit,BF)算法。

④最坏适应 (worst fit,WF) 算法。

【说明】其中,首次适应算法是最简单、最好最快的算法。

5. 基于索引搜索的动态分区分配算法

(1)快速适应算法。

(2)伙伴系统。

(3)哈希算法。

6. 逻辑地址空间与物理地址空间

(1)编译后,每个目标模块都从0号单元开始编址,这称为该目标模块的相对地址(逻辑地址)。

(2)链接程序依次按照各个模块的相对地址构成统一的从0号单元开始编址的逻辑地址空间。

(3)物理地址空间是指内存中物理单元的集合。

(4)通过地址转换将逻辑地址转换为物理地址的过程称为地址重定位。

四、对换(交换)和覆盖

1. 覆盖的基本思想

将用户空间分成一个固定区和若干覆盖区。将经常活跃的部分放在固定区,其余部分按调用关系分段。首先 将即将访问的段调入覆盖区,其他段存于外存。在需要时,系统将其调入覆盖区,覆盖原有段。

2 . 对换

(1)换入

把准备好竞争CPU 运行的程序从辅存移到内存的过程称为换入。

(2)换出

把处于阻塞状态的程序从内存移到辅存的过程称为换出。

3.对换与覆盖的区别

(1)覆盖用于同一个作业或进程中。

(2)交换用于不同的作业或进程中。

五、分页存储管理方式

1.分页存储管理的基本方法

(1)页面和物理块 ①页面

分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页。

②物理块

把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框。 (2)地址结构

分页地址中的地址结构如下:

前一部分为页号P,   后一部分为位(偏)移量W,   即页内地址。图中的地址长度为32位,其中0~11位为 页内地址,即每页的大小为4KB;1231  位为页号,地址空间最多允许有1M  

(3)页表

系统为每个进程建立了一张页表。如图4-4所示。页表的作用是实现从页号到物理块号的地址映射。

图4-4 页表的作用

2. 地址变换机构

(1)地址变换机构的基本任务

借助页表,将逻辑地址中的页号转换为内存中的物理块号。

(2)基本的地址变换机构

页表的功能可以由一组专门的寄存器来实现。图4-5显示出了分页系统的地址变换机构。

图4-5 分页系统的地址变换机构

(3)具有快表的地址变换机构

①快表 (TLB)  是一个具有并行查寻能力的特殊高速缓冲寄存器,又称为“联想寄存器”。

②增加快表原因:页表是存放在内存中的,则CPU 每存取一个数据时,都要两次访问内存。为了提高地址 变换速度,增设快表。

【说明】两次访存指:第一次访问内存得到物理地址;第二次根据物理地址访问对应的内存单元。

TLB 中用于存放当前访问的若干页表项。 

图4-6显示了具有快表的地址变换机构。

图4-6 具有快表的地址变换机构 【说明】读者应能清晰描述出地址变换的过程,这是重要考点。

3. 访问内存的有效时间

(1)定义

从进程发出指定逻辑地址的访问请求,经过地址变换,到在内存中找到对应的实际物理地址单元并取出数据, 所花费的总时间,称为内存的有效访问时间 (EAT)。

(2)基本分页管理的有效时间

假设访问一次内存的时间为t,在基本分页存储管理方式中,存取一条指令或一个数据至少需要两次访存。 则EAT=t+t=2t。

(3)引入快表管理的有效时间

①命中率是指使用快表并在其中成功查找到所需页面的表项的比率。

②在引入快表的分页存储管理方式中,有效访问时间的计算公式即为: EAT=axλ+(t+λ)(1-a)+t=2t+λ-txa

上式中,λ表示查找快表所需要的时间,a  表示命中率,t   表示访问一次内存所需要的时间。

【说明】快表的有效性基于局部性原理。

4. 两级和多级页表

(1)两级页表

两级页表的逻辑地址结构如图4-7所示。

图4- 7 两级页表结构

(2)多级页表

①建立多级页表的目的是建立索引,不用浪费主存空间去存储无用的页表项。

②顶级页表最多只能有1个页面。 

【说明】页式地址空间是一维的。

六、分段存储管理方式

1. 分段存储管理方式的引入

分段管理方式满足了方便编程、信息共享、信息保护、动态增长、动态链接的需要。

2.分段系统的基本原理

(1)分段

在分段存储管理方式中,作业的地址空间被划分为若干个段。逻辑地址由段号和段内地址所组成。

图4-8 分段系统中的逻辑地址结构

(2)段表

①每个段在表中占有一个表项,其中记录了该段在内存中的起始地址(又称为“基址”)和段的长度,如图 4-9所示。

②段表可以存放在一组寄存器中,这样有利于提高地址转换速度,但更常见的是将段表放在内存中。

③段表用于实现从逻辑段到物理内存区的映射。

图4-9 利用段表实现地址映射

(3)地址变换机构

①在进行地址变换时,系统将逻辑地址中的段号S 与段表长度TL 进行比较 a.  S>TL, 表示段号太大,是访问越界,于是产生越界中断信号。

b. 若未越界,则根据段表的始址和该段的段号,计算出该段对应段表项的位置,从中读出该段在内存的起 始地址。

②检查段内地址d 是否超过该段的段长SL

a.   若超过,即d>SL,   同样发出越界中断信号。

b. 若未越界,则将该段的基址d 与段内地址相加,即可得到要访问的内存物理地址。图4-10显示了分段系 统的地址变换过程。

图4-10 分段系统的地址变换过程

【说明】段式地址空间是二维的。

3. 段页式存储管理方式

(1)分页、分段式存储管理方式的优点

①分页式存储管理方式以页面作为内存分配的基本单位,能有效地提高内存利用率。

②分段式存储管理以段作为内存分配的基本单位,能够更好地满足用户多方面的需要。

(2)段页式存储管理方式的基本原理

①段页式系统的基本原理是分段和分页原理的结合

即先将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。图4-11 (a)     了一个作业地址空间的结构。该作业有三个段:主程序段、子程序段和数据段;页面大小为4KB。在段页式系 统中,其地址结构由段号、段内页号及页内地址三部分所组成,如图4-11 (b)   所示。

图4-11 作业地址空间和地址结构

②段页式系统利用段表和页表实现地址映射

图4-12示出了利用段表和页表进行从用户地址空间到物理(内存)空间的映射。

图4-12 利用段表和页表实现地址映射

【注意】段页式存储管理下,在一个进程中,段表只有一个,页表可能有多个。

(4)地址变换过程

①地址变换机构

a.  进行地址变换时,首先利用段号S,   将它与段长 TL 进行比较。

b. S<TL, 表示未越界,于是利用段表始址和段号来求出该段所对应的段表项在段表中的位置,从中得 到该段的页表始址。

c. 并利用逻辑地址中的段内页号P 来获得对应页的页表项位置,从中读出该页所在的物理块号b,  再利用 块号b 和页内地址来构成物理地址。图4-13示出了段页式系统中的地址变换机构。

图4-13 段页式系统中的地址变换机构

②内存访问过程

在段页式系统中,为了获得一条指令或数据,需三次访问内存:

a. 访问内存中的段表,从中取得页表始址;

b.  访问内存中的页表,从中取出该页所在的物理块号,并将该块号与页内地址一起形成指令或数据的物理 地址;

c.  从第二次访问所得的地址中取出指令或数据。

③在段页式系统中也可增设高速缓冲寄存器 (Cache),   以提高平均访问速度。

【说明】段页式地址空间是二维的。

这篇关于《计算机操作系统》(第4版)第4章 存储器管理 复习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1098859

相关文章

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

Linux操作系统 初识

在认识操作系统之前,我们首先来了解一下计算机的发展: 计算机的发展 世界上第一台计算机名叫埃尼阿克,诞生在1945年2月14日,用于军事用途。 后来因为计算机的优势和潜力巨大,计算机开始飞速发展,并产生了一个当时一直有效的定律:摩尔定律--当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。 那么相应的,计算机就会变得越来越快,越来越小型化。

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2