内存管理计算

article/2025/9/17 7:54:42

一、补充概念

        为了保证CPU执行指令时可正确访问存储单元,需将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址,这一过程称为地址映射。地址映射一般是由硬件完成的;页表项的相关状态位由硬件确定。

        最佳适应算法(空闲内存管理):从全部空闲区中找出能满足作业要求的、且大小最小的空闲分区。为适应此算法,空闲分区表(空闲区链)中的空闲分区要按从小到大进行排序,自表头开始查找到第一个满足要求的自由分区分配。

        首次适应算法(空闲内存管理):从空闲分区表的第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,这种方法目的在于减少查找时间。为适应这种算法,空闲分区表(空闲区链)中的空闲分区要按地址由低到高进行排序。该算法优先使用低地址部分空闲区。

        最差适配算法(空闲内存管理):从全部空闲区中找出能满足作业要求的、且大小最大的空闲分区,从而使得链表中的结点大小趋于均匀,适用于请求分配的内存大小范围较窄的系统。为适应此算法,空闲分区表(空闲区链)中的空闲分区要按大小从大到小进行排序,自表头开始查找到第一个满足要求的自由区分配。该算法保留小的空闲区,尽量减少小的碎片产生。

        下次适应算法(空闲内存管理):下次适应算法总是最先找到、满足存储要求的那个空闲分区作为分配对象,但其每次找到合适的空闲分区就记住它的位置,以便下次就从该位置开始往下找,而不是像首次适应算法那样从头开始找。

        位宽就是内存或显存一次能传输的数据量。虚拟存储空间主要与计算机地址位宽有关

       为了保证操作系统中文件的安全,可以采用的方法是建立副本定时转储规定文件的存取权限

        为了提高内存利用率并减少内部碎片,页面的划分与页表数量相关,可以找到平衡点。由于页表是位于内存连续存储空间的,所以页表也不应过大(即页面不应过小而导致页表大小过大)。

        让操作系统跟踪每个进程的工作集,并为进程分配大于其工作集的物理块,如果还有空闲物理块,则可以再调一个进程到内存以增加多道程序数。如果所有工作集之和增加以至于超过了可用物理块的总数,那么操作系统会暂停一个进程,将其页面调出并且将其物理块分配给其他进程,防止出现抖动现象

        文件存储空间常用管理方法:空闲表法、空闲链表法、位示图法、成组链接法(Unix中利用空闲磁盘空间存储空闲磁盘信息)等。

        内存空闲空间常用管理方法:空闲页面表法、空闲块链表法、位示图法等。

        局部性原理:CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。三种不同类型的局部性如下:

        时间局部性:如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。

        空间局部性:在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是邻近的,如代码顺序性、内存访问的顺序性。

        顺序局部性:在典型程序中,除转移类指令外,大部分指令是顺序进行的。

        编译、链接、装载代码运行过程中,链接是指把所有编译后得到的目标模块连接装配起来,再与函数库相连接成一个整体的过程。

        在采用交换和覆盖技术的存储管理系统中,进程交换是指将暂时不用的进程代码、数据和部分进程控制块交换至磁盘。在分时系统中,用户的进程比内存能容纳的数量要多,这就需要在磁盘上保存那些内存放不下的进程。在需要运行这些进程时,再将它们装入内存。进程从内存移到磁盘,并再移回内存称为交换

        在虚拟页式存储管理中,某一时刻CPU的利用率很低而磁盘繁忙率(利用率)过高,意味着I/O损耗过高(可能是进程过多,频繁缺页导致),此时可以适当减少进程数量以提高系统效率。

        在引入虚拟页式存储管理的系统中,可能会出现页面抖动、Belady异常、缺页中断以及页面写错误。

        虚拟存储器系统通常定义三种策略来规定如何(或何时)进行页面调度:调入策略、置页策略和置换策略。

        页表信息中的有效位,又称驻留位、存在位或中断位,表示该页是在内存还是外存。

        快表存放在缓存(cache)中。

        在虚拟页式存储管理中,为实现地址变换所涉及到的数据结构是空闲区表、页表、位图。

        实现虚拟页式存储管理的硬件支持:系统有容量足够大的外存、系统有一定容量的内存、硬件提供实现虚-实地址映射的机制、缺页中断处理机制。

        采用虚拟页式存储管理方式,需要缺页中断处理程序、页面调入策略、页面置换策略、程序分页机制和页表的软件条件。

        第二次机会页面置换算法(页面置换):在FIFO算法的基础上为每个页面增加一个R位,每次选择页面进行置换时,检查进入内存时间最久页面的R位,如果是0,那么这个页面既存储时间久又没有被使用,可以立即置换掉;如果是1,则将R位清0,并把该页面放到当前内存中页面链表的尾部,修改其进入时间,然后继续搜索;在下次置换之前,如果R位为0的页面再次被访问,则置R位为1。相对于FIFO,第二次机会置换算法给了每个页面第二次留下来的机会。

        页式存储管理方案同固定分区一样,将物理内存划分成固定大小的块,每一块都可以分配使用,因而可以很好地避免外部碎片,但页式存储管理中,进程的最后一页经常装不满一个物理块,因此存在内部碎片,同样,固定分区存储管理方案中,分区通常要比装入的进程大,所以也存在内部碎片;而段式存储管理方案和可变分区一样,总是划分和进程大小相同的块来存放进程,所以不存在内部碎片,但是内存空间被多次分配、回收之后,总会留下一些很难再被分配的小空间,因此存在外部碎片;段页式存储管理同页式存储管理一样,可以很好地解决内存的外部碎片问题。

        存储保护的目的在于为多个程序共享内存提供保障,使在内存中的各程序只能访问其自己的区域,避免各程序间相互干扰。存储保护的内容包括:保护系统程序不被用户有意或无意地冒犯不允许用户程序读写不属于自己地址空间的数据,如系统区地址空间、其他用户程序的地址空间。

        存储保护机构是操作系统运行环境中一个非常重要的部分。最常用的存储保护机构有界限寄存器和存储保护键

        缺页处理过程的简单描述

        ①根据当前执行指令中的逻辑地址查页表的有效位,判断该页是否在内存;

        ②该页有效位“0”,形成缺页中断。保留现场,中断装置通过交换PSW让操作系统的中断处理程序占用处理器;

        ③操作系统处理缺页中断,寻找一个空闲的页面;

        ④若有空闲页,则把磁盘上读出的信息装入该页面中;

        ⑤修改页表及内存分配表,表示该页已在内存;

        ⑥如果内存中无空闲页,则按某种算法选择一个已在内存的页面,把它暂时调出内存;

        ⑦恢复现场,重新执行被中断的指令。

        在一个多道程序设计系统中,地址转换的方式有地址重定位、静态重定位和动态重定位。其中动态重定位由软件和硬件相互配合来实现,硬件要有一个地址转换机构,该机构可由一个基址寄存器和一个地址转换路线组成。

        采用可变分区方式管理时,要有硬件的地址转换机构做支持。硬件设置两个专用的控制寄存器:基址寄存器和限长寄存器。基址寄存器用来存放程序所占分区的起始地址,限长寄存器用来存放程序所占分区的长度

