您的位置:首页 > 其它

进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别

2014-03-05 00:48 369 查看
进程同步与互斥的区别?
进程的同步方式有哪些?
进程的通信方式有哪些?
进程同步与通信的区别是什么?
线程的同步/通信与进程的同步/通信有区别吗?

在好多教材上(包括国内与国外的)也没有明确这些概念,现在对每个问题还没有准确的答案,下面将自己的理解记下来,以后再补充。

参考资料:

《操作系统教程》 孙钟秀主编 费翔林 骆斌 谢立参编 高等教育出版社

进程互斥、同步、通信的概念

进程互斥、同步的概念是并发进程下存在的概念,有了并发进程,就产生了资源的竞争与协作,从而就要通过进程的互斥、同步、通信来解决资源的竞争与协作问题。

下面是根据《操作系统教程》3.1.4 中的介绍,整理的进程互斥、同步、通信的概念。

在多道程序设计系统中,同一时刻可能有许多进程,这些进程之间存在两种基本关系:竞争关系和协作关系。

进程的互斥、同步、通信都是基于这两种基本关系而存在的,为了解决进程间竞争关系( 间接制约关系)而引入进程互斥;为了解决进程间
松散的协作 关系( 直接制约关系 )而引入进程同步;为了解决进程间紧密的协作 关系而引入进程通信。

第一种是竞争关系

系统中的多个进程之间彼此无关,它们并不知道其他进程的存在,并且也不受其他进程执行的影响。例如,批处理系统中建立的多个用户进程, 分时系统中建立的多个终端进程。由于这些进程共用了一套计算机系统资源,因而, 必然要出现多个进程竞争资源的问题。当多个进程竞争共享硬设备、存储器、处理器 和文件等资源时,操作系统必须协调好进程对资源的争用。

资源竞争出现了两个控制问题: 一个是
死锁 (deadlock ) 问题,一组进程如果都获得了部分资源,还想要得到其他进程所占有的资源,最终所有的进程将陷入死锁。另一个是
饥饿(starvation ) 问题,这是指这样一种情况:一个进程由于其他进程总是优先于它而被无限期拖延。

操作系统需要保证诸进程能互斥地访问临界资源,既要解决饥饿问题,又要解决死锁问题。

进程的互斥 (mutual exclusion )是解决进程间竞争关系(间接制约关系 ) 的手段。
进程互斥 指若干个进程要使用同一共享资源时,任何时刻最多允许一个进程去使用,其他要使用该资源的进程必须等待,直到占有资源的进程释放该资源。

第二种是协作关系

某些进程为完成同一任务需要分工协作,由于合作的每一个进程都是独立地以不可预知的速度推进,这就需要相互协作的进程在某些协调点上协 调各自的工作。当合作进程中的一个到达协调点后,在尚未得到其伙伴进程发来的消息或信号之前应阻塞自己,直到其他合作进程发来协调信号或消息后方被唤醒并继续执行。这种协作进程之间相互等待对方消息或信号的协调关系称为
进程同步 。

进程间的协作可以是 双方不知道对方名字的间接协作 ,例如,通过共享访问一个缓冲区进行松散式协作 ;也可以是
双方知道对方名字,直接通过通信机制进行紧密协作 。允许进程协同工作有利于共享信息、有利于加快计算速度、有利于实现模块化程序设计。

进程的同步(Synchronization)是解决进程间协作关系( 直接制约关系 ) 的手段。进程同步 指两个以上进程基于某个条件来协调它们的活动。一个进程的执行依赖于另一

个协作进程的消息或信号,当一个进程没有得到来自于另一个进程的消息或信号时则需等待,直到消息或信号到达才被唤醒。

不难看出, 进程互斥关系是一种特殊的进程同步关系 ,即逐次使用互斥共享资源,也是对进程使用资源次序上的一种协调。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: