虚存技术(上)

操作系统(3)—— 覆盖、交换技术和虚存技术 操作系统(3)—— 虚拟内存 本节要学习的知识点如下: 虚拟内存的起因 覆盖技术 交换技术 虚存技术 一. 虚拟内存的起因 程序规模的增长速度远远大于存储器容量的增长速度 理想中的存储器 :更大、更快、更便宜、非易失性。 常用的数据程序放在CPU中便于访问,不常用的放在内存、硬盘中。 早期DOS——内存不够用的情况及解决方法 程序太大,超过内存容量,可以采用手动的覆盖技术,只把需要的指令和... 阅读详情

虚拟内存的出现是为了缓解内存不足的问题,

覆盖技术:

目标:是为了在较小的内存中运行较大的程序,常用于多道程序系统,与分区存储管理配合使用。

 

原理:把程序按照其自身逻辑结构,划分为若干个功能上相对独立的程序模块,那些不会同时执行的模块共享同一块内存区域,按照时间先后来运行。

1、必要部分(常用功能)的代码和数据常驻内存。

2、可选部分(不常用功能)在其他程序模块装载到内存。

3、不存在调用关系的模块不必同时装入到内存,从而可以相互覆盖,即这些模块共用一个

分区。

 

总结:覆盖技术就是把程序拆分,常用模块常驻内存,不常用模块放在外存,当使用到对应的模块时,将对应的模块载入到某个特定的内存块中,当另一个程序执行调用到不常用的模块时,装

载该程序的模块到这个特定的内存块中,后面载入到这个特定的内存块中的模块覆盖前一个程序

装载到这个特定内存块中的模块。(即特定内存块中不同程序的模块实现覆盖载入,提供对应的程序调用。)

A调用B和C,但是B和C之间不存在调用关系,那么B和C就可以放在同一个覆盖区内,而D和EF相互之间又不存在调用关系,所以D、E、E可以放在同一个覆盖区内。同时还可以通过调整不存在调用关系的模块之间的分组关系来优化总的占用空间。

缺点:

分模块比较复杂(可以编程的时候指定可以被覆盖的模块)。

换入换出费时。

交换技术:

目标:多道程序在内存中时,让正在运行的程序或需要运行的程序获得更多的内存资源。

方法:

1、可将暂时不能运行的程序送到外存,从而获得空闲内存空间。

2、操作系统把一个进程的整个地址空间的内容保存到外存中(换出swap out),而将外存中的某个进程的地址空间读入到内存中(swap in),换入换出内容的大小为整个程序的地址空间。

 

交换技术实现中的几个问题:

1、交换时机的确定:何时要发生交换?只当内存空间不够或有不够的危险时换出。

2、交换区的大小:必须足够大以存放所有用户进程的所有内存映像的拷贝:必须能对这些

内存映像进行直接存取。

3、程序换入时的重定位:换出后再换入的内存位置一定要在原来的位置上吗?最好采用动态映射的方法。

交换技术和覆盖技术的比较:

1、覆盖技术只能发生在那些相互之间没有调用关系的程序模块之间,因此程序员必须给出程序内各个模块之间的逻辑覆盖关系(发生在同一个程序内)。

2、交换技术是以内存中的程序大小为单位来进行的,他不需要程序员给出各个模块之间的逻辑覆盖结构,换言之,交换发生在内存中程序之间,而覆盖则发生在运行程序的内部。

虚存技术:

局部性原理:包括时间局部性和空间局部性,可以根据内存的局部性原理来优化代码,提高代码执行效率。

时间局部性:如果程序中的某一条指令一旦执行,则不久后该指令可能再次被执行;如果某数据被访问,则不久之后该数据可能再次被访问。

空间局部性:一旦程序访问了某个存储单元,则不久之后,其附近存储单元也将被访问。

 

虚存技术--基本特征

1、大的用户空间:通过把物理内存与外存相结合,提供给用户的虚拟内存空间通常大于实际的物理内存,即实现了这两者的分离。如32位的虚拟内存地址理论上可以访问4GB,而可能计算机上仅有256M的物理内存,但硬盘容量大于4GB.

2、部分交换:与交换技术相比,虚拟存储的调入和调出是对部分虚拟地址空间进行的。

3、不连续性:物理内存分配的不连续性,虚拟地址空间使用的不连续性(如上图彩色部分)。

