系统架构设计师系统架构设计师教程(第3版)第1章操作系统本章主要介绍操作系统的基本概念及其形成、发展历史和主要类型,并指出操作系统的5大管理功能。掌握操作系统原理的关键在于深入理解一个观点、两条线索.一个观点是以资源管理的观点来定义操作系统;两条线索是操作系统如何管理计算机各类资源和控制程序的执行。操作系统如何实现对这些资源的管理,其内涵、设计和实现是本章的主要内容。1.1操作系统的类型与结构计算机系统由硬件和软件两部分组成。操作系统是计算机系统中最基本的系统软件,它既管理计算机系统的软、硬件资源,又控制程序的执行。操作系统随着计算机研究和应用的发展进步形成并日趋成熟,它为用户使用计算机提供了一个良好的环境,从而使用户能充分利用计算机资源,提高系统的效率。操作系统的基本类型有:批处理操作系统、分时操作系统和实时操作系统。从资源管理的观点看,操作系统主要是对处理器、存储器、文件、设备和作业进行管理。1.1.1操作系统的定义系统中的硬件和软件资源,合理地组织计算机工作流程和有效地利用资源,在计算机与用户之间起接口的作用。操作系统与硬件/软件的关系如图1-1所示。系统架构设计师图1-1操作系统与硬件/软件的关系1.1.2操作系统分类按照操作系统的功能划分,操作系统的基本类型有批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统、嵌入式操作系统等。1.批处理操作系统在批处理操作系统(BatchProcessingOperatingSystem,BPOS)中,系统操作员将作业成批地输入计算机,由操作系统选择作业调入内存加以处理,最后由操作员将运行结果交给用户。批处理操作系统有两个特点:一是多道,指系统内可同时容纳多个作业;二是成批,指系统能成批自动运行多个作业,在运行过程中不允许用户与其作业发生交互作用。所以,合理地调度和管理系统资源是操作系统的主要任务。资源使用的有效性和作业的吞吐量是多道批处理操作系统的主要设计目标,同时也要兼顾作业的周转时间。2.分时操作系统在计算机架构发展中,引进了中断和通道技术,于是就有了分时的概念。分时操作系统(TimeShareOperatingSystem,TSOS)是指一台计算机连接多个终端,系统把CPU(CentralProcessUnit,中央处理单元)时间分为若干时间片,采用时间片轮转的方式处理用户的服务请求。对每个用户能保证足够快的响应时间,并提供交互会话能力。在计算机系统中,分时的概念是指两个或两个以上事件按时间划分轮流地使用系统中的某一资源。实际系统架构设计师上,在多道程序系统中,内存中的诸作业程序也是分时使用CPU的。分时操作系统具有多用户同时性、交互性、独立性、及时性等特点。3.实时操作系统计算机不但广泛应用于科学计算和数据处理方面,也广泛应用于工业生产过程中的通常称之为实时控制的自动控制,实验室中的实验过程控制,导弹发射控制,票证预订管理等应用领域。实时系统是随着计算机应用于实时控制和实时信息处理领域中而发展起来的。实时是指及时响应随机发生的外部事件的请求,并以足够快的速度完成对外部事件的处理,控制所有实时设备和实时任务协调一致地运行。实时系统包括实时控制系统和实时处理系统。实时控制指生产过程控制等。实时处理指实验数据采集、订票系统等;实时系统的主要特点是及时性和高可靠性。4.网络操作系统网络操作系统(NetworkOperatingSystem,NOS)是建立在各结点计算机的操作系统之上,用于管理网络通信和共享资源,协调各结点计算机上任务的运行,并向用户提供统一、有效的网络接口的一组系统软件。网络用户只有通过网络操作系统才能为其提供各种网络服务。网络操作系统的主要任务是用统一的方法管理整个网络中共享资源的使用和协调处理任务。它应具有下述4个基本功能:(1)网络通信。实现源计算机与目标计算机之间的无差错数据传输。它包括为通信双方建立通信链路;对传输过程中的数据差错进行检查和校正,并使发送、接收速度匹配;在传输任务完成后,拆除通信链路。(2)资源管理。采用统一、有效的方法协调多个用户对共享资源的使用,使用户能很方便地使用远程资源。对资源的具体管理和控制,仍由其主机的操作系统实现。系统架构设计师(3)提供多种网络服务。主要的网络服务有:远程作业录入服务,使用户能将作业传输到远程结点计算机进行批处理,并将结果回送给用户;电子邮件服务,为用户传输实时和非实时的电子邮件;文件传送、访问和管理服务,使用户能方便地访问远程结点的文件。(4)提供网络接口。向网络用户提供统一、有效的网络共享资源和得到网络服务的网络接口。5.分布式操作系统从计算机发展趋势来看,计算机的架构开始向并行处理技术和多处理机的计算机系统结构的方向发展。分布式操作系统是为分布式计算机系统配置的操作系统。它在多计算机系统环境下,负责控制和管理以协同方式工作的各类系统资源和分布式进程的同步,并执行和处理机间的通信、调度与分配等控制事务,自动实行全系统范围内的任务分配和负载平衡。它是具有高度并行性、故障检测和重构能力的一种高级软件系统。分布式操作系统(DistributedOperatingSystem,DOS)与网络操作系统都工作在一个由多台计算机组成的系统中,这些计算机之间可以通过一些传输设备来进行通信和共享系统资源。分布式操作系统更倾向于任务的协同执行,并且各系统之间无主次之分,也无须采用标准的通信协议进行通信。它基本上废弃(或改造)了各单机的操作系统,整个网络设有单一的操作系统,由这个操作系统负责整个系统的资源分配和调度,为用户提供统一的界面。用户在使用分布式操作系统时,不需要像使用网络操作系统那样指明资源在哪台计算机上,因此分布式操作系统的透明性、坚强性、统一性及系统效率都比网络操作系统要强,但实现起来难度也大。6.嵌入式操作系统嵌入式系统是指将操作系统和功能软件集成于计算机硬件系统之中,简单地说就是系统系统架构设计师的软件与系统的硬件一体化,类似于BIOS(BasicInputOutputSystem,基本输入输出系统)的工作方式,具有软件体积小,高度自动化,响应速度快等特点。根据IEEE(InstituteofElectricalandElectronicsEngineers,美国电气和电子工程师协会)的定义,嵌入式系统是用于控制、监视或者辅助操作机器和设备的装置。此定义是从应用上考虑的,嵌入式系统是软件和硬件的综合体,还可以涵盖机电等附属装置。嵌入式系统是以应用为中心、以计算机技术为基础、软硬件可裁减,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。广而言之,可以认为凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。嵌入式系统采用量体裁衣的方式把所需的功能嵌入到各种应用系统中,它融合了计算机软硬件技术、通信技术和半导体微电子技术,是信息技术的最终产品。7.微内核操作系统微内核操作系统结构是20世纪80年代后期发展起来的,其基本思想是将操作系统中最基本的部分放入内核中,而把操作系统的绝大部分功能都放在微内核外面的一组服务器中实现。这样使得操作系统内核变得非常小,自然提高了系统的可扩展性,增强了系统的可靠性和可移植性,同时微内核操作系统提供了对分布式系统的支持,融入了面向对象技术。虽然微内核操作系统具有诸多优点,但它也并非完美无缺,在运行效率方面它就不如以前传统的操作系统。当前比较流行的、能支持多处理机运行的操作系统,几乎全部都采用了微内核结构,如卡耐基梅隆大学研制的MachOS,便属于微内核结构操作系统;又如当前广泛使用的Windows操作系统,也采用了微内核结构。系统架构设计师操作系统基本原理操作系统的主要功能是进行处理机与进程管理、存储管理、设备管理、文件管理和作业管理,本节讨论操作系统是如何完成这些功能的。1.2.1进程管理处理机是计算机系统的核心资源。操作系统的功能之一就是处理机管理。随着计算机的迅速发展,处理机管理显得更为重要,这主要由于:计算机的速度越来越快,处理机的充分利用有利于系统效率的大大提高;处理机管理是整个操作系统的重心所在,其管理的好坏直接影响到整个系统的运行效率;而且操作系统中并发活动的管理和控制是在处理机管理下实现的,它集中了操作系统中最复杂的部分,它设计的好坏关系到整个系统的成败,进程(process)是处理机管理中最基本的、最重要的概念。进程是系统并发执行的体现。由于在多道程序系统中,众多的计算机用户都以各种各样的任务,随时随地争夺使用处理机。为了动态地看待操作系统,则以进程作为独立运行的基本单位,以进程作为分配资源的基本单位,从进程的观点来研究操作系统。因此,处理机管理也被称为进程管理。处理机管理的功能就是组织和协调用户对处理机的争夺使用,把处理机分配给进程,对进程进行管理和控制,以最大限度发挥处理机的作用。1.进程的概念用静态的观点看,操作系统是一组程序和表格的集合。用动态的观点看,操作系统是进程的动态和并发执行的。而进程的概念实际上是程序这一概念发展的产物。因此,可以从分析程序的基本特征入手,引出进程的概念。顺序程序是指程序中若干操作必须按照某种先后次序来执行,并且每次操作前和操作后的数据、状态之间都有一定的关系。在早期的程序设计中,程序一般都是顺序地执行的。系统架构设计师在多道程序系统中,程序的运行环境发生了很大的变化。主要体现在:(1)资源共享。为了提高资源的利用率,计算机系统中的资源不再由一道程序专用,而是由多道程序共同使用。(2)程序的并发执行或并行执行。逻辑上讲:允许多道不同用户的程序并行运行;允许一个用户程序内部完成不同操作的程序段之间并行运行;允许操作系统内部不同的程序之间并行运行。物理上讲:内存储器中保存多个程序,I/O设备被多个程序交替地共享使用;多处理机系统的情形下,表现为多个程序在各自的处理机上运行,执行时间是重叠的。单处理机系统时,程序的执行表现为多道程序交替地在处理机上相互空插运行。实际上,在多道程序系统中,程序的并行执行和资源共享之间是相辅相成的。一方面,只有允许程序并行执行,才可能存在资源共享的问题;另一方面,只有有效地实现资源共享,才可能使得程序并行执行。这样,可增强计算机系统的处理能力和提高机器的利用率。并发操作实际上是这样的事实:大多数程序段只要求操作在时间上是有序的,也就是有些操作必须在其他操作之前。这是有序的,但其中有些操作却可以同时进行。2.进程的定义与分类由于多道程序系统环境下并行程序执行的特征:并发性、动态性、开放性和相互制约,这样,使用程序的概念就不能如实地反映程序活动的这些特征,必须引入新的概念--进程。操作系统内在最本质的特征是动态性和并发性,而进程正反映了动态性和并发性等特征。程序的并行执行具有如下特征:(1)并发性。即并发程序的若干个程序段同时在系统中运行,这些程序段的执行在时间上是重迭的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,即使这种重迭系统架构设计师是很小的一部分,也称这几个程序段是并发执行的。(2)动态性。指程序与其执行活动不再一一对应。并发程序中的并发活动是动态产生、动态消亡的。如,几道并发执行的C语言程序共享C编译系统,在这种情况下,-个编译程序能同时为多道程序服务,每个程序调用-次就是执行一次,即这个编译程序对应多个执