首页 > 其他分享 >《计算机体系结构与SoC设计》(三)

《计算机体系结构与SoC设计》(三)

时间:2025-01-07 16:12:39浏览次数:1  
标签:SoC 计算机 页面 虚拟存储 虚拟地址 内存 体系结构 操作系统 物理

1. 虚拟存储的工作原理

虚拟存储(Virtual Memory)是计算机系统内存管理的一种技术,它允许操作系统和程序使用比物理内存(RAM)更大的地址空间。虚拟存储的工作原理主要包括以下几个关键概念:

  1. 地址空间:虚拟存储为每个进程提供了一个连续的虚拟地址空间,这个空间可以比实际的物理内存大得多。

  2. 分页(Paging):虚拟存储将虚拟地址空间分割成固定大小的块,称为页(Page)。同样,物理内存也被分割成相同大小的块,称为帧(Frame)。

  3. 页表(Page Table):页表是一个数据结构,用于存储虚拟页到物理帧的映射关系。当程序访问虚拟地址时,操作系统使用页表来查找对应的物理地址。

  4. 转换后备缓冲区(TLB, Translation Lookaside Buffer):为了提高地址转换的效率,处理器使用TLB 来缓存最近使用的页表项。这样,对于频繁访问的虚拟页,处理器可以直接从TLB中获取物理地址,而不需要再次查询页表。

  5. 缺页中断(Page Fault):当程序访问的虚拟页不在物理内存中时,会触发缺页中断。操作系统然后负责将所需的页从磁盘交换到物理内存中,更新页表和TLB,然后重新执行中断的指令。

  6. 内存映射:虚拟存储允许操作系统将虚拟地址映射到不同的物理内存区域,这可以用于实现内存保护、共享和隔离。

  7. 交换(Swapping):虚拟存储结合交换技术,允许操作系统将不常访问的页从物理内存移动到磁盘上的交换区,从而为活跃的页腾出空间。

  8. 内存碎片:虚拟存储通过分页机制减少了外部碎片(External Fragmentation),但可能会引入内部碎片(Internal Fragmentation),即页内未被充分利用的空间。

虚拟存储的主要优点包括:

  • 内存利用:允许程序使用比物理内存更大的地址空间,提高了内存的利用率。
  • 内存保护:不同进程的虚拟地址空间是隔离的,一个进程的崩溃不会影响其他进程。
  • 内存管理:简化了内存管理,因为操作系统可以为每个进程分配连续的虚拟地址空间,即使物理内存是分散的。

虚拟存储是现代操作系统中不可或缺的特性,它使得程序能够更有效地利用内存资源,同时提供了内存保护和隔离。


2. 虚拟内存

虚拟存储并没有在物理上增加内存容量,而是通过巧妙地利用现有的资源来扩展可用的存储空间。以下是对这个过程的更详细解释:

  • 物理内存的限制:物理内存(RAM)的容量是固定的,由硬件决定。它就像阅览室的面积一样,无法随意扩大。物理内存的主要作用是为当前正在运行的程序和数据提供快速访问的空间.

  • 虚拟存储的扩展:虚拟存储通过将一部分硬盘空间作为“虚拟内存”来使用,从而扩展了可用的存储空间。硬盘的容量通常比物理内存大得多,因此可以存储更多的数据。当物理内存不足时,操作系统会将一些暂时不需要的数据从物理内存中移到虚拟内存中,从而为新的数据腾出空间.

  • 数据的动态管理:虚拟存储并不是简单地将所有数据都存储在硬盘上,而是通过一种称为“分页”的机制来动态管理数据。操作系统将数据分成许多小的“页面”,每个页面的大小通常是固定的(如4KB)。当物理内存不足时,操作系统会选择一些不常用的页面,将它们从物理内存中移出到虚拟内存中。当程序需要访问这些数据时,操作系统会将它们重新调入物理内存中,同时可能将其他不常用的页面移出. 这个过程是自动进行的,对用户来说是透明的.

  • 性能的权衡:虽然虚拟存储扩展了可用的存储空间,但它也带来了一些性能上的权衡。因为硬盘的访问速度比物理内存慢得多,所以当数据需要在物理内存和虚拟内存之间频繁交换时,可能会导致系统的响应速度变慢。这就是为什么在物理内存充足的情况下,系统的性能通常会更好,因为大部分数据都可以直接存储在物理内存中,减少了硬盘的访问次数.

