您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第2章 进程管理1――进程描述与控制
跳转到第一页第二章进程控制与描述●引入进程本章要点●进程的控制●引入线程跳转到第一页程序的顺序执行特点●顺序性:处理机的操作严格按规定顺序执行●封闭性:程序执行时,独占系统资源●可再现性:当初始条件相同时,程序多次执行的结果相同P1P2P3P1:a=x+yP2:b=a-5P3:c=b+1●2.1程序的执行跳转到第一页P1P2P3P4程序的并发执行P1:a=5P2:b=6P3:c=a+bP4:d=c+1特点●间断性:程序在并发执行时,形成了相互制约关系。相互制约将导致并发程序具有“执行—暂停—执行”这种间断性的活动规律●失去封闭性:系统中的资源供多个程序共享,致使程序的运行失去了封闭性●失去可再现性:跳转到第一页例子有2个循环程序A和B,它们共享一个变量N,程序A每执行次时,都要做N:=N+1;B则每次要执行Print(N),然后N:=0.若程序A,B以不同的速度运行有以下三种不同的结果如下:N:=N+1在print(N)和N:=0之前,则N值分别n+1,n+1,0.N:=N+1在print(N)和N:=0之后,则N值分别为n,0,1.N:=N+1在print(N)和N:=0之间,则N值分别为n,n+1,0.跳转到第一页●2.2进程的描述和进程的状态进程的定义可并发执行的,具有独立功能的程序在一个数据集合上的一次执行过程,是操作系统进行资源分配和调度的基本单位.进程的特征进程程序●动态的静态的●暂时的永久的●并发的顺序●数据结构=程序+数据+PCB●程序与进程不是一一对应关系实质跳转到第一页运行就绪阻塞时间片用完进程调度请求I/O或等待某事件I/O完成或事件完成进程的状态及转换图跳转到第一页进程状态转换的时序运行就绪阻塞时间t进程A进程B进程C进程调度程序运行就绪阻塞时间片用完进程调度请求I/O或等待某事件I/O完成或事件完成跳转到第一页五种状态的进程状态转换图运行就绪阻塞时间片用完进程调度请求I/O或等待某事件I/O完成或事件完成退出创建接纳完成跳转到第一页进程的挂起及转换挂起(Suspend):把一个进程从内存转到外存;可能有以下几种情况:阻塞到阻塞挂起:没有进程处于就绪状态或就绪进程要求更多内存资源时,会进行这种转换,以提交新进程或运行就绪进程;就绪到就绪挂起:当有高优先级阻塞(系统认为会很快就绪的)进程和低优先级就绪进程时,系统会选择挂起低优先级就绪进程;运行到就绪挂起:对抢先式分时系统,当有高优先级阻塞挂起进程因事件出现而进入就绪挂起时,系统可能会把运行进程转到就绪挂起状态;激活(Activate):把一个进程从外存转到内存;可能有以下几种情况:就绪挂起到就绪:没有就绪进程或挂起就绪进程优先级高于就绪进程时,会进行这种转换;阻塞挂起到阻塞:当一个进程释放足够内存时,系统会把一个高优先级阻塞挂起(系统认为会很快出现所等待的事件)进程;跳转到第一页运行就绪阻塞时间片用完进程调度请求I/O或等待某事件I/O完成或事件完成退出创建接纳完成阻塞挂起激活挂起就绪挂起挂起激活挂起I/O完成或事件完成具有挂起状态的进程状态转换图跳转到第一页进程控制块PCB●引入PCB的作用:就是使程序能成为独立运行的单位,并可和其他进程并发执行。进程的组成PCB的作用●进程控制块PCB●程序段●数据段●堆栈PCB是进程实体的一部分,是OS中最重要的数据结构跳转到第一页●标识信息●进程名●进程标识符●用户名●进程组●处理机状态信息●通用寄存器●指令计数器●程序状态字●用户栈指针●进程调度信息●进程状态●进程优先级●运行统计信息。如CPU运行时间、等待时间。●事件。如阻塞原因。●进程控制信息●程序或数据地址●进程同步、通信机制●资源清单●链接指针进程控制块PCB的内容跳转到第一页10PCB10*0PCB065PCB584PCB473PCB312PCB2*1PCB106PCB6*7PCB798PCB8109PCB9*运行指针就绪指针阻塞指针空闲指针进程控制块PCB的组织●链接方式跳转到第一页PCB10PCB0PCB5PCB4PCB3PCB2PCB1PCB6PCB7PCB8PCB9运行指针就绪指针阻塞指针6301974就绪索引表阻塞索引表进程控制块PCB的组织●索引方式跳转到第一页●具有较高的特权,能执行一切命令,访问所有寄存器和存储区。●处理机的状态2.2进程控制核心态用户态●具有较低特权,只能执行规定的命令,访问指定的寄存器和存储区。跳转到第一页●硬件的第一次延伸。●系统将一些与硬件紧密相关的模块●中断处理程●设备驱动程序●时钟管理●内核在执行某些基本操作时,往往是利用原语操作实现的。内核与原语内核原语●原语由若干条指令构成、用于完成一定功能的过程。●原语是“原子操作”。即一个操作中的所有动作,要么全做,要么全不做。换言之,原子操作是一个不可分割的操作。跳转到第一页PP1P2P11P12P13P21P22P121P122进程的创建与撤消进程家族树跳转到第一页●OS初始化●提供用户服务●用户登录●应用请求●执行创建新进程的系统调用●批处理作业的初始化和调度进程创建引起进程创建的事件创建原语要做的工作●申请空白PCB●为进程分配资源●初始化PCB●初始化进程描述信息●初始化处理机状态信息●初始化进程控制信息●将新进程插入就绪队列跳转到第一页进程的撤消●进程正常结束●操作异常退出●时间指标超限引起的进程异常退出●多个进程之间竞争资源●内存的使用出错●父进程的结束●操作系统结束引起进程撤消的事件撤消原语要做的工作●查找撤消进程的PCB●若进程处于执行状态,终止之,并进行进程调度●若有子孙,予以终止●归还资源●从所在队列移出跳转到第一页进程的阻塞与唤醒●请求系统服务●启动某种操作●数据尚未到达●无新工作可做引起进程阻塞的事件阻塞原语要做的工作●停止进程的执行●将进程插入阻塞队列,改变进程在PCB中的状态●重新调度唤醒原语要做的工作●将进程从阻塞队列解下●将进程插入就绪队列●改变进程在PCB中的状态跳转到第一页●检查被挂起进程的状态●如进程处于就绪状态,将进程从就绪状态变为就绪挂起状态●如进程处于阻塞状态,将进程从阻塞状态变为阻塞挂起状态●如进程正在运行,将进程变为就绪挂起状态,并重新调度●检查被激活进程的状态●如进程处于就绪挂起状态,将进程从就绪挂起状态变为就绪状态●如进程处于阻塞挂起状态,将进程从阻塞挂起状态变为阻塞状态●若系统为抢占式系统,则进行进程调度挂起原语要做的工作激活原语要做的工作进程的挂起与激活跳转到第一页由于进程是资源拥有者,因而在进程的创建、撤消和切换中系统必须为之付出较大的时间、空间开销。因此,系统中所设置的进程的数目不宜过多,进程切换的频率不宜过高。这就限制了进程并发程度的提高。●2.4线程的概念线程的引入进程有两个基本属性●进程是拥有资源的独立单位●进程是独立调度和分派的基本单位跳转到第一页线程是进程中的一个实体,是系统独立调度基本单位线程的定义●线程的创建时间比进程短●线程的终止时间比进程短●同进程内的线程切换时间比进程短●同进程内的线程可直接通信,而不通过内核引入线程的重要性线程的定义进程的属性之一跳转到第一页线程的特征并发性共享性动态性结构性跳转到第一页单进程单线程单进程多线程多进程每个进程只有一个线程多进程每个进程有多个线程进程与线程的关系操作系统中的进程和线程可以设计为以上四种跳转到第一页●调度线程调度快,需要空间小。进程因拥有资源,调度时因负担过重而缓慢。●并发性在引入线程的操作系统中,不仅进程之间可以并发执行,一个进程中的多个线程之间亦可并发执行。●拥有资源进程是资源的拥有者●系统开销进程切换的开销远远大于线程切换的开销,线程的切换省去了资源的回收。进程和线程比较跳转到第一页线程的实现用户级线程内核级线程组合的方法●线程的创建、撤消和切换,都不利用系统调用来实现。线程与内核无关,内核也不知道线程的存在●依赖于内核,线程的创建、撤消和切换都由内核实现。在内核中有线程控制块(TCB),内核根据TCB感知线程的存在,并对线程进行控制●在用户级线程和内核级线程之间,定义轻量级进程,每个轻量级进程由一个单独的内核线程来支持跳转到第一页用户级线程与内核级线程线程库用户空间内核空间进程用户级线程内核空间用户空间进程内核级线程(a)用户级线程(b)内核级线程通过API使用线程跳转到第一页用户级线程状态与进程状态的关系运行就绪阻塞运行就绪阻塞运行就绪阻塞线程1线程2进程A(a)运行就绪阻塞运行就绪阻塞运行就绪阻塞线程1线程2进程A(b)运行就绪阻塞运行就绪阻塞运行就绪阻塞线程1线程2进程A(c)运行就绪阻塞运行就绪阻塞运行就绪阻塞线程1线程2进程A(d)下面的例子说明线程调度和进程调度的关系。假设进程A有两个用户级线程:线程1和线程2。其中线程2处于运行状态,由于进程A的某段程序正在运行,因此进程A也处于运行状态。不同的是进程A的运行是内核感知的,而内核不知道进程的两个线程的存在。进程A和进程A的两个线程的状态如图(a)所示,当线程2继续执行时,可能会发生以下几种情况:(1)线程2中执行的程序因需要I/O而进行系统调用,这将导致将控制转移给内核,内核启动I/O操作,并将进程A阻塞,内核将调用另一个进程运行。在此期间,对于线程库管理的线程,即进程A的线程2仍处于运行状态。值得注意的是,线程2的运行状态并不是真正意义上的被处理机执行,而是线程库认为它处于运行状态图(b)。(2)时钟中断把控制权传递给内核,内核确定当前正在运行的进程A已经用完了它的时间片,内核将进程A置于就绪状态,并切换另一个进程。此时,线程库管理的线程,即进程A的线程2仍处于运行状态,相应的状态见图(c)。(3)线程2运行到达某处,它需要进程A的线程1所执行的某些数据,线程2进入阻塞状态,线程1从就绪状态转换为运行状态,进程A自身仍处于运行状态中,相应的状态见图d)。在图(b)和图(c)所示的两种状态中,当内核把控制又重新切换给进程A时,进程A中的线程2会恢复执行。另外需要注意的是,执行线程库中的代码时可以被中断,可能由于线程所在进程A的时间片用完了,也可能由于被一个高优先级的线程所剥夺。在中断时,进程中的线程可能处于线程的切换过程中,即正在从一个线程切换到另一个线程。当该进程恢复执行时,完成线程的切换,并把控制权交给进程中的一个新选中的线程。跳转到第一页调度与切换速度用户级线程与内核级线程的比较系统调用线程执行时间用户级线程的切换,因发生在一个应用进程之间,因此不仅无须通过中断进入OS内核,而且切换的规则也比较简单。用户级线程比内核级线程切换速度快用户级线程在调用系统调用时,系统将看成是其所在进程的行为。而内核级线程的系统调用是以线程为单位。因此比较轻装。用户级线程不如内核级线程用户级线程不如内核级线程合理跳转到第一页●P552318课堂练习
本文标题:第2章 进程管理1――进程描述与控制
链接地址:https://www.777doc.com/doc-3402074 .html