Power BI实战:从数据清洗到可视化报表的完整流程 本文详细介绍了使用Power BI进行数据分析的完整流程,从数据获取、清洗整理到建模与可视化。通过实战案例,重点讲解了连接MySQL数据库、使用Power Query进行数据清洗、利用DAX创建核心度量值以及设计交互式报表的关键步骤与技巧,帮助用户高效完成从原始数据到专业可视化报表的转化,实现数据驱动决策。 阅读详情

相关推荐

【Ensp】FTP服务器设置和FTP解析

大部分的多媒体多媒体应用协议,如SIP,FTP,NetMeeting协议等,使用约定的固定端口来初始化一个控制连接,再动态地选择端口用于数据传输,并且这些端口选择是不可预测的。在防火墙设置时,可以通过ASPF(应用层报文过滤)中的Server Map表来满足多通道协议的正常工作,它正常检测应用层报文信息,并动态地根据报文内容创建和删除临时的Server Map表项,以允许其它非约定端口通过防火墙。(5)我们可以在路由器或能访问ftp服务器的设备上,通过cli命令行的方式来访问ftp服务器。

进击的小小白 1862

页式虚存:从原理到实践,深入解析内存管理核心技术

内存管理是操作系统与计算机体系结构中的核心基础概念,它通过抽象层将物理硬件的复杂性隐藏,为上层应用提供统一、安全且看似无限的地址空间。其核心原理在于地址转换与按需调度机制,通过页表、TLB等关键组件协同工作,实现了逻辑地址到物理地址的动态映射。这项技术的核心价值在于极大地提升了内存利用率、保障了多任务环境下的安全隔离,并支撑了现代计算中至关重要的共享内存与写时复制等高级特性。在应用场景上,从个人电脑、移动设备到云端服务器,几乎所有现代计算系统都依赖于此技术来运行应用程序、数据库及虚拟化环境。本文聚焦于页式虚

weixin_33824385的博客 296

VideoPose3d:环境搭建+制作自己的视频

论文链接:3D human pose estimation in video with temporal convolutions and semi-supervised training 代码链接:https://github.com/facebookresearch/VideoPose3D 环境搭建:ubuntu20.04+pytorch1.8+cuda10.2+python3.6+anaconda 1.启动anaconda环境 新建环境命令: conda create -n pytorc.

willbetter01的博客 4938

【操作系统】第五章——虚拟内存技术

为了让更多的程序跑在有限的内存中,覆盖技术 >> 交换技术 >> 虚存技术

欢迎来到我的世界 1439

AD620仪表放大器模块实战:从双电源切换到单电源供电的完整指南(附原理图)

本文深入探讨了AD620仪表放大器模块从双电源切换到单电源供电的常见陷阱与正确方案。通过解析AD620的内部架构与电气特性,指出其“天生”依赖双电源,简单的跳线改装会导致芯片损坏或失效。文章提供了基于AD623芯片的真正单电源替代方案,并附有原理图与实战波形对比,为便携式设备设计提供了完整指南。

weixin_29231027的博客 365

Python开发MCP Client

全部例子只是MCP Client访问MCP Server的过程,那么这样其实就失去了MCP协议的创建的初衷,和大模型集成后才能发挥MCP最大的作用。

Criss@陈磊 2971

计算机组成原理学习笔记——虚存

主存和联机工作的辅存构成了虚拟存储器,二者在硬件和软件的共同管理下工作;虚拟存储器具有主存的速度和辅存的容量,提高了存储系统的性价比。

御承扬的博客 5505

LPDDR5 学习笔记01:功能概述

LPDDR5/LPDDR5X SDRAM设备采用8/16DQ通道架构,支持2Gb-32Gb容量。通过CK命令时钟和更快的WCK数据时钟协同工作,7个CA引脚传输控制信息,支持2:1或4:1的WCK:CK比例。设备提供BG/8B/16B三种存储模式选择,分别支持不同数据速率(最高8.533Gbps)和突发长度。采用0.5V VDDQ电源电压,实现高速双倍数据速率传输,并通过差分WCK时钟完成数据采样。读写采用突发访问机制,需先激活命令再执行读写操作。新型LPDDR5X仅支持BG和16B模式,优化了高速性能。

一只豌豆象的博客 2197

虚拟内存介绍

虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。与没有使用虚拟内存技术的系统相比,使用这种技术的系统使得大型程序的编写变得更容易,对真正的物理内存(例如RAM)的使用也更有效率。对虚拟内存的定义是基于对地址空间的重定义的,即把地址空间定义为「连续的虚拟内存地址」,以借此「欺骗」程序,使它们以为自己正在使用一大块的「连续」地址。

General_zy的博客 9945

K8S搭建(centos)完整版

每个人都有惰性,但不断学习是好好生活的根本,共勉!

