OS-内存管理-4种内存管理方式(连续分配,页式,段式,段页)。

news/2024/12/2 20:51:12/

一,内存管理四种方式。

在这里插入图片描述

二,连续分配管理方式。

连续分配方式:为用户分配连续的内存空间。

1.单一连续分配方式

在这里插入图片描述

2.固定分区分配方式

在这里插入图片描述

3.动态分区分配方式

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

4.三种连续分配方式的对比。

在这里插入图片描述

三,基于页式存储管理。

1.页式

为进一步提高内存利用率,尽量避免碎片的产生,引入分页思想:
  ①将内存分为一个个大小相等的分区,每个分区就是一个 “页框/页帧/内存块/物理块/物理页面” 每个页框有一个编号叫"页框号/页帧号/内存块号/物理块号/物理页面号",页框号从0开始。
  ②将进程的逻辑地址空间也分为于页框大小相等的一个个小部分,每部分称 “页/页面” ,每个页有一个编号叫 “页号/页面号” ,从0开始。
在这里插入图片描述

2.基本概念

1.页框/页帧/内存块/物理块/物理页面 与 页/页面 。

2.页框号/页帧号/内存块号/物理块号/物理页面号 与 页号/页面号。

3.页表(实现页号到物理块号的地址映射)
为方便在内存中找到进程每个页面所对应的物理块,系统为每个进程都建立一张页表:记录了页面在内存中对应的物理块号,页表一般存放在内存中,包括页号与块号
在这里插入图片描述

4.逻辑地址A地址结构与确定页号,页内偏移量(由逻辑地址A)
由页表可知,我们只需要由逻辑地址A确定对应的页号与页内偏移量,我们就可以得到逻辑地址A在对应的物理块号中的位置。

①传统方式由逻辑地址A确定页号与页内偏移量:
在这里插入图片描述
注:页面大小决定了逻辑地址A中页内偏移量W占的位数。
注:页号位数决定了 一个进程最多拥有多少个页面。

②由拼接二进制方式确定页号与页内偏移量:
如果页面大小刚好是2的整次幂,则硬件可以很快将逻辑地址A,拆分成 页号P 与 页内偏移量W 假设某计算 32位 表示逻辑地址A。页面大小4KB,按字节编址。
在这里插入图片描述
5.基地址变换机构(具有快表)。
快表:又称相联存储器(TLB,Taranslation,lookaside buffer)是一种访问速度比内存更块的高速缓存(TLB不是内存)。
在这里插入图片描述
注1:p>=M 中" = " 也会产生越界,因为页号从0开始,页表项长度至少是1.
注2:页表项长度:指每个页表项占多大空间。
注3:页表长度:指有多少个页表项。

注4:系统先访问快表,若快表命中则直接访问目标页。
注5:系统先访问快表,若快表失效,则再访问慢表,并将副本放入快表。
注6:系统可同时访问快表与慢表,若快表命中则终止访问慢表。
注7:系统可同时访问快表与慢表,若快表失效,则继续访问慢表,并将副本放入快表。

6.对比基地址变换机构有无快表。
在这里插入图片描述

3.两级页表

普通页式管理遇到问题:
  1.页表必须连续存放,因此当页表很大的时候,需要占用很多个连续的页框,这种方式就失去了意义。
  2.没有必要让整个页表常驻内存,因为进程在一段时间内可能只需要访问某几个特定的页面。
为解决上述,引入多级页表:
可将长长的页表进行分组,使每个内存块刚好可以放入一个分组。
在这里插入图片描述
另外,要为这些离散的分组再建立一张页表,称为 页目录表 或 外层页表 或 顶层页表。
在这里插入图片描述
注1:若采用多级页表机制,则各级页表大小不可以超过一个页面的大小,如果只分两级,且一级页号表示的范围一个页面村放不下,则需要继续往上分。

四,基于段式存储管理。

1.段式

段式存储与页式最大区别就是:离散分配时所分配地址空间的基本单位不同。
段式:进程的地址空间按照程序自身的逻辑关系划分为若干段,每个段都有一个段名,每段从0开始。
在这里插入图片描述

注:(在低级语言中,程序员需使用段名来编程,但OS识别的是段号,故编译器会自动将段名转换,所以给了段名相当于给了段号)。

2.基本概念

1.段名,段号,段长,基址,段内地址。

2.地址结构,类比页式
分段系统逻辑地址结构由段号(段名)和段内地址(段内偏移量)所组成的:
在这里插入图片描述

3.段表
程序分多个段,各段离散地装入内存,为了保证程序能正常运行,就必须能从物理内存中找到各个逻辑段存放位置,为了高效,OS为每个进程建立一张段映射表,称段表。

