本文参考《计算机组成原理与操作系统》王玉娟
一个完整的计算机系统由计算机硬件系统和软件系统两部分组成。如果仅有硬件系统,计算机不能做任何有意义的工作,硬件仅仅的建立了计算机的物质基础。如果要计算机硬件发挥作用,必须配置软件系统,软件使计算机硬件具有了意义。计算机系统的组成如下图所示:
前面提到计算机系统是一个十分复杂的硬件和软件结合体,两者不可分割,但处于不同层次。
计算机系统的层次一般由5个以上不同的级别组成,每一级都能进行程序设计,计算机层次结构图如下所示:
这种层次结构的划分,有利于正确理解计算机系统的工作过程,明确了计算机硬件和软件在计算机系统中的地位和作用,以及计算机各层次之间的内在关系。了解计算机系统的层次结构,对于全面地认识计算机是非常有必要的。当然这种计算机层次的划分是相对而言的,它们之间也有交叉。随着计算机的发展以及集成电路技术的发展,软件功能可以由硬件实现,硬件功能可以由软件完成。
3. 计算机的硬件系统计算机硬件主要由5大部件组成,即运算器、控制器、存储器、输入设备和输出设备,其中包含接口和其他外部设备。将这些硬件按照某一种方式有机地连接起来就是硬件系统。通常将运算器和控制器称为中央处理器(Central Processing Unit,CPU),CPU和存储器一起称为主机,而输入设备和输出设备均称为外围设备。计算机硬件组成结构如图所示:
(1)运算器。运算器是计算机的数据加工处理部件,它的主要功能是进行算术运算和逻辑运算。
运算器通常由算术逻辑运算部件(Arithmetic Logical Unit,ALU)、通用寄存器组或累加器以及数据传送逻辑电路等组成,算术逻辑运算部件ALU可以完成算术运算和逻辑运算,其核心部分是加法器。寄存器组或累加器可以暂存数据,一个寄存器可以存放一个数据。
(2)控制器。控制器是统一指挥和控制计算机各部件工作的中央机构,它的主要功能是按照人们预先确定的操作步骤,控制整个计算机的各部件协调地进行工作。
控制器主要由指令部件、时序部件、控制信号形成部件组成,其结构示意图如图所示。控制器从内存储器中逐条地取出指令,并对该指令进行译码,产生相应的操作信号,控制计算机完成指令所规定的操作。时序部件用来产生各种时序信号,协调计算机的各部件有条不紊地工作。控制信号形成部件是控制器的核心,用来产生计算机工作时所需要的控制信号。可以用两种方式产生控制信号:一种是组合逻辑电路的方法,另一种是微程序技术。目前主要采用第二种方式产生计算机信号。
(3)存储器。存储器是计算机用来存放程序和数据的部件,具有“记忆”功能。它的基本功能是按照指定的存储位置“读出”或“写入”信息。
存储器主要由地址寄存器、数据寄存器、存储体及读/写控制电路等组成,其结构示意图如图所示。地址寄存器中保存“读/写”数据的存储单元地址,数据寄存器中保存要进行“读/写”的数据。存储体中包含若干个存储单元,存储单元可以存放一个数据或一条指令。
存储器有读出和写入两个基本操作。不论进行哪一种操作,都应该事先知道存储单元的地址。为了区分存储体中的存储单元,要求为每个存储单元进行编号,这个编号就称为存储单元地址。在计算机中,表示信息的最小单位是位(bit),1位可以表示二进制数“1”或“0”。我们将8位二进制数构成的单位称为1个字节(Byte),存储信息的最小单位是字节。将1个或n个字节构成的整体称为1个字(Word),1个存储单元可以存放1个字。若存储单元的地址按照存储器中“字”的个数进行编址,称为字地址;若存储单元的地址按照存储器中“字节”的个数进行编址,则称为字节地址。
存储器分为内存储器(内存)和外存储器(外存)。内存由半导体器件RAM和ROM构成,用来存放CPU正在执行的指令和数据;外存由磁性材料等构成,用来存放暂时不执行的程序和数据,常用的外存有软盘、硬盘、光盘、U盘和磁带机等。
(4)输入设备。输入设备的任务是将人们编制好的程序和原始数据送到计算机中。其功能就是将它们转换成计算机能够识别的电信号,并将这些电信号存放到计算机的存储器中。
常用的输入设备有键盘、鼠标、扫描仪、触摸屏、数码相机以及早期的纸带输入机和卡片输入机等。输入设备与主机之间通过设备接口连接。接口有数据缓冲的功能,用来解决输入设备与主机之间工作速度上的差异;接口也可以进行信息格式转换,即将字母、数字、声音、图像等信息转换成计算机能识别的代码;接口还是输入设备与主机之间的桥梁,可以向主机提供输入设备的状态,接收主机对输入设备的命令等。
(5)输出设备。输出设备的任务是将计算机的处理结果进行输出。其功能是将计算机中用代码描述的处理结果转换成人类认识的符号进行输出。
常用的输出设备有显示器、打印机、绘图仪、刻录机等。输出设备与主机之间也需要通过设备接口进行连接。
外存也是外围设备,它既可以作为输入设备,又可以作为输出设备。
计算机软件系统主要包括系统软件(操作系统和语言处理程序)、程序设计语言(人与计算机交互的工具)和应用软件(专门用于解决各种具体应用问题的应用程序)。
软件按照结构分类:
通过软件运行是否基于网络,将软件分为单机软件(断网)和分布式软件(联网),其中根据客户端特点,可将分布式软件分为C/S结构和B/S结构。
C/S结构(Client/Server)
C/S结构即客户端/服务器(Client/Server)
需要编写服务器端程序,以及客户端程序,客户端需要使用专门的程序访问服务。例如我们安装的就是QQ的客户端程序。
缺点:软件更新时需要同时更新客户端和服务器端两端,比较麻烦
优点:安全性比较好。
B/S结构(Browser/Server)
B/S结构即浏览器/服务器(Browser/Server)
客户端只需要浏览器就能访问服务,不需要安装专门的程序。例如一些网页论坛。
优点:只需要编写服务器端程序;
缺点:安全性较差。