我正在研究操作系统(Silberscatz,Galvin等人)。我的编程经验仅限于编程文本或算法文本中偶尔编写的练习题。换句话说,我没有适当的应用程序编程或系统编程经验。我认为我的下面的问题是缺乏上述经验的结果,因此缺乏背景。共享内存IPC机制与API /系统调用调用的区别
我特别研究IPC机制。在阅读有关共享内存(SM)时,我无法想象使用SM进行通信的真实场景。在我的linux(ubuntu)机器上(使用小型shell脚本中的'ipcs')上的相同SM段的进程的检查被上传here
大部分应用程序共享似乎与X deamon共享。据我所知,X是负责给我我的GUI的过程。我感到这些应用程序(主要是保留在我的任务栏上的applet)与X共享关于需要改变其外观和显示值的数据。这是一个合理的推论吗?
如果是这样, 我的问题是,我的应用程序通过共享内存段与'X'通信与我的应用程序调用'X'提供的某些API并与'X'通信需要刷新他们的外表? 差异我的意思是,为什么不使用后面的方法?
是不是觉得如何用户进程和内核沟通?应用程序在需要时调用系统调用,比如读取文件,通过系统调用的参数传递文件名和其他相关信息?
而且你能提供给我的日常使用的应用程序,其使用共享内存和消息传递通信的例子吗?
编辑 我已经提出了更清晰的问题。我已经格式化编辑的零件要大胆
我编辑我的问题,使我的问题更加清晰。我知道函数调用和共享内存的区别。我想知道为什么后来这里更受欢迎。 – 2011-04-13 07:15:17