全套课件·《计算机操作系统教程(第三版)_第1页
全套课件·《计算机操作系统教程(第三版)_第2页
全套课件·《计算机操作系统教程(第三版)_第3页
全套课件·《计算机操作系统教程(第三版)_第4页
全套课件·《计算机操作系统教程(第三版)_第5页
已阅读5页,还剩497页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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接口设备的分配。返回本节1.2 操作系统的发展历史1.2.1 无操作系统的计算机1.2.2 单道批

4、处理系统与多道批处理系统及执行系统1.2.3 分时系统1.2.4 实时系统1.2.5 微机操作系统、网络操作系统与分布式操作系统 返回本章首页1.2.1 无操作系统的计算机从第一代计算机诞生到20世纪50年代中期还未出现操作系统,这时的计算机采用人工操作方式。其过程是: 图1.2 手工操作计算机返回本节1.2.2 单道批处理系统与多道批处理系统及执行系统所谓批处理系统是指加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地成批地处理一个或多个用户的作业。首先出现的是联机批处理系统。如下图1.3所示。下一页脱离主机控制的输入/输出批处理系统 在外设处理数据时,主机处理“忙等”状态,这样高

5、速的主机与慢速的外设矛盾就显现出来。为了克服与缓解主机与外设的矛盾。我们引入脱机批处理系统,即脱离主机控制的输入/输出批处理系统。如图1.4所示。下一页图1.4 脱机批处理系统下一页在单道批处理系统中,内存中仅有一道作业,中断和通道技术出现以后,虽然可以实现输入/输出设备与中央处理机并行操作,但由于属于同一道作业的可并发执行的进程不多,大多数进程是有同步关系的,这使系统中仍有较多的空闲资源,致使系统的性能较差。为了进一步提高资源的利用率和系统对作业的吞吐量,在60年代中期,引入了多道程序设计技术,由此而形成了多道批处理系统。单道程序与多道程序的执行过程如图1.5和图1.6所示。 下一页下一页在

6、操作系统中引入多道程序设计技术以后,会使系统具有以下特征。(1)多道性 (2)无序性 (3)宏观上并行、微观上串行 (4)调度性 返回本节1.2.3 分时系统分时技术是把处理机的时间分成很短的时间片,这些时间片轮流地分配给各个联机的各作业使用。如果某作业在分配给它的时间片用完时仍未完成,则该作业就暂时中断,等待下一轮运行,并把处理机的控制权让给另一个作业使用。这样在一个相对较短的时间间隔内,每个用户作业都能得到快速响应,以实现人机交互。分时系统与多道批处理系统相比,具有完全不同的特征,由上所述可以归纳成以下几点:(1)多路性 (2)独立性 (3)及时性 (4)交互性 返回本节1.2.4 实时系

7、统1实时操作系统的分类2实时操作系统的主要目标1实时操作系统的分类l实时控制:当计算机应用于生产过程的控制形成以计算机为中心的控制系统时,系统要求能实时采集现场数据,并对所采集的数据进行及时处理,从而自动地控制相应的执行机构,使某些参数(如湿度、压力、液位)能按预定的规律变化,以保证产品的质量和提高产量。 l实时信息处理:通常,我们把要求对信息进行实时处理的系统称为实时信息处理系统。 2实时操作系统的主要目标(1)实时时钟管理。 (2)连续人机对话。(3)过载防护。 (4)高可靠性。 返回本节1.2.5 微机操作系统、网络操作系统与分布式操作系统 微机操作系统到20世纪80年代,随着超大规模集

8、成电路的发展产生了微型计算机,配置在微机上的操作系统称为微机操作系统。最早出现的微机操作系统是8位微机上的CP/M,它是一个单用户单任务操作系统,即只允许一个用户上机,且只允许用户程序作为一个任务运行。 计算机网络 计算机技术和通讯技术的结合使得微机用户资源共享及相互通信的愿望成为可能,即在一台计算机上可以使用其他机器上的资源或进行通信。这样计算机网络的概念得以产生。一些独立自治的计算机利用通信线路相互连接形成的计算机的集合,称为计算机网络。分布式操作系统 大量的实际应用要求一个一体化的系统,用户希望以统一的界面,标准的接口去使用系统的各种资源,实现所需的各种操作。这就导致了分布式系统的出现。

9、一个分布式系统是若干计算机的集合,它们都有自己的局部存储器和外部设备,但分布式系统是一个一体化的系统,在系统中有一个全局操作系统,即分布式操作系统,它负责整个系统的资源分配和调度、任务划分、信息传输、控制协调等工作,为用户提供一个统一的界面,标准的接口,用户通过这一界面实现所需的操作和使用系统的资源,但操作和计算是在哪一台计算机上执行或使用哪个计算机的资源则由操作系统自动完成,用户不用知道,即分布或操作系统是透明的。返回本节1.3 操作系统的基本概念 1.3.1 操作系统的定义1.3.2 操作系统的基本功能1.3.3 操作系统的特征 返回本章首页1.3.1 操作系统的定义操作系统是用户和系统的

