教学课件:《计算机操作系统教程》_第1页
教学课件:《计算机操作系统教程》_第2页
教学课件:《计算机操作系统教程》_第3页
教学课件:《计算机操作系统教程》_第4页
教学课件:《计算机操作系统教程》_第5页
已阅读5页,还剩377页未读 继续免费阅读

下载本文档

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

文档简介

1、第1章 计算机操作系统概述1.1 存储程序式计算机1.2 操作系统的发展历史1.3 操作系统的基本概念1.4 操作系统的逻辑模型1.5 微机操作系统本章学习目标操作系统的作用操作系统的发展操作系统的特征与功能多道程序设计的概念操作系统的模型1.1 存储程序式计算机1.1.1 存储程序式计算机的结构与特点1.1.2 作为扩展计算机功能的操作系统1.1.3 作为资源管理的操作系统 返回首页1.1.1 存储程序式计算机的结构与特点存储程序式计算机模型的基本方案是,如要使计算机能够自动地计算,必须有一个存储器用来存储程序和数据;同时要有一个运算器,用以执行指定的操作;有一个控制器,以便实现自动操作;另

2、外,辅以输入/输出部件,以便输入原始数据和输出计算结果。于是形成了现代计算机的基本组成形式。如图1.1所示。存储器运算器数据数据指令控制器控制信号输出器输入器程序和数据图1.1 存储程序计算机的组成返回本节1.1.2 作为扩展计算机功能的操作系统一台完全无软件的计算机系统称为裸机,即便其性能再强,相对于用户来讲,如果要面对计算机的指令集、存储组织、I/O总线结构的编程则是十分困难的。对于一般程序员也并不想涉足硬件编程的种种具体细节,而希望针对数据结构抽象地使用硬件。如果我们在裸机上覆盖一层I/O设备管理软件,用户便可以利用这层I/O设备管理软件提供给用户的接口来进行数据的输入和输出,那么用户此

3、时看到的计算机是一台功能强大、使用方便的计算机,但实际上,计算机的硬件丝毫没有变化,这样的计算机称为软件扩充的机器,或称软件虚拟机。 返回本节1.1.3 作为资源管理的操作系统从作为机器功能扩充的观点看,操作系统是为用户提供基本的方便的接口,这是一种自顶向下的观点或是自内向外的观点。但是从用户向机器的观点或自底向上的观点来看,操作系统则用来管理一个复杂计算机系统的各个部分。现代计算机包含处理器、存储器、时钟、磁盘、终端、网络接口、打印机以及许多其他设备。从这个角度来看,操作系统的任务是在相互竞争的程序之间有序地控制对处理器、存储器以及其他I/O接口设备的分配。返回本节1.2 操作系统的发展历史

4、1.2.1 无操作系统的计算机1.2.2 单道批处理系统与多道批处理系统及执行系统1.2.3 分时系统1.2.4 实时系统 1.2.5 网络操作系统与分布式操作系统 返回首页1.2.1 无操作系统的计算机人工操作方式有以下两个缺点:(1)用户独占全部计算机系统资源。(2)CPU等待人工操作。用户进行装带(卡)、卸带(卡)等人工操作时,CPU这个系统最重要的资源空闲。图1.2 手工操作计算机返回本节1.2.2 单道批处理系统与多道批处理系统及执行系统所谓批处理系统是指加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地成批地处理一个或多个用户的作业。首先出现的是联机批处理系统。如图1.3

5、所示。 脱机批处理系统控制作业的输入/输出过程是:利用一台或几台微机或主机的卫星机,让它们从输入机上读取用户程序,并输出到磁带上;主机空闲时从输入磁带机上取作业运行,并把结果输出到高速输出磁带机上;当微机或卫星机空闲时,再控制向慢速外设上输出。用户输入机磁带主机输出设备图1.3 联机处理系统批处理系统虽然实现了作业的自动选择、作业的缓输入与缓输出,但也有很多缺点。例如,为了实现主机与外设的并行操作,引入了卫星机或微机专门负责I/O操作;当主机与高速外存通讯时,其过程仍由主机控制。所谓中断是指当主机接到外界硬件发来的中断信号时,停止原来的工作,转去处理中断的事件。在处理中断完成以后,主机又回到原

6、来的工作点继续工作。这样可以使用户程序的I/O申请完成后,主机能自动在原中断点之后继续运行,同时为多道程序并发执行打下了基础。高速磁带高速磁带输入机输出设备主机微机图1.4 脱机批处理系统批处理系统虽然实现了作业的自动选择、作业的缓输入与缓输出,但也有很多缺点。例如,为了实现主机与外设的并行操作,引入了卫星机或微机专门负责I/O操作;当主机与高速外存通讯时,其过程仍由主机控制。所谓中断是指当主机接到外界硬件发来的中断信号时,停止原来的工作,转去处理中断的事件。在处理中断完成以后,主机又回到原来的工作点继续工作。这样可以使用户程序的I/O申请完成后,主机能自动在原中断点之后继续运行,同时为多道程

7、序并发执行打下了基础。在单道批处理系统中,内存中仅有一道作业,中断和通道技术出现以后,虽然可以实现输入/输出设备与中央处理机并行操作,但由于属于同一道作业的可并发执行的进程不多,大多数进程是有同步关系的,这使系统中仍有较多的空闲资源,致使系统的性能较差。为了进一步提高资源的利用率和系统对作业的吞吐量,在20世纪60年代中期,引入了多道程序设计技术,由此而形成了多道批处理系统。单道程序与多道程序的执行过程如图1.5和图1.6所示。图1.5 单道程序工作过程示意图1.6 多道程序执行过程示意在操作系统中引入多道程序设计技术以后,会使系统具有以下特征。(1)多道性 (2)无序性 (3)宏观上并行、微

