首页 > 系统相关 >12. 内存管理(Memory Management)

12. 内存管理(Memory Management)

时间:2024-04-30 16:36:16浏览次数:14  
标签:12 分区 Memory 物理地址 地址 Management 内存 memory

内存管理目标

  1. MAIN MEMORY
  • Main memory(主内存) is central(中心) to the operation(运作) of a modern computer system.
  • Memory consists of a large array of bytes(一大组字节数据或者字节序列),each with its own address(地址).(内存是由一大组字节组成,每一个字节都有自己的地址)。
  • The CPU fetches(获取 ) instructions from memory according to the value of the program counter(PC).These instructions may cause additional loading from and storing to specific memory addresses.(这些指令可能会导致从特定内存地址加载和存储额外的数据。)
  • A typical instruction-execution cycle, for example ,first fetches an instruction from memory.The instruction is then decoded and may cause operands to be fetched from memory.After the instruciton has been executed on the operands on the operands ,results may be stored back in memory.(典型的指令执行周期,例如,首先从内存中取出一条指令。然后对指令进行解码,可能需要从内存中取出操作数。在对操作数执行了指令后,结果可能会被存回内存。)
  1. 高速缓存cache
  • cache
    • 第一次:cpu读取发现cache
    • 第二次:cpu发现cache,那么就会去读内存
  • 现在有三级缓存,每一个单核中有两个cache,然后多核之外还有一个cache
  1. 保护操作系统和用户进程
  • 用户进程不可以访问操作系统内存数据,以及用户进程空间之间不能互相影响(用户进程空间之间不能互相影响,有些恶意软件,去干扰其他聊天软件的数据)
    • 通过硬件实现, 因为操作系统一般不干预cpu对内存的访问
      • base register:基址寄存器
      • limit register:限长寄存器
    • 上述两个寄存器的值只能被操作系统的特权指令加载,然后限制只可以访问两个寄存器之间的内存空间去读取
  1. 内存管理目标

逻辑地址和物理地址

  1. 地址空间和地址转换
  2. 地址转换时机
  • 一个程序需要进行逻辑地址转换到物理地址,应该在run time这个时机比较好。
  • 没有逻辑地址转向物理地址重新计算的烦恼。
  1. 内存管理单元MMU
  • Memory-Management Unit 完成逻辑地址到物理地址‘运行时’的转换工作
    • 重定位寄存器(relocation register)或基址寄存器

连续内存分配

  1. contiguous memory allocation(连续内存分配)
  • In contiguous memory allocation,each process is contained in a single section of memory that is contiguous to the section containing the next process.(在连续内存分配中,每个进程都包含在一个块中与包含下一个进程的部分相邻的内存部分中。)
    • Memory allocation(内存分配)
    • Memory recycle(内存回收)
    • Memory protection(内存保护)
  1. fixed-sized partition(固定大小分区)
  • Memory is divided(分开) to several(几个) fixed-sized partitions(分区) Each partition may contain exactly one process.(内存被分成几个固定大小的分区。每个分区可能只包含一个进程。)
  • 一个进程占用一个分区,进程再运行的时候会把虚拟地址通过mmu将分区的起始地址加偏移地址转换为物理地址。
  • 会有一个表,记录每一个区域的起始地址,长度,并记录是否有进程占有它。
  • 这个管理方案是早期的管理方案,不灵活。
  1. variable-partition(可变分区)
  • In the variable-partition scheme(可变分区方案),the operating system keeps two tables indicating(指令) which parts of memory are available and which are occupied.(在可变分区方案中,操作系统会维护两个表,指示哪些内存空间是可用的,哪些是被占用的。)
  • Initially,all memory is available for user processes and is considered(被考虑) one large block of available memory ,a hole(孔洞).(最初,所有内存都可供用户进程使用,被视为一大块可用内存,一个孔洞。)
  • Eventually ,as you will see ,memory contains a set of holes of various sizes.(最终,正如你将会看到的那样,内存中包含着各种大小的空洞。)
  1. 动态存储分配问题
  • 后面两个算法需要遍历所有空洞。
  1. 地址转换与保护
  • 两种连续分配方案的地址转换方式是相似的:
    • 物理地址= 基址+ 逻辑地址
  • 地址保护策略:与无限长limit进行比较
  • 大致流程:与limit register进行比较如果是yes,那么就把逻辑地址转换为物理地址(通过基址),如果是no那么就会报错addressing error.
  1. 碎片
  • Fragmentation:some little pieces of memory hardly to be used.(碎片化:一些几乎无法使用的小内存片段。)
    • internal fragmentation(内部碎片,是对固定大小分区的情况的)
    • external fragmentation(外部碎片,是对可变分区)
      • compaction(压缩)
        • static relocation(考虑地址转换是否是动态的,只有是运行时候地址转换的方案才可以使用这个方案)
        • cost(成本,考虑需要额外的空间和时间)
  1. 可变分区和固定分区这两种方案已经被放弃掉了,请看下一章

