题目
进程间的通讯方式有几种?有什么优缺点?
进程间的通讯方式有几种?有什么优缺点?
进程间的通讯方式有几种?有什么优缺点?
提问时间:2020-11-17
答案
用于进程间通讯(IPC)的四种不同技术:
1.消息传递(管道,FIFO,posix和system v消息队列)
2.同步(互斥锁,条件变量,读写锁,文件和记录锁,Posix和System V信号灯)
3.共享内存区(匿名共享内存区,有名Posix共享内存区,有名System V共享内存区)
4.过程调用(Solaris门,Sun RPC)
消息队列和过程调用往往单独使用,也就是说它们通常提供了自己的同步机制.相反,共享内存区通常需要由应用程序提供的某种同步形式才能正常工作.解决某个特定问题应使用哪种IPC不存在简单的判定,应该逐渐熟悉各种IPC形式提供的机制,然后根据特定应用的要求比较它们的特性.
必须考虑的四个前提:
1.联网的还是非联网的.IPC适用于单台主机上的进程或线程间的.如果应用程序有可能分布到多台主机上,那就要考虑使用套接字代替IPC,从而简化以后向联网的应用程序转移的工作.
2.可移植性.
3.性能,在具体的开发环境下运行测试程序,比较几种IPC的性能差异.
4.实时调度.如果需要这一特性,而且所用的系统也支持posix实时调度选项,那就考虑使用Posix的消息传递和同步函数.
各种IPC之间的一些主要差异:
1.管道和FIFO是字节流,没有消息边界.Posix消息和System V消息则有从发送者向接受者维护的记录边界(eg:TCP是没有记录边界的字节流,UDP则提供具有记录边界的消息).
2.当有一个消息放置到一个空队列中时,Posix消息队列可向一个进程发送一个信号,或者启动一个新的线程.System V则不提供类似的通知形式.
3.管道和FIFO的数据字节是先进先出的.Posix消息和System V消息具有由发送者赋予的优先级.从一个Posix消息队列读出时,首先返回的总是优先级最高的消息.从一个System V消息队列读出时,读出者可以要求想要的任意优先级的消息.
4.在众多的消息传递技术—管道,FIFO,Posix消息队列和System V消息队列—中,可从一个信号处理程序中调用的函数只有read和write(适用于管道和FIFO).
比较不同形式的消息传递时,我们感兴趣的有两种测量尺度:
1.带宽(bandwidth):数据通过IPC通道转移的速度.为测量该值,我们从一个进程向另一个进程发送大量数据(几百万字节).我们还给不同大小的I/O操作(例如管道和FIFO的write和read操作)测量该值,期待发现带宽随每个I/O操作的数据量的增长而增长的规律.
2.延迟(latency):一个小的IPC消息从一个进程到令一个进程再返回来所花的时间.我们测量的是只有一个1个字节的消息从一个进程到令一个进程再回来的时间(往返时间)
在现实世界中,带宽告诉我们大块数据通过一个IPC通道发送出去需花多长时间,然而IPC也用于传递小的控制信息,系统处理这些小消息所需的时间就由延迟提供.这两个数都很重要.
1.消息传递(管道,FIFO,posix和system v消息队列)
2.同步(互斥锁,条件变量,读写锁,文件和记录锁,Posix和System V信号灯)
3.共享内存区(匿名共享内存区,有名Posix共享内存区,有名System V共享内存区)
4.过程调用(Solaris门,Sun RPC)
消息队列和过程调用往往单独使用,也就是说它们通常提供了自己的同步机制.相反,共享内存区通常需要由应用程序提供的某种同步形式才能正常工作.解决某个特定问题应使用哪种IPC不存在简单的判定,应该逐渐熟悉各种IPC形式提供的机制,然后根据特定应用的要求比较它们的特性.
必须考虑的四个前提:
1.联网的还是非联网的.IPC适用于单台主机上的进程或线程间的.如果应用程序有可能分布到多台主机上,那就要考虑使用套接字代替IPC,从而简化以后向联网的应用程序转移的工作.
2.可移植性.
3.性能,在具体的开发环境下运行测试程序,比较几种IPC的性能差异.
4.实时调度.如果需要这一特性,而且所用的系统也支持posix实时调度选项,那就考虑使用Posix的消息传递和同步函数.
各种IPC之间的一些主要差异:
1.管道和FIFO是字节流,没有消息边界.Posix消息和System V消息则有从发送者向接受者维护的记录边界(eg:TCP是没有记录边界的字节流,UDP则提供具有记录边界的消息).
2.当有一个消息放置到一个空队列中时,Posix消息队列可向一个进程发送一个信号,或者启动一个新的线程.System V则不提供类似的通知形式.
3.管道和FIFO的数据字节是先进先出的.Posix消息和System V消息具有由发送者赋予的优先级.从一个Posix消息队列读出时,首先返回的总是优先级最高的消息.从一个System V消息队列读出时,读出者可以要求想要的任意优先级的消息.
4.在众多的消息传递技术—管道,FIFO,Posix消息队列和System V消息队列—中,可从一个信号处理程序中调用的函数只有read和write(适用于管道和FIFO).
比较不同形式的消息传递时,我们感兴趣的有两种测量尺度:
1.带宽(bandwidth):数据通过IPC通道转移的速度.为测量该值,我们从一个进程向另一个进程发送大量数据(几百万字节).我们还给不同大小的I/O操作(例如管道和FIFO的write和read操作)测量该值,期待发现带宽随每个I/O操作的数据量的增长而增长的规律.
2.延迟(latency):一个小的IPC消息从一个进程到令一个进程再返回来所花的时间.我们测量的是只有一个1个字节的消息从一个进程到令一个进程再回来的时间(往返时间)
在现实世界中,带宽告诉我们大块数据通过一个IPC通道发送出去需花多长时间,然而IPC也用于传递小的控制信息,系统处理这些小消息所需的时间就由延迟提供.这两个数都很重要.
举一反三
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
1,人们染上烟瘾,最终因吸烟使自己丧命.
最新试题
- 11)例句:山间炊烟袅袅,如丝如缕.(2分)江上飘着一片片白帆,像一幅画,又像一首诗.
- 2一列火车3/5小时行了60千米.照这样的速度,这列火车从甲地到乙地用了3小时,甲乙两地的铁路长多少千米?
- 330万吨英语如何表达
- 4oh my god 函数都写什么东西我就是不会做,辅导材料也看了,妈妈得太难了不是人做的题!我该怎么学才能学好,怎么看也不会,就是看不懂!
- 5二次函数的值域问题 y=x²+ax+3 x大于等于0小于等于2 证明y大于a恒成立
- 6few 和a few区别
- 7同学们到郊区野炊.一个同学到老师那里去领碗,老师问他领多少,他说领55个.又问“多少人吃饭”,他说:“一人一个饭碗,两人一个菜碗,三人一个汤碗.”算一算,有多少人吃饭?
- 8化简一个分数时,用2约了一次,用3约了二次,用5约了一次,得七分之三,原来分数是多少
- 9三角函数什么意思
- 10烽火狼烟 晨钟暮鼓 驿寄梅花 鸿雁传书分别描述了我国古代哪些传媒,并说说这些传媒在使用过程中的利弊
热门考点
- 1数学巧算计算题,大家进来看看.
- 2甲、乙两车分别从A,B两地同时相向开出,四小时后两车相遇,然后各自继续行驶三小时,此时甲车距B地10千米,乙车距A地80千米.问甲车到达B地时乙车还要经过多少小时才能到达A地?
- 3一个细胞有丝分裂时姐妹染色单体没分开的可能原因(给出三种可能的方式)
- 419、马克思指出:“搬运夫和哲学家之间的原始差别要比家犬和猎犬之间的差别小得多,他们之间的鸿沟是分工掘成的.”这表明( )
- 5一项工程,甲独做12天完成,乙独做15天完成.甲工作4天,乙工作3天,共完成这项工程的_.
- 6一个人在凸透镜前从两倍焦距处以速度V远离透镜,则他的像移动的速度方向和大小为( )
- 7淮北主要以哪种粮食作物为主?它与当地的气候有怎样的关系?
- 8高分悬赏修改英语作文(改得好改的快有追加分)
- 91.Someone made the piano in Germany.2.We keep the milk in the refrigerator.
- 101.方方和小明各有邮票若干张,方方拿出五分之一给小明后,小明再拿出现有邮票的四分之一给方方,这是他们都有30张邮票,他们原来各有邮票多少张?(用方程解)