操作系统期末复习——课时十内存管理(一)

news2024/11/25 14:40:44

1、内存管理的基本原理和要求

1)内存管理的定义
操作系统对内存的划分和动态分配就是内存管理的概念。

2)内存管理的功能
(1)内存空间的分配和回收:由操作系统完成对主存的分配和回收,对编程人员透明。
(2)地址转换:使逻辑地址转换为真实的物理地址。
(3)内存空间的扩充:利用虚拟存储技术或自动覆盖技术,从逻辑上 扩充内存。
(4)存储保护:保证各道作业在各自的存储空间内运行,互不干扰。

3)程序的装入和链接
创建进程首先要将程序和数据装入内存,将用户源程序变为可在内存中执行的程序。
(1)步骤描述:
编译:由编译程序将用户源代码编译为若干目标模块。
链接:由链接程序将编译后的一组目标模块和所需的库函数链接在一起,形成一个完整的装入模块。
装入:由装入程序将装入模块装入内存运行。
在这里插入图片描述
(2)程序链接的方式
静态链接:在程序运行之前,先将各目标模块及他们所需的库函数链接成一个可执行程序,此后不再拆开。
装入时动态链接:编译后所得的一组目标模块在装入时,边装入边链接。
运行时动态链接:对某些目标模块的链接,是在程序执行中需要该目标模块时才进行的。便于修改和更新以及实现对目标模块的共享。

(3)装入内存的方式
绝对装入:在编译时即知道程序将装入的内存的具体地址,则编译程序将产生绝对地址的目标代码。而后将程序和数据装入内存,只适用于单道程序环境。
可重定位装入:在多道程序环境中,多个目标模块的起始地址均为0开始。装入内存时,通过所分配的内存起始地址加上程序内的相对地址进行地址的动态变换,一次完成,又称为静态重定位。(必须一次性全部装入,运行期间不能动态扩充和移动)。
动态运行时装入:装入模块装入内存后并不立即进行地址转换,而是等到程序执行时才进行。需要重定位寄存器的支持(可以将程序分到不连续的存储区中,程序运行前只需要装入部分代码,运行期间根据需要动态分配内存,便于程序段的共享,可以向用户提供一个比存储空间大得多的地址空间)。
在这里插入图片描述
在这里插入图片描述
(4)逻辑地址空间与物理地址空间
逻辑地址空间:程序编译后的每个模块都是以0开始编址,称为目标模块的逻辑地址。当链接为一个完整的可执行目标程序时,链接程序将按顺序以0开始编址,构造统一的逻辑地址空间。
物理地址空间:内存中物理单元的集合,是地址转换的最终地址,当装入程序将可执行代码装入内存中时,必须将逻辑地址转化为物理地址。

(5)内存保护
内存分配前,需要保护操作系统不受用户进程的影响,同时保护用户进程不受其他用户进程的影响。

内存保护的两种方式:
a.在CPU中设立一对上、下限寄存器,存放用户作业在主存中的上下限地址,每当CPU要访问一个地址时,先根据这对上下限寄存器判断是否越界访问。
b.采用重定位寄存器限长寄存器来实现这种保护。重定位寄存器保存最小的物理地址限长寄存器保存逻辑地址的最大值。(注意:一个是最小的物理地址,一个是逻辑地址最大值)进行内存访问时,先判断逻辑地址是否大于限长寄存器值,若未越界,则加上重定位寄存器的值映射成物理地址,再进行内存访问。

在这里插入图片描述

2、覆盖与交换

覆盖与交换技术是在多道程序环境扩充内存的两种方法。

1)覆盖
早期系统主存小,仅存放一道用户程序,但存储空间放不下用户进程也时有发生,这一问题可以通过覆盖技术解决。
==覆盖技术的思想:==将程序分为多个段(多个模块)。常用的段常驻内存,不常用的段在需要时调入内存。
把内存划分为一个固定区和若干个覆盖区,固定区存放用户程序经常活跃的部分,调入后就不再调出(除非运行结束),其余部分按调用关系分段,将即将访问的段放在覆盖区,需要用到时调入内存,用不到时调出内存。其他放在外存,在需要调用前,系统将其调入覆盖区,替换原有的段。
必须由程序员声明覆盖结构,操作系统完成自动覆盖。
在这里插入图片描述
缺点:对用户不透明,增加了用户编程负担,覆盖技术只用于早期的操作系统中。

