版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3.3信号量和PV操作,3.3.1同步和同步反应历程,3.3.2记录型信号量和PV操作,3.3.3记录型信号量实现互斥,3.3.4记录型信号量解决生产者问题,3.3.3 3.3.1同步和同步反应历程,3.3.2记录型信号量和PV操作,3.3.3记录型信号量3.3.4用记录型信号量解决生产者消费者问题,用3.3.5记录型信号量解决读者写入者3.3.2记录型信号量和PV操作,用3.3.3记录型信号量实现互斥,用3.3.4记录型信号量解决生产者消费者问题,用3.3.5记录型信号量解决读者写入者问题, 3.3.6记录型信号量3.3.3记录型信号量实现互斥,3.3.4记录型信号量解决生产者消费者问题,3
2、.3.5记录型信号量解决读者写入问题,3.3.6记录型信号量解决理发师问题,3.3信号量和PV操作,3.3.3.4记录型信号量解决生产者消费者问题, 3.3.5记录型信号量解决读者写入问题,3.3.6记录型信号量解决理发师问题,3.3信号量和PV操作,3.3.1同步的反应历程,3.1 3.3.4记录型信号量解决生产者消费者问题,3.3.5记录型信号量解决读者写入问题,3.3.6记录型信号量解决理发师问题,3.3 2.3 2.4 2.5 2.7 2.18 2.26 2.49、3.3.1同步和同步反应历程、著名生产者的消费者问题是计算机执行操作系统中云同步进程内关系的抽象,是典型的进程同步问题。
3、在执行操作系统中,生产者过程可以是校正过程、发射过程等,而消费者过程可以是印刷过程、接收过程等。 解决生产者-消费者问题解决了一种云同步进程同步问题。 3.3.1同步和同步反应历程,作为生产者的消费者问题表示,有n个生产者和m个消费者,有k个单位缓冲器连接有界缓冲器。 其中,pi和cj都是并行进程,只要不满足缓冲器,生产者pi生产的产品能够投入缓冲器的缓冲器不为空,消费者进程cj就能够从缓冲器中取出产品并消费。 生产者-消费者问题算法描述,var k :集成版; 类型项目:安妮; 项目缓冲器:阵列0. in,out :整数器:=0; 计数器3360整数器:=0; processproducer
4、beginwhile (true )产品产品名称nextp。 if (计数器=k )休眠(); 下一个缓冲区3360=下一个; in :=(in1)模式k; 计数器3360=计数器1; if (计数器=1)唤醒(计算机)结束,处理计算机事件(真) if (计数器=0)休眠(); nextc :=缓冲输出; out :=(out1)模式k; 计数器3360=计数器- 1; 接下来的计数器=k-1唤醒产品计算机; end,count的现在值是8,生产者准备生产一个产品,加上一个操作。 消费者打算消费一个产品,做减少一个的操作。生产者消费者问题算法的记述,如果生产者和消费者进程交替执行counter
5、,则结果不唯一。 生产者和消费者的过程交替运行的话,过程就会永远等待。 返回,3.3.2记录型信号量和PV操作,1 )对于不进入临界区域的过程,采用忙碌等待测试法,使有效工作时间白白浪费。 2 )将测试是否进入临界区的责任推到各个网络冲突的进程上,会损害系统的可靠性,增加用户计程仪编程的负担。 1965年,E.W.Dijkstra提出了一种新的同步工具信号量和p、v操作。、通过上一节的各种方法解决临界区调度问题的缺点,3.3.2记录型信号量和PV操作,信号量:一种软资源原句:内核执行时不可中断的进程p操作原句和v操作原句,3.3.2记录型信号量和PV操作,信号量和p,v操作, 正在交通控制的一
6、个进程在某个特殊点停止执行,并且该特殊变量是信号量,直到收到对应的特殊变量值为止,所有复杂的过程协作的需要由适当的信号结构满足。 在3.3.2记录类型信号量和PV操作,执行操作系统中信号量表示物理资源的实体,并且是与队列相关的整数变量。 在安装时,信号量是记录类型的数据结构,并且信号量的值和信号量队列的队列指针两个分量。3.3.2记录型信号量和PV操作、信号量分类、信号量用途不同共用信号量:专用信号量:按其可能值不同二维信号量:一般信号量:初始值总是为1,实现排他,初始值总是为0或正整数,实现同步,值为0或1 V(s):s:=s 1。1 .整数信号量、s为一个整形量,除初始化以外只能够由p、v
7、操作进行网站数据库的p和v操作原句定义:3.3.2记录型信号量和PV操作,2 .记录型信号量,s为一个记录型数据结构,如果将一个分量设为整形量vv的信号量s减去l,结果小于0,则为p (n=0,n=0,n=0,n=0,n=0,n=0)。 V(s ) :将信号量s加1,并且当结果为0或更小时,释放等待信号量s的过程。 3.3.2记录型信号量和PV操作、2 .记录型信号量、类型semaphore=record value : integer; 进程列表3360; endprocedurep (价值:样本):begin s :=s 1。 接口0号; 结束; 程序v (var s :模型); begi
8、n s :=s 1。 if s=0天(s ) :结束; 3.3.2记录型信号量和PV操作,2 .记录型信号量,推论1 :信号量s是正值,该值是能够在摇滾乐过程之前对信号量s执行的p命令,即,以s代表的实际可使用的物理资源数推论2 :信号量s是负值,其绝对值被排列在该信号量s队列中即信号量s施加p操作而被摇滾乐进入信号量s队列的过程数,3.3.2记录型信号量和PV操作,2 .记录型信号量,推论3 :通常,p操作需要一个资源,v操作释放一个资源。在某些条件下,p操作表示挂起的进程操作,v操作表示唤醒挂起的进程的操作,其中3.3.2记录类型信号量和PV操作、3.2元信号量、s为一个记录类型数据结构,
9、一个分量为value,另一个分量为信号量队列queue 进程结束列表3360; 程序BP (var s :模型); 程序bv (var s :模型); begin begin if s .值=1。 中国队队员; 数值=0; 数值=1; 生活时间(s.queue ); r (队列); 结束; 结束; end end、返回、3.3.3实现记录型信号量互斥、s : semaphore; s :=1; 合作过程pi合作伙伴(s ); 临界区V(s ); 结束; 冷却; var a :阵列1.整合器。 mutex :样机; mutex:=1; cobeginprocesspivarxi :整合器。 be
10、gin L1:根据旅客的开票请求找住的Aj。 p (多重) Xi :=aj; if Xi=1天北西3360=Xi-1。 Aj:=Xi; 出一张V(mutex )票的end; else begin V(mutex )出口券卖完的end; goto L1; 结束; 冷却;记录型信号量和PV操作解决机票问题、记录型信号量和PV操作解决机票问题、var A : ARRAY1.m OF integer; s :阵列1. sj :=1; cobeginprocesspivarxi :整合器。 begin L1:根据旅客的开票请求找住的Aj。 P(sj) Xi :=Aj; if Xi=1天北西3360=Xi
11、-1。 Aj:=Xi; v (秒); 输出1张票的end; 埃尔斯贝金v (SJ ); 出口门票卖完了end; goto L1; 结束; 冷却; 哲学家吃了通心面的问题,5个哲学家坐在圆桌旁,桌子中央有通心面,每个人前面有空盘子,两个人之间有叉子。 哲学家们都思考、饥饿和心灵相通。 为了吃面,每个哲学家必须得到两根叉子,每个人只能从自各儿的左边或者右边直接取叉子。 哲学家吃通心面的问题、哲学家吃通心面的问题、varfor ki : array0.4 of semaphore; forki :=1; cobeginprocesspi/i=0、1、2、3、4、begin L1:思考。 p (福克)
12、; 食用通心面的V(forki ); 法式(I1)模式5:goto l 1; 结束; 冷却; 有几种方法可以避免这种死摇滾乐。 上述解法可能永远等待。 如果有办法避免死摇滾乐:最多四个哲学家行政许可吃云同步;奇数号先取左侧的叉子,双位数号先取右侧的叉子;每个哲学家取手边的两根叉子才吃。 不然的话,一把叉子也不要拿。哲学家吃通心面问题的正确解,varfor ki : array0.4 of semaphore; forki :=1; cobeginprocesspi/*i=0、1、2、3*/beginl1:思考。 p (福克); 吃P(forki 1 mod5)通心面。 v (福克); 法式(I
13、 1模式5 ):goto l 1; 结束; 冷却; 3.3.4生产者消费者问题,一个生产者,一个消费者共享一个缓冲区的一个生产者,一个消费者共享多个缓冲区的多个生产者,多个消费者共享一个缓冲区的多个生产者,一个消费者共享多个缓冲区的一个生产者empty:semaphore; /*可用的空缓冲区数*/full:semaphore; /*缓冲区内可使用的产品数*/empty :=1; /*可以在缓冲区内放入产品*/full 3360=0/*缓冲区内没有产品*/cobegin coend,生产者每个人共享缓冲区的解,var B : integer; empty :样本; /*可用的空缓冲区数*/full:semaphore; /*缓冲区内可使用的产品数*/empty :=1; /*可以在缓冲区内放入产品*/full 3360=0/*缓冲区内没有产品*/cobeginprocessproducerprocessconsumerbeginbeginl 13360 produceaproduct; l 23360 p (完全):p (企业); 产品3360=b; b :=产品; v (空间); v (完全); 消费者产品; Goto L1; Goto L2; 结束; 结束; coend、生产者1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年吉林交通职业技术学院单招职业技能考试题库附参考答案详解(满分必刷)
- 2026年哈尔滨幼儿师范高等专科学校单招职业倾向性测试题库带答案详解(a卷)
- 2026年唐山海运职业学院单招职业适应性测试题库附参考答案详解(达标题)
- 养老院护理员老年人文化娱乐活动
- 产科产后呕吐的护理
- 体育专业就业指导建议
- 中华护理学助产科研方法与论文写作
- 儿童卫生习惯与心理健康
- 水污染事故防控方案
- 《人民币的简单计算》课件
- 雨污水管网施工危险源辨识及分析
- 供排水维修安全培训
- GB/T 44957-2024人工影响天气作业点防雷技术规范
- 污水处理工安全培训
- 深圳大学《算法设计与分析》2021-2022学年期末试卷
- 西泠印社三年级下册书法教案
- DB35T 1985-2021 原发性肝癌临床数据集
- 既有建筑减震隔震加固技术规程
- 国家核安保技术中心社会招聘笔试真题2022
- 2023年陕西机电职业技术学院招聘考试真题
- 监理大纲工程监理方案技术标投标方案
评论
0/150
提交评论