- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
104 第3章 进程之间的并发控制和死锁 进程的低级通信:互斥、同步、P/V操作、管程 进程的高级通信:消息传递 死锁:多进程竞争有限资源 (1) 各并发进程对资源的共享 互斥关系:通过共享资源而使进程之间产生的关系叫做间接制约关系,又叫做互斥关系。可用“进程-资源-进程”来描述。 [例] 进程P1和P2在运行中都要使用打印机,打印机的使用必须独占。 (2) 系统中存在若干协作进程 同步关系:通常,一个用户作业涉及一组并发进程(输入、计算和输出进程),这些进程须相互协作。在运行过程中,这些进程可能要在某些同步点上等待协作者发来信息后才能继续运行。这种制约关系叫做直接制约关系。 Type a.c|sort 进程的同步与互斥关系,叫做进程通信,也叫低级通信。 (Inter-Process Communication, IPC) 2.6.1 进程之间的互斥 共享资源:①慢速的硬设备,如打印机等资源,②软件资源,如共享变量、共享文件等。 临界资源:一次仅允许一个进程使用的资源。 临界区(critical section):就是并发执行的进程访问临界资源的那段必须互斥执行的程序。 任何两个进程不能同时处于其临界区。 不应对CPU的速度和数量做任何假设。 临界区外运行的进程不得阻塞其他进程进入。 不得使进程无限期等待在临界区之外。(饿死) 解决进程之间互斥的方法 软件实现方法 硬件实现方法 临界区互斥软件实现方法 算法:设有两个进程Pi和Pj,通过两个共享两个变量,控制进入临界区: boolean flag[2]; int turn; 初值,flag[i]=flag[j]=false; turn=0; 用硬件实现互斥的方法 关中断 在进程刚进入临界区之前,禁止所有中断;离开之后再打开中断。因为CPU只有在发生时钟中断或其它中断时才会进行进程切换。 优点:简单。 缺点: 系统无法响应任何中断,限制了系统并发执行的能力。 多处理机系统,禁止中断仅仅对执行本指令的那个CPU有效。其他CPU仍将继续运行,并可以访问共享资源,而进入临界区。并不能保证互斥。 (2) 使用测试和设置指令 锁位变量W :为每个临界资源设置一个,以指示其当前状态。W=0,表示资源空闲可用;W=1,表示资源已被占用。 testandset指令可定义如下: void p(int i){ while(1){ testandset(); critical section w=0; remainder section } } 3.2.2 进程之间的同步 同步的原因:一组进程要合作完成一项任务。 [例]两个用户进程共享缓冲区。计算进程将计算结果送入共享缓冲区,打印进程从缓冲区取数据打印。缓冲区空时不能取数据,满时不能送数据。 由于计算进程与打印进程访问缓冲区的速度不匹配,需要进行同步。 为了使进程同步,需要引入信号量机制。 2.6.3 信号量和P,V操作 1965年,荷兰学者Dijkstra提出的一种同步机制---信号量机制。 基本原理:两个或多个进程可以通过简单的信号实现合作。一个进程可以被迫在某一位置等待,直到它接收到一个特定的信号。 typedef struct{ //信号量的类型描述 int value; //表示该类资源的可用数量 struct process *pointer; //等待使用该类资源的进程排成队列的头指针。 }semaphore, sem; P操作原语: //wait(s) ; down(s) void P (sem s) { s.value = s.value-1; //表示申请一个资源(或通过信号量s接收消息) if (s.value 0) { add this process to s.pointer; block(); //资源用完,调用阻塞原语。“让权等待” } } V操作原语:// signal(s); up(s) Void V (sem s) { s.value = s.value+1; //释放一个资源(或通过信号量s发消息) if (s.value = 0) {//表示在信号链表中,仍有等待使用该资源的进程被阻塞。 remove a process P from s. pointer; wakeup(P);//调用唤醒原语。 } } 显然,P、V操作的引入,克服了加锁操作的忙等待现象,提高了系统的效率。 操作系统正是利用信
您可能关注的文档
- 传感器及检测技术 第三章电感式传感器20120304.ppt
- 传递过程原理第6节.ppt
- 初中化学第八单元二轮复习课件金属与金属材料.ppt
- 初三化学上学期燃烧及燃料的单元复习-上海教育版.ppt
- 分子与原子复习课--浙教版.ppt
- 分馏与折光率的测定.ppt
- 八年级物理越来越宽信息之路.ppt
- 八年级物理超声及次声2.ppt
- 八年级生物基因控制生物性状3.ppt
- 八年级物理气体压强.ppt
- 急性肾功能衰竭综合征的肾血管介入性诊治4例报告并文献复习.docx
- 基于血流动力学、镇痛效果分析右美托咪定用于老年患者髋部骨折术的效果.docx
- 价格打骨折 小心统筹车险.docx
- 交通伤导致骨盆骨折合并多发损伤患者一体化救治体系的效果研究.docx
- 多层螺旋CT与DR片诊断肋骨骨折的临床分析.docx
- 儿童肱骨髁上骨折后尺神经损伤恢复的预测因素分析.docx
- 康复联合舒适护理在手骨折患者中的应用及对其依从性的影响.docx
- 机器人辅助老年股骨粗隆间骨折内固定术后康复.docx
- 超声辅助定位在老年髋部骨折患者椎管内麻醉中的应用:前瞻性随机对照研究.docx
- 两岸《经济日报》全面合作拉开帷幕.docx
最近下载
- T_CAS 1148—2025(社区堆肥技术要求).pdf VIP
- 《中医诊断学》试题一.doc VIP
- 全口义齿修复中的规范化重点技术题库答案-2025年华医网继续教育.docx VIP
- 《生活垃圾填埋场环境污染隐患排查治理工作方案》(环固体〔2025〕44号).docx VIP
- 广东省广州市天河区2023-2024学年五年级上学期期末英语试卷.docx VIP
- 老年病科建设与成果汇报.pptx VIP
- 2012年10月马万成外应预测法面授录音笔记.pdf VIP
- 华南理工大学期末考试《 电力系统分析》试卷1B.doc VIP
- 妇科肿瘤综合治疗策略与预后.pptx VIP
- “铭记历史,珍爱和平”主题演讲比赛活动总结与“铸中华民族精神之魂”活动主持词合集.doc VIP
原创力文档


文档评论(0)