8、观上串行 (4)调度性 返回本节1.2.3 分时系统分时技术是把处理机的时间分成很短的时间片,这些时间片轮流地分配给各个联机的各作业使用。如果某作业在分配给它的时间片用完时仍未完成,则该作业就暂时中断,等待下一轮运行,并把处理机的控制权让给另一个作业使用。这样在一个相对较短的时间间隔内,每个用户作业都能得到快速响应,以实现人机交互。分时系统与多道批处理系统相比,具有完全不同的特征,由上所述可以归纳成以下几点:(1)多路性:允许在一台主机上同时联接多台联机终端,系统按分时原则为每个用户服务。(2)独立性:每个用户各占一个终端,彼此独立操作,互不干扰。(3)及时性:用户的请求能在很短时间内获得响应

9、。(4)交互性:用户可通过终端与系统进行广泛的人机对话。返回本节1.2.4 实时系统1实时操作系统的分类2实时操作系统的主要目标1实时操作系统的分类实时控制实时控制系统的主要特点是:与被控制过程的变化速度相比,其反应速度要足够快;工作安全可靠,即使系统硬件发生故障,系统也能安全运行;操作人员使用系统也简单、方便。实时信息处理典型的实时信息处理系统有:飞机订票系统、情报检索系统等。2实时操作系统的主要目标(1)实时时钟管理。 (2)连续人机对话。 (3)过载防护。 (4)高可靠性。 返回本节1.2.5 网络操作系统与分布式操作系统到20世纪80年代,随着超大规模集成电路的发展产生了微型计算机,配

10、置在微机上的操作系统称为微机操作系统。最早出现的微机操作系统是8位微机上的CP/M,它是一个单用户单任务操作系统,即只允许一个用户上机,且只允许用户程序作为一个任务运行。 1981年IBM公司推出16位的IBM-PC个人计算机,并在其上采用了微软公司开发的MS-DOS操作系统。 1987年4月,IBM公司推出了OS/2,其最初的版本OS/2 1.X是针对80286开发的,仍属16位操作系统,但已能实现真正的多任务处理。 1990年微软公司推出Windows 3.0,其友好的图形用户界面及易学易用的特点使其很快占领了个人计算机操作系统的市场。 1995年推出的Windows 95及1998年推出

11、的Windows 98成为32位多任务操作系统的主流。如果允许多个用户通过各自的终端,使用同一台主机共享主机系统中的各类资源,而每个用户程序又可进一步分为几个任务,使它们并发执行,从而进一步提高资源利用率和系统吞吐量,则这种操作系统称多为用户多任务操作系统。在大、中、小型计算机上都可以配置多用户多任务操作系统,在32位微机上也有很多配置多用户多任务操作系统,最有代表性的是UNIX操作系统。 计算机技术和通讯技术的结合使得微机用户资源共享及相互通信的愿望成为可能,即在一台计算机上可以使用其他机器上的资源或进行通信。这样计算机网络的概念得以产生。一些独立自治的计算机利用通信线路相互连接形成的计算机

12、的集合,称为计算机网络。大量的实际应用要求一个一体化的系统,用户希望以统一的界面,标准的接口去使用系统的各种资源,实现所需的各种操作。这就导致了分布式系统的出现。一个分布式系统是若干计算机的集合,它们都有自己的局部存储器和外部设备,但分布式系统是一个一体化的系统,在系统中有一个全局操作系统,即分布式操作系统,它负责整个系统的资源分配和调度、任务划分、信息传输、控制协调等工作,为用户提供一个统一的界面,标准的接口,用户通过这一界面实现所需的操作和使用系统的资源,但操作和计算是在哪一台计算机上执行或使用哪个计算机的资源则由操作系统自动完成,用户不用知道,即分布式操作系统是透明的。返回本节1.3 操

13、作系统的基本概念1.3.1 操作系统的定义1.3.2 操作系统的基本功能 1.3.3 操作系统的特征 返回首页1.3.1 操作系统的定义操作系统是一个大型的程序系统,它负责计算机的全部软、硬件资源的分配、调度工作,控制协调多个任务的活动,实现信息的存取保护,并提供用户接口,使用户获得良好的工作环境。操作系统使整个计算机系统实现了高效率和高度自动化。计算机系统拥有丰富的硬件、软件资源,操作系统要对这些资源进行管理。在一般微机上配置单用户操作系统,管理CPU、内存、打印机、键盘、显示器、软盘及硬盘驱动器、程序和数据,其目的是让用户方便地使用系统资源解决计算任务,如让打印机打印计算结果,从键盘输入数

14、据、在软盘上建立文件等。而在较大型机器上配置多用户操作系统其资源管理的功能就要复杂得多,因为多个用户共用一个系统,会产生资源共享的问题,即资源的竞争使用。 返回本节1.3.2 操作系统的基本功能1存储器管理的功能2处理机管理的功能3设备管理的功能4文件管理的功能1存储器管理的功能内存分配内存分配的主要任务是为每道程序分配内存空间,但要以存储器利用率最高、减少不可用的内存空间为准则,同时允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。内存保护 内存保护的主要任务是确保每道用户程序在自己的内存空间中运行,互不干扰,也就是说绝不允许用户程序访问操作系统和其他用户的程序和数据。

