- 1、本文档共137页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OS02进程同步,进程同步,进程同步与互斥,进程间同步,进程同步机制,linux进程同步,c语言进程同步与互斥,linux进程同步机制,进程的同步机制,进程的同步与互斥
第二章 进程管理 第二章 进程管理 2.4 进程同步 2.5 经典的进程同步问题 2.6 管程机制 2.7 进程通信 2.4 进程同步 进程同步的主要任务是使并发执行的各进程之间能有效的共享资源和相互合作,从而使程序的执行具有可再现性。 2.4.1 进程同步的基本概念 2.4.2 信号量机制 2.4.3 信号量的应用 2.4.1 进程同步的基本概念(1) 进程之间的两种制约关系 间接制约关系 系统资源竞争,进程间彼此无关 直接制约关系 进程间合作,彼此相关 2.4.1 进程同步的基本概念(5) 临界资源(Critical Resource/CR):一次仅允许一个进程访问的资源。 如:进程P1、P2共享一台打印机,若让它们交替使用则得到的结果肯定是不可理解的。 临界资源可能是硬件,也可能是软件:变量,数据,表格,队列等。 并发进程对临界资源的访问必须作某种限制,否则就可能出现与时间有关的错误,如:联网售票。 临界区(Critical Section/CS):临界段,在每个程序中,访问临界资源的那段程序。 repeat entry section CS; exit section remainder section Until false 2.4.1 进程同步的基本概念(6) 注意:临界区是对某一临界资源而言的,对于不同临界资源的临界区,它们之间不存在互斥。 如程序段A、B有关于变量X的临界区,而C、D有关于变量Y的临界区,那么,A、B之间需要互斥执行,C、D之间也要互斥执行,而A与C、B与D之间不用互斥执行。 2.4.1 进程同步的基本概念(7) 同步机制应遵循的规则: 空闲让进 忙则等待 有限等待 让权等待 实例:生产者-消费者问题 一种同步问题的抽象描述 计算机系统中的每个进程都可以消费(使用)或生产(释放)某类资源。这些资源可以是硬件资源,也可以是软件资源。 当某一进程使用某一资源时,可以看作是消费,称该进程为消费者。而当某一进程释放某一资源时,它就相当于生产者。 实例:生产者-消费者问题 一种同步问题的抽象描述 生产者-消费者之间设置一个具有n个缓冲区的缓冲池,生产者进程将它所生产的产品放入一个缓冲区;消费者进程可从一个缓冲区中取走产品去消费。 不允许消费者进程到一个空缓冲区去取产品; 不允许生产者进程向一个已装满产品且尚未取走的缓冲区投放产品。 实例:生产者-消费者问题 问题分析 利用一个数组表示具有n个缓冲区的循环缓冲池; 用输入指针in指示下一个可投放产品的缓冲区,每当生产者进程生产并投放一个产品,输入指针加1(in:=(in+1) mod n); 用指针out指示下一个可从中获取产品的缓冲区,每当消费者进程取出一个产品,输出指针加1 (out:=(out+1) mod n) ; 实例:生产者-消费者问题 问题分析 (in+1) mod n = out 缓冲池满; in=out 缓冲池空; counter表示缓冲池内产品的数量。 在生产者进程中使用一局部变量nextp,用于暂时存放每次刚生产出来的产品; 在消费者进程中使用一个局部变量nextc用于存放每次要消费的产品。 实例:生产者-消费者问题 实例:生产者-消费者问题 producer:repeat … produce an item in nextp; … while counter=n do no-op; buffer[in]:=nextp; in:=(in+1) mod n; counter:=counter+1; until false; 实例:生产者-消费者问题 count=count+1 的执行为: 1 register1 := counter 2 register1 := register1 +1 3 counter := register1 2.4.2 信号量(Semaphore)机制 1965年,由荷兰学者Dijkstra提出 P、V操作分别是荷兰语的test (Proberen) 和increment (Verhogen) 。 一种卓有成效的进程同步机制。 经历整型信号量、记录型信号量,发展为“信号量集”机制。 P、V操作是原语。 信号量的值除初始化外,只能由P、V原语修改。(wait、signal) 1、整型信号量 定义为一个整型量,由两个标准原子操作wait(S)(P操作)和signal(S)(V操作)来访问。 2、记录型信号量 记录型信号量机制采取“让权等待”策略,即当进程不能申请到资源时,让出CPU使用权。避免了整型
您可能关注的文档
- M052电源管理及断电空闲模式 V1.00.pdf
- MA000003_GSM通信流程ISSUE3.3.pdf
- malloc实验分析.ppt
- MDC 信 令 专 题 介 绍.pdf
- ME5000服务器NAT功能的配置.doc
- MFC高级编程——进程与线程.ppt
- MI-ONE使用手册.pdf
- MIE教材131-150.ppt
- MS2711D使用说明.ppt
- MSC Server网元参数.xls
- 丝芙兰美妆零售体验店美妆教育课程开发与推广报告.docx
- 医疗企业税务风险管理2025年度策略与最佳实践.docx
- 2025年新能源电动观光船在温泉旅游航线运营模式创新报告.docx
- 2025年工业互联网平台开发者生态数据服务与共享模式研究.docx
- 2025年乡村民宿品牌品牌传播效果与品牌传播效果分析评价报告.docx
- 2025年旅游行业跨境电商旅游服务创新案例研究.docx
- 智慧农业温室环境监测系统智能化升级对农业科研创新的推动作用.docx
- 2025至2030中国聚对苯二甲酸乙二酯树脂行业发展趋势分析与未来投资战略咨询研究报告.docx
- 化工新材料在航空航天液压系统中的应用现状与2025年市场分析报告.docx
- 2025至2030肺部给药装置行业产业运行态势及投资规划深度研究报告.docx
文档评论(0)