计算机操作系统教程(第3版)张尧学史美林张高编著•课程名称:操作系统(OperatingSystem-OS)不是针对某一具体操作系统介绍,而是讲解操作系统原理、操作系统设计原则、实现技术。概念掌握系统思想•课程的地位:是一门重要的专业理论课•课程目标:(1)理解操作系统原理,更好地使用操作系统。(2)借鉴操作系统技术,指导今后的工作。•课程特点:工程型、内容繁杂、多用户的角度参考书:(1)AbrahamSilberschats.AppliedOperatingSystemConcepts.JohnWiley&Sons.Inc.2001年(2)滕至阳.现代操作系统教程.高等教育出版社.2000年(3)屠祁,屠立德.操作系统基础.清华大学出版社.2001年总目录第1章绪论第2章操作系统用户界面第3章进程管理第4章处理机调度第5章存储管理第6章进程与存储管理示例第7章文件系统第8章设备管理第9章文件和设备管理示例第10章面向对象操作系统的设计BigMenBillGatesLinusTorvaldsSteveJobs(1955-2011)(left)KenThompson(right)DennisRitchie(1941-2011)第1章绪论1.1操作系统概念1.2操作系统的历史1.3操作系统的基本类型1.4操作系统功能1.5计算机硬件简介1.6算法的描述1.7研究操作系统的几种观点习题20计算机发展到今天,从个人计算机到巨型计算机系统,毫无例外都配置一种或多种操作系统。什么是操作系统,操作系统在计算机系统中的地位,它具有什么样的功能等,我们将在这一章作一简要阐述。为了阐明这些问题,扼要地回顾一下操作系统的形成和发展过程是必要的。为便于今后的学习,我们要介绍一下操作系统的类型及其特点,研究操作系统的几种观点。最后,介绍几种常用操作系统。1.1操作系统概念1.1.1什么是操作系统任何一个计算机系统都是由两部分组成:计算机硬件和计算机软件。计算机硬件通常是由中央处理机(运算器和控制器)、存储器、输入设备和输出设备等部件组成。计算机软件包括系统软件和应用软件。系统软件如操作系统、多种语言处理程序(汇编和编译程序等)、连接装配程序、系统实用程序、多种工具软件等;应用软件为多种应用目的而编制的程序。操作系统是什么?为什么需要操作系统?操作系统有哪些基本功能?三个问题:操作系统是什么?•每一个计算机系统都配备有操作系统我买了一台win7电脑我还不会用苹果电脑,正在学我们公司的服务器用的是Solaris系统我的智能手机是用Android系统计算机系统≠操作系统学电脑=学操作系统?•计算机系统的组成软件是为运行、管理和维护计算机而编制的各种程序、数据文档的总称。包括系统软件和应用软件两大部分。硬件是组成计算机系统的各种物理器件的总称,是计算机的物理基础,包括CPU、存储器、输入和输出设备等。计算机系统:硬件+软件•操作系统•语言处理程序•连接装配程序•系统实用程序•系统工具软件•操作系统与计算机软硬件的关系实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机。没有任何软件支持的计算机称为裸机,它仅仅构成了计算机系统的物质基础。虚拟机/扩展机操作系统对内管理裸机,对外响应用户用户为什么需要操作系统?1)从系统管理的观点来看:引入操作系统是为了合理地组织计算机工作流程,管理和分配计算机系统硬件及软件资源,使之能为多个用户高效率地共享。因此,操作系统是计算机资源的管理者。2)从用户的观点来看:引入操作系统是为了给用户使用计算机提供一个良好的界面,以使用户无需了解许多有关硬件和系统软件的细节,就能方便灵活地使用计算机。3)从发展的观点来看:引入操作系统是为了给计算机系统的功能扩展提供支撑平台,使之在追加新的服务和功能时更加容易和不影响原有的服务与功能。系统管理用户发展操作系统的定义操作系统是计算机系统中的一个系统软件,它是这样一些程序模块的集合——它们管理和控制计算机系统中的硬件及软件资源,合理地组织计算机工作流程,以便有效地利用这些资源为用户提供一个功能强大、使用方便和可扩展的工作环境,从而在计算机与其用户之间起到接口的作用。•操作系统的物理形态:程序模块的集合•操作系统的功能:管理硬件及软件资源;提供与用户的接口;•操作系统的目标:有效利用资源;方便用户使用计算机;1.2操作系统的历史为了更好地理解操作系统的基本概念、功能和特点,首先回顾一下操作系统形成和发展的历史过程。操作系统是由于客观的需要而产生的,它伴随着计算机技术本身及其应用的日益发展而逐渐发展和不断完善。它的功能由弱到强,在计算机系统中的地位不断提高。至今,它已成为计算机系统中的核心,无一计算机系统是不配置操作系统的。由于操作系统历来跟运行其上的计算机组成与体系结构休戚与共,因此我们考察各代计算机,看看它们的操作系统是什么样子,具有哪些功能和特征。人们通常按照器件工艺的演变把计算机发展过程分为四个阶段。1946年—50年代末:第一代,电子管时代,无操作系统。50年代末—60年代中期:第二代,晶体管时代,批处理系统。60年代中期—70年代中期:第三代,集成电路时代,多道程序设计。70年代中期至今:第四代,大规模和超大规模集成电路时代,分时系统。现代计算机正向着巨型、微型、并行、分布、网络化和智能化几个方面发展着。适应上述计算机发展过程,操作系统经历了如下的发展过程:手工操作阶段(无操作系统)、批处理、执行系统、多道程序系统、分时系统、实时系统、通用操作系统、网络操作系统、分布式操作系统等。1.2.1手工操作阶段在第一代计算机时期,构成计算机的主要元器件是电子管,计算机运算速度慢,没有操作系统,甚至没有任何软件。用户直接用机器语言编制程序,并在上机时独占全部计算机资源。上机完全是手工操作:先把程序纸带(或卡片)装上输入机,然后启动输入机把程序和数据送入计算机,接着通过控制台开关启动程序运行。计算完毕,打印机输出计算结果,用户取走并卸下纸带(或卡片)。主机打印机控制台1.2.2早期批处理(batchprocessing)50年代后期,计算机的运行速度有了很大提高,手工操作的慢速度和计算机的高速度之间形成矛盾。唯一的解决办法是摆脱人的手工操作,实现作业的自动过渡。这样就出现了批处理。如上所述,在计算机发展的早期阶段,由于没有任何用于管理的软件,所有的运行管理和具体操作都由用户自己承担。作业由许多作业步组成,任何一步的错误操作都可能导致该作业从头开始。当时,计算机极其昂贵,计算机(CPU)的时间非常宝贵,尽可能提高CPU的利用率成为十分迫切的任务。解决的途径有两个:首先配备专门的计算机操作员,程序员不再直接操作机器,减少操作机器的错误。另一个重要措施是进行批处理,操作员把用户提交的作业分类,把一批中的作业编成一个作业执行序列。每一批作业将有专门编制的监督程序(monitor)自动依次处理。早期的批处理可分为两种方式。1.联机批处理慢速的输入输出(I/O)设备是和主机直接相连。作业的执行过程为:(1)用户提交作业:作业程序、数据,用作业控制语言编写的作业说明书;(2)作业被作成穿孔纸带或卡片;(3)操作员有选择地把若干作业合成一批,通过输入设备(纸带输入机或读卡机)把它们存入磁带;(4)监督程序读入一个作业(若系统资源能满足该作业要求);(5)从磁带调入汇编程序或编译程序,将用户作业源程序翻译成目标代码;(6)连接装配程序把编译后的目标代码及所需的子程序装配成一个可执行程序;(7)启动执行;(8)执行完毕,由善后处理程序输出计算结果;(9)再读入一个作业,重复(5)—(9)各步;(10)一批作业完成,返回到(3),处理下一批作业。这种联机批处理方式解决了作业自动转接,从而减少作业建立和人工操作时间。但是在作业的输入和执行结果的输出过程中,主机CPU仍处在停止等待状态,这样慢速的输入输出设备和快速主机之间仍处于串行工作,CPU的时间仍有很大的浪费。2.脱机批处理这种方式的显著特征是增加一台不与主机直接相连而专门用于与输入输出设备打交道的卫星机。如图1.2所示。卫星机的功能是:(1)输入设备通过它把作业输入到输入磁带;(2)输出磁带将作业执行结果输出到输出设备。这样,主机不是直接与慢速的输入输出设备打交道,而是与速度相对较快的磁带机发生关系。主机与卫星机可以并行工作,二者分工明确,以充分发挥主机的高速度计算能力。因此脱机批处理和早期联机批处理相比大大提高了系统的处理能力。图1.2早期脱机批处理模型批处理出现于20世纪50年代末到60年代初。它的出现促使了软件的发展。再有重要的是监督程序,它管理作业的运行——负责装入和运行各种系统处理程序,如汇编程序、编译程序、连接装配程序、程序库(如输入输出标准程序等);完成作业的自动过渡,同时也出现程序覆盖等程序设计技术。批处理仍有些缺点:磁带需人工拆装,既麻烦又易出错;而另一个更重要的问题是系统的保护。让我们来回忆一下在监督程序管理下的解题过程,如图1.3所示。图1.3监督程序管理下的解题过程在进行批处理过程中,监督程序、系统程序和用户程序之间存在着一种调用关系,任何一个环节出问题,整个系统都会停顿;用户程序也可能会破坏监督程序和系统程序,这时,只有操作员进行干预才能恢复。20世纪60年代初期,硬件获得了两方面(即通道和中断技术)的进展,导致操作系统进入执行系统阶段。通道是一种专用处理部件,它能控制一台或多台输入输出设备工作,负责输入输出设备与主存之间的信息传输。它一旦被启动就能独立于CPU运行,这样可使CPU和通道并行操作,而且CPU和多种输入输出设备也能并行操作。中断是指当主机接到外部信号(如输入输出设备完成信号)时,马上停止原来工作,转去处理这一事件,处理完毕后,主机回到原来的断点继续工作。借助于通道、中断技术和输入输出可在主机控制下完成批处理。这时,原来的监督程序的功能扩大了,它不仅要负责作业运行的自动调度,而且还要提供输入输出控制功能。这个发展了的监督程序常驻内存称为执行系统。执行系统实现的也是输入输出联机操作,和早期批处理系统不同的是:输入输出工作是由在主机控制下的通道完成的。主机和通道、主机和输入输出设备都可以并行操作。用户程序的输入输出工作都是由系统执行而没有人工干预,由系统检查其命令的合法性,以避免不合法的输入输出命令造成对系统的影响,从而提高系统的安全性。此时,除了输入输出中断外,其他中断如算术溢出和非法操作码中断等可以克服错误停机,而时钟中断可以解决用户程序中出现的死循环等。许多成功的批处理系统在20世纪50年代末和60年代初出现,典型的操作系统是FMS(FortranMonitorSystem)即FORTRAN监督系统和IBM/7094机上的IBM操作系统IBSYS。执行系统实现了主机、通道和输入输出设备的并行操作,提高了系统效率,方便用户对输入输出设备的使用。但是,这时计算机系统运行的特征是单道顺序地处理作业,即用户作业仍然是一道一道作业顺序处理。那么可能会出现两种情况:对于以计算为主的作业,输入输出量少,外围设备空闲;然而对于以输入输出为主的作业,又会造成主机空闲。这样总的来说,计算机资源使用效率仍然不高。因此操作系统进入了多道程序阶段:多道程序合理搭配交替运行,充分利用资源,提高效率。输入井输出井读卡机打印机I/O请求磁盘通道执行系统示意图CPU1.2.3多道程序系统上述批处理系统,每次只调用一个用户作业程序进入内存并运行,称为单道运行。图1.4(a)给出了单道程序工作示例。而图1.4(b)给出了多道程序工作示例。在单处理机系统中,多道程序运行的特点是:(1)多道:计算机内存中同时存放几道相互独立的程序。(2)宏观上并行:同时进入系统的几道程序都处于运行过程中,即它们先后开始了各自的运行,但都未运行完毕。(3)微观上串行:实际上,各道程序轮流使用CPU,交替执行。输入井输出井读卡机打印机I/O请求磁盘通道P1P2P3P4P5多道程序设计系统示意图CPU(a)单道程序工作示例(b)多道程序工作示例图1.4在批处理系统中