2)交换
基本思想:把处于等待状态的进程或者被CPU剥夺运行权限的进程从内存移除到辅存,这一过程称为换出;把准备好竞争CPU的进程从辅存移到内存,这一过程称为换入。
暂时换出外存等待的进程状态为挂起状态(挂起态)。
挂起态又可以进一步细分为就绪挂起、阻塞挂起两种状态。
在这里插入图片描述
(1)具有兑换功能的操作系统中,通常把磁盘空间分为文件区和对换区两部分,文件区主要用于存放文件,主要追求存储空间的利用率,因此对文件区空间的管理采用离散分配方式;

离散分配方式
1、分页存储管理方式
2、 分段存储管理方式
3、段页式存储管理方式

对换区空间只占磁盘空间的小部分,被换出的进程数据就存放在对换区,由于对换的速度直接影响到系统的整体速度,因此对换区空间的管理主要是求换入换出速度,因此通常对换区采用连续分配方式。总之,对接I/O速度比文件区的更快。

连续分配方式
单一连续分配
固定分区分配
动态分区分配
动态可重定位分区分配

(2)交换通常在许多进程运行且内存吃紧时运行,而系统负有降低就暂停。例如:在发现许多进程运行时进程发生缺页,就说明内存紧张,此时可以换出一些进程,如果缺页明显下降,就可以暂停换出。
(3)可优先换出阻塞进程:可换出优先级低的进程;为了防止优先级低的进程在被调入内存后很快又被换出,有的系统还会考虑进程在内存的驻留时间。
(注意,PCB会常驻内存,不会被换出外存)
在这里插入图片描述

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

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

相关文章

通过dockerfile将nginx、前端和后端封装成一个镜像

1、内容如下 2、dist文件 就是vue项目的打包文件 3、jar包文件 就是springboot的打包文件 4、编写Dockerfile #引用 jdk1.8作为基础镜像,这个jdk1.8是我自己用linux版本的jdk打包的,具体操作可以看 #https://blog.csdn.net/qq_38639813/article/details/129384923中将jd…

项目经理如何有效管理项目预算?

项目的成功完成在很大程度上依赖于管理良好的项目预算。借助概述项目范围、资源需求、时间表和成本估算等关键方面的详细预算,管理人员可以较好地控制成本并使项目走上正轨。 成功的预算管理需要准确的成本估算,密切跟踪实际支出,仔细确定预…

【Windows】Windows 无法访问\\xxx.xxx.xxx.xxx 共享文件夹

一、问题描述 1、Windows 10专业版系统访问 Windows Server 2003 的共享文件夹,其他电脑可以通过账号和密码访问此服务器共享的文件夹,但Windows 10专业版访问时报如下错误 网络错误 Windows 无法访问\\192. 1. 1. 1\组文件 你没有权限访问\\192.1.1.1…

行业报告 | 聚焦智能制造

原创 | 文 BFT机器人 01 智能制造正当时,助力企业行稳致远 1.1 什么是智能制造? “智能制造”源于人工智能的研究,关于其定义有很多种 美国Wright和Bourne在其《制造智能》(智能制造研究领域的首本专著) 中将智能制造定义为“通过集成知识工…

iOS 编译ffmpeg 4.3版本

嗨,咱就是说,音视频这玩意是真的有些难度啊,不说后续学习路线会有多坎坷,就第一步编译这个破库就折磨了我两天多,好好的一个周末就浪费在编译上了。 入门这事儿,我是先看了《音视频开发进阶指南&#xff1…

Vue3基于 rem 比例缩放方案

本缩放方案置于hooks中即可。于App.vue中引入并调用。会在页面DOM结构最外层增加响应式的font-size属性样式更改。 主要包含了以下内容 接口和类型定义: DesignParms:设计稿参数的接口定义,包括宽度、高度和字体大小等信息。UseRemOption&…

Hack The Box - appointment关卡

TASK 1 任务 1 What does the acronym SQL stand for? 首字母缩略词SQL代表什么? Structured Query LanguageTASK 2 任务 2 What is one of the most common type of SQL vulnerabilities? 最常见的 SQL 漏洞类型之一是什么? SQL Injection TASK …

两天,总计六个小时,中移在线核心业务系统顺利完成1050套欧拉操作系统迁移上线...

摘要:历时两天,总计六个小时,中国移动在线营销服务中心(简称中移在线)正式启动内部核心业务系统全网呼叫平台的迁移工作。首批1050套操作系统完成从 CentOS(系统版本7.2、7.4和7.6)到 openEuler 高效平滑迁移。中移在线拥有全球最大的呼叫平台…