二、计算题

(一)某虚拟页式存储管理系统采用二级页表进行地址转换,若不考虑高速缓存和快表,则进程每执行一条指令至少需要访问几次内存?

        三次。一次访问一级索引,二次访问二级索引,三次访问该指令。(详细见《操作系统概念汇总一》)

(二)在一个请求调页的虚拟存储管理系统中,页面的大小为1024B。某进程在运行过程中要访问的虚拟地址分别为2050、4121、89、1056、2100、144、4097、156、1121、2200、3996、288、2200、567、5109,系统给该进程分配3个页框。若采用LRU页面置换算法,该进程的缺页率为多少?

 (三)页式内存分配

 (三)位示图文件管理(0表示空闲、1表示已使用)

(四) 虚拟页式存储进程运行执行指令地址形式

 (五)使用快表与查询页表的平均查询时间计算(仅考虑做题)

(6)CLOCK页面置换法的示例

参考资料:

[1]中断类型 - 豆丁网

[2]文件系统存储空间管理: 成组链接法_孤影风晨的博客-CSDN博客

[3]操作系统系列七 —— 装载_浪矢杂谈的博客-CSDN博客


http://chatgpt.dhexx.cn/article/0TAYotaI.shtml

相关文章

计算机内存和磁盘的关系

计算机内存和磁盘的关系 前言 上篇文章详细讲了计算机内存的物理结构,逻辑结构以及在内存的基础上理解几种常见的数据结构。但是,计算机系统出了内存之外,还有一个非常重要的硬件,那就是磁盘。他们都是用于计算机存储&#xff0…

电脑硬件——内存

内存是一台电脑CPU与硬盘间进行数据传输的中转站,内存会影响着电脑的稳定性,不稳定的内存可能会导致蓝屏、黑屏、死机甚至电脑无法亮机等故障。 内存的作用: 在我们的电脑工作时,CPU和硬盘之间会无时不刻地进行大量的数据交换&am…

计算机(二):计算机存储系统(内存、外存)。

前言:我总结了汇编语言课本和通信书上的知识点给大家呈现。 一、计算机存储系统(文解): 存储分为:内存(内部存储器)、外存(外部存储器)。 内存分为:CPU上的寄…

计算机内存介绍

我们这里说的内存啊,其实就是说的我们电脑里面的内存条,所以嘞,内存就是内存条,数据要放在这上面才能被cpu读取从而做运算,还有硬盘,就是电脑中的C盘啥的,一个程序需要运行的话需要向内存申请一…

计算机的内存

1.内存的物理机制 内存和CPU一样,都是由大量引脚构成的集成电路,内存大致分为这几类:1.ROM:只能进行读取;2.DRAM:需要经常刷新就能进行保存数据的可被读取和写入的内存;3.SRAM:不需要经常刷新就…

【操作系统】计算机内存管理

