第5章 计算系统的基本思维   【问题引出】?用二进制数来表示各类数据的目的是便于计算机进行数值计算和数据处理,现代计算机是一个完整的计算系统,由硬件和软件组成。那么,如何使软/硬件能相互“理解”和“支持”,并在数值计算和数据处理中“齐心协力”地高效工作呢?这就是本章所要学习的内容。   【教学重点】?计算系统的基本构成与层次关系、各硬件子系统的工作原理、操作系统对各硬件子系统以及磁盘文件的组织与管理、硬件设备的相互连接、操作系统对信息交换的控制与管理等。   【教学目标】?熟悉处理器系统、存储器系统、总线系统、输入输出接口等的基本结构组成;了解操作系统在计算机系统中的作用和地位,操作系统对各硬件子系统和文件系统的管理方法。 5.1 计算系统的基本概念—— “系统组成”的基本思维   计算系统(computing system)是对计算机的抽象。相应地,计算机是计算系统的具体体现。具体来说,计算机是一种设备,而计算系统则是一种动态实体,由硬件系统、软件系统和它们管理的数据构成,用于解决计算问题,以及与它所处的环境进行交互。计算系统全面体现了计算思维和系统科学思想,即以“计算”为目的,探索问题求解的过程抽象和工作方式;以“系统”为研究和应用对象,探索系统的存在方式和变化规律。例如,计算机硬件系统和软件系统的定义与划分、操作系统的功能作用和管理模块的定义与划分,就是计算思维和系统科学研究的典型实例。 5.1.1 计算机硬件系统   计算机硬件是指那些看得见、摸得着的部件,是构成计算机的物理装置。构成计算机的所有部件称为硬件(hardware),并将这些硬件的整体结合称为硬件系统(hardware system)。它是计算机系统的物理实现。如果按照层次抽象,计算机硬件系统由以下4个子系统组成。   1.处理器子系统   处理器子系统是计算系统的核心部件,由运算器、控制器、寄存器和指令系统组成。处理器子系统的功能是实行指令控制、操作控制、时序控制和数据处理,是实现冯·诺依曼“存储程序控制”的指挥系统,由指令系统发出控制命令,指挥各有关部件有条不紊地执行各项操作。   2.存储器子系统   存储器子系统是计算系统中存放程序和数据的各种存储设备、控制部件,以及管理信息调度的设备和算法的总称,由各种存储介质组成,包括内存储器和外存储器。随着计算机应用领域越来越广泛,应用要求越来越高,数据自动存储能力和数据交换速度成为现代计算系统的重要指标。   3.输入输出子系统   输入输出子系统是计算系统中实现输入输出管理的控制机制,用来实现输入设备、内存储器、处理器、输出设备之间的相互连接和不同信息形式的转换,控制外部设备与内存储器、外部设备与处理器之间进行数据交换。输入输出子系统由输入设备、输出设备,以及连接这些设备与处理器、存储器进行信息交换的接口电路组成。接口电路称为输入输出接口,简称I/O 接口。   4.总线子系统   总线子系统是多个功能部件之间进行数据传送的公共通路,是构成计算机系统的互联机构。总线子系统的主要特征是多个部件共享传输介质,例如一个部件发出的信号可以被连接到总线上的其他部件接收。采用总线传输方式使各子系统部件间实现地址、数据和控制信息的传递与交换,从而大大减少信息传送线的数量,增强系统的灵活性,并在争用硬件资源的基础上进行工作。 5.1.2 计算机软件系统   计算机软件是相对硬件而言的,是在操作系统的基础上逐渐发展形成的。为了便于与硬件相区分,把计算机中使用的各种程序称为软件(software),并将计算机中所有程序的集合称为软件系统(software system)。它是计算机系统的软件支撑,能拓展硬件功能和方便用户操作。   1.软件的定义   软件是为使计算机高效地工作所配置的各种程序及相关的文档资料的总称。其中,程序是经过组织的计算机指令序列,指令是组成计算机程序的基本单位;文档资料包括软件开发过程中的需求分析、方案设计、编程方法等的文档及使用说明书、用户手册、维护手册等。   1983年,IEEE对软件给出了一个较为新颖的定义:软件是计算机程序、方法、规范及其相应的文稿及在计算机上运行时必需的数据。这个定义在学术上有重要参考价值,它将程序与软件开发方法、程序设计规范及其相应的文档联系在一起,将程序与其在计算机上运行时必需的数据联系在一起,实际上是在考虑了软件生存周期中的各项主要因素之后提出的。   软件在用户和计算机硬件之间架起了联系的桥梁,用户只有通过软件才能使用计算机。同时,计算机软件是对硬件功能的扩充与完善。软件有多种类型,但其基本功能、任务和特点是一致的。   (1)软件的基本功能:使用户能根据自己的意图来指挥计算机工作,并使得计算机硬件系统能高效发挥作用。   (2)软件的主要任务:一是为用户操作计算机提供方便和提高使用效率;二是能充分发挥计算机硬件系统的功能作用;三是能扩大计算机的使用用途。   (4)软件的主要特点:软件是一种逻辑实体而不是具体的物理实体;软件是看不见、摸不着的纯智力产品,其研制成本远远大于其生产成本;软件没有老化问题,但比硬件维护要复杂得多。软件的特点可以概括为独创性、无形性、复制性、永久性、复杂性及非价格的创新竞争。   2.软件的分类   如同硬件一样,计算机软件是在不断发展的。从冯·诺依曼计算机开始,软件的发展过程经历了计算机语言、翻译程序、操作系统、服务程序、数据库管理系统、应用程序等。根据软件的功能作用,可将其分为系统软件、支撑软件和应用软件3类。   (1)系统软件。系统软件是计算机厂家为实现对计算机系统的管理、调度、监视、服务、维护,以及扩充硬件功能等而提供给用户的软件。操作系统、翻译程序、服务程序都属于系统软件。系统软件的显著特点是与具体应用领域无关。   (2)支撑软件(supporting software)。支撑软件是随着数据库应用系统开发和网络应用的不断拓展逐渐形成的软件。随着计算机技术的发展,软件的开发、维护与运行的代价在整个计算机系统中所占的比重越来越大,远远超过硬件系统。目前,常用的支撑软件有数据库管理系统、各类工具软件(如系统诊断、图像处理),网络软件,软件开发环境,中间件(独立的系统软件或服务程序)等。   (3)应用软件(application software)。应用软件是相对于系统软件而言的,是用户针对各种具体应用问题而开发的一类专用程序或软件的总称。例如,计算机辅助设计(CAD)、计算机辅助测试(CAT)、计算机辅助制造(CAM)、计算机辅助教学(CAI)、专家系统(expert system)、各类信息管理系统(manage system)、科学计算(scientific computing)等,这些应用软件在各有关领域大显神通,给传统的产业部门注入了新的活力。   〖提示〗?翻译程序和服务程序虽然与操作系统都是由计算机厂商提供的系统软件,但使用却完全不同:操作系统是在系统启动时由“引导程序”从外存储器中将其装入内存;而翻译程序和服务程序是在需要时,由操作系统将它们从外存储器调入内存,任何其他可执行程序都是如此。 5.1.3 计算机操作系统   一台没有任何软件支持的计算机称为裸机,用户直接面向裸机进行应用操作是相当困难的,几乎是不可能的。因为计算机硬件系统只能识别由0和1组成的二进制代码信息,所以用户直接操作、使用、管理和维护计算机时,总是觉得机器“太硬”了(不理解人意),而机器总是觉得用户“太笨”了(动作缓慢)。因此,迫切需要解决让计算机理解用户的操作意图和因为用户的操作速度太慢,致使机器显得无事可做等问题。为了摆脱人的这种“高智低能”和发挥机器的“低智高能”,必须要让计算机来管理自己和用户。于是,操作系统应运而生。   1. 操作系统的定义   操作系统(Operating System,OS)是随着硬件和软件不断发展而逐渐形成的一套大型程序。从功能上讲,它是用户与计算机硬件之间的接口,是用户和其他软件与计算机硬件之间的桥梁;从作用上讲,它为用户操作和使用计算机提供一个良好的操作与管理环境,使计算机的使用效率成倍地提高,并且为用户提供了方便的使用手段和令人满意的服务质量。因此,可将其定义为操作系统是有效地组织和管理计算机系统中的硬件和软件资源,合理地组织计算机工作流程,控制程序的执行,并提供多种服务功能及友好界面,方便用户使用计算机的系统软件。   2. 操作系统的作用   现在呈现在用户面前的计算机,是经过抽象的计算系统,可以把整个计算系统按功能划分为4个层次,即硬件系统、操作系统、支撑软件和应用软件。这4个层次表现为一种单向服务关系,即外层可以使用内层提供的服务;反之则不行,其层次关系如图5-1所示。   操作系统由进程管理、存储管理、文件管理和设备管理4个模块组成,它在计算机中的作用体现在以下3个方面。   (1)操作系统是用户与计算机硬件之间的接口。用户需要通过操作系统来使用计算机,操作系统使用户在不需要过多了解硬件的情况下,方便地控制计算机中的资源,并且能够根据用户需求对硬件进行改造和扩充。因此,操作系统可以看作人-机交互(human-computer interaction)的接口或 界面。   (2)操作系统是计算机系统的资源管理者。操作系统的基本任务是管理计算机系统中的软硬件资源,是软/硬件之间的协调者。一方面,它控制和管理着系统硬件,向上层的实用程序和用户应用程序提供一个屏蔽硬件工作细节的良好使用环境,把一个裸机变成可“操作”且方便灵活的计算机系统;另一方面,计算机中的程序和数据以文件形式存放在外存储器中,如何与内存储器进行数据交换,都由操作系统来实现,最大限度地提高资源的利用效率和实现资源共享,操作系统使得计算机成为一台“海纳百川”的机器。   (3)操作系统为用户提供了一个虚拟机(virtual machine)。计算机硬件系统的功能是有限的,但通过操作系统及其相关软件,可以完成多种多样、复杂多变的任务,很多需要硬件实现的功能可以由软件实现,许多硬件实现不了的功能也由软件来实现。为了方便用户开发更为复杂的程序,操作系统提供了更容易理解的、任务相关的、控制硬件的命令,被称为应用程序接口(Application Program Interface,API),它将对硬件控制的具体细节封装起来,通过在计算机裸机上加上一层又一层的软件来组成一个完整的计算系统,为用户提供了一台扩展基本功能、使用更为方便的机器,称为虚拟机。它是一个功能强大、安全可靠、效率极高的计算机系统。   〖提示〗?进程管理、存储管理、文件管理和设备管理是操作系统的四大功能,其工作原理结合各硬件子系统一起讨论,这样有利于深刻了解计算系统的工作机制。   3.常用操作系统   计算机操作系统的研发与计算机硬件系统的功能及其性能是相对应的。随着硬件系统的不断发展,研发出了许多不同类型的操作系统。其中,影响较大、目前使用较广的计算机主流操作系统有以下3种。   (1)UNIX操作系统。UNIX操作系统是美国AT&T公司的Bell实验室于是1969年开发出来的,也是世界上唯一能在笔记本电脑、个人计算机、巨型机等多种硬件环境下运行的多任务、多用户操作系统。由于UNIX可满足各行业的应用需求,已成为重要的企业级操作平台,也是操作系统中的常青树。   UNIX操作系统的特点主要体现为技术成熟、结构简练、功能强大、可移植性和兼容性好、伸缩性和互操作性强,是当今世界极为流行的多用户、多任务主流操作系统之一,被认为是开放系统的代表。总体上,UNIX操作系统的主要发展趋势是统一化、标准化和不断创新。   (2)Windows操作系统。Windows操作系统是美国Microsoft公司于1984年在磁盘操作系统(Microsoft Disk Operating System,MS-DOS)基础上发展来的。MS-DOS是为微型计算机研制的单用户、单任务命令行界面操作系统,曾经被广泛安装在微型计算机(也称为个人计算机,Personal Computer,PC)上。它对微型计算机的普及应用是功不可没的。虽然今天MS-DOS已退出历史舞台,但它的很多重要概念在Windows操作系统中仍然是重要的,而且DOS的命令行方式在网络中仍然有用。   DOS的特点是简单易学,系统规模小(占内存空间小),因而对硬件要求低,并且运行快速。但由于它提供的是一种以字符为基础的用户接口,如果不熟悉硬件和DOS的操作命令,便难以称心如意地使用PC,人们企盼PC变成一个直观、易学、好用的工具。Microsoft公司响应千百万DOS用户的愿望,研制开发了基于图形用户接口(Graphical User Interface,GUI)方式的新型操作系统——Windows操作系统。在图形用户界面中,Windows操作系统所支持的应用软件都用一个图标(icon)表示,用户只要把鼠标指针移到某图标上并双击,即可进入该软件。这种界面方式为用户提供了极大的方便,从此把计算机的操作使用提高到了一个崭新的阶段,并为今天计算机网络的操作和多媒体系统的操作使用创造了极为有利的条件,这也是Windows操作系统受到用户欢迎并得以迅速发展的重要原因之一。目前,微机中经常使用的操作系统是具有多用户、多任务功能的Windows XP、Windows 7/10,以及基于Windows的网络操作系统。   (3)Linux操作系统。Linux操作系统是由芬兰赫尔辛基大学的大学生Linus Benedict Torvalds等在1991年共同开发的,是一种能运行于多种平台、源代码公开、免费、功能强大、遵守POSIX标准、与UNIX系统兼容的操作系统。Linux操作系统继承了自由软件的优点,是最成功的开源软件。Linux操作系统源程序能完整地上传到Internet,允许自由下载,因而不仅被众多高校、科研机构、军事机构和政府机构广泛采用,也被越来越多的行业所采用。现在,Linux操作系统是一种得到广泛应用的多用户、多任务操作系统,许多计算机公司(如IBM、 Intel、Oracle、SUN等)大力支持Linux操作系统,各种常用软件也纷纷移植到Linux平台。   Linux操作系统的特点主要体现为开放性、多用户、多任务、良好的用户界面、支持多个虚拟控制台、可靠的系统安全、共享内存页面、支持多种文件系统、强大的网络功能、良好的可移植性等方面。Linux操作系统非常适合需要运行各种网络应用程序,并提供各种网络服务。正是Linux操作系统的开源才使得它可以根据自身的需要做专门的开发。因此,它更适合需要自行开发应用程序的用户和那些需要学习UNIX命令工具的用户。 〖提示〗?随着移动互联网和智能手机的普及,近年来推出了许多用于移动终端用户(智能手机)操作系统,并且功能强大,性能优越。智能手机及其操作系统,在《计算机科学与计算思维导论学习辅导》第5章中介绍。   4.操作系统的用户接口   用户接口是为了方便用户操作使用计算机而提供的人-机交互接口,目前常用操作系统的接口方式可分为3种:命令接口、程序接口和图形接口。   (1)命令接口。为了便于用户直接或间接控制自己的程序,操作系统提供了命令接口,用户通过该接口向计算机发出命令,执行功能操作。命令接口又分为联机用户接口和脱机用户接口。   ① 联机用户接口。它由一组操作命令及对应的命令解释程序所组成,当用户输入一条命令后,系统便立即对该命令进行解释和执行。例如,DOS和UNIX操作系统提供的就是联机用户接口。   ② 脱机用户接口。它是为批处理作业的用户提供的接口,由一组作业控制语言组成。所谓作业,是指用户在运行程序和数据处理过程中要求计算机所做工作的集合。由于批处理作业的用户不能直接与自己的作业交互作用,只能委托系统代替用户对作业进行控制和干预,其实现就是由脱机用户接口来完成的。   (2)程序接口。它是为用户程序访问系统资源而设置的接口,为程序中使用操作系统提供的系统调用命令请求操作系统服务,也是用户程序取得操作系统服务的唯一途径。现在的操作系统都提供程序接口。例如,DOS是以系统功能调用的方式提供程序接口,可以在编写汇编语言程序时直接调用。Windows操作系统是以应用程序接口的方式提供程序接口的,Win API提供了大量的具有各种功能的函数,直接调用这些函数就能编写出各种界面友好、功能强大的应用程序。在可视化编程环境(VB、VC++、Delphi等)中,提供了大量的类库和各种控件,如微软基础类(Microsoft Foundation Classes,MFC),这些类库和控件构建在Win API的函数之上,并提供了方便的调用方法,极大地简化了Windows应用程序的开发。   (3)图形接口。虽然用户可以通过联机用户接口来取得操作系统的服务,并控制自己的应用程序运行,但要求用户严格按照规定的格式输入命令。由于命令方式不适合非专业人员操作使用,于是,图形用户接口(GUI)应运而生。采用图形化的操作界面,用户利用容易识别的各种图标将系统的各项功能、各种应用程序和文件直观、逼真地表示出来。例如,在Windows操作系统中,通过鼠标、菜单和对话框来完成对各种应用程序和文件的操作。此时用户不必像使用命令接口那样去记住命令名及格式,只要轻点鼠标就能实现很多操作,从而使用户从烦琐且单调的操作中解放出来,能够为更多的非专业人员使用。 5.1.4 软件与硬件的关系   一台能操作、能使用的计算机必须具有硬件和软件,两者相辅相成,缺一不可,从而构成一个不可分割的整体。硬件与软件既相互支持,又相互制约。只有在取得“共识”的前提下,“相互支撑、齐心协力”地努力工作,才能高效完成用户给定的工作任务。计算机的运行就是硬件和软件彼此配合、共同作用的结果。计算机硬件和软件之间的“相互支撑”主要体现在以下3个方面。   1.层次结构关系   一个完整的计算系统,如果按照系统的层次结构抽象,可以抽象为硬件系统层、系统软件层、支撑软件层和应用软件层4层,其结构如图5-2所示。   (1)硬件系统层。计算机系统的物理实现,位于计算机系统的底层。计算机指令系统是硬件系统与系统软件交互的工作界面,其信息交互的语言是由0和1组成的二进制代码。   (2)系统软件层。能够直接与硬件系统层进行交互的软件,其中最重要的是操作系统,用来帮助用户摆脱硬件的束缚,对硬件进行扩充和改造,为利用硬件资源提供使用环境,是实行管理和使用的核心。操作系统是用户操作、使用计算机的界面,其交互信息是ACSII代码或图标。   (3)支撑软件层。利用操作系统提供的接口及系统调用来使用计算机系统中的各类系统资源,并为应用软件提供支撑。最典型的支撑软件是语言处理程序、数据库管理系统和其他系统程序。   (4)应用软件层。建立在支撑软件层之上,为用户提供应用系统界面,使用户能够方便地利用计算机来解决具体问题。在应用系统界面上,用户与计算机之间进行信息交换的“公用”语言是程序设计语言,利用程序设计语言,把要解决的问题以命令的形式进行有序的描述。   〖提示〗?计算机系统中的每层都具有特定的功能,并提供了相应的接口界面,接口屏蔽了层内的实现细节,并对外层提供了使用约定。   2.相互依赖关系   现代计算机系统中的硬件和软件相互依赖和支持。有了软件的支持,硬件才能正常运转和高效率工作。如果把硬件比作计算机系统的躯体,那么软件就是计算机系统的灵魂。   (1)硬件是系统的躯体。硬件是构成计算机的物理装置,也是计算机的物理实现。硬件为软件提供物理支撑,任何软件都是建立在硬件基础之上的,如果离开了硬件,软件则无法栖身。   (2)软件是系统的灵魂。软件是为运行、管理和维护计算机而编制的各种程序的总和。软件为硬件提供使用环境,一个完整的计算系统,如果没有软件的支持,硬件将变得毫无意义。   3.功能等价关系   计算机的硬件和软件在逻辑功能上是等价的,即计算机系统的许多功能既可用硬件实现,也可用软件实现。例如,在计算机设计中,如果硬件成本高,软件成本低,为了取得较高的性能价格比,可用软件来实现更高一级的性能,这种做法称为硬件软化。随着集成电路技术的发展,硬件价格逐渐降低、可靠性逐渐提高,因而出现了用硬件替代软件来实现较强的功能,这种做法称为软件硬化。一般地,用硬件实现往往可提高速度和简化程序,但将使结构复杂,造价提高;用软件实现,可降低硬件的造价,但使程序变得复杂,运行速度降低。例如,计算机处理汉字时,既可使用硬字库,也可使用软字库。前者造价高,但运行速度快;后者造价低,但运行速度慢。   正是由于软/硬件在功能上的等价关系,因而促进了软件、硬件技术的发展。一方面,许多生产厂家为实现某一功能或达到某一技术指标,分别用软件或硬件的办法来实现,并各自评价其优点和特点;另一方面,硬件技术的发展及性能的改善,为软件的应用提供了广阔的前景,并为新软件的诞生奠定了基础。同时,软件技术的发展给硬件技术提出了新的要求,从而促进新的硬件产生与发展。正是这种彼此促进和激烈竞争,形成了推动软件、硬件技术不断向前发展的强大动力。   下面按照计算思维的思想方法,介绍各硬件子系统的基本原理,以及操作系统如何实现对各子系统的管理。 5.2 处理器系统──“控制执行”的基本思维   现代计算机是一个高度自动化的计算系统,有人把计算机称为“电脑”,是因为它具有类似于人类大脑、按照人的意愿,指挥和控制计算机执行各种操作的功能,这个指挥和控制机构就是由处理器和指令系统构成的指挥系统。它是计算机硬件系统的核心,由操作系统实行调配管理。 5.2.1 处理器的结构组成   随着超大规模集成电路的高速发展,使得电子器件的体积越来越小,为了使主体器件具有一致性能,则将运算器和控制器集成在一块芯片上,称为中央处理器(central processor)或中央处理单元(Central Processing Unit,CPU),在微机中称为微处理器(microprocessor)。   1.CPU的基本组成   CPU是计算机中的核心部件,用来实现运算和控制,并由运算器、控制器、控制线路等组成。   (1)运算器(arithmetical unit)。运算器是用来完成算术运算和逻辑运算的部件,其功能是快速地对数据进行加、减、乘、除(包括变更数据符号)等算术运算;“与”“或”“非”等逻辑运算,逻辑左移、逻辑右移、算术左移、算术右移等移位操作;及时存放算术运算和逻辑运算过程中的中间结果(由通用寄存器组实现),实现挑选参与运算的操作数、选中执行的运算功能,并且把运算结果送到存储器中。运算器的逻辑结构如图5-3所示。   运算器由多功能算术逻辑部件(Arithmetic Logical Unit,ALU),通用寄存器组(包括累加寄存器、数据缓冲寄存器、状态寄存器)及其控制线路组成。寄存器组用来存放运算器的工作信息和运算中间结果,减少访问存储器的次数,以提高运算器的速度。整个运算过程是在控制器的统一指挥下,对取自随机存储器(Random Access Memory,RAM)的数据按程序编排进行算术或逻辑运算,然后将运算结果送到RAM。   (2)控制器(control unit)。控制器是计算机系统发布操作命令的部件,其功能是根据指令提供的信息实现对系统各部件的操作和控制。计算机程序和原始数据的输入、CPU内部的信息处理、处理结果的输出、外部设备与主机之间的信息交换等,都是在控制器的控制下实现的。   2.CPU的主要部件   CPU是计算机硬件系统的指挥中心,有人将它形容为人脑的神经中枢。CPU的指挥、控制功能由指令控制、操作控制、时间控制、数据加工等部件实现。CPU的基本组成如图5-4所示。 图5-4 CPU的基本组成   (1)数据缓冲寄存器(Data Register,DR):存放从RAM中取出的一条指令或数据字。   (2)指令寄存器(Instruction Register,IR):存放从RAM中取出的将要执行的一条指令。   (3)指令译码器(Instruction Decoder,ID):执行IR中的指令,必须对指令的操作码进行检测,以便识别所要求的操作。   (4)地址寄存器(Address Register,AR):用来存当前CPU所访问的内存单元的地址。   (5)程序计数器(Program Counter,PC):用来存放下一条将要执行的指令的地址码。   (6)累加寄存器(Accumulator,AC):当ALU执行算术或逻辑运算时为ALU提供工作区。   (7)状态寄存器(Flag Register,FR):用来存放算术和逻辑运行或测试的结果建立的条件码内容,如运算进位标志、运算结果溢出标志、运算结果为零标志、运算结果为负标志等。   (8)微操作控制单元和时序部件(PLA):根据指令操作码和时序信号产生微操作控制信 号,对各种操作实施时间上的控制。 5.2.2 计算机指令系统   计算机之所以能自动工作,是因为它能顺序地执行存放在存储器中的程序(一系列命令)。指示计算机执行各种基本操作的命令称为指令(instruction),计算机中所有指令的集合(instruction set)称为该机的指令系统(instruction system)。它是衡量CPU性能的重要指标 之一。   1.指令的基本格式   计算机指令由一串二进制代码(即机器语言)表示的操作码和地址码所组成,如图?5-5 所示。   (1)操作码(operating code)用来表示进行何种操作,如进行加法、减法、乘法、除法等操作。在计算机中,机器语言是计算机唯一能识别的语言,所以操作码和地址码都用二进制代码来表示。由于机器语言不便于记忆,而且容易出错,给编程带来很大困难。为此,常采用类似英文单词的符号来表示指令操作码,并称为助记符,其应用实例如表5-1所示。 表5-1 8种指令操作的一种简单操作码 操作码 000 001 010 011 100 101 110 111 助记符 ADD(加法) SUB(减法) MUL(乘法) DIV(除法) AND(逻辑与) LD(取数) MOV(存数) STOP(停机)  表5-1中的操作码为3位,可执行8种操作。由此可见,操作码的位数越长,其操作功能越强。一个包括n位的操作码最多能够表示2n条指令。   (2)地址码(address code)表示从哪个地址中取出操作数及操作的结果存放到哪个地址 中。由于操作运算有操作数、被操作数和操作结果,因而分为三地址指令、二地址指令、一地址指令等。不同操作数的指令格式如图5-6所示。 图5-6 不同操作数的指令格式   对于一地址指令而言,通常是以运算器中的累加寄存器(AC)中的数据为被操作数,指令字的地址码字段中的数为操作数,操作运算结果又放回累加寄存器中。例如,00111110 00001001这条指令中的操作码是00111110,表示向累加寄存器传送操作数,操作数是00001001(十进制数9),这条指令的含义就是“把9送到累加寄存器中”。   〖提示〗 停机指令中只有操作码,没有操作数,不需要地址码,所以称为零地址指令。   2.指令的基本类型   不同的指令系统,指令的数目和种类有所不同。按照功能,指令可以分为如下4类。   (1)数据处理指令。用于对数据进行算术运算、逻辑运算、移位和比较,包括算术运算指令、逻辑运算指令、移位指令、比较指令、其他专用指令等。   (2)数据传送指令。用于把数据从计算机的某一部件传送到另一部件,但数据内容不变。这类指令包括存储器传送指令、内部传送指令、输入输出传送指令、堆栈指令等。   (3)程序控制指令。用于控制程序执行的次序、改变指令计数器的内容、改变指令执行的正常顺序,包括无条件转移指令、条件转移指令、转子程序指令、暂停指令、空操作指令等。   (4)状态管理指令。用于改变计算机中表示其工作状态的状态字或标志,但不改变程序执行的次序。它不执行数据处理,而只进行状态管理,如允许中断指令、屏蔽中断指令等。   3.指令的控制执行   计算机指令的执行是由控制器来实现的,控制器的主要任务是取指令、分析指令、执行指令、控制程序和数据的输入与结果输出、对异常情况和某些请求的处理,其流程如图5-7所示。   (1)程序计数器(PC)。为了使计算机能自动地工作,在控制器中设置了一个程序计数器,用来存放程序地址,并且自动递增,使得自动取出和自动执行地址指令。   (2)取指令。以程序计数器中的内容作为指令地址,并且每取出一条指令后,程序计数器中的内容自动加1,PC=PC+1作为下一条指令的地址。   (3)分析指令。对取出的指令进行译码,分析功能。   (4)执行指令。以指令的地址码作为内存地址(指向数据 区),取出操作数进行运算操作;如果是转移指令,将用指令的地址码部分去取代程序计数器的内容,从而实现按地址转移的目的。   上述第(2)~(4)步周而复始,直至停机,这就实现了自动、连续、灵活地执行程序。通常把其中的一个循环(取指令、分析指令、执行指令)称为计算机的一个指令周期。这样可以把程序对计算机的控制归结为每个指令周期中指令对计算机的控制。   这种以“存储过程控制”为核心,以“程序计数器(PC)”为关键部件而自动连续执行的存储程序原理,决定了CPU的体系结构,这就是沿用至今的著名的冯·诺依曼体系结构。 5.2.3 操作系统对处理器的管理   处理器是计算机系统中最为重要的硬件资源,如何对处理器进行资源分配和控制管理,最大限度地提高处理器的利用率,减少其空闲时间等,是操作系统的重要功能之一,可以把实现这一功能的管理称为处理器管理(processor management)。为了实现对处理器的高效管理,现代操作系统对处理器的分配和运行是以进程为基本单位的,因而对处理器的管理可归结为作业进程管理,进程管理包括作业过程、进程控制、进程同步、进程通信、处理机调度、线程控 制等。   1. 作业过程   计算机中的作业是指用户提交给计算机工作任务的基本单位,主要用来描述批处理过程,并由完成某一独立任务的程序及其所需数据组成。在早期的计算机中,只允许有一道(单道)用户程序在内存中运行,程序运行时完全控制了系统中的所有资源。在现代计算机中,允许有