学生在运用信号量解决问题时常见问题,计算机教学论文_第1页
学生在运用信号量解决问题时常见问题,计算机教学论文_第2页
学生在运用信号量解决问题时常见问题,计算机教学论文_第3页
学生在运用信号量解决问题时常见问题,计算机教学论文_第4页
学生在运用信号量解决问题时常见问题,计算机教学论文_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

学生在运用信号量解决问题时常见问题,计算机教学论文操作系统作为计算机专业学生的必修课程,是非常重要的一门核心课程。笔者在操作系统教学经过中发如今所有的章节中,进程的互斥与同步是学生最难把握的部分。本文具体分析了学生在进程互斥与同步学习经过中碰到的常见问题,并提出解决方式方法。1进程互斥与同步概念当代操作系统的三个主要特征是并发性、资源分享和异步性。所谓并发性是指两个或多个活动在同一时间间隔内发生,在多道程序环境下是指在一段时间内可有多道程序同时运行。正是由于并发机制才导致了程序的执行不可预测,并发性又是系统能够实现资源分享的必要条件。系统中的多个并发进程之间由于分享资源而构成两种互相制约关系:间接制约关系互斥,直接制约关系同步。1.1进程互斥是进程间的一种间接制约关系,他们并不知道其他进程的存在。例如,在批处理系统中,系统分别为各个作业建立了进程;在分时系统中,系统分别为每个用户建立了一个进程。这些进程同处于一个系统中,必然存在资源分享的关系。由于某些资源的属性要求一次只能有一个进程访问,我们称这样的资源为临界资源。由于系统不能允很多个进程同时访问临界资源,所以进程间必然产生对资源的竞争。因而,互斥直观理解就是一种竞争关系。例如一个学生宿舍房间内的洗漱间使用问题;显然,洗漱间在没有人使用时〔能够看成初始状态〕,对于任何一个同学都是可用的,其洗漱间的信号量初值应当为1〔表示出一种状态,可以以看成资源的数目,不过作为一种状态更恰当〕,见图1。1.2进程同步多个进程知道相互的存在,更多的表现出一种合作关系。此时要保证互相合作的多个进程在执行次序上的协调,不能出现与时间有关的错我。系统中多个进程间发生的时间存在某种时序关系,需要互相合作,共同完成一项任务。进程间的这种关系称为进程同步。例如学校运动会中接力竞赛问题;见图2.,显然,任何一组由4人组成的参赛队只要在发令员发令〔看成初始状态〕之后,第1个人才能跑,其他3人是顺序接力的,不可能是4个人都能够同时跑,4个人之间是同步关系,即在初始状态〔各就位〕只要第1个人能够跑,其别人是不能够的,要等待〔通知〕。2信号量的概念和含义信号量是一个记录型的数据构造,它有两个数据项。Strucsemaphore{intvalue;pointer_PCBqueue;}S;信号量的物理含义:在进程互斥的情况下,信号量能够看成是一把锁;在进程同步的情况下,信号量能够代表一种资源的使用权,信号量的值大于0时表示系统中某类可用的资源的数目,当其值小于0时,其绝对值表示系统中因请求该类资源而被阻塞的进程数目。除了初始化外,对信号量只能有两个操作:P(S)操作和V(S)操作。这两操作定义为:华而不实P操作物理含义为申请资源的操作,每执行一次P操作,信号量的值就会减一,表示清楚可用的资源少了一个;V操作的物理含义为释放资源的操作,每执行一次V操作,信号量的值就会加一,表示清楚可用的资源数增加了一个。3学生在运用信号量解决问题时常见问题3.1分不清楚进程之间的关系进程之间的关系是要解决的根本问题,假如前期进程之间的关系分析不清楚,后续解题经过一定的错误的。例题1:某条河上只要一座独木桥,以便行人过桥。如今河的两边都有人要过桥,过桥规则:同一方向的能够连续过桥;一方有人过桥另一方的人要等待。该问题是非常明显的读者写着问题的同类例题。桥两边的人是一种竞争关系,竞争的是桥这个临界资源。同理,同一方向的人之间也是竞争关系,竞争修改人数这个变量。在这里要让学生明白多个竞争的进程之间是没有固定的先后顺序的,可能一面的人先过桥,可以能另一面的人先过桥。例题2:有一仓库能够存放A,B两种物品,每次只能存入一物品〔A或B〕存储空间无限大,只是要求-ncount(A)-count(B)m华而不实n,m是正整数,试用存入A,存入B,和P,V操作描绘叙述物品A和物品B的入库经过。该问题大部分同学的分析成互斥,由于看到了每次只能存入一物品,确实他们在放物品的时候是互斥的,但是这两个进程的主要关系是合作。具体表现出在一旦A放入了一个物品,B可以以放入一个;一旦B放入一个物品,A可以以放入一个。所以这是非典型的生产者和消费者问题。3.2对信号量的概念及意义不清楚在信号量概念学习经过中首先要让学生清楚信号量和整型变量的根本区别。整型变量在内存中占有4个字节,仅能存放数值;而信号量类型不仅能表示资源数量,更重要在于为申请资源而得不到知足的进程提供阻塞链接队头指针。其次要不断强化信号量类型数据仅仅能够进行P,V操作,不能够进行除了P,V之外的任何操作。例如上面例题2:有同学写出如下代码:Semopherecounta=countb=0,mutex=1;存入A:{A生产产品;P(mutex);If(counta-countbmcounta-countb-n)存入A;V(mutex);}在这段代码中,第一个问题是没有搞清楚信号量的基本操作只能是P,V,不能有其他的加减及判定;第二个问题是没有搞清楚信号量的含义,当申请存入A而得不到知足的时候,进程是要阻塞的。根据上述程序,假如不符合判定条件,则产品抛弃,继续下一个进程。这明显是错误的。此题目正确的做法是:Semopherecounta=m-1,//当B产品一个都不放,A最多能够放m-1个产品;countb=n-1,//当A产品一个都不放,B最多能够放N-1个产品;mutex=1;存入A:存入B:{{A生产产品;B生产产品;P(counta);p(countb);P(mutex);p(mutex);存入A;存入B;V(countb);V(counta);}}3.3信号量命名不清楚,不明确这个问题是从教学材料上生产者消费者问题延续而来。在生产者消费者问题中设置的full,empty信号量其实含义不是十分清楚明了。假如改成buffer和product则明了很多,无论从资源的角度看还是从前驱关系的角度看都十分清楚明了。学生们在计算机基础中学过变量的命名规则,作者以为变量的命名规则同样适用信号量的命名规则。4结束语操作系统设计的目的之一就是资源的充分利用,进程的并发是实现这一目的的重要方式方法,而并发又离不开进程的同步和互斥。信号量是实现进程间的互斥与同步既方便又高效的工具。在操作系统课程的教学中,利用信号量实现进程同步与互斥的问题还将继续研究下去。【以下为参考文献】[1][美]WilliamStallings.操作系统-精华真髓与设计原理[M].5版.陈渝,等,译.北京:电子工业出版社,2006.[2]汤子瀛,哲风屏,汤小丹,编.计算机操作系统〔修订版〕[M].西安:西安电子科技

温馨提示

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

评论

0/150

提交评论