《操作系统课件os02进程控制.ppt》由会员分享,可在线阅读,更多相关《操作系统课件os02进程控制.ppt(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、操作系统操作系统Operating SystemsWINDOWSWINDOWSUNIXUNIXLINUXLINUXOS2OS2VxWorksVxWorksMacOSMacOS第二章第二章进程进程管理管理第二章第二章进程进程管理管理2.1进程的基本概念进程的基本概念2.2进程控制进程控制2.3进程同步进程同步2.4经典进程的同步问题经典进程的同步问题2.5进程通信进程通信2.6线程线程2.1进程的基本概念进程的基本概念2.1.1 2.1.1 程序的顺序执行及其特征程序的顺序执行及其特征S1:a:=x+y;S2:b:=a-5;S3:c:=b+1;1.1.顺序性顺序性-顺序执行;顺序执行;2.2.封
2、闭性封闭性-程序运行时独占全机资源,不受外界影响;程序运行时独占全机资源,不受外界影响;3.3.可再现性可再现性-程序重复执行时将得到相同结果;程序重复执行时将得到相同结果;S1S2S3ab2.1.3 2.1.3 程序的并发执行及其特征程序的并发执行及其特征对对于具有下述四条于具有下述四条语语句的程序段:句的程序段:S1:a:=x+2 S1:a:=x+2 S2:b:=y+4 S2:b:=y+4 S3:c:=a+b S3:c:=a+b S4:d:=c+b S4:d:=c+b S1S3S4acS2bd程序的并发执行时的特征程序的并发执行时的特征间断性间断性-并发执行导致间断性;并发执行导致间断性;
3、失去封闭性失去封闭性-多个程序共享资源,受外界影响;多个程序共享资源,受外界影响;不可再现性不可再现性-程序重复执行时可能到不同结果;程序重复执行时可能到不同结果;缓存区缓存区缓存区缓存区BUFBUFP1P2案例案例例如:某交通路口设置了一个自动计数系统,该系统由观例如:某交通路口设置了一个自动计数系统,该系统由观察者和报告者共同组成。察者和报告者共同组成。观察者观察者 报告者报告者 交通路口自动计数系统交通路口自动计数系统观察到一辆卡车观察到一辆卡车将计数值将计数值N累加累加1将计数值将计数值N清清0输出计数值输出计数值N7 7Procedure观察者观察者begin 观察到一辆卡车;观察到
4、一辆卡车;N=N+1;end Procedure报告者报告者begin printN;N=0;end 假设某时刻假设某时刻N的值为的值为m,可能出现下面情况:,可能出现下面情况:print的的N值值N的最终取值的最终取值(1)m+10(2)m1(3)m0观察者观察者;报告者;报告者报告者;报告者;观察者观察者报告者报告者PrintN;观察者观察者N=N+1;报告者报告者N=0操作系统为什么要引入进程概念操作系统为什么要引入进程概念?刻画系统的动态性,发挥系统的并发性,提高资源利用率。刻画系统的动态性,发挥系统的并发性,提高资源利用率。程序是并发执行的,即不是连续而是走走停停的。程序是并发执行的
5、,即不是连续而是走走停停的。程序的并发执行引起资源共享和竞争问题,执行的程序不程序的并发执行引起资源共享和竞争问题,执行的程序不再处在封闭环境中。再处在封闭环境中。“程序程序”自身只是计算任务的指令和数据的描述,是静态概自身只是计算任务的指令和数据的描述,是静态概念念无法刻画程序的并发特性,无法刻画程序的并发特性,系统需要寻找一个能描述程序动态执行过程的概念系统需要寻找一个能描述程序动态执行过程的概念进程的特征进程的特征结构特征结构特征动态性动态性并发性并发性独立性独立性异步性异步性进程的特征进程的特征结构特征结构特征为使程序为使程序(含数据含数据)能独立运行,应为之配置一能独立运行,应为之配
6、置一进程控制进程控制块(块(PCB,ProcessControlBlock);由程序段、相关的数据段和由程序段、相关的数据段和PCB三部分便构成了三部分便构成了进程进程实体实体。PCB常驻内存常驻内存 程序段程序段 数据段数据段PCB动态特征的集中反映动态特征的集中反映描述要完成的功能描述要完成的功能操作对象及工作区操作对象及工作区进程的特征进程的特征动态性动态性进程的最基本的特征进程的最基本的特征。程序只是一组有序指令的集合,并存放于某种介质上,程序只是一组有序指令的集合,并存放于某种介质上,其本身并不具有运动的含义,因而是静态的。其本身并不具有运动的含义,因而是静态的。进程实体有一定的生命
7、期:进程实体有一定的生命期:“它由创建而产生,由它由创建而产生,由调度调度而执行,由撤消而消亡而执行,由撤消而消亡”作业调度与进程调度作业调度与进程调度进程的特征进程的特征并发性并发性并发性是进程的并发性是进程的重要重要特征,也成为特征,也成为OSOS的的重要重要特征。特征。引引入入进进程程的的目目的的:正正是是为为了了使使其其进进程程实实体体能能和和其其它它进进程程实体并发执行;实体并发执行;独立性独立性在在传统的传统的OS中,独立性是指进程实体是一个能独立运行、中,独立性是指进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。独立分配资源和独立接受调度的基本单位。异步性异步性进
8、进程程按按各各自自独独立立的的、不不可可预预知知的的速速度度向向前前推推进进,或或说说进进程实体按异步方式运行。程实体按异步方式运行。进程的定义进程的定义较典型的进程定义有:较典型的进程定义有:(1 1)进程是程序的一次执行。)进程是程序的一次执行。(2 2)进进程程是是一一个个程程序序及及其其数数据据在在处处理理机机上上顺顺序序执执行行时时所所发发生的活动。生的活动。(3 3)进进程程是是程程序序在在一一个个数数据据集集合合上上运运行行的的过过程程,它它是是系系统统进行资源分配和调度的一个独立单位。进行资源分配和调度的一个独立单位。我们可以把我们可以把传统传统OS中的进程定义为:中的进程定义
9、为:“进进程程是是进进程程实实体体的的运运行行过过程程,是是系系统统进进行行资资源源分分配配和调度的一个独立单位和调度的一个独立单位”进程的三种基本状态进程的三种基本状态就绪就绪(Ready)(Ready)状态状态进程已分配到除进程已分配到除CPU以外的所有必要资源。以外的所有必要资源。就绪队列就绪队列执行状态执行状态进程已获得进程已获得CPUCPU,其程序正在执行。,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态;在单处理机系统中,只有一个进程处于执行状态;在多处理机系统中,则有多个进程处于执行状态。在多处理机系统中,则有多个进程处于执行状态。阻塞状态阻塞状态正在执行的进程由于发
10、生某事件而暂时无法继续执行时,正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态。便放弃处理机而处于暂停状态。引起阻塞的事件引起阻塞的事件进程三个基本状态及其转换进程三个基本状态及其转换执行执行就绪就绪阻塞阻塞进进程程调调度度时时间间片片完完I/OI/O请求请求I/OI/O完成完成挂起状态挂起状态引入挂起状态的原因引入挂起状态的原因(1)终端用户的请求。终端用户的请求。(2)父进程请求。父进程请求。(3)负荷调节的需要。负荷调节的需要。为了让某些进程暂时不参与进程调度,为了让某些进程暂时不参与进程调度,对换到外存中,对换到外存中,对换到外存中,对换到外存中,释放它占有
11、的资源释放它占有的资源(4)操作系统的需要。操作系统的需要。挂起状态挂起状态(静止状态静止状态)非挂起状态非挂起状态(活动状态活动状态)具有挂起状态的进程状态图具有挂起状态的进程状态图释放释放激激活活挂挂起起调调度度时时间间片片完完I/OI/O请求请求执行执行活动活动就绪就绪释放释放静止静止就绪就绪激激活活挂挂起起静止静止阻塞阻塞活动活动阻塞阻塞挂挂起起创建状态和终止状态创建状态和终止状态创建状态创建状态为一个新进程创建为一个新进程创建PCB,并填写必要的管理信息;,并填写必要的管理信息;该进程所必需的资源或其它信息尚未分配该进程所必需的资源或其它信息尚未分配终止状态终止状态当当一一个个进进程
12、程到到达达了了自自然然结结束束点点,或或是是出出现现了了无无法法克克服服的的错错误误,或或是是被被操操作作系系统统所所终终结结,或或是是被被其其他他有有终终止止权权的的进程所终结,它将进入终止状态。进程所终结,它将进入终止状态。终止态的进程不能再执行。终止态的进程不能再执行。一一旦旦其其它它进进程程完完成成了了对对终终止止状状态态进进程程的的信信息息提提取取之之后后,操作系统将删除该进程。操作系统将删除该进程。进程的五种基本状态及转换进程的五种基本状态及转换执行执行就绪就绪阻塞阻塞进进程程调调度度时时间间片片完完I/OI/O请求请求I/OI/O完成完成创建创建终止终止许许可可结束结束具有创建、
13、终止和挂起状态的进程状态图具有创建、终止和挂起状态的进程状态图释放释放激激活活挂挂起起调调度度时时间间片片完完I/OI/O请求请求执行执行活动活动就绪就绪释放释放静止静止就绪就绪激激活活挂挂起起静止静止阻塞阻塞活动活动阻塞阻塞挂挂起起创建创建许许可可许许可可终止终止结束结束进程控制块进程控制块进程控制块进程控制块PCB(ProcessControlBlock)系统为每个进程定义的一个数据结构系统为每个进程定义的一个数据结构PCB中记录了操作系统所需的、用于描述进程的当前中记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的全部信息。情况以及控制进程运行的全部信息。PCB是是进程存在的
14、惟一标志进程存在的惟一标志。最重要的最重要的记录型记录型数据结构。数据结构。PCB应常驻内存应常驻内存专门开辟的专门开辟的PCB区内区内进程控制块中的信息进程控制块中的信息1.1.进程标识符进程标识符2.2.处理机状态处理机状态3.3.进程调度信息进程调度信息4.4.进程控制信息进程控制信息1 1 进程控制块进程控制块进程标识符进程标识符内部标识符内部标识符一个惟一的一个惟一的数字数字标识符,它通常是一个进程的序号。标识符,它通常是一个进程的序号。外部标识符外部标识符它它由由创创建建者者提提供供,通通常常是是由由字字母母、数数字字组组成成,往往往往是是由由用户用户(进程进程)在访问该进程时使用
15、。在访问该进程时使用。为为了了描描述述进进程程的的家家族族关关系系,还还应应设设置置父父进进程程标标识识及及子子进程标识。进程标识。设置用户标识,以指示拥有该进程的用户。设置用户标识,以指示拥有该进程的用户。2 2 进程控制块进程控制块处理机状态处理机状态处理机状态信息主要是由处理机的各种寄存器中的内容组成的处理机状态信息主要是由处理机的各种寄存器中的内容组成的这些寄存器包括:这些寄存器包括:通用寄存器,它们是用户程序可以访问的,用于暂存信息;通用寄存器,它们是用户程序可以访问的,用于暂存信息;指令计数器,其中存放了要访问的下一条指令的地址指令计数器,其中存放了要访问的下一条指令的地址程序状态
16、字程序状态字PSW,含有状态信息,如条件码、执行方式、中,含有状态信息,如条件码、执行方式、中断屏蔽标志等;断屏蔽标志等;用户栈指针,指每个用户进程都有一个或若干个与之相关的系用户栈指针,指每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址,栈指针指向统栈,用于存放过程和系统调用参数及调用地址,栈指针指向该栈的栈顶。该栈的栈顶。3 3 进程控制块进程控制块进程调度信息进程调度信息在在PCB中还存放一些与进程调度和进程对换有关的信息,中还存放一些与进程调度和进程对换有关的信息,包括:包括:进程状态;进程状态;进程优先级,优先级高的进程应优先获得处理机;进程优先级,
17、优先级高的进程应优先获得处理机;进程调度所需的其它信息,它们与所采用的进程调度算法进程调度所需的其它信息,它们与所采用的进程调度算法有关,比如,进程已等待有关,比如,进程已等待CPU的时间总和、进程已执行的的时间总和、进程已执行的时间总和等;时间总和等;事件,指进程由执行状态转变为阻塞状态所等待发生的事事件,指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因。件,即阻塞原因。4 4 进程控制信息进程控制信息程序和数据的地址,指进程的程序和数据所在的内存或外程序和数据的地址,指进程的程序和数据所在的内存或外存地存地(首首)址址进程同步和通信机制,指实现进程同步和进程通信时必需进程同步和通
18、信机制,指实现进程同步和进程通信时必需的机制;的机制;资源清单,即一张列出了除资源清单,即一张列出了除CPU以外的、进程所需的全部以外的、进程所需的全部资源及已经分配到该进程的资源的清单;资源及已经分配到该进程的资源的清单;链接指针,它给出了本进程链接指针,它给出了本进程(PCB)所在队列中的下一个进所在队列中的下一个进程的程的PCB的首地址。的首地址。进程控制块的组织方式进程控制块的组织方式链接方式链接方式索引方式索引方式链接方式链接方式PCBPCB表表 执行指针执行指针 就绪队列指针就绪队列指针 阻塞队列阻塞队列1 1指针指针 阻塞队列阻塞队列2 2指针指针 空闲队列指针空闲队列指针 链接
19、方式链接方式索引方式索引方式执行指针执行指针 就绪表指针就绪表指针 阻塞表阻塞表1 1指针指针 PCBPCB表表 PCB1 PCB1 PCB2 PCB2 PCB3 PCB3 PCB4 PCB4 PCB5 PCB5 PCB6 PCB6 PCBn PCBn 阻塞索引表阻塞索引表1 1 阻塞表阻塞表2 2指针指针 2.2进程控制进程控制进程控制是进程管理中进程控制是进程管理中最基本最基本的功能。的功能。进程控制任务:进程控制任务:进程创建、终止、进程状态的转变进程创建、终止、进程状态的转变进程控制一般是由进程控制一般是由OS的内核中的的内核中的原语原语来实现的。来实现的。原语是由若干条指令组成的,用
20、于完成一定功能的一个原语是由若干条指令组成的,用于完成一定功能的一个过程。过程。它与一般过程的区别在于:它们是它与一般过程的区别在于:它们是“原子操作原子操作”。因此,。因此,在执行过程中在执行过程中不允许被中断不允许被中断。原子操作在管态下执行,常驻内存。原子操作在管态下执行,常驻内存。进程的创建进程的创建进程树进程树引起创建进程的事件引起创建进程的事件用户登录。用户登录。作业调度。作业调度。提供服务。提供服务。应用请求。应用请求。进程的创建进程的创建调用进程创建原语调用进程创建原语Create()Create()按下述步骤创建一个新进程按下述步骤创建一个新进程:1.申请空白申请空白PCB。
21、2.为新进程分配资源。为新进程分配资源。3.初始化进程控制块:初始化进程控制块:初始化标识信息、初始化处理机状态初始化标识信息、初始化处理机状态信息、初始化处理机控制信息信息、初始化处理机控制信息。4.将新进程插入就绪队列,如果进程就绪队列能够接纳新进将新进程插入就绪队列,如果进程就绪队列能够接纳新进程,程,便将新进程插入就绪队列。便将新进程插入就绪队列。2.2.2进程的终止进程的终止引起进程终止的事件引起进程终止的事件正常结束正常结束异常结束异常结束越界错误。越界错误。保护错。保护错。非法指令。非法指令。特权指令错。特权指令错。运行超时。运行超时。等待超时。等待超时。算术运算错。算术运算错。
22、I/O故障。故障。外界干预外界干预操作员或操作系统干预。操作员或操作系统干预。父进程请求。父进程请求。父进程终止。父进程终止。进程的终止过程进程的终止过程1.从从PCB集合中检索出该进程的集合中检索出该进程的PCB,读出该进程的状态。,读出该进程的状态。2.若若正正处处于于执执行行状状态态,应应立立即即终终止止该该进进程程的的执执行行,并并置置调调度度标标志为真,志为真,重新调度重新调度。3.若还有若还有子孙进程子孙进程,还应将其所有子孙进程,还应将其所有子孙进程予以终止予以终止。4.将将被被终终止止进进程程所所拥拥有有的的全全部部资资源源,或或者者归归还还给给其其父父进进程程,或或者归还给系
23、统。者归还给系统。5.将被终止进程将被终止进程(它的它的PCB)从所在队列从所在队列(或链表或链表)中中移出移出,等待等待其他程序来搜集信息。其他程序来搜集信息。2.2.3进程的阻塞与唤醒进程的阻塞与唤醒引起进程阻塞和唤醒的事件引起进程阻塞和唤醒的事件1)请求系统服务请求系统服务2)启动某种操作启动某种操作3)新数据尚未到达新数据尚未到达4)无新工作可做无新工作可做进程阻塞过程进程阻塞过程进程通过调用阻塞原语进程通过调用阻塞原语block把自己阻塞把自己阻塞:1.该进程还处于该进程还处于执行状态执行状态,应先立即停止执行,应先立即停止执行,2.把进程控制块中的现行状态由把进程控制块中的现行状态
24、由“执行执行”改为阻塞,并将改为阻塞,并将PCB插入插入阻塞队列阻塞队列。应将本进程插入到具有相同事件的阻塞应将本进程插入到具有相同事件的阻塞(等待等待)队列。队列。3.重新调度重新调度,并进行,并进行切换切换。保留被阻塞进程的处理机状态保留被阻塞进程的处理机状态(在在PCB中中)再按新进程的再按新进程的PCB中的处理机状态设置中的处理机状态设置CPU的环境的环境进程唤醒过程进程唤醒过程有关进程调用唤醒原语有关进程调用唤醒原语wakeup(),将等待该事件的进程,将等待该事件的进程唤醒唤醒:1.把被阻塞的进程从等待该事件的阻塞队列中移出把被阻塞的进程从等待该事件的阻塞队列中移出2.将其将其PC
25、B中的现行状态由阻塞改为中的现行状态由阻塞改为就绪就绪3.将该将该PCB插入到就绪队列中。插入到就绪队列中。进程的唤醒进程的唤醒block原语和原语和wakeup原语是一对作用刚好相反的原语。原语是一对作用刚好相反的原语。如果在某进程中调用了阻塞原语,则必须在与之相合作的如果在某进程中调用了阻塞原语,则必须在与之相合作的另一进程中或其他相关的进程中安排唤醒原语另一进程中或其他相关的进程中安排唤醒原语.进程进程A进程进程B等待事件等待事件1调用调用阻塞原语阻塞原语阻塞自己阻塞自己事件事件1发生发生调用调用唤醒唤醒原语原语唤唤醒醒被阻塞进程被阻塞进程2.2.4进程的挂起与激活进程的挂起与激活挂起原
26、语挂起原语suspend()将指定进程或处于阻塞状态的进程挂起。将指定进程或处于阻塞状态的进程挂起。挂起原语的执行过程是:挂起原语的执行过程是:1.检查被挂起进程的状态检查被挂起进程的状态若处于活动若处于活动就绪状态就绪状态,便将其改为,便将其改为静止就绪静止就绪;对于活动阻塞状态的进程,则将之改为对于活动阻塞状态的进程,则将之改为静止阻塞静止阻塞。2.把该进程的把该进程的PCB复制到某指定的内存区域。复制到某指定的内存区域。3.若被挂起的进程正在执行,则转向调度程序若被挂起的进程正在执行,则转向调度程序重新调度重新调度。进程的激活过程进程的激活过程系统将利用激活原语系统将利用激活原语acti
27、ve()将指定进程激活。将指定进程激活。1.将进程从外存调入内存将进程从外存调入内存2.检查该进程的现行状态,若是检查该进程的现行状态,若是静止就绪静止就绪,便将之改为活动,便将之改为活动就绪;若为就绪;若为静止阻塞静止阻塞便将之改为活动阻塞。便将之改为活动阻塞。3.假如采用的是抢占调度策略,则每当有新进程进入就绪队假如采用的是抢占调度策略,则每当有新进程进入就绪队列时,应检查是否要进行重新调度,即由调度程序将被激列时,应检查是否要进行重新调度,即由调度程序将被激活进程与活进程与当前进程进行优先级的比较当前进程进行优先级的比较,如果被激活进程的,如果被激活进程的优先级更低,就不必重新调度;否则,立即剥夺当前进程优先级更低,就不必重新调度;否则,立即剥夺当前进程的运行,把处理机分配给刚被激活的进程。的运行,把处理机分配给刚被激活的进程。作业作业P81,82