热门标签 | 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存储管理


推荐阅读
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了2020年计算机二级MSOffice的选择习题及答案,详细解析了操作系统的五大功能模块,包括处理器管理、作业管理、存储器管理、设备管理和文件管理。同时,还解答了算法的有穷性的含义。 ... [详细]
  • 服务器上的操作系统有哪些,如何选择适合的操作系统?
    本文介绍了服务器上常见的操作系统,包括系统盘镜像、数据盘镜像和整机镜像的数量。同时,还介绍了共享镜像的限制和使用方法。此外,还提供了关于华为云服务的帮助中心,其中包括产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题和视频帮助等技术文档。对于裸金属服务器的远程登录,本文介绍了使用密钥对登录的方法,并提供了部分操作系统配置示例。最后,还提到了SUSE云耀云服务器的特点和快速搭建方法。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • “你永远都不知道明天和‘公司的意外’哪个先来。”疫情期间,这是我们最战战兢兢的心情。但是显然,有些人体会不了。这份行业数据,让笔者“柠檬” ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
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社区 版权所有