IPC介绍
进程间通信的发展IPC(Inter-Process Communication)进程间通信1、管道:原始的通信方式2、System v:unix系统和Linux目前都支持,使用也广泛3、Posix :随着Linux各版本的出现,需要一套标准进程间通信的目的1、数据传输2、资源共享3、事件的通知4、进程控制进程间通信的分类1、文件、2、文件锁:可以互斥,读写锁3、有名管道(pipe)4、信号5、消息
·
进程间通信的发展
IPC(Inter-Process Communication)进程间通信
1、管道:原始的通信方式
2、System v:unix系统和Linux目前都支持,使用也广泛
3、Posix :随着Linux各版本的出现,需要一套标准
进程间通信的目的
1、数据传输
2、资源共享
3、事件的通知
4、进程控制
进程间通信的分类
1、文件、
2、文件锁:可以互斥,读写锁
3、有名管道(pipe)
4、信号
5、消息队列(SystemV, Posix)
6、共享内存SystemV, Posix)
7、信号量(SystemV, Posix)
8、互斥量(Posix)
9、条件变量(Posix)
10、共享内存(Posix)
11、读写锁(Posix)
12、套接字(socket)
进程之间的关系
-
互斥:矛盾关系
比如:两个小孩争抢一个玩具。只有一个小孩能拿到玩具。
-
同步:协助关系
比如:司机与售票员; 司机在开车之前,要得到售票员关门的通知。 汽车到站后,司机要通知售票员,可以开门。
-
死锁关系:
多个进程在等待对方的资源,然后都不给对方 解决死锁,可用信号量
PV原语:
-
互斥:PV操作在同一个进程中
-
同步:PV操作在不同的进程中
-
信号量计数值s:
S>0:表示有S个资源可用 S=0:表示满意资源可用,也没进程在等待资源 S<0: 表示无资源可用 如果s=-2 表示还有2个进程在等待资源
更多推荐
已为社区贡献1条内容
所有评论(0)