全球旧事资料 分类
常需要由应用程序提供的某种同步形式才能正常工作解决某个特定问题应使用哪种IPC,不存在简单的判定应该逐渐熟悉各种IPC形式提供的机制然后根据特定应用的要求比较它们的特性
f必须考虑的四个前提1联网的还是非联网的IPC适用于单台主机上的进程或线程间的如果应用程序有可能分布到多台主机上那就要考虑使用套接字代替IPC从而简化以后向联网的应用程序转移的工作2可移植性3性能在具体的开发环境下运行测试程序比较几种IPC的性能差异4实时调度如果需要这一特性而且所用的系统也支持posix实时调度选项那就考虑使用Posix的消息传递和同步函数
各种IPC之间的一些主要差异1管道和FIFO是字节流没有消息边界
Posix消息和SystemV消息则有从发送者向接受者维护的记录边界egTCP是没有记录边界的字节流UDP则提供具有记录边界的消息2当有一个消息放置到一个空队列中时Posix消息队列可向一个进程发送一个信号或者启动一个新的线程SystemV则不提供类似的通知形式3管道和FIFO的数据字节是先进先出的Posix消息和SystemV消息具有由发送者赋予的优先级从一个Posix消息队列读出时首先返回的总是优先级最高的消息从一个SystemV消息队列读出时读出者可以要求想要的任意优先级的消息4在众多的消息传递技术管道FIFOPosix消息队列和SystemV消息队列中可从一个信号处理程序中调用的函数只有read和write适用于管道和FIFO
比较不同形式的消息传递时我们感兴趣的有两种测量尺度
f1带宽ba
dwidth数据通过IPC通道转移的速度为测量该值我们从一个进程向另一个进程发送大量数据几百万字节我们还给不同大小的IO操作例如管道和FIFO的write和read操作测量该值期待发现带宽随每个IO操作的数据量的增长而增长的规律2延迟late
cy一个小的IPC消息从一个进程到令一个进程再返回来所花的时间我们测量的是只有一个1个字节的消息从一个进程到令一个进程再回来的时间往返时间
在现实世界中带宽告诉我们大块数据通过一个IPC通道发送出去需花多长时间然而IPC也用于传递小的控制信息系统处理这些小消息所需的时间就由延迟提供这两个数都很重要
3
进程间数据通信方式和特点转201009031829
由于不同进程运行在各自不同内存空间中.一方对于变量的修改另一方是无法感知的.因此.进程之间的信息传递不可能通过变量或其它数据结构直接进行,只能通过进程间通信来完成。根据进程通信时信息量大小的不同,可以将进程通信划分为两大类型:控r
好听全球资料 返回顶部