操作系统教程3.ppt
《操作系统教程3.ppt》由会员分享,可在线阅读,更多相关《操作系统教程3.ppt(244页珍藏版)》请在课桌文档上搜索。
1、第三章 进程管理,3.0 概述(PROCESS)3.1 进程的描述3.2 进程控制3.3 线程(THREAD)3.4 进程互斥和同步3.5 进程间通信(IPC,INTER-PROCESS COMMUNICATION)3.6 死锁问题(DEADLOCK)3.7 进程其他方面的举例,为了描述程序在并发执行时对系统资源的共享,我们需要一个描述程序执行时动态特征的概念,这就是进程。本章将讨论进程概念、进程控制和进程间关系。,3.0 概述(PROCESS),3.0.1 程序的顺序执行和并发执行3.0.2 进程的定义3.0.3 进程的特征3.0.4 进程与程序的比较,返回,3.0.1 程序的顺序执行和并发
2、执行,程序的执行有两种方式:顺序执行和并发执行。顺序执行是单道批处理系统的执行方式,也用于简单的单片机系统;现在的操作系统多为并发执行,具有许多新的特征。引入并发执行的目的是为了提高资源利用率。,程序:完成所要求的功能时,所应采取的顺序步骤,是执行指令的有序集合。程序的顺序执行:具有独立功能的程序独占CPU直至得到最终结果的过程顺序执行的特征顺序性:按照程序结构所指定的次序(可能有分支或循环)封闭性:独占全部资源,计算机的状态只由于该程序的控制逻辑所决定可再现性:初始条件相同则结果相同。如:可通过空指令控制时间关系。,1.程序的顺序执行,2.程序的并发执行,程序并发执行的目的:提高计算机的处理
3、能力提高资源利用率分为两种形式:多道程序环境下的多道程序的并发执行在某道程序的几个程序段中,包含可同时执行或可颠倒顺序执行的代码。定义:程序的并发执行是指一组在逻辑上互相独立的程序或程序段在执行时间上客观上互相重叠,即一个程序或程序段的执行尚未结束,另一个程序(段)的执行已经开始的执行方式。,程序的并发执行-例,并发:在一段时间内的同时并行并行:在同一物理时刻的同时,用户程序监督程序磁盘设备磁带设备用户程序A用户程序B监督程序磁盘设备磁带设备,时间t,CPU,外设,CPU,外设,请求带输入,启动带,磁带输入,结束中断,中断处理,请求磁盘输入,启动盘,结束中断,中断处理,请求盘输入,启动盘,调度
4、B,请求带输入,启动带,结束中断,中断处理调度A,结束中断,中断处理调度B,并发执行的特征,并发执行的特征间断(异步)性:走走停停,一个程序可能走到中途停下来,失去原有的时序关系;失去封闭性:共享资源,受其他程序的控制逻辑的影响。如:一个程序写到存储器中的数据可能被另一个程序修改,失去原有的不变特征。失去可再现性:失去封闭性 失去可再现性;外界环境在程序的两次执行期间发生变化,失去原有的可重复特征。,不加控制的并发执行所带来的影响,例:利用堆栈管理一块内存区中各数据块的使用情况。用getaddr(top)从栈顶取出相应的内存块的地址。用reladdr(blk)将数据块的地址(以bkl为地址)放
5、入堆栈中。,proc getaddr(top)Begin local r;1.1 r stop;1.2 top top+1;1.3 return(r);end;Proc reladdr(blk)Begin 2.1 top top-1;2.2 stop blk;End;,分析getaddr(top)与reladdr(blk)的并发执行,2.1 top top-1,1.1 r stop,1.2 top top+1,1.3 return(r),2.2 stop blk,blk,例的说明,getaddr()和reladdr()的并发执行,产生了错误的结果,不同执行顺序得到不同的结果,程序的执行不再具有
6、封闭性和结果的可再现性。原因:对公共变量(堆栈或堆栈指针)的共享引起的。为了获得结果的可再现性,程序的并发执行是需要条件的。,并发执行的条件:达到封闭性和可再现性,程序 P(i)针对的读变量集和写变量集 为R(i)和W(i)任意两个程序P(i)和P(j)可并发的条件:R(i)W(j)=,andW(i)R(j)=,andW(i)W(j)=,并发执行失去封闭性的原因是共享资源的影响,去掉这种影响就行了。1966年,由Bernstein给出并发执行的条件。(这里没有考虑执行速度的影响。),前两条保证一个程序的两次读之间数据不变化;最后一条保证写的结果不丢掉。,现在的问题是这个条件不好检查。,3.0.
7、2 进程的定义,进程描述了程序的动态执行过程;它对应虚拟处理机、虚拟存储器和虚拟外设等资源的分配和回收;反映系统中程序执行的并发性、随机性和资源共享引入多进程,提高了对硬件资源的利用率,但又带来额外的空间和时间开销,增加了OS 的复杂性;,1.进程的定义,一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。简言之,进程是程序的一次执行活动。,3.0.2.进程的特征,动态性:进程对应程序的执行进程是动态产生,动态消亡的进程在其生命周期内,在三种基本状态之间转换独立性:各进程的地址空间相互独立,除非采用进程间通信手段;并发性:任何进程都可以同其他进程一起向前推进异步性:每个进程都以其相对
8、独立的不可预知的速度向前推进结构化:进程=代码段+数据段+PCB,3.0.3.进程与程序的区别,进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和可以复制。进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长久保存。进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)。进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。,3.0.3.进程与程序的区别,举例:正在运行的Web浏览器是一个进程,正在运行的Windows资源管理器是一个进程,正在
9、运行的Visual C编程环境也是一个进程在计算机中处于运行状态的任何一个程序都是一个进程,一个进程拥有内存、CPU时间等一系列资源程序是指计算机指令的集合,而进程是指执行这个程序所需的各种资源的集合。,作业、作业步和进程的关系,用户,线程,进程,作业步,作业,作业步,进程,线程,由用户创建,由系统创建,由用户指定,.,.,.,3.1 进程的描述,3.1.1 进程的组成3.1.2 进程控制块PCB3.1.3 进程上下文3.1.4 进程的状态及其相互转换3.1.5 进程,3.1.1 进程的组成,进程=程序+数据+进程控制块PCB程序是进程的不可缺少的组成部分;如果一个程序段允许被共享,则它应该是
10、可重入的,或纯代码段数据是进程处理的对象进程控制块是进程的控制结构,包含了进程的描述信息、控制信息和资源信息以及现场保护区,是进程的唯一标识,系统通过PCB管理和控制进程。,3.1.2 进程控制块PCB(PCB,process control block),进程控制块是由OS维护的用来记录进程相关信息和管理进程设置的一个专门的数据结构。包含了进程的描述信息、控制信息和资源信息以及现场保护区;PCB是进程动态特性的集中反映。系统通过PCB感知进程的存在,通过PCB中所包含的各项变量的变化,掌握进程的状态以达到控制进程活动的目的;PCB结构的全部或部分常驻内存;PCB随进程的创建而填写,随进程的撤
11、消而释放;系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志进程与PCB是一一对应的,进程控制块的内容,进程描述信息:进程标识符(process ID),唯一,通常是一个整数;进程名,通常基于可执行文件名用户标识符(user ID);进程组关系(process group)进程控制信息:当前状态;优先级(priority);代码执行入口地址;程序的外存地址;运行统计信息(执行时间、页面调度);进程间同步和通信;阻塞原因,资源占用信息:虚拟地址空间的现状、打开文件列表CPU现场保护结构:寄存器值(通用、程序计数器PC、状态PSW,地址包括栈指针),3.1.3 进程上下文,用户
12、级上下文:进程的用户地址空间(包括用户栈各层次),包括用户正文段、用户数据段和用户栈;寄存器级上下文:程序寄存器、处理机状态寄存器、栈指针、通用寄存器的值;系统级上下文:静态部分(PCB和资源表格)动态部分:核心栈(核心过程的栈结构,不同进程在调用相同核心过程时有不同核心栈),进程上下文是对进程执行活动全过程的静态描述。进程上下文由进程的用户地址空间内容、硬件寄存器内容及与该进程相关的核心数据结构组成(正文段、数据集、堆栈)。,PCB,各种控制表指针,栈区,数据集,正文集,各种寄存器,进程上下文结构,3.1.3 进程上下文,PCB的组织方式,PCB表:系统把所有PCB组织在一起,并把它们放在内
13、存的固定区域,就构成了PCB表PCB表的大小决定了系统中最多可同时存在的进程个数,称为系统的并发度,PCB的组织方式,链表:同一状态的进程其PCB成一链表,多个状态对应多个不同的链表各状态的进程形成不同的链表:就绪链表、阻塞链表索引表:同一状态的进程归入一个index表(由index指向PCB),多个状态对应多个不同的index表各状态的进行形成不同的索引表:就绪索引表、阻塞索引表,进程控制块的链式组织,3.1.4 进程的状态及其转换,3.1.4.1 核心态和用户态3.1.4.2 进程的三种基本状态3.1.4.3 五状态进程模型3.1.4.4 挂起进程模型,3.1.4.1 核心态和用户态,进程
14、的执行状态可分为用户执行状态和系统执行状态用户执行状态,又称用户态,进程的用户程序段执行时,该程序处于用户态。用户态时不可直接访问受保护的OS代码;系统执行状态,又称系统态,核心态,进程的系统程序执行时,该进程处于系统态。核心态时可以执行OS代码,可以访问全部进程空间。划分用户态和系统态的原因:把用户程序和系统程序分开,以利程序的保护和共享但增加了系统复杂度和系统开销,3.1.4.2 进程的三种基本状态,不同系统设置的进程状态数目不同 1.进程的三种基本状态:就绪态、执行态、等待态就绪态(Ready):一个进程已经具备运行条件,但由于无CPU暂时不能运行的状态(当调度给其CPU时,立即可以运行
15、。“万事俱备,只欠东风”。位于“就绪队列”中执行态(Running):进程占有了包括CPU在内的全部资源,并在CPU上运行等待态(Blocked):阻塞态、挂起态、封锁态、冻结态、睡眠态。指进程因等待某种事件的发生而暂时不能运行的状态(即使CPU空闲,该进程也不可运行)。处于等待态的进程位于等待队列中。,2.基本状态间的转换,运行Running,就绪Ready,等待Blocked,Dispatch,Timeout,Event,Wait,Event,Occurs,在进程运行过程中,由于进程自身进展情况及外界环境的变化,这三种基本状态可以依据一定的条件相互转换 就绪运行:调度程序选择一个新的进程运
16、行 运行就绪:运行进程用完了时间片运行进程被中断,因为一高优先级进程处于就绪状态 运行等待:当一进程等待某一事件的发生时,如OS尚未完成服务对一资源的访问尚不能进行初始化I/O 且必须等待结果等待某一进程提供输入(IPC)等待就绪:当所等待的事件发生时,进程状态转换,其他状态创建状态:创建(新new)状态OS 已完成为创建一进程所必要的工作已构造了进程标识符已创建了管理进程所需的表格但还没有允许执行该进程(尚未同意)因为资源有限,OS所需的关于该进程的信息保存在主存中的进程表中,但进程自身还未进入主存,也没有为与这个程序相关的数据分配空间,程序保留在辅存中。在批处理系统中,提交新作业;为新登陆
17、用户创建进程,为请求打印的进程创建打印进程,请求进程可以继续处理其他事情。终止状态(Exit):终止后进程移入该状态它不再有执行资格表格和其它信息暂时由辅助程序保留例子:为处理用户帐单而累计资源使用情况的财务程序挂起状态:把一个进程从内存转到外存,3.1.4.2 五状态进程模型,五状态模型就是对暂停状态的细化。,Admit,Running,New,Exit,Ready,Blocked,Dispatch,Timeout,Event,Wait,Event,Occurs,Release,Create,Admit,Ready Queue 就绪队列,Dispatch,Time-out 超时,Event
18、Wait,Release,CPU,Blocked Queue 等待队列,Event,Occurs,五状态进程模型(单队列结构),提交,调度,Processor,释放,等待事件,事件发生,Admit,Ready Queue,Dispatch,Time-out,Release,Processor,Event 1 Wait,Event 1 Queue,Event 1,Occurs,Event 2 Wait,Event 2 Queue,Event 2,Occurs,五状态进程模型(多队列结构),3.1.4.3 挂起进程模型,这个问题的出现是由于进程优先级的引入,一些低优先级进程可能等待较长时间,从而被
19、对换至外存。这样做的目的是:提高处理机效率:就绪进程表为空时,要提交新进程,以提高处理机效率;为运行进程提供足够内存:资源紧张时,暂停某些进程,如:CPU繁忙(或实时任务执行),内存紧张用于调试:在调试时,挂起被调试进程(从而对其地址空间进行读写),单挂起进程模型,Admit,Running,Ready,Suspend,Exit,Ready,Blocked,Dispatch,Timeout,Event,Wait,Event,Occurs,Release,Blocked,Suspend,Suspend,New,Event,Occurs,Activate,Suspend,Activate,Admi
20、t,Suspend,双挂起进程模型,1.状态,就绪状态(Ready):进程在内存且可立即进入运行状态;阻塞状态(Blocked):进程在内存,并等待某事件的出现;阻塞挂起状态(Blocked,suspend):进程在外存并等待某事件的出现;就绪挂起状态(Ready,suspend):进程在外存,但只要进入内存,即可运行;,注:这里只列出了意义有变化或新的状态。,2.相关的转换,挂起(Suspend):把一个进程从内存转到外存;可能有以下几种情况:阻塞到阻塞挂起:没有进程处于就绪状态或就绪进程要求更多内存资源时,会进行这种转换,以提交新进程或运行就绪进程;就绪到就绪挂起:当有高优先级阻塞(系统认
21、为会很快就绪的)进程和低优先级就绪进程时,系统会选择挂起低优先级就绪进程;运行到就绪挂起:对抢先式分时系统,当有高优先级阻塞挂起进程因事件出现而进入就绪挂起时,系统可能会把运行进程转到就绪挂起状态;,2.相关的转换(续),激活(Activate):把一个进程从外存转到内存;可能有以下几种情况:就绪挂起到就绪:没有就绪进程或挂起就绪进程优先级高于就绪进程时,会进行这种转换;阻塞挂起到阻塞:当一个进程释放足够内存时,系统会把一个高优先级阻塞挂起(系统认为会很快出现所等待的事件)进程转为阻塞状态;事件出现(Event Occurs):进程等待的事件出现;如:操作完成、申请成功等;可能的情况有:阻塞到
22、就绪:针对内存进程的事件出现;阻塞挂起到就绪挂起:针对外存进程的事件出现;收容(Admit):收容一个新进程,进入就绪状态或就绪挂起状态。进入就绪挂起的原因是系统希望保持一个大的就绪进程表(挂起和非挂起);,【练习思考题】,如果系统中有N个进程,运行的进程最多几个,最少几个;就绪进程最多几个最少几个;等待进程最多几个,最少几个?有没有这样的状态转换,为什么?等待运行;就绪等待一个状态转换的发生,是否一定导致另一个转换发生,列出所有的可能举3个日常生活中类似进程的例子,3.2 进程控制,3.2.1 进程控制的功能3.2.2 进程的主要原语3.2.3 UNIX进程管理3.2.4 NT线程的挂起和激
23、活3.2.6 Windows NT进程管理举例,返回,3.2.1 进程控制的功能,完成创建和撤消进程,完成进程状态的转换。,原语(primitive):由若干条指令构成的“原子操作(atomic operation)”过程,作为一个整体而不可分割-要么全都完成,要么全都不做。许多系统调用就是原语。,注意:系统调用并不都是原语。进程A调用read(),因无数据而阻塞,在read()里未返回。然后进程B调用read(),此时read()被重入。系统调用不一定一次执行完并返回该进程,有可能在特定的点暂停,而转入到其他进程。,3.2.2 进程控制的主要原语,进程创建与撤消原语 进程阻塞与唤醒原语 进程
24、挂起与激活原语,1.进程创建与撤消原语,为进程创建一个PCB赋予一个统一进程标识符为进程映象分配空间初始化进程控制块设置相应的链接把新进程加到就绪队列的链表中插入家族队列,主要任务:,需要的参数:被创建进程的外部标识符n处理机的初始状态S0(包括CPU的工作方式、进程起始地址及屏蔽码等);进程优先级P0;初始内存数M0;其它所需资源清单R0。i.sdata是一个与进程状态有关的指针。,1)进程创建原语:,进程树,进程树是有向树父子关系表示创建与被创建的关系父子关系不表示执行的先后关系,继承(inherit)的信息:子进程可以从父进程中继承用户标识符、环境变量、打开文件、文件系统的当前目录、控制
25、终端、已经连接的共享存储区、信号处理例程入口表等不被继承信息:进程标识符,父进程标识符spawn创建并执行一个新进程;新进程与父进程的关系可有多种:覆盖(_P_OVERLAY)、并发(_P_NOWAIT or _P_NOWAITO)、父进程阻塞(_P_WAIT)、后台(_P_DETACH)等。,产生新进程,不产生新进程,复制现有进,程的,上下文,fork,(新进程的系统上,下文会有不同),加载程序,spawn,(创建新进程并加载新程序),exec,(加载新程序并,覆盖自身),子进程的创建有3种形式,创建原语的描述,Procedure Create(n,S0,P0,M0,R0)Begin i:=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 教程
链接地址:https://www.desk33.com/p-250620.html