• 第三章 内存管理 十一、虚拟内存的基本概念


    目录

    一、传统存储管理

    1、缺点

    二、局部性原理

    1、时间局部性:

    2、空间局部性:

    三、虚拟内存的定义和特征

    1、结构

    ​编辑

    2、定义

    3、特征

    (1)多次性:

    (2)对换性:

    (3)虚拟性:

    四、如何实现虚拟内存

    五、总结


    一、传统存储管理

    1、缺点

    (1)一次性:作业必须一次性全部装入内存后才能开始运行。

    这会造成两个问题:

    ①作业很大时,不能全部装入内存,导致大作业无法运行;

    ②当大量作业要求运行时,由于内存无法容纳所有作业,因此只有少量作业能运行,导致多道程序并发度下降。

    (2)驻留性:一旦作业被装入内存,就会一直驻留在内存中,直至作业运行结束。

    事实上,在一个时间段内,只需要访问作业的一小部分数据即可正常运行,这就导致了内存中会驻留大量的、暂时用不到的数据,浪费了宝贵的内存资源。

    二、局部性原理

    1、时间局部性:

    如果执行了程序中的某条指令,那么不久后这条指令很有可能再次执行;

    如果某个数据被访问过,不久之后该数据很可能再次被访问。(因为程序中存在大量的循环)

    2、空间局部性:

    一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也很有可能被访问。

    (因为很多数据在内存中都是连续存放的,并且程序的指令也是顺序地在内存中存放的)

    三、虚拟内存的定义和特征

    1、结构

    2、定义

    1. 虚拟内存是一种计算机操作系统的内存管理技术,它将计算机物理内存和硬盘上的空间结合起来,使得进程能够使用超过物理内存容量的内存。
    2. 虚拟内存将进程所需的部分数据和代码存储到物理内存中,而将不经常使用的数据和代码存储到硬盘上,当需要使用这些数据和代码时,再从硬盘上通过页调度等技术交换到物理内存中。
    3. 虚拟内存可以大大提高计算机的运行速度和多任务处理能力。

    3、特征

    (1)多次性:

    无需在作业运行时一次性全部装入内存,而是允许被分成多次调入内存。

    (2)对换性:

    在作业运行时无需一直常驻内存,而是允许在作业运行过程中,将作业换入、换出。

    (3)虚拟性:

    从逻辑上扩充了内存的容量,使用户看到的内存容量,远大于实际的容量。

    四、如何实现虚拟内存

    虚拟内存一般是通过操作系统来实现的,具体的实现方式如下:

    1. 分页系统:将虚拟地址空间划分为固定大小的页面(称为虚拟页面),并将物理内存也分为相同大小的页面(称为物理页面)。当程序访问一个虚拟地址时,操作系统会将其转换为物理地址,并将相关的物理页面调入内存。

    2. 页面置换算法:当内存不足时,需要选择一些不常用的物理页面来释放,以便新的页面可以被调入内存。常用的页面置换算法包括最近最少使用(LRU)、先进先出(FIFO)等。

    3. 页面缓存:操作系统也会使用一些缓存来优化虚拟内存的访问性能。比如,缓存一些常用的页面,以便快速访问;或者使用预读策略,提前将可能用到的页面缓存到内存中。

    4. 交换空间:当物理内存不足时,操作系统会将一部分内存中的页面写回磁盘,并将它们存储在交换空间中。当需要时,可以将这些页面重新调回内存中。

    总的来说,实现虚拟内存需要操作系统提供一系列的管理策略和机制,以便能够有效地管理内存,并提供较好的性能和可靠性。

    五、总结

  • 相关阅读:
    线框图软件:Balsamiq Wireframes mac中文介绍
    Python爬虫实现(requests、BeautifulSoup和selenium)
    太赞了!美团T9大牛硬肝仨月总结出Linux高性能服务器编程
    网络安全(黑客)自学
    Java基础之数组
    MySQL数据库备份全攻略:从基础到高级,一文掌握所有备份技巧
    小红书KOL推广应该注意什么?
    决策树CART介绍*
    POSTGRESQL中的SQL高级应用案例——等你来挑战
    山区自建房BCD浪涌保护器接线方案(自建房用电防雷)
  • 原文地址:https://blog.csdn.net/icbbm/article/details/133935896