《C语言开发从入门到精通》一1.4 揭开存储器的层次

1.4 揭开存储器的层次

知识点讲解:光盘:视频\PPT讲解(知识点)\第1章\揭开存储器的层次.mp4

当C语言被编译后,编译的中间语言会在CPU中进行处理。按照与CPU的接近程度,存储器分为内存储器与外存储器,简称内存与外存。内存储器又常称为主存储器(简称主存),属于主机的组成部分;外存储器又称为辅助存储器(简称辅存),属于外部设备。访问CPU不能像访问内存那样直接访问外存,外存要与CPU或I/O设备进行数据传输,必须通过内存进行。现在的PC中还配置了高速缓冲存储器(chache),这时内存包括主存与高速缓存两部分。

为了兼顾存储容量和存储速度,当前计算机几乎毫无例外地采用了图1-3所示的层次式存储结构。

80%

图1-3 存储器层次结构

在图1-3中,以处理器为中心,计算机系统的存储依次为寄存器、高速缓存、主存储器、磁盘缓存、磁盘和可移动存储介质等7个层次。距离处理器越近的存储工作速度越高,容量越小。其中,寄存器、高速缓存、主存储器为操作系统存储管理的管辖范围,磁盘和可移动存储介质属于操作系统设备管理的管辖范围。

凡是属于操作系统存储管理范围的存储装置,其共同特点是在系统掉电之后,它们所存储的信息会丢失殆尽,属于可挥发性存储装置。而属于操作系统管理范围的存储装置,则可以永久保存存储的信息,属于非挥发性存储装置。

磁盘缓存本身并不是一种实际存在的存储介质,它依托于固定磁盘,主要用来提供对主存储器的扩充。

寄存器在物理上与处理器的运算控制部分同在一个芯片上,它们与运算部分的距离最近,访问速度也最高,但其容量也因此不会太大。所以,它们主要被用来暂存一些中间数据或控制用的特殊数据,而不能存放像程序之类的大批数据。

主存储器用来存放程序和程序运行所需的数据。一个计算机系统必须有足够大的主存储器,其容量是衡量一个计算机系统性能的指标之一。由于主存储器的访问速度远低于寄存器,所以,为了加快访问速度,计算机系统常常在主存储器和寄存器之间配置高速缓存,以存放处理器当前常用的程序模块和数据。

之所以把存储器分为几个层次,主要是基于如下三点原因。

(1)合理解决速度与成本的矛盾,以得到较高的性能价格比。半导体存储器速度快,但价格高,容量不宜做得很大,因此,仅用作与CPU频繁交流信息的内存储器。磁盘存储器价格较便宜,可以把容量做得很大,但存取速度较慢,因此,用作存取次数较少,且需存放大量程序、原始数据(许多程序和数据是暂时不参加运算的)和运行结果的外存储器。计算机在执行某项任务时,仅将与此有关的程序和原始数据从磁盘上调入容量较小的内存,通过CPU与内存进行高速的数据处理,然后将最终结果通过内存再写入磁盘。这样的配置价格适中,综合存取速度较快。

(2)为解决高速的CPU与速度相对较慢的主存的矛盾,还可使用高速缓存。它采用速度快、价格更高的半导体静态存储器,甚至与微处理器做在一起,存放当前使用最频繁的指令和数据。当CPU从内存中读取指令与数据时,将同时访问高速缓存与主存。如果所需内容在高速缓存中,就能立即获取;如没有,再从主存中读取。高速缓存中的内容是根据实际情况及时更换的。这样,通过增加少量成本即可获得很高的速度。

(3)使用磁盘作为外存,不仅价格便宜,可以把存储容量做得很大,而且在断电时它所存放的信息也不丢失,可以长久保存,且复制、携带都很方便。

时间: 2024-10-29 22:37:35

《C语言开发从入门到精通》一1.4 揭开存储器的层次的相关文章

《C语言开发从入门到精通》一导读

前言 C语言开发从入门到精通 从你开始学习编程的那一刻起,就注定了以后所要走的路:从编程学习者开始,依次经历实习生.程序员.软件工程师.架构师.CTO等职位的磨砺:当你站在职位顶峰的位置蓦然回首,会发现自己的成功并不是偶然,在程序员的成长之路上会有不断修改代码.寻找并解决Bug.不停测试程序和修改项目的经历:不可否认的是,只要你在自己的开发生涯中稳扎稳打,并且善于总结和学习,最终将会得到可喜的收获. 目 录 第1章 C语言之定位1.1 C语言的诞生1.2 第一印象的建立1.3 理解编译系统--学

《C语言开发从入门到精通》一第2章 C语言开发工具详解2.1 用DOS开发C程序

第2章 C语言开发工具详解 C语言开发从入门到精通 古人云:工欲善其事,必先利其器.由第1章的内容我们了解到,C语言开发工作需要使用专门的开发工具,这样才能起到事半功倍的效果.在本章的内容中,将简要介绍常用的几种C语言开发工具,详细介绍它们的安装和使用方法,为读者步入本书后面知识的学习打下基础. 本章内容 用DOS开发C程序 在Windows环境下开发C程序 在Linux下开发C程序 技术解惑 安装Visual Studio 2010的几个常见问题 有没有轻量级的.可以复制和粘贴代码的工具 Wi

