计算机系统
硬件与软件
一个完整的计算机系统由硬件系统和软件系统两大部分组成。
计算机硬件是各种物理设备的总称,是完成工作任务的物质基础。
一台计算机由处理器(CPU)、内存储器和输入/输出模块3大部件组成,它们之间按一定的方式通过系统总线进行互联,从而实现执行程序、完成用户需求的各项任务。
- 处理器:处理器的作用是控制计算机的操作,执行数据处理任务。
- 内存储器:内存储器的作用是存储程序和数据,由一组顺序编号的存储单元组成,编号为存储单元地址。
- 输入/输出模块:输入/输出(I/O)模块的功能是实行计算机与外部设备之间的数据传输。
计算机软件是指程序和与程序相关的文档的集合。按功能可把软件分为“系统软件”和“应用软件”两类。系统软件是指由计算机生产厂家提供、具有通用功能的软件,比如:操作系统、语言处理程序(如C语言编译程序)、数据库管理系统,以及具备各种服务功能的程序,都划归为系统软件。应用软件是指为解决实际问题而研制的软件,涉及计算机应用的各个领域,比如:各种管理软件、用于工程计算的软件包、辅助设计软件,以及过程控制软件等。
操作系统的形成
未配置任何软件的计算机称为“裸机”
为了从复杂的硬件控制中脱身,合理有效地使用计算机系统,为用户使用计算机提供更多的方便,最好的解决办法就是开发一种软件,通过它来管理整个系统,达到扩展系统功能、方便用户使用的目的。这就是“操作系统”软件呼之欲出的根本原因。
第一台电子管计算机出现后的若干年(1946—1958年),计算机上并没有名为“操作系统”的这种软件。那时计算机的运行速度虽然极慢,但由于外部设备少,因此程序的装入、调试,以及控制程序的运行等工作,都完全可以由上机人员通过操作控制台上的一排排开关和按钮来实现。这一时代的计算机特点是人工完成上、下机操作,一台计算机被一个用户所独占。
1958年,计算机进入了晶体管时代(1958—1964年)。这时计算机的速度、存储容量、外部设备的功能和种类等都有了很大的发展,慢速的人工操作与快速的计算机处理能力之间显得很不协调,出现了所谓的“人—机矛盾”(人工的速度比计算机的速度快)。
因此向软件设计人员提出了“让计算机自动控制用户作业的运行,废除上、下机手工交接”的要求。
为了达到这个目的,需要用户一方在编写程序时,还要编写“作业说明书”,详细规定程序运行的步骤,与程序、数据一起提交给系统;而系统一方则需要设计一个“管理程序”(也称监督程序),它的功能是从磁盘上读入第一个作业的说明书,按照它的规定控制该作业的执行。这个作业运行结束后,它又从磁盘上读入第二个作业的说明书,继而执行之。这一过程一直进行到提交给系统的一批作业全部执行完毕。
由于这种系统一次集中处理一批用户作业,故被称为“批处理系统”,其管理程序就是现今操作系统的雏形。这个时代的特点是对一批作业自动进行处理,没有人工交接,在一个用户作业运行时,仍独占计算机。
1964年后,计算机进入了集成电路和大规模集成电路时代。这时,硬件又有了长足的发展,中断和通道技术的出现,为输入/输出设备和中央处理机的操作奠定了物质基础。
人们开始把 CPU、存储器、外部设备以及各种软件,都视为是计算机系统的“资源”,提出不仅要合理地,而且要高效地使用这些资源。为此,在软件设计上出现了“多道程序设计”技术,即在计算机内存中同时存放几个相互独立的程序,让它们去“共享”、去“竞争”系统中的这些资源,使这些资源尽可能地满负荷工作,从而提高整个计算机系统的使用效率。具有这种功能的软件就是“操作系统”。
操作系统是计算机系统的核心,统管整个系统的资源,制定各种资源的分配策略,调度系统中运行的用户程序,协调它们对资源的需求,从而使整个系统在高效、有序的环境里工作。
操作系统发展的动力
- 提高计算机资源利用率的需要
- 方便用户使用计算机的需要
- 硬件技术不断发展的需要
- 计算机体系结构发展的需要
操作系统的定义与功能
操作系统的定义
操作系统是控制和管理计算机硬件和软件资源、合理地组织计算机工作流程,以及方便用户使用计算机的一个大型程序。
操作系统是在裸机上加载的第一层软件,是对计算机硬件系统功能的首次扩充。从用户的角度看,计算机配置了操作系统后,由于操作系统隐蔽了硬件的复杂细节,用户会感到机器使用起来更简单、更容易了。
操作系统的功能
从资源管理的角度看,操作系统应该具有5个方面的功能:处理机管理、存储管理、设备管理、文件管理,以及作业管理。
这5大部分相互配合,协同工作,实现对计算机系统的资源管理,控制程序的执行。
中央处理机(CPU)是计算机系统中一个举足轻重的资源。用户程序进入内存后,只有获得CPU,才能真正得以运行。
为了提高CPU的利用率,系统必须采用多道程序设计技术,使内存中同时有几个用户作业程序存在
当一个程序因等待某事件的完成而暂时放弃使用CPU,操作系统就能把CPU重新分配给其他可运行的作业程序
处理机管理的主要工作:
- 记住系统中当前每个作业程序的状态。这样,在需要对CPU重新进行分配时,就在候选的程序中选取。
- 指定处理机调度策略,它是在候选程序中进行挑选时应遵循的原则。
- 实施CPU分配(也就是处理机调度),以便让获得CPU的作业程序真正投入运行。
作业管理的主要工作:
- 记住提交给系统诸作业(一般存放在磁盘)的状态,以及对系统资源的需求信息。
- 制定作业调度策略,在需要时,从磁盘的候选作业中选择作业进入内存,参与对CPU的竞争。
- 为用户提供一个使用系统的良好环境,以便有效地组织自己的工作流程。
存储管理
存储器是计算机的记忆装置。在计算机系统中,存储器可分为内存储器(也称主存储器)和外存储器(也称辅助存储器)两种。内存储器(简称内存)工作速度快,价格昂贵,CPU可以直接访问,用于存放计算机当前正在运行的程序和数据;外存储器(简称外存)工作速度相对较慢,价格低廉。由于CPU不能直接对外存储器进行访问,因此一般将其作为内存的延伸和后援,存放暂时不用的程序和数据。
主要工作:
- 记住内存各部分的使用情况,如哪些已经分配,哪些为待分配。
- 制定内存的分配策略,实施内存的具体分配和回收。
- 保证内存中各独立作业程序的安全,互不侵扰。
- 解决“作业程序比内存大时,也能正确运行”的存储扩充问题。
设备管理的主要工作:
- 记住各类设备的使用状态,按各自不同的性能特点进行分配和回收。
- 为各类设备提供相应的设备驱动程序、启动程序、初始化程序,以及控制程序等,保证输入/输出操作的顺利完成。
- 利用中断、通道等技术,尽可能地使CPU与外部设备、外部设备与外部设备之间并行工作,以提高整个系统的工作效率。
- 根据不同的设备特点,采用优化策略,从而对具体设备的使用更趋合理和有效。
文件管理的主要工作:
- 维持一个目录表,里面登记有每一个文件的名称和有关信息(这就是该文件的目录项)。当用户通过文件名来访问某文件时,可以通过查目录表找到它的目录项,从而完成所需的读/写操作。
- 由于文件都存放在外存上,要随时记住外存上文件存储空间的使用情况,哪些已经分配,哪些为待分配。
- 制定文件存储空间的分配策略,实施具体的分配和回收。
- 确保存放在外存上文件的安全、保密和共享。
- 提供一系列文件的使用命令,以便用户能对文件进行存取、检索和更新等操作。
操作系统的种类
批处理操作系统
单道批处理操作系统
要求系统配置管理程序,以保证一个个作业程序能自动地进入内存加以处理,此时人工不得干预。
工作过程:
用户为自己的作业编写程序和准备数据,同时编写控制作业运行的作业说明书。然后将它们一并交给操作员。
- 操作员将收到的一批作业信息存入辅助存储器中等待处理。
- 单道批处理操作系统从辅助存储器中依次选择作业,按其作业说明书的规定自动控制它的运行,并将运行结果存入辅助存储器。
- 操作员将该批作业的运行结果打印输出,并分发给用户。
特点:
- 单路性:每次只允许一个用户程序进入内存。
- 独占性:整个系统资源被进入内存的一个程序独占使用,因此资源利用率不高。
- 自动性:作业一个一个地自动接受处理,期间任何用户不得对系统的工作进行干预。由于没有了作业上、下机时用户手工操作耗费的时间,提高了系统的吞吐量。
- 封闭性:在一批作业处理过程中,用户不得干预系统的工作。即便是某个程序执行中出现一个很小的错误,也只能等到这一批作业全部处理完毕后,才能进行修改,这给用户带来不便。
多道批处理操作系统
在单道批处理的基础上,引入多道程序设计技术,就产生了多道批处理操作系统。
用户为自己的作业编写程序和准备数据,同时编写控制作业运行的作业说明书,然后将它们一并交给操作员。其工作过程如下:
- 操作员将收到的一批作业信息存入辅助存储器中等待处理。
- 多道批处理操作系统中的作业调度程序从辅助存储器里的该批作业中选出若干合适的作业装入内存,使它们不断地轮流占用CPU来执行,使用各自所需的外部设备。若内存中有作业运行结束,再从辅助存储器的后备作业中选择对象装入内存执行。
- 操作员将该批作业的运行结果打印输出,分发给用户。
特点:
- 多路性:每次允许多个用户程序进入内存,它们轮流交替地使用 CPU,提高了内存储器和CPU的利用率。
- 共享性:整个系统资源被进入内存的多个程序共享使用,因此整个系统资源的利用率较高。
- 自动性:作业处理期间,任何用户不得对系统的工作进行干预。由于没有了作业上、下机时用户手工操作耗费的时间,提高了系统的吞吐量。
- 封闭性:在一批作业处理过程中,用户不得干预系统的工作。即便是某个程序执行中出现一个很小的错误,也只能等到这一批作业全部处理完毕后才能进行修改,这给用户带来不便。
分时操作系统
将多道程序设计技术与分时技术结合在一起,就产生了分时操作系统。配有分时操作系统的计算机系统称为分时系统。
所谓分时系统,即一台计算机与多个终端设备连接,最简单的终端可以由一个显示器和一个键盘组成。每个用户通过终端向系统发出命令,请求系统为其完成某项工作。系统根据用户的请求完成指定的任务,并把执行结果返回。这样,用户可以根据运行结果,再次通过终端向系统提出下一步请求。重复这种交互会话的过程,直至每个用户实现自己的预定目标。
分时系统之所以能在较短的时间内响应用户的请求,同时为多个终端用户提供服务,主要是因为在分时操作系统中采用了“时间片轮转”的处理机调度策略。
这种调度策略是把处理机时间划分成一个个很短的“时间片”,对提出请求的每个联机用户终端,系统轮流分配一个时间片给其使用。若在一个时间片内,用户所请求的工作未能全部做完,就会被暂时中断执行,等待下一轮循环再继续做,让出的CPU被分配给另一个终端使用。
由于计算机的处理速度很快,只要时间片的间隔取得适当,用户就不会感觉到从一个时间片跨越到另一个时间片之间的“停顿”,好像整个系统全由他“独占”使用似的。
特点:
- 多路性:在一台主机上连接多个用户终端。从宏观上看,多个用户同时工作,共享系统的资源;从微观上看,各终端程序是轮流使用一个时间片的。多路性提高了系统资源的整体利用率。
- 交互性:用户在终端上能随时通过键盘与计算机进行“会话”,从而获得系统的各种服务,并控制作业程序的运行。交互性使用户能随时掌握自己作业程序的执行情况,为用户调试、修改以及控制程序的执行提供了极大的便利。
- 独立性:每个用户在自己的终端上独立操作,互不干扰,感觉不到其他用户的存在,就如同自己“独占”该系统似的。
- 及时性:用户程序轮流执行CPU的一个时间片,但由于计算机的高速处理能力,能保证在较短和可容忍的时间内,响应和处理用户请求。
实时操作系统
所谓“实时”,是指能够及时响应随机发生的外部事件,并对事件做出快速处理的一种能力。
特点:
- 实时性:分时系统的“及时性”,是一种在用户可以容忍的时间内响应用户请求的时间性能。对于实时系统而言,这种及时性应该表现为更高,对外部事件信号的接收、分析处理以及给出反馈信号进行控制,都必须在严格的时间限度内完成。因此,这时的及时性称为“实时性”。
- 可靠性:无论是实时控制系统还是实时信息处理系统,都必须有高度的可靠性。例如对于后者,计算机在接收到远程终端发来的服务请求后,系统应该根据用户提出的问题,对信息进行检索和处理,并在有限的时间内做出正确的回答。
网络操作系统
在网络范围内,用于管理网络通信和共享资源,协调各计算机上任务的运行,并向用户提供统一的、有效方便的网络接口的程序集合,就称为“网络操作系统”。
基本功能:
- 网络通信:为通信双方建立和拆除通信通路,实施数据传输,对传输过程中的数据进行检查和校正。
- 资源管理:采用统一、有效的策略,协调诸用户对共享资源的使用,用户使用远地资源如同使用本地资源一样。
- 提供网络服务:向用户提供多项网络服务,比如电子函件服务,它为各用户之间发送与接收信息,提供了一种快捷、简便、廉价的现代化通信手段。
- 提供网络接口:向网络用户提供统一的网络使用接口,以便用户能方便地上网,使用共享资源,获得网络提供的各种服务。
特点:
- 自治性:在网络中的每台计算机都有自己的内存和输入/输出设备,装有自己的操作系统,因此具有很强的自治性,能独立承担分配给它的任务。
- 分散性:系统中的计算机分布在不同的地域。
- 互联性:网络中分散的计算机及各种资源,通过通信线路实现物理上的连接,进行信息传输和资源共享。
- 统一性:网络中的计算机,使用统一的网络命令。
分布式操作系统
如果一个计算机网络系统,其处理和控制功能被分散在系统的各个计算机上,系统中的所有任务可动态地分配到各个计算机中,使它们并行执行,实现分布处理。这样的系统被称为“分布式系统”,其上配置的操作系统,被称为“分布式操作系统”。
在分布式系统里,其操作系统是以全局的方式来管理系统的。当用户把自己的作业交付给系统后,分布式操作系统会根据需要,在系统里选择最适合的若干台计算机去并行完成这项任务;在执行任务的过程中,分布式操作系统会随意调度使用网络中的各种资源;在完成任务后,分布式操作系统会自动把结果传送给用户。这样的一个处理过程,对用户来说都是“透明”的。也就是说,用户根本感知不到会有多个计算机为自己服务。
用户只需要提出他需要什么(比如,访问一个文件),不需要具体指出他所需要的资源在哪里。
特点:
- 并行性:分布式系统采用并行处理技术来提高性能。一方面,系统内有多个实施处理的部件(比如计算机),可以进行真正的并行操作;另一方面,分布式操作系统的功能也被分解成多个任务,分配到系统的多个处理部件中同时执行,系统只需保证处理过程中的一致性。这样的特点,提高了系统的吞吐量,缩短了响应时间。
- 扩展性:随着用户在功能、性能上需求的增加,就需要增加新的部件或新的功能模块。分布式系统可以方便地满足这方面的需要。
- 可靠性:由于分布式系统把工作负担分散到众多的机器上,单个部件的故障最多只会影响到一台机器,其他机器不会受到干扰。
- 共享性:分布式系统在全系统范围内实现资源的动态分配,平衡负载,用户只需提出需要什么,无需知道他所使用的资源在何处。这样的资源共享,能够使系统的性能得到最佳的发挥。
- 健壮性:由于分布式系统的处理和控制功能是分布的,任何站点发生的故障都不会给整个系统造成太大的影响。另外,当系统中的设备出现故障时,可以通过容错技术实现系统的重构,以保证系统的正常运行。这表明,分布式系统具有健壮性。
嵌入式操作系统
有一种特殊的计算机应用,它们把计算机嵌入在某种设备中,对其进行实时监控和管理。在这种应用中,所有的计算机软件都事先保存在ROM里,不允许用户在应用时安装软件。这样的系统称为“嵌入式系统”。运行在嵌入式系统中的操作系统,称为“嵌入式操作系统”。
嵌入式操作系统除了具备一般操作系统最为基本的功能(如任务调度、同步机制、中断处理、文件功能),通常还要求设计得非常小巧而有效,它必须面向用户、面向产品、面向应用。
特点:
- 实时性:嵌入式系统广泛应用于过程控制、数据采集、通信、多媒体信息处理等要求获得快速响应的设备中。因此,嵌入式操作系统都应该是实时操作系统。
- 可靠性:嵌入式系统一旦开始运行,用户就很少干预。因此,负责系统管理的嵌入式操作系统必须稳定、可靠,不能有任何差错。
- 可操作性:嵌入式系统的操作应该便捷、简单,有友好的用户界面,易学易用。
- 专业性:嵌入式的硬件平台多种多样,应用更是繁多。但是,对某一个个体的应用场合而言,一旦确定,就不能轻易改变。
- 微型性:嵌入式操作系统的运行平台不是普通的计算机,而是嵌入在设备中的特殊计算机,它没有太多的内存可用,几乎不使用辅助存储器。因此,嵌入式操作系统必须做得非常小,以尽量少占用系统资源。嵌入式系统中的软件,都被固化在存储器芯片或单片机中。
- 可剪裁性:基于应用的多样化,嵌入式操作系统应该具有很强的适应能力,能够根据应用系统的特点和要求灵活配置,方便剪裁,伸缩自如。