遨游计算机系统世界
在现在技术飞速发展的现在,已经有了Window、Linux、Unix、Aix、Mac等等各种强大而不同的系统,每种系统所针对的功能及应用模块的方式不同。在实际的生活应用及开发软件的过程中,都是需要深入理解计算机系统本身所存在有的组成原理,了解其中所包含的线程运行模式、存储模式、运算模式等等。
完全是实际生活中的开发中,理解底层计算机系统以及对应用程序本身的深入了解,将对于开发有相当大的帮助。
对于计算机而言,单单从组成器件而言,分为两个部分:硬件、软件。通过以下简单C语言代码,我们开始“遨游”计算机系统组成原理的世界。
#include <stdio.h>
int mian(){
printf("Hello World! \n");
return 0;
}
我想通过对上面简单的C程序进行分析,来了解整个计算机系统组成原理的过程。
一、信息
先明确几个概念,其中包括有:
字节:计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。
ASCII码:基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,是目前应用于计算机底层中最为基础的编码。
二、程序编译过程中的变化
上面所编写的C程序其中的变化过程为:
*.c ----> *.i ----> *.s ----> *.o ----> *
分别进行以下几个步骤:
预处理阶段 ---> 编译阶段 ----> 汇编阶段 ----> 链接阶段 。
在上面的每个步骤中,在计算机系统的底层中,采用不同的模式对程序进行处理。
三、编译指令进程
以上的程序运行的过程中,我们通过在Unix系统环境下进行编译处理
将程序输入进shell程序中,而shell作为一个命令行解释器,它输出一个提示符号,等待输入一个命令行,然后去执行此命令行。
总的整个过程为以下,shell将加载并运行*程序,然后等待程序终止,*程序在屏幕上输出它的消息,然后终止。shell随后将输出一个提示符,并且继续等待下一个输入的命令行。
四、硬件成分
包括有:运算器、控制器、存储器、I/O设备共五大组件。
1、运算器:
运算器依照程序的指令功能,完成对数据的加工和处理。它能够提供算术运算(加、减、乘、除)和逻辑运算(与、或、非)。
2、控制器:
控制器是计算机的控制中心,按照人们事先给定的指令步骤,统一指挥各部件有条不紊地协调动作。控制器的功能,决定了计算机的自动化程度。
运算器和控制器通常做在一块半导体芯片上,称为中央处理器,或微处理器,简称CPU。右图为 Intel的Pentium4芯片。
3、存储器:
计算机的存储器分为内存储器和外存储器。
内存储器由半导体材料做成,通过电路和CPU相联接,计算机工作时,将用户需要的程序与数据装入内存,CPU到内存中读取指令与数据,在运算过程中产生的结果,CPU会将其写入内存。一量切断电源,这种可读写内存中的信息将全部丢失。
外存储器用来放置需要长期保存的数据,它解决了内存不能保存数据的缺点。微型计算机中的外存储器有软磁盘驱动器、硬磁盘驱动器、光盘驱动器。
把计算机的运算器、控制器和存储器合在一起称为计算机的主机。
4、输入设备:
计算机在与人进行会话、接受人的命令或是接收数据时,需要的设备叫做输入设备。常用的输入设备有键盘、鼠标、扫描仪、游戏杆等。
5、输出设备:
计算机在与人进行会话、接受人的命令或是接收数据时,需要的设备叫做输入设备。常用的输入设备有键盘、鼠标、扫描仪、游戏杆等。 输出设备是将计算机处理的结果以人们能够认识的方式输出的设备。常用的输出设备有显示器、音箱、打印机、绘图仪等。
五、高速缓存
高速缓冲存储器是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多, 接近于CPU的速度。在计算机存储系统的层次结构中,是介于中央处理器和主存储器之间的高速小容量存储器。它和主存储器一起构成一级的存储器。高速缓冲存储器和主存储器之间信息的调度和传送是由硬件自动进行的。
六、存储进程速度