利用信号量机制解决进程同步和互斥问题.doc_第1页
利用信号量机制解决进程同步和互斥问题.doc_第2页
利用信号量机制解决进程同步和互斥问题.doc_第3页
利用信号量机制解决进程同步和互斥问题.doc_第4页
全文预览已结束

下载本文档

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

文档简介

利用信号量机制解决进程同步和互斥问题在讨论如何用信号量机制解决这个问题之前,我们应该先了解进程同步和互斥间的一些概念。首先是进程间的两种关系:同步和互斥。所谓同步就是把异步环境下的一组并发进程,因直接制约而互相发送消息二进行互相合作、互相等待,使得各进程按一定的速度执行的过程。互斥是指不允许两个以上的共享该资源的并发进程同时进入临界区。其中直接制约是指一组在异步环境下的并发进程,各自的执行结果互为对方的执行条件,从而限制各进程的执行速度的过程。由于共享某一共有资源而引起的在临界区内不允许并发进程交叉执行的现象,由共享共有资源而造成的对并发进程执行速度的间接制约简称为间接制约。受间接制约的类中各程序段在执行顺序上是任意的。我们将不允许多个并发进程交叉执行的一段程序称为临界区。临界区是由属于不同并发进程的程序段共享公用数据或公用数据变量而引起的。进程互斥是进程之间发生的一种间接性作用,由两个或两个以上的进程需要同时访问某个共享变量,因竞争共有资源而引起的间接制约带来的。两个进程不能同时进入临界区,否则就会导致数据的不一致,产生与时间有关的错误。进程的同步则是程序共享私有资源造成直接制约。所以为了增强计算机系统的处理能力和提高资源利用率所采取一种同时操作技术,即程序的并发执行。并发的实质是一个处理器在几个进程之间的多路复用,并发是对有限的物理资源强制行使多用户共享,并且充分发挥硬件的并行性,以提高系统资源的利用率。进程的并发性可以调度多个多道程序增加资源的利用率,同时给用户信息的及时响应。如何实现并发进程的互斥?一种可能的办法是对临界区加锁以实现互斥。当某个进程进入临界区之后,它将锁上临界区,直到它退出临界区时为止。不过这种实现方法不能够保证并发进程互斥执行所要求的忙则等待的原则。信号量是一种软件资源,是最早出现的用来解决进程同步与互斥问题的机制,包括一个称为信号量的变量及对它进行的两个原语操作,每个信号量至少须记录两个信息:信号量的值和等待该信号量的进程队列。信号量机制的原理。在操作系统中,信号量sem是一整数。在sem大于等于零时代表可供并发进程使用的资源实体数,但sem小于零时则表示正在等待使用临界区的进程数。显然,用于互斥的信号量sem初值应该大于零。信号量数值仅能由P,V原语操作改变。执行一次P操作意味着请求分配一个单位资源,因此S的值减1;当S0时,表示已经没有可用资源,请求者必须等待别的进程释放该类资源,它才能运行下去。而执行一个V操作意味着释放一个单位资源,因此S的值加1;若S=0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。P,V原语成对出现,在互斥操作时,他们处于同一个进程,但在同步操作时,他们不处于一个进程内。私有信号量是指只与制约进程有关而不是与整组并发进程有关的信号量。利用P,V原语实现进程同步的方法分为三步:首先为各并发进程设置私用信号量,然后为私用信号量赋初值,最后利用P,V原语和使用信号量规定各进程的执行顺序。解决同步与互斥问题的一些案例:一个吃水果问题。问题描述:桌上有一只盘子,每次只能放一个水果,爸爸专向盘中放苹果,妈妈专向盘中放桔子,儿子专等吃盘里的桔子,女儿专等吃盘里的苹果。只要盘子空,则爸爸或妈妈可向盘中放水果,仅当盘中有自己需要的水果时,儿子或女儿可从中取出,那么四人之间的同步关系是什么?如何实现四人正确活动的程序?解:四人之间的关系:1爸爸,妈妈都要使用盘子,所以两者是互斥关系;2爸爸放的苹果,女儿吃,所以两者是同步关系;3妈妈放的桔子,儿子吃,所以两者也是同步关系。structsemaphores,sp,so=1,0,0;cobeginvoidfather(void) while(TRUE)haveanapple; P(s); putanapple;V(sp);voidmother(void)while(TRUE) haveanorange; P(s); putanorange;V(so); voidson(void)while(TRUE) P(sp); getanorange;V(s); eatanorange; voiddaught(void)while(TRUE) P(sp); getanapple; V(s); eatanapple; coend信号量机制的总结。信号量机制的优点是:PV操作能够实现对临界区的管理要求;实现简单;

温馨提示

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

评论

0/150

提交评论