• 虚拟内存管理


    为什么要引用虚拟内存管理?

    普通内存管理是一次性把程序加载完,而虚拟内存是请求分页加载,你需要的时候再加载

    1.1 什么是虚拟内存

    1.1.1 概念

    具有请求调入和置换的功能,从逻辑上对内存容量加以扩充的一种存储器系统


    1.1.2 局部性原理

    时间局部性:在短时间内有可能对同一个数据进行操作。

    空间局部性:不断地访问一个数组中的元素。

    基于此,把这些反复访问的内容,放入到缓存中。缓存可以提高执行效率。


    1.1.3 虚拟内存的特征

     多次性:动态地,按需将程序加载到内存中。

    对换性:进程不一定要常驻内存了,可以挂起,放在硬盘缓存中。

    虚拟性:通过缓存技术使得我的内存看起来很大,其实是运用了缓存技术。


    1.1.4 虚拟内存的实现

    请求分页存储管理

    请求分段存储管理

    请求段页式存储管理


     

    1.2 请求分页管理

    1.2.1 页表机制

    新增的四个字段

    状态位P:0代表没有放入内存,那么也就没由块号。1代表放入到了内存。

    访问字段A:整个页被访问了多少次

    修改位M:这个页内中的数据是否被修改过

    外存地址:在缓存中的位置


    1.2.2 缺页中断机构

    程序执行的时候,要访问的数据(页)没在内存中,所以会产生缺页中断。

    将外存中的块加载到空闲的内存块中,并且更新请求分页。

    同时根据页面置换算法,可以淘汰一些页,并更新请求分页。


    1.2.3 地址变换机构

    ...........


    1.3 页面置换算法


     

    1.4 页面分配策略

     

     

     

  • 相关阅读:
    Python教程(14)——Python函数的入门学习
    JAVA实现冒泡排序
    windows10+WSL的ubuntu子系统cuda+cudnn安装与配置
    【Vue+ElementUI】Table表格实现自定义表头展示+表头拖拽排序(附源码)
    ppt 作图 如何生成eps格式
    LINUX-基础回顾
    Charles抓包
    16 Linux之JavaEE定制篇-搭建JavaEE环境
    Python的面向对象、继承、多态和对象的消失与重生
    【Linux】 ubuntu OpenCV环境搭建
  • 原文地址:https://blog.csdn.net/weixin_51676493/article/details/126218973