1.1 存储程序式计算机
1.1.1 存储程序式计算机的结构和特点
人们在科学实验、生产斗争和社会实践中有大量问题需要求解,如科学计算、数据处理及各种管理问题等。要解决这些问题,首先需要分析所研究的对象,提出对问题的形式化定义和给出求解方法的形式描述。对问题的形式化定义叫做数学模型,而对问题求解方法的形式描述称为算法。其次是必须具备实现算法的工具或设施。我们将一个算法的实现叫做一次计算。显然,一次计算既与算法有关,也与实现该算法的工具有关。算法和实现算法的工具是密切联系在一起的,二者互相影响、互相促进。
人们在生产活动和商业交易中最早需要解决的问题是算术四则运算问题。最初人们用大脑和手来于进行计算,随后使用算盘,再后用计算器,这些计算工具可以进行加、减、乘、除运算。人们要解决某一问题,只有将问题的求解方法归结为四则运算问题后,才能使用算盘之类的工具进行计算。由此可见,算法和计算工具是相互影响的。因为算法是四则运算,所以计算工具必须具备加、减、乘、除功能。当遇到一个复杂的算法时,如求解一个微分方程,若计算工具仍然只能进行四则运算,则必须把微分方程的解法转化为数值解法。
上面所谈的计算是一种手工计算方式,而算盘或计算器是手工计算的一种工具。在这种计算方式中,人们按照预先确定的一种计算方案,先输入原始数据,然后按操作步骤做第一步计算,记下中间结果,再做第二步计算,直到算出最终结果,并把结果记录在纸上。这里,一切都是依靠人的操作,既无论是输入原始数据,执行运算操作,还是中间结果的存储和最终结果的抄录都是依靠人的操作,所以这一计算过程是手工操作过程。
著名数学家 Von Neumann 总结了手工操作的规律以及前人研究计算机的经验教训后,提出了“存储程序式计算机”方案,从而使计算初步实现了自动化。要使计算机能够自动地计算,必须使机器可以“看到”计算方案即计算机程序,能够“理解”程序语言的含义并顺序执行指定的操作,可以及时取得初始数据和中间数据,能够自动地输出结果。于是,机器必须:有一个存储器。用来存储程序和数据;有一个运算器,用以执行指定的操作;有一个控制部件以便实现自动操作。此外,还要有输入 / 输出(或简称 I/O )部件,以便输入原始数据和输出计算结果。它们就构成了“存储程序式计算机”或称“ Von Neumann 计算机”。
综上所述,存储程序式计算机由以下五类部件组成:控制器、运算器、存储器、输入装置、输出装置。人们通常把控制器和运算器做在一起,称为中央处理器或中央处理部件( CPU )。输入装置和输出装置统称为 I/O 设备,如图 1.1 所示。时至今日,大多数计算机还是采用该结构。

