《操作系统原理及应用(Linux)》第2章 进程管理.ppt_第1页
《操作系统原理及应用(Linux)》第2章 进程管理.ppt_第2页
《操作系统原理及应用(Linux)》第2章 进程管理.ppt_第3页
《操作系统原理及应用(Linux)》第2章 进程管理.ppt_第4页
《操作系统原理及应用(Linux)》第2章 进程管理.ppt_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

第二章过程管理,本章的学习目标本章主要介绍了Linux过程的概念、状态、组成和相关知识。掌握进程的概念,掌握进程的描述、状态和变迁,了解进程的特征,了解Linux进程的描述和进程的通信,掌握进程的同步和互斥,能够灵活运用理解线程的概念和特征。第2章过程管理,1,教学内容2.1过程的基本概念2.2过程描述2.3过程控制2.4过程同步和互斥2.5过程同步问题示例2.6过程通信2.7本章中的线程摘要,2,2.1过程的基本概念,2.1.1程序的顺序执行及其特征1。程序的顺序执行程序是人们希望计算机完成的一系列指令。它是以严格的顺序和顺序执行的一系列操作。这是一个静态概念。我们把一个具有独立功能的程序看作是独占处理器,直到结束的过程称为程序的顺序执行。2.程序顺序执行的特征(1)顺序性。(2)关闭。(3)再现性。第2章过程管理,3,2.1.2程序的并发执行及其特征1。并发执行的概念所谓的程序并发是指多个程序在同一时间间隔内同时出现。程序的并发执行可以概括为一种执行模式,其中一组逻辑上独立的程序或程序段在执行过程中客观上相互重叠,即一个程序段的执行尚未结束,而另一个程序段的执行已经开始。第2章过程管理,4,2。程序并行执行的特点:(1)中断程序,由于它们共享系统资源和相互协作完成同一任务,在这些并行执行程序之间形成一种相互制约的关系。相互限制将导致并发程序具有“执行暂停执行”的间歇活动规则。(2)当一个程序失去其封闭性时,它必然会受到其他程序的影响。(3)不可再现性在并发环境中,同一程序被执行多次,并且执行过程可能不同。用一个程序作为基本单元来描述它的执行过程和共享资源是不合适的。因此,引入过程作为描述程序执行过程和共享资源的基本单元。第2章过程管理,5,2.1.3过程的定义和特征,1。过程的定义过程有很多定义。这里有一些:(1)一个过程是一个程序的执行。(2)进程是可以与其他进程同时执行的计算。(3)进程是在给定的活动空间和初始条件下,程序在处理器上的执行过程。(4)过程是程序在数据集上的运行过程。它是资源分配和调度系统的一个独立单元。(5)过程是动态的,具有生命周期活动。内核可以创建一个最终被内核终止的进程,让它死去。第2章过程管理6。过程与过程的关系。过程和过程是两个完全不同的概念,但它们是密切相关的。它们之间的主要区别是:(1)程序是一个静态概念;该过程是程序的执行过程。这是一个动态的概念。(2)进程是可以独立运行并可以与其他进程并发执行的单元;程序不能作为独立单元同时执行。(3)程序和过程之间没有一对一的对应关系。(4)在并发执行期间,每个进程都有相互限制,而程序本身是静态的,没有这种异步特性。从过程和程序的区别可以看出,过程具有以下特征:(1)动态动力学是过程最基本的特征。进程被创建,通过调度执行,由于缺乏资源而暂停,并且由于撤销而被破坏。(2)并发指的是存储在内存中的多个进程实体,它们可以在一段时间内同时执行。并发是进程的一个重要特征,也是操作系统的一个重要特征。提高并发性可以提高系统的效率。(3)独立过程是一个可以独立运行的基本单位,也是一个可以获得资源和空间的基本单位(4)异步是指进程以独立且不可预测的速度前进。换句话说,流程异步运行。(5)结构特征从结构的角度来看,过程实体由三部分组成:程序段、数据段和过程控制块,它们也被称为过程图像。第2章过程管理,8,2.1.4过程1的基本状态和转换。一个进程的三个基本状态通常至少有三个基本状态:(1)就绪进程运行所需的外部条件得到满足,但它暂时不能运行,因为其他进程已经占用了CPU。(2)满足运行外部条件,进程获得中央处理器,程序正在执行。在单处理器系统中,只有一个进程正在执行。(3)由于等待某些事件发生,被阻塞的进程暂时无法运行。这称为阻塞状态,也称为等待状态。系统中可能有多个进程处于这种状态,通常它们排列在一个队列中,有些系统根据不同的阻塞原因将这些进程排列在多个队列中。第2章过程管理,9,2。过程状态转换。对于系统中处于就绪状态的进程,可以在调度器为其分配处理器之后执行该进程,并且相应地,它从就绪状态变为执行状态。正在执行的进程也称为当前进程。如果由于分配给它的时间已经用完而暂停执行,进程将从执行状态返回到就绪状态。如果处于执行状态的进程的执行由于事件而被阻止并且无法继续,则该进程将从执行状态变为阻止状态。当满足所需的外部事件时,处于阻塞状态的进程应该从阻塞状态变为就绪状态。第2章过程管理第10章过程管理第2章过程管理第11章3。进程状态当引入挂起状态时,所谓的挂起状态实际上是静态的。进程挂起后,无论它是否处于就绪状态,系统都不会将其分配给处理器。引入挂起状态后,进程之间的状态转换被添加到如下四个基本状态转换中:(1)活动就绪静态就绪。(2)主动障碍物静态障碍物。(3)固定就绪活动就绪。(4)静态障碍物活动障碍物。第2章进程管理,第12章,第2章进程管理,第13,2 . 1 . 5章进程状态,一个任务的Linux系统一般有以下状态:(1)运行状态(running)对应的状态值是TASK_RUNNING。(2)等待(3)中断处理(中断例程)该状态对应于状态值TASK_RUNNING。(4)在系统调用期间,该状态对应于状态值TASK_RUNNING。(5)从系统调用返回(从系统调用返回),第2章过程管理,14,(6)准备。处于这种状态的进程正在竞争一个处理器,但此时该处理器正在为另一个进程服务。该状态对应于状态值TASK_RUNNING。Linux内核使用状态成员来描述进程控制块中进程的当前状态,并明确定义了五种进程状态。它们是:(1)任务运行状态。Linux系统中的运行状态实际上包括上述基本状态中的执行和就绪状态。(2)任务-可中断状态、可中断等待状态。这个过程正在等待一些事件。(3)任务-不间断状态、等待状态、不可中断。(4)任务-僵尸状态,僵尸状态。(5)任务停止状态、暂停状态。第2章进程管理,第15章,Linux任务状态转换图,和2.2进程描述。过程实体通常由三部分组成:程序、数据集和印刷电路板,也称为“过程图像”第2章过程管理,17、图2-4过程的一般组成模型,2.2.1过程控制块印刷电路板,印刷电路板集中反映一个过程的动态特性,当系统创建一个新过程时,为它建立一个印刷电路板;当该过程终止时,系统回收其印刷电路板,并且该过程不存在于系统中。因此,印刷电路板是工艺存在的唯一标志。根据功能,印刷电路板可分为四个部分:过程标识符、处理器状态、过程调度信息和过程控制信息。流程标识符流程标识符用于唯一标识流程。一个进程通常有两种标识符:(1)进程内部标识符。(2)处理外部标识符。2.处理器状态:由各种寄存器中的内容组成。3.流程调度信息(1)流程状态。(2)流程优先级。(3)工艺调度所需的其他信息。(4)事件或堵塞的原因。4.过程控制信息,包括:(1)程序和数据的地址;(2)进程同步和通信机制;(3)资源列表;(4)链接指针。第2章过程管理,19,2.2.2过程控制块的组织。每个流程的印刷电路板有以下组织模式:线性模式、链接模式和索引模式。1.将各工序的印刷电路板以直线方式放入表格中,结构如下图所示。第2章过程管理,20,图2-5PCB线性组织,2。链接,链接经常被使用。原则是根据进程的不同状态将它们放在不同的队列中。Linux操作系统是应用这个过程控制块的组织方式。第2章过程管理,21,3。索引方法:系统根据所有进程的状态建立多个索引表。第2章进程管理,22,2 . 2 . 3 Linux进程的PCB,进程在Linux系统中称为任务。系统的过程控制模块用一种叫做任务结构的结构来描述。Linux系统印刷电路板包含以下信息:1 .过程描述信息(1)过程标识号(pid,过程标识符(2)用户和组标识符(3)连接信息(链接)2。过程控制信息(1)过程的当前状态(2)调度信息(3)计时信息(4)通信信息,第2章过程管理,23。Linux支持典型的UNIX进程间通信机制信号、管道和系统V通信机制来共享内存、信号量和消息队列。3.进程资源信息记录与进程、文件系统和打开文件的信息等相关的存储器的各种地址和资料。4.中央处理器字段信息,第2章过程管理,24,2.3过程控制,即所谓的过程控制,是指系统使用具有特定功能的程序段来创建、取消过程并完成过程之间的转换,从而实现多过程高效并发执行和协调以及资源共享的目标。原语:指一些具有特定功能的程序段,当作为原语在系统状态下执行时不能被中断。原语的特征是:系统程序不能被中断。当系统创建和取消一个进程并改变该进程的状态时,它将调用相应的程序段来完成这些功能。用于过程控制的原语包括:创建原语、撤销原语、块原语、唤醒原语等。第2章过程管理,25,2.3.1过程创建和终止,1。流程创建导致的事件包括:用户登录、作业调度、为用户提供服务等。创建原语Create(),通过以下步骤创建一个过程。(1)申请空白印刷电路板。(2)为新流程分配资源。(3)初始化过程控制块。(4)将新流程插入就绪队列。2.进程终止在进程期间,操作系统调用进程终止原语来终止进程。过程如下:(1)根据终止进程的标识,从进程队列中检索进程的进程标识,并读取进程的状态。(2)如果终止的过程处于执行状态,过程的执行应立即终止,过程终止后应重新安排过程。(3)检查该进程中是否有后代进程,如果有,则终止所有后代进程。(4)释放被终止的进程所拥有的资源,并将它们返回给其父进程或系统。(5)将终止的进程从其印刷电路板队列中移除。第2章过程管理,26,3。进程阻塞和进程唤醒。进程状态的转换需要通过进程间的同步或通信机制来实现,也可以通过使用“阻塞原语”和“唤醒原语”来直接实现。(1)进程阻塞当进程等待的事件尚未发生时,进程调用阻塞原语block()来阻塞自身并将其转换为等待状态。(2)进程唤醒处于等待状态的进程。只有当进程等待的外部事件发生时,导致该事件的进程才会调用唤醒原语wakeup()来唤醒它。第2章进程管理,27,2.3.2几个相关的Linux系统调用,在Linux系统中,系统为用户提供一些系统调用来控制进程。常用的有:1。系统调用Linux使用系统调用来创建一个新的进程。2.执行系统调用使用执行系统调用执行另一个程序。3.exit()系统调用父进程。当创建子进程时,它应该在进程结束时写一个退出,以便子进程终止自己。4.4 .等待系统调用暂停调用过程,直到其子过程由于暂停或终止而发送软中断信号。第二章进程管理,进程的阻塞和唤醒28,2.3.3,实现从执行状态到等待状态和从等待状态到就绪状态转换的两个原语:阻塞原语和唤醒原语。第2章过程管理,29,2.4过程的同步和互斥,2.4.1关键资源的概念1。关键资源资源不能被两个或多个进程同时使用的资源是关键资源。关键资源可能是一些专用设备,如打印机、磁带机等。也可能是一些共享变量、表、链表等。第2章过程管理,30,2。关键区域。在每个过程中访问关键资源的代码称为关键区域。在关键区域前添加一段代码用于检查,并将这段代码称为入口区域;相应地,在临界区之后增加了一个退出临界区的代码,称为退出区。在此过程中,上述入口区和出口区被删除,其他部分的代码称为剩余区。这样,访问关键资源的过程可以描述如下:重复进入区域;临界区;出口区域;剩余区域;直到。第2章过程管理,31,2.4.2过程的互斥和同步,1。同步和互斥的概念所谓的进程互斥意味着多个进程不能同时使用相同的关键资源。也就是说,两个或多个进程必须使用互斥的关键资源,否则不能同时进入关键区域CS。两个逻辑上完全独立且不相关的进程由于对同一资源的竞争而相互限制,这称为进程互斥。所谓进程同步是指具有协作关系的进程之间,为保证关键资源的合理利用和进程的顺利执行,对相对速度或执行进程的不断调整。实现进程同步的机制称为进程同步机制。2.同步机制的规则所有同步机制都应遵循以下准则:(1)空闲让步。(2)忙着等待。(3)有限等待。(4)允许等待的权利。第2章过程管理,32,2.4.3锁定机制。一种实现互斥的软件是采用锁机制,即提供一对锁和解锁原语以及一个锁变量W(或一个锁位)。锁定基元和解锁基元可以描述如下:锁定基元:lock:l:ifw=1 engotoleelsew3360=1解锁基元:unlock:w:=0;第2章进程管理,信号量机制33,2.4.4,应用和释放关键资源的两个基本操作:等待操作和信号操作,有时也称为P操作和V操作。信号量,也称为信号量,是一种有效的数据结构,用于在信号量同步机制中实现进程的同步和互斥。我们可以为每种

温馨提示

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

评论

0/150

提交评论