热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

【学习笔记之操作系统原理篇】存储管理

存储管理基本概念物理内存(即内存地址)字节编号,从0开始,是“一维”的地址。例题:1.外存上存放的数据(必

存储管理基本概念


物理内存(即内存地址)

字节编号,从0开始,是“一维”的地址。


例题:

1.外存上存放的数据( 必须在访问前先装入内存 )。

存储管理的主要任务

如何将可用内存有效地分配给多个进程?
如何让存储容量大于可用内存的大进程得以运行?
如何保护和共享内存?

①内存的分配与回收


静态分配—次性全部载入内存,运行过程中不再变化。
动态分配先分配必需的基本空间,运行过程中动态载入。
内存分配表已使用的内存记录,未使用的内存记录。

②地址变换


静态地址重定位不需要硬件支持,不能移动,利用率低。
动态地址重定位转入后再计算物理地址,方便多模块。
内存分配表已使用的内存记录,未使用的内存记录。




例题:

1.静态重定位是在作业的( 执行过程 )中进行的。

2.动态重定位是在作业的( 装入过程 )中进行的。

3.存储分配解决多道作业地址空间的划分问题。为了实现静态和动态存储分配,需采用地址重定位,即把逻辑地址转为物理地址,静态重定位由连接装入程序实现,动态重定位由硬件地址变换机构实现。

4.采用动态重定位方式装入的作业,在执行中允许( 操作系统有条件地 )将其移动。

5.把逻辑地址转变为内存的物理地址的过程称作( 重定位 )。

6.将作业地址空间中的逻辑地址转换为内存中的物理地址的过程称为( 重定位 ) 。

7.逻辑地址转变为内存的物理地址的过程称作( 重定位或地址映射 )。

例题:

1.逻辑地址就是( 相对地址 )。

③内存信息的共享和保护


上下界保护法进程程序和数据段的起始地址和终止地
保护键法类似于读者——写者控制的方法。
Linux采用方法界限寄存器与CPU用户态和核心态旧结合的保护方式。

④内存扩充
虚拟存储


例题:

1.存储管理的目的是(方便用户和提高内存利用率。)





分区式存储管理


固定式分区(静态分区)


特点个数、大小不变
优缺点技术简单;但主存利用率不高,存在严重的内碎片
碎片明明空在这里却不能被利用



例题:

1.碎片现象的存在使得内存空间利用率( 降低 ).



可变式分区(动态分区)


特点个分区数、大小变化
数据结构已分配分区表(大小、起址)和空闲分区表(链)(大小,起址,状态)。
外碎片,拼接(内存紧凑)

例题:

1.用可重定位分区分配方式,( 解决碎片问题 )。

2.可重定位内存的分区分配目的为( 解决碎片问题 ) 。

分区分配算法


首次适应算法按空闲区首地址递增排序
循环首次适应算法按空闲区首地址递增排序
最坏适应算法按空间大小递减排序
最佳适应算法按空间大小递曾排序
快速适应算法按容量相同否分类排序
伙伴系统把内存中的所有空闲分区按照2k(1sk≤n)的大小划分。
哈希算法构建—张以空闲区大小为关键字的哈希表,该表的每一个表项记录了—个对应的空闲分区链表头指针。

例题:

1.在可变分区存储管理中,最优适应分配算法要求对空闲区表项按( 尺寸从小到大 )进行排序。

2.在动态分区式内存管理中,倾向于优先使用低地址部分空闲区的算法是(首次适用算法)。

3.在动态分区式内存管理中,能使内存空间中空闲区分布较均匀的算法是(循环首次适用算法)。

4.在动态分区式内存管理中,每次分配时把既能满足要求,又是最小的空闲区分配给进程的算法是(最佳适应算法)。

5.在((循环)首次适应算法)中,要求空闲分区按空闲区地址递增顺序链接成空闲分区链。

6.在( 最佳适应算法 )中,是按空闲区大小递增顺序形成空闲分区链。

7.在( 最坏适应算法 )中,是按空闲区大小递减的顺序形成空闲分区链。

8.分区管理方式中,当内存碎片容量大于某一作业所申请的内存容量时,(拼接后,可以为这一作业分配内存)。

9.在循环首次适应算法中,要求空闲分区按( 空闲区首地址递增 )顺序链接成空闲分区链。

10.在最佳适应算法中是按( 空闲区大小递增 )顺序形成空闲分区链。

分配内存


内存回收


例题:

1.在回收内存时可能出现四种情况,其中若释放区与插入点前一空闲分区F1相邻接,此时应( 在F1分区表项的基础上,修改大小 ) 。

2.在回收内存时可能出现四种情况,其中若释放区与插入点的后一分区F2相邻接,此时应(在F2分区表项的基础上,修改大小和始址 )。

3.在回收内存时可能出现四种情况,其中若释放区不与F1和F2相邻接,此时应( 为回收区建立一新空闲分区表项,并填上 分区的大小和始址) 。

4.在回收内存时可能出现四种情况,其中若释放区与F1和F2都相邻接,此时应( 删除F2分区表项,并在F1分区表项的基础 上修改大小 ) 。

5.在动态分区分配方案中,某一作业完成后,系统收回其主存空间,并与相邻空闲区合并,为此需修改空闲区表,造成空闲区减一的情况是(有上邻空闲区,也有下邻空闲区)。

地址变换与内存保护

动态分区可以采用拼接技术:有碎片就拼接,不够时才拼接。


分区式管理的优缺点


主要优点(1)实现了多个作业或进程对内存的共享,有助于多道程序设计,从而提高了系统的资源利用率。
(2)该方法要求的硬件支持少,管理算法简单,因而实现容易。
主要缺点(1)内存利用率仍然不高。存在着严重的碎小空闲区(碎片)不能利用的问题。解决办法:内存紧凑。
(2)作业或进程的大小受分区大小控制,除非实现内存的扩充。可采用覆盖和交换技术。
(3)难以实现各分区间的信息共享。

例题:

1.通常,采用紧缩法消除内存碎片的存储管理技术是( 可重定位分区法 )。

页式存储管理


静态页式管理

静态方法:一个进程的所有页一次性全部装入内存。


数据结构


页表对每—个进程,系统为它建立—个页表。
在这里插入图片描述
请求表在这里插入图片描述
存储页面表在这里插入图片描述
分配与回收静态分配为一次性分配

地址结构与地址变换


地址结构在这里插入图片描述
地址变换在这里插入图片描述

动态页式管理


例题:

1.在页式存储管理中,若所需页面不在内存中,则会引起( 缺页中断 )。

指令存取速度与页面大小的问题

快表
页面大小的选择:如果页面太大,页式管理就退化为分区管理,同时导致页内“碎片”过大。而页面太小,页表占用内存空间太多。—个系统的页表占用内存的空间大小与主存大小和页大小有关。


例题:

1.在请求分页存储管理方案中,若某用户空间为16个页面, 页长1KB,现有页表如下:
|页号 | 块号|
| 0 | 12 |
| 1 | 13 |
| 2 | 3 |
则逻辑地址0A1F(H)所对应的物理地址为(0E1F(H))。

注:
页长1KB 210=1k 页面长度为10位,
逻辑地址0A1F(H)转化为二进制位 0000 1010 0001 1111
(二进制10)为页号即十进制2,对应表找到块号为3,故物理地址为 0000 1110 0001 1111 (0E1F)
因为是分页存储管理,所以隐藏了页面大小等于页框大小这个条件


页式管理的优缺点


优点(1)有效地解决了内存的碎片问题,进—步可提高了处理机的利用率。
(2)动态页式存储管理只要求每个进程部分装入便可运行,实现了内存的扩充技术。
缺点(1)要求有相应的硬件支持。例如,地址变换机构,缺页中断机构和页面的淘汰等。
(2)增加了系统开销。
(3)淘汰算法选择不当有可能会严重影响系统的使用效率。
(4)虽然消除了碎片,但同时还存在页内碎片问题。

例题:

1.分页式存储管理中,地址转换工作是由( 硬件 )完成的。

淘汰算法与抖动现象

抖动现象与工作集
抖动现象:频发的调入调出,与进程数和进程的实页数有关
防止抖动现象的方法:
①是选择好的淘汰算法:以减少缺页次数。
②是扩大工作集:是指进程在某个时间段里要访问的页的集合。如果能够预知进程在某段时间的工作集,并在此之前把该集合调入内存,至该段时间终了时,再将其在下—时间段时不需要访问的哪些页换出内存,这样就会可以减少页的交换。


淘汰原因内存空闲页不足,调出暂不用页到磁盘交换区。
算法目标应使缺页率尽可能小。

最佳(Optimal)淘汰算法
基本思想不再使用或最远的将来不再使用。不能实现,但可以作为衡量标准。

先进先出淘汰算法(FIFO)
基本思想FIFO算法容易实现,但是它所依据的理由与普遍的进程运行规律不符。它只适用于CPU按线性顺序访问地址空间的进程。

最近最少使用(LRU)淘汰算法最近最久没有被使用的页
基本思想方法:(1)计时器法(2))
栈(解题方法)
(3)寄存器法:高位补一,右移,最小。

