超详细

您所在的位置:网站首页 分区存储管理有哪些方式 超详细

超详细

2024-02-01 00:40| 来源: 网络整理| 查看: 265

文章目录 3.1 存储器管理概述 3.2 分区存储管理 3.2.1 单一连续分区存储管理 3.2.2 固定分区存储管理 3.2.3 可变分区存储管理 3.3 分页存储管理 3.3.1 分页存储管理 3.3.2 分页存储管理的改进 3.4分段存储管理 3.4.1 分段存储管理 3.4.2 段页式存储管理 3.5 虚拟存储管理 3.5.1 虚拟存储器基本概念 3.5.2 请求分页虚拟存储管理 3.5.3 请求分段虚拟存储管理 3.5.4 Linux系统的内存管理

操作系统全家桶:传送门 一、操作系统引述:https://blog.csdn.net/diviner_s/article/details/108829327 二、处理器管理:https://blog.csdn.net/diviner_s/article/details/108940809 三、存储器管理:https://blog.csdn.net/diviner_s/article/details/112245241 四、设备管理:https://blog.csdn.net/diviner_s/article/details/112250905 五、文件管理:https://blog.csdn.net/diviner_s/article/details/112253441 六、用户接口:https://blog.csdn.net/diviner_s/article/details/112255959

3.1 存储器管理概述

一、存储器管理

内存描述 内存也称主存,是指CPU能直接存取指令和数据的存储器。 内存在计算机系统中的地位

存储器管理的主要功能

主存空间的分配与回收 地址变换 主存空间的共享 主存空间的保护 主存空间的扩充

存储器的层次

二、地址转换

用户程序的主要处理阶段 编辑 编译 连接 装入 运行

有关概念 逻辑地址:也叫相对地址、用户地址。逻辑地址是程序中编程使用的。实际中C语言的指针,读取指针变量的值,实际上这个值是逻辑地址,是相对于当前进程数据段的地址。 物理地址:也叫绝对地址、内存地址。是最终加载到内存地址寄存器中的地址,内存单元的真正地址。编号从0开始一直到物理内存的最大值,映射到实际的内存条上。 逻辑地址空间:也称用户地址空间或相对地址空间,是由程序中逻辑地址组成的地址范围,逻辑地址空间大小(即最大可寻址空间)由系统总线中地址总线的宽度决定。 物理地址空间:也称内存地址空间或绝对地址空间,是由内存中一系列存储单元限定的地址范围,由实际的物理内存大小决定。 重定位:程序和数据装入内存时,需对目标程序中的逻辑地址进行修改,把程序数据中的逻辑地址转变为实际内存存放的物理地址的过程称作重定位。 重定位方式:分为静态重定位和动态重定位 系统总线:又称内总线或板级总线,是用来连接微机各功能部件从而构成一个完整系统的。常说的微机总线就是指系统总线,如ISA总线、EISA总线、PCI总线等。 系统总线上传送的信息包括数据信息、地址信息、控制信息,所以包含有三种不同功能的总线,即数据总线DB、地址总线AB和控制总线CB。 数据总线DB用于传送数据信息。实现CPU和存储器或I/O接口等其它部件间的数据通信。数据总线的位数也代表微型计算机的处理性能,称为字长。 地址总线AB是用来传送地址的,地址只能从CPU传向存储器或I/O端口。地址总线的位数决定了CPU可直接寻址的内存空间大小,比如32位地址总线可寻址空间为4GB的位址。 控制总线CB用来传送控制信号和时序信号。如读写信号、中断响应信号、中断申请信号、复位信号等。 程序连接的方式 1)静态链接:在程序装入内存之前,先将各目标模块及所需的库函数链接成一个完整的可执行程序(外存上会形成可执行文件),以后不再拆开。 2)装入时动态链接:将用户源程序编译后得到一组目标模块,在装入内存时,釆用边装入边链接的链接方式(在外存上不会形成可执行文件)。 3)运行时动态链接:对某些目标模块的链接,是在执行中需要该目标模块时,才对它进行的链接。其优点是便于修改和更新,便于实现对目标模块的共享。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UaJaraWS-1609837286080)(C:\Users\Diviner\AppData\Roaming\Typora\typora-user-images\image-20201217155332279.png)]

