操作系统教学02.pptx
《操作系统教学02.pptx》由会员分享,可在线阅读,更多相关《操作系统教学02.pptx(255页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、进程的基本概念 进程控制 进程同步 经典进程的同步问题 进程通信 线程 第二章 进程管理第1页/共255页l 人类的擅长逻辑程序(代码、数据)l 计算机的擅长数字运算(指令、逻辑关系)l OS负责将逻辑程序转换为CPU动作,进程是这一转换过程的中间结构2.1 进程的基本概念程序和数据进程结构指令流第2页/共255页程序的顺序执行:仅当前一操作(程序段)执行完后,才能执行后继操作。例如,在进行计算时,总须先输入用户的程序和数据,然后进行计算,最后才能打印计算结果。2.1.1 程序的顺序执行及其特征第3页/共255页程序顺序执行时的特征顺序性封闭性 可再现性2.1.1 程序的顺序执行及其特征第4页
2、/共255页前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。图中的每个结点可用于描述一个程序段或进程,乃至一条语句;结点间的有向边则用于表示两个结点之间存在的偏序(Partial Order)或前趋关系(Precedence Relation)“”。=(Pi,Pj)|Pi must complete before Pj may start,如果(Pi,Pj),可写成PiPj,称Pi是Pj的直接前趋,而称Pj是Pi的直接后继。在前趋图中,把没有前趋的结点称为初始结点(Initial Node
3、),把没有后继的结点称为终止结点(Final Node)。2.1.2 前趋图第5页/共255页P=P1,P2,P3,P4,P5,P6,P7,P8,P9=(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P6),(P4,P7),(P5,P8),(P6,P8),(P7,P9),(P8,P9)第6页/共255页程序的并发执行2.1.3 程序的并发执行及其特征在该例中存在下述前趋关系:IiCi,IiIi+1,CiPi,CiCi+1,PiPi+1在Pi-1和Ci以及Ii+1之间,可以并发执行多个程序同时在系统中运行,这些程序的执行在时间上是重叠的,即前一程序的执行尚
4、未结束,后一程序的执行已经开始。第7页/共255页程序的并发执行2.1.3 程序的并发执行及其特征第8页/共255页间断性相互制约将导致并发程序具有“执行暂停执行”这种间断性的活动规律。失去封闭性某程序执行时,必然受到参与并发执行的其它程序的影响不可再现性计算结果与并发程序执行速度有关。即同一程序,使用相同输入、在相同环境下运行,却可能获得完全不同的结果。程序并发执行时的特征第9页/共255页不可再现性的例子:l两个并发执行的程序A和B,如下所示:A:N:=N+1;B:print(N);N:=0;l 分析:1)并发:A、B交替占用CPU执行;2)异步性导致:CPU交替执行A、B的语句时顺序可能
5、不同!l 设某次循环前,N的值为8,CPU执行顺序 打印结果 N的值1)N:=N+1;print(N);N:=0;9 02)print(N);N:=0;N:=N+1;8 13)print(N);N:=N+1;N:=0;8 0第10页/共255页多道程序环境下,程序的执行属于并发执行,此时它们将失去封闭性,并具有间断性及不可再现性的特征因此,通常的程序不能参加并发执行为此,引入“进程”第11页/共255页为什么要有进程?为什么要有进程?第12页/共255页引入进程后第13页/共255页引入进程引入进程第14页/共255页进程是一个具有一定独立功能的程序关于某个数据集合的一次可以并发执行的运行活动
6、。计算机中的所有程序(软件),按照某种顺序运行,这种运行的过程称之为进程。进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。2.1.4 进程的特征与状态多道程序环境下,如何能使程序并发执行?如何对并发执行的程序加以控制和描述?第15页/共255页l进程和程序的区别很微妙l想象一位好厨艺的科学家正在为女儿烘制生日蛋糕。有食谱,有原料:面粉、鸡蛋、糖、香草汁等等。在这个比喻中,食谱就是程序(即用适当形式描述的算法),科学家就是处理机(CPU),各种原料就是输入数据。进程就是厨师阅读食谱、取来各种原料、以及烘制蛋糕的一系列动作的总和。第16页/共255页l现在假设科学家
7、的儿子哭着跑了进来,说他被一只蜜蜂螫了。科学家就记录下他照着食谱做到哪儿了(保存进程的当前状态),然后拿出一本急救手册,按照其中的指示处理螫伤。l这里,我们看到处理机从一个进程(做蛋糕)切换到另一个高优先级的进程(实施医疗救治),每个(进程)拥有各自的程序(食谱和急救书)。当蜜蜂螫伤处理完之后,科学家又回来做蛋糕,从他离开时的那一步继续做下去。l关键思想是:一个进程是某种类型的一个活动,它有程序、输入、输出、及状态。单个处理机被若干进程共享,它使用某种调度算法决定何时停止一个进程的工作,并转而为另一个进程提供服务。第17页/共255页进程基本概念进程基本概念阅读菜谱阅读菜谱准备原料准备原料烹制
8、菜肴烹制菜肴饭菜饭菜阅读洗衣机手册阅读洗衣机手册准备衣服、洗衣粉准备衣服、洗衣粉设定参数,洗衣服设定参数,洗衣服干净衣服干净衣服程序程序输入输入运行运行输出输出程序程序输入输入运行运行输出输出分时切换分时切换洗衣进程洗衣进程洗衣进程洗衣进程做饭进程做饭进程做饭进程做饭进程第18页/共255页l 进程的核心思想进程是某个程序在某个数据集合上的运行过程,它有程序、输入、输出和状态。在分时操作系统中,单个CPU被若干进程共享,它使用某种调度算法决定何时停止一个进程的运行,转而为其他进程提供服务。第19页/共255页操作系统维护一个程序计数器,在进程间切换操作系统维护一个程序计数器,在进程间切换对每一
9、个进程而言,都有独立的计数器和对每一个进程而言,都有独立的计数器和CPUCPU时间时间操作系统实现分时,任意时刻只有一个进程运行操作系统实现分时,任意时刻只有一个进程运行第20页/共255页进程是程序的执行,属于动态,程序是静态的进程的存在是暂时的,程序的存在是永久的进程程序数据PCB(进程控制块,process control block),即进程是一个程序及其数据在处理机上顺序地执行时所发生的活动。一个程序可以对应多个进程一个进程可以包含多个程序进程同程序的差别第21页/共255页一个程序对应两个进程第22页/共255页一个进程包括多个程序第23页/共255页结构特征 程序段、相关数据段和
10、PCB(进程控制块)进程实体动态性 由创建而产生,由调度而执行,由撤销而消亡 并发性 进程的重要特征,操作系统的重要特征独立性独立运行、独立分配资源、独立接受调度 异步性 按各自独立、不可预知的速度向前推进进程的特征第24页/共255页进程执行时的间断性,决定了进程可能具有多种状态。运行态:正在占用CPU运行程序阻塞态:等待外部事件发生,无法占用CPU就绪态:可运行,但其他进程正在占用CPU进程的三种基本状态第25页/共255页运行态运行态阻塞态阻塞态就绪态就绪态进程就绪,可以运行状态转换:进程等待外部事件,阻塞OS决定由哪个进程占用CPU,进程调度?第26页/共255页l运行态变为就绪态l
11、强制终止某进程的运行(系统原因)l运行态变为阻塞态l 运行进程等待外部事件发生(自身原因)l阻塞态变为就绪态l 外部事件已经发生,可准备运行l就绪态变为运行态l 停止其他进程运行后,运行该进程占用CPU第27页/共255页l问题1:为什么不能从阻塞态变为运行态呢?l问题2:为什么不能从就绪态变为阻塞态呢?l答案:l三种状态的变换体现了OS的资源管理作用l进程的核心思想在于运行CPU资源的分配第28页/共255页新(New)状态:是一个进程刚刚建立,但还未将它送入就绪队列时的状态。终止(Terminated)状态:一个进程已经正常结束或异常结束,OS已将它从就绪队列中移出,但尚未将它撤消时的状态
12、。挂起状态(暂停执行或不接受调度)终端用户的请求 父进程请求 负荷调节的需要(实时系统)操作系统的需要进程的复杂状态第29页/共255页是一个进程刚刚建立,但还未将它送入就绪队列时的状态一个进程已经正常结束或异常结束,OS已将它从就绪队列中移出,但尚未将它撤消第30页/共255页活动活动挂起挂起事件事件发生发生事件事件发生发生等待等待事件事件挂起挂起调度调度超时超时释放释放活动活动挂起挂起第31页/共255页 请在并发运行示意图中标识程序A、B的状态课堂讨论第32页/共255页l 重要的术语 Cocurrency&Parallel&MultiProgramming Program&Proces
13、s&Thread Running&Ready&Block&Suspend Dispatch&Activate&Suspend&Wakel 重要的思想 程序与进程:静态和动态的思想 多道程序:并发与互斥的思想 进程管理:杂七杂八好烦哪?第33页/共255页l为描述和控制进程的运行,系统为每个进程定义了一个数据结构进程控制块。lPCB(Process Control Block),是进程实体的一部分,记录了操作系统所需的、用于描述进程当前状况以及控制进程运行的全部信息。lOS是根据PCB来对并发执行的进程进行控制和管理的。l进程控制块是进程存在的惟一标志。当系统创建一个进程时,必须为它设置一个 P
14、CB,然后根据PCB的信息对进程实施控制管理,进程任务完成时,系统收回它的PCB,进程也随之消亡。2.1.5 进程控制块第34页/共255页l进程标识信息:PID,PPIDl用于惟一地标识一个进程。一个进程通常有两种标识符:1)内部标识符,数字标识符;2)外部标识符,它由创建者提供,描述进程的家族关系。l处理器状态信息:PC,PSW,堆栈指针、寄存器l进程调度信息:与进程调度和进程对换有关的信息,包括:进程状态、进程优先级、进程调度所需的其它信息、事件l进程控制信息:程序和数据的地址、进程同步和通信机制、资源清单、链接指针进程控制块中的信息第35页/共255页第36页/共255页思考:PCB是
15、进程存在的唯一标志 为什么?因因为为PCB PCB 1 1、包包含含了了进进程程的的描描述述信信息息和和控控制制信信息息,2 2、是是进进程程的的动动态态特特征征的的集集中中反反映映,3 3、系系统统根根据据PCBPCB而而感感知知某某一一进进程程的的存存在在,所所以以PCBPCB是是进进程程存存在在的的唯唯一一标标志志。(只只有有在在多多任任务务即即多多道道批处理系统中,才可能建立批处理系统中,才可能建立PCBPCB结构,该系统才具有进程活动结构,该系统才具有进程活动)第37页/共255页进程控制块的组织方式链接方式系统中可能拥有数十个、数百个乃至数千个PCB,如何组织?第38页/共255页
16、进程控制块的组织方式索引方式第39页/共255页进程的基本概念 进程控制 进程同步 经典进程的同步问题 进程通信 线程 第二章 进程管理第40页/共255页进程控制是指:进程的创建、撤消,进程状态转换的控制进程控制由进程控制原语、系统调用实现的进程控制第41页/共255页为了对进程控制,系统中必须设置一个机构,它具有创建撤消以及进程通讯和资源管理等功能,这样结构称为OS的内核(kernel)。内核本身并非一个进程,而是硬件的首次延伸,即它是加到硬件上的第一层软件。内核是通过执行各种原语操作来实现各种控制和管理功能的。第42页/共255页原语是机器指令的延伸,是用若干条机器指令构成的,用以完成特
17、定功能的一段程序。为保证操作的正确性,原语在执行期间是不可分割的。(1)(1)创建进程原语创建进程原语 (2)(2)撤消进程原语撤消进程原语 (3)(3)挂起进程原语挂起进程原语 (4)(4)解挂进程原语解挂进程原语(5)(5)阻塞进程原语阻塞进程原语(6)(6)唤醒进程原语唤醒进程原语(7)(7)调度进程运行原语调度进程运行原语(8)(8)改变优先级原语改变优先级原语第43页/共255页2.2.1 进程的创建l进程图(Process Graph):描述一个进程家族关系的有向树。l结点表示进程l有向边表示进程之间的父子关系l根表示进程家族的祖先l子进程可以继承父进程所拥有的资源第44页/共25
18、5页引起创建进程的事件(1)用户登录(分时系统)(2)作业调度(批处理系统)(3)提供服务(打印进程)(4)应用请求 系统内核创建进程系统内核创建进程应用程序创建进程应用程序创建进程第45页/共255页进程的创建步骤(Creation of Process)调用进程创建原语Create()(1)申请空白PCB (2)为新进程分配资源(内存等)(3)初始化进程控制块 (4)将新进程插入就绪队列 第46页/共255页程程序序中中的的第第1 1语语句句是是调调用用查查找找进进程程名名过过程程“Get Get Internal Internal Name Name”,参参数数为为进进程程外外部部名名n
19、 n。该该过过程程查查找找PCBPCB集集合合,如如已已有有此此同同样样外外部部名名进进程程则则返返回回出出错错消消息息,否否则则返返回回一一个个空空闲闲的的PCBPCB内部标识号内部标识号i i。第第2 2语语句句是是把把进进程程外外部部名名n n登登记记到到第第i i个个PCBPCB的的相相应应外外部部名名表表目目中。中。语句语句3 3是往是往PCBPCB中登记优先数。中登记优先数。语语句句4 4登登记记现现场场状状态态初初始始值值 S0S0到到 相相 应应 的的 现现 场场 保保 留留 区区 中中 或或CpustateCpustate中。中。procedure Create(n,Spro
20、cedure Create(n,S0 0,k,k0 0,M,M0 0,R,R0 0)beginbegin/请求分配请求分配PCBPCB空间空间 i:=Get Internal Name(n);i:=Get Internal Name(n);/初始化初始化PCB PCB Id(i):=n;Id(i):=n;Priority(i):=kPriority(i):=k0 0;Cpustate(i):=SCpustate(i):=S0 0;Main Store(i):=MMain Store(i):=M0 0;Resources(i):=RResources(i):=R0 0;Status(i):=St
21、atus(i):=ReadysReadys Parent(i):=CALLERParent(i):=CALLER/插入就绪队列插入就绪队列Insert(RL,i);Insert(RL,i);endend建立进程原语的工作大致描述为:第47页/共255页 ,分分别别记记入入主主存存和和资资源源的的初初始始占占有有情情况况,这这是是由由父父进进程程将将自自己己的的一一部部分分资资源源分分给给子子进进程的。程的。是是把把进进程程初初始始状状态态置置为为“挂起就绪挂起就绪”。语语句句 中中CALLERCALLER代代表表调调用用本本过过程程的的父父进进程程之之内内部部标标识识号号,将将它它记记入入子子
22、进进程程PCBPCB的的父父进进程程名名这这一一栏。栏。语语句句也也是是调调用用插插入入过过程程InsertInsert,其其中中RLRL表表示示就就绪绪队队列列,即即把把进程进程i i插入就绪队列。插入就绪队列。procedure Create(n,Sprocedure Create(n,S0 0,k,k0 0,M,M0 0,R,R0 0)beginbegin/请求分配请求分配PCBPCB空间空间 i:=Get Internal Name(n);i:=Get Internal Name(n);/初始化初始化PCB PCB Id(i):=n;Id(i):=n;Priority(i):=kPri
23、ority(i):=k0 0;Cpustate(i):=SCpustate(i):=S0 0;Main Store(i):=MMain Store(i):=M0 0;Resources(i):=RResources(i):=R0 0;Status(i):=Status(i):=ReadysReadys Parent(i):=CALLERParent(i):=CALLER/插入就绪队列插入就绪队列Insert(RL,i);Insert(RL,i);endend第48页/共255页引起进程终止(Termination of Process)的事件l 正常结束l 异常结束l 越界错误、保护错、非法指
24、令、特权指令错、运行超时、等待超时、算术运算错、I/O故障l 外界干预l操作员或操作系统干预(如死锁)、父进程请求、父进程中止 2.2.2 进程的终止第49页/共255页进程的终止过程l 根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态l 若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度l 若该进程还有子孙进程,还应将其所有子孙进程予以终止,以防他们成为不可控的进程l 将被终止进程所拥有的全部资源,或者归还给其父进程,或者归还给系统l 将被终止进程(它的PCB)从所在队列(或链表)中移出第50页/共255
25、页l引起进程阻塞与唤醒的事件l请求系统服务 l启动某种操作 l新数据尚未到达 l无新工作可做 2.2.3 进程的阻塞与唤醒第51页/共255页 正在执行的进程,当发现上述某事件时,由于无法继续执行,于是进程便通过调用阻塞原语block把自己阻塞。1.立即停止执行,把进程控制块中的现行状态由“执行”改为阻塞;2.将PCB插入阻塞队列;3.转调度程序进行重新调度,将处理机分配给另一就绪进程,并进行切换。进程的阻塞过程第52页/共255页 当被阻塞进程所期待的事件出现时,则由有关进程调用唤醒原语wakeup(),将等待该事件的进程唤醒。1、把被阻塞的进程从阻塞队列中移出2、将其PCB中的现行状态由阻
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 教学 02
限制150内