15、地址映射一个应用程序经编译后,通常会形成若干个目标程序,这些目标程序再经过链接而形成可执行程序。 内存扩充由于物理内存的容量有限,难以满足用户的需要,存储器管理的任务就是在不增加物理内存的条件下,借助于虚拟内存技术从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多。 2处理机管理的功能处理机管理的主要任务是对处理机进行分配,并对其运行进行有效的控制和管理。在多道程序环境下,处理机的分配和运行都是以进程为单位,所以对处理机的管理可理解为对进程的管理。进程控制进程同步进程通信 调度3设备管理的功能缓冲管理为达到缓解CPU和I/O设备速度不匹配的矛盾,达到提高CPU和I/O设备利用

16、率,提高系统吞吐量的目的,许多操作系统通过设置缓冲区的办法来实现。 设备分配设备分配的基本任务是根据用户的I/O请求,为他们分配所需的设备。如果在I/O设备和CPU之间还存在设备控制器和通道,则还需为分配出去的设备分配相应的控制器和通道。设备处理设备处理程序又称设备驱动程序。其基本任务是实现CPU和设备控制器之间的通信。 设备独立性和虚拟设备用户向系统申请和使用的设备与实际操作的设备无关 4文件管理的功能文件存储空间的管理目录管理文件的操作返回本节1.3.3 操作系统的特征1并发特征(Concurrence)2共享特征(Sharing)3虚拟特征(Virtual)4不确定性1并发特征(Conc

17、urrence)并发性是指两个或多个事件在同一时间间隔内发生。 2共享特征(Sharing)共享是指系统中资源可供内存中多个并发执行的进程共同使用。 3虚拟特征(Virtual)虚拟是指将一个物理的实体映射为若干个逻辑实体。 4不确定性第一,程序执行结果的不确定,程序执行结果的不可再现。 第二,多道程序设计环境下,每道程序在何时执行,各自执行的程序以及每道程序所需的时间是不确定的,也是不可预知。 返回本节1.4 操作系统的逻辑模型1操作系统的对象2操作系统对象操纵和管理的软件集合3用户接口返回首页用户接口(命令接口、程序接口、图形用户接口)对对象操纵和管理的软件集合(处理机管理软件、存储器管理

18、软件、设备管理软件、文件管理软件)操作系统对象(处理机、存储器、设备、文件)图1.7 操作系统的逻辑结构用户接口(1)命令接口:这是用户与操作系统直接的接口。用户可以直接从键盘等终端设备输入命令来取得操作系统的服务。(2)程序接口:这是应用程序与操作系统的接口。用户通过在程序中安排系统调用,让程序取得操作系统的服务。(3)图形用户接口:目前流行的操作系统普遍配置了更为直观的图形用户接口,将操作系统的各项功能及各种应用程序以图标的形式表示出来,利用鼠标进行操作,这样使用户对计算机的操作更为直观、简单方便。返回本节1.5 微机操作系统1.5.1 DOS操作系统1.5.2 MS-Windows操作系

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

20、indows 3.1版,提供386增强模式,提高了运行速度,功能也更强大。1993年推出Windows NT是一个全新的32位多任务操作系统,成为Windows家族中功能最强并支持网络功能的操作系统。 之后在Windows 95的基础上又推出Windows 97、98,提供了Internet浏缆器和网络功能,使它们成了当今个人计算机上最广泛使用的操作系统。 返回本节1.5.3 UNIX操作系统UNIX操作系统是美国电报电话公司的Bell实验室开发的,至今已有20多年的历史,它最初是配置在DEC公司的PDP小型机上,后来在微机亦可使用。 UNIX操作系统是唯一能在微机工作站、小型机到大型机上都能

21、运行的操作系统,也是当今世界最流行的多用户、多任务操作系统。返回本节本章小结本章描述了操作系统的基本概貌。重点介绍操作系统的定义及操作系统对系统资源的管理功能和操作系统的特征;阐述了多道程序设计技术和分时技术,并说明了批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统的特点及使用场合。 返回首页第2章 作业管理2.1 用户使用计算机的算题过程2.2 操作系统向作业提供的程序级接口系统调用2.3 单道批处理系统的作业调度2.4 多道批处理系统作业调度应考虑的因素本章学习目标操作命令:包括作业控制语言和键盘命令,这是用户操作计算机的方式系统功能调用:这是用户程序对操作系统提供

22、的服务的调用接口系统功能调用的执行过程批处理系统作业调度问题2.1 用户使用计算机的算题过程2.1.1 作业的形成过程2.1.2 批处理系统作业运行前的准备作业控制语言2.1.3 分时系统作业控制方法命令 返回首页2.1.1 作业的形成过程使用计算机来计算来运行用户程序有三个步骤:(1)用某种语言(例如FORTRAN语言)编制一个程序,它被称为源程序。(2)将源程序和初始数据记录在某种输入介质上。例如穿成一盘纸带,或在终端设备(包括键盘、显示器)上直接编辑源程序。(3)按照一定要求来控制计算机工作,并经过加工最后算出结果 对作业的处理一般有这样几个作业步: (1)编辑(修改):建立新文件或是对

