• 虚拟内存管理


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

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

    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 页面分配策略

     

     

     

  • 相关阅读:
    cesium wgs84 经纬度转笛卡尔坐标
    基于多通信半径与跳距加权优化的DV-HOP改进算法附matlab代码
    春风吹又生的开源项目「GitHub 热点速览」
    python线程和进程
    Java 环境其他下载2
    Vue 的性能优化
    恒星的正方形问题
    嵌入式养成计划-29-网络编程----TCP与UDP的基础模型
    LeetCode50天刷题计划(Day 18—— 搜索旋转排序数组(8.50-12.00)
    java80-GULqq界面
  • 原文地址:https://blog.csdn.net/weixin_51676493/article/details/126218973