注1:由于各段长度不一样,因此相比"页式"增加了段长项。
注2:每个段对应一个段表项,其中记录该段在内存的起始位置,又称基址和段的长度。
注3:各个段表项长度相同,因此K号段对应的段表项存放地址 = M + k*段表项长度。M为段表起始地址。
在这里插入图片描述
4.地址变换过程
在这里插入图片描述
注:在内存的系统区中,存放着很多用于管理软硬件资源的数据结构,包括进程控制块PCB,当一个进程要上cpu之前,进程切换相关的内核程序负责将某进程调度到cpu上并恢复相应运行环境,加载对应的PCB,这其中就包含一个非常重要的寄存器叫段表寄存器,里面存放着,进程对应的段表始址F以及段表长度M。

五,基于段页式存储管理。

1.段页式

分段存储会产生外部碎片,页式不利于实现信息的共享和保护,基于此,综合两者优点,引出段页式:
  ①将程序按照逻辑模块先分段,再将各段分页=内存块大小,每段中页号从0开始。
  ②再将内存空间分为大小相等的内存块,进程运行前将各页面分别装入中。
在这里插入图片描述

注:段表只有一个,页表可以有很多个。

2.基本概念

1.段号,页号,页表起始地址,段表,页表,段名,段长。

2.逻辑地址结构。
在这里插入图片描述
注1:段号位数决定了每个进程最多可分几个段。
注2:页号位数决定了每个段最大有多少各页。
注3:页内偏移量决定了页面大小,内存块大小。
注4:分段对用户可见,程序员给出的段名,段内地址(因此段页式为二维的地址结构。),而对段分页用户不可见,系统自动根据段内地址划分页号与页内偏移量。
段式页式二维的,页式为一维的。

3.地址变化机构
在这里插入图片描述


http://www.ppmy.cn/news/129976.html

相关文章

【C++】委托构造函数

如果一个类中重载了多个构造函数,并且都需要对某些变量初始化,会产生许多重复的代码。 委托构造函数delegating constructor 在同一个类中的构造函数可以调用另一个构造函数,简化初始化。 以下:前两种构造函数都依赖第三种构造…

黑苹果 神舟zx6-ct5na EFI分享

天翼云盘:https://cloud.189.cn/t/bUFRnmJJnYbm 安装教程可以在B站上找。支持big sur11.1。声卡,Wi-Fi(在11系统下正常),蓝牙驱动(需要打开隔空投送,不然无法使用)正常。不能正常休眠…

ZX交换机登录配置

交换机型号 : ZXR10 5250-52TS-L 1.电脑网卡配置:192.168.0.2 255.255.255.0 2.连接交换机网口 3.telnet 192.168.0.1 一台新的设备用户名是admin 密码是zhongxing enable密码是zxr10 ZX技术热线:4008309870

CS10-3ZX控制步进电机

1. 步进电机控制系统所需器材 名称参数数量开关电源双科电子S-145-24 OUTPUT: 24V 6A1步进电机控制器CS10-3ZX1步进电机驱动器DM5421步进电机HST42H40165-5D-04J1 2. 控制系统接线 步进电机驱动器采用共阳接线方法。 系统的接线图如下图所示。 3. 控制系统图片

科诚Godex ZX430 打印机驱动

科诚Godex ZX430 打印机驱动是官方提供的一款打印机驱动,本站收集提供高速下载,用于解决打印机与电脑连接不了,无法正常使用的问题,本动适用于:Windows XP / Windows 7 / Windows 8 / Windows 10 32/64位操作系统。有需…

兆芯服务器芯片,兆芯 ZX-200 IO扩展芯片

产品介绍 特点: 最多支持9通道PCIe 2.0传输 最多可支持11个USB扩展接口 提供2个USB 3.1 Gen2(支持TYPE-C规范),3个USB 3.1 Gen1,6个USB 2.0接口 简介: ZX-200 IO扩展芯片,是兆芯自主创新研发的新一代、高性能IO扩展芯片…

ZX内存遍历工具1.0

下载地址:ZX内存遍历工具1.0-桌面系统文档类资源-CSDN下载

zx-quill+vue+element实现富文本图片上传到服务器

quill富文本编辑器图片默认是base64数据流,我们要实现把图片上传到服务器这个需求,quill中并没有找到相关配置 https://www.jianshu.com/p/9e4e4d955d0f 感谢作者给我灵感—用隐藏的input上传组件来实现自定义上传事件 cnpm install zx-quill 下载安装相…