最近未使用(NUR)算法LRU近似算法
基本思想R:是否访问,M:是否修改,R=O,M=O的先淘汰。最不经常使用(NotFrequentlyUsed,NFU)算法增设一个访问寄存器,每次访问加1,淘汰值最小的。

例题:

1.在请求分页系统中,LRU算法是指( 丘期最长时间以来没被访问的页先淘汰 ) 。

2.在请求调页中可采用多种置换算法,其中LRU是( 最近最久未使用 )置换算法。

3.在下述存储管理技术中,( 请求分页) 处理不当会产生抖动。.

段式存储管理


静态段式存储管理


结构在这里插入图片描述
数据结构在这里插入图片描述
地址变换在这里插入图片描述
内存分配与释放在这里插入图片描述

动态段式存储管理


基本思想在这里插入图片描述
段表在这里插入图片描述
缺段中断处理能容纳直接调入
不能容纳合并碎片再调入
内存不足换出
也可能产生抖动现象

分段和分页的主要区别


(1)段是面向用户的,页是面向系统的。
(2)页的大小是固定的,由系统决定;段的大小不固定,由用户决定。
(3)从用户的角度看,分页系统的用户程序空间是一维连续的线性空间 ; 段的地址空间是二维的,由段名和段内相对地址组成。
(4)从管理的角度看,分页系统的二维地址是在地址变换过程中由系统的硬件机构实现的,对用户是透明的。分段系统的在地址变换过程中的二维地址是由用户提供的。因而, 页内没有地址越界问题,而段内的相对地址则存在地址越界(段长受内存实际空间大小限制)问题。

