1、第一章第一章 操作系统概述操作系统概述1.1 1.1 操作系统的概念操作系统的概念 1.2 1.2 操作系统的发展和分类操作系统的发展和分类 1.3 1.3 现代主流操作系统简介现代主流操作系统简介 1.4 1.4 操作系统的特征操作系统的特征1.5 1.5 操作系统的功能操作系统的功能1.6 1.6 本章小结本章小结1.1 操作系统的概念操作系统的概念1.1.1 1.1.1 操作系统的地位操作系统的地位 操作系统是以硬件为基础的系统软件,是硬件层的第一次扩充,在这一层上实现了操作系统的全部功能,并提供相应的接口,其他各层软件都是在操作系统的基础上开发的。1.1.2 操作系统的作用操作系统的作
2、用 1.OS作为用户与计算机硬件系统之间的接口作为用户与计算机硬件系统之间的接口 OS作为用户与计算机硬件系统之间接口的含义是:OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。或者说,用户在OS帮助下,能够方便、快捷、安全、可靠地操纵计算机硬件和运行自己的程序。应注意,OS是一个系统软件,因而这种接口是软件接口。2.OS作为计算机系统资源的管理者作为计算机系统资源的管理者 在一个计算机系统中,通常都含有各种各样的硬件和软件资源。归纳起来可将资源分为四类:处理器、存储器、I/O设备以及信息(数据和程序)。相应地,OS的主要功能也正是针对这四类资源进行有效的管理,即:处理机管理,用
3、于分配和控制处理机;存储器管理,主要负责内存的分配与回收;I/O设备管理,负责I/O设备的分配与操纵;文件管理,负责文件的存取、共享和保护。可见,OS确是计算机系统资源的管理者。事实上,当今世界上广为流行的一个关于OS作用的观点,正是把OS作为计算机系统的资源管理者。3.OS用作扩充机器用作扩充机器 对于一台完全无软件的计算机系统(即裸机),即使其功能再强,也必定是难于使用的。如果我们在裸机上覆盖上一层I/O设备管理软件,用户便可利用它所提供的I/O命令,来进行数据输入和打印输出。此时用户所看到的机器,将是一台比裸机功能更强、使用更方便的机器。通常把覆盖了软件的机器称为扩充机器或虚机器。操作系
4、统的定义操作系统的定义 可见,操作系统是计算机系统中的一个系统软件,是一些程序和模块的集合,它们以最有效合理的方式组织和管理计算机的软硬件资源,合理地组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使用户能够灵活、方便、有效地使用计算机,使整个计算机系统能高效地运行,从而在计算机与用户之间起到接口的作用。总结:总结:OS是一组控制和管理计算机硬件和软件是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。用户使用的程序的集合。1.2 操作系统的发展和分类操作系统的发展和分类1.2.1 无操作系统的计算
5、机系统无操作系统的计算机系统 1.人工操作方式人工操作方式 CPU和I/O串行操作。2.脱机输入脱机输入/输出方式输出方式 这种脱机I/O方式的主要优点如下:(1)减少了CPU的空闲时间。(2)提高I/O速度。图 1-2 脱机I/O示意图在无OS的阶段,即在人工操作方式和脱机I/O方式下,都离不开人的监控。1.2.2 批处理系统批处理系统 1.单道批处理系统的处理过程单道批处理系统的处理过程 单道批处理系统的特征单道批处理系统的特征 单道批处理系统是最早出现的一种OS,严格地说,它只能算作是OS的前身而并非是现在人们所理解的OS。尽管如此,该系统比起人工操作方式的系统已有很大进步。该系统的主要
6、特征如下:(1)自动性。(2)顺序性。(3)单道性。2.多道批处理系统多道批处理系统 多道程序设计的基本概念多道程序设计的基本概念 在单道批处理系统中,内存中仅有一道作业,它无法充分利用系统中的所有资源,致使系统性能较差。为了进一步提高资源的利用率和系统吞吐量,在60年代中期又引入了多道程序设计技术,由此而形成了多道批处理系统。在该系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。(2)可提高内存和I/O设备利用率。(3)增加系统吞吐量。在OS中引入多道程序设计技术可
7、带来以下好处:(1)提高CPU的利用率。多道批处理系统的特征多道批处理系统的特征(1)多道性。多道性。(2)无序性。无序性。(3)调度性。调度性。多道批处理系统的优缺点多道批处理系统的优缺点(1)资源利用率高。(2)系统吞吐量大。(3)平均周转时间长。(4)无交互能力。1.2.3 分时系统分时系统 1.分时系统的产生分时系统的产生 用户的需求具体表现在以下几个方面:(1)人机交互。(2)共享主机。(3)便于用户上机。2.分时系统的特征分时系统的特征(1)多路性。(2)独占性。(3)交互性。(4)及时性。1.2.4 实时系统实时系统 所谓“实时”,是表示“及时”,而实时系统(Real-Time
8、System)是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。应用需求应用需求(1)实时控制。(2)实时信息处理。1.2.5 网络操作系统网络操作系统 网络操作系统(NOS)可以看作是在网络环境下工作的操作系统软件,可简单地定义为管理整个网络资源和方便网络用户的软件集合。网络操作系统是计算机网络的心脏和灵魂,是向网络计算机提供服务的特殊的操作系统。它在计算机操作系统下工作,使计算机操作系统增加了网络操作所需要的能力。网络操作系统具有网络通信、资源管理、网络服务、网络管理和相互操作能力等功能。目前局域网中主要存在以下几类网络操作系统
9、:1.Windows类类:Windows NT 4.0 Server、Windows 2000 Server/Advance Server,以及最新的Windows 2003 Server/Advance Server等,工作站系统可以采用任一Windows或非Windows操作系统,包括个人操作系统,如Windows9x/ME/XP等。2.NetWare类类3.Unix系统系统 4.Linux:中文版本的Linux,如Redhat(红帽子),红旗Linux等,体现在安全性和稳定性。1.2.6 分布式操作系统分布式操作系统 一一个个分分布布式式系系统统是是一一些些独独立立的的计计算算机机的的集
10、集合合,但但是是对对这个系统的用户来说,系统就象一台计算机一样。这个系统的用户来说,系统就象一台计算机一样。从硬件角度来讲,每台计算机都是自主的;从硬件角度来讲,每台计算机都是自主的;从软件角度来讲,用户将整个系统看作是一台计算机。从软件角度来讲,用户将整个系统看作是一台计算机。许多现代操作系统都提供分布处理功能,许多现代操作系统都提供分布处理功能,如如Solaris MC。1.2.7 嵌入式操作系统嵌入式操作系统嵌入式操作系统嵌入式操作系统是嵌入式系统的操作系统。它们通常被设计非常紧凑有效,嵌入式操作系统多数也是实时操作系统。从应用角度可分为通用型嵌入式操作系统和专用型嵌入式操作系统。常见的
11、通用型嵌入式操作系统有Linux、Windows CE等。常用的专用型嵌入式操作系统有Symbian等。嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的;适用于对功能、可靠性、成本体积、功耗等综合性能有严格要求的专用计算机系统。嵌入式系统应具有的特点是:高可靠性;实时性;嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行;嵌入式系统中的软件代码要求高质量、高可靠性;一般都固化在只读存储器中而不是存储在磁盘等载体中。Microsoft Windows CE为微软针对个人电脑以外的计算机产品所研发的嵌入式操作系统。目前最新的Windows C
12、E为Windows CE 6.0,为微软的.NET最新家族成员,除100%兼容于Windows CE外,并强化许多功能;让正在学习.NET或已拥有.NET程序开发技术的开发人员能迅速而顺利的在搭载Windows CE.NET系统的装置上开发应用程序。用于掌上电脑(Pocket PC)以及智能手机(Smart Phone)上的Windows CE系统称为Windows Mobile,目前的最新版本为Windows Mobile 5.0,代号为Magneto。1.3 现代主流操作系统简介现代主流操作系统简介 1.3.1 MS-DOS及及Windows系列系列1.MS-DOSMS-DOS是是Micr
13、osoft Disk Operating System的的简称,最基本的简称,最基本的MS-DOS系统由一个基于系统由一个基于MBR的的BOOT引导程序和三个文件模块组成。这三个模块引导程序和三个文件模块组成。这三个模块是输入输出模块是输入输出模块(IO.SYS)、文件管理模块、文件管理模块(MSDOS.SYS)及命令解释模块及命令解释模块(COMMAND.COM)。为满足用户对操作更方便、直接和灵活的要为满足用户对操作更方便、直接和灵活的要求,微软公司推出了一种采用图形用户界面求,微软公司推出了一种采用图形用户界面(Graphics User Interface,GUI)的新颖的操作)的新颖
14、的操作系统,系统,Windows操作系统。在近操作系统。在近20年的发展过程年的发展过程中,微软主要推出的版本有中,微软主要推出的版本有Windows3.X,Windows 9X,Windows NT,Windows 2000,Windows Me,Windows XP和和Windows 2003。Windows操作系统以其灵活、快速、便宜等优点,操作系统以其灵活、快速、便宜等优点,逐渐占据了逐渐占据了PC微型计算机上的主导地位。微型计算机上的主导地位。2.Windows 3.x、Windows 95/98及及Windows Me的发展历史的发展历史3.Windows NT系列、系列、Wind
15、ows CE系列系列和和Windows 2000/20034.Windows Vista1.3.2UNIX大家族大家族1.UNIX概述概述Unix系统于1969年问世,是一个多用户、多任务的分时操作系统。最初由贝尔实验室开发在PDP-7上实现的。贝尔实验室和其他一些部门在Unix上的开发工作,导致一系列Unix版本的产生。后来,又凭借其性能的完善和良好的可移植性,经历不断的发展、演变,并广泛的应用于小型计算机、超级小型计算机乃至大型计算机上。2.UNIX的发展的发展1.3.3自由软件自由软件LinuxLinux是一套免费使用和自由传播的类Unix操作系统,Linux系统是由全世界各地的成千上万
16、的程序员设计和实现的。Linux的出现,最早开始于一位名叫Linus Torvalds的计算机业余爱好者,当时他是芬兰赫尔辛基大学的学生。他的目的是想设计一个代替Minix的操作系统,这个操作系统具有Unix操作系统的全部功能,因而开始了Linux雏形的设计。发展至今Linux有很多发行版本,较流行的有:RedHat Linux、Debian Linux、RedFlag Linux等。1Linux的兴起的兴起2Linux概述概述3Linux的优势的优势 4Linux应用领域应用领域 1.4 操作系统的特性操作系统的特性1.4.1 并发性并发性 并行性和并发性是既相似又有区别的两个概念。并行性和
17、并发性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生;并行性是指两个或多个事件在同一时刻发生;并发性是指两个或多个事件在同一时间间隔内发生。并发性是指两个或多个事件在同一时间间隔内发生。1.4.2 共享性共享性 在在操操作作系系统统环环境境下下,所所谓谓共共享享是是指指系系统统中中的的资资源源可可供供内内存存中中多多个个并并发发执执行行的的进进程程(线线程程)共共同同使使用用。由由于于资资源源属属性性的的不不同同,进进程程对对资资源源共共享享的的方方式式也也不不同同,目目前前主主要有以下两种资要有以下两种资源共享方式。源共享方式。互斥共享方式互斥共享方式 系统中的某些资源,
18、如打印机、磁带机,虽然它们可以提供给多个进程(线程)使用,但为使所打印或记录的结果不致造成混淆,应规定在一段时间内只允许一个进程(线程)访问该资源。把在一段时间内只允许一个进程访问的资源称为临界资源或独占资源。计算机系统中的大多数物理设备,以及某些软件中所用的栈、变量和表格,都属于临界资源,它们要求被互斥地共享。同时访问方式同时访问方式 系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问。典型的可供多个进程“同时”访问的资源是磁盘设备。并发和共享是操作系统的两个最基本的特征,它们又是互为存在
19、的条件。1.4.3 异步性异步性 在多道程序环境下,允许多个进程并发执行,但只有进程在获得所需的资源后方能执行。由于资源等因素的限制,使进程的执行通常都不是“一气呵成”,而是以“停停走走”的方式运行。很可能是先进入内存的作业后完成;而后进入内存的作业先完成。1.4.4 虚拟性虚拟性 操操作作系系统统中中的的所所谓谓“虚虚拟拟”,是是指指通通过过某某种种技技术术把把一一个个物物理理实实体体变变为为若若干干个个逻逻辑辑上上的的对对应应物物。物物理理实实体体(前前者者)是是实实的的,即即实实际际存存在在的的;而而后后者者是是虚虚的的,是是用用户户感感觉觉上上的的东东西西。相相应应地地,用用于于实实现
20、现虚虚拟拟的的技技术术,称称为为虚虚拟拟技技术术。在在OS中中利利用用了了多多种种虚虚拟拟技技术术,分分别别用用来来实实现现虚虚拟拟处处理理机机、虚拟内存、虚拟内存、虚拟外部设备和虚拟信道等。虚拟外部设备和虚拟信道等。1.5 操作系统的功能操作系统的功能 1.5.1 处理机管理处理机管理 1.进程控制进程控制 2.进程同步进程同步 3.进程通信进程通信 4.进程调度进程调度1.5.2 存储器管理存储器管理1.内存分配内存分配2.内存保护内存保护3.地址映射地址映射4.内存扩充内存扩充1.5.3 设备管理功能设备管理功能1.缓冲管理缓冲管理2.设备分配设备分配3.设备处理设备处理4.设备独立性和
21、虚拟设备设备独立性和虚拟设备1.5.4 文件管理文件管理1.文件存储空间的管理文件存储空间的管理2.目录管理目录管理3.文件读文件读/写管理写管理4.文件存取控制文件存取控制1.5.5 用户接口用户接口1.命令接口命令接口2.脱机命令接口脱机命令接口3.程序接口程序接口4.图形接口图形接口1.6 本章小结本章小结操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。操作系统是一组控制和管理计算机硬件和软件资源,合理地组织计算机工作流程,并为用户使用计算机提供方便的程序和数据的集合。操作系统从形成发展至今可分为批处理系统、分时系统、实时系统、网络操作系统和分布式操作系统等等,其中批处
22、理操作系统、分时操作系统、实时操作系统是操作系统的三种基本类型。每个操作系统均具有自身的特点,但各种操作系统又都具有四个共同的基本特征,即并发性、共享性、虚拟性和异步性。其中并发性是操作系统最重要的特征,其他三个特征是以并发性为前提的。从系统资源的角度看,操作系统有处理机管理、存储管理、设备管理和文件管理的功能,从用户角度看,操作系统还要具有为用户提供接口,方便用户使用的功能。第二章 进 程 管 理 第二章第二章 进程管理进程管理 2.1 2.1 进程的引入进程的引入 2.2 2.2 进程控制进程控制 2.3 2.3 进程同步与互斥进程同步与互斥2.4 2.4 进程通信进程通信 2.5 2.5
23、 进程进程调调度度2.6 2.6 死锁死锁 2.7 2.7 线程线程2.8 2.8 本章小结本章小结第二章 进 程 管 理 2.1 进程的引入进程的引入 2.1.1 程序的顺序执行程序的顺序执行 仅仅当当前前一一操操作作(程程序序段段)执执行行完完后后,才才能能执执行行后后继继操操作作。例例如如,在在进进行行计计算算时时,总总须须先先输输入入用用户户的的程程序序和和数数据据,然然后后进行计算,最后才能打印计算结果。进行计算,最后才能打印计算结果。S1:a=x+y;S2:b=a-5;S3:c=b+1;第二章 进 程 管 理 图 2-1 程序的顺序执行 第二章 进 程 管 理 程序顺序执行时的特征
24、程序顺序执行时的特征 顺序性:顺序性:(2)封闭性:封闭性:(3)可再现性:可再现性:第二章 进 程 管 理 2.1.2 程序的并发执行程序的并发执行图 2-2 并发执行时的前趋图 第二章 进 程 管 理 程序的并发执行的特征程序的并发执行的特征(1)间断性(2)失去封闭性(3)不可再现性第二章 进 程 管 理 例例如如,有有两两个个循循环环程程序序A和和B,它它们们都都要要对对一一个个变变量量N进进行操作。行操作。程序程序A:N:=N+1;程序程序B:print(N);N:=0当程序当程序A、B并发执行时,可能会出现三种情况:并发执行时,可能会出现三种情况:第二章 进 程 管 理 1.进程的
25、定义:较典型的进程定义有:进程的定义:较典型的进程定义有:(1)进程是程序的一次执行。进程是程序的一次执行。(2)进进程程是是一一个个程程序序及及其其数数据据在在处处理理机机上上顺顺序序执执行行时时所所发生的活动。发生的活动。(3)进进程程是是程程序序在在一一个个数数据据集集合合上上运运行行的的过过程程,它它是是系系统进行资源分配和调度的一个独立单位。统进行资源分配和调度的一个独立单位。在在引引入入了了进进程程实实体体的的概概念念后后,我我们们可可以以把把传传统统OS中中的的进进程程定定义义为为:“进进程程是是进进程程实实体体的的运运行行过过程程,是是系系统统进进行行资源分配和调度的一个独立单
26、位资源分配和调度的一个独立单位”。2.1.3 进程进程第二章 进 程 管 理 2.进程的结构:由程序段、数据段和进程的结构:由程序段、数据段和PCB组成。组成。PCB程序段数据段数据段1PCB程序段PCB1PCB2数据段2程序段1PCB数据段PCB1PCB2程序段2数据段PCB程序段PCB图2-3进程的结构表征第二章 进 程 管 理 3.进程的特征进程的特征(1)结构特征:程序段、数据段、结构特征:程序段、数据段、PCB(2)动态性:进程有生命周期。动态性:进程有生命周期。(3)并发性:可以并发执行。并发性:可以并发执行。(4)独立性:独立分配资源和调度的基本单位。独立性:独立分配资源和调度的
27、基本单位。(5)异步性:进程按各自独立的、不可预知的速度向前推进。异步性:进程按各自独立的、不可预知的速度向前推进。第二章 进 程 管 理 2.1.4 进程的三种状态及其转换进程的三种状态及其转换 1.进程的三种基本状态及其转换进程的三种基本状态及其转换 (1)就绪就绪(Ready)状态:得到了除了状态:得到了除了CPU以外的所有必要资源。以外的所有必要资源。(2)执行状态:已获得执行状态:已获得CPU,其程序正在执行。,其程序正在执行。(3)等待状态(阻塞状态):由于发生某事件而暂时无法继续等待状态(阻塞状态):由于发生某事件而暂时无法继续 执行时,放弃执行时,放弃CPU而处于暂停状态。而处
28、于暂停状态。第二章 进 程 管 理 进程的三种基本状态及其转换进程的三种基本状态及其转换 或中断(等待事件)(事件发生)进程的状态转换第二章 进 程 管 理 2具有挂起状态的进程状态转换具有挂起状态的进程状态转换挂起活动就绪静止就绪执行挂起激活事 件发生挂起活动阻塞静止阻塞激活事 件发生等 待事件第二章 进 程 管 理 2.1.5 进程控制块进程控制块PCB1.进程控制块的定义及作用进程控制块的定义及作用(1)PCB是进程实体的一部分。是进程实体的一部分。(2)OS是根据是根据PCB来对并发执行的进程进行控制和管理的。来对并发执行的进程进行控制和管理的。(3)PCB是进程存在的唯一标志。是进程
29、存在的唯一标志。(4)PCB应常驻内存,存放在应常驻内存,存放在OS中专门开辟的中专门开辟的PCB区内。区内。第二章 进 程 管 理 2.进程控制块中的信息进程控制块中的信息 1)进程标识符进程标识符 进程标识符用于惟一地标识一个进程。进程标识符用于惟一地标识一个进程。2)处理机状态处理机状态 通用寄存器,通用寄存器,指令计数器,指令计数器,程序状态字程序状态字PSW,用户栈指针。用户栈指针。3)进程调度信息进程调度信息 进程状态,进程状态,进程优先级,进程优先级,进程调度所需的其它进程调度所需的其它信息(它们与所采用的进程调度算法有关)信息(它们与所采用的进程调度算法有关)事件,即阻事件,即
30、阻塞原因。塞原因。4)进程控制信息进程控制信息 程序和数据的地址,程序和数据的地址,进程同步和通信机制,指实进程同步和通信机制,指实现进程同步和进程通信时必需的机制,现进程同步和进程通信时必需的机制,如消息队列指针、如消息队列指针、信号量等;信号量等;资源清单,资源清单,链接指针,链接指针,第二章 进 程 管 理 3.进程控制块的组织方式进程控制块的组织方式(1)线性表方式第二章 进 程 管 理 3.进程控制块的组织方式进程控制块的组织方式(2)链接表方式 图2-7 PCB的链接组织方式 第二章 进 程 管 理(3)索引表方式)索引表方式图2-8 PCB的链接组织方式第二章 进 程 管 理 2
31、.22.2进程控制进程控制进程控制是指系统使用一些具有特定进程控制是指系统使用一些具有特定功能的程序段来创建、撤消进程以及完成功能的程序段来创建、撤消进程以及完成进程各状态间的转换,从而达到各进程高进程各状态间的转换,从而达到各进程高效率地并发执行和协调、实现资源的共享。效率地并发执行和协调、实现资源的共享。第二章 进 程 管 理 2.2.1 2.2.1 原语原语进程控制一般是由进程控制一般是由OSOS的内核来实现的。的内核来实现的。内核是内核是OSOS中最常用最核心的部分,它是中最常用最核心的部分,它是由具有各种功能的程序模块组成的,是由具有各种功能的程序模块组成的,是对整个对整个OSOS起
32、指挥和控制作用的,是对裸起指挥和控制作用的,是对裸机的首次扩充。机的首次扩充。第二章 进 程 管 理 内核中所包含的原语主要有进程控制原内核中所包含的原语主要有进程控制原语、进程通信原语、资源管理原语以及语、进程通信原语、资源管理原语以及其他方面的原语。其他方面的原语。原语:是指由若干条机器指令构成的并原语:是指由若干条机器指令构成的并用以完成特定功能的一段程序,这段程用以完成特定功能的一段程序,这段程序在执行期间是不可分割的。序在执行期间是不可分割的。第二章 进 程 管 理 2.2.2 2.2.2 进程的创建与撤销进程的创建与撤销1.1.创建进程原语创建进程原语 在多道程序环境中,只有(作为
33、)进程(时)才能在在多道程序环境中,只有(作为)进程(时)才能在系统中运行。因此,为使程序能运行就必须为它创建进系统中运行。因此,为使程序能运行就必须为它创建进程。导致一个进程去创建另一进程的典型事件,可有以程。导致一个进程去创建另一进程的典型事件,可有以下四类:下四类:(1)(1)用户登录用户登录(2)(2)作业调度作业调度(3)(3)提供服务提供服务(4)(4)应用请求(由应用进程自己创建一个新进程)应用请求(由应用进程自己创建一个新进程)由系统内核创建由系统内核创建第二章 进 程 管 理 进程创建原语流程图进程创建原语流程图 第二章 进 程 管 理 2.2.撤消进程原语撤消进程原语 以下
34、几种情况导致进程被撤消:以下几种情况导致进程被撤消:该进程已完成所要求的功能而正常终止。该进程已完成所要求的功能而正常终止。由于某种错误导致非正常终止。由于某种错误导致非正常终止。祖先进程要求撤消某个子进程。祖先进程要求撤消某个子进程。无论哪一种情况导致进程被撤消,进程都必须释无论哪一种情况导致进程被撤消,进程都必须释放它所占用的各种资源和放它所占用的各种资源和PCB PCB 结构本身,以利于结构本身,以利于资源的有效利用。资源的有效利用。另外,当一个祖先进程撤消某个子进程时,还需另外,当一个祖先进程撤消某个子进程时,还需审查该子进程是否还有自己的子孙进程,若有的审查该子进程是否还有自己的子孙
35、进程,若有的话,还需撤消其子孙进程的话,还需撤消其子孙进程的 PCB PCB结构和释放它们结构和释放它们所占有的资源。所占有的资源。第二章 进 程 管 理 2.2.3 2.2.3 进程的阻塞与唤醒进程的阻塞与唤醒1.1.阻塞进程原语阻塞进程原语 阻塞原语在一个进程期待某一事件发生,阻塞原语在一个进程期待某一事件发生,但发生条件尚不具备时,被但发生条件尚不具备时,被该进程自己调用该进程自己调用来来阻塞自己。阻塞原语在阻塞一个进程时,由于阻塞自己。阻塞原语在阻塞一个进程时,由于该进程正处于执行状态,故应先中断处理机和该进程正处于执行状态,故应先中断处理机和保存该进程的保存该进程的CPUCPU现场。
36、然后将被阻塞进程置现场。然后将被阻塞进程置“阻塞阻塞”状态后插入等待队列中,再转进程调状态后插入等待队列中,再转进程调度程序选择新的就绪进程投入运行。这里,转度程序选择新的就绪进程投入运行。这里,转进程调度程序是很重要的,否则,处理机将会进程调度程序是很重要的,否则,处理机将会出现空转而浪费资源。出现空转而浪费资源。第二章 进 程 管 理 图 2-10 阻塞原语图第二章 进 程 管 理 2.2.唤醒进程原语唤醒进程原语 当等待队列中的进程所等待的事件发生时,当等待队列中的进程所等待的事件发生时,等待该事件的所有进程都将被唤醒。唤醒一个等待该事件的所有进程都将被唤醒。唤醒一个进程有两种方法:一种
37、是由系统进程唤醒。另进程有两种方法:一种是由系统进程唤醒。另一种是由事件发生进程唤醒。当由系统进程唤一种是由事件发生进程唤醒。当由系统进程唤醒等待进程时,系统进程统一控制事件的发生醒等待进程时,系统进程统一控制事件的发生并将并将“事件发生事件发生”这一消息通知等待进程。从这一消息通知等待进程。从而使得该进程因等待事件已发生而进入就绪队而使得该进程因等待事件已发生而进入就绪队列。由事件发生进程唤醒时,事件发生进程和列。由事件发生进程唤醒时,事件发生进程和被唤醒进程之间是合作关系。被唤醒进程之间是合作关系。第二章 进 程 管 理 图 2-11 唤醒原语第二章 进 程 管 理 2.2.4 2.2.4
38、 进程的挂起和激活进程的挂起和激活 3.3.挂起进程原语挂起进程原语 当出现了引起进程挂起的事件时,当出现了引起进程挂起的事件时,系统将利用挂起原语将处于阻塞状态的系统将利用挂起原语将处于阻塞状态的进程挂起。进程挂起。引起挂起状态的原因:引起挂起状态的原因:终端用户的请求。终端用户的请求。父进程的请求。父进程的请求。负荷调节的需要。负荷调节的需要。OSOS的需要。的需要。第二章 进 程 管 理 挂起原语的执行过程是:挂起原语的执行过程是:首先检查被挂起进程的状态,首先检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪;若处于活动就绪状态,便将其改为静止就绪;对于活动阻塞状态的进程,则
39、将之改为静止阻塞。对于活动阻塞状态的进程,则将之改为静止阻塞。若被挂起的进程正在执行,便将其改为静止就绪,然若被挂起的进程正在执行,便将其改为静止就绪,然后转向调度程序重新调度。后转向调度程序重新调度。第二章 进 程 管 理 2.2.激活进程原语激活进程原语 当发生激活进程的事件时,若进程驻留在外存当发生激活进程的事件时,若进程驻留在外存而内存已有足够的空间,则可将在外存上处于静止而内存已有足够的空间,则可将在外存上处于静止就绪状态的进程换入内存。这时,系统将利用激活就绪状态的进程换入内存。这时,系统将利用激活原语将指定进程激活。原语将指定进程激活。激活原语先将进程从外存调入内存,检查该进激活
40、原语先将进程从外存调入内存,检查该进程的现行状态,若是静止就绪便将其改为活动就绪,程的现行状态,若是静止就绪便将其改为活动就绪,若为静止阻塞便将其改为活动阻塞。若为静止阻塞便将其改为活动阻塞。可见,为了使系统内部进程正常运行,进程的可见,为了使系统内部进程正常运行,进程的阻塞和唤醒、挂起和激活要成对出现。阻塞和唤醒、挂起和激活要成对出现。第二章 进 程 管 理 2.3 进进 程程 同同 步与互斥步与互斥 进程之间进程之间 两种形式的制约关系两种形式的制约关系 1.直接相互制约关系:进程间的合作。2.间接相互制约关系:共享系统中的资源。第二章 进 程 管 理 进程同步:是进程之间共同完成一项任务
41、进程同步:是进程之间共同完成一项任务时直接发生相互作用的关系。时直接发生相互作用的关系。进程互斥:并发执行的进程因竞争同一资进程互斥:并发执行的进程因竞争同一资源而导致的相互排斥的关系称为进程间的源而导致的相互排斥的关系称为进程间的互斥。互斥。第二章 进 程 管 理 1.临界资源临界资源 临临界界资资源源:一一次次仅仅允允许许一一个个进进程程使使用用的的资资源源称称为临界资源。为临界资源。临临界界资资源源分分为为硬硬件件、软软件件临临界界资资源源。硬硬件件临临界界资资源源如如打打印印机机,软软件件临临界界资资源源如如某某些些变变量量、表表格格,也不允许两个进程同时使用。也不允许两个进程同时使用
42、。2.3.1 临界资源与临界区临界资源与临界区 第二章 进 程 管 理 例:假设一个飞机订票系统有两个终端,执行并发进程:例:假设一个飞机订票系统有两个终端,执行并发进程:T1(x)T2(x)begin if x=1 then x=x-1;else printf(“None”);endx=x-1语句的机器语言实现:语句的机器语言实现:register1:=x;register1:=register1-1;x:=register1;第二章 进 程 管 理 虽虽然然上上面面的的两两个个终终端端程程序序,在在分分别别看看时时都都是是正正确确的的,而而且且两两者者在在顺顺序序执执行行时时其其结结果果也
43、也会会是是正正确确的的,但但若若并并发发执执行行时时,就就会会出出现现差差错错,问问题题就就在在于于这这两两个个进进程程共共享享变变量量x。两两个个终终端端如如果果都都对对x进进行行减减1操操作作,这这两两个个操操作作在在用用机机器器指指令令实实现现时时,可用下面的形式描述:可用下面的形式描述:T1(x)T2(x)register1:=x;register2:=x;register1:=register1-1;register2:=register2-1;x:=register1;x:=register2;第二章 进 程 管 理 假假设设:x的的当当前前值值是是5。如如果果T1进进程程先先执执
44、行行左左列列的的三三条条机机器器语语言言语语句句,然然后后T2进进程程再再执执行行右右列列的的三三条条语语句句,则则最最后后共共享享变变量量counter的的值值为为3;反反之之也也正正确确。但但是是,如如果果按按下下述述顺顺序序执行:执行:register1:=x;(register 1=5)register1:=register1-1;(register 1=4)register2:=x;(register 2=5)register2:=register2-1;(register 2=4)x:=register1;(x=4)x:=register2;(x=4)所以,就要把变量所以,就要把变
45、量x当作临界资源处理,即要互斥地访问当作临界资源处理,即要互斥地访问x。第二章 进 程 管 理 2.临界区临界区(critical section)可把一个访问临界资源的循环进程描述如下:可把一个访问临界资源的循环进程描述如下:repeat critical section;remainder section;until false;entry sectionexit section临界区:一个进程访问临界资源的那段代码称为临界区。临界区:一个进程访问临界资源的那段代码称为临界区。第二章 进 程 管 理 同步机制应遵循的规则:同步机制应遵循的规则:1.空闲让进。空闲让进。(2)忙则等待。忙则等
46、待。(3)有限等待。有限等待。(4)让权等待。让权等待。其实其实,互斥关系也是一种协调关系互斥关系也是一种协调关系,从从广义上讲它也属于同步关系的范畴。广义上讲它也属于同步关系的范畴。第二章 进 程 管 理 2.3.2 信号量及信号量及P、V操作操作 1.信号量及信号量及P、V操作操作信信号号量量:一一个个具具有有非非负负初初值值的的整整型型变变量量,并并且且有有一一个个队队列列与与它它关关联联。因因此此,定定义义一一个个信信号号量量时时,要要给给出出它它的的初初值值,并并给给出与它相关的队列指针。出与它相关的队列指针。信号量的定义如下:信号量的定义如下:type semaphore=reco
47、rd /*定义信号量定义信号量*/value:integer;L:list of process;end第二章 进 程 管 理 P(S)操作可描述为:操作可描述为:procedure P(S)var S:semaphore;begin S.value:=S.value-1;if S.value0 then block(S,L)end 第二章 进 程 管 理 V(S)操作可描述为:操作可描述为:procedure V(S)var S:semaphore;begin S.value:=S.value+1;if S.value0 then wakeup(S,L);end第二章 进 程 管 理 关于信
48、号量和关于信号量和P、V操作的说明:操作的说明:信号量的初值一定是一个非负的整数,信号量的初值一定是一个非负的整数,但是在运行过程中,信号量的值可正可但是在运行过程中,信号量的值可正可负。负。P操作和操作和V操作是原语操作。操作是原语操作。第二章 进 程 管 理 2.利用信号量实现进程互斥利用信号量实现进程互斥 利用信号量实现进程互斥的进程可描述如下:Var s:semaphore:=1;begin parbegin process 1:begin repeat P(s);critical section V(s);remainder section until false;end proce
49、ss 2:begin repeat P(s);critical section V(s);remainder section until false;endparend end 第二章 进 程 管 理 用信号量实现进程互斥的特点:用信号量实现进程互斥的特点:要找对临界区,范围小了会出错,范围要找对临界区,范围小了会出错,范围大了会影响进程运行。大了会影响进程运行。P、V操作位于临界区前后,在一个进程操作位于临界区前后,在一个进程里成对出现。里成对出现。2个进程对个进程对1个临界资源互斥使用时个临界资源互斥使用时S初值初值为为1,取值范围为,取值范围为-1,0,1。第二章 进 程 管 理 3.利
50、用信号量实现进程同步利用信号量实现进程同步:进程可描述如下:进程可描述如下:Var s1,s2:semaphore:=0,0;begin parbegin process 1:begin repeat 获得数据;获得数据;计算;计算;送至缓冲区送至缓冲区;V(s1);P(s2);until false;end process 2:begin repeat P(s1);从缓冲区中取数据从缓冲区中取数据;输出输出;V(s2);until false;endparend end 缓冲区缓冲区P1P2第二章 进 程 管 理 用信号量实现进程同步的特点:用信号量实现进程同步的特点:配对的配对的P、V操作