【操作系统原理05】存储器管理

news2025/5/13 4:39:01

大纲

文章目录

  • 大纲
  • 一. 内存基础知识
    • 0.大纲
    • 1.什么是内存
    • 2.进程运行基本原理
      • 2.1 指令工作原理
      • 2.2逻辑地址VS物理地址
      • 2.3 从写程序到程序运行
        • 完整运行
        • 三种链接方式
  • 二.内存管理
    • 0.大纲
    • 1.操作系统进行内存管理
  • 三.覆盖与交换
    • 0.大纲
    • 1.覆盖技术
    • 2.交换技术
  • 四.连续分配管理方式
    • 0.大纲
    • 1.单一连续分配
    • 2.固定分区分配
    • 3.动态分区分配
      • 3.1 如何记录内存使用?
      • 3.2 如何分配空闲分区
      • 3.3 如何回收空闲分区
      • 3.4 内部碎片和外部碎片
  • 五.动态分区分配算法
    • 0.大纲与总结
    • 1.首次适应算法First Fit
    • 2.最佳适应算法Best Fit
    • 3.最坏适应算法Worst Fit
    • 4.邻近适应算法Next Fit
  • 六.基本分页存储管理
    • 0.大纲
    • 1.分页存储
    • 2.页表
      • 2.1 页表项
      • 2.2 如何实现地址的转换
        • 2.2.1 如何确定一个逻辑地址对应的页号,页面偏移量
  • 柒.基本地址变换机构
    • 0.大纲
    • 1.概念
  • 八.具有快表的地址变换机构
    • 0.大纲
  • 九.两级页表
    • 0.大纲
    • 1.单级页表问题
    • 2.原理
    • 3.细节
  • 十.基本分段式存储管理方式
    • 0.大纲
    • 1.分段概念
    • 2.段表概念
    • 3.地址变换
    • 4.对比分页与分段
  • 十一.段页式管理方式
    • 0.大纲
    • 1.分段分页优缺点
    • 2.段页式管理
    • 3.段页、段表
    • 4.地址访问

image-20250412181140310

一. 内存基础知识

0.大纲

image-20250412181607238

1.什么是内存

image-20250412181652930

image-20250412181819607

image-20250412182008901


2.进程运行基本原理

2.1 指令工作原理

image-20250412182253009

2.2逻辑地址VS物理地址

image-20250412182433339

image-20250412182517927

image-20250412182530617

image-20250412182539183

(1)绝对装入

image-20250412182706873

(2)静态重定位/可重定位装入

image-20250412182854333

(3)动态重定位

image-20250412182955390

image-20250412183003456


2.3 从写程序到程序运行

完整运行

image-20250412183201558

三种链接方式

image-20250412183341058

image-20250412183327734


二.内存管理

0.大纲

image-20250412213939559

image-20250412183449883

1.操作系统进行内存管理

image-20250412204550111

image-20250412204614343

  1. 操作系统负责内存空间分配与回收

  2. 操作系统需要负责提供某种技术从逻辑上对内存空间进行扩充(虚拟性)

  3. 操作系统需要提供地址转换功能,负责程序的逻辑地址物理地址的转换image-20250412204942545

  4. 操作系统需要提供内存保护功能。保证各进程在各自存储空间内运行,互不干扰

    方法一

    image-20250412205145553

    方法二

    image-20250412205244583


三.覆盖与交换

0.大纲

image-20250412183520271

1.覆盖技术

image-20250412205434108

image-20250412205638289

2.交换技术

进程在内存和磁盘间动态调度

image-20250412205830689

image-20250412205851292

image-20250412210118631


四.连续分配管理方式

0.大纲

image-20250412212609899

1.单一连续分配

image-20250412210958612

2.固定分区分配

image-20250412211150257

image-20250412211258047

3.动态分区分配

image-20250412211507140

3.1 如何记录内存使用?

image-20250412211624393

3.2 如何分配空闲分区

image-20250412211732176

3.3 如何回收空闲分区

image-20250412211948657

image-20250412212005419

image-20250412212017728

image-20250412212032676

image-20250412212100091


3.4 内部碎片和外部碎片

image-20250412212344269

image-20250412212403164


五.动态分区分配算法

0.大纲与总结

image-20250412212637694

image-20250412213731878


1.首次适应算法First Fit

image-20250412212815581


2.最佳适应算法Best Fit

image-20250412213053282

image-20250412213127206

image-20250412213143829


3.最坏适应算法Worst Fit

image-20250412213351980


4.邻近适应算法Next Fit

image-20250412213705999


六.基本分页存储管理

0.大纲

image-20250412215052147

image-20250412183708869

1.分页存储

image-20250412215749444

2.页表

image-20250412220032527

2.1 页表项

image-20250412220459546

.

物理上只存储块号

image-20250412220523348

2.2 如何实现地址的转换

连续型

image-20250412220711978

分页