10、界面,系统内部虽然十分复杂,但这些复杂性由于有操作系统的存在而不显现在用户面前。计算机操作系统向用户提供系统调用,用户通过操作系统提供的命令,简单方便地把自己的意图告诉系统,让操作系统去完成工作。由于操作系统的卓越工作,才能保证系统资源的充分利用,又使用户能方便使用计算机。 返回本节1.3.2 操作系统的基本功能1存储器管理的功能2处理机管理的功能3设备管理的功能4文件管理的功能下一页1存储器管理的功能l内存分配l内存保护l地址映射l内存扩充下一页2处理机管理的功能l进程控制l进程同步l进程通信l调度下一页3设备管理的功能 缓冲管理 设备分配 设备处理 设备独立性和虚拟设备下一页4文件管理的功

11、能 文件存储空间的管理 目录管理 文件的操作 返回本节1.3.3 操作系统的特征 1并发特征(Concurrence)2共享特征(Sharing)3虚拟特征(Virtual)4不确定性返回本章首页1.4操作系统的硬件介绍1.4.1中央处理器(CPU)1.4.2存储系统1.4.3 中断机制1.4.4 I/O设备1.4.5 时钟 返回本章首页1.4.1中央处理器(CPU)计算机的“大脑”是CPU,它从内存中取出指令并执行。在每个CPU的基本周期中,首先从内存中取出指令,解码以确定其类型和操作数,然后执行。循环以上过程,程序得以执行完毕。每种CPU都有一套独特的可执行的指令集,指令集在各类CPU中不

12、能通用。计算机程序是指令集中的各种指令组合而成,程序一般放在内存中。CPU访问内存得到指令和数据,但由于访问内存的时间要比执行指令花费的时间长的多,因此,所有的CPU内都有一些用来保存关键变量和临时结果的寄存器。 1、程序计数器:它保存了将要执行的下一条指令的内存地址,在指令被取出之后,程序计数器就被更新为后续的指令地址。2、指令寄存器:它保存正在被执行的指令。指令从内存中取出后通过总线被送到指令寄存器中保存,然后送到指令译码器中译码并执行。3、堆栈指针:它指向内存中当前栈的顶端。当前栈包含已经调用但是还没有退出的每个过程的一个框架。在一个过程的堆栈框架中保存了有关的输入参数,局部变量以及那些

13、没有保存在寄存器中的临时变量。4、程序状态字(Program Status Word,PSW)寄存器:它记录了处理器的运行模式信息,如条件码位(由比较指令设置)、CPU优先级、模式(用户状态或核心态)以及其他各种控制位。用户程序通常读入整个PSW,但只能对其中少量字段进行修改。在系统调用和I/O中,PSW的作用很重要。 除了用在嵌入式系统中的非常简单的CPU外,多数CPU都有两种模式,既核心态(也叫管态、系统态)和用户状态(也叫目态)。 1、用户状态:具有较低特权的执行状态,在这种状态下,处理机只能执行规定的指令,访问指定的寄存器和存储器,用户程序通常只能在这一级别执行。2、核心态:是指操作系

14、统内核的运行状态。在这种状态下,处理机具有较高的特权,能执行一切指令,可以访问所有的存储器和寄存器。 1.4.2 存储系统1、存储系统的层次结构 最高层是CPU中的寄存器,由于采用和CPU相同的材料制造,所以速度和CPU一样快。但寄存器一般容量比较小,在1KB以下。 第二层是高速缓存,它主要被硬件控制使用。当一个程序要读一个存储字时,通过硬件系统首先检查是否在高速缓存中。如果在,称为高速缓存命中,直接读取高速缓存中的内容,不用访问内存。未命中时就必须访问内存读取存储字,这要付出大量的时间代价。 第三层是内存,这是存储系统的核心。任何程序和数据必须要装入内存后,cpu才能对它们进行操作,因此操作

15、系统本身也要存放在内存中运行。 第四层为磁盘(硬盘)。磁盘同内存相比,在容量上大很多,在每一位的成本上要低很多,但是在存取速度上要慢很多。磁盘低速的原因是它是一个机械装置,而内存是半导体结构的存储器。 最后一层是磁带,它经常用于磁盘的备份,并且可以保存非常大量的数据。磁带的特点是大容量、低成本、可移动、慢速存取。 2、存储保护要将两个或多个程序放在内存中,必须解决下面两个问题:1)程序彼此之间如何保护,以及内核如何保护所有其他的程序。2)如何处理重定位。最简单的解决方案是给计算机配备了两个特殊的寄存器,它们是基址寄存器(base register)和界限寄存器(limit register)。

16、 1.4.3 中断机制 1、中断概念 中断(interrupt)是指计算机程序执行过程中,当发生某个事件时,必须中止 CPU 上现行程序的运行,调用处理该事件的服务程序执行的过程。 现代计算机系统一般都具有处理突发事件的能力。这种处理突发事件的能力是由硬件和软件协作完成的。 2、中断类型引起中断的事件很多,但是不同硬件结构的计算机的中断源各不相同。我们一般从中断事件的性质来说,可以分成五种类型: 1)硬件故障中断 2)外部中断 3)程序性中断 4)输入、输出设备中断 5)访管中断 3、中断嵌套、中断优先级和中断屏蔽1)中断嵌套是指,当CPU正在处理一个中断事件时,系统又响应了一个新的中断事件。