23、原有文件进行修改。 (2)编译:请求系统把修改好的源程序翻译成浮动目标模块,并将它放在磁盘上,也可以穿孔输出或二者有之。(3)链接:请求系统把主程序模块和其他所需要的子程序和例行程序链接装配在一起,成为一个可执行的完整的内存映像文件。(4)运行:将内存映像文件调入内存,并启动之,最后给出计算结果。USER.FOR编辑(修改)第一个作业步USER.OBJ第二个作业步编译USER.EXE链接第四个作业步运行第三个作业步图2.1 作业步之间的关系返回本节2.1.2 批处理系统作业运行前的准备作业控制语言作业控制语言(JCL)出现在早期的批处理控制系统(脱机工作方式)。它既可以写成操作说明书的形式,也

24、可穿孔成为作业控制卡的形式(前者为较多的为批处理系统所采用)。 作业控制语言,是由一组作业控制命令组成的集合,专门用于批处理系统。其中,每一条作业控制命令给出一条作业的说明信息供作业控制用。 操作系统根据作业申请表来分配作业所需的资源并注册该作业;通过作业说明书(或作业控制卡)对作业实施运行控制。一般在批处理系统中都提供JCL语言。 正 常 工 作 部 分干 预 部 分:命令参数串失败标号!条件:命令参数串!XGA/,B/,C/,L1!BYB/,D/,L1!ZRD/,L1!YX(03:XRFIXED!I1:TG!05 :ZYL1!08:ZY03!表2.1 一个作业控制说明书样品09:ZYI1!

25、10:XRMVOFI!TGSTR!)AB:ZY03!L1:CL!*续表返回本节2.1.3 分时系统作业控制方法命令1呼叫2联接3通信4退出属于通信这一步的键盘命令是比较丰富的,一般有以下几类: (1)环境设置。 (2)系统管理。 (3)文件管理。 (4)编辑修改。 (5)编译、连接装配和运行。 (6)输入数据。 (7)操作方式转换。 (8)申请资源。 返回本节2.2 操作系统向作业提供的程序级接口系统调用2.2.1 系统功能调用的分类 2.2.2 系统功能调用的实现过程描述 返回首页操作系统与用户的程序级接口是系统功能调用。它是管理程序提供的服务界面,或更确切地说是操作系统中支持程序设计语言正

26、常工作的支撑系统所提供的界面。所以系统调用命令是操作系统提供给用户的程序级接口,用户程序通过该接口可以调用底层的“系统程序模块”,实现一些操作。不同的计算机系统提供的访管指令形式不同,由它们定义的汇编一级的系统调用的形式也就不同。如IBM360370机器中访管指令的形式为“SVC N”,IBMPC机提供的软件中断指令为“INT N”,其中N为中断类型号,由它定义了不同的软件中断。软件中断可用作“管理程序调用”,也就是请求操作系统服务。其中21H中断类型中又包含了DOS丰富的系统功能调用。2.2.1 系统功能调用的分类1设备管理2文件管理3进程控制4进程通信5存储管理返回本节2.2.2 系统功能

27、调用的实现过程描述操作系统的基本服务是通过系统功能调用来实现的,系统功能调用提供运行程序和操作系统之间的界面。系统调用的实现取决于计算机的结构,它是由特定的硬件指令实现对操作系统某一服务例程的调用。为了说明系统调用的实现过程,我们以中断指令SVC N(N为系统调用功能号)为例。图2.3说明了系统功能调用的执行。图2.3 系统调用的执行过程返回本节2.3 单道批处理系统的作业调度2.3.1 作业调度性能的衡量指标2.3.2 先来先服务作业调度算法2.3.3 短作业优先作业调度算法2.3.4 高响应比优先作业调度算法 返回首页所谓作业调度,是指按某种算法把处于后备状态的作业的一个或一批调度到主机上

28、运行。单道批处理系统解决的是作业步与作业步之间、作业与作业之间的自动转接问题。即,省去作业中的人工操作问题。 作业调度时,操作系统调度程序一般应遵循以下原则:(1)单位时间应并发运行尽可能多的用户作业。(2)使CPU尽可能保持“忙”,不空闲,以提高CPU资源的利用率。(3)I/O设备尽可能保持“忙”,不空闲,以提高设备资源的利用率。(4)各类型的作业平等。2.3.1 作业调度性能的衡量指标对于批处理系统,作业调度的原则体现在一个指标各作业的平均周转时间上。如设i作业的周转时间为Ti=Tci-Tsc其中:Tci为作业的完成时间;Tsc为作业的提交时间则平均周转时间为:T=(Ti)/n平均带权周转

29、时间定义为:W=(Ti/tri)/n(其中,tri作业的运行时间。)一般认为J、W越小,系统对作业的吞吐量越大,系统的性能越高。返回本节2.3.2 先来先服务作业调度算法先来先服务作业调度算法是一种较简单的作业调度算法,即每次调度是从后备作业队列中选择一个最先进入该队列的作业,将它调入内存,分配资源、创建相应的进程,放入进程就绪队列准备运行。作业号提交时间运行长度110:002小时210:061小时310:150.25小时表2.2 三个作业提交与运行情况表作业号开始时间结束时间周转时间110:0012:002.00小时212:0013:002.90小时313:0013:153.00小时表2.3

