操作系统笔记--虚拟内存的使用

这篇具有很好参考价值的文章主要介绍了操作系统笔记--虚拟内存的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1--背景概念

        在计算机系统中,当多道程序同时运行时可能会出现内存不足的情况,一般可通过以下技术进行解决:

覆盖技术

        当程序太大超出内存容量时,可以采用手动覆盖的技术,只把需要的指令和数据保存在内存当中;

交换技术

        当程序太大超出内存容量时,可以采用自动交换的技术,把暂时不能执行的程序送到外存中;

虚拟存储技术

        采用自动的虚拟存储技术可以实现在有限容量的内存中,以更小的页粒度为单位来装入更大更多的程序;

2--覆盖和交换技术的缺陷

覆盖技术

        需要程序员自己把整个程序划分为若干个小的功能模块,并确定各个模块之间的覆盖关系,增加了程序员的负担;

交换技术

        以进程作为交换的单位,需要把进程的整个地址空间都换进换出,增加了处理器的开销;

3--虚存技术

        虚存技术兼顾覆盖技术和交换技术的特点,即虚存技术不把程序的所有内容都放在内存中,同时虚存技术可以实现进程的部分内容在内存和外存之间进行交换,这一过程由操作系统自动完成,无需程序员的干涉;

        虚存技术的实现基于程序的局部性原理:即程序在执行过程中的一个较短时期,所执行的指令地址和指令的操作数地址,分别局限于一定区域,具体表现为:

        时间局部性:一条指令的一次执行和下次执行,一个数据的一次访问和下次访问都集中在一个较短的时期内;

        空间局部性:当前指令和邻近的几条指令,当前访问的数据和邻近访问的几个数据都集中在一个较小的区域内;

实例说明:

操作系统笔记--虚拟内存的使用

操作系统笔记--虚拟内存的使用

         程序 1 将按一列一列的形式进行访问,但由于C语言的数组在实际存储中是按行进行存储的,所以程序 1 这种访问方式在访问每一个数据时,操作系统都会把整行(页)的数据加载到内存中,导致内存负担的加重;

        而程序 2 将按一行一行的形式进行访问,访问当个数据时,操作系统只需将本行数据加载到内存即可,待访问下一行的数据时再把下一行的数据加载到内存当中;

        因此,程序 2 的设计满足程序的局部性原理,显然对于虚拟内存管理来说是更优的设计;

虚存技术可以在页式或段式内存管理的基础上实现:

        ① 在装入程序时,无需将全部程序内容装入到内存中,只需将当前需要执行的部分页面或段装入到内存中;

        ② 在程序执行过程中,如果需执行的指令或访问的数据尚未在内存中,则由处理器通知操作系统将相应的页面或段调入到内存,然后继续执行程序;

        ​​​​​​​③ 操作系统会将内存中暂时不使用的页面或段调出保存在外存中,从而腾出空间存放将要装入的程序或将要调入的页面和段;

虚存技术的基本特征:

        ① 更大的用户空间:物理内存和外存相结合,提供的虚拟内存空间通常大于实际的物理内存;

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

        ③ 不连续性:物理内存分配的不连续,虚拟地址空间使用的不连续性;文章来源地址https://www.toymoban.com/news/detail-419998.html

