计算机操作系统基础(十)---存储管理之虚拟内存

    技术2023-05-05  83

    引言

    本文为第十篇,存储管理之虚拟内存,在正式了解之前,有一个问题,一个游戏十几G,物理内存只有4G,那么这个游戏是怎么运行起来的呢?为了解决这个问题,就需要本篇中介绍到的虚拟内存的知识

    虚拟内存概述

    有些进程实际需要的内存很大,超过物理内存的容量多道程序设计,使得每个进程可用物理内存更加稀缺不可能无限增加物理内存,物理内存总有不够的时候

    这些原因就促使虚拟内存技术的产生

    虚拟内存是操作系统内存管理的关键技术使得多道程序运行和大程序运行成为现实把程序使用内存划分,把部分暂时不使用的内存放置在辅存

    举例:

    左边为进程的逻辑空间,红色部分为一个程序需要使用的内存,操作系统会将内存加载到物理内存中去,灰色的部分为暂时不需要使用的内存,这部分会先放到磁盘中,这样可以节省物理内存,把更多的物理内存让给其它进程使用,并且,在这个里边,如果说这个进程的逻辑空间很大的话,这些很大,且暂时不需要的空间都可以放到磁盘里边暂时保管

    程序的局部性原理

    局部性原理指的是CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。这个原理也是使得虚拟内存技术可以实现的一个原因

    因为有局部性原理

    所以计算机在加载程序时,无需全部逻辑空间装入内存,装载部分即可(需要使用的部分)如果发现所使用的内存不在物理内存中,则发出缺页中断,发起页面置换,把保存在辅存中的页面置换到物理内存中,这样程序又可以继续运行下去了从用户层面看,程序拥有很大的空间,既是虚拟内存

    虚拟内存实际上是对物理内存的扩充,速度接近于内存,成本接近于辅存

    虚拟内存的置换算法

    先进先出算法(FIFO)最不经常使用算法(LFU)最近最少使用算法(LRU)

    高速缓存的替换时机

    在高速缓存替换的时候,主要发生在CPU需要获取缓存的时候,发现缓存中没有对应的数据,此时就会发生高速缓存的替换,也就是从主存中载入所需数据

    主存页面的替换时机

    主存缺页的时候,就会去辅存中加载相关数据,这个时候就会发生主存页面替换

    对比来看:

    替换策略发生在:高速缓存-主存层次、主存-辅存层次高速缓存-主存层次的替换策略主要是为了解决速度问题主存-辅存层次主要是为了解决容量的问题(这也是存储器存储分层的理由)

    在快速变化的技术中寻找不变,才是一个技术人的核心竞争力。知行合一,理论结合实践

    Processed: 0.089, SQL: 9