30、 三个作业计算结果返回本节2.3.3 短作业优先作业调度算法短作业优先调度算法是指操作系统在进行作业调度时以作业长短作为优先级来调度。该调度算法可以照顾到实际上占作业总数绝大部分的短作业,使它们能比长作业优先调度执行。这时后备作业队列按作业优先级由高到低顺序排列,当作业进入后备队列时要按该作业优先级放置到后备队列相应的位置。作业号开始时间结束时间周转时间110:0012:002.00小时212:1513:153.15小时312:0012:152.00小时表2.4 三个作业短作业优先调度结果返回本节2.3.4 高响应比优先作业调度算法这是一种折衷算法,是为了克服上述两种算法的不足而提出来的。它既

31、考虑到作业进入系统的先后次序,又顾及到作业的运行长度。响应比为: 作业等待时间作业估计运行时间RP=1+作业号提交时间运行长度18:002小时28:300.5小时39:000.1小时49:300.2小时表2.5 四个作业提交与运行情况表作业号开始时间结束时间周转时间18:0010:002.00小时210:0610:362.1小时310:0010:061.10小时410:3610:481.30小时表2.6 四个作业计算结果返回本节2.4 多道批处理系统作业调度应考虑的因素在多道程序环境中,平均周转时间、带权平均周转时间比单道时有明显减少。其主要原因是,当一个作业需要进行I/O操作时,可将CPU分

32、给另一个作业运行。由于通道和中断的支持,CPU和I/O之间完全可以并行,使一部分运行时间重叠,这样总的运行时间就缩短了。但是,总的运行时间的缩短并不是总能使平均周转时间缩短。这与系统多道程序的道数有关。返回首页本章小结本章的主要内容是运行一个用户程序的过程和用户与操作系统的接口,使读者掌握在计算机上运行一个用户程序的步骤及操作系统提供的两个接口和操作命令在不同类型操作系统中的形式。重点是系统功能调用的定义、形式和实现过程。并以单道批处理为例阐述了作业调度的基本算法,并举例说明。返回首页第3章 进程管理3.1 引言3.2 进程的引入和定义3.3 进程的状态和进程控制块3.4 进程控制3.5 线程

33、的基本概念3.6 进程调度3.7 进程通信3.8 死锁问题本章学习目标进程的概念进程的实体、状态及状态的演变进程的控制与调度进程之间的关系协调进程的通信死锁问题及解决3.1 引言处理机管理是操作系统的基本管理功能之一,它所关心的是处理机的分配问题。也就是说把CPU(中央处理机)的使用权分给某个程序,通常把这个正准备进入内存的程序称为作业,当这个作业进入内存后我们把它称为进程。处理机管理分为作业管理和进程管理两个阶段去实现处理机的分配,常常又把直接实行处理机时间分配的进程调度工作作为处理机管理的主要内容。 进程管理的主要功能是把处理机分配给进程以及协调各个进程之间的相互关系。它是由进程调度程序和

34、进程控制(控制进程状态转换)程序这两部分内容组成的。 返回首页3.2 进程的引入和定义3.2.1 进程的引入3.2.2 进程的定义 返回首页3.2.1 进程的引入1程序的顺序执行及其特性2资源共享3程序的并发执行及其特性1程序的顺序执行及其特性图3.1表示每次仅能调度一个用户作业进行操作的先后次序。输入、计算和打印输出工作只能串行执行,我们可以把程序的执行过程看作是一系列状态转变过程,每执行一个操作,系统就从一种状态变成另一种状态。图中I表示输入操作,P表示处理操作,O表示输出操作。图3.1 顺序处理操作的先后次序由上述顺序程序的执行情况可以看出,一切顺序执行的程序都具有下列特性:(1)顺序性

35、。程序在处理机上执行时,其操作只能严格地按照所规定的顺序执行,后继操作只有在前一操作执行完毕之后方能执行,否则就会发生程序逻辑错误。(2)资源独占。程序在执行过程中独占全部资源,资源状态的改变只与程序本身有关,而与外界环境无关。(3)结果的无关性。第一,指程序执行的结果与其执行速度无关。第二,是指只要程序的初始条件不变,当重复执行时,一定能得到相同的结果。2资源共享操作系统是用来实现对计算机资源进行管理的一个大型系统程序,其基本特征之一就是资源共享。这里的资源就是指计算机处理一个任务或一个作业时的所有硬设备(处理机、内存、外存、输入/输出设备等)和软设备(文件、程序、数据、信息等)的总称。所谓

36、资源共享,就是指计算机中并发执行的多个程序交替使用计算机硬件和软件资源。操作系统提供了两种实现资源共享的方法 。(1)由操作系统统一管理和分配。(2)由进程自行使用。 I1P1O1I2P2O2I3P3O3作业1图3.2 并行计算的先后次序3程序的并发执行及其特性在大多数计算问题中,仅要求操作在时间上是部分有序的。有些操作必须在其他操作之后执行,另外有些操作却可以并行地执行。如图3.2所示,其先后次序是:I1先于P1和I2;P1先于O1、P2和I3;O1先于O2,P3部分有序使某些操作的并行执行成为可能,如I2和P1,I3,P2与O1等操作的执行可以在时间上互相重叠。通常,程序的制约方式有如下两

37、种。 (1)间接制约方式。 (2)直接制约方式。 无论是操作系统自身的程序还是用户程序,通常总是存在一些相对独立、但又能并发执行的程序段。 为了合理利用系统资源,更好地发挥各种资源的效益,使各种物理设备之间的时间性限制条件减少到最低限度,最大限度地提高系统的效率,因而引出了多道程序方法。其实质是减少程序的顺序性,提高系统的并行性。 返回本节3.2.2 进程的定义。进程是现代操作系统的一个基本概念,是并发程序出现后出现的一个重要概念,它是指程序在一个数据集合上运行的过程,是系统进行资源分配和调度运行的一个独立单位,有时也称为活动、路径或任务。进程,作为程序执行的过程,至少有两个方面的性质:一是它

