资源预览内容
第1页 / 共38页
第2页 / 共38页
第3页 / 共38页
第4页 / 共38页
第5页 / 共38页
第6页 / 共38页
第7页 / 共38页
第8页 / 共38页
第9页 / 共38页
第10页 / 共38页
第11页 / 共38页
第12页 / 共38页
第13页 / 共38页
第14页 / 共38页
第15页 / 共38页
第16页 / 共38页
第17页 / 共38页
第18页 / 共38页
第19页 / 共38页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第二章 进 程 管 理,第二章 进程管理,2.1,进程的基本概念,2.2,进程控制,2.3,进程同步,2.4,经典进程的同步问题,2.5,进程通信,2.1,进程的基本概念,什么是进程?,小结,程序并发执行时的这些特征,这说明通常的程序是不能参与并发执行的,因为程序执行的结果是不可再现的;这样程序的运行就失去了意义,为了使程序能并发执行,引入,了“进程”,的概念。,程序是存在磁盘的文件时静态的。,进程的定义,静止的程序,无法描述正在运行程序的活动规律,以及系统内的动态情况。,进程的特征,结构特征,进程是为描述了正在运行的程序的若干指标。从实现的角度是一个结构体数据结构 称为,PCB(,进程控制块,),并发性,独立性,独立运行,独立获得资源的基本单位,异步性,进程在计算机系统中推进的速度不可预知,5,)动态性(最基本特征,具有生命周期,创建 调度 暂停 撤销,3.,进程与程序的区别与联系,动态与静态,本质区别,进程是动态的,程序是静态的,进程可以并发执行,程序不能,进程是竞争计算机系统资源、进行调度的基本单位,进程与程序有联系,进程既然是动态的,因此它有若干状态,4,进程的三种基本状态,就绪状态,(,Ready),万事俱备,只欠,CPU;,就绪队列;等待调度程序进行调度,执行,/,运行状态,(,Running),占有,CPU,,,正在运行(单,CPU,系统,任何时刻只有一个进程在运行,),阻塞状态,(,Blocked),运行进程发生某事件(请求,I/O,)而暂停执行,,自愿,放弃,CPU,进入阻塞状态;当,I/0,完成,进入就需状态。,当进程执行过程中,,CPU,被,强行掠夺,,那么进程进入什么状态呢?,强行掠夺,:在分时系统中,采用的是时间片机制,当进程时间片完了,那么,CPU,将被掠夺,或者由于更高级别的进程进来获得了,CPU,,当前的进程也被剥夺,CPU?,此时进程进入什么状态呢?,就绪,阻塞,执行,时间片完,进程调度,I/O,完成,I/O,请求,进程的三种基本状态及其转换图,5.,新状态和终止状态,新状态(,New,),建立 就绪队列,新状态,终止状态(,Terminated,),进程结束 撤销,终止状态,进程状态变迁图,阻塞,执行,时间片完,进程调度,I/O,完成,I/O,请求,新,进程,结束,就绪,进程状态的转换,新就绪,就绪执行,执行就绪,执行阻塞,阻塞就绪,执行终止,就绪阻塞,阻塞执行,6,挂起状态,挂起状态的产生,进程不断被创建,内存资源越来越有限,此时有重要的进程必须被创建,而内存已没有足够的空间,可考虑把一部分进程,送离内存。这部分就叫挂起。,进程状态的转换,引入挂起状态后,将又增加从挂起状态到非挂起状态的装换;,6,挂起状态,进程状态的转换,活动,就绪,静止,就绪,从,处于未被挂起的就绪状态称为“活动就绪”,当被挂起后,该进程就装变为“静止就绪”,活动,阻塞,静止,阻塞,从,处于未被挂起的阻塞状态称为“活动就绪”,当被挂起后,该进程就装变为“静止阻塞”,静止,就绪,活动,就绪,被激活,静止,阻塞,活动,阻塞,被激活,6,挂起状态,引入挂起状态的原因,终端用户的请求,用户编程过程中,调用了挂起代码,父进程,请求,A,进程中创建,B,进程,则,A,与,B,是父子关系,对,B,的控制和管理由,A,负责;,负荷调节的需要,操作系统的需要,操作系统修改进程时,可能将进程挂起,具有挂起状态的进程状态图,活动,就绪,静止,就绪,执行,挂起,激活,完成,IO,挂起,活动,阻塞,静止,阻塞,挂起,激活,完成,IO,请求,I/O,2.1.6,进程控制块,PCB,1.,进程控制块的作用,2.,进程控制块中的信息,3.,进程控制块的组织方式,1.,进程控制块的作用,(1).,定义,进程控制块(,PCB:Process Control Block,),是进程实体的一部分,是操作系统中最重要的记录型数据结构,其中记录了,OS,所需的、用于描述进程情况及控制进程运行的全部信息。,(2).,作用,使一个在多道程序环境下不能独立运行的程序,(,含数据,),,成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。,OS,是根据,PCB,来对并发执行的进程进行控制和管理的。,PCB,是,OS,感知进程存在的唯一标志。,创建进程:建立,PCB,撤销进程:收回,PCB,1.,进程控制块(,PCB,)的作用,作用,(,对正在运行的程序的描述,),1,、是进程存在的唯一标识。,2,、操作系统是通过进程控制块来对进程进行控制和管理的。,PCB,是,OS,感知进程存在的唯一标志。,创建进程:建立,PCB,撤销进程:收回,PCB,1),进程标识符,进程标识符用于惟一地标识一个进程。一个进程通常有两种标识符:,(1),内部标识符,在所有的操作系统中,都为每一个进程赋予一个惟一的数字标识符,它通常是一个进程的序号。设置内部标识符主要是为了方便系统使用。,(2),外部标识符,它由创建者提供,通常是由字母、数字组成,往往是由用户,(,进程,),在访问该进程时使用。为了描述进程的家族关系,还应设置父进程标识及子进程标识。此,外,还可设置用户标识,以指示拥有该进程的用户。,2.,进程控制块中的信息(,1,),2),处理机状态,处理机状态信息主要是由处理机的各种寄存器中的内容组成的。,通用寄存器,又称为用户可视寄存器,它们是用户程序可以访问的,用于暂存信息;,指令计数器,其中存放了要访问的下一条指令的地址;,程序状态字,PSW,其中含有状态信息,如条件码、执行方式、中断屏蔽标志等;,用户栈指针,每个用户进程都有一个或若干个与之相关的系,统栈,用于存放过程和系统调用参数及调用地址。栈指针指向该栈的栈顶。,2.,进程控制块中的信息(续,2,),3),进程调度信息,在,PCB,中还存放一些与进程调度和进程对换有关的信息,包括:,进程状态,指明进程的当前状态,作为进程调度和对换时的依据;处于阻塞的不能被调度,只有就绪的才能被调度,进程优先级,用于描述进程使用处理机的优先级别的一个整数,优先级高的进程应优先获得处理机;,进程调度所需的其它信息,它们与所采用的进程调度算法有关,比如,采用先来先调度的算法,那必须知道进程创建的时间先后顺序,事件,是指进程由执行状态转变为阻塞状态所等待发生的事件,即,阻塞原因。,2.,进程控制块中的信息(续,3,),4),进程控制信息,程序和数据的地址,是指进程的程序和数据所在的内存或外存地,(,首,),址,以便再调度到该进程执行时,能从,PCB,中找到其程序和数据;,进程同步和通信机制,指实现进程同步和进程通信时必需的机制,两个进程通信的方式,资源清单,是一张列出了除,CPU,以外的、进程所需的全部资源及已经分配到该进程的资源的清单;,链接指针,它给出了本进程,(,PCB),所在队列中,的下一个进程的,PCB,的首地址。,指向同种状态的下一个进程。,2.,进程控制块中的信息(续,4,),3.,进程控制块的组织方式,1),链接方式,通过进程控制块中的指针,将进程控制块排成几个队列:就绪队列,阻塞队列,空闲队列,2),索引方式,系统建立几张索引表:就绪进程索引表,阻塞进程索引表,空闲进程控制块索引表,保留各索引表的首地址。,1),链接方式,PCB1,4,PCB2,PCB3,PCB4,PCB5,PCB6,PCB7,PCB8,PCB9,3,0,8,7,9,0,1,执行指针,就绪队列指针,阻塞队列指针,空闲队列指针,PCB,链接队列示意图,执行指针,就绪索引表,PCB1,PCB2,PCB3,PCB4,PCB5,PCB6,PCB7,阻塞索引表,就绪表指针,阻塞表指针,按索引方式组织,PCB,2.2,进 程 控 制,主要任务:创建和撤销进程,并实现进程的状态转换,一般由操作系统内核实现。,2.2.1,进程的创建,2.2.2,进程的终止,2.2.3,进程的阻塞与唤醒,2.2.4,进程的挂起与激活,2.2.1,进程的创建,1.,进程图,(,Process Graph),2.,引起创建进程的事件,3.,进程的创建,(,Creation of Progress),2.,进程的创建过程,创建原语,Create,(),,,步骤如下:,(1),申请空白,PCB,。,分配唯一的数字标识符,(2),为新进程分配资源。,(3),初始化进程控制块,PCB,。,(,标识符、,CPU,状态、进程控制信息,),(4),将新进程插入就绪队列,如果进程就绪队列能够接纳新进程,便将新进程插入就绪队,列。,3,进程的终止过程(),(1),根据被终止进程的标识符,从,PCB,集合中检索出该进程的,PCB,,,从中读出该进程的状态。,(2),若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。,(3),若该进程还有子孙进程,还应将其所有子孙进程予以终止,以防他们成为不可控的进程。,(4),将被终止进程所拥有的全部资源,或者归还给其父进程,或者归还给系统。,(5),将被终止进程,(,它的,PCB),从所在队列,(,或链表,),中移出,等待其他程序来搜集信息。,4,、进程阻塞过程,正在执行的进程,当发现上述某事件时,由于无法继续执行,于是进程便通过调用阻塞原语,block,把自己阻塞,。可见,进程的阻塞是进程自身的一种主动行为。进入,block,过程后,由于此时该进程还处于执行状态,所以应先立即停止执行,把进程控制块中的现行状态由“执行”改为阻塞,并将,PCB,插入阻塞队列。如果系统中设置了因不同事件而阻塞的多个阻塞队列,则应将本进程插入到具有相同事件的阻塞,(,等待,),队列。最后,转到进程调度程序进行重新调度,将处理机分配给另一就绪进程,并进行切换,亦即,保留被阻塞进,程的处理机状态,(,在,PCB,中,),,再按新进程的,PCB,中的处理机状态设置,CPU,的环境。,进程唤醒过程,当被阻塞进程所期待的事件出现时,如,I/O,完成或其所期待的数据已经到达,则由有关进程,(,比如,用完并释放了该,I/O,设备的进程,),调用唤醒原语,wakeup(),,,将等待该事件的进程唤醒。唤醒原语执行的过程是:首先把被阻塞的进程从等待该事件的阻塞队列中移出,,将其,PCB,中的现行状态由阻塞改为就绪,然后再将该,PCB,插入到就绪队列中。,5,进程的,挂起,与激活,1.,进程的挂起,引起进程挂起的事件:如,用户进程请求将自己挂起,或父进程请求将自己的某个子进程挂起,系统将利用挂起原语,suspend(),将指定进程或处于阻塞状态的进程挂起。,挂起原语的执行过程是:首先检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪;对于活动阻塞状态的进程,则将之改为静止阻塞。为了方便用户或父进程考查该进程的运行情况而把该进程的,PCB,复制到某指定的内存区域。最后,若被挂,起的进程正在执行,则转向调度程序重新调度。,5,进程的挂起与,激活,(续),2.,进程的激活过程,激活进程的事件:如,父进程或用户进程请求激活指定进程,若该进程驻留在外存而内存中已有足够的空间时,则可将在外存上处于静止就绪状态的进程换入内存。这时,系统将利用激活原语,active(),将指定的进程激活。,激活原语的执行过程是:先将进程从外存调入内存,检查该进程的现行状态,若是静止就绪,便将之改为活动就绪;若为静止阻塞便将之改为活动阻塞。假如采用的是抢占调度策略,则每当有新进程进入就绪队列时,应检查是否要进行重新调度,即由调度程序将被激活进程与当前进程进行优先级的比较,如果被激活进程的优先级更低,就不必重新调度;否则,立即剥夺当前进程的运行,把,处理机分配给刚被激活的进程。,作业,1,、试从动态性、并发性、独立性比较进程和程序。,2,、画出三种三个基本状态之间转换图,并用自己的语言简述状态转换原因。,1.,引起创建进程的事件,用户登录,作业调度,提供服务,应用请求,2,引起终止的事件,1
点击显示更多内容>>

最新DOC

最新PPT

最新RAR

收藏 下载该资源
网站客服QQ:3392350380
装配图网版权所有
苏ICP备12009002号-6