段的信息共享

页式、段式都可以共享。但段式方便。
共享:页表、段表记录相同空间。


段的静态链接与动态链接

静态链接
在这里插入图片描述

动态链接
在这里插入图片描述


段的存储管理的内存保护

①地址越界保护法
②存取控制保护法


段的存储管理的优缺点


优点(1)便于信息的共享和保护。
(2)实现了内存的扩充。
(3)便于信息的变化处理。
(4)便于实现动态链接。
缺点(1)增加了计算机成本。
(2)存在碎片问题。
(3)段的长度受内存可用空间大小的限制。
(4)与页式存储管理类似,淘汰算法选择不当,可能产生抖动现象。

例题:

1.分段管理提供(二 )维的地址结构。

2.在段式存储管理中,一个段是一个( 不定长的连续 )区域。

3.支持程序浮动的地址转换机制是( 动态重定位) 。.

其他

在这里插入图片描述
在这里插入图片描述


例题:

1.(固定分区)存储管理支持多道程序设计,算法简单,但存储碎片多。

2.(段页式管理)实现了段式、页式两种存储方式的优势互补。

3.(段页式管理)存储管理方式能使存储碎片尽可能少,而且使内存利用率较高。

4.段页式存储管理汲取了页式管理和段式管理的长处,其实现原理结合了页式和段式管理的基本思想,即(用分段的方法分配和管理用户地址空间,用分页方法来管理物理存储空间)。

5.虚拟存储技术是(补充相对地址空间的技术)。

6.虚拟存储器的最大容量是由(计算机系统的地址结构和外存空间)决定的。

7.实现虚拟存储最关键的技术是( 请求调页(段))。 8.以下支持虚拟存储器的存储管理技术是( 请求分页技术 )。 9.若一个系统内存有64MB,处理器是32位地址,则它的虚拟地址空间为( 4GB )字节。

Linux存储管理


推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 非公版RTX 3080显卡的革新与亮点
    本文深入探讨了图形显卡的进化历程,重点介绍了非公版RTX 3080显卡的技术特点和创新设计。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文详细介绍了如何在Ubuntu系统中下载适用于Intel处理器的64位版本,涵盖了不同Linux发行版对64位架构的不同命名方式,并提供了具体的下载链接和步骤。 ... [详细]
  • Linux设备驱动程序:异步时间操作与调度机制
    本文介绍了Linux内核中的几种异步延迟操作方法,包括内核定时器、tasklet机制和工作队列。这些机制允许在未来的某个时间点执行任务,而无需阻塞当前线程,从而提高系统的响应性和效率。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文将详细介绍如何在Linux操作系统中执行PHP脚本,包括环境配置、命令使用及验证方法。对于需要在Linux环境下开发或部署PHP应用的用户来说,这是一篇非常实用的文章。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 本文详细探讨了KMP算法中next数组的构建及其应用,重点分析了未改良和改良后的next数组在字符串匹配中的作用。通过具体实例和代码实现,帮助读者更好地理解KMP算法的核心原理。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • Søren Kierkegaard famously stated that life can only be understood in retrospect but must be lived moving forward. This perspective delves into the intricate relationship between our lived experiences and our reflections on them. ... [详细]
  • 深入解析 HDFS Federation:多命名空间架构详解
    HDFS Federation 是一种扩展 HDFS 架构的方式,通过引入多个独立的 NameNode 来解决单点故障和性能瓶颈问题。本文将详细探讨 HDFS Federation 的工作原理、优势以及潜在挑战。 ... [详细]
  • 制程能力分析:Cpk及其相关指数的深入探讨
    本文详细介绍了制程能力指数(Cpk)的概念及其与Cp、Pp、Ppk之间的关系,通过具体案例和图表展示如何评估和改进生产过程的能力。文章还提供了使用Excel和Minitab进行批量计算的实际操作步骤。 ... [详细]
author-avatar
刘旭
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有