38、的活动性,即进程是动态变化的,且总有一个从创建到消亡的过程;二是它的并发性,即多道程序中每个进程的执行过程,总是与其他执行过程并发执行的。 进程与程序的区别和相互关系 :(1)动态性和静态性。 (2)从结构上看每个进程的实体都是由程序段和相应的数据段两部分构成的,这一特征与程序的含义相近。 (3)一个进程可以涉及到一个或几个程序的执行 。(4)并发性。 (5)进程具有创建其他进程的功能。 (6)操作系统中的每一个程序都是在一个进程现场中运行的。 进程通常分为两类,一类是系统进程,另一类是用户进程。它们的区别是:(1)系统进程是操作系统用来管理系统资源并行活动的并发软件。 (2)系统进程之间的关

39、系由操作系统自己负责。 (3)系统进程直接管理有关的软、硬设备的活动。(4)在进程调度中,系统进程的优先级高于用户进程。 返回本节3.3 进程的状态和进程控制块3.3.1 进程的状态及状态变化图3.3.2 进程的结构、进程控制块及组织方式 返回首页3.3.1 进程的状态及状态变化图(1)运行状态:进程正在处理机上运行的状态,该进程已获得必要的资源,也获得了处理机,用户程序正在处理机上运行。(2)阻塞状态:进程等待某种事件完成(例如,等待输入/输出操作的完成)而暂时不能运行的状态,处于该状态的进程不能参加竞争处理机,此时,即使分配给它处理机,它也不能运行。(3)就绪状态:该进程运行所需的一切条件

40、都得到满足,但因处理机资源个数少于进程个数,所以该进程不能运行,而必须等待分配处理机资源,一旦获得处理机就立即投入运行。运行就绪阻塞进程因某事件(如等待I/O完成)变成阻塞状态某事件被解除(I/O完成)时间片已用完进程调度程序把处理机分配给进程(1)(2)(3)(4)图3.3 典型的进程状态演变图在具有挂起和激活的系统中,又增加了两种基本的进程状态:静止就绪和静止阻塞。 (1)静止就绪:它是活动就绪进程由其自身或其他进程调用挂起原语而进入的一种状态。处于静止就绪状态的进程没有资格争用CPU,只有其他进程调用激活原语将其激活才行。(2)静止阻塞:它是活动阻塞进程由其自身或其他进程调用挂起原语而进

41、入的一种状态。处于静止阻塞状态的进程,在其挂起期间并不影响其等待事件的发生。图3.4是具有静止状态的进程状态变迁图。运行活动就绪活动阻塞进程因某事件(如等待I/O完成)变成阻塞状态某事件被解除(如I/O完成)时间片已用完进程调度程序把处理机分配给进程静止阻塞静止就绪挂起挂起激活激活某事件被解除(如I/O完成)创建图3.4 具有静止状态的进程状态变迁图返回本节3.3.2 进程的结构、进程控制块及组织方式1进程的结构进程都是由一系列操作(动作)所组成,通过这些操作来完成其任务。因此,不同的进程,其内部操作也不相同。在操作系统中,描述一个进程除了需要程序和私有数据之外,最主要的是需要一个与动态过程相

42、联系的数据结构,该数据结构用来描述进程的外部特性(名字、状态等)以及与其他进程的联系(通信关系)等信息,该数据结构称为进程控制块(PCB,Process Control Block)。 PCB程序段私有数据块图3.5 进程的结构2进程控制块PCB及组织方式(1)进程控制块PCB进程控制块跟踪程序执行过程中的状态,它们表达了进程在当前时刻的状态以及它与其他进程和资源的关系。进程控制块是进程存在的标志,当系统或父进程创建一个进程时,实际上就是为其建立一个进程控制块。进程控制块不但指出了进程的名字,而且也标志出程序和数据集合的物理位置 。进程名当前状态优先数现场保留区指示处于同一状态进程的链指针资源

43、清单进程起始地址家族关系其他图3.6 进程控制块的基本内容(2)进程控制块PCB的组织方式 1)线性表方式:不论进程的状态如何,将所有的PCB连续地存放在内存的系统区。这种方式适用于系统中进程数目不多的情况。 2)索引表方式:该方式是线性表方式的改进,系统按照进程的状态分别建立就绪索引表、阻塞索引表等。 3)链接表方式:系统按照进程的状态将进程的PCB组成队列,从而形成就绪队列、阻塞队列、运行队列等。 返回本节3.4 进程控制3.4.1 原语3.4.2 进程控制原语 返回首页3.4.1 原语原语通常由若干条指令所组成,用来实现某个特定的操作。通过一段不可分割的或不可中断的程序实现其功能。原语是

44、操作系统核心,它不是由进程而是由一组程序模块所组成,是操作系统的一个组成部分,它必须在管态(一种机器状态,管态下执行的程序可以执行特权和非特权两类指令,通常把它定义为操作系统的状态)下执行,并且常驻内存,而个别系统有一部分不在管态下运行。 图3.7 进程家族示例返回本节3.4.2 进程控制原语1创建原语2撤消原语3阻塞原语4唤醒原语5挂起原语6激活原语返回本节3.5 线程的基本概念3.5.1 线程的引入3.5.2 线程与进程的关系 3.5.3 线程的类型 返回首页3.5.1 线程的引入(1)创建进程。系统在创建进程时,必须为之分配其所必需的、除处理机以外的所有资源。如内存空间、I/O设备以及建