17、此时,前一个中断处理程序被中止执行,由处理后一个事件的中断处理程序先插入执行。2)中断优先级是由硬件规定的,系统根据引起中断事件的重要性和紧迫程度,将中断源划分为若干个级别。当有多个中断同时发生时,系统根据优先级决定响应中断的次序,优先响应级别高的中断。中断优先级由高到低的顺序为:硬件故障中断、访管中断、程序性中断、外部中断、输入输出设备中断。3)中断屏蔽是指,让程序状态字中的中断屏蔽位控制某些中断事件的响应。因此,当有中断请求产生后,首先查看当前程序状态字的中断屏蔽标志。如果没有屏蔽,则可以响应该中断,否则不能响应中断。 1.4.4 I/O设备 存储系统不是操作系统需要管理的唯一资源,I/O

18、设备也与操作系统有密切的相互影响。I/O设备一般包括两个部分:控制器和设备本身。控制器是由一块芯片或一组芯片组成的电路板,它通过介绍操作系统的命令来控制设备的实际工作。如,从设备读数据,写入数据到设备等。 I/O设备的主体是实际设备本身。设备上有个相对比较简单的接口,这是因为接口既不能做很多的工作,有已经被标准化了。由于实际设备接口隐藏在控制器中,所以,操作系统看到的是对控制器的接口,这个接口可能和设备接口有很大的区别。 1.4.5 时钟 时钟(clock),又称为定时器(timer),由于各种各样的原因决定了它对于任何多道程序设计系统的操作都是至关重要。1、时钟硬件 典型的时钟硬件由三个部件

19、构成:晶体振荡器,计数器和存储寄存器。晶体振荡器可以非常精确的产生周期性信号,一般频率为几百兆赫兹。存储寄存器是用来记录计数的初值,当开始计数时,存储寄存器把计数初值传给计数器。计数器可以在晶体振荡器每产生一个脉冲(也就是一个时钟周期)时减1。当计数器减到0时,产生一个中断事件,由CPU来处理后面的事情。 2、时钟软件 时钟硬件只能根据已知的时间间隔产生中断,而涉及时间的其他所有工作都必须由软件-时钟驱动程序完成。时钟驱动程序通常可以完成以下的任务。 1)维护日时钟2)防止进程超时运行 3)记录CPU的使用情况 4)为系统本身的各个部分提供监视定时器 1.5 操作系统的逻辑模型 近年来,大型软

20、件都是采用层次式结构,也就是将一个软件分为若干个逻辑层次。如下图1.7所示,简要地示意了操作系统的分层逻辑结构。用户接口(命令接口、程序接口、图形用户接口)对对象操纵和管理的软件集合(处理机管理软件、存储器管理软件、设备管理软件、文件管理软件)操作系统对象(处理机、存储器、设备、文件)返回本章首页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公司首次推出了IB

21、M-PC个人计算机,在微机中采用了微软公司开发的MS-DOS操作系统。该操作系统在8位计算机操作系统CP/M的基础上进行了较大的扩充,增加了许多内部和外部命令,使该操作系统具有较强的功能及性能优良的文件系统。随着IBM-PC及其兼容机的普及和畅销,MS-DOS操作系统也就成了事实上的16位微机单用户单任务操作系统的标准。返回本节1.6.2 MS-Windows操作系统1990年微软公司推出的Windows 3.0以其易学易用、友好的图形用户界面、支持多任务的优点,很快占领了市场。1992年推出的Windows 3.1版,提供了386增强模式,提高了运行速度,功能也更强大。1993年推出了Win

22、dows NT是一个全新的32位多任务操作系统,成为Windows家族中功能最强并支持网络功能的操作系统。 1995年推出的Windows 95之后在Windows 95的基础上又推出了Windows 97、98 ,提供了Internet浏缆器和网络功能,使它们成了当今个人计算机上最广泛使用的操作系统。返回本节1.6.3 UNIX操作系统 UNIX操作系统是目前大、中、小型计算机上广泛使用的多用户多任务操作系统,在32位微机上也有不少配置多用户多任务操作系统。 UNIX操作系统是美国电报电话公司的Bell实验室开发的,至今已有20多年的历史,它最初是配置在DEC公司的PDP小型机上,后来在微机

23、亦可使用。 UNIX操作系统是唯一能在微机工作站、小型机到大型机上都能运行的操作系统,也是当今世界最流行的多用户、多任务操作系统。返回本节第2章 作业管理2.1 作业基本管理2.2操作系统向作业提供的程序级接口系统调用 2.3单道批处理系统的作业调度 2.4多道批处理系统作业调度应考虑的因素 开 始本章学习目标 操作命令:包括作业控制语言和键盘命令,这是用户操作计算机的方式系统功能调用:这是用户程序对操作系统提供的服务的调用接口系统功能调用的执行过程批处理系统作业调度问题返回本章首页2.1作业的基本概念 返回本章首页2.1.1 作业的形成过程2.1.2 批处理系统作业运行前的准备作业控制语言2