到了这里,关于操作系统笔记--虚拟内存的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 操作系统-笔记-第三章-内存管理

    一、第一章——操作系统的概念 二、第二章——【进程】 二、第二章——【线程】​编辑 二、第二章——【进程调度】 二、第二章——【进程同步与互斥】 二、第二章——【锁】 三、第三章——内存管理 四、第四章——文件管理 五、第五章——输入输出管理 ​​​​​

    2024年02月11日
    浏览(69)
  • 【操作系统】24王道考研笔记——第三章 内存管理

    1.基本概念 2.覆盖与交换 覆盖技术: 交换技术: 总结: 3.连续分配管理方式 单一连续分配 固定分区分配 动态分区分配 动态分区分配算法: 总结: 4.基本分页存储管理 定义: 页表: 地址转换的实现: 子问题: 逻辑地址结构: 总结: 5.基本地址变换机构 流程: 原理:

    2024年02月11日
    浏览(65)
  • Java 使用 oshi 获取当前服务硬件信息(操作系统、CPU、内存、磁盘)

    这里需要引入两个依赖包: HardWareUtil: CpuInfo: JvmInfo: MemoryInfo: SysFile: SystemDetails: SizeEnum: 控制台输出: CpuInfo(cpuNum=16, total=16501.0, sys=329.0, used=657.0, wait=0.0, free=15419.0) JvmInfo(total=2.64241152E8, max=4.211081216E9, free=2.5297664E8, version=11.0.18, home=C:Program FilesJavajdk-11) SystemDetails(

    2024年02月05日
    浏览(59)
  • 在MacOS上使用VMware虚拟机安装CentOS 7操作系统,并配置静态IP地址

    一、🔧前期工具准备 虚拟机VMware Fusion   --VMware12.1.0版本 Download VMware Fusion | VMware Fusion 12 Player and Fusion 12 Pro are the best way to run Windows on the Mac, and the ultimate development and testing utility. Discover why. https://www.vmware.com/products/fusion/fusion-evaluation.html CentOS 7 操作系统  Index of / https://vaul

    2024年02月07日
    浏览(66)
  • 在VMware 17虚拟机上安装Windows 11操作系统(全程有图超级详细)+VMware使用技巧

    目录 我的安装环境 一、安装虚拟机前的准备 1、打开Windows功能 2、安装虚拟机软件 3.下载Windows 11镜像文件。 二、开始安装虚拟机 1、新建虚拟机 2、选择典型配置 3、选择稍后安装操作系统 4、选择Windows 11 x64操 作系统 5、虚拟机命名和安装路径选择 6、虚拟机加密 7、指定磁

    2024年02月08日
    浏览(155)
  • 飞腾笔记本/银河麒麟桌面操作系统键盘无法使用

    在安装完银河麒麟V10完成以后,进入系统后无法使用键盘,外接键盘以及在安装系统的过程中均可正常使用。 因为在安装过程中,以及外接键盘均可正常使用,所以初步怀疑是笔记本键盘与系统之间的不兼容导致 将/boot/grub.cfg配置文件中的drivicetree/dtb/u-boot-general.dtb修改为d

    2024年02月12日
    浏览(94)
  • 【操作系统】内存管理概念

    1、 编译:由编译程序将用户源代码编译成若干个目标模块(编译就是把高级语言翻译成机器语言) 2、 链接:由链接程序将编译后形成的一组目标模块,以及所需库函数链接在一起,形成一个完整的装入模块 ① 静态链接:在程序运行之前,先将各目标模块及它们所需的库函

    2024年02月06日
    浏览(52)
  • 【操作系统】内存空间

    想要pmap这个进程,需要进程号 但是这个进程在启动的一瞬间就执行完了 用GDB把程序暂停下来,然后用pmap观察地址空间 用 info inferiors 得到gdb里的进程号 ro 可读 :只读数据 rx 可读可执行 :代码 rw 可读可写 :待初始化值的变量 动态链接的二进制文件在开始执行main函数之前

    2024年02月03日
    浏览(35)
  • 【操作系统】03.内存管理

    现代操作系统使用的连接方式:运行时动态链接 对某些模块的链接推迟到程序执行时才进行 现代操作系统使用的装入方式:动态重定位 程序装入内存后,逻辑地址不会立即转换成物理地址,而是推迟到指令执行的时候,需要一个重定位寄存器的支持 单一连续分配 固定分区

    2024年02月07日
    浏览(44)
  • 【操作系统】内存管理

    本系列参考王道考研-操作系统以及博主@BitHachi 因为cpu的处理速度很快,而外存的读取速度又很慢,所以我们就需要先加载到内存中,内存的读取速度比外存要快得多,如此实现更高效的处理 指令的工作原理 从X=X+1大致看一下指令的执行过程 指令的工作基于地址。每个地址对

    2024年02月07日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包