image-20250412220931162

2.2.1 如何确定一个逻辑地址对应的页号,页面偏移量

image-20250412221117135

image-20250412221234673

image-20250412221300353

image-20250412221440188

image-20250412221511714

image-20250412221552835

柒.基本地址变换机构

0.大纲

image-20250412214103227

1.概念

image-20250413202515474

image-20250413202741632

image-20250413202759112

image-20250413202955148

image-20250413203227219


八.具有快表的地址变换机构

0.大纲

image-20250412214148103

image-20250413204731955

image-20250413204826476

image-20250413205113520

image-20250413205152529

image-20250413205217087

image-20250413205526592

image-20250413205624117

image-20250413205749241

image-20250413205802434

image-20250413205824858


九.两级页表

0.大纲

image-20250412214222759

1.单级页表问题

image-20250413212308735

image-20250413212328484

image-20250413212436874

2.原理

image-20250413212546358

image-20250413212642266

image-20250413212737629

image-20250413212812415

3.细节

image-20250413212934552

单机页表只用查询两次,第一次方寸页目录表,第二次访问目标内存单元


十.基本分段式存储管理方式

0.大纲

image-20250412214316714

1.分段概念

与分页区别:离散分配时所分配的地址空间的基本单位不同

image-20250413234440262

段号的位数决定了每个进程最多可以分为几个段,段内地址位数决定每个段的最大长度为多少

image-20250413234732340

2.段表概念

image-20250413235410721

3.地址变换

image-20250413235451815

具体流程

image-20250413235758334

4.对比分页与分段

image-20250414000115325

image-20250414000242210

这也是段名的好处,吧逻辑功能分开了

image-20250414000421296

比较访存次数

image-20250414000518215


十一.段页式管理方式

0.大纲

image-20250412214424220

1.分段分页优缺点

image-20250414001012921

2.段页式管理

image-20250414001320597

image-20250414001441378

3.段页、段表

image-20250414001729711

4.地址访问

image-20250414001949925

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2339409.html

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

相关文章

学习笔记—C++—string(练习题)

练习题 仅仅反转字母 917. 仅仅反转字母 - 力扣(LeetCode) 题目 给你一个字符串 s ,根据下述规则反转字符串: 所有非英文字母保留在原有位置。所有英文字母(小写或大写)位置反转。 返回反转后的 s 。…

[Swift]Xcode模拟器无法请求http接口问题

1.以前偷懒一直是这样设置 <key>NSAppTransportSecurity</key> <dict><key>NSAllowsArbitraryLoads</key><true/><key>NSAllowsArbitraryLoadsInWebContent</key><true/> </dict> 现在我在Xcode16.3上&#xff…

返回之术:用 navigate(-1) 闯荡前端江湖

前言 在前端这片江湖,页面跳转宛如轻功水上漂,来去无踪,飘忽不定。但其中有一门绝学,专治“回头是岸”之需求,那便是 React Router 中的 navigate(-1) 身法。 昔日我闯荡项目林,误入“下一页”禁地,一脚踏空,身陷页面迷阵。正当我焦头烂额之际,师父袖袍一挥,口吐一…

网络编程3

day3 一、服务器模型 1.循环服务器模型 同一个时刻只能响应一个客户端的请求 2.并发服务器模型 2.1含义 同一个时刻可以响应多个客户端的请求&#xff0c;常用的模型有多进程模型/多线程模型/IO多路复用模型。 2.2多进程模型 每来一个客户端连接&#xff0c;开一个子进程来专门…

海拔与大气压关系,大气压单位,气压传感器对比

mbmbar 毫巴(百帕) mbar 毫巴(百帕) hPa 百帕 1百帕1毫巴3/4毫米水银柱 1Kpa10百帕7.5毫米汞柱7.5mmhg 1Bar0.1MPa1000mba1000hpa100*7.5mmhg75mmhg1个大气压 HP303B HP303S HP203N BMP280

Linux 进程概念补充 (自用)

进程概念 内核进程进程状态内存泄漏进程调度。Linux真实调度算法环境变量 内核 狭义上的操作系统指的是 内核就是进程管理进程调度&#xff0c;文件系统等等。 广义上的操作系统其实在外壳指令这些。封装了系统调用的东西。 进程 课本概念程序的一个基本实例 内核观点&#…

PyTorch - Tensor 学习笔记

上层链接&#xff1a;PyTorch 学习笔记-CSDN博客 Tensor 初始化Tensor import torch import numpy as np# 1、直接从数据创建张量。数据类型是自动推断的 data [[1, 2],[3, 4]] x_data torch.tensor(data)torch.tensor([[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])输出&am…

Navicat、DataGrip、DBeaver在渲染 BOOLEAN 类型字段时的一种特殊“视觉风格”

