1、计算机操作系统教程(第三版)第1章 计算机操作系统概述 1.1 存储程序式计算机模型 1.2 操作系统的发展历史 1.3 操作系统的基本概念 1.4 操作系统的硬件介绍 1.5 操作系统的逻辑模型 1.6 操作系统简介 开开 始始本章学习目标操作系统的作用操作系统的发展操作系统的特征与功能多道程序设计的概念操作系统的模型返回本章首页返回本章首页1.1 存储程序式计算机模型 1.1.1 作为扩展机器的操作系统 1.1.2 作为资源管理的操作系统 返回本章首页返回本章首页储程序式计算机模型 储程序式计算机模型的基本方案是,如要使计算机能够自动地计算,必须有一个存储器用来存储程序和数据;同时要有一个
2、运算器,用以执行指定的操作;有一个控制器,以便实现自动操作;另外,辅以输入/输出部件,以便输入原始数据和输出计算结果。于是形成了现代计算机的基本组成形式。如图1.1所示。图图1.1 存储程序计算机的组成存储程序计算机的组成 返回本节返回本节1.1.1 作为扩展机器的操作系统 一台完全无软件的计算机系统称为裸机,即便其性能再强,相对于用户来讲,如果要面对计算机的指令集、存储组织、I/O总线结构的编程则是十分困难的。对于一般程序员也并不想涉足硬件编程的种种具体细节,而希望针对数据结构抽象地使用硬件。如果我们在裸机上覆盖一层I/O设备管理软件,用户便可以利用这层I/O设备管理软件提供给用户的接口来进
3、行数据的输入和输出,那么用户此时看到的计算机是一台功能强大、使用方便的计算机,但实际上,计算机的硬件丝毫没有变化,这样的计算机称为软件扩充的机器,或称软件虚拟机。返回本节返回本节1.1.2 作为资源管理的操作系统 从作为机器功能扩充的观点看,操作系统是为用户提供基本的方便的接口,这是一种自顶向下的观点或是自内向外的观点。但是从用户向机器的观点或自底向上的观点来看,操作系统则用来管理一个复杂计算机系统的各个部分。现代计算机包含处理器、存储器、时钟、磁盘、终端、网络接口、打印机以及许多其他设备。从这个角度来看,操作系统的任务是在相互竞争的程序之间有序地控制对处理器、存储器以及其他I/O接口设备的分
4、配。返回本节返回本节1.2 操作系统的发展历史 1.2.1 无操作系统的计算机 1.2.2 单道批处理系统与多道批处理系统及执行系统 1.2.3 分时系统 1.2.4 实时系统 1.2.5 微机操作系统、网络操作系统与分布式操作系统 返回本章首页返回本章首页1.2.1 无操作系统的计算机 从第一代计算机诞生到20世纪50年代中期还未出现操作系统,这时的计算机采用人工操作方式。其过程是:图图1.2 手工操作计算机手工操作计算机返回本节返回本节1.2.2 单道批处理系统与多道批处理系统及执行系统 所谓批处理系统是指加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地成批地处理一个或多个用户
5、的作业。首先出现的是联机批处理系统。如下图1.3所示。下一页下一页脱离主机控制的输入/输出批处理系统 在外设处理数据时,主机处理“忙等”状态,这样高速的主机与慢速的外设矛盾就显现出来。为了克服与缓解主机与外设的矛盾。我们引入脱机批处理系统,即脱离主机控制的输入/输出批处理系统。如图1.4所示。下一页下一页图图1.4 脱机批处理系统脱机批处理系统下一页下一页 在单道批处理系统中,内存中仅有一道作业,中断和通道技术出现以后,虽然可以实现输入/输出设备与中央处理机并行操作,但由于属于同一道作业的可并发执行的进程不多,大多数进程是有同步关系的,这使系统中仍有较多的空闲资源,致使系统的性能较差。为了进一
6、步提高资源的利用率和系统对作业的吞吐量,在60年代中期,引入了多道程序设计技术,由此而形成了多道批处理系统。单道程序与多道程序的执行过程如图1.5和图1.6所示。下一页下一页下一页下一页在操作系统中引入多道程序设计技术以后,会使系统具有以下特征。(1)多道性 (2)无序性 (3)宏观上并行、微观上串行 (4)调度性 返回本节返回本节1.2.3 分时系统 分时技术是把处理机的时间分成很短的时间片,这些时间片轮流地分配给各个联机的各作业使用。如果某作业在分配给它的时间片用完时仍未完成,则该作业就暂时中断,等待下一轮运行,并把处理机的控制权让给另一个作业使用。这样在一个相对较短的时间间隔内,每个用户
7、作业都能得到快速响应,以实现人机交互。分时系统与多道批处理系统相比,具有完全不同的特征,由上所述可以归纳成以下几点:(1)多路性)多路性(2)独立性)独立性(3)及时性)及时性(4)交互性)交互性 返回本节返回本节1.2.4 实时系统 1实时操作系统的分类 2实时操作系统的主要目标1实时操作系统的分类 l 实时控制:当计算机应用于生产过程的控制形成以计算机为中心的控制系统时,系统要求能实时采集现场数据,并对所采集的数据进行及时处理,从而自动地控制相应的执行机构,使某些参数(如湿度、压力、液位)能按预定的规律变化,以保证产品的质量和提高产量。l 实时信息处理:通常,我们把要求对信息进行实时处理的
8、系统称为实时信息处理系统。2实时操作系统的主要目标(1)实时时钟管理。(2)连续人机对话。(3)过载防护。(4)高可靠性。返回本节返回本节1.2.5 微机操作系统、网络操作系统与分布式操作系统 微机操作系统 到20世纪80年代,随着超大规模集成电路的发展产生了微型计算机,配置在微机上的操作系统称为微机操作系统。最早出现的微机操作系统是8位微机上的CP/M,它是一个单用户单任务操作系统,即只允许一个用户上机,且只允许用户程序作为一个任务运行。计算机网络 计算机技术和通讯技术的结合使得微机用户资源共享及相互通信的愿望成为可能,即在一台计算机上可以使用其他机器上的资源或进行通信。这样计算机网络的概念
9、得以产生。一些独立自治的计算机利用通信线路相互连接形成的计算机的集合,称为计算机网络。分布式操作系统 大量的实际应用要求一个一体化的系统,用户希望以统一的界面,标准的接口去使用系统的各种资源,实现所需的各种操作。这就导致了分布式系统的出现。一个分布式系统是若干计算机的集合,它们都有自己的局部存储器和外部设备,但分布式系统是一个一体化的系统,在系统中有一个全局操作系统,即分布式操作系统,它负责整个系统的资源分配和调度、任务划分、信息传输、控制协调等工作,为用户提供一个统一的界面,标准的接口,用户通过这一界面实现所需的操作和使用系统的资源,但操作和计算是在哪一台计算机上执行或使用哪个计算机的资源则
10、由操作系统自动完成,用户不用知道,即分布或操作系统是透明的。返回本节返回本节1.3 操作系统的基本概念 1.3.1 操作系统的定义 1.3.2 操作系统的基本功能 1.3.3 操作系统的特征 返回本章首页返回本章首页1.3.1 操作系统的定义 操作系统是用户和系统的界面,系统内部虽然十分复杂,但这些复杂性由于有操作系统的存在而不显现在用户面前。计算机操作系统向用户提供系统调用,用户通过操作系统提供的命令,简单方便地把自己的意图告诉系统,让操作系统去完成工作。由于操作系统的卓越工作,才能保证系统资源的充分利用,又使用户能方便使用计算机。返回本节返回本节1.3.2 操作系统的基本功能 1存储器管理
11、的功能 2处理机管理的功能 3设备管理的功能 4文件管理的功能下一页下一页1存储器管理的功能 l 内存分配 l 内存保护 l 地址映射 l 内存扩充下一页下一页2处理机管理的功能 l 进程控制 l 进程同步 l 进程通信 l 调度下一页下一页3设备管理的功能v 缓冲管理v 设备分配 v 设备处理v 设备独立性和虚拟设备下一页下一页4文件管理的功能 文件存储空间的管理 目录管理 文件的操作 返回本节返回本节1.3.3 操作系统的特征 1并发特征(Concurrence)2共享特征(Sharing)3虚拟特征(Virtual)4不确定性返回本章首页返回本章首页1.4操作系统的硬件介绍 1.4.1中
12、央处理器(CPU)1.4.2存储系统 1.4.3 中断机制 1.4.4 I/O设备 1.4.5 时钟 返回本章首页返回本章首页1.4.1中央处理器(CPU)计算机的“大脑”是CPU,它从内存中取出指令并执行。在每个CPU的基本周期中,首先从内存中取出指令,解码以确定其类型和操作数,然后执行。循环以上过程,程序得以执行完毕。每种CPU都有一套独特的可执行的指令集,指令集在各类CPU中不能通用。计算机程序是指令集中的各种指令组合而成,程序一般放在内存中。CPU访问内存得到指令和数据,但由于访问内存的时间要比执行指令花费的时间长的多,因此,所有的CPU内都有一些用来保存关键变量和临时结果的寄存器。1
13、、程序计数器:它保存了将要执行的下一条指令的内存地址,在指令被取出之后,程序计数器就被更新为后续的指令地址。2、指令寄存器:它保存正在被执行的指令。指令从内存中取出后通过总线被送到指令寄存器中保存,然后送到指令译码器中译码并执行。3、堆栈指针:它指向内存中当前栈的顶端。当前栈包含已经调用但是还没有退出的每个过程的一个框架。在一个过程的堆栈框架中保存了有关的输入参数,局部变量以及那些没有保存在寄存器中的临时变量。4、程序状态字(Program Status Word,PSW)寄存器:它记录了处理器的运行模式信息,如条件码位(由比较指令设置)、CPU优先级、模式(用户状态或核心态)以及其他各种控制
14、位。用户程序通常读入整个PSW,但只能对其中少量字段进行修改。在系统调用和I/O中,PSW的作用很重要。除了用在嵌入式系统中的非常简单的CPU外,多数CPU都有两种模式,既核心态(也叫管态、系统态)和用户状态(也叫目态)。1、用户状态:具有较低特权的执行状态,在这种状态下,处理机只能执行规定的指令,访问指定的寄存器和存储器,用户程序通常只能在这一级别执行。2、核心态:是指操作系统内核的运行状态。在这种状态下,处理机具有较高的特权,能执行一切指令,可以访问所有的存储器和寄存器。1.4.2 存储系统1、存储系统的层次结构 最高层是CPU中的寄存器,由于采用和CPU相同的材料制造,所以速度和CPU一
15、样快。但寄存器一般容量比较小,在1KB以下。第二层是高速缓存,它主要被硬件控制使用。当一个程序要读一个存储字时,通过硬件系统首先检查是否在高速缓存中。如果在,称为高速缓存命中,直接读取高速缓存中的内容,不用访问内存。未命中时就必须访问内存读取存储字,这要付出大量的时间代价。第三层是内存,这是存储系统的核心。任何程序和数据必须要装入内存后,cpu才能对它们进行操作,因此操作系统本身也要存放在内存中运行。第四层为磁盘(硬盘)。磁盘同内存相比,在容量上大很多,在每一位的成本上要低很多,但是在存取速度上要慢很多。磁盘低速的原因是它是一个机械装置,而内存是半导体结构的存储器。最后一层是磁带,它经常用于磁
16、盘的备份,并且可以保存非常大量的数据。磁带的特点是大容量、低成本、可移动、慢速存取。2、存储保护 要将两个或多个程序放在内存中,必须解决下面两个问题:1)程序彼此之间如何保护,以及内核如何保护所有其他的程序。2)如何处理重定位。最简单的解决方案是给计算机配备了两个特殊的寄存器,它们是基址寄存器(base register)和界限寄存器(limit register)。1.4.3 中断机制 1、中断概念 中断(interrupt)是指计算机程序执行过程中,当发生某个事件时,必须中止 CPU 上现行程序的运行,调用处理该事件的服务程序执行的过程。现代计算机系统一般都具有处理突发事件的能力。这种处理
17、突发事件的能力是由硬件和软件协作完成的。2、中断类型 引起中断的事件很多,但是不同硬件结构的计算机的中断源各不相同。我们一般从中断事件的性质来说,可以分成五种类型:1)硬件故障中断 2)外部中断 3)程序性中断 4)输入、输出设备中断 5)访管中断 3、中断嵌套、中断优先级和中断屏蔽1)中断嵌套是指,当CPU正在处理一个中断事件时,系统又响应了一个新的中断事件。此时,前一个中断处理程序被中止执行,由处理后一个事件的中断处理程序先插入执行。2)中断优先级是由硬件规定的,系统根据引起中断事件的重要性和紧迫程度,将中断源划分为若干个级别。当有多个中断同时发生时,系统根据优先级决定响应中断的次序,优先
18、响应级别高的中断。中断优先级由高到低的顺序为:硬件故障中断、访管中断、程序性中断、外部中断、输入输出设备中断。3)中断屏蔽是指,让程序状态字中的中断屏蔽位控制某些中断事件的响应。因此,当有中断请求产生后,首先查看当前程序状态字的中断屏蔽标志。如果没有屏蔽,则可以响应该中断,否则不能响应中断。1.4.4 I/O设备 存储系统不是操作系统需要管理的唯一资源,I/O设备也与操作系统有密切的相互影响。I/O设备一般包括两个部分:控制器和设备本身。控制器是由一块芯片或一组芯片组成的电路板,它通过介绍操作系统的命令来控制设备的实际工作。如,从设备读数据,写入数据到设备等。I/O设备的主体是实际设备本身。设
19、备上有个相对比较简单的接口,这是因为接口既不能做很多的工作,有已经被标准化了。由于实际设备接口隐藏在控制器中,所以,操作系统看到的是对控制器的接口,这个接口可能和设备接口有很大的区别。1.4.5 时钟 时钟(clock),又称为定时器(timer),由于各种各样的原因决定了它对于任何多道程序设计系统的操作都是至关重要。1、时钟硬件 典型的时钟硬件由三个部件构成:晶体振荡器,计数器和存储寄存器。晶体振荡器可以非常精确的产生周期性信号,一般频率为几百兆赫兹。存储寄存器是用来记录计数的初值,当开始计数时,存储寄存器把计数初值传给计数器。计数器可以在晶体振荡器每产生一个脉冲(也就是一个时钟周期)时减1
20、。当计数器减到0时,产生一个中断事件,由CPU来处理后面的事情。2、时钟软件 时钟硬件只能根据已知的时间间隔产生中断,而涉及时间的其他所有工作都必须由软件-时钟驱动程序完成。时钟驱动程序通常可以完成以下的任务。1)维护日时钟 2)防止进程超时运行 3)记录CPU的使用情况 4)为系统本身的各个部分提供监视定时器 1.5 操作系统的逻辑模型 近年来,大型软件都是采用层次式结构,也就是将一个软件分为若干个逻辑层次。如下图1.7所示,简要地示意了操作系统的分层逻辑结构。用户接口(命令接口、程序接口、图形用户接口)对对象操纵和管理的软件集合(处理机管理软件、存储器管理软件、设备管理软件、文件管理软件)
21、操作系统对象(处理机、存储器、设备、文件)返回本章首页返回本章首页 1操作系统的对象 2操作系统对象操纵和管理的软件集合 3用户接口(1)命令接口)命令接口(2)程序接口)程序接口(3)图形用户接口)图形用户接口 1.6 微机操作系统 1.6.1 DOS操作系统 1.6.2 MS-Windows操作系统 1.6.3 UNIX操作系统 返回本章首页返回本章首页1.6.1 DOS操作系统 1981年IBM公司首次推出了IBM-PC个人计算机,在微机中采用了微软公司开发的MS-DOS操作系统。该操作系统在8位计算机操作系统CP/M的基础上进行了较大的扩充,增加了许多内部和外部命令,使该操作系统具有较
22、强的功能及性能优良的文件系统。随着IBM-PC及其兼容机的普及和畅销,MS-DOS操作系统也就成了事实上的16位微机单用户单任务操作系统的标准。返回本节返回本节1.6.2 MS-Windows操作系统 1990年微软公司推出的Windows 3.0以其易学易用、友好的图形用户界面、支持多任务的优点,很快占领了市场。1992年推出的Windows 3.1版,提供了386增强模式,提高了运行速度,功能也更强大。1993年推出了Windows NT是一个全新的32位多任务操作系统,成为Windows家族中功能最强并支持网络功能的操作系统。1995年推出的Windows 95之后在Windows 95
23、的基础上又推出了Windows 97、98,提供了Internet浏缆器和网络功能,使它们成了当今个人计算机上最广泛使用的操作系统。返回本节返回本节1.6.3 UNIX操作系统 UNIX操作系统是目前大、中、小型计算机上广泛使用的多用户多任务操作系统,在32位微机上也有不少配置多用户多任务操作系统。UNIX操作系统是美国电报电话公司的Bell实验室开发的,至今已有20多年的历史,它最初是配置在DEC公司的PDP小型机上,后来在微机亦可使用。UNIX操作系统是唯一能在微机工作站、小型机到大型机上都能运行的操作系统,也是当今世界最流行的多用户、多任务操作系统。返回本节返回本节第2章 作业管理 2.
24、1 作业基本管理 2.2操作系统向作业提供的程序级接口系统调用 2.3单道批处理系统的作业调度 2.4多道批处理系统作业调度应考虑的因素 开 始本章学习目标 操作命令:包括作业控制语言和键盘命令,这是用户操作计算机的方式系统功能调用:这是用户程序对操作系统提供的服务的调用接口系统功能调用的执行过程批处理系统作业调度问题返回本章首页2.1作业的基本概念 返回本章首页 2.1.1 作业的形成过程 2.1.2 批处理系统作业运行前的准备作业控制语言 2.1.3 分时系统作业控制方法命令 2.1.1 作业的形成过程 一、使用计算机来计算来运行用户程序有三个步骤:(1)用某种语言(例如FORTRAN语言
25、)编制一个程序,它被称为源程序。(2)将源程序和初始数据记录在某种输入介质上。例如穿成一盘纸带,或在终端设备(包括键盘、显示器)上直接编辑源程序。(3)按照一定要求来控制计算机工作,并经过加工最后算出结果。二、对作业的处理的几个作业步 (1)编辑(修改):建立新文件或是对原有文件进行修改。(2)编译:请求系统把修改好的源程序翻译成浮动目标模块,并将它放在磁盘上,也可以穿孔输出或二者有之。(3)链接:请求系统把主程序模块和其他所需要的子程序和例行程序链接装配在一起,成为一个可执行的完整的内存映像文件。(4)运行:将内存映像文件调入内存,并启动之,最后给出计算结果。下一页三、作业步之间的关系表现为
26、 (1)每个作业步运行的结果产生下一个作业步所需要的文件。如图2.1所示。(2)一个作业步能否正确地执行,依赖于前一个作业步是否成功地完成。下一页图2.1 作业步之间的关系返回本节2.1.2 批处理系统作业运行前的准备作业控制语言 在脱机工作方式下系统提供作业控制语言(JCL,Job Control Language),它既可以写成操作说明书的形式,也可穿孔成为作业控制卡的形式(前者较多地为批处理系统所采用)。操作系统根据作业申请表来分配作业所需的资源并注册该作业;通过作业说明书(或作业控制卡)对作业实施运行控制。一般在批处理系统中都提供JCL语言。2.1.3 分时系统作业控制方法命令 在分时
27、系统(联机工作方式)中,终端与主机的通信过程大致分为四步:呼叫、联接、通信、退出。1呼叫 2联接 3通信 4退出(1)呼叫 当终端用户想从终端打入命令或输入信息时,他首先要进行呼叫,例如通过类似电话拨号的方式进行呼叫。当呼叫成功后,用户就可以从终端的键盘上打入各种命令输入到计算机系统,即开始第二步联接。下一页(2)联接 呼叫成功后,计算机即和终端联上,于是计算机应在终端设备上输出引导信息,以告诉用户终端设备与系统联上了。这时,用户应打入一条“录入命令”,向系统申请录入一个作业。一般录入命令应给出以下参数:用户名、作业名、口令、资源需求等。系统接到录入命令后,将检查口令、资源需求等。在符合时,就
28、允许录入。当用户从终端上看到允许录入的信息后,就知道这个终端作业被接受了,从而就进入第三步通信。下一页(3)通信(1)环境设置。(2)系统管理。(3)文件管理。(4)编辑修改。(5)编译、连接装配和运行。(6)输入数据。(7)操作方式转换。(8)申请资源。终端作业被录入后,就可以通过终端打入各种控制作业的命令和从终端输入作业的程序和数据。属于通信这一步的键盘命令是比较丰富的,一般有以下几类:下一页(4)退出 当作业运行结束时,用户应打入“退出”命令。系统响应命令后将收回分配给作业的全部资源,然后在终端输出日期和上机时间等,即通知用户系统已结束了该作业。退出系统后,用户若要求系统执行新的作业可再
29、打入“录入”命令。每个作业结束后一定要打入“退出”命令。返回本节2.2操作系统向作业提供的程序级接口系统调用 2.2.1 系统功能调用的分类 2.2.2系统功能调用的实现过程描述 返回本章首页 系统调用:用户所需要的功能,有些是比较复杂的,硬件不能直接提供,只能通过软件的程序来实现。而有些功能可由硬件完成,并设有相应的指令,如启动外设工作,就有用于输入/输出的硬指令。但配置了操作系统后,对系统资源的分配、控制不能由用户干预,而必须由操作系统统一管理。所以,对于这样一类功能,也需有相应的控制程序来实现。自愿进管指令:为了实现对这些事先编制好的、具有特定功能的例行子程序的调用,现代计算机系统一般提
30、供自愿进管指令,其指令形式为:SVC N 其中,SVC表示机器自愿进管指令的操作码记忆符,N为地址码。SVC是Supervisor Call(访问管理程序)的缩写,所以SVC指令又称访管指令。当处理机执行到这一条指令时就发生中断,该中断称为访管中断,它表示正在运行的程序对操作系统的某种需求。借助中断可使机器状态由目态转为管态。返回本节2.2.1 系统调用功能分类 1设备管理:这类系统调用被用来请求和释放设备,以及启动设备操作等。2文件管理:这类系统调用包括创建、删除文件,读、写文件操作以及移动文件指针等。3进程控制:当多个用户程序在系统内执行时引出了一个新的概念,称为进程。4进程通信:进程间传
31、递消息或信号的系统调用。5存储管理:内存块的申请、释放,获取作业占用内存块的首址、大小等。2.2.2系统功能调用的实现过程描述 操作系统的基本服务是通过系统功能调用来实现的,系统功能调用提供运行程序和操作系统之间的界面。系统调用的实现取决于计算机的结构,它是由特定的硬件指令实现对操作系统某一服务例程的调用。图2.2说明了系统功能调用的执行过程。图2.2 系统调用的执行过程 2.3 单道批处理系统的作业调度 2.3.1 作业调度性能的衡量指标 2.3.2 先来先服务作业调度算法 2.3.3 短作业优先调度算法 2.3.4 高响应比优先作业调度算法2.3.1 作业调度性能的衡量指标 对于批处理系统
32、,作业调度的原则体现在一个指标,即各作业的平均周转时间上,如设i作业的周转时间为Ti=Tci-Tsc;Tci,Tsc分别为作业的完成时间和作业的提交时间,则平均周转时间为:J=(Ti)/n;对这个公式涉及的n个作业,相对于长作业,对J值的影响大,而短作业对J值的影响小。为了增加短作业对J值的影响,引入平均带权周转时间的概念。平均带权周转时间定义为:W=(Ti/tri)/n;tri作业的运行时间。一般认为J、W越小,系统对作业的吞吐量越大,系统的性能越高。2.3.2 先来先服务作业调度算法先来先服务作业调度算法是一种较简单的作业调度算法,即每次调度是从后备作业队列中选择一个最先进入该队列的作业,
33、将它调入内存,分配资源、创建相应的进程,放入进程就绪队列准备运行。FCFS算法利于长作业,不利于短作业,而大多数的作业是I/O繁忙的短作业。以FCFS作为主调度算法是不常用的。下一页2.3.3 短作业优先调度算法 短作业优先调度算法是指操作系统在进行作业调度时以作业长短作为优先级进行调度。该调度算法可以照顾到实际上占作业总数绝大部分的短作业,使它们能比长作业优先调度执行。这时后备作业队列按作业优先级由高到低顺序排列,当作业进入后备队列时要按该作业优先级放置到后备队列相应的位置。实践证明,该调度算法的性能是最好的,单位时间的作业吞吐量也最大,但也存在缺点:对长作业极为不利。下一页2.3.4 高响
34、应比优先作业调度算法 这是一种折衷算法,是为了克服上述两种算法的不足而提出来的。它既考虑到作业进入系统的先后次序,又顾及到作业的运行长度。响应比为:RP=1+作业等待时间/作业执行时间 该调度算法在调度作业时首先计算后备作业的响应比RP,然后按RP值从大到小的顺序调度作业运行。从公式可见,作业的RP与作业执行时间成反比,作业的执行时间越短,其RP越高,同时作业的RP会随着它的等待时间的增加而增加,只要等待时间足够长,该作业总会由于响应比高而被调度。下一页2.4 多道批处理系统作业调度应考虑的因素 在多道程序环境中,平均周转时间、带权平均周转时间比单道时有明显减少。其主要原因是,当一个作业需要进
35、行I/O操作时,可将CPU分给另一个作业运行。由于通道和中断的支持,CPU和I/O之间完全可以并行,使一部分运行时间重叠,这样总的运行时间就缩短了。但是,总的运行时间的缩短并不总能使平均周转时间缩短。这与系统多道程序的道数有关。第3章 进程管理 3.1 进程的概述 3.2 进程的引入和定义 3.3 进程的状态和进程控制块 3.4 进程控制 3.5 线程的基本概念 3.6 进程调度 3.7 进程同步与互斥 3.8 进程通信 3.9 死锁问题本章学习目标 在多道程序环境下,程序不能独立运行。作为资源分配和独立运行的基本单位是进程。操作系统所有的特征都是基于进程而体现的。所以,本章的主要问题是:进程
36、的概念进程的实体、状态及状态的演变进程的控制与调度进程之间的关系协调进程的通信死锁问题及解决返回本章首页返回本章首页3.1 进程的概述 处理机管理是操作系统的基本管理功能之一,它所关心的是处理机的分配问题。也就是说把CPU(中央处理机)的使用权分给某个程序,通常把这个正准备进入内存的程序称为作业,当这个作业进入内存后我们把它称为进程。处理机管理分为作业管理和进程管理两个阶段去实现处理机的分配,常常又把直接实行处理机时间分配的进程调度工作作为处理机管理的主要内容。进程通常具有三种状态:运行状态(正在使用CPU)、阻塞状态(等待输入/输出)和就绪状态(等待分配CPU)。返回本章首页返回本章首页3.
37、2 进程的引入和定义 3.2.1 进程的引入 3.2.2 进程的定义返回本章首页返回本章首页3.2.1 进程的引入 1程序的顺序执行及其特性 2资源共享 3程序的并发执行及其特性 1程序的顺序执行及其特性 由于各类软件的出现及日益复杂化,使得程序设计的概念和方法有了很大的发展,在单道程序工作环境中,我们把一个“程序”理解为“一个在时间上按严格次序前后相继的操作序列”。一切顺序执行的程序都具有下列特性:(1)顺序性。(2)资源独占。(3)结果的无关性。2资源共享 操作系统提供了两种实现资源共享的方法。(1)由操作系统统一管理和分配。(2)由进程自行使用。3程序的并发执行及其特性 无论是操作系统自
38、身的程序还是用户程序,通常总是存在一些相对独立、但又能并发执行的程序段。由于这些程序段可以被多个用户作业调用,因此可在同一时间间隔内发生。这样一来,某个程序段可能对应多个“计算”,于是程序与“计算”已不具有一一对应关系了。这些“并发程序”就构成了一个“并发环境”。图3.2 并行计算的先后次序 程序的制约方式有如下两种:(1)间接制约方式。这是由于竞争相同资源而引起的,得到资源的程序段可以投入运行,而得不到资源的程序段就是暂时等待,直至获得可用资源时再继续运行 。(2)直接制约方式。这通常是在那些逻辑上相关的程序段之间发生的。一般是由于各种程序段要求共享信息引起的 。返回本节目录返回本节目录3.
39、2.2 进程的定义 进程与程序的区别和相互关系:(1)动态性和静态性。(2)从结构上看每个进程的实体都是由程序段和相应的数据段两部分构成的,这一特征与程序的含义相近。(3)一个进程可以涉及到一个或几个程序的执行;反之一程序可以对应多个进程,即同一程序段可在不同数据集合上运行,可构成不同的进程。(4)并发性。(5)进程具有创建其他进程的功能。(6)操作系统中的每一个程序都是在一个进程现场中运行的。返回本节目录返回本节目录3.3 进程的状态和进程控制块 3.3.1 进程的状态及状态变化图 3.3.2 进程控制块 返回本章首页返回本章首页3.3.1 进程的状态及状态变化图 (1)运行状态:进程正在处
40、理机上运行的状态,该进程已获得必要的资源,也获得了处理机,用户程序正在处理机上运行。(2)阻塞状态:进程等待某种事件完成(例如,等待输入/输出操作的完成)而暂时不能运行的状态,处于该状态的进程不能参加竞争处理机,此时,即使分配给它处理机,它也不能运行。(3)就绪状态:该进程运行所需的一切条件都得到满足,但因处理机资源个数少于进程个数,所以该进程不能运行,而必须等待分配处理机资源,一旦获得处理机就立即投入运行。图图3.3 典型的进程状态演变图典型的进程状态演变图 状态变化:(1)就绪状态变化到运行状态。(2)运行状态变化到就绪状态。(3)运行状态变化到阻塞状态。(4)阻塞状态变化到就绪状态。返回
41、本节目录返回本节目录3.3.2进程的结构、进程控制块及组织方式 为了刻画进程的动态变化,通常把进程表示为由程序段、私有数据块和进程控制块组成,如图3.4(a)所示。程序部分描述进程本身所要完成的功能,而“私有数据块”是接受程序规定操作的一组存储单元的内容,是操作的对象。进程控制块是在进程创建时产生的,当进程存在于系统时(运行),进程控制块就标识了这个进程。如图3.4(b)所示。进程控制块是进程存在的标志,当系统或父进程创建一个进程时,实际上就是为其建立一个进程控制块。进程控制块既能标识进程的存在,又能刻画出进程的动态特征,它是一个进程仅有的被系统真正感知的部分。对操作系统而言,所有进程控制块将
42、构成并发执行控制和维护系统工作的依据。进程控制块的作用:进程控制块的作用:返回本节目录返回本节目录 进程控制块PCB的组织方式:为了进行PCB的有效管理,系统将PCB按照一定的方式组织起来。PCB常用的组织方式有:1)线性表方式:不论进程的状态如何,将所有的PCB连续地存放在内存的系统区。这种方式适用于系统中进程数目不多的情况。这种方式实现简单,但检索速度慢。2)索引表方式:该方式是线性表方式的改进,系统按照进程的状态分别建立就绪索引表、阻塞索引表等。3)链接表方式:系统按照进程的状态将进程的PCB组成队列,从而形成就绪队列、阻塞队列、运行队列等。3.4 进程控制 3.4.1 原语 3.4.2
43、 进程控制原语 返回本章首页返回本章首页3.4.1 原语 在操作系统中,某些被进程调用的操作,例如队列操作、对信号灯的操作、检查启动外设操作等,一旦开始执行就不能被中断,否则就会出现操作错误,造成系统混乱。原语就是为实现这些操作而设置的。图图3.5 进程家族示例进程家族示例返回本节目录返回本节目录3.4.2 进程控制原语创建原语撤消原语阻塞原语唤醒原语挂起原语 激活原语返回本节目录返回本节目录3.5 线程的基本概念 3.5.1 线程的引入 3.5.2 线程与进程的关系 3.5.3 线程的类型 3.5.4 线程的特点 返回本章首页返回本章首页3.5.1 线程的引入(1)创建进程。系统在创建进程时
44、,必须为之分配其所必需的、除处理机以外的所有资源。如内存空间、I/O设备以及建立相应的PCB结构。(2)撤消进程。系统在撤消进程时,又必须先对这些资源进行回收操作,然后再撤消PCB结构。(3)进程切换。在对进程进行切换时,由于要保留当前进程的CPU环境和设置新选中进程的CPU环境,为此需花费不少处理机时间。返回本节目录返回本节目录3.5.2 线程与进程的比较1调度:在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程。2并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,因而使操作系统具有更好的并发性,从而能更有效地使用系统
45、资源和提高系统吞吐量。3拥有资源:不论是传统的操作系统,还是设有线程的操作系统,进程都是拥有资源的一个独立单位,它可以拥有自己的资源。4系统开销:由于在创建或撤消进程时,系统都要为之分配或回收资源,如内存空间、I/O设备等。因此,操作系统所付出的开销将明显地大于在创建或撤消线程时的开销。返回本节目录返回本节目录3.5.3 线程的类型 对于线程来说,则可分成两类。一类是内核支持线程,它们是依赖于内核的。即无论是在用户进程中的线程,还是系统进程中的线程,它们的创建、撤销和切换都由内核实现。在内核中保留了一个线程控制块,内核根据该控制块而感知该线程的存在并对线程进行控制。另一类是用户级线程。它仅存在
46、于用户级中,对于这种线程的创建、撤销和切换,都不利用系统功能调用来实现,因而这种线程与内核无关。相应地,内核也并不知道有用户级的线程存在。返回本节目录返回本节目录比较两种线程的优缺点:1线程的调度与切换速度:内核支持线程的调度和切换与进程的调度和切换十分相似。2系统功能调用:当传统的用户进程调用一个系统功能调用时,要由用户态进入核心态,用户进程将被阻塞。当内核完成系统调用而返回时,才将该进程唤醒,继续执行。3线程执行时间:对于只设置了用户级线程的系统,调度是以进程为单位进行的。在采用轮转调度算法时,各个进程轮流执行一个时间片,这对诸进程而言似乎是公平的。3.5.4 线程的特点 操作系统为每个被
47、创建的进程分配需要的资源,一个进程内的各个线程共享进程的资源。多线程技术有以下明显的优越性:(1)创建线程无需另外分配资源,因而创建线程的速度比创建进程的速度快,且系统开销小。(2)线程间的互操作在同一地址空间中进行,故在交换信息中不需要其他的通信机制,信息传递的速度更快。(3)线程能独立执行,能充分利用和发挥处理器和外围设备并行工作的能力。3.6 进程调度 3.6.1 进程调度的职能 3.6.2 进程调度所用的主要数据结构 3.6.3 进程调度的方式 3.6.4 进程调度算法 3.6.5 综合的调度策略调度用的进程状态切换图返回本章首页返回本章首页3.6.1 进程调度的职能 (1)记录系统中
48、所有进程的有关情况。(2)确定分配处理机的原则。(3)分配处理机给进程。(4)从进程收回处理机。返回本节目录返回本节目录3.6.2 进程调度所用的主要数据结构 通过3.3.2节的学习我们知道操作系统对进程的管理具体体现在对进程的PCB的管理。同时我们也了解到PCB的几种组织方式:线性表方式、索引表方式和链接表方式。一般情况下,PCB的组织方式采用的是链接表方式。因此,在进程调度中所用的主要数据结构是队列(PCB的链接方式在这里就不详细介绍了,若需要了解请参见3.3.2节)。3.6.3 进程调度的方式 进程调度的方式可分为非剥夺式和剥夺式。剥夺式调度是指当系统按照某种原则发现一个比现运行进程更合
49、适、更应该占用CPU的进程时,系统将强迫处于运行状态的进程将CPU的使用权交给这个更适合的进程。常见的剥夺原则有优先权原则、短进程优先原则和时间片原则。采用剥夺式调度的系统能够及时处理紧急事件,它反映出了进程的优先级特征,但这势必会带来较大的系统开销,调度算法也会相对复杂一些。非剥夺式调度是指一旦某个进程占用了CPU,除非是由于它自身原因自动放弃CPU,否则它将一直运行下去直到完成。这种调度方式算法简单,系统开销也较小,但它不能反映出进程的优先级特征。3.6.4 进程调度算法 1先来先服务 2轮转调度 3分级轮转法 4优先数法 5多级反馈队列调度算法 1先来先服务 这种调度算法按照进程进入就绪
50、队列的先后顺序来调度进程,到达得越早,其优先数越高。获得处理机的进程,未遇到其他情况时,一直运行下去,系统只需具备一个先进先出的队列,在管理优先数的就绪队列时,这种方法是一种最常见策略,并且在没有其他信息时,也是一种最合理的策略。2轮转调度 先来先服务的一个重要变形,就是轮转规则。轮转调度算法是系统把所有就绪进程按先后次序排队,处理机总是优先分配给就绪队列中的第一个就绪进程,并分配它一个固定的时间片(如100毫秒)。当该运行进程用完规定的时间片时,被迫释放处理机给下一个处于就绪队列中的第一个进程,分给这个进程相同的时间片,每个运行完时间片的进程,当未遇到任何阻塞时,就回到就绪队列的尾部,并等待
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。