感谢阅读 4145

Android15车载系统开机冷启动流程源码解析

本文主要介绍Android15车机系统开机冷启动的流程,暂不包含bootloader,仅从kernel开始直至Launcher首页展示。

jidapenglin28的专栏 253

操作系统-- 虚存技术

文章目录一、虚存技术的起因二、覆盖技术1、了解覆盖技术2、实战演练三、交换技术1、交换技术的基础2、交换技术实现的几个问题3、交换技术的缺点四、小结–覆盖与交换的比较五、虚存技术1、程序的局部性原理2、虚拟技术的大致流程3、虚拟内存的基本特征4、虚拟内存技术的具体实现5、页表表项解析 一、虚存技术的起因 理想中的存储器:更大、更快、更便宜的非易失性存储 但这个是目前达到不了的,我们只能采用多级存储...

一点一滴铺就人生 1729

Windows下Anaconda和PyTorch深度学习环境完整安装配置教程

本文详细介绍了在Windows系统下安装配置PyTorch深度学习环境的完整流程。主要内容包括:硬件环境检查(确认GPU支持)、Anaconda环境管理系统的安装与配置、虚拟环境的创建与管理方法、以及PyTorch及其相关组件的安装指南。特别强调了版本兼容性选择策略(如CUDA版本的确定)、显卡驱动更新、使用Anaconda创建隔离的PyTorch专用环境等关键步骤。无论是使用CPU还是GPU版本,读者都能按照教程快速搭建稳定的PyTorch开发环境,为深度学习项目打下坚实基础。

FJN110的博客 973

计算机体系结构——虚拟内存技术

现代操作系统中普遍采用虚拟内存管理,该部分即让软件运行在“虚地址”上,与真正访问存储的“实地址”(物理地址)相隔离。

知识,既贵,又便宜。 7053

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

操作系统原理学习总结:虚存技术

虚存技术的基本概念:可以在页式或段式内存管理的基础上实现 在装入程序时,不必将其全部装入到内存,而只需将当前需要执行的部分页面或段装入到内存,就可以让程序开始执行 在程序执行过程中,如果需要执行的指令或访问的数据尚未在内存(称为缺页或缺段),则由处理器通知操作系统将相应的页面或段调入到内存,然后继续执行程序,另一方面,操作系统将内存中暂时不使用的页面或段调出保存在外存上,从而腾出更多空闲空间存...

weixin_42104550的博客 489

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

内存管理 三大技术(覆盖交换虚存)

因为A的话要调用很多,bc ,所以把A放在了常驻区域,然后bc 再同一个分区,如果B调用的话那么这50k就是b在调用,DEF的话三的共享,需要的话就从内存中划拨出来。缺点是由程序员分化出各个小的模块,耗时耗力,模块从外装入内存,时间开销大,时间换空间;要把整个不用的程序写到硬盘里,要执行的时候还要导回来,频繁交换性能影响大。换入换出的消耗大,需要把进程的整个地址空间都换进换出,增加cpu的开销。内存是连续的,所以连续的效率高,ij,按照一行遍历。大内存,部分交换,地址的不连续。程序显然比内存要大的。

wuxiaoyu0806的博客 1105

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【操作系统】第五章虚存技术

5.1虚拟内存的起因 理想中的存储器: 更大,更快,更便宜的非易性存储器 硬盘的速度远远的慢于内存的执行。 磁带比硬盘的存储容量更加的庞大。 现有的物理内存掉电之后数据还是会丢失的。 以上设计了三种技术: 1)手动覆盖技术:只把指令和数据保存在内存中 2)自动交换技术:将程序导出内存到硬盘上 3)虚拟内存技术(前两种是虚拟内存还没出现的情况下诞生的):以更小的力度把数据导出导入到内存中来,...

Clichong 2354

虚存管理技术

1、虚存简介   虚拟存储器又称虚拟存储系统,或虚拟存储体系等,由主存储器和联机工作的外部存储器共同组成。在目前的计算机系统中,主存储器通常用动态随机存储器(DRAM)实现,它的存储容量相对比较小,速度比较快,单位容量的价格比较贵。   联机工作的外部存储器通常为磁盘存储器,它的存储容量很大,与主存储器相比,速度很低,单位容量的价格很便宜。这两个存储器在硬件和系统软件的共同

qq125293177的博客 522

九、虚拟内存技术

