第三章并发性_第1页
第三章并发性_第2页
第三章并发性_第3页
第三章并发性_第4页
第三章并发性_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上章回顾什么是进程,以及进程的控制块两状态模型和五状态模型进程的描述以及进程创建,切换线程的功能特性以及与进程比较Linux进程与线程的管理并发性第3章预习检查并发包含的设计问题有哪些?进程间通信,资源共享与竞争,多个进程的同步,分配给进程处理器时间支持并发的基本需求是什么?加强互斥的能力在信号量上可以执行什么操作?初始化,semwait,semsignal.发生死锁的必须的三个条件是什么?互斥,占有且等待,非抢占以及第四个条件是什么?循环等待本章目标掌握同步,互斥,临界区,死锁,饥饿等概念掌握常见的同步方式:semaphore,消息传递了解生产者/消费者,读者/写者模型,哲学家就餐模型掌握Linux下的同步机制本章结构并发行并发的原理信号量消息传递读者-写者问题死锁原理死锁预防哲学家就餐问题UNIX的并发机制Linux内核并发机制并发性并发是操作系统设计的基础进程间通信资源共享和竞争多个活动进程的同步处理器的时间分配上下文多个应用程序结构化应用程序操作系统结构并行性概念的解释临界区是一段代码,在这段代码中进程将访问共享资源。死锁两个或两个以上的进程因其中的每个进程都在等待其他进程做完某些事情而不能继续执行活锁两个或两个以上的进程为了响应其他进程中的变化而继续改变自己的状态但不做有用的工作并行性概念的解释互斥当一个进程在临界区访问共享资源时,其他进程不能进入该临界区访问任何共享资源竞争条件多个线程或者进程在读写一个共享数据时结果依赖于它们执行的相对时间饥饿是指一个可运行的进程尽管能继续执行,但被调度器无限期地忽视,而不能被调度执行的情况1-1并发的难点共享的全局资源操作系统很难对分配资源进行优化的处理定位程序设计的错误非常困难1-1简单的例子voidecho(){ chin=getchar(); chout=chin; putchar(chout);}ProcessP1 ProcessP2. . chin=getchar(); .. chin=getchar();chout=chin; chout=chin;putchar(chout); .. putchar(chout);. .1-2竞争条件竞争条件发生在当多个进程或者线程在读写数据时,其最终的结果依赖于多个进程的指令执行顺序。例如,P1,P2共享变量aP1:a=1P2:a=2P2:a=2P1:a=1a=以赖于进程的执行顺序1-3操作系统关心的是?追踪每个活跃的进程分配和释放各种资源处理器时间存储器文件IO设备保护数据和资源一个进程的功能和输出结果必须与速度无关1-4进程的交互进程间相互不知道对方进程间接知道对方进程直接知道对方1-4进程的交互知道程度关系一个进程对其他进程的影响潜在的控制问题进程间相互不知道对方竞争一个进程的结果与其他进程的活动无关进程的计时可能会受到影响互斥死锁饥饿进程间接知道对方(如共享对象)通过共享合作一个进程的结果可能依赖于从其他进程获得信息进程的计时可能会受到影响互斥死锁(可复用的资源)饥饿数据一致性进程直接知道对方(它们有可用的通信原语)通过通信合作一个进程的结果可能依赖于从其他进程获得信息进程的计时可能会受到影响死锁(可消费的资源)饥饿1-4进程间的资源竞争互斥临界区使用临界资源的那一部分代码一次只允许一个程序在临界区中例如,在某一时间,只有一个进程可以给打印机发送命令死锁饥饿1-揉5互斥巧的要妄求一次幸只允帐许一调个进核程进花入临蚕界区非临界苏区停亮止的藏进程蔑必须砍不干恨涉其碗他进永程不会丛出现雕饥饿外和死锁当没有锋进程遗在临碗界区肉时,帅必须耕能够偶立即镇进入对进程尖的速瘦度和奔处理昨器的拣数目腥没有系要求晒和限挡制进程跌驻留在临严界区般的时姓间必列须是津有限漫的2-树1信号闹量(s单em洗ap匹ho予re薄)一个等庙待信凶号量转的进程柳被挂悟起,贺直到危接收魔到信滤号量特殊的整沾型变量(s蒜),定歉义三脂种操雅作se重mS典ig魔na旧l操作节:s=丝式s+透1,S<刺=0锄,内se铜mW算ai河t操作踪蝶阻塞探的进兵程解匠除阻蜂塞se密mW呀ai颈t操作冬:s=哄s-歪1,s<爹0时,从执行se验mW专ai发t被阻夹塞初始丈化成朝非负归数2-角1信号煤量原允语2-茎1二元拖信号叙量原谦语192-肝1使用号信号漂量的录互斥2-傲1使用零信号肠量的变互斥2-宵1使用确信号窗量的盗互斥2-腥2生产凳者/消费骂者问陡题一个能或多穿个生桌产者朱产生番某种炉类型衰的数摘据,孙并放塑置在股缓冲羊区中一个羞消费武者从剖缓冲图区中盯取数域据,版每次钥取一攻项任何傻时候只有暴一个贫代理(生产耀者/消费栽者)可以猎访问吼缓冲港区2-纪2生产讨者/消费趴者问看题Pr线od僚uc抖er百:wh迁il车e先(t功ru非e)才{/*绣p赔ro熊du值ce禁i奇te茫m榴v至*/b[堆in皇]莲=惑v;in聋++错;}Co趴ns天um幻玉erwh蓝il鸦e脖(t郊ru行e)咏{wh剩il蜂e迷(i拜n区<=侄o帅ut宋)/*截do投no艺th通in套g眯*/籍;w搭=嗓b[顽ou炮t]膨;ou钻t+雀+;/*途c需on估su最me支i冰te乡丰m尿w道*/}使用最无限傍缓冲耳区2-殃2生产炎者/消费妈者问爱题2-标2生产谨者/消费既者问但题pr详od驳uc失er即:wh桑il读e贤(t狗ru棕e)会{/*娇p绞ro秒du拆ce仔i粱te浪m槐v艰*/wh剥il仍e竞((材in唉+蓬1范)%神n蹦==锋o巡寿ut节)缸/始*供do谎n箭ot盒hi那ng顷*竟/;b[怕in短]的=旬v;in蚀=僵(糠in逢+迫1火)晨%涌n}co漠ns属um胀er恨:wh太il婆e盒(t回ru篇e)递{wh弓il协e不(i封n境==额o咬ut酸)/*症d零o孤no笛th揪in播g亲*/瘦;w土=累b[屋ou巴t]警;ou斥t盼=耳(o习ut镰+横1呼)戏%饲n;/*腐c奔on狂su柳me根i碗te致m大w邻*/}使用就有限肃循环音缓冲喝区2-秒2使用斗循环迁缓冲衫区2-何2生产罩者/消费婆者问柱题2-沙2生产重者/消费沿者问象题2-亿2生产势者/消费遭者问庄题2-倦2生产博者/消费静者问踩题阶段埋总结3-关1消息马传递互斥进程令间需殿要同撑步合作进程棕间需墙要交夜换信概息原语se径nd半(枕de豪st义in值at犬io备n,蚂m祖es稳sa惯ge杰)re兴ce责iv钻e狐(s浙ou另rc喂e,悔m岁es垦sa庭ge傻)3-习1同步发送屯者或隐接收尘者都缓可以乘被阻纷塞或稍不阻获塞阻塞se岩nd速,阻塞re却ce障iv胃e直到完成棚信息经的交辨付,科才解何除阻敬塞回合(r蔬en每de赖zv尝ou汉s)无阻击塞se睁nd,阻怒塞re准ce饭iv缓e接收普者阻塞炊直到阶信息普的到兴达无阻塞se籍nd,无鉴阻塞re泉ce林iv矩e部要锐求任茧何一朽方等业待3-恒2寻址直接舍寻址Se碗nd原语哗包含耳目的赠进程摘的具墙体标督志号Re智ce盐iv使e原语狗:显示爬的制愁定发蛋送进尽程,竞事先要知道砍来自便哪个多进程接收奸所有的,so译ur抹ce参数勤中有订接收蚁操作镜执行蚕后的俱返回衡值间接讽寻址临时保存梅这些薯消息喜的队般列组璃成的相一个绣共享坝数据凤结构这些池队列灯称为ma础il香bo谜x消息汁发送到ma亚il旦bo川x,一个僻进程舅从ma券il拌bo昂x中去瘦取3-肾2寻址3-亭3消息笑格式3-醒4排队减原则先进大先出--兔-F开IF唱O优先骑级原军则接受坦者检链查消若息队复列并轻选择3-粮5消息猾的互库斥3-阳5消息针的互择斥4-轿1读者/写者杂问题任意胞多的倘多进校程可王以同抽时读撑这个陶文件一次进只有委一个写首进程甚可以且向这魄个文仇件中肢写如果弹一个冰写进砍程正娱在往往文件递中写填文件怠,则桶禁止插任何雁毒进察程读勇文件4-删1读进合程具随有优捎先权4-葡2写进讨程具音有优控先权4-段2用消督息机制嘉解决屿问题5-尖1死锁鲜原理一组炼竞争藏资源菠或互叼相通虎信的称进程绳间相乡丰互的柔永久刊阻塞一组灭进程闹等待事件而只陪有进尽程集沫合中访的其预他阻五塞的皇进程累才可研以触傲发这晶一事坦件没有柏有效愚的解第决办法两个雪或多进程莫之间班对资魄源的湖需求财引起单的冲吴突5-饶1死锁像原理5-摸1死锁验原理5-1可重健用资惑源一次梳只能雹供一生个进爆程安狼全的盖使用绣,并炭且不侧会由岂于使踢用而屋耗尽堤的资脑源进程听得到宿资源屡,后厨来又撕释放员资源脊,共劣其他进进程绳再次要使用例如歪:处理膜器,IO通道道,主兔存,具辅存文件获,数狸据库杰,信急号量粪等数隙据结蒜构如果拼进增程占问有一筋项资尸源,彻有申售请另欲一个煎,可颤能会乞导致罩死锁5-工1死锁坛的例宁子5-起1死锁抛的例笋子可分晶配的批空间20者0k溉B,下熟面的悲请求午序列在第餐二个执请求典是发稀生死要锁P1……Request80KB…Request60KB….P2…Request70KB…Request80KB…5-兄2可消带费的伙资源创建定并且朗可以崖销毁迎的资歼源如,滨中断浮,信视号,毕消息勿和IO缓冲拐区中冶的信刘息如果re聋ce温iv殃e阻塞涛,则可能发生晌死锁很少怜见的罚事件组合显也可矮能导压致死域锁P1…Receive(P2);…Send(P2,M1);…P2…Receive(P1);…Send(P1,M2);5-逃3资源识分配呆图有向烟图阐述横系统议资源夸和进评程的沾状态帽情况5-吗3资源荐分配膀图5-挥4死锁窗的条驱件互斥一次居只有赠一个罗进程款可以享使用离资源占有衣且等待占有蹄已分描配资瓦源等待筹分配植其他邪资源非抢攀占不能训强行抢占婚进程国中已锯占有乔的资旁源循环等待存在波一个固封闭刑的进漏程链资源至少窜占有演链中锦下一赵个进晕程所收需要舞的资乳源阶段辨总结6-丑1死锁主的预跑防设计煎一种峡系统饲来排倦除发颗生死呼锁的液可能躬性间接雷方法防止万前三兔个必受要条带件直接方法防止满循环初等待6-贷1互斥资源并要求啄互斥操作段系统溜必须惭支持拥,不叮可能盈禁止6-西2占有舍且等贪待同时斯请求过所有还的资粒源,塘但是被阻洗塞时总间长,祖低效可能怪占有耳不用锹的资唐源,盾导致涂其他庭程序走等待可能歌事先并不灯知道汁需要刷那些沿资源模块捷化设拣计,客和多秩线程陵结构自中的抹实际醒问题6-利3非抢泄占占有算资源档的进锻程进壮一步辈请求竖被拒羊绝,伴则释喊放已日占有丸资源占有摩资源剂的进程接进一乔步请勒求时项,操享作系促统迫艘使另上一个匪进程途释放乎此资合源。要求牛两个进旬程具剩有不崇同优震先级只有在很洞容易天保存/恢复农上下脸文时眠,这利种方助式才膨实用6-勒4循环室等待定义贵资源冤的线跌性顺铲序来映预防低效7-货1哲学丛家就虽餐问篮题7-1使用劈燕信号与量解毅决方否法7-竞1使用樱信号箭量解浅决方段法8U滋ni低x的并梅发机爆制管道消息共享内存信号应量(s痰em券ap艰ho的re栏)信号

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论