• 欢迎来到 - 我就爱电子网 - http://www.592dz.com !
您的位置:> 我就爱电子网电子文章arm嵌入式计算机操作系统进程(线程)的同步与通信 -- 正文
正文

计算机操作系统进程(线程)的同步与通信

[05-04 22:12:52]   来源:http://www.592dz.com  arm嵌入式   阅读:9633

 

概要:就不 能向缓冲区写入新的数据而应处于等待状态;只有等进程B自缓冲区读取数据后,才应通知 进程A去写入数据。显然,如果这两个进程不能如此协调工作,则势必造成严重的后果。间接制约关系源于对资源的共享。例如,进程A和进程B共享一台打印机,如果系统已经把打印机分配给了进程A,则进程B因不能获得打印机的使用杈而应处于等待状态;只有当进程A把打印机释放后,系统才能唤醒进程B使其获得打印机的使用权。如果这两个进程不这样做,那么也会造成极大的混乱。由上可知,在多进程合作工作的过程中,操作系统应解决两个问题:一是各进程间应该具有一种互斥关系,即对于某个共享资源,如果一个进程正在使用,则其他进程只能等待,等到该进程释放该资源后,等待的进程之L才能使用它;二是相关的进程在执行上要有先后的次序,一个进程要等其伙伴发来通知,或建立了某个条件后才能继续执行,否则只能等待。进程之间这种制约性的合作运行机制叫做进程间的同步。系统中进程的同步是依靠进程与进程之间互相发送消息来保证的。进程间的同步依赖于进程间的通信。在操作系统中,是使用信号量、邮箱(消息邮箱)和消息队列这些被称做事件的中间环节来实现进程之间的通信的。图是两个进程通过事件进行通信的示意图。进程1是发信方,进程2是收信 方。作为发信方,进程1的责任是把信息

计算机操作系统进程(线程)的同步与通信,http://www.592dz.com

  系统以并发方式运行的各个进程,不可避免地要共同使用一些共享资源以及相互之间的通信。因此,对于一个完善的多进程操作系统来说,系统必须具有完各的同步和通信机制。

  为了实现各进程之间的合作和无冲突的运行,在各进程之间必须建立一些制约关系,其中 一种制约关系叫做直接制约关系,另一种制约关系则叫做间接制约关系。

  直接制约关系源于进程之间的合作。例如,有进程A和进程B两个进程,它们需要通过访问同一个数据缓冲区合作完成一项工作,进程A负责向缓冲区写入数据,进程B负责从缓 冲区读取该数据。显然,当进程A还未向缓冲区写入数据时(缓冲区为空时),进程B因不能从缓冲区得到有效数据而应处于等待状态;只有等进程A向缓冲区写入了数据后,才应通知 进程B去取数据。相反,当缓冲区的数据还未被进程B读取时(缓冲区为满时),进程A就不 能向缓冲区写入新的数据而应处于等待状态;只有等进程B自缓冲区读取数据后,才应通知 进程A去写入数据。显然,如果这两个进程不能如此协调工作,则势必造成严重的后果。

  间接制约关系源于对资源的共享。例如,进程A和进程B共享一台打印机,如果系统已经把打印机分配给了进程A,则进程B因不能获得打印机的使用杈而应处于等待状态;只有当进程A把打印机释放后,系统才能唤醒进程B使其获得打印机的使用权。如果这两个进程不这样做,那么也会造成极大的混乱。

  由上可知,在多进程合作工作的过程中,操作系统应解决两个问题:一是各进程间应该具有一种互斥关系,即对于某个共享资源,如果一个进程正在使用,则其他进程只能等待,等到该进程释放该资源后,等待的进程之L才能使用它;二是相关的进程在执行上要有先后的次序,一个进程要等其伙伴发来通知,或建立了某个条件后才能继续执行,否则只能等待。

  进程之间这种制约性的合作运行机制叫做进程间的同步。系统中进程的同步是依靠进程与进程之间互相发送消息来保证的。

  进程间的同步依赖于进程间的通信。在操作系统中,是使用信号量、邮箱(消息邮箱)和消息队列这些被称做事件的中间环节来实现进程之间的通信的。

  图是两个进程通过事件进行通信的示意图。进程1是发信方,进程2是收信 方。作为发信方,进程1的责任是把信息发送到事件上,这项操作叫做发送事件;而作为收信 方,进程2的责任是通过读事件操作对事件进行查询,如果有信息则读取信息,如果没有则等 待。读事件操作叫做请求事件。

两个进程在使用事件进行通信的示意图

  图 两个进程在使用事件进行通信的示意图

  用于同步和通信的事件,不同的操作系统有所不同。不过,常用的事件有信号量、消息邮 箱、消息队列等。

  



  
标签:arm嵌入式arm嵌入式系统大全,arm系统arm嵌入式
《计算机操作系统进程(线程)的同步与通信》相关文章