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

news2024/12/24 2:25:49

一,内存管理四种方式。

在这里插入图片描述

二,连续分配管理方式。

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

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.coloradmin.cn/o/606340.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式系统中I2C总线通信基本方法

将 I2C spec 文章总结为一篇,目录如下 I2C Introduction I2C Architecture I2C Transfer I2C Synchronization And Arbitration I2C Hs-mode1、I2C Introduction 1、I2C 历史 I2C:Inter-Integrated Circuit,集成电路总线。 I2C 是 Philips…

部分网络结构记录

CVPR 2022 | Mobile-Former来了!微软提出:MobileNetTransformer轻量化并行网络 文章链接: CVPR 2022 | Mobile-Former来了!微软提出:MobileNetTransformer轻量化并行网络 - 知乎 (zhihu.com) Mobile-Former架构图 Mobile-Form…

Mybatis学习笔记一

目录 一、Mybatis特性二、快速入门1.导入依赖2.mybatis-config.xml配置3.创建mapper接口4.创建MyBatis的映射文件5.通过junit测试功能 三、MyBatis获取参数值的两种方式(重点)1.单个字面量类型的参数2.多个字面量类型的参数3.map集合类型的参数4.实体类类…

【六一特别文章】Python编写一个六一儿童节问答小游戏及趣味比赛

随着六一儿童节的到来,我们可以为孩子们编写一个有趣的小游戏,让他们在游戏中学习有关六一儿童节的知识。本文将介绍如何用Python编写一个六一儿童节问答小游戏及趣味比赛。 首先,我们需要准备一些有关六一儿童节的问题和答案。这里我准备了…

云原生之docker详解

目录 1.云原生概念 1.1 云原生定义 1.2 云原生元素 1.2.1 微服务 1.2.2 DevOps 1.2.3 持续交付 1.2.4 容器化 2. Docker 2.1 Docker概述 2.1.1 Docker 定义 2.1.2 Docker应用场景 2.1.3 Docker的架构 2.2 Docker命令 2.2.1 docker进程相关命令 2.2.2 docker镜像…

htmlCSS-----CSS选择器(下)

目录 前言: 2.高级选择器 (1)子代选择器 (2)伪类选择器 (3)后代选择器 (4)兄弟选择器 相邻兄弟选择器 通用兄弟选择器 (5)并集选择器 &am…

测试进阶必备,这5款http接口自动化测试工具真的很香

现在市场上能做接口自动化测试的工具有很多,一搜一大把,让人眼花缭乱。我们去选择对应实现方式时,不管是框架体系还是成熟稳定的工具,核心目的都是期望引入的技术能在最低投入的情况下达到最优效果。 那么我们选择依据出来了&…

LearnOpenGL-高级OpenGL-9.几何着色器

本人初学者,文中定有代码、术语等错误,欢迎指正 文章目录 几何着色器使用几何着色器造几个房子爆破物体法向量可视化 几何着色器 简介 在顶点和片段着色器之间有一个可选的几何着色器几何着色器的输入是一个图元(如点或三角形)的一…

【02】STM32·HAL库开发-Cortex-M系列介绍 | Cortex内核分类及特征 | Cortex-M3/M4/M7介绍

目录 1.ARM公司(了解)2.Cortex内核分类及特征(了解)3.Cortex-M3/4/7介绍(了解) 1.ARM公司(了解) ARM的R是RISC(精简指令集计算机)的缩写。ARM公司只做内核设计…

数学模型在水环境影响评价、防洪评价与排污口论证项目中的应用

数学模型在水环境评价、防洪评价和排污口论证等领域中的重要作用,随着人类活动的不断增加和环境问题的日益突出,对水资源和水环境的保护与管理变得至关重要。为了更好地理解和应对这些挑战,数学模型成为一种强大的工具,能够提供量…

ubuntu22.04使用kk安装kubernates1.20.4和kubesphere3.1.1

注意 存储空间不够可能安装失败 环境 master 192.168.1.108node1 192.168.1.106node2 192.168.1.102 root ssh登录 sudo passwd root sudo apt install openssh-server # 定位 /PermitRootLogin 添加 PermitRootLogin yes # 注释掉#PermitRootLogin prohibit-password #St…

【Jenkins+Ant+Jmeter】持续集成接口测试平台搭建

一、环境准备: 1、JDK:Java Downloads | Oracle 2、Jmeter:Apache JMeter - Download Apache JMeter 3、Ant:Apache Ant - Binary Distributions 4、Jenkins:Jenkins 二、Jemter脚本准备: 1、脚本目录&a…

PyTorch实验—回归任务

PyTorch回归任务 回归任务概述:通过pytorch搭建神经网络,进行气温的预测 回归任务可以看作 y kx b y为需要进行回归预测的值 下面对实验步骤进行整理 导入相关的库 import numpy as np import pandas as pd import matplotlib.pyplot as plt import…

张小飞的Java之路——第四十四章——其他流对象

写在前面: 视频是什么东西,有看文档精彩吗? 视频是什么东西,有看文档速度快吗? 视频是什么东西,有看文档效率高吗? 诸小亮:这一节,我们介绍一下其他不常用的流对象 …

SAP-MM-分割评估-评估类型-评估类别

同一物料的使用,既有“自制品”,又有“外购品”,并且其来源不同,如同一外购品由不同的供应商提供,价格也不相同。也就是说:同一物料有不同的价值指派,即在不同的条件下,同一物料可能有不同的价值…

智能型数字档案馆构建设想

档案作为企业正式权威的数据资源,具有其历史传承和凭证唯一性等特点,随着企业的数字化转型,档案工作更需要数字化转型,档案管理与利用急需借助信息技术手段来管理好和记录好,急需挖掘档案资源,发挥其价值&a…

01.硬盘启动盘,加载操作系统

硬盘启动盘,加载操作系统 模拟硬盘加载操作系统 环境: VMware16 Ubuntu16.04 qemu bochs 2.7 参考: 启动,BIOS,MBR 硬盘控制器主要端口寄存器 《操作系统真相还原》 1.系统开机流程 暂不构建中断向量表,直接加载MBR …

Knowledge Distillation: A Survey

本文是蒸馏学习综述系列的第一篇文章,主要是针对2021年 IJCV Knowledge Distillation: A Survey的一个翻译。 知识蒸馏:综述 摘要1 引言2 知识2.1 基于响应的知识2.2 基于特征的知识2.3 基于关系的知识 3 蒸馏方案3.1 离线蒸馏3.2 在线蒸馏3.3 自蒸馏 4…

你真的了解epoll吗?深入epoll的五个问题

由于epoll用的比较多,最近看到一些网友关于epoll的问答,所以我就想整理成一篇文章,这样看起来和理解起来都方便一些。 问题1:什么是epoll的ET/LT模式,select/poll支持吗? ET是edge trigger,也…

K8s in Action 阅读笔记——【9】Deployments: updating applications declaratively

K8s in Action 阅读笔记——【9】Deployments: updating applications declaratively 集群配置: 本章介绍如何更新运行在Kubernetes集群中的应用,以及Kubernetes如何帮助你实现真正的零停机更新过程。虽然这可以仅使用ReplicationControllers或ReplicaSe…