3.7 虚拟存储器

学习目标:

建议按照以下学习目标进行学习:

  1. 了解虚拟存储器的基本概念和原理。包括什么是虚拟存储器、虚拟地址和物理地址、虚拟内存、页面置换算法等。

  2. 了解虚拟存储器的实现方式。包括基于请求分页、请求分段和请求段页混合的虚拟存储器实现方式,以及页表、页表项等相关概念。

  3. 学习虚拟存储器的常见页面置换算法,包括最优页面置换算法、先进先出页面置换算法、最近最久未使用页面置换算法、时钟页面置换算法等。了解各种算法的特点和适用场景。

  4. 学习虚拟存储器中的页面调度算法,包括随机调度算法、先入先出调度算法、轮转调度算法、优先级调度算法等。

  5. 了解虚拟存储器的性能评价指标,包括缺页率、命中率、访问时间等。了解如何通过调整页面大小、调整页面置换算法、增加物理内存等方式来改善性能。

  6. 了解虚拟存储器在操作系统中的实现和应用,包括在不同操作系统中的实现方式、虚拟内存的大小和配置、应用程序如何利用虚拟存储器等。

  7. 了解虚拟存储器在计算机系统中的作用和意义,以及未来的发展方向和趋势。

以上是虚拟存储器的一些学习目标,您可以根据自己的兴趣和需求进行深入学习。

学习步骤:

学习虚拟存储器的过程中,我会按照以下步骤进行:

  1. 理解虚拟存储器的基本概念:了解虚拟存储器是一种将磁盘空间当作内存来使用的技术,实现了对物理内存的扩展和管理。同时需要理解虚拟内存空间的划分、分页、虚拟页表等基本概念。

  2. 学习虚拟存储器的实现原理:了解虚拟存储器的实现原理,包括缺页中断的处理、页面置换算法、页面淘汰策略等。需要了解常用的页面置换算法,如最近最少使用(LRU)、先进先出(FIFO)等。

  3. 掌握虚拟存储器的性能分析方法:了解虚拟存储器的性能指标,如命中率、缺失率、缺失率的成本等,并学会使用性能分析工具来分析虚拟存储器的性能问题。

  4. 学习虚拟存储器的优化技术:了解如何通过合理的页面置换算法、页面淘汰策略、预取技术等来优化虚拟存储器的性能。同时需要了解虚拟存储器和物理内存的映射关系,以及如何在不同的操作系统和处理器架构上进行配置和优化。

  5. 实践虚拟存储器:通过实验和项目来加深对虚拟存储器的理解和掌握。可以自己编写虚拟存储器相关的程序来体验虚拟存储器的实现过程,也可以参加开源项目或者研究课题来实践虚拟存储器的优化技术。

  6. 不断更新知识:虚拟存储器是一个发展迅速的领域,需要不断更新知识,了解最新的技术和研究成果,参加相关的培训和学术会议,积极参与社区和论坛的讨论和交流。

3.7.1 虚拟存储器的基本概念 

虚拟存储器是计算机系统中的一种技术,它把主存储器和磁盘存储器组合起来,使得程序运行时所需的数据可以从磁盘中读取到主存中,从而避免了程序运行时因为内存不足而导致的程序异常中断等问题。虚拟存储器实际上是一种把主存储器扩展到磁盘存储器的技术,使得程序在运行时可以利用更大的存储器空间,提高系统的性能。

虚拟存储器的基本概念包括以下几个方面:

  1. 虚拟地址:程序在运行时所使用的地址,它是由程序生成的地址,不同于实际的物理地址。

  2. 物理地址:计算机系统中实际的地址,它是由硬件生成的地址。

  3. 页:是虚拟存储器中的基本单位,它是一段连续的虚拟存储空间。

  4. 页面:是虚拟存储器中的基本单位,它是一段连续的物理存储空间。

  5. 页表:是一个数据结构,用于记录虚拟地址与物理地址之间的映射关系。

  6. 页面置换算法:虚拟存储器中当内存空间不足时,需要把部分页面从内存中置换出去,以腾出空间给新的页面使用,这就需要使用页面置换算法。

  7. 页面请求算法:虚拟存储器中当程序需要访问某个页时,需要先判断该页是否已经在内存中,如果不在内存中,需要使用页面请求算法将其从磁盘中调入内存。

  8. 页面保护:虚拟存储器中需要保护一些关键的数据不被非法访问,需要使用页面保护技术来实现。

 

3.7.2 页式虚拟存储器

页式虚拟存储器是虚拟存储器的一种实现方式,它将主存和磁盘分成相等大小的块,称为页(page),而程序的地址空间也被分成相等大小的页框(page frame)。页框是主存中分配给进程使用的物理空间,页是程序地址空间中的逻辑空间。当程序需要访问一个页时,虚拟存储器将检查页表,查找页所对应的页框是否已经调入主存,若已经调入,则直接访问主存中对应的页框;若未调入,则将其从磁盘读入主存,然后访问该页框。这种方式可以将主存和磁盘组织成一个逻辑上连续的地址空间,使得程序能够像访问物理内存一样访问磁盘上的数据。

