首页 > 系统相关 >内存和磁盘的亲密关系

内存和磁盘的亲密关系

时间:2024-02-19 22:11:25浏览次数:21  
标签:缓存 程序 扇区 内存 亲密关系 磁盘 虚拟内存

      从都具有存储程序命令和数据这点来看,内存和磁盘的功能是相同的,而且两者都被归类为存储部件,但从存储容量来看,内存是高速高价,而磁盘是低速廉价,他们在计算机系统中是协同作业的。在本章中,内存是主内存(就是前文提到的负责存储CPU中运行的程序指令和数据的内存),磁盘指硬盘。
因为在存储程序方式被提出来之前程序都是通过改变计算机的布线等来变更程序的,因此对于这一方式的提出可谓是一个里程碑。我们知道计算机中主要的存储部件是内存和磁盘,但两者又有什么关系呢? 它们两者有着密不可分的关系,因为存储在磁盘中的程序,需要读入到内存后才能运行。这是因为负责解析和运行程序内容的CPU,需要通过内部程序计算器来指定内存地址,然后才能读出程序。若CPU直接读取并运行磁盘中保存的程序,由于磁盘读取速度慢,程序的运行速度会降低。
      若我们想深入了解内存和磁盘之间的关系,能够体现的一个示例,就是磁盘缓存。那么什么为磁盘缓存呢?磁盘缓存指的是把从磁盘中读取的数据存储到内存空间中的方式,这样一来,在读取数据时就可以大大提高磁盘数据的访问速度。下图是利用磁盘缓存读取数据的过程:

对于Windows操作系统来说因如今磁盘速度大幅,改善磁盘缓存的效果也没有之前那么明显了。另外值得一提的是把低速设备的数据保存在高速设备中需要时可直接将其,从高速设备中提取出来的这种缓存的方式也会经常用到,例如Web浏览器的使用。
      接下来就是第二个示例——虚拟内存,它是指只把磁盘的部分作为假想的内存来使用。由此也可得出虚拟内存与磁盘缓存两者是相对的。若我们为了实现虚拟内存就必须把实际内存的内容和磁盘上的虚拟内存内容进行部分置换,并同时运行程序。那么应如何操作呢?下面我们就以Windows操作系统为例来说明。首先我们要知道虚拟内存的方法有分叶式和分段是两种,而Windows采用的是分页式,而该方式就是在不考虑程序构造的情况下,把运行的程序,按照一定大小的叶进行分割,并以叶为单位在内存和磁盘间进行置换。在分式中,我们把磁盘的内容读出到内存称为Page In ,把内存的内容写入磁盘称为Page Out 。对于Windows操作系统为实现虚拟内存的功能,他在磁盘上提供了虚拟内存用的文件(页文件)而页文件的大小也就是虚拟内存的大小。
虽然虚拟内存可以避免Windows操作系统因内存不足导致的应用无法启动,但是由于虚拟内存时发生的Page In 和Page Out 往往伴随着低速的磁盘访问,在这个过程中运行会变得迟钝起来。这说明虚拟内存无法彻底解决内存不足的问题。因此,想要从根本上解决内存不足的问题,可以用增加内存的容量和尽量把运行的应用文件变小(也就是节约内存)这两种方法。但增加内存的容量花销可能较大,因此我们主要在这里说明怎样把应用文件变小这种方法。而把应用文件变小也有两种方法:
1、通过Dll文件实现函数共有。因为多个应用可供有同一个DLL文件,所以可以达到节约内存的效果,同时DLL文件还可以在不变更EXE文件的情况下只升级DLL文件就可以更新。
2、 通过调用_stdcall来减小程序文件的大小。因为C语言中在调用函数后需要执行栈清理处理指令,就是把不需要的说数据,从接收和传递函数的参数时使用的内存上的栈区域中清除出去。若用普通的函数调用会造成栈多次处理同样的内容,造成内存的浪费。若用_stdcall函数调用函数站清理处理只需在最后一步进行即可,这样就能节约三个字节的程序大小。如图所示:

      前文我们了解了内存的物理结构那么磁盘的物理结构是什么呢?其实就是指磁盘存储数据的形式。而磁盘的使用是通过把其物理表面划分成多个空间。划分的方式有单驱方式和可变长方式两种。扇区方式是指将磁盘划分为固定长度的空间,可变长方式是指把磁盘划分为长度可变的空间。Windows计算机所用的硬、软盘采用的都是扇区方式。扇区方式中把磁盘分成若干个同心圆的空间,就是磁道磁道,按照固定大小划分成的空间就是扇区。如图所示:

在这里单趋势对磁盘进行物理读写的最小单位,1簇=1扇区=512字节。另外以簇为单位进行读写时,1簇中没有填满的区域会保持不被使用的状态,并且扇区和簇的大小是由处理速度和存储容量的平衡来决定的。

