王道考研——操作系统(第三章 内存管理)

news2025/1/23 3:50:32

一、内存的基础知识

什么是内存?有何作用?

在这里插入图片描述

这么做的原因是,程序本来是放在外存中的,放在磁盘中的,但是磁盘的读写速度很慢,而cpu的处理速度又很快

存储单元就是存放数据的最小单元,每一个地址对应一个存储单元,而一个存储单元中能存储多少数据,要看计算机是按字节编址还是按字编址的,如果是按字节编址,一个存储单元

补充知识:几个常用的数量单位

在这里插入图片描述

这里的“4GB”中的“4G“其实是数量,而“B”是一个数据的单位,B指的是“字节”Byte,b指的是“一个比特位”bit

知识滚雪球:指令的工作原理

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

假设程序的装入模块装入内存时并不是从地址为0的地方开始的,而是从地址为100的地方开始,这就意味着操作系统给这个程序分配的地址空间其实是100~279。所以如果是这种情况的话,程序的逻辑地址和它最终存放的物理地址就会出现对应不上的情况

所以在这个小节中我们将介绍三种策略来解决地址转换的问题

装入的三种方式——绝对装入

在这里插入图片描述

装入的三种方式——可重定位装入

在这里插入图片描述

装入的三种方式——动态运行时装入

在这里插入图片描述

装入的三种方式——动态重定位

在这里插入图片描述
在之后学习了“虚拟存储管理”之后,就可以对这个特性有更深入的理解了

从写程序到程序运行

在这里插入图片描述
刚才介绍的三种装入策略可以实现 逻辑地址 到 物理地址 的转换

接下来介绍的是三种链接的方式

链接的三种方式

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

知识回顾与重要考点

在这里插入图片描述

二、内存管理的概念

内存空间的分配与回收

在这里插入图片描述

内存空间的扩展

在这里插入图片描述

地址转换

在这里插入图片描述

为了使编程更方便,程序员写程序时应该只需要关注指令、数据的逻辑地址。而逻辑地址到物理地址的转换(这个过程称为地址重定位(三种装入方式))应该由操作系统负责,这样就保证了程序员写程序时不需要关注物理内存的实际情况。

内存保护

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

方法一:
在这里插入图片描述
方法二:
重定位寄存器(就是上小节中的)即 在动态运行时装入这种方式中,设置一个重定位寄存器来记录每一个进程的起始物理地址

在这里插入图片描述

知识回顾与重要考点

在这里插入图片描述

三、覆盖与交换(大纲删除?)

知识总览

在这里插入图片描述

覆盖技术

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

如果程序有一个明显的调用结构

注意这里B和C不可能同时被调用,也就是说在同一个时间段内,内存中要么有B有么有C即可,不需要同时存在B和C,所以B和C共享一个覆盖区

交换技术

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

对换区的速度,或者说输入输出的速度,是要比文件区更快的。所以我们的进程数据被换出时,一般是放在对换区,换入的时候也是从对换区换到内存

PCB会常驻内存,不会被换出外存:所以其实所谓的换出进程,并不是把进程相关的所有的数据一个不漏的全部调到外存里,操作系统为了保持对这些换出进程的管理,那PCB这个信息还是需要放在内存中)

知识回顾与重要考点

在这里插入图片描述

四、连续分配管理方式

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

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

相关文章

计算机组成原理习题课第一章-3(唐朔飞)

计算机组成原理习题课第一章-3(唐朔飞) ✨欢迎关注🖱点赞🎀收藏⭐留言✒ 🔮本文由京与旧铺原创,csdn首发! 😘系列专栏:java学习 💻首发时间:&…

Spark学习(6)-Spark SQL

1 快速入门 SparkSQL是Spark的一个模块, 用于处理海量结构化数据。 SparkSQL是非常成熟的 海量结构化数据处理框架. 学习SparkSQL主要在2个点: SparkSQL本身十分优秀, 支持SQL语言\性能强\可以自动优化\API简单\兼容HIVE等等。企业大面积在使用SparkSQL处理业务数据。 离线开…

想把iPad作为扩展屏,确发现macOS monterey随航功能不见了

居家办公最不爽的事情就是没有扩展屏,对于开发来说,效率是有影响的,于是便想着把iPad当作扩展屏来用 系统参数 mac: macOS monterey(12.4);M1 iPad: iPad Pro 第2代,应该…

细粒度图像分类论文研读-2016

文章目录Compact Bilinear PoolingAbstractIntroductionCompact bilinear modelsA kernelized view of bilinear poolingCompact bilinear poolingSome properties of compact bilinear poolingCompact Bilinear Pooling Abstract 双线性模型很成功,但是双线性特征…

HNUCM-2022年秋季学期《算法分析与设计》练习14