「实在RPA·交通物流数字员工」促进数字化转型加「数」度

一、交通物流行业数字化转型的重要性 作为国家和地区相连接的枢纽,交通物流行业在国民生活中扮演着重要的角色。经济的发展以及电商行业的迅速崛起使得交通物流业的重要作用更加凸显。随着5G技术、大数据云计算、机器人流程自动化的迅速发展,以及交通强…

文件传输只是第一步,文件同步和备份的关键是

有备无患,“备份”的观念早已深入所有信息管理人员的心里。在IT人员信息化安全计划中备份是不可或缺的重要环节。然而,我们还是会经常听到客户抱怨数据备份太慢,文件传输会出现丢失、异常、损坏的情况。那这到底是备份方式有问题还是人员疏忽…

【初识Java之类和对象】

目录 1.什么是面向对象2.类的定义和使用3.类的实例化3.1类的实例化3.2 类的引用 4.This引用5.成员变量 1.什么是面向对象 ava是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。 面向对象是解决问题…

Pandas 加载数据的方法和技巧

Pandas 加载数据的方法和技巧 哈喽大家好,我是咸鱼 相信小伙伴们在学习 python 数据分析的过程中或多或少都会听说或者使用过 pandas pandas 是 python 的一个拓展库,常用于数据分析 今天咸鱼将介绍几个关于 pandas 导入数据的方法和技巧 从 URL 获…

【JavaSE】Java基础语法(三十一):可变参数

文章目录 1. 可变参数2. 创建不可变集合 1. 可变参数 可变参数介绍 可变参数又称参数个数可变,用作方法的形参出现,那么方法参数个数就是可变的了方法的参数类型已经确定,个数不确定,我们可以使用可变参数 可变参数定义格式修饰符 返回值类型 方法名(数…

【独立版】智慧城市同城V4_2.2.7全开源全插件VUE版,修复房产信息组件商户发布二手房房源信息未和商户关联的问题

源码介绍 【独立版】智慧城市同城V4 查看更多关于 智慧城市同城V4 的文章 _2.2.7全开源全插件VUE版,修复房产信息组件商户发布二手房房源信息未和商户关联的问题! 智慧城市同城是一套专注于多城市生活服务同城技术解决方案,全面覆盖同堿信息、商家联盟、…

端口扫描工具-Nmap

Nmap是一款功能强大,功能丰富的网络扫描工具,对于网络管理员和安全专业人员来说,是一个非常有用的工具,并且被广泛应用于安全审计、网络调查、漏洞搜寻等领域。 (能扫描主机的端口,查看端口是否开放&#x…

智慧物流货运系统源码,网络货运平台系统源码,货运系统开发源码部署

一套结合货主、平台、实际承运人多方业务场景,构建人、车、货、企一体的标准化网络货运平台系统源码。 文末获取联系 平台服务于货主与司机,进行服务对接,为货主节省时间找车,为司机找货获得利润。 货主端:货车主在线发…

GPT模型支持下的Python-GEE遥感云大数据分析、管理与可视化

随着航空、航天、近地空间等多个遥感平台的不断发展,近年来遥感技术突飞猛进。由此,遥感数据的空间、时间、光谱分辨率不断提高,数据量也大幅增长,使其越来越具有大数据特征。对于相关研究而言,遥感大数据的出现为其提…

室内外大型商演、体育赛事观赏防雷指南

前言 随着社会的发展,人民生活水平的提高,生活方式的改变,户外颇具规模的各种集会、商演、大型文体及体育活动等举办频次越来越频繁,持续时间越来越长,有的集会持续数天甚至十几天,因此需要采取全方位的防…

DUMPBIN查看dll函数定义 及MFC常用 生成一个C# C++等任意语言都能调用的dll

DUMPBIN /EXPORTS "C:\Windows\System32\uxtheme.dll" /EXPORTS 导出的所有定义。(这里的定义应该就是指的函数名吧) dumpbin.exe是微软二进制文件转储器。显示有关通用对象文件格式 (COFF) 的二进制文件的信息。 可以使用 DUMPBIN 检查 COFF 对象文件、 COFF 对象、…

2023年上半年系统集成项目管理工程师上午真题及答案解析

1.在( )领域我国远末达到世界先进水平,需要发挥新型国家体制优势,集中政府和市场两方面的力量全力发展。 A.卫星导航 B.航天 C.集成电路 D.高铁 2.ChatGPT 于2022年11月30日发布,他是人工智能驱动( )。 …