所以,虚拟存储并不是在原有物理内存不变的情况下存储更多信息,而是通过利用硬盘空间作为补充,来扩展可用的存储空间。它是一种权衡空间和速度的策略,使得电脑能够在有限的物理内存下运行更大的程序和处理更多的数据,但同时也需要付出一定的性能代价.


虚拟存储的基本概念

虚拟存储是一种计算机技术,它允许操作系统管理比物理内存更大的地址空间。这个地址空间被称为“虚拟地址空间”,它与物理内存的“物理地址空间”是分开的。

虚拟地址空间与物理地址空间

  • 虚拟地址空间:每个程序在运行时都有自己的虚拟地址空间。这个空间是连续的,并且对程序来说是独立的。程序在编写时不需要关心实际的物理内存布局,它只需要在虚拟地址空间中进行操作.

  • 物理地址空间:物理内存是实际存在的硬件资源,其容量是固定的。物理地址空间是物理内存的直接映射,操作系统需要将虚拟地址转换为物理地址,以便在物理内存中存储和访问数据.

分页机制

为了实现虚拟存储,操作系统使用了“分页”机制:

  • 页面:虚拟地址空间和物理地址空间都被划分为固定大小的单元,称为“页面”和“页框”。通常,页面的大小是4KB或更大.

  • 页表:操作系统维护一个“页表”,用于记录虚拟页面和物理页框之间的映射关系。页表告诉操作系统哪个虚拟页面对应于哪个物理页框.

页面置换算法

当物理内存不足时,操作系统会使用页面置换算法来决定哪些页面应该被移出物理内存:

  • 最近最少使用(LRU)算法:选择最近最少使用的页面移出物理内存.
  • 先进先出(FIFO)算法:选择最早进入物理内存的页面移出.
  • 其他算法:如时钟算法、最坏适应算法等,各有优缺点.

虚拟内存的使用过程

  1. 程序请求数据:当程序需要访问某个数据时,它会通过虚拟地址来请求.
  2. 地址转换:操作系统查找页表,确定该虚拟地址对应的物理地址.
  3. 数据访问:如果数据已经在物理内存中,直接访问;如果不在物理内存中(称为“缺页”),则从虚拟内存(硬盘上的交换空间)中加载数据到物理内存中.
  4. 页面置换:如果物理内存已满,操作系统会根据页面置换算法选择一个页面移出到虚拟内存中,为新数据腾出空间.

性能影响

  • 优点:虚拟存储扩展了可用的存储空间,使得程序可以运行更大的数据集和更复杂的任务.
  • 缺点:当频繁发生缺页时,系统需要不断地在物理内存和虚拟内存之间交换数据,这会导致性能下降,因为硬盘的访问速度远慢于物理内存.

通过这种方式,虚拟存储在物理内存不变的情况下,通过利用硬盘空间作为补充,扩展了可用的存储空间,使得计算机能够运行更大的程序和处理更多的数据.

标签:SoC,计算机,页面,虚拟存储,虚拟地址,内存,体系结构,操作系统,物理
From: https://www.cnblogs.com/jzzg/p/18657834