笔记来自b站
【【Linux操作系统】Lecture 12 Memory Management】https://www.bilibili.com/video/BV1gE411F74T?vd_source=7183d94355e25d7a846a2242f0eb9c7d
感谢老师的网课

标签:12,分区,Memory,物理地址,地址,Management,内存,memory
From: https://www.cnblogs.com/zhudachang/p/18163928

相关文章

  • 第五章:Relaxed Memory Consistency
    chapter5:宽松的内存一致性之前所讨论的SC和TSO需要对所使访存顺序符合程序顺序,称为强一致性模型。而目的在于只保留程序员真正需要的顺序的弱一致性模型,可以允许更多的硬件或软件优化(编译器或运行时)减少排序约束,进一步提升性能。1、为什么需要宽松内存一致性程序员总是期望以......
  • Profinet转Modbus网关接称重设备与1200PLC通讯
     Profinet转Modbus网关(XD-MDPN100)是一种能够实现Modbus协议和Profinet协议之间转换的设备。Profinet转Modbus网关可提供单个或多个RS485接口,使用Profinet转Modbus网关将称重设备与西门子1200PLC进行通讯,可以避免繁琐的编程和配置过程,节省了工程师的时间和精力。其次,它提供了灵......
  • ZCMU-1129
    数学公式题罢了学长1.斯特灵公式:2.对数公式(因为以10为底,得到的是10^x,所以最后向下取整加上1);#include<cstdio>#include<cmath>usingnamespacestd;constdoublePI=acos(-1);constdoublee=exp(double(1));intstr(intn){returnfloor(log10(sqrt(2*PI*n))+......
  • 代码12
    """文件对话框获取文件"""fromtkinterimport*fromtkinter.filedialogimport*#创建主窗口root=Tk()root.geometry("400x100")#设置窗口大小#定义函数,用于调用文件对话框并获取文件路径deffunc():#调用文件对话框,设置对话框标题为"上传文件"#初......
  • 启发式评估(Heuristic Evaluation)--转载 [2011.12.13 sina blog]
    启发式评估(HeuristicEvaluation) -[一架好书--读书学习的收获]2008年08月07日分类: 一架好书--读书学习的收获  版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://buyantang.blogbus.com/logs/27286224.htmlUsabilityInspectionMethods,Edit......
  • 启发式评估(heuristic evaluation)方法介绍--转[2011.12.23 sina blog]
    启发式评估(heuristicevaluation)方法介绍(2008-09-0911:56:52)转载▼标签:it分类: 2互联网产品设计什么是启发式评估?启发式评估法就是使用一套简单、通用、有启发性的可用性原则来进行的可用性评估。即几个评审人员根据一些通用的可用性原则和自己的经验来发现......
  • MuMu模拟器12 adb连接端口查看
    前言全局说明官方说明:https://mumu.163.com/help/20230504/35047_1086360.html#a2MuMu模拟器12现已支持adb同时连接多个模拟器进行调试的操作,可以参考以下步骤操作,查看MuMu模拟器12本体以及多开模拟器的adb端口:单开的MUMU模拟器12可通过模拟器右上角菜单-问题诊断,获取AD......
  • 虚拟机VMware tools的用途(转载)[2012.2.14 sina blog]
    虚拟机VMwaretools的用途更新虚拟机中的显卡驱动,使虚拟机中的XWindows可以运行在SVGA模式下。在客户操作系统中安装VMwareTools非常重要。如果不安装VMwareTools,虚拟机中的图形环境被限制为VGA模式图形(640x480,16色)。使用VMwareTools,SVGA驱动程序被安装,VMwareWorkstati......
  • 高性能摩托车灯降压恒流ic全亮/半亮/循环模式短路保护AP5126
    AP5126是一款PWM工作模式,高效率、外围简单、内置功率管,适用于12-80V输入的高精度降压LED恒流驱动芯片。输出最大功率可达15W,最大电流1.2A。AP5126可实现全亮/半亮功能切换,通过MODE切换:全亮/半亮/循环模式。AP5126工作频率固定在140KHZ,同时内置抖频电路,可以降低对......
  • 车灯LED电源控制降压恒流输出8A大电流芯片AP5125高低亮
    AP5125是一款外围电路简单的Buck型平均电流检测模式的LED恒流驱动器,适用于8-100V电压范围的非隔离式大功率恒流LED驱动领域。芯片采用固定频率140kHz的PWM工作模式,利用平均电流检测模式,因此具有优异的负载调整率特性,高精度的输出电流特性。AP5125芯片集成了高低......