页式虚拟存储器的优点包括:

  1. 可以更有效地利用主存资源,避免了程序所需的全部地址空间都要占用主存的情况。

  2. 可以让多个程序同时运行,使得它们可以使用相同的物理内存地址。

  3. 可以实现虚拟内存技术,将磁盘空间用作虚拟内存,扩展了系统的可用内存空间。

  4. 可以实现页面置换和分配策略,根据不同的策略,可以提高程序的执行效率。

但是,页式虚拟存储器也存在一些缺点,例如:

  1. 页表占用的空间比较大,每个进程需要一个页表来映射其地址空间,因此当进程数量较多时,会占用大量的主存空间。

  2. 由于需要频繁地进行磁盘和主存之间的数据交换,会造成一定的时间开销和系统开销。

  3. 页面置换和分配策略的设计和实现比较复杂,需要考虑到许多因素,如程序访问模式、缺页率等。

总的来说,页式虚拟存储器是现代操作系统中常用的内存管理技术,其基本原理和实现方式对于理解计算机内存管理具有重要意义。

 

3.7.3 段式虚拟存储器和段页式虚拟存储器

段式虚拟存储器和页式虚拟存储器都是虚拟存储器的实现方式,而段页式虚拟存储器则是将两者相结合的一种实现方式。

段式虚拟存储器是将逻辑地址分成段的方式进行管理,每个段对应一个连续的地址空间,每个段的大小可以不同。每个段的起始地址和长度由段表中的条目描述。这种方式可以有效地利用地址空间,但是容易出现内部碎片。

页式虚拟存储器是将逻辑地址分成固定大小的页,将物理内存也分成相同大小的页帧,每个页可以映射到内存中的任意一个页帧上。这种方式可以有效地避免内部碎片,但会出现外部碎片,而且会浪费一些物理内存空间。

段页式虚拟存储器将逻辑地址划分为段和页两部分,将段式虚拟存储器和页式虚拟存储器结合起来,同时享受两种方式的优点。具体地,逻辑地址首先被分成段和页两个部分,其中段号用于索引段表,获得该段对应的页表的起始地址;然后,使用页号在页表中查找对应的页帧号,最终形成物理地址。

段页式虚拟存储器的优点在于既可以灵活地管理内存,又可以避免内部碎片和外部碎片的问题,但是也存在一些复杂性和额外的开销。

 

3.7.4 虚拟的替换算法

虚拟存储器中,由于物理内存的空间有限,当需要将某个页或段调入内存时,如果内存已满,就需要使用替换算法将一部分已存在内存中的页或段移出内存,以便为新的页或段腾出空间。

常见的虚拟存储器替换算法包括:

  1. 最近最少使用算法(Least Recently Used, LRU)

LRU算法根据最近一段时间内各页面被访问的情况,认为最近最少使用的页面在未来一段时间内也不会被使用,所以可以优先选择这些页面进行替换。

  1. 先进先出算法(First-In-First-Out, FIFO)

FIFO算法选择最先进入内存的页面进行替换,无论这些页面是否经常被访问。

  1. 时钟算法(Clock)

时钟算法维护一个环形链表,其中每个页面都对应一个标志位,初始值为0。当需要进行页面替换时,从链表的当前位置开始,遍历整个链表,对于每个页面的标志位,若为0则将其替换出去,若为1则将其标志位改为0并继续遍历。

  1. 最不经常使用算法(Least Frequently Used, LFU)

LFU算法根据页面在一段时间内被访问的次数,认为访问次数最少的页面在未来也很少被访问,所以可以优先选择这些页面进行替换。

不同的替换算法各有优缺点,要根据具体应用场景和需求选择适合的算法。

 

3.7.5 存储管理部件

存储管理部件(Memory Management Unit,MMU)是一种硬件设备,用于管理计算机系统中的物理内存和虚拟内存之间的映射关系。它是计算机操作系统中的一个重要组成部分,负责将程序访问的虚拟地址映射到实际的物理地址,保证程序能够正常运行。

MMU 通常由硬件实现,其主要功能包括地址转换、地址保护、内存共享等。其工作原理是通过将程序发出的虚拟地址映射到物理地址,从而实现内存的访问。在执行每个内存访问操作之前,CPU 将虚拟地址发送到 MMU 中,MMU 根据虚拟地址所在的段或页表中的映射信息,将其转换成对应的物理地址,并将物理地址返回给 CPU,CPU 再根据物理地址进行内存访问。

在操作系统中,MMU 的主要作用是实现虚拟内存管理,将虚拟地址空间映射到物理内存空间,从而提供比物理内存更大的地址空间,使得系统可以运行更多的程序和处理更多的数据。此外,MMU 还可以通过地址保护和内存共享等机制,保护程序的运行环境和数据的安全性,提高系统的性能和可靠性。

 

 

 

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏驰和徐策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值