企业网站制作怎么做,大型网站的服务器架设与小型网站有什么不同,手机端h5网站模板下载,做房产抵押网站需要什么以下内容源于网络资源的学习与整理#xff0c;如有侵权请告知删除。 1、为什么需要进程间通信#xff1f;
#xff08;1#xff09;进程间通信#xff08;IPC#xff09; 指的是2个任意进程之间的通信。#xff08;2#xff09;同一个进程在一个地址空间中 同一个进程…以下内容源于网络资源的学习与整理如有侵权请告知删除。 1、为什么需要进程间通信
1进程间通信IPC 指的是2个任意进程之间的通信。2同一个进程在一个地址空间中 同一个进程的不同模块不同函数、不同文件之间的通信很简单很多时候都是全局变量、也可以通过函数形参实参传递。32个不同的进程处于不同的地址空间因此要互相通信很难。 2、什么样的程序设计需要进程间通信
199%的程序不需要考虑进程间通信 因为大部分程序都是单进程的可以多线程2复杂、大型的程序 因为设计的需要必须设计成多进程程序即设计成多个进程同时工作来完成任务的模式常见的如GUI、服务器。3结论IPC技术在一般中小型程序中用不到在大型程序中才会用到。 3、linux内核提供多种的进程间通信机制
1无名管道和有名管道 2SystemV IPC信号量、消息队列、共享内存
3Socket域套接字
4信号 4、IPC的应用范围
1日常使用少只有大型程序才能用上 2更为复杂属于linux应用编程中难度最大的部分
3细节多
4面试较少涉及对找工作帮助不大
5建议后续深入学习时再来实际写代码详细探讨 一、管道
1、管道无名管道
1管道通信的原理内核维护的一块内存有读端和写端管道是单向通信的
2管道通信的方法父进程创建管道后fork子进程子进程继承父进程的管道fd。
3管道通信的限制只能在父子进程间通信、半双工。
4管道通信的函数pipe、write、read、close。
2、有名管道fifo
1有名管道的原理实质也是内核维护的一块内存表现形式为一个有名字的文件。
2有名管道的使用方法固定一个文件名2个进程分别使用mkfifo创建fifo文件然后分别open打开获取到fd然后一个读一个写。
3管道通信限制半双工注意不限父子进程任意2个进程都可。
4管道通信的函数mkfifo、open、write、read、close 二、SystemV IPC介绍
1、SystemV IPC的基本特点
1系统通过一些专用API来提供SystemV IPC功能
2包含信号量、消息队列、共享内存
3其实质也是内核提供的公共内存 2、消息队列
1本质上是一个队列队列可以理解为内核维护的一个FIFO 2工作时A和B2个进程进行通信A向队列中放入消息B从队列中读出消息。 3、信号量
1实质就是个计数器其实就是一个可以用来计数的变量可以理解为int a 2通过计数值来提供互斥和同步。 4、共享内存
1大片内存直接映射 2类似于LCD显示时的显存用法 5、剩余的2类IPC
1信号 2Unix域套接字socket