购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 计算机系统的基本功能和基本组成

计算机是一种能自动对数字化信息进行算术和逻辑运算的高速处理装置。也就是说,计算机处理的对象是数字化信息,处理的手段是算术和逻辑运算,处理的方式是自动的,因此,计算机与算盘以及各类机械式计算机器有着本质的区别。

我们通常所说的计算机系统,除了包含看得见的计算机硬件以外,还包含运行在计算机硬件上的软件。

1.1.1 计算机系统的基本功能

计算机系统不仅具有数据处理功能,还具有数据存储、数据传送等功能。

数据处理(Data Process)是计算机系统最基本的功能。计算机不仅可以进行加、减、乘、除等基本算术运算,也可以进行与、或、非等逻辑运算;计算机处理的数据不仅可以是日常生活中使用的十进制数据,也可以是文字、图形、图像、声音、视频等非数值化的各种多媒体信息。

数据存储(Data Storage)功能是计算机能采用自动工作方式的基本保证。计算机中的存储器使得程序和数据能事先被存储,并在需要时被取出。计算机中有各类存储部件:大量的文件信息需要被长期存储在计算机系统中,因此有像磁盘存储器那样能够长期保存信息的非易失性存储器;正在执行的程序和处理的数据需要存放在快速存储器中,因此有由半导体元器件构成的随机访问存储器等。

数据传送(Data Transfer)功能是指计算机内部的各个功能部件之间、计算机主机与外部设备之间、各个计算机系统之间进行信息交换的操作功能。例如,进行数据处理的部件需要从存储部件中读取数据或写入数据,需要将输入设备的数据送到存储部件进行保存或送到数据处理部件进行计算,需要将一台计算机产生的数据送到另一台计算机。因此,计算机系统中不可避免地需要进行数据传送。

数据处理、数据存储和数据传送的功能最终是通过执行指令来完成的,而计算机指令的执行过程由控制器产生的控制信号来控制。

对照上述基本功能,计算机中需要有对数据进行处理、存储和传送的基本功能部件以及控制这些功能部件操作的控制部件。通常把进行数据处理的部件称为运算部件或运算器,主要的运算部件是算术逻辑部件(Arithmetic Logical Unit,ALU);把进行数据存储的部件称为主存储器或存储器,主要分外存(Storage)和内存(Memory);把进行数据传送的部件称为互连设备,主要有总线(Bus)、桥接器等。

计算机系统具有高速、通用、准确和智能等特性。计算机的主要核心部件由高速电子元器件制造,这为计算机快速处理数据提供了基本保证。通用性体现在两个方面:一是它所处理的信息呈多样化,可以是各种数值数据和非数值数据;二是计算机应用极其广泛,只要现实世界中某个问题能找到相应的算法并在有限步骤内完成,就能把该问题编制成程序并通过计算机执行来加以解决。此外,计算机系统强大的计算和自动逻辑推理能力为其准确性和智能化提供了重要基础。

计算机系统所完成的所有任务都通过执行程序包含的指令来实现。计算机系统由硬件和软件两部分组成。硬件(Hardware)是物理装置的总称,各种芯片、板卡、外设、电缆等都是计算机硬件。软件(Software)包括运行在硬件上的程序和数据以及相关的文档。程序(Program)是指挥计算机如何操作的一个指令序列,数据(Data)是指令操作的对象。

1.1.2 计算机硬件

从20世纪40年代计算机诞生以来,尽管硬件技术经历了四个发展阶段,计算机体系结构也取得了很大的发展,但绝大部分计算机的硬件基本组成仍然具有冯·诺依曼结构计算机的特征。冯·诺依曼结构计算机的基本思想主要包括以下几个方面。

· 采用“存储程序”工作方式。

· 计算机由运算器、控制器、存储器、输入设备和输出设备五个基本部件组成。

· 存储器不仅能存放数据,也能存放指令,数据和指令在形式上没有区别,但计算机应能区分它们;控制器能自动执行指令;运算器能进行加、减、乘、除4种基本算术运算,并且也能进行逻辑运算;操作人员可以通过输入/输出设备使用计算机。

· 计算机内部以二进制形式表示指令和数据;每条指令由操作码和地址码两部分组成,操作码指出操作类型,地址码指出操作数的地址;由一串指令组成程序。

计算机硬件主要包括中央处理器、存储器、外部设备和各类总线等。

中央处理器(Central Processing Unit,CPU)有时简称为处理器,是整个计算机的核心部件,主要用于指令的执行。CPU主要包含两个基本部分:数据通路和控制器。数据通路(Data Path)主要用来执行算术和逻辑运算,以及寄存器和存储器的读/写控制等,其中,算术逻辑部件用来进行基本的算术和逻辑运算,ALU中最基本的部件是加法器,所有算术运算都可以基于加法运算和逻辑运算来实现。控制器(Controller)用来对指令进行译码,生成相应的控制信号,以控制数据通路进行正确的操作。

存储器分为内存和外存。内存包括主存储器(Main Memory,简称主存)和高速缓冲存储器(Cache)。因为早期计算机中没有Cache,所以一般情况下并不区分内存和主存,两者含义相同,都是特指主存储器。外存包括辅助存储器和海量后备存储器。通常把系统运行时直接与主存交换信息的存储器称为辅助存储器,简称辅存,目前主要的辅助存储器是磁盘存储器和固态硬盘;而磁带存储器和光盘存储器的容量大、速度慢,主要用于信息的备份和脱机存档,因此它们被用作海量后备存储器。

