摘要: 从一般使用者的角度来看,计算机系统是由硬件和软件组成的,而计算机软件根据其在计算机系统中所起的作用又可进一步分为系统软件和应用软件。系统软件是指能够对计算机硬件资源进行管理,对用户方便使用计算机硬件资源提供服务的软件,其核心就是操作系统。应用软件则是人们使用各种计算机语言为解决各种应用问题而编制的程序。因此,从这一层面上看,计算机系统自下而上可以看成是由三个层次构成的,即:计算机硬件、系统软件和
从一般使用者的角度来看,计算机系统是由硬件和软件组成的,而计算机软件根据其在计算机系统中所起的作用又可进一步分为系统软件和应用软件。系统软件是指能够对计算机硬件资源进行管理,对用户方便使用计算机硬件资源提供服务的软件,其核心就是操作系统。应用软件则是人们使用各种计算机语言为解决各种应用问题而编制的程序。因此,从这一层面上看,计算机系统自下而上可以看成是由三个层次构成的,即:计算机硬件、系统软件和应用软件,下层为上层功能的实现提供支持。
而从计算机设计者的角度看,计算机系统可以进一步划分为不同的层次来实现其功能。这种划分可以看成是概念上的划分,但却是十分有意义的。我们可以设想计算机是按照不同的层次结构来建造的。这里的每一个层次都实现某项特定功能,并有一个特定的假想机器与之对应。对应计算机的每一个层次的这种假想机器称之为虚拟机。每一层的虚拟机都执行自己特有的指令集,必要时还可以调用较低层次的虚拟机来完成各种任务。如图1-17是一个业界普遍接受的代表不同抽象的虚拟机器的计算机组织结构层次图。计算机系统分层结构层次图
第6层是用户层,也是面向一般用户的层次,换句话说,一般用户在使用计算机时所看见的就是这一层次。在这一层次上,用户可以运行各种应用程序,如字处理程序、制表程序、财务处理程序、游戏程序等等。对用户层而言,其他各较低的层次可以是不可见的,也就是说,用户不必了解各底层是如何实现的。
第5层是高级语言层,它由各种高级语言组成,如 C、C++、Java、Web编程语言等。这些高级语言提供该层用户为完成某一特定任务而编写高级语言程序。一方面,所编写的这些高级语言程序提供给上层用户层的用户使用,另一方面这些高级语言程序是通过编译或解释成低级语言来实现的。虽然使用这些高级语言编写程序代码的程序员需要了解所使用语言的语法、语义及各种语句等,但这些语法、语义的实现及语句的执行过程对他们来讲是透明的。
第4层是汇编语言层,它包括各种类型的汇编语言。每一个机器都有自己的汇编语言,上层的高级语言首先被翻译成汇编语言,再进一步翻译成机器直接识别的机器语言。机器通过执行机器语言程序来最终完成用户所要求的功能。
第3层是系统软件层,其核心就是操作系统。操作系统对用户程序使用机器的各种资源(CPU、存储器、输入输出设备等)进行管理和分配。例如,当某一用户程序需要运行时,首先由操作系统将其调入内存中,这其中需要操作系统为其分配内存空间进行存储。再如某程序需要使用某一输出设备进行结果的输出时,需要操作系统为其提供对该设备的控制等。
第2层是机器层,这是面向计算机体系结构设计者的层次。计算机系统设计者首先要确定机器的体系结构,如机器的硬件包含那些部件,采用什么样的连接结构和实现技术等。在这一层次上提供的是机器语言,也是机器唯一能直接识别的语言,其他各种语言的程序最终都必须翻译成机器语言程序,由机器通过其硬件实现相应的功能。
第1层是控制层,这一层的核心是计算机硬件控制单元。控制单元会逐条接收来自上层的机器指令,然后分析译码,产生一系列的操作控制信号,并由这些控制信号控制下层的逻辑部件按照一定的时间顺序有序地工作。
第0层是数字逻辑层,在这里我们所面对的是计算机系统的物理构成:各种逻辑电路和连接线路,它们是组成计算机硬件的基础。
计算机系统的各个层次并不是孤立的,而是互相关联、互相协作。一般来讲,下层为上层提供服务或执行上层所要求的功能,而上层通过使用下层提供的服务完成一定的功能。计算机这种层次划分的好处是:某一个层次的设计者可以专注于该层功能的实现,通过采用各种技术,提高各层次的性能,从而提高计算机系统整体性能。