建筑网站资料排行榜,门户网站如何做谷歌seo,做旅游网站的公司,建设银行信用卡网站下载文章目录 #x1f308; 一、进程间通信的目的#x1f308; 二、进程间通信的理解#x1f308; 三、进程间通信的分类 #x1f308; 一、进程间通信的目的
数据传输#xff1a;一个进程需要将它的数据发送给另一个进程资源共享#xff1a;多个进程之间共享同样的资源。通… 文章目录 一、进程间通信的目的 二、进程间通信的理解 三、进程间通信的分类 一、进程间通信的目的
数据传输一个进程需要将它的数据发送给另一个进程资源共享多个进程之间共享同样的资源。通知事件一个进程需要向另一个或一组进程发送消息通知它或它们发生了某种事件 (如进程终止时要通知父进程)。进程控制有些进程希望完全控制另一个进程的执行 (如 Debug 进程)此时控制进程希望能够拦截另一个进程的所有陷入和异常并能够及时知道它的状态改变。
总而言之进程间通信的目的是为了达成多进程之间的协同。根据不同的控制场景需要不同的协同方式而所有的协同方式的前提是进程之间要能够建立通信。 二、进程间通信的理解
1. 进程之间不能直接进行通信
由于进程具有独立性A 进程的数据不能直接交给 B 进程。 如果 A 进程想要直接数据交给 B 进程是 A 进程去访问 B 进程的一段内存区域将数据拷进去呢还是 B 进程去直接读取 A 进程的内存区域将数据拷出来呢 因此进程之间如果想要直接进行通信是行不通的这直接违背了进程具有独立性的特点。
2. 如何实现进程间通信
由于进程 A 和进程 B 不能直接进行通信那么就需要借助媒介来进行交流。 如相隔两地的人不能直接交流此时就可以通过书信实现两个人之间的通信书信就是媒介。人 A 将想要发送的数据写在书信上人 B 就从书信上读取数据。 进程之间的通信也是同理多个进程通过往媒介读写数据实现进程间的通信。 3. 进程间通信的本质
不管如何实现进程间通信本质就是让不同的进程看到同一份资源 (即同一个媒介)。这个资源通常是由 OS 提供的不能由 A / B 进程的任何一个提供 但 A / B 进程可以去向 OS 申请。 三、进程间通信的分类
管道匿名管道、命名管道。System V IPCSystem V 消息队列、System V 共享内存、System V 信号量。POSIX IPC消息队列、共享内存、信号量、互斥量、条件变量、读写锁。