目录 问题 A: 最小生成树(Prim) 问题 B: 牛妹的蛋糕 问题 C: 尼科彻斯定理 问题 D: 最小生成树(Kruskal) 问题 E: 单源最短路径问题 问题 F: 搭建电路 问题 G: 丛林小道 问题 H: 低碳出行 问题 A: 最小生成树(P…

frontend webstorm plugin:插件推荐

目录CodeGlance (左边地图)GitToolBox (Git提示)Material Theme UI (主题框架)Nyan Progress Bar (进度条)Rainbow Brackets(括号颜色,注意忽略变量&#xff…

【MySQL】事务和索引

文章目录事务(Transaction)1. 定义2. 如何操作事务2.1 SQL 语句操作事务的几个关键字2.2 使用 SQL 语句操作事务2.3 JDBC 操作事务3. 事务的四个特性:ACID3.1 Atomic(原子性)3.1.1 理解原子性3.2 Consistency&#xff…

H3C WX2510H无线控制器开局如何简单配置

环境: H3C-WX2510H version 7.1.064, Release 5435P02 AP H3CWA6320-C 问题描述: H3C WX2510h无线控制器开局如何简单配置 解决方案: 1.PC网卡设置ip192.168.0.111,连接随便一个LAN口 2.浏览器访问https://192.168.0.100…

面试处处碰壁?不慌,Java 核心面试文档.PDF 助你披荆斩棘

前言 首先强调几点: 1. 一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的; 2. 能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地…

如何采集需要验证码登录的网站数据

如何抓取网页上的数据,需要登录?随着互联网的发展,移动支付技术的普及,以及人们对内容进行消费的观念逐渐养成。有很多网站,需要付费后才能查看,或者是开通会员之类的才能查看。针对这类网站,我们如何快速的…

性能测试环境部署

一、安装JDK 【步骤一】安装JDK (安装Jmeter之前需要配置JAVA环境) 下载jdk,到官网下载jdk,地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html 【JDK版本要和JMeter版本对应,如果JDK版本过高&#x…

深度学习入门(8)激活函数ReLU和 Sigmoid的计算图表示方式及代码实现

《深度学习入门》系列文章目录 深度学习入门 (1)感知机 深度学习入门(2)神经网络 深度学习入门(3)神经网络参数梯度的计算方式 深度学习入门(4)【深度学习实战】无框架实现两层神经网络的搭建与训练过程…

黑盒测试用例设计 - 等价类划分法

说明:在所有测试数据中,具有某种共同特征的数据集合进行划分。 分类: 有效等价类:满足需求的数据集合无效等价类:不满足需求的数据集合 步骤: 明确需求设计一个新的测试用例,使其尽可能多的覆…

如何申请软件著作权

申请软件著作权的好处: 1、软件著作权登记证书是在软件著作权发生争议时,证明软件权利的最有力证。这不仅是在进行诉讼或者是发生一般纠纷时都能起到很好的证明作用,但是如果没有进行登记,著作权人的权利就很难获得全面的保护。 …

Linux-scheduler之负载均衡(一)

一、如何衡量CPU的负载 衡量CPU负载 简单衡量 CPU负载就绪队列的总权重CPU负载 就绪队列的总权重 CPU负载就绪队列的总权重 量化负载 CPU负载(采样期间累计运行时间/采样总时间)∗就绪队列总权重CPU负载 (采样期间累计运行时间/采样总时间)*就绪队列总权重 CPU负载(采样期…

Flutter 创建自己的对话框,不使用任何包!

创建自己的对话框,不使用任何包! 原文 https://itnext.io/create-your-own-dialog-without-using-any-packages-7bb303f62471 前言 在本文中,我们将学习如何创建我们自己的 showDialog() 函数,并了解到底发生了什么。 正文 先看效…

Matplotlib 可视化50图:散点图(1)

导读 本系列将持续更新50个matplotlib可视化示例,主要参考Selva Prabhakaran 在MachineLearning Plus上发布的博文:Python可视化50图。 定义 关联图是查看两个事物之间关系的图像,它能够展示出一个事物随着另一个事物是如何变化的。关联图的类…

ctfshow(菜狗杯)

目录 web签到 一言既出 驷马难追 web2 c0me_t0_s1gn 我的眼里只有$ TAPTAPTAP Webshell 化零为整 无一幸免 遍地飘零 传说之下&#xff08;雾&#xff09; Is_Not_Obfuscate web签到 <?phperror_reporting(0); highlight_file(__FILE__);eval($_REQUEST[$_GET[…

springboot大学生课堂考勤管理系统的设计与实现

根据一般学生课堂考勤管理系统的功能需求分析&#xff0c;本系统的功能模块如下&#xff1a; &#xff08;1&#xff09;在个人中心&#xff0c;管理员可以修改自己的用户名和登录密码。 &#xff08;2&#xff09;在学生管理模块中&#xff0c;可以查看学生的信息&#xff0c;…

DiffusionDet:Diffusion Model for Object Detection

Diffusion Model for Object Detection 一种用于目标检测的扩散模型 Motivation 1、如何使用一种更简单的方法代替可查询的object queries 2、Bounding box的生成方式过去是三种&#xff0c;第一种为sliding windows、第二种anchor box、第三种object queries&#xff0c;这里其…