进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
2014-03-05 00:48
369 查看
进程同步与互斥的区别?
进程的同步方式有哪些?
进程的通信方式有哪些?
进程同步与通信的区别是什么?
线程的同步/通信与进程的同步/通信有区别吗?
在好多教材上(包括国内与国外的)也没有明确这些概念,现在对每个问题还没有准确的答案,下面将自己的理解记下来,以后再补充。
参考资料:
《操作系统教程》 孙钟秀主编 费翔林 骆斌 谢立参编 高等教育出版社
下面是根据《操作系统教程》3.1.4 中的介绍,整理的进程互斥、同步、通信的概念。
在多道程序设计系统中,同一时刻可能有许多进程,这些进程之间存在两种基本关系:竞争关系和协作关系。
进程的互斥、同步、通信都是基于这两种基本关系而存在的,为了解决进程间竞争关系( 间接制约关系)而引入进程互斥;为了解决进程间
松散的协作 关系( 直接制约关系 )而引入进程同步;为了解决进程间紧密的协作 关系而引入进程通信。
第一种是竞争关系
系统中的多个进程之间彼此无关,它们并不知道其他进程的存在,并且也不受其他进程执行的影响。例如,批处理系统中建立的多个用户进程, 分时系统中建立的多个终端进程。由于这些进程共用了一套计算机系统资源,因而, 必然要出现多个进程竞争资源的问题。当多个进程竞争共享硬设备、存储器、处理器 和文件等资源时,操作系统必须协调好进程对资源的争用。
资源竞争出现了两个控制问题: 一个是
死锁 (deadlock ) 问题,一组进程如果都获得了部分资源,还想要得到其他进程所占有的资源,最终所有的进程将陷入死锁。另一个是
饥饿(starvation ) 问题,这是指这样一种情况:一个进程由于其他进程总是优先于它而被无限期拖延。
操作系统需要保证诸进程能互斥地访问临界资源,既要解决饥饿问题,又要解决死锁问题。
进程的互斥 (mutual exclusion )是解决进程间竞争关系(间接制约关系 ) 的手段。
进程互斥 指若干个进程要使用同一共享资源时,任何时刻最多允许一个进程去使用,其他要使用该资源的进程必须等待,直到占有资源的进程释放该资源。
第二种是协作关系
某些进程为完成同一任务需要分工协作,由于合作的每一个进程都是独立地以不可预知的速度推进,这就需要相互协作的进程在某些协调点上协 调各自的工作。当合作进程中的一个到达协调点后,在尚未得到其伙伴进程发来的消息或信号之前应阻塞自己,直到其他合作进程发来协调信号或消息后方被唤醒并继续执行。这种协作进程之间相互等待对方消息或信号的协调关系称为
进程同步 。
进程间的协作可以是 双方不知道对方名字的间接协作 ,例如,通过共享访问一个缓冲区进行松散式协作 ;也可以是
双方知道对方名字,直接通过通信机制进行紧密协作 。允许进程协同工作有利于共享信息、有利于加快计算速度、有利于实现模块化程序设计。
进程的同步(Synchronization)是解决进程间协作关系( 直接制约关系 ) 的手段。进程同步 指两个以上进程基于某个条件来协调它们的活动。一个进程的执行依赖于另一
个协作进程的消息或信号,当一个进程没有得到来自于另一个进程的消息或信号时则需等待,直到消息或信号到达才被唤醒。
不难看出, 进程互斥关系是一种特殊的进程同步关系 ,即逐次使用互斥共享资源,也是对进程使用资源次序上的一种协调。
进程的同步方式有哪些?
进程的通信方式有哪些?
进程同步与通信的区别是什么?
线程的同步/通信与进程的同步/通信有区别吗?
在好多教材上(包括国内与国外的)也没有明确这些概念,现在对每个问题还没有准确的答案,下面将自己的理解记下来,以后再补充。
参考资料:
《操作系统教程》 孙钟秀主编 费翔林 骆斌 谢立参编 高等教育出版社
进程互斥、同步、通信的概念
进程互斥、同步的概念是并发进程下存在的概念,有了并发进程,就产生了资源的竞争与协作,从而就要通过进程的互斥、同步、通信来解决资源的竞争与协作问题。下面是根据《操作系统教程》3.1.4 中的介绍,整理的进程互斥、同步、通信的概念。
在多道程序设计系统中,同一时刻可能有许多进程,这些进程之间存在两种基本关系:竞争关系和协作关系。
进程的互斥、同步、通信都是基于这两种基本关系而存在的,为了解决进程间竞争关系( 间接制约关系)而引入进程互斥;为了解决进程间
松散的协作 关系( 直接制约关系 )而引入进程同步;为了解决进程间紧密的协作 关系而引入进程通信。
第一种是竞争关系
系统中的多个进程之间彼此无关,它们并不知道其他进程的存在,并且也不受其他进程执行的影响。例如,批处理系统中建立的多个用户进程, 分时系统中建立的多个终端进程。由于这些进程共用了一套计算机系统资源,因而, 必然要出现多个进程竞争资源的问题。当多个进程竞争共享硬设备、存储器、处理器 和文件等资源时,操作系统必须协调好进程对资源的争用。
资源竞争出现了两个控制问题: 一个是
死锁 (deadlock ) 问题,一组进程如果都获得了部分资源,还想要得到其他进程所占有的资源,最终所有的进程将陷入死锁。另一个是
饥饿(starvation ) 问题,这是指这样一种情况:一个进程由于其他进程总是优先于它而被无限期拖延。
操作系统需要保证诸进程能互斥地访问临界资源,既要解决饥饿问题,又要解决死锁问题。
进程的互斥 (mutual exclusion )是解决进程间竞争关系(间接制约关系 ) 的手段。
进程互斥 指若干个进程要使用同一共享资源时,任何时刻最多允许一个进程去使用,其他要使用该资源的进程必须等待,直到占有资源的进程释放该资源。
第二种是协作关系
某些进程为完成同一任务需要分工协作,由于合作的每一个进程都是独立地以不可预知的速度推进,这就需要相互协作的进程在某些协调点上协 调各自的工作。当合作进程中的一个到达协调点后,在尚未得到其伙伴进程发来的消息或信号之前应阻塞自己,直到其他合作进程发来协调信号或消息后方被唤醒并继续执行。这种协作进程之间相互等待对方消息或信号的协调关系称为
进程同步 。
进程间的协作可以是 双方不知道对方名字的间接协作 ,例如,通过共享访问一个缓冲区进行松散式协作 ;也可以是
双方知道对方名字,直接通过通信机制进行紧密协作 。允许进程协同工作有利于共享信息、有利于加快计算速度、有利于实现模块化程序设计。
进程的同步(Synchronization)是解决进程间协作关系( 直接制约关系 ) 的手段。进程同步 指两个以上进程基于某个条件来协调它们的活动。一个进程的执行依赖于另一
个协作进程的消息或信号,当一个进程没有得到来自于另一个进程的消息或信号时则需等待,直到消息或信号到达才被唤醒。
不难看出, 进程互斥关系是一种特殊的进程同步关系 ,即逐次使用互斥共享资源,也是对进程使用资源次序上的一种协调。
相关文章推荐
- 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
- 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
- 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
- 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别【转】
- 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
- 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
- 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
- 进程状态&&调度算法&&进程线程区别&&进程通信方式&&线程同步
- 进程,线程通信与同步及区别
- 进程,线程通信与同步及区别
- java进程、线程通信方法以及进程与线程的区别
- Unix,进程,线程,同步,互斥,通信
- Windows线程同步机制的区别与比较及进程通信方法
- 进程与线程的区别及相应的通信方法
- 线程同步机制的区别与比较及进程通信方法
- 进程和线程之间互斥和同步区别
- Linux 线程信号量,进程信号量和内核驱动程序信号量(线程同步信号量,进程同步信号量和设备驱动同步信号量)
- 进程和线程的区别、通信方式的区别
- 线程同步机制的区别与比较及进程通信方法
- Unix,进程,线程,同步,互斥,通信