24、.1.3 分时系统作业控制方法命令 2.1.1 作业的形成过程一、使用计算机来计算来运行用户程序有三个步骤: (1)用某种语言(例如FORTRAN语言)编制一个程序,它被称为源程序。(2)将源程序和初始数据记录在某种输入介质上。例如穿成一盘纸带,或在终端设备(包括键盘、显示器)上直接编辑源程序。(3)按照一定要求来控制计算机工作,并经过加工最后算出结果。二、对作业的处理的几个作业步 (1)编辑(修改):建立新文件或是对原有文件进行修改。(2)编译:请求系统把修改好的源程序翻译成浮动目标模块,并将它放在磁盘上,也可以穿孔输出或二者有之。(3)链接:请求系统把主程序模块和其他所需要的子程序和例行程

25、序链接装配在一起,成为一个可执行的完整的内存映像文件。(4)运行:将内存映像文件调入内存,并启动之,最后给出计算结果。 下一页三、作业步之间的关系表现为 (1)每个作业步运行的结果产生下一个作业步所需要的文件。如图2.1所示。(2)一个作业步能否正确地执行,依赖于前一个作业步是否成功地完成。 下一页图2.1 作业步之间的关系返回本节2.1.2 批处理系统作业运行前的准备作业控制语言 在脱机工作方式下系统提供作业控制语言(JCL,Job Control Language),它既可以写成操作说明书的形式,也可穿孔成为作业控制卡的形式(前者较多地为批处理系统所采用)。 操作系统根据作业申请表来分配作

26、业所需的资源并注册该作业;通过作业说明书(或作业控制卡)对作业实施运行控制。一般在批处理系统中都提供JCL语言。2.1.3 分时系统作业控制方法命令 在分时系统(联机工作方式)中,终端与主机的通信过程大致分为四步:呼叫、联接、通信、退出。 1呼叫 2联接3通信4退出(1)呼叫当终端用户想从终端打入命令或输入信息时,他首先要进行呼叫,例如通过类似电话拨号的方式进行呼叫。当呼叫成功后,用户就可以从终端的键盘上打入各种命令输入到计算机系统,即开始第二步联接。下一页(2)联接 呼叫成功后,计算机即和终端联上,于是计算机应在终端设备上输出引导信息,以告诉用户终端设备与系统联上了。这时,用户应打入一条“录

27、入命令”,向系统申请录入一个作业。一般录入命令应给出以下参数:用户名、作业名、口令、资源需求等。系统接到录入命令后,将检查口令、资源需求等。在符合时,就允许录入。当用户从终端上看到允许录入的信息后,就知道这个终端作业被接受了,从而就进入第三步通信。下一页(3)通信(1)环境设置。 (2)系统管理。 (3)文件管理。 (4)编辑修改。 (5)编译、连接装配和运行。(6)输入数据。 (7)操作方式转换。 (8)申请资源。 终端作业被录入后,就可以通过终端打入各种控制作业的命令和从终端输入作业的程序和数据。属于通信这一步的键盘命令是比较丰富的,一般有以下几类:下一页(4)退出 当作业运行结束时,用户

28、应打入“退出”命令。系统响应命令后将收回分配给作业的全部资源,然后在终端输出日期和上机时间等,即通知用户系统已结束了该作业。退出系统后,用户若要求系统执行新的作业可再打入“录入”命令。每个作业结束后一定要打入“退出”命令。返回本节2.2操作系统向作业提供的程序级接口系统调用 2.2.1 系统功能调用的分类 2.2.2系统功能调用的实现过程描述 返回本章首页系统调用 :用户所需要的功能,有些是比较复杂的,硬件不能直接提供,只能通过软件的程序来实现。而有些功能可由硬件完成,并设有相应的指令,如启动外设工作,就有用于输入/输出的硬指令。但配置了操作系统后,对系统资源的分配、控制不能由用户干预,而必须

29、由操作系统统一管理。所以,对于这样一类功能,也需有相应的控制程序来实现。 自愿进管指令 :为了实现对这些事先编制好的、具有特定功能的例行子程序的调用,现代计算机系统一般提供自愿进管指令,其指令形式为:SVC N其中,SVC表示机器自愿进管指令的操作码记忆符,N为地址码。SVC是Supervisor Call(访问管理程序)的缩写,所以SVC指令又称访管指令。当处理机执行到这一条指令时就发生中断,该中断称为访管中断,它表示正在运行的程序对操作系统的某种需求。借助中断可使机器状态由目态转为管态。 返回本节2.2.1 系统调用功能分类1设备管理:这类系统调用被用来请求和释放设备,以及启动设备操作等。

30、2文件管理:这类系统调用包括创建、删除文件,读、写文件操作以及移动文件指针等。3进程控制:当多个用户程序在系统内执行时引出了一个新的概念,称为进程。4进程通信:进程间传递消息或信号的系统调用。5存储管理:内存块的申请、释放,获取作业占用内存块的首址、大小等。2.2.2系统功能调用的实现过程描述 操作系统的基本服务是通过系统功能调用来实现的,系统功能调用提供运行程序和操作系统之间的界面。系统调用的实现取决于计算机的结构,它是由特定的硬件指令实现对操作系统某一服务例程的调用。 图2.2说明了系统功能调用的执行过程。 图2.2 系统调用的执行过程 2.3 单道批处理系统的作业调度 2.3.1 作业调