《C语言开发从入门到精通》一第1章 C语言之定位1.1 C语言的诞生

第1章 C语言之定位 C语言开发从入门到精通 C语言是当前所有开发技术中使用较为广泛的一门语言,从它诞生之日起就深受程序员们的喜爱.随着C语言的普及,使得后来的开发语言都或多或少借鉴或遵循了它的一些模式.另外,C语言是计算机编程领域中最早的高级语言之一,它的出现推动了软件行业的迅猛发展.本章将简要介绍C语言的基本知识,为读者步入后面的学习打下基础. 本章内容 C语言的辉煌诞生 第一印象的建立 理解编译系统--学习的第一步 揭开存储器的层次 技术解惑 学习C语言还有用吗 怎样学好C语言 学好C语言

《C语言开发从入门到精通》一1.5 技术解惑

1.5 技术解惑 C语言技术博大精深,能够应用于多个领域,因此,一直深受广大程序员的喜爱.作为一名初学者,肯定会在学习中遇到许多疑问和困惑.为此在本节的内容中,笔者将自己的心得体会传授给广大读者,帮助读者解决困惑. 1.5.1 学习C语言还有用吗 当今各种新技术.新思想.新名词层出不穷,令人眼花缭乱.新与旧混杂在一起,让人有目不暇接之感. 无论是初学者还是高级程序员,都在心底藏着一个问题:C语言会不会只是人们学习程序设计的基石,而没有了实际的使用价值?答案当然是否定的,笔者在此建议读者要牢记:越

《C语言开发从入门到精通》一2.3 在Linux下开发C程序

2.3 在Linux下开发C程序 知识点讲解:光盘:视频\PPT讲解(知识点)\第2章\在Linux下开发C程序.mp4 在平常工作中,我们都熟识了Windows系统,程序开发也习惯了在Windows环境下开发程序这一工作模式.但是,在特殊应用领域,例如单片机应用和嵌入式开发,就需要在Linux环境下开发C程序.Linux是一种计算机操作系统,是一套免费使用和自由传播的类UNIX操作系统,它主要用于基于Intel x86系列CPU的计算机上.这个系统是由世界各地成千上万的程序员设计和实现的.其目

《C语言开发从入门到精通》一1.3 理解编译系统——学习的第一步

1.3 理解编译系统--学习的第一步 知识点讲解:光盘:视频\PPT讲解(知识点)\第1章\理解编译系统.mp4 C语言是一门DOS环境下的开发语言,在执行前需要先将其编译,才能正确运行执行结果.要想真正理解编译系统的原理,重要的是要理解何谓"编译".编译是一个过程,通过这个过程可以把高级语言变成计算机可以识别的二进制语言.计算机只认识1和0格式的二进制数据,编译程序可以把人们熟悉的语言换成二进制的形式. 要想通过编译把一个源程序翻译成目标程序,所做的工作过程分为如下5个阶段: (1)

《C语言开发从入门到精通》一2.2 在Windows环境下开发C程序

2.2 在Windows环境下开发C程序 知识点讲解:光盘:视频\PPT讲解(知识点)\第2章\在Windows环境下开发C程序.mp4 DOS环境对广大读者来说十分陌生,并且在DOS下进行开发也十分麻烦.为此,专门推出了Windows环境下的开发工具.Win-TC其实就是一种Windows环境下的开发工具,但是其功能和Turbo C基本类似,只是在编译和运行上更加方便而已.随着计算机技术的发展,编程工具也随之更新换代.目前最受程序员喜爱的开发工具,当属微软的Visual Studio. 2.2

《C语言开发从入门到精通》一1.2 第一印象的建立

1.2 第一印象的建立 知识点讲解:光盘:视频\PPT讲解(知识点)\第1章\第一印象的建立.mp4 为了快速迈入C语言的世界,本节将通过一个实例来让大家认识C语言的特性. 实例001 通过一段简单的C语言代码来认识C语言 源码路径 光盘\daima\1\1\FIRST.c 视频路径 光盘\视频\实例\第1章\001 实例文件FIRST.c的具体代码如下所示: #include < stdio.h> //引用头文件 int m; //定义全局变量 int min(int x,int y); v

《C语言开发从入门到精通》一2.4 技术解惑

2.4 技术解惑 2.4.1 安装Visual Studio的几个常见问题 Visual Studio 2010容量巨大,在安装过程中一定要有耐心.如果以前在机器上安装过,建议用卸载工具将原来安装的资料完全卸载后再安装,这样会避免很多不必要的麻烦.在安装过程中,系统会多次重新启动,此时读者不要惊慌,计算机重启后将自动进入安装界面. 另外,因为需要安装很多组件,例如数据库和IIS等组件,所以,安装过程中总会出现这样或那样的问题.比较常见的问题是在安装Windows组件时,不能安装IIS中的Fron