第2章进程管理ppt课件.ppt
《第2章进程管理ppt课件.ppt》由会员分享,可在线阅读,更多相关《第2章进程管理ppt课件.ppt(166页珍藏版)》请在三一办公上搜索。
1、兰州理工大学计算机与通信学院,第2章 进程管理,2.1 进程的引入 2.2 进程的描述与控制 2.3 线程 2.4 进程同步 2.5 经典进程同步问题 2.6 进程通信 2.7 死锁问题 2.8 Windows进程管理,本章主要内容,2.1 进程的引入,2.1.1 程序的顺序执行与并发执行2.1.2 进程的概念2.1.3 进程的状态2.1.4 进程的管理,兰州理工大学计算机与通信学院,1程序的顺序执行 程序的顺序执行是指必须严格地按照某种次序逐个地执行,即只有当一个操作结束后,才能开始后继操作。,兰州理工大学计算机与通信学院,程序顺序执行的特征,执行的顺序性 环境的封闭性 结果的确定性 过程的
2、可再现性,兰州理工大学计算机与通信学院,2程序的并发执行 操作系统中引入并发程序设计技术后,程序的执行不再是顺序的,一个程序未执行完而另一个程序已投入运行,程序外部的顺序特性消失,程序与程序的执行不再一一对应。,兰州理工大学计算机与通信学院,程序段的并发执行,兰州理工大学计算机与通信学院,程序并发执行的特征,执行的间断性 环境的不封闭性 结果的不确定性 过程的不可再现性,兰州理工大学计算机与通信学院,2.1 进程的引入,2.1.1 程序的顺序执行与并发执行2.1.2 进程的概念2.1.3 进程的状态2.1.4 进程的管理,兰州理工大学计算机与通信学院,1进程的定义 进程的多种定义中能反映进程实
3、质的定义有:是程序的一次执行。计算机中正在运行的程序的一个实例。可以分配给处理机并由处理机执行的一个实体。是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。,兰州理工大学计算机与通信学院,2进程的类型 从操作系统角度,可将进程分为系统进程和用户进程两大类。系统进程 系统进程属于操作系统的一部分,它们运行操作系统程序,完成操作系统的某些功能,也被称作守护(daemon)进程,兰州理工大学计算机与通信学院,用户进程 用户进程运行用户程序,直接为用户服务。所谓“用户程序”,不一定是用户自己编写的程序,在操作系统之上运行的所有应用程序都被称作
4、用户进程。,兰州理工大学计算机与通信学院,3进程的特征动态性共享性独立性并发性异步性结构性,兰州理工大学计算机与通信学院,4进程和程序的关系 进程是动态的,程序是静态的 进程是暂时的,程序是永久的 进程与程序的组成不同 一个程序可以对应多个进程,但一个进程只能对应一个程序段,兰州理工大学计算机与通信学院,2.1 进程的引入,2.1.1 程序的顺序执行与并发执行2.1.2 进程的概念2.1.3 进程的状态2.1.4 进程的管理,兰州理工大学计算机与通信学院,一个进程从产生到消亡的整个生命周期,有时占有处理机而执行,有时虽然可以运行但分不到处理机,有时虽有空闲处理机但因等待某个事件的发生而无法执行
5、。为了便于管理进程,一般来说,按进程在执行过程中的不同情况可以构造最简单的进程状态模型。,兰州理工大学计算机与通信学院,1三状态进程模型,兰州理工大学计算机与通信学院,2五状态进程模型,兰州理工大学计算机与通信学院,3挂起状态进程模型(),单挂起状态进程模型,兰州理工大学计算机与通信学院,3挂起状态进程模型(),双挂起状态进程模型,兰州理工大学计算机与通信学院,2.1 进程的引入,2.1.1 程序的顺序执行与并发执行2.1.2 进程的概念2.1.3 进程的状态2.1.4 进程的管理,兰州理工大学计算机与通信学院,在操作系统中同时存在多个进程,它们又对应着不同的或相同的程序段以及进程运行所需的各
6、种独立的、共享的系统资源。因此进程管理的功能有以下几个方面:进程的控制 进程的同步 进程的通信 进程的调度 进程的安全,兰州理工大学计算机与通信学院,兰州理工大学计算机与通信学院,第2章 进程管理,2.1 进程的引入 2.2 进程的描述与控制 2.3 线程 2.4 进程同步 2.5 经典进程同步问题 2.6 进程通信 2.7 死锁问题,2.2 进程的描述与控制,2.2.1 进程的描述 2.2.2 进程的控制,兰州理工大学计算机与通信学院,进程的静态描述由三部分组成:进程控制块、有关程序段和与该程序段相关的数据结构集合。进程的程序部分描述进程所要完成的功能。是进程运行所对应的执行代码,一个进程可
7、以对应一个完整的程序,也可以只对应一个程序中的一部分。数据结构集合是程序在执行时必不可少的工作区和操作对象。进程控制块是记录进程存在、保持进程所需数据集合、完成进程控制的重要结构。,兰州理工大学计算机与通信学院,1进程控制块PCB PCB有时也称为进程描述块(Process Descriptor Block),是系统为描述进程而设计的一种数据结构。个进程只有一个PCB,PCB是进程存在与否的唯一标记,一个进程的PCB结构都是全部或部分常驻内存的。PCB基本内容:标识信息、现场信息、控制信息,兰州理工大学计算机与通信学院,进程控制块的主要作用有:标识进程的存在。系统创建进程时,就为之创建一个PC
8、B;进程结束时,系统又回收其PCB,进程便随之消亡。为系统控制和管理进程提供所需的一切信息。,兰州理工大学计算机与通信学院,2PCB的组织方式 在一个系统中,通常可拥有数十个、数百个甚至上千个PCB。为了有效地进行进程管理,系统必须对进程进行合理的组织。顺序表 定义一个PCB结构数组。这种方式不区分进程状态,将所有PCB连续地存放在内存区中。,兰州理工大学计算机与通信学院,索引表 系统根据进程的状态,分别为具有相同状态的PCB建立一张索引表。通常,PCB表采用静态存储分配方案,定义为PCB结构数组;各种索引表采用动态存储分配方案,索引表中存入相应PCB数组元素的下标值。,兰州理工大学计算机与通
9、信学院,链表 系统根据PCB的状态,把相同状态的PCB链接成一个PCB链表队列,这样,可形成就绪进程队列、阻塞进程队列等。对就绪进程队列,可根据其优先级的不同,将优先级高的PCB排在前面。此外,系统也可以根据阻塞原因的不同,形成等待各种外设I/O操作完成的队列、等待各种事件发生的队列。,兰州理工大学计算机与通信学院,3进程上下文 进程上下文是进程执行活动全过程的静态描述。它包括系统中与执行该进程有关的各种寄存器的值,进程段在经过编译之后形成的机器指令代码集(或称正文段)、数据集及各种堆栈值和PCB结构。,兰州理工大学计算机与通信学院,4进程空间 每一个进程都有自己的地址空间,该空间称为进程空间
10、或虚空间,进程空间又划分为用户空间和系统空间两部分。用户程序在用户空间执行,操作系统内核程序则在进程的系统空间内执行。,兰州理工大学计算机与通信学院,2.2 进程的描述与控制,2.2.1 进程的描述 2.2.2 进程的控制,兰州理工大学计算机与通信学院,进程控制,是指系统使用一些具有特定功能的程序段来创建进程、撤消进程以及完成进程各状态间的转换。这些程序段是机器指令的延伸,由若干条机器指令构成,用以完成特定功能,且在管态下执行,执行过程中是不可分割的,不允许被中断,并且它是顺序执行的(不允许并发),我们把这样的程序段叫作原语。,兰州理工大学计算机与通信学院,用于进程控制的原语有:创建原语撤销原
11、语阻塞原语唤醒原语挂起原语和激活原语,兰州理工大学计算机与通信学院,兰州理工大学计算机与通信学院,第2章 进程管理,2.1 进程的引入 2.2 进程的描述与控制 2.3 线程 2.4 进程同步 2.5 经典进程同步问题 2.6 进程通信 2.7 死锁问题,2.3 线程,2.3.1 线程的引入 2.3.2 线程的状态 2.3.3 线程的并发执行 2.3.4 用户级线程和内核级线程2.3.5 线程的描述与控制,兰州理工大学计算机与通信学院,线程能有效地提高系统的性能。目前,不仅在操作系统中,而且在数据库管理系统和其他应用软件中,都普遍引入了线程的概念。在引入线程的操作系统中,线程是系统调度的基本单
12、位,而进程是独立分配资源的基本单位。因此,线程的引入是为了以小的开销来提高进程内的并发程度。,兰州理工大学计算机与通信学院,1线程的定义 线程的定义情况与进程类似,存在多种不同的提法:线程是进程内的一个执行单元。线程是进程内的一个可调度实体。线程是程序(或进程)中相对独立的一个控制流序列。,兰州理工大学计算机与通信学院,2多线程 多线程是指操作系统支持的一个进程中执行多个线程的能力,这些线程共享该进程资源,驻留在相同的地址空间中,共享数据和文件。如果一个线程修改了存储空间中的一项数据,其它线程访问该数据项时就获得了改变之后的结果。如果一个进程以只读方式打开了一个文件,同一进程中的其它线程也能从
13、该文件中读数据。,兰州理工大学计算机与通信学院,3进程与线程的比较 线程具有许多传统进程所具有的特征,故又称为轻型进程(Light-Weight Process)或进程元;而传统的进程称为重型进程(Heavy-Weight Process),它相当于只有一个线程的任务。,兰州理工大学计算机与通信学院,可以从以下几个角度来比较进程和线程:调度切换。并发性。地址空间资源。通信关系。系统资源的拥有。系统开销,兰州理工大学计算机与通信学院,2.3 线程,2.3.1 线程的引入 2.3.2 线程的状态 2.3.3 线程的并发执行 2.3.4 用户级线程和内核级线程2.3.5 线程的描述与控制,兰州理工大
14、学计算机与通信学院,与进程类似,线程也有生命周期,也存在各种状态。它的主要状态有运行、就绪和阻塞。正在运行的线程拥有CPU并且是活跃的,被阻塞的线程等待某个事件的发生或等待其它线程来释放它,就绪线程可被调度执行。由于线程不是资源的拥有单位,挂起状态对线程没有意义。所以,线程的状态转换类似于进程的三态模型。与线程级状态变化有关的基本操作原语主要有四个,分别是创建原语、阻塞原语、解除阻塞原语和终止原语。,兰州理工大学计算机与通信学院,2.3 线程,2.3.1 线程的引入 2.3.2 线程的状态 2.3.3 线程的并发执行 2.3.4 用户级线程和内核级线程2.3.5 线程的描述与控制,兰州理工大学
15、计算机与通信学院,教材图2-8显示了执行两个对不同主机的远程过程调用(RPC)获得的组合结果。在单线程环境中,这两个结果是顺序获得的,故程序要依次等待每一个服务器的响应。如用各自的线程执行RPC以获得调用结果的方法重写程序,性能就获得实质性的提高。当然,如果这个程序是在单处理机的环境下执行,调用请求是串行地发出的,结果的处理也是串行地进行的。,兰州理工大学计算机与通信学院,2.3 线程,2.3.1 线程的引入 2.3.2 线程的状态 2.3.3 线程的并发执行 2.3.4 用户级线程和内核级线程2.3.5 线程的描述与控制,兰州理工大学计算机与通信学院,线程在有的系统中,实现的是用户级线程(U
16、LT,User-Level-Threads),这种线程不依赖于内核。而另一些系统(如Mach和OS2操作系统)实现的是内核级线程(KLT,Kernel-Level-Threads),这种线程依赖于内核。也有一些系统如Solaris操作系统,则提供了混合式线程,同时支持这两种类型的线程。,兰州理工大学计算机与通信学院,1内核级线程 在纯KLT机构中,所有的线程管理工作是由内核完成的。内核专门提供了一个KLT应用程序设计接口(API),供开发者使用。KLT方法的主要优点是内核能同时调度一个进程中的多个线程在多处理机上运行。同时,如果进程中的一个线程被阻塞,内核能调度同一进程中的其它线程,也可以运行
17、其它进程中的线程。KLT方法的另一优点是内核本身也用多线程技术实现,从而能提高系统的执行效率和速度。KLT方法的主要缺点是应用程序的线程在目态运行,而线程调度和管理又在内核实现,所以在同一进程内将控制从一个线程转换到另一个线程时需要用户态内核态用户态的切换。,兰州理工大学计算机与通信学院,2用户级线程 在纯ULT机构中,管理线程的所有工作是由应用程序来完成的,系统内核并不能感觉到这类线程的存在,所以从内核角度考虑,就是按正常的方式管理,即单线程进程,这种方法的一个明显优点是,用户级线程库可以在不支持线程的操作系统上实现。与KLT相比,ULT有以下特点:线程间的切换不需要核心态特权。调度程序是面
18、向特定应用系统的。ULT能在任何操作系统上运行。进程中的一个线程被阻塞时,进程内的所有线程会被阻塞。,兰州理工大学计算机与通信学院,3混合式线程 在采用混合式线程的系统中,内核支持KLT多线程的建立、调度和管理。同时也提供线程库,允许应用程序建立、调度和管理ULT。混合式线程中,一个应用程序中的多个线程能同时在多处理机上并行执行,且阻塞一个线程时并不需要阻塞整个进程,若设计得当,混合式多线程机制能够结合两者的优点,舍弃它们的缺点。,兰州理工大学计算机与通信学院,2.3 线程,2.3.1 线程的引入 2.3.2 线程的状态 2.3.3 线程的并发执行 2.3.4 用户级线程和内核级线程2.3.5
19、 线程的描述与控制,兰州理工大学计算机与通信学院,1线程的描述 支持线程的操作系统中也要为线程设计一种数据结构线程控制块(Thread Control Block,TCB)来标志线程的存在,即每当创建一个新线程时,便要为该线程分配一个TCB。不同的操作系统,线程的结构不尽相同,一般包含系统对于线程进行管理所需要的全部信息。不过TCB的内容一般较少。TCB中的主要信息有:线程标识、程序计数器及状态寄存器等寄存器组、若干堆栈、私用存储器等。TCB可能属于操作系统空间,也可能属于用户进程空间,是由线程的实现方式决定的。,兰州理工大学计算机与通信学院,2线程的控制 类似于进程控制,线程也具有线程控制模
20、块、同步协调机构以及时钟控制等。线程控制包括了对线程执行环境的控制和状态转换的控制,也具有线程创建、调度、阻塞、唤醒及撤销。进程内各线程的并发执行由同步协调机制完成,可直接在进程局部空间内实现线程通信。线程的存在与消亡也通过线程控制块TCB体现出来。,兰州理工大学计算机与通信学院,兰州理工大学计算机与通信学院,第2章 进程管理,2.1 进程的引入 2.2 进程的描述与控制 2.3 线程 2.4 进程同步 2.5 经典进程同步问题 2.6 进程通信 2.7 死锁问题,2.4 进程同步,2.4.1 进程同步的基本概念 2.4.2 进程同步的解决方法 2.4.3 线程同步2.4.4 多处理机同步,兰
21、州理工大学计算机与通信学院,1进程间的相互关系 在多道程序环境中,同一时刻可能有多个进程在计算机中运行。它们之间存在着两种关系:竞争 系统中彼此无关的进程在运行过程中并不知道对方的存在,而且也不受其它进程执行的影响,但是一个进程的执行可能会影响到同其竞争资源的其他进程。进程互斥(mutual exclusion)是解决进程间资源竞争关系(间接制约关系)的手段,指若干个共享某一资源的进程并发执行时,任何时刻只允许一个进程去使用,其它要使用该资源的进程必须等待,直到占有资源的进程释放该资源。,兰州理工大学计算机与通信学院,例2-1、有两个进程P1、P2,它们都要使用打印机,如果让它们随意使用,那么
22、就有可能出现这种情况,P1打印几行接着P2再打印几行,打印结果混在一起,很难区分,既使能够区分,也要将各自输出结果从打印纸上剪下来,再用浆糊粘接起来。解决这一问题的办法是,不允许一台打印机让两个进程同时使用,应在一个进程用完后再让另一进程使用。,兰州理工大学计算机与通信学院,合作。某些进程为了完成同一任务分工合作,由于合作的每一个进程都是独立地以不可预知的速度推进,这就需要相互合作的进程在某些合作点上协调各自的工作。当合作进程中的一个到达合作点后,在尚未得到其它合作进程发来的消息或信号之前应阻塞自己,直到其合作进程发来协调信号或消息后才能被唤醒。进程同步(synchronization)是解决
23、进程间合作关系(直接制约关系)的手段,指两个或两个以上进程基于某个条件来协调它们的活动。一个进程的执行依赖于另一个合作进程的消息或信号,当一个进程没有得到来自于另一个进程的消息或信号时则需等待,直到消息或信号到达才被唤醒。,兰州理工大学计算机与通信学院,例2-2、在一辆公共汽车上,司机和售票员各行其职,独立工作。司机负责开车和到站停车,售票员负责售票和开、关车门。但两者需要密切配合、协调一致。即当司机驾驶的车辆到站并把车辆停稳后,售票员才能打开车门,让乘客上、下车,然后关好车门,这时司机继续开车行驶。,兰州理工大学计算机与通信学院,2临界资源和临界区 一次只能允许一个进程访问的共享资源称为临界
24、资源。每个进程访问临界资源的那段程序称为临界区(Critical Section),简称CS区。只有让使用临界资源的进程互斥地进入临界区,才能保证某一进程单独地使用临界资源。并发进程进入相关临界区执行应遵循如下四个准则:一次至多只允许一个进程进入临界区。不能让一个进程无限期地在临界区内执行。不能强迫一个进程无限地等待进入它的临界区。不能假定处理机的速度和限制处理机的数量,也即公平竞争。,兰州理工大学计算机与通信学院,例2-3、某游艺场设置了一个自动计数系统,用一个计数器count指示在场的人数。当有一个人进入时,由进程Pin实现计数器加1;当有一个人退出时,由进程pout实现计数器减1。两个进
25、程的程序段如下:,void pin(int count)int R1;R1count;R1+;count R1;,void pout(int count)int R2;R2count;R2-;count R2;,兰州理工大学计算机与通信学院,2.4 进程同步,2.4.1 进程同步的基本概念 2.4.2 进程同步的解决方法 2.4.3 线程同步2.4.4 多处理机同步,兰州理工大学计算机与通信学院,1加锁机制 设想有一个共享变量(锁变量)W,锁有两种状态:w0表示锁已打开,此时临界区内没有进程;W1表示锁被关闭,此时已有某个进程进入临界区。用原语来实现,其中加锁原语用LOCK(W)表示,可描述为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程 管理 ppt 课件

链接地址:https://www.31ppt.com/p-2104295.html