31、度性能的衡量指标2.3.2 先来先服务作业调度算法2.3.3 短作业优先调度算法2.3.4 高响应比优先作业调度算法2.3.1 作业调度性能的衡量指标 对于批处理系统,作业调度的原则体现在一个指标,即各作业的平均周转时间上,如设i作业的周转时间为Ti=Tci-Tsc;Tci,Tsc分别为作业的完成时间和作业的提交时间,则平均周转时间为:J=(Ti)/n;对这个公式涉及的n个作业,相对于长作业,对J值的影响大,而短作业对J值的影响小。为了增加短作业对J值的影响,引入平均带权周转时间的概念。平均带权周转时间定义为:W=(Ti/tri)/n;tri作业的运行时间。一般认为J、W越小,系统对作业的吞吐

32、量越大,系统的性能越高。2.3.2 先来先服务作业调度算法先来先服务作业调度算法是一种较简单的作业调度算法,即每次调度是从后备作业队列中选择一个最先进入该队列的作业,将它调入内存,分配资源、创建相应的进程,放入进程就绪队列准备运行。FCFS算法利于长作业,不利于短作业,而大多数的作业是I/O繁忙的短作业。以FCFS作为主调度算法是不常用的。下一页2.3.3 短作业优先调度算法 短作业优先调度算法是指操作系统在进行作业调度时以作业长短作为优先级进行调度。该调度算法可以照顾到实际上占作业总数绝大部分的短作业,使它们能比长作业优先调度执行。这时后备作业队列按作业优先级由高到低顺序排列,当作业进入后备

33、队列时要按该作业优先级放置到后备队列相应的位置。实践证明,该调度算法的性能是最好的,单位时间的作业吞吐量也最大,但也存在缺点:对长作业极为不利。 。下一页2.3.4 高响应比优先作业调度算法 这是一种折衷算法,是为了克服上述两种算法的不足而提出来的。它既考虑到作业进入系统的先后次序,又顾及到作业的运行长度。 响应比为: RP=1+作业等待时间/作业执行时间 该调度算法在调度作业时首先计算后备作业的响应比RP,然后按RP值从大到小的顺序调度作业运行。从公式可见,作业的RP与作业执行时间成反比,作业的执行时间越短,其RP越高,同时作业的RP会随着它的等待时间的增加而增加,只要等待时间足够长,该作业

34、总会由于响应比高而被调度。 下一页2.4 多道批处理系统作业调度应考虑的因素 在多道程序环境中,平均周转时间、带权平均周转时间比单道时有明显减少。其主要原因是,当一个作业需要进行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 死锁

35、问题本章学习目标在多道程序环境下,程序不能独立运行。作为资源分配和独立运行的基本单位是进程。操作系统所有的特征都是基于进程而体现的。所以,本章的主要问题是: 进程的概念进程的实体、状态及状态的演变进程的控制与调度进程之间的关系协调进程的通信死锁问题及解决返回本章首页3.1 进程的概述 处理机管理是操作系统的基本管理功能之一,它所关心的是处理机的分配问题。也就是说把CPU(中央处理机)的使用权分给某个程序,通常把这个正准备进入内存的程序称为作业,当这个作业进入内存后我们把它称为进程。处理机管理分为作业管理和进程管理两个阶段去实现处理机的分配,常常又把直接实行处理机时间分配的进程调度工作作为处理机

36、管理的主要内容。 进程通常具有三种状态:运行状态(正在使用CPU)、阻塞状态(等待输入/输出)和就绪状态(等待分配CPU)。 返回本章首页3.2 进程的引入和定义3.2.1 进程的引入3.2.2 进程的定义返回本章首页3.2.1 进程的引入1程序的顺序执行及其特性2资源共享3程序的并发执行及其特性 1程序的顺序执行及其特性 由于各类软件的出现及日益复杂化,使得程序设计的概念和方法有了很大的发展,在单道程序工作环境中,我们把一个“程序”理解为“一个在时间上按严格次序前后相继的操作序列”。 一切顺序执行的程序都具有下列特性: (1)顺序性。 (2)资源独占。 (3)结果的无关性。 2资源共享 操作

37、系统提供了两种实现资源共享的方法。 (1)由操作系统统一管理和分配。 (2)由进程自行使用。 3程序的并发执行及其特性 无论是操作系统自身的程序还是用户程序,通常总是存在一些相对独立、但又能并发执行的程序段。由于这些程序段可以被多个用户作业调用,因此可在同一时间间隔内发生。这样一来,某个程序段可能对应多个“计算”,于是程序与“计算”已不具有一一对应关系了。这些“并发程序”就构成了一个“并发环境”。图3.2 并行计算的先后次序程序的制约方式有如下两种 :(1)间接制约方式。这是由于竞争相同资源而引起的,得到资源的程序段可以投入运行,而得不到资源的程序段就是暂时等待,直至获得可用资源时再继续运行