45、立相应的PCB结构。(2)撤消进程。系统在撤消进程时,又必须先对这些资源进行回收操作,然后再撤消PCB结构。(3)进程切换。在对进程进行切换时,由于要保留当前进程的CPU环境和设置新选中进程的CPU环境,为此需花费不少处理机时间。返回本节3.5.2 线程与进程的关系1调度2并发性3拥有资源4系统开销返回本节3.5.3 线程的类型1线程的调度与切换速度2系统功能调用3线程执行时间线程已在许多系统中实现,但实现的方式并不完全相同。在有的系统中,特别是一些数据库管理系统如Informix,实现的是用户级线程(User-Level-Threads),这种线程不依赖于内核。而另一些系统(如Mach和OS

46、/2操作系统)实现的是内核支持线程(Kernel-Supported- Threads),这种线程依赖于内核。还有一些系统如Solaris操作系统,则同时实现了这两种类型的线程。返回本节3.6 进程调度3.6.1 进程调度的职能3.6.2 进程调度所用的主要数据结构3.6.3 进程调度的方式3.6.4 进程调度算法 3.6.5 综合的调度策略调度用的进程状态切换图返回首页3.6.1 进程调度的职能(1)记录系统中所有进程的有关情况。 (2)确定分配处理机的原则。 (3)分配处理机给进程。 (4)从进程收回处理机。引起进程调度的原因不仅与操作系统的类型有着密切的关系,而且还与下列因素有关:正在运

47、行的进程运行完毕;运行中的进程要求I/O;执行某种原语操作;一个比正在运行进程优先数更高的进程申请运行(在可剥夺调度方式下);分配给运行进程的时间片已经用完等。返回本节3.6.2 进程调度所用的主要数据结构通过3.3.2节的学习我们知道操作系统对进程的管理具体体现在对进程的PCB的管理。同时也了解到进程控制块PCB的几种组织方式:线性表方式、索引表方式和链接表方式。一般情况下,进程控制块PCB的组织方式采用的是链接表方式。因此,在进程调度中所用的主要数据结构是队列(PCB的链接方式在这里就不详细介绍了,若需要请详见3.3.2节) 返回本节3.6.3 进程调度的方式进程调度的方式可分为非剥夺式和

48、剥夺式。剥夺式调度是指当系统按照某种原则发现一个比现运行进程更合适、更应该占用CPU的进程时,系统将强迫处于运行状态的进程将CPU的使用权交给这个更适合的进程。 非剥夺式调度是指一旦某个进程占用了CPU,除非是由于它自身原因自动放弃CPU,否则它将一直运行下去直到完成。 返回本节3.6.4 进程调度算法1先来先服务2轮转调度3分级轮转法4优先数法进程调度的主要问题就是采用某种算法合理有效地把处理机分配给进程,其调度算法应尽可能提高资源的利用率,减少处理机的空闲时间。对于用户作业采用较合理的平均响应时间,以及尽可能地增强处理机的处理能力,避免有些作业长期不能投入运行。这些“合理的原则”往往是互相

49、制约的,甚至是矛盾的,难以全部达到要求。进程的优先数是根据什么条件确定的,这是一个很重要的问题,通常应考虑如下几个因素: (1)进程类型。根据不同类型的进程确定其优先数。 (2)运行时间。通常规定进程优先数与进程所需运行时间成反比,即运行时间长的(一般占用内存也较多)大作业,分配给它的优先数就越低,反之则越高。 (3)作业的优先数。根据作业的优先数来决定其所属进程的优先数。 (4)动态优先数。时间片的长短由如下四个因素决定:(1)系统的响应时间。当进程数目一定时,时间片的长短直接影响系统的响应时间。(2)就绪队列中进程的数目。这与前面的问题正好相反,即当系统对响应时间要求一定时,时间片长则就绪

50、队列中进程数应少,反之亦然。(3)进程状态转换(即进程由就绪到运行,由运行到就绪)的时间开销。(4)计算机本身的处理能力。执行速度和可运行作业的道数。返回本节3.6.5 综合的调度策略调度用的进程状态切换图我们采用进程状态切换图来帮助大家进一步了解进程调度算法。以分级轮转法为例,将就绪进程分成高优先数和低优先数两个队列。如果进程运行中超过了规定的时间片就进入低优先数队列,而I/O操作完成的进程,即由阻塞状态进入高优先数就绪队列。如图3.8所示,其调度算法是:首先从高优先就绪队列中选择一个进程来运行,如果在高优先数就绪队列中没有进程,则从低优先数就绪队列中选择一个进程运行。低优先数就绪运行高优先

51、数就绪因等待I/O而阻塞首先选择I/O完成其次选择超过时间片请求I/O图3.8 调度用的进程状态切换图返回本节3.7 进程通信3.7.1 进程互斥3.7.2 互斥用的硬件机制3.7.3 进程同步3.7.4 用信号量实现进程同步 3.7.5 两个经典的同步/互斥问题 3.7.6 结构化的同步/互斥机制管程3.7.7 进程的通信方式之二消息缓冲 返回首页3.7.1 进程互斥几个进程若共享同一临界资源,它们必须以互斥的方式使用这个临界资源,即当一个进程正在使用临界资源且尚未使用完毕时,则其他进程必须推迟对该资源的进一步操作,在当前进程的使用完成之前,不能从中插进去使用这个临界资源,否则将会造成信息混

