1.进程为什么要通信呢?
①🍎 为了进程之间更好的协同工作,举个例子,在学校,学院的管理人员给教师安排课程的时候,必须事先知道该教师平常的上课情况,不然会将教师的课程安排到一起造成麻烦!
②🍎事实是进程是具有独立性的
,进程 = 内核数据结构 + 代码和数据,例如:A 进程就不能看到 B 进程的任何信息代码段和数据段,所以因为这个事实,进程需要通信必须采取其他办法。
注意❗: 在 fork() 函数中,子进程会继承父进程的数据,包括代码段、数据段、堆栈等。虽然子进程继承了父进程的数据,但它们是独立的执行实体,彼此之间并没有直接的通信机制。因此,fork() 不能被看作是进程之间的通信。 而且进程通信的意思是一直通信,随时联系的意思,而 fork( )只是一下子进程继承父进程关系!
2.进程之间如何通信呢?
①🍎 进程之间通信的成本可能会稍微高一下,原因是:进程之间有独立性。
②🍎 **进程间通信的前提:**先让两个不同的进程,必须看到同一份(操作系统)资源(“一段内存”)。
因为进程具有独立性,所以为了实现进程通信,必须找到**“
一份公共的区域来存放两个进程的内核数据结构以及代码和数据
”**。