38、。(2)直接制约方式。这通常是在那些逻辑上相关的程序段之间发生的。一般是由于各种程序段要求共享信息引起的 。返回本节目录3.2.2 进程的定义 进程与程序的区别和相互关系 :(1)动态性和静态性。 (2)从结构上看每个进程的实体都是由程序段和相应的数据段两部分构成的,这一特征与程序的含义相近。(3)一个进程可以涉及到一个或几个程序的执行;反之一程序可以对应多个进程,即同一程序段可在不同数据集合上运行,可构成不同的进程 。(4)并发性。 (5)进程具有创建其他进程的功能。 (6)操作系统中的每一个程序都是在一个进程现场中运行的。 返回本节目录3.3 进程的状态和进程控制块 3.3.1 进程的状态

39、及状态变化图 3.3.2 进程控制块 返回本章首页3.3.1 进程的状态及状态变化图 (1)运行状态:进程正在处理机上运行的状态,该进程已获得必要的资源,也获得了处理机,用户程序正在处理机上运行。(2)阻塞状态:进程等待某种事件完成(例如,等待输入/输出操作的完成)而暂时不能运行的状态,处于该状态的进程不能参加竞争处理机,此时,即使分配给它处理机,它也不能运行。(3)就绪状态:该进程运行所需的一切条件都得到满足,但因处理机资源个数少于进程个数,所以该进程不能运行,而必须等待分配处理机资源,一旦获得处理机就立即投入运行。图3.3 典型的进程状态演变图状态变化 :(1)就绪状态变化到运行状态 。(

40、2)运行状态变化到就绪状态。 (3)运行状态变化到阻塞状态。 (4)阻塞状态变化到就绪状态。 返回本节目录3.3.2进程的结构、进程控制块及组织方式 为了刻画进程的动态变化,通常把进程表示为由程序段、私有数据块和进程控制块组成,如图3.4(a)所示。程序部分描述进程本身所要完成的功能,而“私有数据块”是接受程序规定操作的一组存储单元的内容,是操作的对象。进程控制块是在进程创建时产生的,当进程存在于系统时(运行),进程控制块就标识了这个进程。如图3.4(b)所示。 进程控制块是进程存在的标志,当系统或父进程创建一个进程时,实际上就是为其建立一个进程控制块。 进程控制块既能标识进程的存在,又能刻画

41、出进程的动态特征,它是一个进程仅有的被系统真正感知的部分。对操作系统而言,所有进程控制块将构成并发执行控制和维护系统工作的依据。进程控制块的作用:返回本节目录进程控制块PCB的组织方式:为了进行PCB的有效管理,系统将PCB按照一定的方式组织起来。PCB常用的组织方式有: 1)线性表方式:不论进程的状态如何,将所有的PCB连续地存放在内存的系统区。这种方式适用于系统中进程数目不多的情况。这种方式实现简单,但检索速度慢。2)索引表方式:该方式是线性表方式的改进,系统按照进程的状态分别建立就绪索引表、阻塞索引表等。3)链接表方式:系统按照进程的状态将进程的PCB组成队列,从而形成就绪队列、阻塞队列

42、、运行队列等。 3.4 进程控制 3.4.1 原语 3.4.2 进程控制原语 返回本章首页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)创建进程。系统在创建进程时,必须为

43、之分配其所必需的、除处理机以外的所有资源。如内存空间、I/O设备以及建立相应的PCB结构。(2)撤消进程。系统在撤消进程时,又必须先对这些资源进行回收操作,然后再撤消PCB结构。(3)进程切换。在对进程进行切换时,由于要保留当前进程的CPU环境和设置新选中进程的CPU环境,为此需花费不少处理机时间。返回本节目录3.5.2 线程与进程的比较1调度:在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程。 2并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,因而使操作系统具有更好的并发性,从而能更有效地使用系统资源和提高系统吞吐

44、量。 3拥有资源:不论是传统的操作系统,还是设有线程的操作系统,进程都是拥有资源的一个独立单位,它可以拥有自己的资源。 4系统开销:由于在创建或撤消进程时,系统都要为之分配或回收资源,如内存空间、I/O设备等。因此,操作系统所付出的开销将明显地大于在创建或撤消线程时的开销。 返回本节目录3.5.3 线程的类型 对于线程来说,则可分成两类。一类是内核支持线程,它们是依赖于内核的。即无论是在用户进程中的线程,还是系统进程中的线程,它们的创建、撤销和切换都由内核实现。在内核中保留了一个线程控制块,内核根据该控制块而感知该线程的存在并对线程进行控制。另一类是用户级线程。它仅存在于用户级中,对于这种线程

45、的创建、撤销和切换,都不利用系统功能调用来实现,因而这种线程与内核无关。相应地,内核也并不知道有用户级的线程存在。 返回本节目录比较两种线程的优缺点 :1线程的调度与切换速度:内核支持线程的调度和切换与进程的调度和切换十分相似。 2系统功能调用:当传统的用户进程调用一个系统功能调用时,要由用户态进入核心态,用户进程将被阻塞。当内核完成系统调用而返回时,才将该进程唤醒,继续执行。 3线程执行时间 :对于只设置了用户级线程的系统,调度是以进程为单位进行的。在采用轮转调度算法时,各个进程轮流执行一个时间片,这对诸进程而言似乎是公平的。 3.5.4 线程的特点操作系统为每个被创建的进程分配需要的资源,

