欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > PPT文档下载  

    操作系统进程管理.ppt

    • 资源ID:250635       资源大小:1.77MB        全文页数:111页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    操作系统进程管理.ppt

    1,基础:进程描述及控制策略:进程调度实现:互斥与同步避免:死锁与饥饿解决:几个经典问题关于:进程通信,2,第二章 进程管理,3,本章重点,如何理解进程 进程与程序的区别 进程的同步 如何理解线程,4,2.1进程的基本概念,5,1.程序的顺序执行,仅当前一操作(程序段)执行完后,才能执行后继操作。例如:S1:a=x+y;S2:b=a-5;S3:c=b+1;,三条语句的顺序执行,S,1,S,2,S,3,6,2.程序顺序执行时的特征,顺序性处理机的每一操作必须在上一个操作结束之后开始。(2)封闭性程序一旦开始执行,其执行结果不受外界因素影响。(3)可再现性只要程序执行时的环境和初始条件相同,当程序重复执行时,都将获得相同的结果。,7,3.前趋图,有向无循环图(DAG),用于描述进程之间执行的前后关系,表示方式:(1)p1p2(2)=(p1,p2)|p1 必须在p2开始前完成结点表示:一条语句,一个程序段,一进程。,8,4.程序的并发执行,多个程序的并发执行(可能性分析),在该例中存在下述前趋关系:IiIi+1,CiCi+1,PiPi+1,IiCi,CiPi,9,例:S1:a=x+2 S2:b=y+4 S3:c=a+b S4:d=c+b,10,5.程序并发执行时的特征间断性:共享、合作、制约导致:执行暂停执行失去封闭性:主要由共享资源引起不可再现性:相同环境和初始条件,重复执行结果不同,程序AL1:N:=N+1,程序BL2:PRINT(N)N:=0,设共享变量N初值为5,则会产生3种执行结果:6,6,05,0,15,6,0,11,6.进程的特征,进程的概念进程是进程实体的运行过程,是分配和管理资源的基本单位。举例:炒菜,12,进程的特征1.结构特征2.动态性(进程最基本的特征)“由创建而产生,由调度而执行,由撤销而消亡”3.并发性多个进程同在内存中,且能在一段时间内同时运行。4.独立性独立运行,独立分配资源和独立接受调度。5.异步性进程按各自独立的、不可预知的速度向前推进,13,程序是静态的,进程是动态的;(菜谱、炒菜)进程具有并发特征,而程序没有;进程是系统分配调度的独立单位,能与其他进程并发执行;一个程序对应多个进程,一个进程为多个程序服务。,进程与程序的区别:,14,7.进程的三种基本状态(1)就绪状态 进程已经分配了除处理机以外的所有必要资源,只要再获得处理机就能够执行的状态。这样的进程可能有多个,通常排成一个队列,称就绪队列。(2)执行状态 已经获得CPU,正在运行。在单处理机系统只有一个进程处于执行状态,多处理机系统则有多个处于执行状态。(3)阻塞状态 正在执行的进程由于发生某事件而暂时无法继续执行时,放弃处理机而进入的状态,又称等待状态。引起阻塞的状态:请求I/O,申请缓存。,15,进程的基本状态转换,就绪,阻塞,执行,进程调度,I/O请求,I/O完成,时间片完,16,8.挂起状态(被换出内存的状态)引入原因终端用户请求父进程请求负荷调节需要操作系统需要挂起引起的状态转换,挂起状态,非挂起状态,静止状态,活动状态,17,有挂起状态的进程状态图,执行,活动就绪,静止就绪,静止阻塞,活动阻塞,18,9.进程的创建状态和终止状态,就绪,阻塞,执行,进程调度,I/O请求,I/O完成,时间片完,创建,终止,许可,释放,图:进程的五种基本状态及转换,19,有挂起状态的进程状态图,执行,活动就绪,静止就绪,静止阻塞,活动阻塞,创建,终止,许可,许可,释放,20,10.进程控制块,回顾进程结构Process Control BlockPCB是OS中最重要的记录型结构。OS用PCB对并发进程进行管理和控制。PCB是进程存在的唯一标志。(PCB的作用)PCB常驻内存OS专门开辟PCB区将所有的PCB组织成若干个链表或队列。进程控制块中的信息标识说明信息现场信息管理信息,进程名,进程状态,程序存放位置,数据存放位置,通用寄存器内容,控制寄存器内容,断点地址,进程优先数,队列指针,标识信息,说明信息,现场信息,管理信息,21,PCB的组织方式链接,执行指针,就绪队列指针,阻塞队列指针,空闲队列指针,22,索引,23,2.2进程控制,24,进程管理中最基本功能是进程控制进程控制任务:进程的创建、终止、进程状态的转变等进程控制一般由OS内核实现,25,1.原语(Primitive),由若干条指令组成,用于完成一定功能的一个过程。在管态下执行,常驻内存。在执行过程中不允许被中断,因此是顺序的而不可能是并发的。,26,2.进程图,27,3.进程的创建,引起创建进程的事件(1)用户登录(2)作业调度(3)提供服务(4)应用请求进程的创建步骤:使用原语Create()(1)申请空白PCB;(2)为新进程分配资源;(3)初始化进程控制块;(标识信息、处理机状态、处理机控制信息)(4)将新进程插入就绪队列。,由系统内核创建,由自己创建,28,4.进程的终止,引起进程终止的事件,正常结束,异常结束,外界干预,a.越界错误,b.保护错,c.非法指令,d.特权指令错,e.运行超时,f.等待超时,g.算术运算错,h.I/O故障,a.操作员或OS干预,b.父进程请求,c.父进程终止,29,进程的终止过程:a.从PCB集合中检索出该进程的PCB,从中读出该进程的状态;b.若处于执行状态,终止该进程的执行,并置调度状态为真,重新调度;c.若有子孙进程,将所有子孙进程终止;d.将进程全部资源归还其父进程或系统;f.将其PCB从所在队列(或链表)中移出。,30,5.进程的阻塞与唤醒,引起进程阻塞和唤醒的事件(1)请求系统服务(2)启动某种操作(3)新数据尚未到达(4)无新工作可做进程阻塞过程使用Block原语,是进程自身的一种主动行为,31,进程唤醒过程使用Wakeup原语注意:Block和Wakeup是一对作用相反的原语,由其它进程执行,32,6.进程的挂起与激活,进程的挂起过程由进程自己或其父进程调suspend原语完成,将该进程PCB移到内存指定区域。检查被挂起进程的状态,若处于活动就绪状态,将其改为静止就绪;对于活动阻塞状态的进程,将之改为静止阻塞;若被挂起的进程正在执行,则转向调度进程重新调度。进程的激活过程系统执行active原语将指定进程激活。先将进程从外存调入内存,检查该进程的现行状态,若是静止就绪,将之改为活动就绪;若为静止阻塞,将之改为活动阻塞。阻塞、唤醒一般由OS实现,而挂起与激活可由用户干预。,33,2.3进程同步,34,进程同步的主要任务:并发进程在执行次序上的协调,以达到有效的资源共享和相互合作,使程序执行有可再现性。,35,1.进程的两种制约关系,间接制约:进程间由于共享某种系统资源,而形成的相互制约。超市的试衣间抢占问题火车的厕所的抢占问题直接制约:进程间由于合作而形成的相互制约。多个合作进程,各自的执行结果互为对方执行的条件,从而限制执行速度。生产者消费者问题,进程A,进程B,进程A,进程B,资源,36,2.进程的两大关系,互斥 是并发执行的多个进程由于竞争同一资源而产生的相互排斥的关系同步 是进程间共同完成一项任务时直接发生相互作用的关系 同步进程间具有合作关系,在执行时间上必须按一定的顺序协调进行,37,3.临界资源(cirtical resource),系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源或共享变量。如打印机、磁带机、表格(商场试衣间、火车卫生间)。,38,可把一个访问临界资源的循环进程描述如下:repeat entry section critical section;exit section remainder section;until false;,4.临界区(cirtical section),在每个进程中访问临界资源的那段程序。进程必须互斥进入临界区。,检查临界资源是否能访问,将临界区标志设为未访问,39,5.同步机制应遵循的四条准则,空闲让进忙则等待有限等待让权等待当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态。,40,6.信号量机制,41,(6.1)信号量,信号量是一种数据结构信号量的值与相应资源的使用情况有关信号量的值仅由P、V操作改变,42,(6.2)整型信号量,整型数 SP操作(wait)原语V操作(signal)原语,Wait(s):while s=0 do no-op s:=s-1;Signal(s):s:=s+1;,注意:wait(s)和signal(s)是原子操作 只要信号量S=0就不断测试,不满足“让权等待”,43,(6.3)记录型信号量,记录型结构,包含两个数据项 type semaphore=record value:integer;L:list of process;endL:为进程链表,用于链接所有等待该类资源进程。S.value:为资源信号量,其初值:某类资源的数目,44,wait操作:申请一个单位资源procedure wait(S)var S:semaphorebeginS.value:=S.value 1;if S.value 0 then block(S.L)end,45,signal操作:释放一个单位资源procedure signal(S)var S:semaphonebeginS.value:=S.vaule+1if S.value=0 then wakeup(S.L)end,46,强调:(1)S.value=0:表示系统中可用的资源数量(2)S.value0:其绝对值表示已阻塞的进程数量(3)根据信号量使用方式的不同,可分为:互斥信号量:申请或释放资源的使用权,初值为1资源信号量:申请或归还资源,初值为大于等于1的正整数,表示系统中某资源的可用数目。,47,(6.4)AND型信号量,process A:process B:wait(Dmutex);wait(Emutex);wait(Emutex);wait(Dmutex);,若两进程交替执行,则死锁,基本思想:将进程在整个运行中需要的所有资源,一次性全部分配给进程,待进程使用完后一起释放。,48,在wait中加入AND条件,又称AND同步或同时wait操作:SwaitSwait(s1,s2,sn)if s11 and and sn 1 then for i:=1 to n do si:=si-1;endforelse当发现第一个si1就把该进程放入等待队列,并将其程序计数器置于Swait操作的开始位置end if,49,Ssignal(s1,s2,sn)for i:=1 to n do si:=si+1;将所有等待si的进程由等待队列取出放入到就绪队列 endfor,50,(6.5)信号量集,为提高效率而对AND信号的扩充。针对两类问题:一次需N个某类资源,需进行N次wait(S)操作的情况当资源数量低于某一下限值时,不予以分配的情况,51,信号量集代码描述,Swait(S1,t1,d1,S2,t2,d2,Sn,tn,dn)if S1=t1 and and Sn=tn thenfor i:=1 to n do Si:=Si-di;endforelse 当发现第一个siti就把该进程放入等待队列,并将其程序计数器置于Swait操作的开始位置endifSsignal(S1,d1,S2,d2,,Sn,dn)for i:=1 to n do Si:=Si+di;将所有等待si的进程由等待队列取出放入到就绪队列endfor;,52,三种特例:(1)Swait(S,d,d)允许每次申请d个资源。当资源数少于d时,不予分配。(2)Swait(s,1,1)S1,记录型信号量。S=1时,互斥型信号量。(3)Swait(s,1,0)可控开关,当S1时,允许进入,S0时,不能进入。,53,7.信号量应用之一利用信号量实现进程互斥,var mutex:semaphore:=1beginparbeginprocess1:beginrepeat wait(mutex);critical setion signal(mutex);remainder sectionuntil false;end,54,process2:begin repeat wait(mutex);critical setion signal(mutex);remainder sectionuntil false;endparend,55,在实现互斥时应注意:wait(mutex)和signal(mutex)必须成对的出现缺wait(mutex)将会引起系统混乱,不能保证对临界资源的互斥访问缺signal(mutex)将会使该临界资源永久不被释放,56,图212 前趋图举例,8.信号量应用之二利用信号量实现前驱关系,57,Var a,b,c,d,e,f,g:semaphore:=0,0,0,0,0,0,0;Beginparbegin begin S1;signal(a);signal(b);end;begin wait(a);S2;signal(c);signal(d);end;begin wait(b);S3;signal(e);end;begin wait(c);S4;signal(f);end;begin wait(d);S5;signal(g);end;begin wait(e);wait(f);wait(g);S6;end;parendend,58,管程的提出 采用wait()-signal()同步机制来编写并发程序,对于共享变量及信号量变量的操作将被分散于各个进程中 缺点:易读性差:因为要了解对于一组共享变量及信号量的操作是否正确,则必须通读整个系统或者并发程序。不利于修改和维护:因为程序的局部性很差,所以任一组变量或一段代码的修改都可能影响全局。,9.管程机制,59,管程的定义 一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中的数据。管程的组成名称数据结构说明对该数据结构进行操作的一组过程/函数初始化语句,60,局部于管程的数据结构,仅被局部于管程的过程访问。局部于管程的过程,也仅能访问管程内的数据结构。管程(相当于围墙)把共享变量和对它进行操作的若干过程围起来。,61,管程的语法,type monitor_name=MONITOR;define;use;procedure();begin end;function():值类型;begin end;begin;end,62,2.4 经典进程的同步问题,63,一组生产者进程生产产品给一组消费者进程消费。为使他们并发执行,设一个有n个缓冲区的缓冲池,生产者一次向一个缓冲区中投入消息,消费者从一个缓冲区中取得消息。生产者消费者问题实际上是相互合作进程关系的一种抽象。制约关系:(1)不允许消费者进程到一个空缓冲区中取产品;(2)不允许生产者进程到一个已满且还没被取走的缓冲区中投放产品,1.生产者消费者问题,信号量,64,(1.1)利用记录型信号量来解决,设有n个缓冲区,每个缓冲区存放一个消息,用互斥信号量mutex对缓冲池实现互斥访问;利用资源信号量empty和full分别表示缓冲池中空缓冲区及满缓冲区的数量;问题描述:Var mutex:semaphore:=1;empty:semaphore:=n;full:semaphore:=0;buffer:array0,n-1of item;in,out:integer:=0,0;,65,Producer:begin repeat producer an item nextp;wait(empty);wait(mutex);buffer(in):=nextp;in:=(in+1)mod n;signal(mutex);signal(full);until false;end;,Consumer:begin repeat wait(full);wait(mutex);nextc:=buffer(out);out:=(out+1)mod n;signal(mutex);signal(empty);consumer the item in nextc;until false;end,66,注意:每个程序中互斥的wait(mutex)和signal(mutex)必须成对出现对资源信号量empty和full的P、V操作成对出现,但它们分别处于不同的程序中,例如P在计算进程中,而V则在打印进程中,计算进程若因执行P而阻塞,则以后将由打印进程将它唤醒每个程序中的P操作顺序不能颠倒。应先执行对资源信号量的P操作,然后再执行对互斥信号量的P操作,否则可能引起进程死锁。,67,var mutex,empty,full:semaphore:=1,n,0;buffer:array0,n-1 of item;in out:integer:=0,0;begin parbegin producer:begin repeatproduce an item in nextp;Swait(empty,mutex);buffer(in):=nextp;in:=(in+1)mod n;Ssingal(mutex,full);until false;end,(1.2)利用AND信号量来解决,Consumer:begin repeat Swait(full,mutex);nextc:=buffer(out);out:=(out+1)mod n;Ssignal(mutex,empty);consumer the item in nextc;until false;end Parendend,68,有5个哲学家,他们的生活方式是交替的进行思考和进餐。,2.哲学家进餐问题,分析:(1)筷子是临界资源,在一段时间内只允许一个哲学家使用(2)用一个信号量表示一支筷子,由这5个信号量构成信号量组。var chopstick:array04of semaphore(3)所有信号量被初始化为1,69,(2.1)利用记录型信号量来解决,Repeatwait(chopsticki);wait(chopstick(i+1)mod 5);eatsignal(chopsticki);signal(chopstick(i+1)mod 5);think;Until false,产 生 死 锁,70,解决方法,(1)至多4个人同时拿起左边的筷子,保证至少有一个人可以进餐,最终释放筷子使更多的人进餐。(2)仅当哲学家的左右两支筷子均可用时,才允许他拿起筷子进餐。(3)规定奇数号哲学家先拿起其左边的筷子,再拿右边的,偶数号哲学家则相反。即:第1、2个人竞争1号筷子,第3、4个人竞争3号筷子,即5个人都先竞争奇数号筷子,获得后,再去竞争偶数号筷子,最后总会有某一人进餐。,71,利用记录型信号量解决哲学家进餐问题,Var:chopsticki(i=0.4)of semaphore;room of semaphore;chopsticki=1;room=4;repeatwait(room)wait(chopsticki)wait(chopstick(i+1)mod 5)eat;signal(chopstick(i+1)mod 5)signal(chopsticki)signal(room)thinkUntil false,72,(2.2)利用AND信号量解决哲学家进餐问题,Var chopstick:array0,4 of semaphore:=(1,1,1,1,1);processi Repeat think;Swait(chopstick(i+1)mod 5,chopsticki);eat Ssignal(chopstick(i+1)mod 5,chopsticki);Until false,73,方案3:利用记录型信号量解决哲学家进餐问题,Var:chopsticki(i=0.4)of semaphore;chopsticki=1;repeatif i mod 2=0 thenwait(chopsticki)wait(chopstick(i+1)mod 5)eatsignal(chopsticki)signal(chopstick(i+1)mod 5)elsewait(chopstick(i+1)mod 5)wait(chopsticki)eatsignal(chopstick(i+1)mod 5)signal(chopsticki)endUntil false,74,有两组并发进程:读者和写者,共享一组数据区 要求:允许多个读者同时执行读操作 不允许读者、写者同时操作 不允许多个写者同时操作所谓读者写者问题是指保证一个Writer进程必须与其他进程互斥的访问共享对象的同步问题。,3.读者写者问题,75,(3.1)利用记录型信号量来解决,信号量设置:(1)为解决一个Writer进程和其它Reader进程互斥,设互斥信号量wmutex(2)设置整型变量Readercount表示正在读的进程数目(3)Readercount是一个可被多个Reader进程访问的临界资源,为它设置互斥信号量rmutex(4)仅当Readercount=0表示无Reader进程在读时,Reader进程才需要执行P操作。若P操作成功,Reader进程便可去读,使Readercount+1,原因是?(5)Readercount0,说明已有Reader进程在安全的读数据。,76,Var rmutex,wmutex:semaphore:=1,1;Readcount:integer:=0;Reader:begin repeat wait(rmutex);if Readcount=0 then wait(wmutex);Readcount:=Readcount+1;signal(rmutex);perform read operation;wait(rmutex);Readcount:=Readcount-1;if Readcount=0 then signal(wmutex);signal(rmutex);until false;end,Writer:begin repeat wait(wmutex);perform write operation;signal(wmutex);until false;end,77,(3.2)利用信号量集机制来解决,Var RN:integer;L,mx:semaphore:=RN,1;Reader:begin repeat Swait(L,1,1);Swait(mx,1,0);perform read operation;Ssignal(L,1);until false;end,Writer:begin repeat Swait(mx,1,1;L,RN,0);perform write operation;Ssignal(mx,1);until false;end,78,练习,79,苹果桔子问题,桌上有一只盘子,每次只能存放一个水果。一家四口人各行其职,爸爸专向盘子中放苹果(apple),妈妈专向盘子中放桔子(orange),儿子专等吃盘子中的桔子,女儿专等吃盘子里的苹果。请用PV操作来实现四人之间的同步算法。,80,记录型信号量解决苹果桔子问题,81,和尚取水问题,北邮考研题:寺庙里有老小和尚若干和一水缸,小和尚打水,老和尚饮水。水缸容积为10桶水,水取自同一水井,每次只容一个桶打水,桶的总数为3个,每次往水缸倒水和从水缸取水仅为一桶。,82,有一座东西方向的独木桥,用P,V操作实现:(1)每次只允许一个人过桥;(2)当独木桥上有行人时,同方向的行人可以连续过桥,相反方向的人必须等待。(3)当某一方向无人过桥时,另一方向的行人可以过桥。,83,习题(多缓冲区问题),上图描述的生产者消费者问题中,如果其缓冲区部分为n个长度相等的有界缓冲区组成,且每次传输数据长度等于有界缓冲区长度以及生产者和消费者可对缓冲区同时操作。试重新描述生产过程和消费过程。,84,2.5 进程通信,85,进程通信是指进程之间的信息交换交换的信息量 一个状态或数值 上千个字节,86,(1)低级通信:进程的互斥和同步(2)高级通信:指用户可直接利用OS提供的一组通信命令,高效的传送大量数据的一种通信方式。对用户透明。(a)共享存储器系统(b)消息传递系统(c)管道通信,1.进程通信的分类,87,(a)共享存储器系统,基于共享数据结构的通信方式:produce-consume中的缓冲区,低效,不透明。系统只提供了一共享存贮器,适于少量通信。基于共享存储区的通信方式:系统提供:共享存储区。通信过程:(1)向系统申请一个或多个分区(2)获得分区后即可读/写.,88,(b)消息传递系统,信息交换的单位是消息或报文分成两种:直接通信方式发送进程直接把消息发送给目标进程发送进程和接收进程都以显式方式分别提供对方的标识符系统提供两个通信原语:Send(Receiver,message)Receive(Sender,message)举例间接通信方式通过共享数据结构的实体进行通信(信箱)优点:既可实现实时通信,又可实现非实时通信信箱的创建与撤销:信箱名、属性(公用、私用、共享)消息的发送与接收:Send(mailbox,message)Receive(mailbox,message),89,例:解决生产者消费者问题。repeat produce an item in nextp;send(consumer,nextp);until false;repeat receive(producer,nextc);consumer the item in nextc;until false;,90,信箱类型私用信箱:用户进程创建公用信箱:操作系统创建共享信箱:一般进程创建发送接收进程之间的关系一对一关系多对一关系(客户和服务器)一对多关系(广播)多对多关系:公用信箱,91,(c)管道通信,管道:连接一个读进程和一个写进程之间通信的共享文件,又称pipe文件。功能:大量的数据发收。管道通信必需的协调能力:(1)互斥(2)同步(3)对方是否存在,92,2.消息传递系统实现中的几个问题,(2.1)、通信链路:(1)显式建立:(进程完成,用于计算机网络)(2)隐式建立:(系统完成,用于单机通信)链路类型:由连接方法分:点点链路多点链路由通信方式分:单向双向由容量分:无容量(无缓冲区)有(有缓冲区),93,(2.2)、消息格式:消息头和消息正文两部分依据网络进程间通信与本机进程间通信不同。单机系统中,,94,(2.3)、进程同步方式发送和接收进程阻塞(汇合)用于紧密同步,无缓冲区时。发送进程不阻塞,接收进程阻塞(多个)相当于接收进程(可能是多个)一直等待发送进程,如:打印进程等待打印任务。发送/接收进程均不阻塞一般在发、收进程间有多个缓冲区时。,95,3.消息缓冲队列通信机制,(3.1)、数据结构1.消息缓冲区type message buffer=recordsender:size:text:next:end2.PCB中应增数据项:type pcb=recordmq 消息队列指针mutex 互斥信息量sm资源信息量end,96,两个进程利用消息缓冲区通信过程,97,(3.2)、发送原语 procedure send(receiver,a)begingetbuf(a.size,i);i.sender:=a.sender;i.size:=a.size;i.text:=a.text;i.next:=0;getid(PCB set,receiver.j);wait(j.mutex);insert(j.mq,i);signal(j.mutex);signal(j.sm);end,98,(3.3)、接收原语procedure receive(b)begin j:=internal name;wait(j.sm);wait(j.mutex);remove(j.mq,i);signal(j.mutex);b.sender:=i.sender;b.size:=i.size;b.text:=i.text;end,99,2.6 线程,100,1.线程的引入,OS中引入进程的目的是,为了描述和实现多个程序的并发执行,以改善资源利用率及提高系统的吞吐量。为什么还需要了引入线程呢?这是为了减少程序并发执行时系统所付出的额外开销,使OS具有更好的并发性。进程的两个基本属性:(1)进程是一个拥有资源的独立单位;(2)进程同时又是一个可以独立调度的基本单位。,101,对于进程,系统必须完成的操作:创建进程撤消进程进程切换缺点:时间空间开销大,限制并发度的提高,102,由进程到线程目标:既能提高进程并发度,又能降低系统的额外开销;实现:将进程的资源申请和调度属性分开。即进程作为资源的申请和拥有者,但不作为调度的基本单位。这样就产生了线程的概念。线程是系统独立调度和分派的基本单位其基本上不拥有系统资源,只有少量资源(程序读数器,寄存器,堆栈)线程可与同属一个进程的其他线程共享其所属进程所拥有的全部资源。,103,2.线程的状态状态参数寄存器状态、堆栈、运行状态、优先级、线程专有存储器、信号屏蔽线程的运行状态:就绪、执行和阻塞一般不具有挂起状态 3.对线程的操作创建:当系统创建一个进程时,同时也为该进程派生一个线程,同一进程中的线程可以再派生其它线程。阻塞:当线程需要等待某事件时,它将被阻塞,释放处理机执行其它线程。解除阻塞:当线程的阻塞事件发生,其状态转换为就绪,并插入到就绪队列,等待调度执行。终止:自愿退出、强制退出注意:线程阻塞不一定会引起整个进程的阻塞。,104,4、线程与进程的比较,调度线程是调度和分派的基本单位,而进程是资源拥有的基本单位。并发性不仅进程之间可以并发执行,而且在一个进程中的多个线程之间也可并发执行(如:文件服务进程)拥有资源 进程都是拥有资源的一个独立单位;线程除了拥有很少的私有资源以外,不能申请系统资源系统开销创建与撤销:进程线程切换:进程:上下文切换 线程:仅涉及少量寄存器。,105,5.线程的属性轻型实体独立调度和分派的基本单位可并发实体共享进程资源6.多线程os中的进程拥有系统资源的基本单位状态转移与线程有关7.信号量机制私用信号量(private semaphore)作用域在一个进程中公用信号量(public semaphore)作用于多个进程间,106,8、线程的实现方式,线程的分类,内核级和用户级线程,(1)用户级线程不依赖于内核,全部由支持线程的应用程序完成,内核并不知道线程的存在;?用户级线程阻塞是否会引起整个进程阻塞呢?(2)内核级依赖内核,其创建、撤消和切换都由内核实现,在内核中为其保留一张线程控制块。,107,108,比较:1.线程的调度和切换速度内核级线程切换类似于进程切换,但速度快于进程切换。用户级线程切换通常发生在同一用户进程的诸线程间,无需进入内核,更快。2.系统调用(用户级线程对内核是以进程为单位;这时进入系统态,并阻塞调用者)当一个进程含多个用户线程,其中某一个线程进行系统调用,由于内核不知道这些线程的存在,因此将进程阻塞。当一个进程含多个系统线程,其中某一线程进行系统调用,则阻塞该线程,进程仍可运行。3.线程执行时间(用户级以用户进程为单位;由内核分配)用户级线程以进程为单位平均分配时间,对线程间并发执行并不有利。系统级线程以线程为单位平均分配时间。,109,本章小结,为什么引入进程?进程的概念、结构、状态及其转换进程的控制,控制什么,如何实现进程并发控制进程同步进程互斥:临界资源、临界区进程通信进程互斥与同步信号量方法:信号量定义、类型、原语、应用管程方法消息通信方法线程多线程进程与线程线程的类型:用户级线程、系统级线程,110,若信号量的初值为2,当前值为-3,则表示有()等待进程。A 1个 B 2个 C 3个 D 5个在操作系统中,()是竞争和分配计算机系统资源的基本单位。A 程序 B 进程 C 作业 D 用户下面哪一个不会引起进程创建()A 用户登录 B 作业调度 C 设备分配 D 应用请求进程和程序的本质区别是()A 内存和外存 B 动态和静态特征 C共享和独占使用计算机资源 D顺序和非顺序执行机器指令 在多进程的系统中,为了保证公共变量的完整性,各进程应互斥进入临界区。所谓临界区是()A 一个缓冲区 B 一个数据区 C 一种同步机构 D 一段程序,111,在一辆公共汽车上,司机和售票员各行其职,司机负责开车和到站停车,售票员负责售票和开、关门,当售票员关好车门后,驾驶员才能继续开车行驶。用P、V操作实现司机与售票员之间的同步。,

    注意事项

    本文(操作系统进程管理.ppt)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开