进程间通信

标签: linux 通信 posix
6人阅读 评论(0) 收藏 举报
分类:

同步和互斥

互斥:由于各个进程需要共享资源,而共享资源具有排他性。各个进程竞争使用这些资源,进程的这种关系称之为互斥。
 这种一次只能被一个进程使用的资源称之为临界资源
访问临界资源的代码段称之为临界区。
同步:多个进程相互配合共同完成一项任务

进程间通信的目的

数据传输
资源共享
通知事件

进程间通信的发展:

管 道
SysV IPC 事实上的标准

POSIX

推荐看的书籍

1) UNIX网络编程卷2
2)Nginx
MySQL
Redis
MQ

进程间通信的分类:

文件

管道

SyStemV Ipc

消息队列

共享内存

信号量

POSIX IPC

条件变量

互斥量

读写锁

信号量

Socket

进程共享信息的三种方式:

基于文件系统

基于内核

基于共享内存的
这里写图片描述

IPC对象的持续性;

随进程持续

随内核持续

随文件系统持续

* 死锁*

多个进程相互等待对方资源,在得到所有资源继续运行
之前,不会释放自己已经得到的资源,这样造成了循环等待的现象,称之为死锁

死锁产生的必要条件:

它所产生的资源必须具有互斥性:

请求并保持:

不可剥夺:

形成环路等待:

 防止死锁:

  统一分配

  可剥夺

  有序分配

避免死锁:

经典死锁避免算法:银行家算法
1、客户向银行家申请贷款,贷款总额不超过银行家现有资金量,接纳该客户

2、客户可以分批次向银行贷款,但贷款总额不能超过开始的申请总量

3、当银行家现有的资金不能满足客户,可以在有限时间内给客户提供贷款

4、当客户得到所有资金后,在有限时间内归还

经典死锁案例:

哲学家就餐

这里写图片描述

信号量 semaphore

信号量 p v,网络 最短路径 goto是有害的
狄杰斯特拉

查看评论

【安卓开发】使用binder进行进程间通信

通常我们会有这样的需求,在安卓系统中,两个独立的进程之间需要通信,如进程A需要进程B的发过来的信号;或者进程A与进程B共享一个内存块;或者进程A是32位进程而进程B是64位进程,为了加速处理过程,需要...
  • jaych
  • jaych
  • 2016-09-02 23:54:38
  • 629

UNIX环境C语言编程(12)-进程间通信

管道 popen、pclose函数 FIFO(命名管道) XSI IPC 消息队列 共享内存 信号灯 客户机/服务器特性...
  • justkk
  • justkk
  • 2015-02-06 17:28:42
  • 1375

下面哪些机制可以用于进程间通信

下面哪些机制可以用于进程间通信? A Socket B Named pipe C Named event D Critical Section E Shared me...
  • xhyxxx
  • xhyxxx
  • 2017-03-20 22:29:47
  • 625

嵌入式 Linux 进程间通信几种方式小结

一、进程间通信概述 进程通信有如下一些目的: A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间 B、共享数据:多个进程想要操作共享数据,一个进程对共...
  • skdkjxy
  • skdkjxy
  • 2014-08-29 17:21:23
  • 640

unix进程间通信(pdf)

  • 2008年08月22日 15:15
  • 8.39MB
  • 下载

一个例子入门Linux进程间通信

先上题目吧:
  • u011435712
  • u011435712
  • 2014-11-22 10:53:27
  • 1842

android进程间通信机制讲解

这里主要讲解Android中的IPC——inter Process  communication,含义为进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。 说起进程间通信,我们先来了解什么...
  • qq_28273051
  • qq_28273051
  • 2016-12-07 19:59:25
  • 256

Linux内核源代码情景分析-基于socket的进程间通信

一、利用插口实现进程间通信的流程示意图如下:                                    有连接插口通信流程示意图    二、client_server_local_sock...
  • jltxgcy
  • jltxgcy
  • 2015-05-02 16:55:18
  • 1759

Linux进程间通信——消息队列应用实例

消息队列是消息的链接表,包括Posix消息队列system V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格...
  • li_wen01
  • li_wen01
  • 2017-01-20 17:26:20
  • 618

Linux进程间通信的例子

  • 2013年10月16日 15:08
  • 11KB
  • 下载
    个人资料
    持之以恒
    等级:
    访问量: 2192
    积分: 481
    排名: 10万+