46、一个进程内的各个线程共享进程的资源。多线程技术有以下明显的优越性:(1)创建线程无需另外分配资源,因而创建线程的速度比创建进程的速度快,且系统开销小。(2)线程间的互操作在同一地址空间中进行,故在交换信息中不需要其他的通信机制,信息传递的速度更快。(3)线程能独立执行,能充分利用和发挥处理器和外围设备并行工作的能力。 3.6 进程调度 3.6.1 进程调度的职能3.6.2 进程调度所用的主要数据结构3.6.3 进程调度的方式3.6.4 进程调度算法3.6.5 综合的调度策略调度用的进程状态切换图返回本章首页3.6.1 进程调度的职能 (1)记录系统中所有进程的有关情况。 (2)确定分配处理机的

47、原则。 (3)分配处理机给进程。 (4)从进程收回处理机。 返回本节目录3.6.2 进程调度所用的主要数据结构通过3.3.2节的学习我们知道操作系统对进程的管理具体体现在对进程的PCB的管理。同时我们也了解到PCB的几种组织方式:线性表方式、索引表方式和链接表方式。一般情况下,PCB的组织方式采用的是链接表方式。因此,在进程调度中所用的主要数据结构是队列(PCB的链接方式在这里就不详细介绍了,若需要了解请参见3.3.2节)。 3.6.3 进程调度的方式进程调度的方式可分为非剥夺式和剥夺式。 剥夺式调度是指当系统按照某种原则发现一个比现运行进程更合适、更应该占用CPU的进程时,系统将强迫处于运行

48、状态的进程将CPU的使用权交给这个更适合的进程。常见的剥夺原则有优先权原则、短进程优先原则和时间片原则。采用剥夺式调度的系统能够及时处理紧急事件,它反映出了进程的优先级特征,但这势必会带来较大的系统开销,调度算法也会相对复杂一些。 非剥夺式调度是指一旦某个进程占用了CPU,除非是由于它自身原因自动放弃CPU,否则它将一直运行下去直到完成。这种调度方式算法简单,系统开销也较小,但它不能反映出进程的优先级特征。 3.6.4 进程调度算法 1先来先服务 2轮转调度 3分级轮转法4优先数法 5多级反馈队列调度算法1先来先服务 这种调度算法按照进程进入就绪队列的先后顺序来调度进程,到达得越早,其优先数越

49、高。获得处理机的进程,未遇到其他情况时,一直运行下去,系统只需具备一个先进先出的队列,在管理优先数的就绪队列时,这种方法是一种最常见策略,并且在没有其他信息时,也是一种最合理的策略。2轮转调度 先来先服务的一个重要变形,就是轮转规则。轮转调度算法是系统把所有就绪进程按先后次序排队,处理机总是优先分配给就绪队列中的第一个就绪进程,并分配它一个固定的时间片(如100毫秒)。当该运行进程用完规定的时间片时,被迫释放处理机给下一个处于就绪队列中的第一个进程,分给这个进程相同的时间片,每个运行完时间片的进程,当未遇到任何阻塞时,就回到就绪队列的尾部,并等待下次转到它时再投入运行。于是,只要是处于就绪队列

50、中的进程,按此种算法迟早总可以分得处理机投入运行。3分级轮转法所谓分级轮转法就是将先前的一个就绪队列。根据进程的优先数不同划分两个或两个以上的就绪队列,并赋给每个队列不同的优先数。以两个就绪队列为例,一个具有较高优先数,另一个具有较低优先数,前者称为前台队列,后者称为后台队列。 4优先数法 根据已占有处理 机的进程是否可被剥夺而分为优先占有法和优先剥夺法两种 。优先占有法的原理是:一旦某个最高优先数的就绪进程分得处理机之后,只要不是其自身的原因被阻塞(如要求I/O操作)而不能继续运行时,就一直运行下去,直至运行结束。优先剥夺法的原理是:当一个正在运行的进程即使其时间片未用完,无论什么时候,只要

51、就绪队列中有一个比它的优先数高的进程,优先数高的进程就可以取代以前正在运行的进程,投入运行 。确定进程的优先数通常应考虑如下几个因素: (1)进程类型。 (2)运行时间。 (3)作业的优先数。 (4)动态优先数。 5 多级反馈队列调度算法 多级反馈队列(Multi-level Feedback Queues,MFQ)调度算法,不必事先知道各种进程所需的执行时间、优先级等,而且可以满足不同类型进程的需要,它采用动态分配优先数,调度策略实质上是抢占式的。 它的调度策略如图3.8所示。 图3.8 多级反馈队列调度策略 返回本节目录3.6.5 综合的调度策略调度用的进程状态切换图 图3.6 调度用的进

52、程状态切换图返回本节目录3.7 进程同步与互斥 3.7.1 进程互斥3.7.2 互斥用的硬件机制3.7.3 进程同步3.7.4 用信号量实现进程同步3.7.5 经典的同步/互斥问题3.7.6 结构化的同步/互斥机制管程返回本章首页3.7.1 进程互斥 几个进程若共享同一临界资源,它们必须以互斥的方式使用这个临界资源,即当一个进程正在使用临界资源且尚未使用完毕时,则其他进程必须推迟对该资源的进一步操作,在当前进程的使用完成之前,不能从中插进去使用这个临界资源,否则将会造成信息混乱和操作出错。 临界区是一个进程访问临界资源的那段程序代码。 有了临界资源和临界区的概念,进程间的互斥可以描述为禁止两个

