存储管理.

简介: 存储管理

存储管理

  • 程序的装入以及链接
  • 编译:用户源程序经过编译生成目标模块,目标模块以0作为开始地址
  • 链接:将编译后形成的多个目标模块以及他们需要的库函数链接在一起。装入模块虽然有统一地址,但任然以0作为参考地址。
  • 装入:将装入模块装入实际物理地址空间,并修改程序中与地址有关的代码----这一过程称为地址重定位
  • 地址重定位:相对地址转换为内存的绝对地址的工作,地址重定位又称为地址映射。
  • 静态重定位:程序执行前进行重定位。
  • 程序重定位后不能在内存中移动
  • 要求存储空间是连续的
  • 动态重定位:程序在执行时进行重定位
  • 目标模块装入内存时无需任何修改,因而装入后可以在变迁(进程挂起)
  • 一个程序由若干个相对独立的目标模块组成
  • 链接
  • 静态链接:程序运行之前事先进行的链接称为静态链接
  • 装入时动态链接:程序装入内存时,边装入边链接。
  • 便于软件更新
  • 便于模块共享
  • 程序在运行时装入模块不可变
  • 每次的装入模块是一样的
  • 运行时动态链接:将目标模块的链接推迟到程序执行时再进行
  • 连续分配存储管理方式
  • 固定分区:由操作系统或者操作员将内存划分为若干个大小不等的分区。一旦划分好,程序运行期间不能重新划分。
  • 实现简单,但是内存的利用率不高。适用于进程的大小以及事先能够预知进程大小的系统中。
  • 可变分区:在程序装入内存时,把可用的分区切割成连续的区域,以适应进程大小的需要
  • 首次适应法:优先使用内存中低地址部分的空闲空间,高地址部分有较大的空闲分区。低地址部分碎片过多,影响查找空间的速率。
  • 下次适应法:内存查询从上一次的位置开始查询,而不是重新查询。使内存得到均衡使用,但是内存缺乏大的空闲分区。导致比较大的进程无法运行。
  • 最佳适应法:把进程大小与内存空闲区最匹配的空闲区域分配给进程。缺点是链表头部会留下难以利用的小空闲区,影响分配的速度
  • 最坏适应法:把与进程大小最不匹配的空闲区切割出分配给进程,缺点是大空闲区存在少,难以满足大进程运行
  • 动态重定位分区
  • 页式存储管理
  • 动态重定位虽然可以解决碎片的问题,但是内存信息的移动,处理机付出的代价很大。一个进程必须放在一个连续的内存空间中.由此,产生了离散分配方式.页式存储管理技术就是离散分配的方式的一种页式存储管理方式就是离散分配的一种。
  • 页式存储管理:将内存空间划分为大小相同的若干个存储块,并为其进行编号。同时,将进程的逻辑地址空间划分为与内存块大小相等的。进程的最后一页经常填不满,形成不可利用碎片,称为页内碎片。
  • 页表:进程的若干个页被离散的分配在内存的多个存储块中,为了能找到每个页所对应的存储块,系统为每一个进程建立了一个页表。页表实质上就是页号到存储块号的映射。
  • 页的大小通常为512B-4M;
  • 页式存储变换机构
  • 实现逻辑地址到物理地址的动态重定位,需要硬件支持
  • 逻辑地址结构由页号+页类位移组成
  • 页表的硬件实现
  • 每次CPU读取数据需要访问两次进程,第一次拿到页号,第二次拿到物理地址。
  • 为了提高系统的地址变换速度,在地址变换中设置了高速寄存器,称为快表
  • 段式存储管理
  1. 方便编程
  2. 段的共享
  3. 段的保护
  4. 动态链接
  5. 动态增加(按需分配,不会产生碎片)
  • 分段跟分页的区别
  • 页是信息的物理单位,段是逻辑单位。段是一组有意义的相对完整的信息。页的逻辑地址只给出一个地址,而段的逻辑地址,既要给出段号也要给出段的逻辑地址。
目录
相关文章
|
存储 缓存 监控
服务器的介绍
服务器的介绍
449 0
|
JSON 前端开发 Java
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
414 0
|
存储 资源调度 分布式计算
CDP中配置Apache Hadoop Yarn的安全性
CDP中配置Hadoop Yarn的安全性。
860 0
CDP中配置Apache Hadoop Yarn的安全性
|
11月前
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
【10月更文挑战第27天】计算机主机网关的作用类似于小区传达室的李大爷,负责将内部网络的请求转发到外部网络。当小区内的小不点想与外面的小明通话时,必须通过李大爷(网关)进行联系。网关不仅帮助内部设备与外部通信,还负责路由选择,确保数据包高效传输。此外,网关还参与路由表的维护和更新,确保网络路径的准确性。
218 2
|
10月前
|
搜索推荐 Android开发 开发者
探索安卓系统的最新特性与发展趋势
本文深入分析了Android 13的新功能和改进,以及这些更新对用户体验和开发者社区的影响。文章还预测了未来Android系统的发展方向,为技术爱好者提供了宝贵的信息。
|
XML JavaScript Java
Java一分钟之-XML解析:DOM, SAX, StAX
Java中的XML解析包括DOM、SAX和StAX三种方法。DOM将XML加载成内存中的树形结构,适合小文件和需要随意访问的情况,但消耗资源大。SAX是事件驱动的,逐行读取,内存效率高,适用于大型文件,但编程复杂。StAX同样是事件驱动,但允许程序员控制解析流程,低内存占用且更灵活。每种方法都有其特定的易错点和避免策略,选择哪种取决于实际需求。
365 0
|
监控 数据挖掘 关系型数据库
结构化思维的理解与思考
结构化思维是一种将信息要素从无效转化为有序,提炼核心要点,将信息转化为有结构的知识,更好的帮助大脑理解和记忆,并支持我们清晰表达的通用能力。
1489 2
结构化思维的理解与思考
|
存储 运维 监控
阿里云IoT设备运维基础——监控报警介绍(一)|学习笔记
快速学习阿里云IoT设备运维基础——监控报警介绍(一)
阿里云IoT设备运维基础——监控报警介绍(一)|学习笔记
|
监控 安全 数据安全/隐私保护
SNMPv3:网络管理的安全进化
【4月更文挑战第22天】
507 4
|
图形学
【用unity实现100个游戏之18】从零开始制作一个类CSGO/CS2、CF第一人称FPS射击游戏——基础篇2(附项目源码)
【用unity实现100个游戏之18】从零开始制作一个类CSGO/CS2、CF第一人称FPS射击游戏——基础篇2(附项目源码)
323 0