计算机系统
文章平均质量分 76
yang_jianfeng
这个作者很懒,什么都没留下…
展开
-
计算机系统(五)优化程序性能
写程序最主要的目标就是使它在所有可能的情况下都正确工作。一个运行得很快但是给出错误结果的程序没有任何用处。程序员必须写出清晰简洁的代码,这样做不仅仅是为了程序员能够看懂代码,也是为了在检查代码和今后需要修改代码时,其他人能够读懂和理解代码。 另一方面,在很多情况下,让程序运行得快也是一个重要的考虑因素。如果一个程序要实时地处理视频帧或者网络包,一个运行得很慢的程序就不能提供所需的功能。当一个计算任务的计算量非常大,需要执行数日或者数周,那么哪怕只让它运行得快20%也会产生重大的影响。 编写高效程序需要几类活原创 2021-09-30 16:47:34 · 422 阅读 · 0 评论 -
计算机系统(四)处理器体系结构
现代微处理器可以称得上是人类创造的最复杂的系统之一。一块手指甲大小的硅片上,可以容纳一个完整的高性能处理器、大的高速缓存,以及用来连接到外部设备的逻辑电路。 到目前为止,我们看到的计算机系统只限于机器语言程序级。我们知道处理器必须执行一系列指令,每条指令执行某个简单操作,例如两个数相加。指令被编码为由一个或多个字节序列组成的二进制格式。一个处理器支持的指令和指令的字节级编码称为它的指令集体系结构(Instruction-Set Architecture,ISA)。一个程序编译成在一种机器上运行,就不能在另一原创 2021-09-27 17:48:28 · 316 阅读 · 0 评论 -
计算机系统(三)程序的机器级表示
计算机执行机器代码,用字节序列编码低级的操作,包括处理数据、管理存储器、读写存储设备上的数据,以及利用网络通信。编译器基于编程语言的原则、目标机器的指令集和操作系统遵循的原则,经过一系列的阶段产生机器代码。GCC C语言编译器以汇编代码的形式产生输出,汇编代码是机器代码的文本表示,给出程序中的每一条指令。然后GCC调用汇编器和链接器,从而根据汇编代码生成可执行的机器代码。 当我们用高级语言编程的时候,机器屏蔽了程序的细节,即机器级的实现。与此相反,当用汇编代码编程的时候,程序员必须指定程序的低级指令以执行计原创 2021-09-26 17:38:59 · 494 阅读 · 0 评论 -
计算机系统(二)信息的表示和处理
现代计算机存储和处理的信息以二值信号表示。这些微不足道的二进制数字,或称为位(bit),奠定了数字革命的基础。对于有10个手指的人类来说,使用十进制表示法是很自然的事情,但是当构造存储和处理信息的机器时,二进制的值工作得更好。二值信号能够很容易地表示、存储和传输,例如,可以表示为穿孔卡片上有洞或无洞、导线上的高电压或低电压,或者顺时针或逆时针的磁场。对二值信号进行存储和执行计算的电子电路非常简单和可靠,制造商能够在一个单独的硅片上集成数百万甚至数十亿个这样的电路。 单个的位不是非常有用。然而,当把位组合在一原创 2021-09-24 17:32:59 · 216 阅读 · 0 评论 -
计算机系统(一)计算机系统漫游
计算机系统是由硬件和系统软件组成的,他们共同工作来运行应用程序。虽然系统的具体实现方式随着时间不断变化,但在系统内在的概念却没有改变。所有计算机系统都有相似的硬件和软件组件,他们执行着相似的功能。一些程序员希望深入了解这些组件是如何工作的,以及这些组件是如何影响程序的正确性和性能的,以此来提高自身的技能。 一、信息就是位+上下文 hello程序的生命周期是从一个源程序(或者源文件)开始的,即程序员利用编辑器创建并保存的文本文件,文件名是hello.c。源程序实际上就是一个由值0和1组成的位(bit)序列,8原创 2021-09-22 18:47:05 · 156 阅读 · 0 评论