推进:从Linux进程基础知识过渡到进程的控制与进程间的通信

来源:互联网 发布:数学分析 考研 知乎 编辑:程序博客网 时间:2024/05/29 07:28

写在前面:小生纯业余选手,开此博仅仅是为了积累,纯当笔记来用。如有看官光临小生博客,请不要相信我的代码就是正确的。如果您发现了错误也恳请耽误您一点时间,请您在下面指出来,不胜感激!

如果发现一些笔记的说法完全是错误的请建议我删除!



由之前的文件分析得到,两个进程同时对一个文件进行访问可能得不到期望的结果,所以需要控制进程让他们有序的或者按照某种指令来访问文件,于是,就引出了进程控制的模型,进程控制通过信号得到实现,所以在了解进程控制之前必须了解Linux的信号机制。


由之前内存分析得到,两个进程的通信可以通过共享内存和文件的方式来进行数据交换,但是这两种方式都只能满足一些简单的需求,对于更复杂的问题需要专门的进程通信(数据交换)的方式来进行,Linux有两大类通信介质:1.基于文件的通信;2.基于内存的方式


基于文件的方式包括:

无序文件(映射);

有序文件(管道文件(pipe(有名/匿名))和socket文件(也是一种管道文件))


基于内存的方式包括:

无序内存(内存共享通过mmap(SHARED)映射得到的内存))
有序内存 (共享队列)


信号可以认为是解决所有关于进城问题的中枢,借助信号可以实现进程的控制、借助于信号量与进程间的通信技术可以实现进程的同步。

0 0