操作系统教程Linux实例分析第2章进程管理-课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《操作系统教程Linux实例分析第2章进程管理-课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 教程 Linux 实例 分析 进程 管理 课件
- 资源描述:
-
1、第第2 2章章 进程管理进程管理 第第2章章 进程管理进程管理 2.1 进程概念进程概念 2.2 线程线程 2.3 进程管理进程管理 2.4 进程间通信进程间通信 2.5 经典进程同步问题经典进程同步问题 2.6 管程管程 2.7 进程通信进程通信 2.8 Linux进程管理进程管理 习题习题 第第2 2章章 进程管理进程管理 2.1 进进 程程 概概 念念 2.1.1 程序的顺序执行 顺序程序活动有三个主要特点:(1)程序所规定的动作在机器上严格地按顺序执行。(2)只有程序本身的动作才能改变程序的运行环境。(3)程序的执行结果与程序运行的速度无关。第第2 2章章 进程管理进程管理 图2-1列
2、出了几个典型的顺序程序的示意图。其中图(a)最简单,一条条指令顺次做下去;图(b)表示程序代码中出现循环的情况;图(c)表示A程序在执行过程中调用B程序,B运行完,返回A,继续执行A的情况。第第2 2章章 进程管理进程管理 图2-1 顺序程序示意图 N:(a)(b)(c)ABjmp:NM:第第2 2章章 进程管理进程管理 2.1.2 程序的并发执行和资源共享 多道程序 设计是指两个或更多个程序同时在系统中存在并且运行。这时的工作环境与单道程序(仅一个)的运行条件相比,大不相同。首先,每个用户程序都需要一定的资源,如内存、设备、CPU时间等,因此系统中的软、硬件资源不再是单个程序独占,而是由几道
3、程序所共享。这样,共享资源的状态就由多道程序的活动共同决定,从而打破了单道程序“闭关自守”的局面。第第2 2章章 进程管理进程管理 图2-2 非多道技术下作业执行过程 A开始空转输入运行空转输入A停止作业AB开始作业B等 待空转输入运行空转输入B停止第第2 2章章 进程管理进程管理 采用多道程序技术来执行同样的作业A和B,就能大大改进系统性能,如图2-3所示。作业A先运行,它运行一秒后等待输入,此时让B运行;B运行一秒后等待输入,此时恰好A输入完,可以运行了就这样在CPU上交替地运行A和B。在这种理想的情况下,CPU不空转,其使用率升至百分之百,并且吞吐量也随之增加了。第第2 2章章 进程管理
4、进程管理 图2-3 多道技术下作业执行过程开始空转输入空转输入停止作业A作业B开始空转输入空转输入停止第第2 2章章 进程管理进程管理 2.1.3 程序并发执行的特性 资源共享和程序的并发执行使得系统的工作情况变得非常复杂,带来一系列新的问题,特别表现在各种程序活动的相互依赖和制约关系方面。我们分析一下图2-4中几个程序并发执行的情况。第第2 2章章 进程管理进程管理 图2-4 并发程序的执行(a)并发执行的程序;(b)并发程序的关系;(c)有制约关系的并发程序程序An:0;K1n:n1;K2程序B打印n12(a)程序Acall C程序Bcall C程序C(b)程序Mcall S程序Ncall
5、 S5程序S172394810C1C3C2(c)S36第第2 2章章 进程管理进程管理 通过上述三个例子的分析,可以得出并发程序的三个主要特征:(1)没有封闭性。有共享公共变量时,其执行结果不可再现,就是说,结果与相关的并发程序的相对速度有关。(2)程序与计算不再一一对应。“程序”是指令的有序集合,是“静态”的概念。(3)并发程序在执行期间可以互相制约。第第2 2章章 进程管理进程管理 2.1.4 进程概念的引入和描述 “进程”是操作系统的最基本、最重要的概念之一。引进这个概念对于理解、描述和设计操作系统都具有极其重要的意义。但是迄今为止,对这个概念还没有形成统一的定义,都是从不同的角度来描述
6、它的各个基本特征。下面列举出比较能反映进程实质的几种定义:第第2 2章章 进程管理进程管理 (1)进程(或任务)是可以和别的计算并发执行的计算。(2)进程是程序的一次执行,是在给定内存区域中的一组指令序列的执行过程。(3)所谓进程,简单说来就是一个程序在给定活动空间和初始条件下,在一个处理机上的执行过程。(4)进程可定义为一个数据结构和能在其上进行操作的一个程序。(5)进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。第第2 2章章 进程管理进程管理 进程和程序是两个不同的概念,但又有密切的联系。它们之间的主要区别是:(1)程序是静态概念,本身可以作为一种软件资源
7、长期保存着;而进程则是程序的一次执行过程,它是动态概念,有一定的生命期,是动态地产生和消亡的。第第2 2章章 进程管理进程管理 (2)进程是一个能独立运行的单位,能与其他进程并发执行,进程是作为资源申请和调度单位存在的;而通常的程序段是不能作为一个独立运行的单位的。(3)程序和进程无一一对应关系。一个程序可由多个进程共用;另一方面,一个进程在其活动中又可顺序地执行若干个程序。第第2 2章章 进程管理进程管理 (4)各个进程在并发执行过程中会产生相互制约关系,造成各自前进速度的不可预测性。而程序本身是静态的,不存在这种异步特征。表2-1列出了进程和程序之间的主要区别。第第2 2章章 进程管理进程
8、管理 表2-1 进程和程序的对比 第第2 2章章 进程管理进程管理 2.1.5 进程的状态及其变迁 进程是一个程序的执行过程,有着走走停停的活动规律。进程的动态性质是由其状态变化决定的。如果一个事物始终处于一种状态,那么它就不再是活动的,就没有生命力了。通常在操作系统中,进程至少要有三种基本状态,这些状态是处理机挑选进程运行的主要因素,所以又称之为进程控制状态。这三种基本状态是:运行态、就绪态和阻塞态(或等待态)。如图2-5所示。第第2 2章章 进程管理进程管理 图2-5 进程状态及其变化 运行状态就绪状态阻塞状态时间片到分到CPU等待某事件发生(如等待I/O)所等待事件发生(如I/O完成)第
9、第2 2章章 进程管理进程管理 在很多操作系统中,又添加了两种基本状态:创建态和终止态。创建态是指新进程正被创建时的状态,当创建工作完成后它就进入到就绪态。终止态是指进程正常或非正常终止时所处的状态,它的必然结局是从系统中消失。上述五种进程状态及其变迁情况如图2-6所示。第第2 2章章 进程管理进程管理 图2-6 进程的五种基本状态 创建状态运行状态就绪状态阻塞状态时间片用完分到CPU等待某事件发生(如等待I/O)所等待事件发生(如I/O完成)完成创建工作终止状态终止第第2 2章章 进程管理进程管理 2.1.6 进程的组成 进程的活动是通过在CPU上执行一系列程序和对相应数据进行操作来体现的,
10、因此程序和它操作的数据是进程存在的实体。但这二者仅是静态的文本,没有反映出其动态特性。为此,还需要有一个数据结构,用来描述进程当前的状态、本身的特性等。这种数据结构被称为进程控制块(PCB,Process Control Block)。第第2 2章章 进程管理进程管理 程序往往由一系列函数组成。执行函数调用时要保存好调用者的现场信息,以便被调函数完成后能恢复调用者的运行环境。这一系列现场信息要保存在堆栈中,按“后进先出”方式管理。为此,系统要为每个进程设立一个或多个栈。所以进程通常都由程序、栈、数据集合和PCB这四部分组成。图2-7示出进程的物理结构。第第2 2章章 进程管理进程管理 图2-7
11、 进程组成 PCB栈程序数据第第2 2章章 进程管理进程管理 2.1.7 进程控制块 进程控制块有时也称为进程描述块(Process Descriptor),它是进程映像中最关键的部分,其中含有进程的描述信息和控制信息,是进程动态特性的集中反映,它是系统对进程施行识别和控制的依据。在不同的系统中,PCB的具体组成成分是不同的,在简单操作系统中它较小;而在大型操作系统中它很复杂,设有很多信息项。一般来说,进程控制块应包括如下内容,如图2-8所示。第第2 2章章 进程管理进程管理 图2-8 PCB构成 第第2 2章章 进程管理进程管理 (1)进程名。它是惟一标志对应进程的一个标志符或数字。(2)特
12、征信息。它包括是系统进程还是用户进程,进程映像是否常驻内存等。(3)进程状态信息。它表明该进程的执行状态,是运行态、就绪态还是阻塞态。(4)调度优先权。这表示进程获取CPU的优先级别。第第2 2章章 进程管理进程管理 (5)通信信息。它反映该进程与哪些进程有什么样的通信关系,如等待哪个进程的信号等。(6)现场保护区。当对应进程由于某个原因放弃使用CPU时,需要把它的一部分与运行环境有关的信息保存起来,以便在重新获得CPU后能恢复正常运行。第第2 2章章 进程管理进程管理 (7)资源需求、分配和控制方面的信息。如进程所需要或占有的IO设备、磁盘空间、数据区等。(8)进程映像信息。指出该进程的程序
13、和数据的存储情况,在内存或外存的地址、大小等。(9)族系关系。它反映父子进程的隶属关系。(10)其他信息。如文件信息、工作单元等。第第2 2章章 进程管理进程管理 2.1.8 PCB的组织方式 1.线性表方式 如图2-9所示,线性表的方式简单,最容易实现。操作系统预先确定整个系统中同时存在的进程最大数目,比如是n,静态分配空间,把所有的PCB都放在这个表中。第第2 2章章 进程管理进程管理 图2-9 PCB线性表 第第2 2章章 进程管理进程管理 2.链接表方式 链接表方式是经常采用的方式。其原理是:按照进程的不同状态分别放在不同的队列中,如图2-10所示。第第2 2章章 进程管理进程管理 图
14、2-10 PCB链接表PCBPCBPCB0就绪队列指针运行队列指针PCBPCBPCB0阻塞队列1指针PCBPCB0阻塞队列2指针PCB0第第2 2章章 进程管理进程管理 3.索引表方式 索引表方式是利用索引表记载各种状态进程的PCB地址,如就绪索引表中的表项指向就绪进程PCB的指针,而阻塞表中的表项指向阻塞进程PCB的指针。各索引表的起始地址放在专用的指针单元中,运行进程的PCB由一个专用的运行指针指向。图2-11示出PCB索引表方式。第第2 2章章 进程管理进程管理 图2-11 PCB索引表 PCB1PCB2PCB3PCB4PCB5PCB6PCB7PCB8PCB9就绪索引表阻塞索引表i运行指
15、针就绪表指针阻塞表i指针PCB表第第2 2章章 进程管理进程管理 2.2 线线 程程 2.2.1 线程概念 1.线程 线程 是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。如果把进程理解为在逻辑上操作系统所完成的任务,那么线程表示完成该任务的许多可能的子任务之一。第第2 2章章 进程管理进程管理 2.Thread结构 每个线程有一个Thread结构,用于保存与线程有关的信息,主要由以下几个基本部分组成:(1)一个惟一的线程标识符。(2)描述处理器状态的一组状态寄存器的内容,用于调度。(3)每个Thread结构有两个堆栈指针:一个指向核心堆栈,一个指向用户堆栈。(4)一个私有存储区,存
16、放现场保护信息及其他各种统计信息等。第第2 2章章 进程管理进程管理 图2-12 Thread结构 线程标识符调度状态信息核心堆栈指针用户堆栈指针私有存储区核心堆栈用户堆栈第第2 2章章 进程管理进程管理 3.带线程的进程模型 一个进程可以包含一个或者多个线程,但至少要有一个线程。在传统的进程中就只有一个线程。当一个进程包含多个线程时,各线程除自己有少量私有资源(如程序计数器、寄存器和堆栈)外,要共享所属进程的全部资源(如程序代码、数据和文件等)。图2-13示出单线程和多线程的进程模型。第第2 2章章 进程管理进程管理 图2-13 单线程式和多线程式的进程代码数据文件寄存器栈寄存器栈寄存器栈线
17、程代码数据文件寄存器栈线程(a)(b)第第2 2章章 进程管理进程管理 4.进程与线程的关系 从以上介绍中可以看出,进程和它的线程有如下关系:(1)一个进程可以有多个线程,但至少要有一个线程。(2)进程是资源的拥有者,是分配资源的独立单位;而线程一般不拥有系统资源(仅有一点必不可少的资源),同一进程的所有线程共享该进程的全部资源。(3)在支持线程的操作系统中,线程是调度和分派的基本单位。第第2 2章章 进程管理进程管理 (4)进程可以并发执行。(5)线程在执行过程中往往需要协作同步。(6)在实施创建、撤消和切换等操作时,进程的开销远大于线程的开销。(7)线程和进程一样,都是动态实体,具有不同的
18、状态,如运行态、就绪态、阻塞态和终止态等。第第2 2章章 进程管理进程管理 2.2.2 线程的实现方式 1.用户级线程 在这种方式下,整个管理线程的线程库放在用户空间,对线程从创建到撤消的全部管理工作都由应用程序完成。核心对线程一无所知,只对常规进程实施管理。图2-14(a)示出用户级线程的实现方式。第第2 2章章 进程管理进程管理 图2-14 线程的实现方式 核心运行时系统 线程表进程表进程线程(a)核心进程表进程线程(b)线程表用户空间核心空间第第2 2章章 进程管理进程管理 用户级线程实现方式具有以下三个优点:(1)线程切换速度快。(2)调度算法可以是应用程序专用的,不仅最适合自己的需求
19、,而且不干扰底层操作系统的进程调度。(3)用户级线程可运行在任何操作系统上,包括不支持线程机制的操作系统。第第2 2章章 进程管理进程管理 用户级线程方式也存在两个主要缺点:(1)系统调用的阻塞问题。当一个线程执行系统调用时,不仅它自己被阻塞,而且在同一进程内的所 有线程都将被阻塞。(2)这种方式下的多线程应用程序不具有多处理的优点。因为核心只为每个进程一次分配一台处理机。第第2 2章章 进程管理进程管理 2.核心级线程 在这种方式下,核心知道线程的存在,并对它们实施管理。如图2-14(b)所示。在核心空间中不仅有一个进程表,而且有一个线程表,其中记载系统中所有线程的情况。这样,就由核心统一管
20、理系统中所有的线程。核心进行调度时以线程为基本单位。第第2 2章章 进程管理进程管理 核心级线程的优点是:(1)在多处理器系统中,核心可以同时调度同一进程的多个线程,真正实现并行操作。(2)一个进程的某个线程阻塞了,核心可以调度同一进程的另一个线程运行。核心级线程方式也存在缺点,主要是:(1)线程切换速度慢,控制转移开销大。(2)调度算法由核心确定,应用进程无法影响线程的切换。第第2 2章章 进程管理进程管理 2.3 进进 程程 管管 理理 2.3.1 创建进程 1.进程图(Process Graph)与多数操作系统对进程的管理相似,UNIX系统中各个进程构成了树型的进程族系,如图2-15所示
21、。第第2 2章章 进程管理进程管理 图2-15 各个进程构成了树型的进程族系0#1#P_sP2iP2oP2nP31P3jP4mP4kshell进程执行shell命令第第2 2章章 进程管理进程管理 2.进程创建过程 父进程利用系统调用(如UNIX/Linux系统中的fork)来创建子进程,其主要过程如下:(1)申请一个空闲的PCB。(2)为新进程分配资源。(3)将新进程的PCB初始化。(4)将新进程加到就绪队列中。第第2 2章章 进程管理进程管理 2.3.2 终止进程 终止进程的主要操作过程是:(1)从系统的PCB表中找到指定进程的PCB。(2)回收该进程所占用的全部资源。(3)若该进程还有子
22、孙进程,则还要终止其所有子孙进程,回收它们所占用的全部资源。(4)释放被终止进程的PCB,并从原来队列中摘走。第第2 2章章 进程管理进程管理 2.3.3 更换进程映像 改变进程映像的工作很复杂,其主要过程是:(1)释放子进程原来的程序和数据所占用的内存空间;(2)从磁盘上找出子进程所要执行的程序和数据(通常以可执行文件的形式存放);(3)分配内存空间,装入新的程序和数据;(4)为子进程建立初始的运行环境主要是对各个寄存器初始化,返回到用户态,运行该进程的程序。第第2 2章章 进程管理进程管理 2.3.4 阻塞进程 进程阻塞的过程如下:(1)立即停止当前进程的执行;(2)将现行进程的CPU现场
23、送到该进程的PCB现场保护区中保存起来,以便将来重新运行时恢复此时的现场;第第2 2章章 进程管理进程管理 (3)把该进程PCB中的现行状态由“运行”改为“阻塞”,把它插入到具有相同事件的阻塞队列中;(4)然后转到进程调度程序,重新从就绪队列中挑选一个合适的进程投入运行。第第2 2章章 进程管理进程管理 2.3.5 唤醒进程 唤醒原语执行过程是:(1)首先把被阻塞进程从相应的阻塞队列中摘下;(2)将现行状态改为就绪态,然后把该进程插入到就绪队列中;(3)如果被唤醒进程比运行进程有更高的优先级,则设置重新调度标志。第第2 2章章 进程管理进程管理 2.4 进进 程程 间间 通通 信信 2.4.1
24、 进程间的关系 1.同步 同步是进程间共同完成一项任务时直接发生相互作用的关系,也就是说,这些具有伙伴关系的进程在执行的时间次序上必须遵循确定的规律。第第2 2章章 进程管理进程管理 2.互斥 协同工作的进程之间存在同步关系,但是进程之间更一般的关系是互斥关系,这是由于诸进程共享某些资源而引起的。3.通信 进程经常需要与其他进程通信。第第2 2章章 进程管理进程管理 2.4.2 竞争条件和临界区 1.竞争条件 在有些操作系统中,并发进程在活动过程中可能共享一些彼此都能够读写的公用存储区。它可能在内存中,也可能是一个共享文件,其所在位置并不影响问题的实质。下面我们考虑两个进程对一个系统打印机分配
25、表的操作情况。第第2 2章章 进程管理进程管理 假定进程Pa负责为用户进程分配打印机,进程Pb负责释放打印机。由于分配和释放可能同时发生,因此两个进程必须共享一个打印机分配表,如表2-2所示。第第2 2章章 进程管理进程管理 表2-2 打印机分配表 第第2 2章章 进程管理进程管理 Pa进程分配打印机的过程是:(1)逐项检查分配标志,找出标志为0的打印机号码;(2)把该机的分配标志置1;(3)把用户名和设备名填入分配表中相应位置。第第2 2章章 进程管理进程管理 Pb进程释放打印机的过程是:(1)逐项检查分配表的各项信息,找出标志为1并且用户名和设备名与被释放的名字相同的机号;(2)该机标志清
展开阅读全文