文章目录 前言✅ 为什么 Boolean 字段显示为 [ ]&#xff1f;✅ 如何验证实际数据类型&#xff1f;✅ 小结 前言 看到的 deleted: [ ] 并不是 Prisma 的问题&#xff0c;而是数据库客户端&#xff08;如 Navicat、DataGrip、DBeaver&#xff09;在渲染 BOOLEAN 类型字段时的一种…

基于 Vue3 + ECharts + GeoJson 实现区域地图钻取功能详解

文章目录 前言一、实现步骤1. 项目初始化2. 准备GeoJson数据3. 创建地图组件4. 创建主页面组件5. 使用组件 二、功能亮点三、性能优化建议四、常见问题解决五、结语六、实战demo七、资源下载 前言 在数据可视化领域&#xff0c;地图展示是一种非常直观的表现形式。而地图钻取&…

安卓学习24 -- 网络

1 整体架构 &#xff08;出处见水印&#xff09; 这两张是能找到的比较清楚的图。目前可以看出&#xff0c;底层的网络业务&#xff0c;还是传统的linux内核提供。&#xff08;注&#xff1a;这两个图我个人觉得不是非常对。。。&#xff09; 在安卓上增加的两个比较重要的部…

github新建一个远程仓库并添加了README.md,本地git仓库无法push

1.本地git仓库与远程仓库绑定 2.push时报错&#xff0c;本地的 main 分支落后于远程仓库的 main 分支&#xff08;即远程有更新&#xff0c;但你本地没有&#xff09;&#xff0c;需要拉取远程的仓库--->在merge合并&#xff08;解决冲突&#xff09;--->push 3.但是git …

Python:使用web框架Flask搭建网站

Date: 2025.04.19 20:30:43 author: lijianzhan Flask 是一个轻量级的 Python Web 开发框架&#xff0c;以简洁灵活著称&#xff0c;适合快速构建中小型 Web 应用或 API 服务。以下是 Flask 的核心概念、使用方法和实践指南 Flask 的核心特点&#xff1a; 轻量级 核心代码仅约…

Kotlin delay方法解析

本文记录了kotlin协程(Android)中delay方法的字节码实现&#xff0c;并解析了delay方法如何实现挂起操作。 一、delay方法介绍 1.1、delay方法使用举例 class TestDelay {suspend fun testDelay() {Log.d("TestDelay", "before delay")delay(1000)Log.d…

【Vulkan 入门系列】创建描述符集布局和图形管线(五)

描述符集布局定义了着色器如何访问资源&#xff08;如缓冲区和图像&#xff09;&#xff0c;是渲染管线配置的关键部分。图形管线定义了从顶点数据到最终像素输出的整个处理流程&#xff0c;包括可编程阶段&#xff08;如顶点和片段着色器&#xff09;和固定功能阶段&#xff0…

mysql中in的用法详解

MySQL 中 IN 操作符用法详解 IN 是 MySQL 中用于多值筛选的高效操作符&#xff0c;常用于 WHERE 子句&#xff0c;可替代多个 OR 条件&#xff0c;简化查询逻辑并提升可读性。以下从基础语法、应用场景、性能优化、常见问题及高级技巧进行全方位解析。 一、基础语法与优势 1.…

MySQL为什么默认使用RR隔离级别?

大家好&#xff0c;我是锋哥。今天分享关于【MySQL为什么默认使用RR隔离级别?】面试题。希望对大家有帮助&#xff1b; MySQL为什么默认使用RR隔离级别? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MySQL 默认使用 RR&#xff08;Repeatable Read&#xff09;…

施磊老师基于muduo网络库的集群聊天服务器(二)

文章目录 Cmake简单介绍Cmake与MakefileCmake配置CmakeLists.txt 编写完整cmake例子文件夹杂乱问题多级目录Cmakevscode 极其推荐 的 cmake方式 Mysql环境与编程mysql简单使用User表Friend表AllGroup表GroupUser表OfflineMessage表 集群聊天项目工程目录创建网络模块代码Chatse…

线性DP:最长上升子序列(子序列可不连续,子数组必须连续)

目录 Q1&#xff1a;简单遍历 Q2&#xff1a;变式&#xff08;加大数据量&#xff09; Q1&#xff1a;简单遍历 Dp问题 状态表示 f(i,j) 集合所有以第i个数结尾的上升子序列集合-f(i,j)的值存的是什么序列长度最大值max- 状态计算 &#xff08;其实质是集合的划分&#xff09;…

C语言之文本加密程序设计

&#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 文本加密程序设计 摘要&#xff1a;本文设计了一种文本加密程序&#xff0c;旨在提高信息安…

云效部署实现Java项目自动化部署图解

前言 记录下使用云效部署Java项目&#xff0c;实现java项目一键化自动化部署。 云效流程说明&#xff1a; 1.云效拉取最新git代码后 2.进行maven编译打包后&#xff0c;上传到指定服务器目录 3.通过shell脚本&#xff0c;先kill java项目后&#xff0c;通过java -jar 启动项…