文章目录1、虚拟内存的起因2、覆盖技术3、交换技术4、虚存技术4.1 在页式或者段式内存管理实现虚存技术4.2 虚存技术的特征4.3 虚拟页式内存管理4.4 缺页中断处理4.5 虚存技术的性能 1、虚拟内存的起因 \qquad在程序运行过程之中,经常会出现内存不够用的情况,程序规模的增长速度远大于存储器规模的增长速度。我们理想之中的存储器是:更大,更快,更便宜的非易失性的存储器。但实际中的存储器的结构如下图所示:从上到下分别为寄存区,缓存,主存,磁盘,磁带。其中访问速度越开的内存里CPU越近,但是所具有的空

dragon Fly的博客 737

07 虚存技术在计算机中的实现

虚拟页式内存管理:大部分虚拟存储器都采用虚拟页式存储管理技术,即在页式存储管理的基础上,增加请求调页和页面置换功能。 基本的设计思路: 当一个用户程序要调入内存中运行时,不是将该程序的所有页面都装入内存,而是只装入了部分页面,就可以启动程序运行; 在程序运行的过程中,如果发现要运行的程序或者要访问的数据不在内存中,则向系统发出缺页中断请求,系统在处理这个中断时,将外存中相应的页面调入内存,使得该...

weixin_45615071的博客 302

06 操作系统中的虚拟内存管理技术

概述:在内存不够的情况下,可以采用覆盖技术和交换技术,但是这两种方法都存在一定的不足: 覆盖技术:需要程序员自己把整个程序划分为若干个小的功能模块,并确定各个模块之间的覆盖关系,增加了程序员的负担; 交换技术:以进程作为交换单位,需要把进程的整个地址空间都换进换出,增加了处理器的开销。 虚存技术的目标: 如同覆盖技术那样,不是把整个程序的所有内容都放在内存中,因为能够运行比当前的空闲内存空...

weixin_45615071的博客 368

5-4虚存技术(上)

每产生一次中断就会完成从硬盘到内存的读写操作,可以看到开销是非常大的。第二个程序,按照列来访问的,a0,0,a0,1.....a0,1023,当第一次访问,跟程序1一样,数据在硬盘上,会产生一次中断,接下来操作系统会把数据从硬盘导到内存中去,接下来访问a0,1,这个位置是紧接着a0,0的,它具有很好的空间局部性和时间局部性,那么a0,0,a0,1.....a0,1023这一行都不会产生中断,这一个4K页访问都不会产生中断,这样只会产生1024次中断。PTBR 页表基址寄存器。

wade1010的专栏 108

5-4虚存技术(下)

首先第一步,看一下内存中是否有空闲的物理页,假如有,就会分配一个空闲的物理页帧,转到第4步去,需要把这个页,需要访问的地址对应所在硬盘中的数据,以页为单位,从硬盘读到内存中去,读到内存什么地方呢?访问位,也很重要,在后续讲到的置换算法中,要把一些页换出去,到底换哪些页,应该是换当前尽量是没有访问的页,这个位一定程度表明这个页是否经常被访问,如果这个页经常被访问,应该置成1的,既然没有置成1,意味着这个页很长时间没有被访问了,这个页也许不是我们将来很近的一个时间内,它会访问的到页,把这个页给换出去。

wade1010的专栏 352

【OS操作系统】Operating System 第五章:虚存技术

OS操作系统系列文章目录 目录OS操作系统系列文章目录第五章:虚存技术虚拟内存的起因覆盖技术交换技术覆盖技术和交换技术的对比虚拟内存管理技术 第五章:虚存技术   虚拟内存的起因   起因:经常出现内存不够的情况;且程序规模的增长远大于存储器容量的增长速度;   理想的存储器:更大、更快、更便宜、非易性存储;   实际的存储器   同时,也会把硬盘的空间也用上,不常用的信息存储在硬盘上,常用的存储在内存上;   在OS中,面对多道程序运行的情况,可能会出现内存不够的问题,解决办

Blacktone的博客 545

内存占用 - top 命令里的VIRT和RES - 虚存和实存

实存和虚存。

zwdbc123456的博客 203

【linux内核分析与应用-陈莉君】进程用户空间管理机制

1.创建进程用户空间 用户空间如何被创建? 实际上是通过拷贝或者共享父进程的用户空间来实现的. 也就是说内核调用copy_mm函数来实现的. 这样就为新进程建立了所有的页表和mm_struct结构. 通常来说每个进程都有自己的用户空间,但是如果调用的clone函数 创建的内核线程它是共享父进程的用户空间, ...

Edidaughter的博客 459
上一篇: LKD-Linux系统进程管理
下一篇: Android 只获取特定包名log
杨鑫校
博客等级 码龄11年 24粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值