简介


IPC:( interprocess communication ) 进程间通信的简称

Unix进程间的信息共享可以有多种方式:

1)两个进程共享留存于文件系统中的某个文件上的某些信息,为访问信息,进程必须穿过内核(read  write  lseek等),当文件更新时,某种形式的同步是必要的,可以保护多个写入者,防止相互串扰,也可以保护一个或多个读出者,防止写入者的干扰

2)共享留存于内核的某些信息,管道是这类共享的一个例子,System  V 消息队列和 System  V信号量也是,现在访问共享信息的每次操作都涉及对内核的一次系统调用

3)共享内存区,进程一旦设置好该共享内存区,就可以不涉及内核的进行访问数据


线程间的IPC:如果管道为空,调用线程就阻塞在它的read上,直到某个线程往该管道写入数据


IPC对象的持续性:

1)岁进程持续的IPC:一直存在到打开着改对象的最后一个进程关闭该对象为止,例如管道和FIFO

2)随内核持续的IPC:一直存在到内核重新自居或者显式删除该对象。如System V的消息队列,信号量和共享内存区,Posix的消息队列,信号量和共享内存区至少是随内核持续的,也可以是随文件系统持续的,具体要看其实现

3)随文件系统持续的IPC:一直存在到显式删除,即使中间有内核自举,它依然保持其值,Posix消息队列,信号量和共享内存区如果是使用映射文件实现的,那么就是随文件系统持续的


当两个或者多个无亲缘关系的进程使用某种类型的IPC对象彼此交换信息时,必须有一个某种形式的名字name或者标识符identifier,这样其中一个进程可以创建改IPC对象,其余进程可以指定同一个IPC对象

管道没有名字,不能用于无亲缘关系的进程间通信

FIFO有一个在文进系统中的Unix路径作为标识符,可以作为无亲缘关系的进程间通信 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值