




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 pv操作解决进程同步问题的难点研究与实现 鲁力韩洁徐琴摘要:操作系统是计算机系统中的核心系统软件,它负责控制和管理这个系统资源并协调用户有效地使用这些资源,使计算机系统高效的工作。进程管理部分是操作系统课程中的重要内容。而进程同步是进程管理中十分重要的部分。怎样很好的解決进程同步问题,一直是初学者所面临的难题。该文通过四个简单易懂的步骤,使初学者可以很快掌握使用信号灯的pv操作来解决进程同步的问题。进而使初学者能够更好地理解和掌握进程同步问题。关键词:操作系统;进程同步;信号灯;p操作;v操作:tp393 :a :1009-3044(201
2、7)13-0038-021概述操作系统是计算机科学与技术领域中最为活跃的学科之一,因而操作系统课程也自然是该专业的一门核心的专业基础课。操作系统课程内容综合了基础理论教学、课程实践教学、最新技术追踪等多项内容。操作系统课程的重要性在于教学内容必须兼顾基础性和前瞻性,同时体现趣味性和时尚性,以激发学生的学习兴趣。进程同步是操作系统中处理机管理的核心问题。是操作系统的核心知识,也是进程管理当中的重、难点。学生是否能够很好的掌握进程同步是反映学生是否学习好进程这部分内容的重要指标。在多年的实际教学经验中,我发现在讲解进程同步问题时,学生可以很容易理解,但是,一旦使用信号灯的pv操作去解决进程同步的问
3、题候,很多学生都很茫然,很多时候不知所措。因此,本文将通过使用四步简单的操作,使学生迅速掌握用pv操作解决进程同步问题的方法。使得学生即使在不完全理解进程同步的原理的情况下,也能解决进程同步问题。进而,能够加深对进程同步的理解。2进程同步和信号灯的基本概念所谓进程同步,就是并发进程在一些关键点上可能需要互相等待和互通消息,这样的相互制约关系称为进程同步。同步意味着两个或多个进程之间根据它们一致同意的协议进行相互作用。信号灯的概念是由dijkstra提出的f1968)。他把同步的关键概念抽象到信号量这个概念中,信号量是一个被保护的变量,只有p、v操作和一种称为信号量初始化操作才能访问和改变它的值
4、。信号灯是一个确定的二元组(s,q),s是一个具有非负初值的整型变量,q是一个初始状态为空的排队栈。s代表资源的实体。在实际应用中应准确地说明s的意义和初值,每个信号灯都有一个队列,其初始状态为空。信号灯的值仅能由p、v操作来改变,对信号灯的p操作记为:p(s),p操作是一个原子操作。对信号灯的v操作记为:v(s),v操作也是一个原子操作。在实际操作系统中,一般情况下是由机器硬件提供p、v操作的指令,当然是原子操作,若机器不提供p、v操作的指令,则操作系统提供p、v操作原语。p操作:1)s值减1;2)若相减结果大于等于0,则进程继续执行;3)若结果小于0,则该进程挂起。注:挂起该进程包括:保留
5、调用进程cpu现场;置“等待”状态;入等待队列;转进程调度;v操作:1)s值加1;2)若相加结果大于0,进程继续执行;3)否则,唤醒一个(或多个)等待该信号灯的进程,然后本进程继续执行。3四步解决进程同步问题为描述方便,可用一个图来表示进程集合的执行时间轨迹。如图1所示,图的连接描述了进程间开始和结束的次序约束。此图称为进程流图。如用s表示系统中某一任务启动,f表示完成。则图1是四个并发程序的进程流图。根据此图,我们可以看到四个并发程序中p1必须先执行,p1执行完后p2、p3开始执行,p2、p3都执行完后p4才可以开始执行。我们发现该进程集合的执行次序是混合式的,既有顺序执行,也有并行执行的。
6、下面开始用四个简单步骤,解决pv操作实现进程同步的问题。1)搭框架如图2所示,首先我们按照程序的惯例写法,将主程序和需要并发的进程写好。需要几个信号灯暂时不用管,我们将在第四步解决这个问题。其中,cobegin和coend之间的进程函数,代表这些进程是并发的。由于,图l中有四个进程,所以cobegin和coend之间有四个进程函数。2)写pv框架搭好了以后,我们将要根据同步进程之间的关系来书写pv操作。在这一步中主函数不用变动,只需要改变进程的函数。在这里,我们可以简单的把p操作看作申请操作,把v操作看作同意操作。也就是某个进程的开始如果要申请其他进程的同意,就做p操作,同理如果某个进程结束后
7、需要同意其他进程的开始就需要做v操作。如图3所示p1进程开始不受制约,不需要其他进程同意,所以,pl不用做p操作,但p1运行完后需要同意p2、p3两个进程开始执行,所以p1需要做两次v操作。同理p2进程开始需要申请p1进程同意,因此,p2需要做一次p操作,p2运行完后需要同意p4进程开始,所以p2需要做一次v操作。p3同p2相同。p4进程需要申请p2、p3两个进程的同意才能开始,所以p4需要做两次p操作,p4运行完了后不需要同意任何其他进程开始,因此,p4不需要做v操作。根据以上分析,我们可以在四个进程函数中添加pv操作,如图3所示。3)填信号量在pv操作写好后,就需要在对应的pv操作函数中进行信号量s的填写。信号量s的名字直接按照申请和同意两个进程的名字填写即可。例如p1进程需同意p2进程的开始申请,则p1的v操作函数和p2的p操作函数中填上参数s12。其他pv操作填写方法一样,如图4所示。4)赋初值信号量的个数和名字起好了后,就可以在主函数中进行信号量的定义。本例为了保证在前驱进程没有同意即做v操作的时候,后继进程无法开始运行。所有的信号量必须赋值为0。如图5所示。至此,所有程序书写完毕,用信号灯的pv操作实现进程同步的问题已经解决。4结束语信号灯是实现程序并发执行,进程之间同步和互斥的非常好的一种方法和手段,初学者有必要很好的掌握其概念和解题方法。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大脚丫跳芭蕾教学设计
- 《财务分析的教学方法和流程》课件
- 《市场监管法规与实践》课件
- 射阳三中初一试卷及答案
- 陕西地生会考试卷及答案a卷
- 厦门二中体考试卷及答案
- 2025民间房屋买卖合同范本
- 2025商场电力供应合同模板
- 浙江国企招聘2025衢州古城文化旅游区运营管理有限公司招聘21人笔试参考题库附带答案详解
- 石棉制品在油气管道的保温应用考核试卷
- GB/T 17872-1999江海直达货船船型系列
- GB/T 12027-2004塑料薄膜和薄片加热尺寸变化率试验方法
- 中医手诊培训资料课件
- 消防主机运行记录表(标准范本)
- DB2110T 0004-2020 辽阳地区主要树种一元、二元立木材积表
- 应急处置措施交底
- 基于深度学习的问题链讲座课件(44张PPT)
- Q∕GDW 12154-2021 电力安全工器具试验检测中心建设规范
- 第四章 金融监管(商业银行管理-复旦大学)
- 中波发射台搬迁建设及地网铺设、机房设备的安装与调整实践
- 影像诊断学-—-总论PPT课件
评论
0/150
提交评论