相关文章

  • 《计算机体系结构与SoC设计》(二)
    1.多指令流单数据流多指令流单数据流(MultipleInstructionStream,SingleDataStream,简称MISD)是一种处理器设计概念,它允许处理器在单个时钟周期内从不同的程序流中发射多条指令。这种设计旨在提高处理器的指令级并行性(Instruction-LevelParallelism,ILP),从而提升性能。下面......
  • 【计算机毕业设计】541x0an2+springboot基于小程序的民宿预订系统
    springboot基于小程序的民宿预订系统摘要随着网络科技的不断发展以及人们经济水平的逐步提高,网络技术如今已成为人们生活中不可缺少的一部分,而微信小程序是通过计算机技术,针对用户需求开发与设计,该技术尤其在各行业领域发挥了巨大的作用,有效地促进了微信小程序的民宿预订系统......
  • 【计算机毕业设计】j8s0l2f4+springboot基于 Hadoop 平台的岗位推荐系统
    springboot基于Hadoop平台的岗位推荐系统摘要随着网络科学技术不断的发展和普及化,用户在寻找适合自己的信息管理系统时面临着越来越大的挑战。因此,本文介绍了一套平台的岗位推荐系统,在技术实现方面,本系统采用JAVA、VUE、TOMCAT、HADOOP以及MySQL数据库编程,使用Springboot......
  • 在计算机安全和网络攻击的语境中,“有效载荷”(Payload)指的是攻击者在攻击过程中传输到
    有效载荷(Payload)是什么?在计算机安全和网络攻击的语境中,“有效载荷”(Payload)指的是攻击者在攻击过程中传输到目标系统上的恶意代码或指令。它是攻击的核心部分,通常在恶意软件、病毒、木马、网络攻击等场景中发挥作用。有效载荷的具体内容和功能取决于攻击者的目标,可能包括:远程执......
  • [计算机方向毕业设计]最新最全计算机专业毕业设计选题推荐精选汇总
    以下整理了部分全栈方向的计算机专业的毕业设计选题:(更多选题可以私信博主)①javaweb信息管理系统或web应用选题(应用开发类)该类课题属于基于具体场景来实现具体功能的应用开发类项目。相关技术栈如下:1.前端:如html/css/js等前端语言构建web页面,也可以通过如vue等相关技......
  • 第四届智能系统、通信与计算机网络国际学术会议(ISCCN 2025)
    第四届智能系统、通信与计算机网络国际学术会议(ISCCN2025)将于2025年2月21-23日在中国南宁隆重召开。会议旨在将“智能系统”“通信”和“计算机网络”等学术领域的学者、专家、研发者、技术人员聚集到一个学术交流的平台,并且提供一个共享科研成果、前沿技术,了解学术发展趋势,拓......
  • 计算机毕设项目分享:21g8a524+springboot基于java的商户点评管理与数据分析系统(毕设源
    基于java的商户点评管理与数据分析系统摘 要商户点评管理与数据分析系统是一个以店铺点评为核心的平台。用户可以通过该网站对商户的评价。同时,用户也可以浏览和发现店铺信息等。本文讲述了基于java语言开发,后台数据库选择MySQL进行数据的存储。该软件的主要功能是进行......
  • 计算机毕设项目py67qik4+springboot办公楼物业管理系统,计算机毕业生可参考,免费资源下
    springboot办公楼物业管理系统摘 要在高速发展的时代,系统管理已成为社会现代化发展中有着重要的作用。随着办公楼物业管理系统的不断增加,传统的人工管理易出错,且双方缺少信息关联和沟通。因此,建立一个依托互联网的办公楼物业管理系统来建立一个交流和沟通的渠道势在必......
  • 计算机毕设项目ssnel0ot+springboot基于Java的养老院管理系统,计算机毕业生可参考,免费
    springboot基于Java的养老院管理系统摘 要随着社会的发展和人口老龄化的加剧,养老院作为解决老年人居住和生活问题的重要场所,其管理工作日益显得尤为重要。为了提高养老院的管理效率和服务质量,许多养老院开始引入现代化的管理手段,其中养老院管理系统作为一种有效的解决方案,......
  • Elixir语言的计算机基础
    Elixir语言的计算机基础引言在当今这个快速发展的技术时代,编程语言层出不穷。Elixir作为一种较新的编程语言,以其高并发、低延迟和强大的容错能力受到越来越多开发者的青睐。它基于Erlang虚拟机(BEAM),自然继承了Erlang在电信领域的高可用性和并发模型。本文将深入探讨Elixir......