标签:缓存,程序,扇区,内存,亲密关系,磁盘,虚拟内存
From: https://www.cnblogs.com/G-y-l-123/p/18022065

相关文章

  • dismount ASM磁盘组,影响未使用的其它ASM磁盘组
    问题概述登录数据库,查看活动会话,发现大量librarycachelock,logfileswitch(archivingneeded),归档失败,redolog无法重用。问题原因备份一体机每次备份后会DISMOUNTBAKDG,这个动作为导致数据库实例将"卸载"未使用的ASM磁盘组,ARCHDG在这种机制下被DISMOUNT,当数据库需......
  • 《程序是怎样跑起来的》——第5章 内存和磁盘的亲密关系
    内存与磁盘一、内存与磁盘的关系:1、关系:从都具有存储程序命令和数据这点来看,内存和磁盘的功能是相同的。在计算机的5大部件”中,内存和磁盘也都被归类为存储部件。不过,利用电流来实现存储的内存,同利用磁效应来实现存储的磁盘,还是有差异的。而从存储容量来看,内存是高速高价,而磁盘......
  • 《程序是怎样跑起来的》——第4章 熟练使用有棱有角的内存
    一、内存的物理机制1、内存的作用:计算机是进行数据处理的设备,而程序表示的就是处理顺序和数据结构。由于处理对象数据是存储在内存和磁盘上的,因此程序必须能自由地使用内存和磁盘。2、内存的概念:内存实际上是一种名为内存IC的电子元件。3、内存的形式:包括DRAM、SRAM、ROM等多种......
  • iPhone 16全系配置抢先曝光:首发史上最强A18/A18 Pro、标配8GB内存
    iPhone16后摄像头模组重回垂直排列的消息得到了证实。MR抢先曝光了iPhone16系列四款机型的核心配置,一起来看看。今年,iPhone16、16Plus和16Pro、16ProMax将分别升级A18、A18Pro芯片,采用台积电“N3E”增强型3nm工艺。A18系列芯片的一大变化是将采用“升级版神经引擎”,并大......
  • 对于计算机磁盘的认识(《程序是怎样跑起来的第5章》)
    在第五章中,我认识到了磁盘和内存的关系。在先前我一直认为数据是被存储到内存上的,但是通过阅读,计算机中的数据实际是被存储到磁盘上的,而内存是将磁盘上的数据调入,以供CPU来处理。因为磁盘传输数据十分缓慢,所以即使CPU可以直接读取磁盘的数据,也会采用磁盘到内存到CPU如此路径来提高......
  • 内存和磁盘的密切联系
    现在的计算机基本上采用的是存储程序方法。从存储程序指令和数据的、角度来看,可以说内存和磁盘的功能是一样的。在计算机系统中,速度快、容量小的内存和速度慢、容量大的磁盘取长补短。内存指主存,磁盘主要指硬盘。存储在磁盘中的程序需要先加载到内存中才能运行,不能直接在磁盘上运......
  • Vulkan内存与资源管理
    在OpenGL中,当我们创建resource的时候,内存会被自动分配。不同于OpenGL,vulkan是更加底层的API,需要显式的内存管理。显式的内存管理可以在资源复用与特定平台的优化方面带来好处。1.Vulkan内存分类Vulkan内存分为2类:Hostmemory和Devicememory。Devicememory:指显存(GPU可直接......
  • 《程序是怎样跑起来的》第五章:内存与磁盘的亲密关系
    当我们谈论计算机的存储系统时,我们经常提及内存和磁盘。对于许多初学者,这两者似乎都是用于存储数据的,但它们之间存在巨大的差异。在第五章中,作者详细解释了这两者之间的区别和联系,帮助我们更深入地理解它们的角色和功能。内存,也被称为RAM(随机存取存储器)是计算机中用于临时存储数......
  • 第5章内存和磁盘的亲密关系
    内存利用电流实现:高速高价,磁盘利用磁效实现:低速低价磁盘中存储的程序:必须加载到内存中才能运行,因为负责解释和运行程序内容的CPU需要通过内部程序计数器来指定内存地址,然后才能读出程序,其次,磁盘的速度慢即使可以直接读取,效率也比较低下内存与磁盘相互促进:磁盘缓存:加快磁盘访问速......
  • 内存
    内存实际上是一种名为IC的电子元件。数据信号引脚有D0~D7八个,表示一次可以输出8位(1字节)的数据;地址信号引脚由A0~A9十个,表示可以指定0000000000·~1111111111共1024个地址。即这个内存IC可以储存1024个1字节的数据1024=1K,所以该内存IC容量为1KB。1MB=1000KB通常情况下......