图 1.1 典型的单处理机系统结构
CPU 是计算机的“大脑”,能控制、指挥各个部件的工作。它是一种能够解释指令、执行指令并控制操作顺序的硬设备。在 CPU 中,控制器负责从主存储器提取指令、并分析其类型。运算器则完成为实现该指令所需进行的操作。 CPU 还包含一个小的高速存储器,用来存储一些暂时的结果和其他控制信息。这个存储器由若干个寄存器组成,每一个都具有某种功能,其中很重要的一个寄存器是程序计数器( PC ),它指示下一步应该执行的指令。
存储器是计算机存储程序和数据的部件。如果没有一个使中央处理机能直接读、写信息的存储器,那就不存在我们所熟悉的可存储程序的数字计算机了。早期的主存储器是由磁芯做成的,价格比较昂贵。现在,主存大多数由半导体芯片组成,其容量可达到 32MB 、 64MB 、 128MB ,甚至更大。大部分计算机还有一个与主存相比,其存取速度较慢、价格较便宜、容量大得多的辅助存储器,用于保存大量的数据信息。现在,辅存的容量可达 10GB 、 20GB ,甚至更大。
I/O 设备则是完成信息传输出任务的。当某一个问题需要计算机处理时,必须给定程序和初始数据,这些信息是通过输入设备进入计算机的。得出解答后,计算机必须把计算结果通知用户,这是通过输出设备实现的。另外,还有一个让操作员用来实施控制和发布命令的控制台。
Von Neumann 计算机是人类历史上第一次实现自动计算的计算机,可以真正称得上是一架自动机。该机是人类历史上第一次出现的作为人脑延伸的智能工具,它的影响是十分深远的。它具有逻辑判断能力自动连续运算能力。它的计算模型是顺序过程计算模型,其主要特点是:集中顺序过程控制,即控制部件根据程序对整个计算机的活动实行集中过程控制,并根据程序规定的顺序依次执行每一个操作。计算是过程性的,故这种计算机是模拟人们的手工计算的产物。即首先取原始数据,执行一个操作,将中间结果保存起来,再取一个数,几中间结果一起又执行一个操作,如此计算下去。在遇到有多个可能同时执行的分支时,也是先执行完一个分支,然后再执行第二个分支,直到计算完毕。由于 Von Neumann 计算机的计算模型是顺序过程模型,所以它的特点是集中顺序过程控制。
1.1.2 计算机系统结构与操作系统的关系
计算机系统的硬件基础是 Von Neumann 机的五大部件,而操作系统是构成计算机系统的另一个重要的系统软件,它负责管理计算机系统的硬件、软件资源和控制整个计算机的工作流程。顺序过程计算模型决定着 Von Neumann 型计算机的根本特点——集中顺序过程控制,操作系统既是计算机系统中的一个重要组成部分,当然也不能不反映这一特点。最早产生的单用户操作系统正是如此。它只允许一个用户使用计算机,该用户独占计算机系统的各种资源,整个系统为他的程序运行提供服务。在这里,除了 CPU 和外部设备有可能提供并行操作外,其余的都是顺序操作,这种单用户操作系统简单明了,容易实现。但在这样的系统中,昂贵的计算机硬部件并没有得到充分利用,计算机的性能特别是资源利用率大大低于可能达到的程度。
为了提高资源利用率,人们作了极大的努力把单处理机系统改造在逻辑上的多处理机系统,而且使之能进行并行处理。让多个用户共用一个计算机系统,这就必须解决多个用户的算题任务共享计算机系统资源的问题,也需要解决系统如何控制多个算题任务的共同执行。为此,出现了一系列新的软件技术,如多道程序设计技术、分时技术,以及解决资源分配和调度、进程及进程间的交互作用等问题的技术。这些技术已经载入了操作系统发展的光荣史册,并被人们誉为 20 世纪 60 年代至 70 年代计算机科学的奇迹。在 CPU 和存储器都十分昂贵的情况下,这些技术的应用取得了可观的经济效益。由于计算机系统的计算模型是顺序计算模型,其特点是集中顺序过程控制,因而导致操作系统必然具备并发、共享的特征。而这种特征正蕴藏着一对矛盾,即硬件结构是顺序过程计算模型,而操作系统却是并行处理(计算)模型,这二者是十分不协调的。这种尖锐的矛盾,使操作系统变得非常复杂、不易理解,成为一个庞然大物,且其效果并不一定很理想。
随着计算机技术的迅猛发展和计算机应用的日益广泛,操作系统出现了多种形式,有批量操作系统、分时操作系统、实时操作系统、单用户磁盘操作系统、计算机网络和分布式操作系统等。在微型机上配置的具有图形操作界面的视窗操作系统( Windows )是用得较为广泛的一种。这种操作系统的图形化用户界面,提供了各种方便用户使用计算机的手段,人们用起来得心应手,很受欢迎。如果某系统想共享其他系统的硬件或软件资源,也可考虑联网使用,这就是现在发展极快的计算机网络。
另一方面,人们也正在研究与并行计算模型一致的计算机系统结构,使得具有并行处理能力的操作系统具有更强的生命力。在人们研究的多种并行处理结构中,有多指令流单数据流的流水线机,有单指令流多数据流的阵列机,还有多指令流多数据流的处理机系统、多计算系统。现在,具有多指令流多数据流结构的计算机网络和分布计算环境应用十分广泛,具有广阔的应用前景。
目前在市场上销售的计算机,大部分仍然采用 Von Neumann 式计算机的结构,预计将来也仍然是如此。因此,我们必须学好当前计算机系统上配置的操作系统,另外也要关心计算机系统结构发展的新趋势。从计算机体系结构的角度出发去分析操作系统,就此较交易理解操作系统的功能和特点。通过这样的分析,我们不但可以学到对当前有用的知识,而且可以鉴别哪些是合理的,哪些是将来仍然有用的,哪些是需要改造的。只有深刻地了解过去和现在,才能更好地迎接未来。
|