文章目录 1.内存管理目标rom-ram2.计算机内存的惰性分配3.内存管理-分而治之思想4.内存不够的情况处理5.内存扩容swap配置实战6.Linux的free命令详解7.Linux的top命令详解 1.内存管理目标rom-ram (1)为啥要做内存管理 计算机不可能所以用户进程和系统所…

计算机|内存知多少

​1、硬件层面 内存就是名为内存IC的电子元件。(IC,集成电路,内存也是一种集成电路) 内存IC的引脚配置 那这个内存IC能存多少数据? 数据信号引脚有D0~D7一共8个,表示一次输入输出8位数据(一个字…

计算机底层知识之内存

❝ 渔夫出海前,并不知道鱼在哪里,可是他们还是选择出发, 因为他们相信,一定会满载而归。人生很多时候,是「选择了才有机会,是相信了才有可能」。 -- 「稻盛和夫」 ❞ 大家好,我是「柒八九」。 …

计算机基础之内存

目录 1.什么是内存2.内存的物理结构3.内存的使用4.数据在内存中为什么用二进制表示5.二进制的补码 1.什么是内存 内存是与cpu沟通的桥梁,计算机中所有程序的运行都要依靠内存,内存对计算机的影响非常大,内存又被称为主存,作用就是…

计算机基础- -认识内存

计算机基础- -认识内存 文章目录 计算机基础- -认识内存一、什么是内存二、内存的物理结构1.内存的读写过程2.内存的现实模型 三、内存的使用1.指针2.数组是内存的实现3.栈和队列4.链表5.二叉树 一、什么是内存 内存(Memory) 是计算机中最重要的部件之一,它是程序与…

电脑内存介绍(精心整理)

内存是电脑的主要硬件之一,主要用于存储和交换正在运行的程序和数据。简单的说就是,断电之后,内存存储的数据就会消失。所以我们常用的软件需要安装在硬盘等外存设备里,打开游戏或者软件时,就需要把他们调出到内存中运…

四大CPU架构的区别

我们目前使用比较多的架构有:ARM、RISC-V、MIPS,X86等等。其实还有一些指令的,但是其他的指令都是比较小众,只在专业的领域使用。 我们目前使用比较多的架构有:ARM、RISC-V、MIPS,X86等等。其实还有一些指…

四大CPU架构区别

我们目前使用比较多的架构有:ARM、RISC-V、MIPS,X86等等。其实还有一些指令的,但是其他的指令都是比较小众,只在专业的领域使用。 ARM架构是一个32位精简指令集处理器架构,其广泛地使用在许多嵌入式系统设计。它主要从…

Linux 查看CPU架构及内核版本

涉及arch命令和/proc/version文件 1 查看CPU架构 有些软件的安装需要和CPU架构相匹配,如JDK等等,所以需要确定主机的CPU架构类型。可使用命令arch查看Linux系统的CPU架构,如下: arch2 查看内核版本 文件/proc/version中包含系统…

如何查看手机的CPU架构

几款专门获取手机设备信息的App: 通过这些App,你能看到你的安卓手机很多核心底层的信息,对于开发者而言,这些信息对于开发App时的写代码或者debug何其重要! 这些App都能查看像CPU架构、GPU、传感器、温度、存储、电池…

Android CPU架构

Android CPU架构有:arm64-v8a、armeabi-v7a、armeabi、x86 CPU架构 1)arm64-v8a 第8代、64位、ARM处理器 包含AArch32、AArch64两个执行状态对应32、64bit 支持arm64-v8a、armeabi-v7a、armeabi 2)armeabi-v7a 第7代、ARM处理器 …

cpu架构知识

微信公众号:运维开发故事,作者:夏老师 Part1架构概述 从系统架构来看,目前的商用服务器大体可以分为三类 对称多处理器结构(SMP:Symmetric Multi-Processor) 非一致存储访问结构(NUMA:Non-Uniform Memory…

CPU架构名称

Coffee Lake-Refresh 第九代酷睿 2018-2019年 14nm Coffee Lake 第八代酷睿 2017-2018年 14nm Kaby Lake 第七代酷睿 2016年 14nm Skylake 第六代酷睿 2015年 14nm Broadwell 第五代酷睿 2014-2015年 14nm Haswell 第四代酷睿 2013年 22nm Ivy Bridge 第三代酷睿 2012年 22nm S…

指令集与CPU架构概念与联系

指令集 指令集,顾名思义,指令的集合,CPU用来计算和控制计算机系统的,本质上是二进制机器码。 CPU依靠指令来计算和控制系统,故而需要规定一些列与硬件电路相互配合的指令系统来完成CPU的设计。以此来看,指…

Linux内核架构:CPU架构详细介绍(图例解析)

一. 概述 CPU架构是CPU商给CPU产品定的一个规范,主要目的是为了区分不同类型的CPU。目前市场上的CPU分类主要分有两大阵营,一个是intel、AMD为首的复杂指令集CPU,另一个是以IBM、ARM为首的精简指令集CPU。不同品牌的CPU,其产品的…