好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第二章进程的描述与控制.ppt

69页
  • 卖家[上传人]:cn****1
  • 文档编号:590680767
  • 上传时间:2024-09-15
  • 文档格式:PPT
  • 文档大小:431.50KB
  • / 69 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第二章第二章 进程的描述与控制进程的描述与控制 第二章第二章 进程的描述与控制进程的描述与控制n n2.1 前趋图和程序执行n n2.2 进程的描述n n2.3 进程控制n n2.4 线程的基本概念 2.1 前趋图和程序执行前趋图和程序执行n n一、前趋图的定义n n二、程序的顺序执行n n三、程序的并发执行n n四、程序并发执行的条件 2.1 前趋图的定义前趋图的定义n n前趋图前趋图(Precedence Graph)(Precedence Graph)是一个是一个有向无循环图有向无循环图,记,记为为DAG(DirectedDAG(Directed Acyclic Graph) Acyclic Graph),用于描述进程之间,用于描述进程之间执行的前后关系图中的每个结点可用于描述一个程执行的前后关系图中的每个结点可用于描述一个程序段或进程,乃至一条语句;结点间的有向边则用于序段或进程,乃至一条语句;结点间的有向边则用于表示两个结点之间存在的偏序表示两个结点之间存在的偏序(Partial Order)(Partial Order)或前或前趋关系趋关系(Precedence Relation)“→”(Precedence Relation)“→”。

      n n→→={(Pi, ={(Pi, Pj)|PiPj)|Pi must complete before must complete before PjPj may start}, may start}, 如果如果(Pi, (Pi, PjPj) )∈∈→,→,可写成可写成Pi→PjPi→Pj,称,称PiPi是是PjPj的直接前的直接前趋,而称趋,而称PjPj是是PiPi的直接后继在前趋图中,把没有前的直接后继在前趋图中,把没有前趋的结点称为初始结点趋的结点称为初始结点(Initial Node)(Initial Node),把没有后继,把没有后继的结点称为终止结点的结点称为终止结点(Final Node)(Final Node)n n每个结点还具有一个重量每个结点还具有一个重量(Weight)(Weight),用于表示该结点,用于表示该结点所含有的程序量或结点的执行时间所含有的程序量或结点的执行时间 DAG定义续定义续n n对于上图对于上图(a)(a)所示的前趋图,所示的前趋图, 存在下述前趋关系:存在下述前趋关系:P1→P2, P1→P2, P1→P3, P1→P4, P2→P5, P3→P5, P4→P6, P4→P7, P5→P8, P1→P3, P1→P4, P2→P5, P3→P5, P4→P6, P4→P7, P5→P8, P6→P8, P7→P9, P8→P9P6→P8, P7→P9, P8→P9n n或表示为:P或表示为:P={P1, P2, P3, P4, P5, P6, P7, P8, P9}={P1, P2, P3, P4, P5, P6, P7, P8, P9}  →→={ (P1, ={ (P1, P2), (P1, P3), (P1, P4), (P2, P5), (P3, P5), (P4, P6), (P4, P7),(P5, P2), (P1, P3), (P1, P4), (P2, P5), (P3, P5), (P4, P6), (P4, P7),(P5, P8), (P6, P8), (P7, P9), (P8, P9)} P8), (P6, P8), (P7, P9), (P8, P9)} n n应当注意,前趋图中必须不存在循环,但在上图应当注意,前趋图中必须不存在循环,但在上图(b)(b)中却有着下中却有着下述的前趋关系:述的前趋关系:S2→S3, S3→S2S2→S3, S3→S2P1P3P8P9P4P2P5P6P7S1S2S3(a) 具有九个结点的前趋图(b) 具有循环的有向图 2.1.2 程序的顺序执行程序的顺序执行n n1、程序的顺序执行n n2、程序顺序执行时的特征 1、程序的顺序执行、程序的顺序执行n n仅当前一操作仅当前一操作( (程序段程序段) )执行完后,才能执行执行完后,才能执行后继操作。

      例如,在进行计算时,总须先输后继操作例如,在进行计算时,总须先输入用户的程序和数据,然后进行计算,最后入用户的程序和数据,然后进行计算,最后才能打印计算结果才能打印计算结果n n再如:–S1S1::a:=a:=x+yx+y; ;–S2S2::b:=a-5;b:=a-5;–S3S3::c:=b+1;c:=b+1;(a)程序的顺序执行I1C1P1I2C2P2(b)三条语句的顺序执行S1S2S3 2、程序顺序执行时的特征、程序顺序执行时的特征n n⑴顺序性;n n⑵封闭性:程序运行时独占全机资源; n n⑶可再现性:只要程序执行时的环境和初始条件相同,都将获得相同结果 三、程序的并发执行三、程序的并发执行n n1、程序的并发执行n n2、程序并发执行时的特征 1、程序的并发执行、程序的并发执行n n例例1 1 在上图中存在下述前趋关系:在上图中存在下述前趋关系:– –Ii→CiIi→Ci,,Ii→Ii+1, Ii→Ii+1, Ci→PiCi→Pi, Ci→Ci+1, Ci→Ci+1,,Pi→Pi+1Pi→Pi+1– –而而Ii+1Ii+1和和CiCi及及Pi-1Pi-1是重迭的,亦即在是重迭的,亦即在Pi-1Pi-1和和CiCi以及以及Ii+1Ii+1之间,可以并发执行。

      之间,可以并发执行n n例例2 2 对于具有下述四条语句的程序段,可用上图对于具有下述四条语句的程序段,可用上图(b)(b)表示– –S1S1::a:=x+2a:=x+2– –S2S2::b:=y+4b:=y+4– –S3S3::c:=c:=a+ba+b– –S4S4::d:=d:=c+bc+bP1P2P3P4I1I2I3I4C1C2C3C4S1S2S3S4(a) 并发执行时的前趋图(b) 四条语句的前躯关系 2、程序并发执行时的特征、程序并发执行时的特征n n1) 1) 间断性间断性:并发程序之间的相互制约性导致并发程程:并发程序之间的相互制约性导致并发程程“ “执执行行————暂停执行暂停执行————执行执行” ”n n2) 2) 失去封闭性失去封闭性:多个程序共享资源:多个程序共享资源n n3) 3) 不可再现性不可再现性– –例如,有两个循环程序例如,有两个循环程序A A和和B B,它们共享一个变量,它们共享一个变量N N程序序A A每执行一次时,都要做每执行一次时,都要做N N∶ ∶=N+1=N+1操作;程序操作;程序B B每执行每执行一次时,一次时, 都要执行都要执行Print(NPrint(N) )操作,然后再将操作,然后再将N N置成置成“ “0”0”。

      程序程序A A和和B B以不同的速度运行以不同的速度运行n nN:=N+1N:=N+1在在Print(NPrint(N) )和和N:=0N:=0之前,此时之前,此时N N的值分别为的值分别为n+1, n+1, 0n+1, n+1, 0n nN:=N+1N:=N+1在在Print(NPrint(N) )和和N:=0N:=0之后,此时得到的之后,此时得到的N N值分别为值分别为n, 0, 1n, 0, 1n nN:=N+1N:=N+1在在Print(NPrint(N) )和和N:=0N:=0之间,此时的之间,此时的N N值分别为值分别为n, n+1, 0n, n+1, 0 四、程序并发执行的条件四、程序并发执行的条件n n使并发程序保持“可再现性”的条件n n1、读、写集的概念n n2、Bernstein条件n n3、程序并发执行的判定 1、读、写集的概念、读、写集的概念n n读集读集R(pR(pi i)={a)={a1 1,a,a2 2,…,a,…,amm} }表示程序表示程序p pi i在执行期在执行期间所需参考的所有变量的集合间所需参考的所有变量的集合n n写集写集W(pW(pi i)={b)={b1 1,b,b2 2,…,,…,b bn n} }表示程序表示程序p pi i在执行在执行期间要改变的所有变量的集合。

      期间要改变的所有变量的集合n n如如c:=a-bc:=a-b和和w:=c+1w:=c+1两条语句,其读、写集分两条语句,其读、写集分别为:别为:–R(cR(c:=a-b)={:=a-b)={a,ba,b} } W(cW(c:=a-b)={c}:=a-b)={c}–R(wR(w:=c-1)={c}:=c-1)={c}W(wW(w:=c-1)={w}:=c-1)={w} 2、、Bernstein条件条件n n1966年Bernstein首先提出了p1、p2并发执行的条件,又称为Bernstein条件n n若两个程序p1、p2能满足下述条件,他们便能并发执行,且具有可再现性R(pR(p1 1)∩W(p)∩W(p2 2) )∪∪R(pR(p2 2) ∩ W(p) ∩ W(p1 1) ) ∪∪ W(pW(p1 1) ∩ W) ∩ W(p(p2 2)=)={}{} 3、程序并发执行的判定、程序并发执行的判定n n例如,有四条语句:例如,有四条语句:– –S S1 1::a:=a:=x+yx+y– –S S2 2::b:=z+1b:=z+1– –S S3 3::c:=a-bc:=a-b– –S S4 4::w:=c+1w:=c+1n n利用利用BernsteinBernstein条件判定条件判定– –R(SR(S1 1)={)={x,yx,y} }R(SR(S2 2)={z})={z}R(SR(S3 3)={)={a,ba,b} R(S} R(S4 4)={c})={c}– –W(SW(S1 1)={a})={a}W(SW(S2 2)={b})={b}W(SW(S3 3)={c})={c}W(SW(S4 4)={w})={w}– –容易判定容易判定S S1 1与与S S2 2可并发执行,而可并发执行,而S S1 1与与S S3 3、、S S2 2与与S S3 3、、S S3 3与与S S4 4不能并发执行。

      不能并发执行– –考虑考虑S S1 1与与S S4 4能不能并发执行?能不能并发执行?n n利用前趋图判定利用前趋图判定– –无前趋关系的两个节点可并发执行,如上图所示无前趋关系的两个节点可并发执行,如上图所示S1S2S3S4 2.2 进程的描述进程的描述n n一、进程的定义与特征n n二、进程的基本状态n n三、进程的挂起状态n n四、进程控制块PCB 2.2.1 进程的定义与特征进程的定义与特征n n1、进程的定义n n2、进程的特征 1、进程的定义、进程的定义n n“ “进程进程” ”,在,在6060年代初期,首先在麻省理工学院的年代初期,首先在麻省理工学院的MULTICSMULTICS系统和系统和IBMIBM公司的公司的CTSS/360CTSS/360系统中引入系统中引入n n在引入了进程实体的概念后,我们可以把传统在引入了进程实体的概念后,我们可以把传统OSOS中中的进程理解为:进程是进程实体的运行过程,是系统的进程理解为:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位进行资源分配和调度的一个独立单位n n定义:可并发执行的程序在一个数据集合上的运行过定义:可并发执行的程序在一个数据集合上的运行过程,或者说进程是进程实体的运行过程。

      程,或者说进程是进程实体的运行过程 2、进程的特征、进程的特征n n1)1)动态性动态性————最基本特征,表现为最基本特征,表现为“ “ 由创建由创建产生,由调度执行,因得不到资源而暂停执产生,由调度执行,因得不到资源而暂停执行,由撤销而消亡行,由撤销而消亡” ”n n2)2)并发性并发性————也是引入进程的目的也是引入进程的目的n n3)3)独立性独立性————是进程实体的运行过程,是系是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位统进行资源分配和调度的一个独立单位n n4)4)异步性异步性————进程按异步方式运行进程按异步方式运行n n5)5)结构特征结构特征————进程实体由:程序段、数据进程实体由:程序段、数据段、进程控制块三部分组成段、进程控制块三部分组成 2.2.2 进程的基本状态进程的基本状态n n1、进程的三种基本状态n n2、新状态和终止状态n n3、进程状态的转换 1、进程的三种基本状态、进程的三种基本状态n n1)就绪(Ready)状态 -进程已分配到除cpu以外的所有必要资源n n2)执行状态 -进程已获得处理机,正在执行n n3)阻塞状态 -进程因发生某事件而暂停执行的状态 2、新状态和终止状态、新状态和终止状态n n1)1)新新(New)(New)状态状态 - - 进程刚建立,还未将它送入就绪队列时的状态。

      进程刚建立,还未将它送入就绪队列时的状态n n2)2)终止终止(Terminated)(Terminated)状态状态 - - 进程已经结束,进程已经结束,osos已将它从就绪对列中移出,但尚未将它撤已将它从就绪对列中移出,但尚未将它撤销时的状态销时的状态n n3)3)引入新状态和终止状态的原因引入新状态和终止状态的原因 - - osos建立新进程时分两步:建立新进程时分两步:1 1)建立进程并分配资源(新状态);)建立进程并分配资源(新状态);2 2)将新进程送入就绪队列(就绪状态))将新进程送入就绪队列(就绪状态) - - 一个结束了的进程,其退出系统的过程也分两步:一个结束了的进程,其退出系统的过程也分两步:1) 1) 从就绪对从就绪对列中移出(结束状态);列中移出(结束状态);2 2)撤销进程)撤销进程 3、进程状态的转换、进程状态的转换n n1)新→就绪状态n n2)就绪→执行状态n n3)执行→阻塞状态n n4)执行→就绪状态n n5)执行→终止状态n n6)阻塞→就绪状态新进程结束就绪执行阻塞I/O事件完成或事件发生中断完成进程调度接纳I/O事件请求或等待某事件 2.2.3 进程的挂起状态进程的挂起状态n n1、引入挂起状态的原因n n2、进程状态的转换 1、引入挂起状态的原因、引入挂起状态的原因n n1)终端用户的请求——检查可疑问题。

      n n2)父进程请求——考察修改子进程n n3)操作系统的需要——记帐n n4)对换的需要——为缓解内存进张,将内存中处于阻塞状态的进程换至外存上n n5)负荷调节的需要——实时系统中把不紧迫的进程挂起 2、进程状态的转换、进程状态的转换引入挂起状态后,将增加从挂起状态(静止状引入挂起状态后,将增加从挂起状态(静止状态)到非挂起状态(活动状态)的互相转换态)到非挂起状态(活动状态)的互相转换n n1)1)活动就绪活动就绪→→静止就绪静止就绪n n2)2)活动阻塞活动阻塞→→静止阻塞静止阻塞 n n3)3)静止就绪静止就绪→→活动就绪活动就绪n n4)4)静止阻塞静止阻塞→→活动阻塞活动阻塞n n5)5)执行执行→→静止就绪静止就绪n n6)6)静止阻塞静止阻塞→→静止就绪静止就绪 2.2.4 进程控制块进程控制块PCBn n1、进程控制块的作用n n2、进程控制块中的信息n n3、进程控制块的组织方式 1、进程控制块的作用、进程控制块的作用n n进程控制块PCB,记录了操作系统所需的、用于描述进程情况及控制进程运行所需的全部信息n nPCB的作用,OS是根据PCB来对并发执行的进程进行控制和管理的。

      –记录进程信息记录进程信息–进程存在的唯一标志进程存在的唯一标志–操作系统调度进程的数据结构操作系统调度进程的数据结构 2、进程控制块中的信息、进程控制块中的信息n n1)进程标识符——唯一的标识一个进程n n2)处理机状态n n3)进程调度信息n n4)进程控制信息 1)进程标识符进程标识符n n进程标识符用于惟一地标识一个进程一个进程通常有两种标识符:一个进程通常有两种标识符:– –内部标识符在所有的操作系统中,都为每一内部标识符在所有的操作系统中,都为每一个进程赋予一个惟一的数字标识符,它通常是个进程赋予一个惟一的数字标识符,它通常是一个进程的序号一个进程的序号 设置内部标识符主要是为设置内部标识符主要是为了方便系统使用了方便系统使用– –外部标识符它由创建者提供,通常是由字母、外部标识符它由创建者提供,通常是由字母、数字组成,往往是由用户数字组成,往往是由用户( (进程进程) )在访问该进程在访问该进程时使用为了描述进程的家族关系,时使用为了描述进程的家族关系, 还应设还应设置父进程标识及子进程标识此外,还可设置置父进程标识及子进程标识此外,还可设置用户标识,以指示拥有该进程的用户。

      用户标识,以指示拥有该进程的用户 2)处理机状态处理机状态n n处理机状态信息主要是由处理机的各种寄存处理机状态信息主要是由处理机的各种寄存器中的内容组成的:器中的内容组成的:– –通用寄存器;通用寄存器;– –指令计数器,其中存放了要访问的下一条指令的指令计数器,其中存放了要访问的下一条指令的地址;地址;– –程序状态字程序状态字PSWPSW,其中含有状态信息,如条件码、,其中含有状态信息,如条件码、执行方式、执行方式、 中断屏蔽标志等;中断屏蔽标志等;– –用户栈指针,用户栈指针, 指每个用户进程都有一个或若干个指每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参与之相关的系统栈,用于存放过程和系统调用参数及调用地址栈指针指向该栈的栈顶数及调用地址栈指针指向该栈的栈顶 3)进程调度信息进程调度信息n n在在PCBPCB中还存放一些与进程调度和进程对换有中还存放一些与进程调度和进程对换有关的信息,包括:关的信息,包括:– –进程状态,指明进程的当前状态,进程状态,指明进程的当前状态, 作为进程调度作为进程调度和对换时的依据;和对换时的依据;– –进程优先级,用于描述进程使用处理机的优先级进程优先级,用于描述进程使用处理机的优先级别的一个整数,别的一个整数, 优先级高的进程应优先获得处理优先级高的进程应优先获得处理机;机;– –进程调度所需的其它信息,它们与所采用的进程进程调度所需的其它信息,它们与所采用的进程调度算法有关,比如,进程已等待调度算法有关,比如,进程已等待CPUCPU的时间总的时间总和、和、 进程已执行的时间总和等;进程已执行的时间总和等;– –事件,是指进程由执行状态转变为阻塞状态所等事件,是指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因。

      待发生的事件,即阻塞原因 4)进程控制信息进程控制信息n n进程控制信息包括:进程控制信息包括:– –程序和数据的地址,程序和数据的地址, 是指进程的程序和数据所在是指进程的程序和数据所在的内存或外存地的内存或外存地( (首首) )址,以便再调度到该进程执址,以便再调度到该进程执行时,能从行时,能从PCBPCB中找到其程序和数据;中找到其程序和数据;– –进程同步和通信机制,指实现进程同步和进程通进程同步和通信机制,指实现进程同步和进程通信时必需的机制,信时必需的机制, 如消息队列指针、信号量等,如消息队列指针、信号量等,它们可能全部或部分地放在它们可能全部或部分地放在PCBPCB中;中;– –资源清单,是一张列出了除资源清单,是一张列出了除CPUCPU以外的、进程所以外的、进程所需的全部资源及已经分配到该进程的资源的清单;需的全部资源及已经分配到该进程的资源的清单;– –链接指针,链接指针, 它给出了本进程它给出了本进程(PCB)(PCB)所在队列中的所在队列中的下一个进程的下一个进程的PCBPCB的首地址的首地址 3、进程控制块的组织方式、进程控制块的组织方式n n1)1)链接方式链接方式n n2)2)索引方式索引方式链接字 2.3 进程控制进程控制n n一、操作系统内核n n二、进程的创建n n三、进程的终止n n四、进程的阻塞与唤醒n n五、进程的挂起与激活 处理机的执行状态处理机的执行状态n n为防止操作系统及关键数据如为防止操作系统及关键数据如PCBPCB等受到用户程等受到用户程序有意或无意的破坏,通常将处理机的执行状态序有意或无意的破坏,通常将处理机的执行状态划分成系统态和用户态:划分成系统态和用户态:– –系统态:又称核心态,具有较高的特权,能执系统态:又称核心态,具有较高的特权,能执行一切指令,可以访问所有寄存器和存储器。

      行一切指令,可以访问所有寄存器和存储器– –用户态:具有较低的执行权限,只能执行规定用户态:具有较低的执行权限,只能执行规定的指令,访问指定的寄存器和存储器的指令,访问指定的寄存器和存储器n n通常用户程序运行于用户态,通常用户程序运行于用户态,OSOS内核运行于系统内核运行于系统态 2.3.1 操作系统内核操作系统内核n n内核是计算机硬件的第一层扩充软件,为系统对进程控制、存储器管理等提供了有效的机制内核常驻内存,紧靠硬件,运行效率较高n n在不同操作系统中,内核所包含的功能不尽相同,但一般应包含下述功能:–1 1、支撑功能、支撑功能–2 2、资源管理功能、资源管理功能 1、支撑功能、支撑功能n n1)中断处理:内核最基本的功能n n2)时钟管理n n3)原语操作–原语是由若干条指令构成、用于完成一定原语是由若干条指令构成、用于完成一定功能的过程与一般过程的区别在于原语功能的过程与一般过程的区别在于原语是一种是一种“ “原子操作原子操作(Atomic Operation)”(Atomic Operation)”–原子操作:一个操作中的所有动作,要么原子操作:一个操作中的所有动作,要么全做,要么全不做。

      即原子操作是一个不全做,要么全不做即原子操作是一个不可分割的操作可分割的操作 2、资源管理功能、资源管理功能n n1)进程管理n n2)存储器管理n n3)设备管理 2.3.2 进程的创建进程的创建n n1、进程图n n2、引起创建进程的事件n n3、进程创建(Creation of Progress)过程 1、进程图、进程图n n进程图是用于描述进程家族进程图是用于描述进程家族关系的有向树关系的有向树n n图中的节点代表进程进程图中的节点代表进程进程pipi创建了进程创建了进程pjpj后就称后就称pipi是是pjpj的父进程的父进程(Parent Process)(Parent Process),,pjpj是是pipi的子进程的子进程(Progeny (Progeny Process)Process)用pipi指向指向pjpj的有向的有向边描述它们之间的父子关系边描述它们之间的父子关系创建父进程的进程称为祖父创建父进程的进程称为祖父进程,从而一个进程家族就进程,从而一个进程家族就形成了一棵进程树,其中根形成了一棵进程树,其中根节点成为进程家族的祖先节点成为进程家族的祖先(Ancestor)(Ancestor)。

      n n进程间的这种关系是非常有进程间的这种关系是非常有用处的:用处的:– –子进程继承父进程的资源子进程继承父进程的资源– –子进程被撤消时,要归还从子进程被撤消时,要归还从父进程获得的资源父进程获得的资源DEFGHBCIJKLMA进程树—— —— 撤消一个进程时,必须同时撤消一个进程时,必须同时/ /事先撤消事先撤消其所有子孙进程其所有子孙进程 2、引起创建进程的事件、引起创建进程的事件n n1)用户登录n n2)作业调度n n3)提供服务n n4)应用请求——应用进程为自己创建新进程应用进程为自己创建新进程系统内核创建新进程 3、进程创建过程、进程创建过程n n1)申请空白PCBn n2)为新进程分配资源n n3)初始化进程控制块–初始化标志符信息初始化标志符信息–初始化处理机状态信息初始化处理机状态信息–初始化处理机控制信息初始化处理机控制信息n n4)将新进程插入就绪队列–如果进程就绪队列能够接纳新进程,如果进程就绪队列能够接纳新进程, 便将便将新进程插入就绪队列新进程插入就绪队列 2.3.3 进程的终止进程的终止n n1、引起进程终止的事件n n2、进程终止(Termination of Process)的过程 1、引起进程终止的事件、引起进程终止的事件n n1)1)正常结束:正常结束:– –在任何计算机系统中,都应有一个用于表示进程在任何计算机系统中,都应有一个用于表示进程已经运行完成的指示。

      已经运行完成的指示2)2)异常结束:异常结束:––在进程运行期间,由于出现某些错误和故障而迫在进程运行期间,由于出现某些错误和故障而迫使进程终止这类异常事件很多,常见的有:使进程终止这类异常事件很多,常见的有:n n①①越界错误越界错误②②保护错;保护错;③③非法指令非法指令④④特权特权指令错⑤⑤运行超时运行超时⑥⑥等待超时等待超时⑦⑦算术运算术运算错⑧⑧I/OI/O故障3 3)外界干预:并非指在本进程运行中出现了异常事)外界干预:并非指在本进程运行中出现了异常事件,而是指进程应外界的请求而终止运行这些件,而是指进程应外界的请求而终止运行这些干预有:干预有:n n①①操作员或操作系统干预操作员或操作系统干预 ② ②父进程请求父进程请求 ③③父进程终止父进程终止 2、进程终止的过程、进程终止的过程n n1)1)根据被终止进程的标识符,从根据被终止进程的标识符,从PCBPCB集合中检索出该集合中检索出该进程的进程的PCBPCB,从中读出该进程的状态从中读出该进程的状态n n2)2)若被终止进程正处于执行状态,应立即终止该进程若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。

      后应重新进行调度n n3)3)若该进程还有子孙进程,还应将其所有子孙进程予若该进程还有子孙进程,还应将其所有子孙进程予以终止,以防他们成为不可控的进程递归)以终止,以防他们成为不可控的进程递归)n n4)4)将被终止进程所拥有的全部资源,或者归还给其父将被终止进程所拥有的全部资源,或者归还给其父进程,进程, 或者归还给系统或者归还给系统n n5)5)将被终止进程将被终止进程( (它的它的PCB)PCB)从所在队列从所在队列( (或链表或链表) )中移中移出,出, 等待其他程序来搜集信息等待其他程序来搜集信息 2.3.4 进程的阻塞与唤醒进程的阻塞与唤醒n n1、引起进程阻塞和唤醒的事件n n2、进程阻塞过程n n3、进程唤醒过程 1、引起进程阻塞和唤醒的事、引起进程阻塞和唤醒的事件件n n1)请求系统服务n n2)启动某种操作n n3)新数据尚未到达n n4)无新工作可做 2、进程阻塞过程、进程阻塞过程n n正在执行的进程,当发现上述某事件时,由于无法继正在执行的进程,当发现上述某事件时,由于无法继续执行,于是进程便通过调用阻塞原语续执行,于是进程便通过调用阻塞原语blockblock把自己把自己阻塞。

      可见,进程的阻塞是进程自身的一种主动行为可见,进程的阻塞是进程自身的一种主动行为阻塞是运行阻塞是运行 等待的过程等待的过程n n进程阻塞过程:进程阻塞过程:n n先立即停止进程执行,把进程控制块中的现行状态由先立即停止进程执行,把进程控制块中的现行状态由“ “执行执行” ”改为阻塞改为阻塞n n将将PCBPCB插入到具有相同事件的阻塞插入到具有相同事件的阻塞( (等待等待) )队列 n n最后,转调度程序进行重新调度,将处理机分配给另最后,转调度程序进行重新调度,将处理机分配给另一就绪进程,并进行切换一就绪进程,并进行切换 3、进程唤醒过程、进程唤醒过程n n当被阻塞进程所期待的事件出现时,如当被阻塞进程所期待的事件出现时,如I/OI/O完完成或其所期待的数据已经到达,则由有关进程成或其所期待的数据已经到达,则由有关进程( (比如,用完并释放了该比如,用完并释放了该I/OI/O设备的进程设备的进程) )调用调用唤醒原语唤醒原语wakeup( )wakeup( ),将等待该事件的进程唤,将等待该事件的进程唤醒n n唤醒原语执行的过程是:唤醒原语执行的过程是:n n首先把被阻塞的进程从等待该事件的阻塞队列首先把被阻塞的进程从等待该事件的阻塞队列中移出中移出n n将其将其PCBPCB中的现行状态由阻塞改为就绪中的现行状态由阻塞改为就绪n n然后再将该然后再将该PCBPCB插入到就绪队列中。

      插入到就绪队列中 2.3.5 进程的挂起与激活进程的挂起与激活n n1、进程的挂起过程n n2、进程的激活过程 1、进程的挂起、进程的挂起n n当出现了引起进程挂起的事件时(系统负荷过重,设当出现了引起进程挂起的事件时(系统负荷过重,设备故障,调试程序等)备故障,调试程序等) ,系统将利用挂起原语,系统将利用挂起原语suspendsuspend( )( )将指定进程或处于阻塞状态的进程挂起将指定进程或处于阻塞状态的进程挂起n n挂起原语的执行过程是:挂起原语的执行过程是:n n首先检查被挂起进程的状态,若处于活动就绪状态,首先检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪;对于活动阻塞状态的进程,则便将其改为静止就绪;对于活动阻塞状态的进程,则将之改为静止阻塞将之改为静止阻塞 n n为了方便用户或父进程考查该进程的运行情况而把该为了方便用户或父进程考查该进程的运行情况而把该进程的进程的PCBPCB复制到某指定的内存区域复制到某指定的内存区域n n最后,若被挂起的进程正在执行,则转向调度程序重最后,若被挂起的进程正在执行,则转向调度程序重新调度 2、进程的激活过程、进程的激活过程n n当发生激活进程的事件时,系统将利用激活当发生激活进程的事件时,系统将利用激活原语原语active( )active( )将指定进程激活。

      将指定进程激活 n n激活原语先将进程从外存调入内存,检查该激活原语先将进程从外存调入内存,检查该进程的现行状态,若是静止就绪,便将之改进程的现行状态,若是静止就绪,便将之改为活动就绪;若为静止阻塞便将之改为活动为活动就绪;若为静止阻塞便将之改为活动阻塞n n假如采用的是抢占调度策略,则每当有新进假如采用的是抢占调度策略,则每当有新进程进入就绪队列时,应检查是否要进行重新程进入就绪队列时,应检查是否要进行重新调度,即由调度程序将被激活进程与当前进调度,即由调度程序将被激活进程与当前进程进行优先级的比较,如果被激活进程的优程进行优先级的比较,如果被激活进程的优先级更低,就不必重新调度;否则,立即剥先级更低,就不必重新调度;否则,立即剥夺当前进程的运行,把处理机分配给刚被激夺当前进程的运行,把处理机分配给刚被激活的进程活的进程 2.4 线程的基本概念线程的基本概念n n一、线程的基本概念n n二、内核级线程和用户级线程n n三、线程控制 2.4.1 线程的基本概念线程的基本概念n n1、线程的引入n n2、线程的属性n n3、线程的状态n n4、线程的创建和终止n n5、多线程OS中的进程n n6、线程与进程的比较 1、线程的引入、线程的引入n n进程的两个基本属性:进程的两个基本属性:n n - -1 1)进程是一个可拥有资源的独立单位)进程是一个可拥有资源的独立单位 -2-2)进程又是一个可独立调度和分派的单位)进程又是一个可独立调度和分派的单位n n为使程序能并发执行,系统还必须进行以下为使程序能并发执行,系统还必须进行以下的一系列操作。

      的一系列操作– –1)1)创建进程创建进程– –2)2)撤消进程撤消进程– –3)3)进程切换进程切换为减少程序并发执行的时空开销,考虑将进程的两为减少程序并发执行的时空开销,考虑将进程的两个属性分开,从而产生了线程的概念个属性分开,从而产生了线程的概念 2、线程的属性、线程的属性n n1)1)轻型实体轻型实体n n2)2)独立调度和分派的基本单位,线程中包含独立调度和分派的基本单位,线程中包含调度信息调度信息n n3)3)进程中至少有一个线程,否则该进程无法进程中至少有一个线程,否则该进程无法被调度执行被调度执行n n4 4)线程可创建其它线程)线程可创建其它线程n n5 5)可并发执行可并发执行n n6 6)线程不拥用资源,只是共享进程资源线程不拥用资源,只是共享进程资源n n7 7)线程间需要同步和通信)线程间需要同步和通信 3、线程的状态、线程的状态n n1)1)状态参数状态参数– –在在OSOS中的每一个线程都可以利用线程标识符和一组状态参数进行中的每一个线程都可以利用线程标识符和一组状态参数进行描述状态参数通常有这样几项:描述状态参数通常有这样几项:n n①①寄存器状态,它包括程序计数器寄存器状态,它包括程序计数器PCPC和堆栈指针中的内容;和堆栈指针中的内容;n n②②堆栈,在堆栈中通常保存有局部变量和返回地址;堆栈,在堆栈中通常保存有局部变量和返回地址;n n③③线程运行状态,用于描述线程正处于何种运行状态;线程运行状态,用于描述线程正处于何种运行状态;n n④④优先级,描述线程执行的优先程度;优先级,描述线程执行的优先程度;n n⑤⑤线程专有存储器,用于保存线程自己的局部变量拷贝;线程专有存储器,用于保存线程自己的局部变量拷贝;n n⑥⑥信号屏蔽,即对某些信号加以屏蔽。

      信号屏蔽,即对某些信号加以屏蔽n n2)2)线程运行状态线程运行状态– –如同传统的进程一样,在各线程之间也存在着共享资源和相互合如同传统的进程一样,在各线程之间也存在着共享资源和相互合作的制约关系,致使线程在运行时也具有间断性相应地,线程作的制约关系,致使线程在运行时也具有间断性相应地,线程在运行时,也具有下述三种基本状态:在运行时,也具有下述三种基本状态:n n①①执行状态,表示线程正获得处理机而运行;执行状态,表示线程正获得处理机而运行;n n②②就绪状态,指线程已具备了各种执行条件,一旦获得就绪状态,指线程已具备了各种执行条件,一旦获得CPUCPU便便可执行的状态;可执行的状态;n n③③阻塞状态,指线程在执行中因某事件而受阻,处于暂停执行阻塞状态,指线程在执行中因某事件而受阻,处于暂停执行时的状态时的状态 4、线程的创建和终止、线程的创建和终止n n在多线程在多线程OSOS环境下,应用程序在启动时,通常仅有环境下,应用程序在启动时,通常仅有一个线程在执行,该线程被人们称为一个线程在执行,该线程被人们称为“ “初始化线程初始化线程” ”它可根据需要再去创建若干个线程在创建新线程时,它可根据需要再去创建若干个线程。

      在创建新线程时,需要利用一个线程创建函数需要利用一个线程创建函数( (或系统调用或系统调用) ),并提供相,并提供相应的参数,如指向线程主程序的入口指针、堆栈的大应的参数,如指向线程主程序的入口指针、堆栈的大小,以及用于调度的优先级等程创建函数执行小,以及用于调度的优先级等程创建函数执行完后,将返回一个线程标识符供以后使用完后,将返回一个线程标识符供以后使用n n终止线程的方式有两种:一种是程完成了自己的终止线程的方式有两种:一种是程完成了自己的工作后自愿退出;另一种是线程在运行中出现错误或工作后自愿退出;另一种是线程在运行中出现错误或由于某种原因而被其它线程强行终止由于某种原因而被其它线程强行终止 5、多线程、多线程OS中的进程中的进程n n在多线程OS中,进程是作为拥有系统资源的基本单位,通常的进程都包含多个线程并为它们提供资源,但此时的进程就不再作为一个执行的实体 多线程OS中的进程有以下属性:n n1)作为系统资源分配的单位n n2)可包括多个线程n n3)进程不是一个可执行的实体 6、线程与进程的比较、线程与进程的比较n n1 1、调度、调度- -同一进程中的线程切换不引起进程切换同一进程中的线程切换不引起进程切换 线程:调度和分派的基本单位线程:调度和分派的基本单位 进程:资源拥有的基本单位进程:资源拥有的基本单位n n2 2、并发性、并发性 进程可以并发执行,进程中的多个线程也可并发执进程可以并发执行,进程中的多个线程也可并发执行,使得行,使得osos具有更好的并发性。

      具有更好的并发性n n3 3、拥有资源、拥有资源 线程不拥有资源但可共享资源线程不拥有资源但可共享资源n n4 4、系统开销、系统开销 进程切换的开销远大于线程切换的开销进程切换的开销远大于线程切换的开销 n n几种典型的应用n n服务器中的文件管理或通信控制、前后台处理、异步处理、网络中信息发送、接受等 2.4.2 内核级线程和用户级线内核级线程和用户级线程程n n1、内核支持线程n n2、用户级线程n n3、内核支持线程与用户级线程的比较 1、内核支持线程、内核支持线程n n这里所谓的内核支持线程,也都同样是在内这里所谓的内核支持线程,也都同样是在内核的支持下运行的,即无论是用户进程中的核的支持下运行的,即无论是用户进程中的线程,还是系统进程中的线程,他们的创建、线程,还是系统进程中的线程,他们的创建、撤消和切换等,也是依靠内核实现的撤消和切换等,也是依靠内核实现的n n此外,在内核空间还为每一个内核支持线程此外,在内核空间还为每一个内核支持线程设置了一个线程控制块,设置了一个线程控制块, 内核是根据该控制内核是根据该控制块而感知某线程的存在的,并对其加以控制。

      块而感知某线程的存在的,并对其加以控制 2、用户级线程、用户级线程n n用户级线程仅存在于用户空间中对于这种线程的创建、 撤消、线程之间的同步与通信等功能,都无须利用系统调用来实现n n对于用户级线程的切换,通常是发生在一个应用进程的诸多线程之间,这时,也同样无须内核的支持 3、内核支持线程与用户级线程的比较、内核支持线程与用户级线程的比较n n1)1)线程的调度与切换速度线程的调度与切换速度 内核支持线程:与进程的调度和切换相似,所用时内核支持线程:与进程的调度和切换相似,所用时间较少 用户级线程:切换通常是发生在一个应用进程的诸用户级线程:切换通常是发生在一个应用进程的诸多线程之间多线程之间n n2)2)系统调用系统调用 内核支持线程:以线程为单位内核支持线程:以线程为单位 用户级线程:以进程为单位用户级线程:以进程为单位n n3)3)线程执行时间线程执行时间 轮转调度算法中,轮转调度算法中, A A进程中一个线程,进程中一个线程,B B进程中进程中100100个线程;个线程; 内核支持线程:内核支持线程:B B运行时间为运行时间为A A的的100100倍。

      倍 用户级线程:用户级线程:A A和和B B运行时间相等运行时间相等 2.4.3 线程控制线程控制n n1、内核支持线程的实现n n2、用户级线程的实现 1、内核支持线程的实现、内核支持线程的实现任务数据区空间任务数据区空间PTDA 进程资源TCB(线程控制块) # 1TCB # 2TCB # 3内核支持线程OS中,可能的线程控制方法是,系统在创建一个新进程时,便为它分配一个任务数据区PTDA,其中包括若干个线程 2、用户级线程的实现、用户级线程的实现 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.