程序装入内存

绝对装入:在编译时,如果知道程序将驻留在内存的某个位置,编译程序将产生基于绝对地址的目标代码。绝对装入程序按照装入模块中的设定地址,直接将程序和数据装入指定内存。由于程序中的逻辑地址与实际内存地址完全相同,故不需对程序和数据的地址进行修改。

绝对装入方式只适用于单道程序环境。程序中所使用的绝对地址,可在编译或汇编时给出,也可由程序员直接赋予。而通常情况下在程序中釆用的是符号地址,编译或汇编时再转换为绝对地址。

可重定位装入方式:在多道程序环境下,多个目标模块的起始地址通常都是从0开始,程序中的其它地址都是相对于起始地址的,此时应釆用可重定位装入方式。根据内存的当前情况,将装入模块装入到内存的适当位置。装入时对目标程序中指令和数据的逻辑地址一次性变为物理地址的修改过程称为重定位,地址变换通常是在装入时一次完成的,所以又称为静态重定位。

静态重定位的特点是在一个作业装入内存时,必须分配其要求的全部内存空间,如果没有足够的内存,就不能装入该作业。此外,作业一旦进入内存后,在整个运行期间不能在内存中移动,也不能再申请内存空间。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-udaY87i1-1609837286082)(C:\Users\Diviner\AppData\Roaming\Typora\typora-user-images\image-20201217155517914.png)]

动态运行时装入方式:动态运行时装入,也称为动态重定位,程序在内存中如果发生移动,就需要釆用动态的装入方式。装入程序在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到进程执行时才进行。因此,装入内存后的所有地址均为相对地址。这种方式需要重定位寄存器的支持。

动态重定位的特点是可以将作业分配到不连续的存储区中,在进程运行之前可以只装入它的部分代码即可投入运行,然后在进程运行期间,根据需要动态申请分配内存;便于程序段的共享,可以向用户提供一个比存储空间大得多的地址空间。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-87PZz8LM-1609837286084)(C:\Users\Diviner\AppData\Roaming\Typora\typora-user-images\image-20201217155822877.png)]

三、地址保护

​ 系统内多道并发,内存属于共享状态,为实现存储保护,需要进程执行时所访问的内存属于自己的合理空间,这就要实现内存地址保护,也就是进行地址越界检查。主要有两种方式:

对于静态重定位方式: 在处理器中设置“下界寄存器”和“上界寄存器”。当一个已经装入主存储器的进程得到处理器运行时,进程调度计算得到该进程的上界地址(起始地址)和下界地址(最大地址),分别送入上界寄存器和下界寄存器中。处理器执行该进程的指令时,将处理器的物理地址分别与上界寄存器和下界寄存器进行比较,确定是否越界,越界则为地址越界,出错。如果不越界,则访问相应内存单元。

对于动态重定位方式: 在处理器设置设置“基址寄存器”和“限长寄存器”。当一个已经装入主存储器的进程得到处理器运行时,进程调度计算得到该进程的长度和起始地址,分别送入限长寄存器(也叫界限寄存器)和基址寄存器(也叫重定位寄存器)中。处理器执行该进程的指令时,首先将逻辑地址与限长寄存器的值作比较,确定是否越界,越界则为地址越界,出错。如果不越界,再将逻辑地址与基址寄存器运算得到实际的物理地址,然后通过地址总线找到对应的内存单元读取指令或数据。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OM4RggqI-1609837286086)(C:\Users\Diviner\AppData\Roaming\Typora\typora-user-images\image-20201217160012869.png)]

四、覆盖与对换

覆盖技术:主要用在早期操作系统中(内存



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3