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

news/2024/5/17 15:57:37/文章来源:https://blog.csdn.net/m0_51448653/article/details/128085145

一、内存的基础知识

什么是内存?有何作用?

在这里插入图片描述

这么做的原因是,程序本来是放在外存中的,放在磁盘中的,但是磁盘的读写速度很慢,而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.luyixian.cn/news_show_227291.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NetCore路由的Endpoint模式

IdentityServer里有各种Endpoint,如TokenEndpoint,UserInfoEndpoint,Authorize Endpoint,Discovery Endpoint等等。Endpoint从字面意思来看是“终端节点"或者“终节点”的意思。无独有偶NetCore的路由也有Endpoint的概念。那么我们提出一个问题来,究竟什么是En…

不用ps怎么修改图片?电脑图片在线处理的方法

很多小伙伴在工作、学习的时候会用到简单的图片处理工具(在线ps 图片编辑制作工具 免费照片编辑器_压缩图),但是因为用到的功能比较多,需要下载安装很多电脑处理图片软件,非常不方便,而且上手比较难。下面就…

Windows OpenGL ES 图像色彩替换

目录 一.OpenGL ES 图像色彩替换 1.原始图片2.效果演示 二.OpenGL ES 图像色彩替换源码下载三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基础 …

代码调优?从Fibonacci数列的7种写法说起,看完coding能力上一个台阶

开启掘金成长之旅!这是我参与「掘金日新计划 12 月更文挑战」的第2天,点击查看活动详情 引子 楼梯有 N阶,上楼可以一步上一阶,也可以一步上二阶。 编一个程序,计算共有多少种不同的走法。 例: 0层&…

【微信小程序高频面试题——精选一】

微信小程序高频面试题小程序中如何进行接口请求?会不会跨域,为什么小程序的常用命令有哪些你认为微信小程序的优点是什么,缺点是什么微信小程序中的js和浏览器中的js以及node中的js的区别微信小程序中的数据渲染浏览器中有什么不同小程序中如…

FineReport表格软件- 计算操作符说明

1. 概述 FineReport 中使用函数需要用到很多的操作符。 操作符不仅包含很多运算符,还包括一些报表特有的操作符。 FineReport 11.0 优化了公式 2. 运算符类型 运算符用于指定要对公式中的元素执行的计算类型。有默认计算顺序,但可以使用括号更改此顺序…

python如何将日期字符串格式化年月日

今天用Python的DataFrame处理数据时,相对一波数据按日期分组处理,但是原始数据包含时间分秒,无法按日期分组,因此需要先将数据转成只包含年月日的数据格式。但是写代码处理过程中发现有点绕,不熟悉的同学容易绕晕。这种…

数据库——数据库备份与恢复

目录 原因: 数据库的备份与恢复: 1、使用MySQLdump命令备份 2、恢复数据库 表的导入和导出 1、表的导出 2、表的导入 原因: 尽管采取了一些管理措施来保证数据库的安全,但是不确定的意外情况总是有可能造成数据的损失,…

【学习笔记60】JavaScript原型链的理解

一、万物皆对象 JS中, 万物都可以都可以称为对象 1、对象概念 含义1: 一种数据格式 {key: value, key2: value2}含义2: 某一类事务的实例(某一类内容中的真实个体) 2、说明 arr1就是Array这一类内容中的某一个真实个体数组也可以算作一个对象(Array 这一类事务中的一个个体) …

NoSQL数据库之MongoDB

一、NoSQL数据库背景 传统关系型数据库遇到的问题 2008 年左右,网站 、 论坛、社交网络开始高速发展,传统的关系型数据库在存储及处理数据的时候受到了很大的挑战 ,其中主要体现在以下几点: 难以应付每秒上万次的高并发数据写入…

文献认证!Kamiya艾美捷抗酒石酸酸性磷酸酶TRAP染色试剂盒

人类及动物体骨组织不断地进行着重建,骨重建过程包括骨的分解吸收与新骨的形成。破骨细胞(Osteoclast,OC)负责骨分解与吸收,而成骨细胞(osteoblast,OB)负责新骨形成。破骨细胞贴附在…

Native 内存warp

Native 启动-动态/静态&libc &linker https://www.cnblogs.com/ilocker/p/4645308.html https://www.cnblogs.com/ilocker/p/4645308.html 修改LD_PRELOAD hook java native 库函数 https://blog.csdn.net/m0_57036414/article/details/126811772 Native malloc_debug …

项目经理和产品经理正在用哪些管理工具?

项目管理包括定义项目目标,指定行程和安排任务,以达到特定的目标。在项目管理过程中,很多工具可以使项目管理更有效、更高效。(项目管理资料文末) 跟大家介绍一下项目经理常用的项目管理工具: 1、甘特图 …

氨基苯酚/多巴胺仿生修饰碳纳米管/α-氧化铝/ CNTs-Ag纳米复合材料

小编下面和大家来看间氨基苯酚/多巴胺仿生修饰碳纳米管/α-氧化铝/ CNTs-Ag纳米复合材料的制备! 多巴胺仿生修饰材料的研究: 通过表面聚多巴胺层与银离子的螯合作用,通过表面聚多巴胺与银离子的螯合作用,利用葡萄糖作还原剂,在聚多巴胺修饰的聚酯纤维表…

[附源码]计算机毕业设计springboot冬奥资讯系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【车载开发系列】UDS诊断---诊断会话控制($0x10)

【车载开发系列】UDS诊断—诊断会话控制($0x10) UDS诊断---诊断会话控制($0x10)【车载开发系列】UDS诊断---诊断会话控制($0x10)一.概念定义二.三种会话模式1)默认会话2)编程会话3&a…

多线程同步,信号,生产者消费者模型

目录1.线程互斥它是对的吗?合理吗?(任何场景)2.怎么解决饥饿问题?3.条件编译1.生产者和消费者模型2.编写代码实现一个基于堵塞队列的生产者消费者模型4.POSIX信号量5.环形队列1.线程互斥它是对的吗?合理吗?(任何场景) …

Kamiya丨Kamiya艾美捷人和动物LBP ELISA说明书

Kamiya艾美捷人和动物LBP ELISA预期用途: 人和动物LBP ELISA已被开发用于定量测定天然和血清,血浆和培养基中的重组人LBP。也适用于牛,猪,兔和狗LBP。仅供研究使用。不用于诊断程序。 Kamiya艾美捷人和动物LBP ELISA原理&#xf…

【Android App】勾勒出三维立方体和球体以及它们的转动图形讲解及实战(附源码和演示视频 超详细)

需要源码或运行有问题请点赞关注收藏后评论区留言~~~ 一、轮廓勾勒 勾勒三维物体轮廓线条的步骤如下: (1)调用glEnableClientState方法启用顶点开关 (2)调用glVertexPointer方法指定三维物体的顶点坐标集合 &#…

Ubuntu16.04 完整版 Gym 安装及说明

Ubuntu16.04 完整版 Gym 安装及说明1. 安装前言2. Gym 开发环境说明3. 完整版 Gym 的安装3.1 Anaconda 创建虚拟环境3.2 安装 gym[box2d]3.2.1 采用官方 GitHub 教程进行安装的报错及解决方案3.2.2 采用 Anaconda 进行安装3.2.3 测试能否成功运行 LunarLander-v2 环境3.3 安装 …