聊聊C语言-存储世界的奥秘

(编辑:jimmy 日期: 2024/12/23 浏览:2)

聊聊C语言-存储世界的奥秘

我们开始讲讲与数据类型有这着千丝万缕联系的变量。

所有语言的变量都是存储在计算机存储系统中,C语言的变量当然也不例外。所以我们先从计算机的存储系统讲起,来揭秘这个存储世界的奥秘。

1.什么是计算机的存储系统?

计算机存储系统就好比是人类的大脑,大脑记忆了人们生活中的信息,计算机存储系统则存储了计算机程序的全部信息。当我们在计算机中输入数据时计算机程序就会操作存储系统将这些信息以各种形式进行存储处理。只不过有些信息关机以后仍然存在,有些则随之消失,有些信息处理的很慢,有些则处理的很快。

2.计算机存储系统有哪些部分组成?

既然称之为系统那么它就是一个比较复杂的机制,计算机的存储系统是分层次进行存储的,就像人类的社会分三六九等一样,所以小编有时在闲时也感慨人类的等级制度是多么的根深蒂固竟然影响着我们生活的方方面面。它的存储层次就像人类的等级金字塔。

聊聊C语言-存储世界的奥秘

上图就是存储系统的金字塔。它分为两个部分:

临时存储区域:由寄存器、缓存(cache)、内存组成,存储在这部分的信息关机就会消失,就像我们这些平民百姓百年以后就会当然无存一样。

永久性存储区域:由ROM、可移动存储器(移动硬盘)、网络存储(云存储)、硬盘存储器(硬盘),存储在这些地方的数据则会保留相当长的时间。也就是那些可以流芳百世或者遗臭万年的人可以享受的待遇。哈哈。。

3.为什么这么来划分层次?

想想也会明白,一个国家的领导只能有一个,而接触它的人也就寥寥无几,而等级越低的人则人数越多可以接触到的人也就越多。计算机存储系统也一样。CPU作为计算机的核心由于它处理速度很快,所以来设计存储系统时就采用了分层的方法。

聊聊C语言-存储世界的奥秘

1)、CPU——Cache 存储层次:由于主存储器的读写速度低于CPU的速度,而CPU每执行一条指令都要访问内存储器,所以CPU总是处于等待状态,严重降低了系统的效率。引入Cache后,在Cache内保存着主存储器内容的部分副本,CPU在读写数据时首先访问Cache。由于Cache的速度与CPU相同,因此CPU就能在零等待状态下迅速地完成数据的读写。

2)、Cache——内存储器存储层次:当Cache中不含有CPU所需的数据时,CPU才去访问内存储器。此时用一个存储器读取周期的时间从内存中读出这个数据后送到CPU,并且,把含有这个数据的整个数据块从内存送到Cache中。

3)、内存储器——外存储器存储层次:当一个程序需要执行时,计算机必须将其程序通过一定的调度算法从外存调入内存。Cache- >内存储器- >外存储器:其容量越来越大,但读写速度越来越低。

4.什么是寄存器?

聊聊C语言-存储世界的奥秘

简单说它就是CPU的小秘,CPU直接访问的就是它。它也叫触发器,它往往和CPU同时钟频率,所以速度非常快。

5.什么是缓存(cache)?

聊聊C语言-存储世界的奥秘

CPU的二级直属单位,由小秘直接访问。目前我们CPU中一般集成了2到3级的Cache,容量从128K到4M。对于CPU总的Cache来说,它们的也是和CPU同频率的,所以理论上执行速度和寄存器应该是相同的,但是Cache往往用来存储一些指令和数据,这样就存在一个命中的问题。当没有命中的时候,需要向下一集的存储器获取新的数据,这时Cache会被lock,所以导致实际的执行速度要比寄存器慢。

6.什么是内存?

聊聊C语言-存储世界的奥秘

它就出了CPU的紫禁城了,作为CPU的外亲为CPU服务。我们目前听的内存一般叫DDR SDRAM,还有早期的SDRAM。而DDR表示双倍的速率,而现在又有了DDR2,DDR3,DDR4,他们的带宽也是越来越大。

7.什么是硬盘?

聊聊C语言-存储世界的奥秘

它是CPU的远房亲戚。目前硬盘主流已经是500G,1T。转速也在7200转左右。相对于8G的内存,一个500G的硬盘可以说是相当的便宜。但是问题在于他的速度非常的慢,从磁盘读取数据需要几个毫秒,而CPU时钟周期是以纳秒计算。磁盘存储是一种机械结构。数据都通过电磁流来改变极性的方式被电磁流写到磁盘上,而通过相反的方式读回。一个硬盘由多个盘片组成,每个盘片被划分为磁道,扇区和最小的单位簇。而每个盘面都有一个磁头用来读取和写入数据。而硬盘的马达装置则控制了磁头的运动。