53、或两个以上的进程同时进入访问同一临界资源的临界区。 几个并行进程对变量和队列等临界资源的互斥共享,可借助进程同步通信机构来完成。信号灯和P/V操作常用来实现进程对临界资源的互斥共享。 返回本节目录3.7.2 互斥用的硬件机制 在许多系统中,都提供了专门用于解决临界区问题的硬件指令Test and Set(简称TS)。在不同的系统中,TS指令有所不同,但其基本功能是相同的。 定义TS指令为:function TS(var lock:boolean):boolean; begin TS:=lock; lock:=true; end 为了实现用硬件指令TS实现进程互斥共享临界资源,系统为每个临界资源

54、设置一个变量lock,该变量如上述有两种状态,其初始值为false,表示该资源空闲,进程可以对其进行访问。用TS指令实现互斥的循环进程可描述如下:repeat while TS(lock) do skip; critical section; lock:=false; remainder section;until false返回本节目录3.7.3 进程同步 并发执行的多个进程,看起来好像是异步前进的,彼此之间都可以互不相关的速度向前推进,而实际上每一个进程在其运行过程中并非相互隔绝。一方面它们相互协作以达到运行用户作业所预期的目的,另一方面它们又相互竞争使用系统中有限的资源。所以它们总是存在

55、着某种间接或直接的制约关系。 同步:我们把进程间的这种必须互相合作的协同工作关系,称为进程同步。返回本节目录3.7.4 用信号量实现进程同步lock和unlock大部分同步方案均采用某个物理实体(如锁、信号灯等)实现通信,进程通信原语中关锁(lock)和开锁(unlock)是最简单的原语。在这两个原语中设置一个公共变量x代表某个临界资源的状态。如:x=0,表示资源可用,x=1,表示资源正在使用。关锁原语1ock(x): L:if x1 then goto L else x:=1;开锁原语unlock(x): x:=0;图3.10 开锁和关锁程序流程图P/V操作P/V操作由P操作原语和V操作原语

56、组成,其意义是指,在一个整型变量S(亦称信号灯或信号量)上定义的两个操作。现欲向缓冲区Bufl输入/输出信息。设s1、s2初值为0,用P/V操作实现上述同步模型如下: 返回本节目录3.7.5 经典的同步/互斥问题 1生产者与消费者问题 2读者与写者问题3. 哲学家进餐问题1生产者与消费者问题 Dijkstra把广义同步问题抽象成一种“生产者与消费者问题”(Producer-consumer-relationship)的抽象模型。事实上,计算机系统中的许多问题都可归结为生产者与消费者问题,生产者与消费者可以通过一个环形缓冲池(见图3.8)联系起来,环形缓冲池由几个大小相等的缓冲块组成,每个缓冲块

57、容纳一个产品。每个生产者可不断地每次往缓冲池中送一个生产产品,而每个消费者则可不断地每次从缓冲池中取出一个产品。 图3.8 环形缓冲池下面给出基于环形缓冲区的生产者与消费者关系的形式描述,设:(1)公用信号量mutex:初值为1,用于实现临界区互斥。(2)生产者私用信号量empty:初值为n,指示空缓冲块数目。(3)消费者私用信号量full:初值为0,指示满缓冲块数目。(4)整型量i和j初值均为0,i指示首空缓冲块序号,j指示首满缓冲块序号。模块 设计如下: Var mutex,empty,full:semaphore; i,j:integer;buffer:array 0n一1 of ite

58、m; Procedure producer; 生产者进程 begin while true do begin produce a product; P(empty); P(mutex); Buffer (i):Product; i:(i+1) mod n; V(mutex); V(full) end end; procedure consumer; 消费者进程 begin While true do begin P(full); P(mutex) goods:buffer(j); j:(j+1) mod n; V(mutex); V(empty); Consume a product; end

59、 end;begin seminitial ; i:j:0; cobegin producer; consumer; coend end2读者与写者问题 设某航空公司有2个售票处,它们通过远程终端访问设在公司总部的航空订票系统,并要查询或修改系统中记录所有班机当前订票数的数据库B。设Bi为某班机的当前订票数,P1和P2分别代表2个售票处的售票进程,R1和R2为进程执行时使用的工作寄存器。由于售票进程并发执行,且各自访问数据库B的时间是随机的,故有可能出现下面的访问序列(假定Bi的当前值为x):P1:R1:=Bi;R1:=R1+1P2:R2=Bi;R2:=R2+1;P1:Bi:=R1;P2:Bi

60、:=R2可见,Bi的新值是X+1,而不是X+2。这里的P1和P2均为写者,显然,对于写者Bi为临界资源,因此写者应该互斥。下面给出读者进程与写者进程的一般结构。var mutex, wrt: semaphore;readcount: integer;begin seminit ;readcount:=0cobeginprocedure reader;beginP(mutex);Readcount:=readcount+1;If readcount=1 then P (wrt);V(mutex);Reading is performing;P(mutex);readcount:=readcoun

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论