外部设备简称为外设,也称为I/O设备,其中,I/O是输入输出(Input/Output)的缩写。外设通常由机械部分和电子部分组成,并且两部分通常是可以分开的。机械部分是外部设备本身,而电子部分则是控制外部设备工作的I/O控制器或I/O适配器。外设通过I/O控制器或I/O适配器连接到主机上,I/O控制器或I/O适配器统称为设备控制器。例如,键盘接口、打印机适配器、显示控制卡(简称显卡)、网络控制卡(简称网卡)等都是设备控制器,属于I/O模块。

总线(Bus)是传输信息的介质,用于在部件之间传输信息,CPU、主存和I/O模块通过总线互连,在CPU和I/O模块中都包含相应的存储部件,即缓存器。

图1-1是一个典型计算机系统的硬件组成示意图。从图1-1可以看出,CPU中包含控制器、算术逻辑部件(ALU)、寄存器堆(Register File,也称通用寄存器组或寄存器文件)、总线接口部件等,CPU、主存储器和I/O模块之间通过总线交换信息,例如,处理器总线用来传输与CPU交换的信息,存储器总线用来传输与主存储器交换的信息,I/O总线用来传输与设备控制器交换的信息,不同总线之间通过I/O桥接器(I/O Bridge)相连。CPU通过处理器总线、I/O桥接器等与主存储器和I/O模块交换信息;主存储器通过存储器总线、I/O桥接器与CPU和I/O模块交换信息;I/O设备通过各自的设备控制器或适配器连到I/O总线上,例如,可以把鼠标和键盘连接到USB控制器的插口上,将显示器连接到显示适配器的插口上。在一个I/O总线上也可以设置多个I/O扩展槽,以连接更多的外设。

图1-1 一个典型计算机系统的硬件组成

1.1.3 计算机软件

计算机的工作由存储在其内部的程序控制,这是冯·诺依曼结构计算机“存储程序”工作方式的重要特征,因此程序或者软件质量的好坏将大大影响计算机性能。

软件的发展受计算机硬件和计算机应用的推动和制约,其发展过程大致分三个阶段。

从第一台计算机上的第一个机器代码程序出现到实用的高级语言出现为第一阶段(1946—1956年)。这一时期的计算机应用以科学计算为主,计算量较大,但输入/输出量不大;机器以CPU为中心,存储器较小;直接采用机器语言编程,因而程序设计与编写工作复杂、烦琐、易出错。这时尚未出现“软件”一词。

从实用的高级语言出现到软件工程概念出现之前的这段时间为第二阶段(1956—1968年)。这一时期除了科学计算外,还出现了大量数据处理问题,计算量不大,但输入/输出量较大。机器结构转向以存储器为中心,出现了大容量存储器,输入/输出设备增多,“软件”概念也开始出现。为了充分利用处理器、存储器和输入/输出等计算机资源,出现了操作系统;为了提高编程工作效率,出现了高级语言;为了满足大量的数据处理需求,出现了数据库及其管理系统。随着软件规模和复杂性的不断提高,软件开发过程中的问题越来越多,甚至出现了人们难以控制的局面,即所谓软件危机。为了克服这种危机,人们研究和采用了很多技术方法,这就催生了“软件工程”的概念和方法。

“软件工程”概念和方法出现后至今为第三阶段。对于一些复杂的大型软件,采用基于个人和简单团队分工的传统开发方式进行开发不仅效率低、可靠性差,而且很难完成,必须采用工程方法才能实现。为此,从20世纪60年代末开始,软件工程技术得到了迅速发展,出现了“计算机辅助软件设计”“软件自动化”等技术方法和实验系统。目前,人们除了研究和改进软件开发技术外,还着重研究具有智能化、自动化、集成化、并行化以及自然化特征的软件新技术。

根据软件的用途,一般将软件分成系统软件和应用软件两大类。

· 系统软件(System Software)包括为有效、安全地使用和管理计算机以及为开发和运行应用软件而提供的各种软件,介于计算机硬件与应用程序之间,它与具体应用关系不大。系统软件包括操作系统(如Windows、UNIX、Linux)、语言处理系统(如Visual Studio、GCC)、数据库管理系统(如Oracle)和各类实用程序(如磁盘碎片整理程序、备份程序)。操作系统(Operating System,OS)主要用来管理整个计算机系统的资源,包括对它们进行调度、管理、监视和服务等,操作系统还提供计算机用户和硬件之间的人机交互界面,并提供对应用软件的支持。语言处理系统主要用于提供一个用高级语言进行编程的环境,包括源程序的编辑、翻译、调试、链接、运行等功能。

· 应用软件(Application Software)是指专门为数据处理、科学计算、事务管理、多媒体处理、工程设计以及过程控制等应用所编写的各类程序。例如,人们平时经常使用的电子邮件收发软件、多媒体播放软件、游戏软件、炒股软件、文字处理软件、电子表格软件、演示文稿制作软件等都是应用软件。 ejVzByvQ8korJluyC1sWSg2V+NQDF0/WvrgPxjymG4KbONZfWYoCvUGdDB3IAkvd

点击中间区域
呼出菜单
上一章
目录
下一章
×