52、乱和操作出错。系统中同时存在有许多进程,它们共享各种资源,然而有些资源每次只能让一个进程所使用。临界区是一个进程访问临界资源的那段程序代码。有了临界资源和临界区的概念,进程间的互斥可以描述为禁止两个或两个以上的进程同时进入访问同一临界资源的临界区。 返回本节3.7.2 互斥用的硬件机制下面我们不局限于某特定系统,定义TS指令为:function TS(var lock:boolean):boolean;begin TS:=lock; lock:=true; end用TS指令实现互斥的循环进程可描述如下:repeat while TS(lock) do skip; critical sectio

53、n; lock:=false; remainder section;until false返回本节3.7.3 进程同步并发执行的多个进程,看起来好像是异步前进的,彼此之间都可以互不相关的速度向前推进,而实际上每一个进程在其运行过程中并非相互隔绝。一方面它们相互协作以达到运行用户作业所预期的目的,另一方面它们又相互竞争使用系统中有限的资源。两个并行的进程A、B,如果当A进行某个操作时,B不能做这一操作,进程间的这种限制条件称为进程互斥,引起资源不可共享的原因:一是资源的物理特性所致;二是某些资源如果同时被几个进程使用,则一个进程的动作可能会干扰其他进程的动作。 返回本节3.7.4 用信号量实现进

54、程同步1lock和unlock大部分同步方案均采用某个物理实体(如锁、信号灯等)实现通信,进程通信原语中关锁(lock)和开锁(unlock)是最简单的原语。在这两个原语中设置一个公共变量x代表某个临界资源的状态。 进程使用临界资源必须作如下三个不可分割的操作:(1)检查x的值。(2)进入临界区,访问临界区资源。(3)释放临界区资源,置x为0(开锁)。 Y退出C并开锁置X=0进入临界区C关锁则置X=1测试 X=0 ?返回继续测试N图3.9 开锁和关锁程序流程图2P/V操作设s1、s2初值为0,用PV操作实现上述同步模型如下:返回本节3.7.5 两个经典的同步/互斥问题1生产者与消费者问题Dij

55、kstra把广义同步问题抽象成一种“生产者与消费者问题”(Producer-consumer-relationship)的抽象模型。 2读者与写者问题一个数据对象(比如一个文件或记录)若被多个并发进程所共享,且其中一些进程只要求读该数据对象的内容,而另一些进程则要求修改它,对此,可把那些只想读的进程称之为“读者”;而把要求修改的进程称为“写者”。 下面给出基于环形缓冲区的生产者与消费者关系的形式描述,设:(1)公用信号量mutex:初值为1,用于实现临界区互斥。(2)生产者私用信号量empty:初值为n,指示空缓冲块数目。(3)消费者私用信号量full:初值为0,指示满缓冲块数目。(4)整型量

56、i和j初值均为0,i指示首空缓冲块序号,j指示首满缓冲块序号。Var mutex,empty,full:semaphore;i,j:integer;buffer:array 0n一1 of item;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 b

57、egin P(full); P(mutex); goods:buffer(j); j:(j+1) mod n; V(mutex); V(empty); Consume a product; end end;beginseminitial ;i:j:0;cobeginproducer;consumer;Coendend下面给出读者进程与写者进程的一般结构。var mutex, wrt: semaphore;readcount: integer;begin seminit ;readcount:=0cobeginprocedure reader;beginP(mutex);readcount:=r

58、eadcount+1;If readcount=1 then P (wrt);V(mutex);reading is performing;P(mutex);readcount:=readcount-1if readcount=0 then V(wrt);V (mutex);end procedure writer;begin P(wrt);writing is performing;V(wrt);endcoendend;返回本节3.7.6 结构化的同步/互斥机制管程建立管程的基本理由是:由于对临界区的执行分散在各进程中,这样不便于系统对临界资源的控制和管理,也很难发现和纠正分散在用户程序中的

59、对同步原语的错误使用等问题。为此,应把分散的各同类临界区集中起来。并为每个可共享资源设立一个专门的管程来统一管理各进程对该资源的访问。这样既便于系统管理共享资源,又能保证互斥访问。管程主要由两部分组成:(1)局部于该管程的共享数据,这些数据表示了相应资源的状态。(2)局部于该管程的若干过程,每个过程完成关于上述数据的某种规定操作。 例如,对并发PASCAL编译程序在编译源程序时,对每一个形如:cedure/functionentryname的调用语句,都将自动保证其按如下方式执行:P(mutex);执行相应的过程或函数:V(mutex);其中,mutex是关于相应

60、管程的互斥信号灯,初值为1。前面我们曾给出了利用信号灯及其P、V操作实现的生产者与消费者共享环形缓冲池的同步模型,这里再以环形缓冲池为例,给出环形缓冲池的管程结构。monitor ringbuffer;var rbuffer:array0n-1 of item;k, nextempty, nextfull: integer;empty, full: condition;procedure entry put (var product:item);begin if k=n wait (empty);rbuffer nextempty: product;k:=k+1;nextempty:=(nex

温馨提示

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

最新文档

评论

0/150

提交评论