内容涉及到的具体代码后续更

1.进程控制:fork函数,创建一个进程
在用户空间中进程A调用fork函数进入内核linux创建用户空间进程B,A和B唯一不同的是pid号
进程间通信即用户空间内A和B的通信(交流)

进程A和进程B相当于2个封闭的房子。2个封闭的房子内的东西是无法进行交流的,而进程又处在用户空间内,所以这说明:
进程通信:在用户空间实现进程通信是不可能的,通过linux内核进行通信
父进程与子进程之间:先执行父进程,再执行子进程
相当于父进程是卖家电的,子进程是安装家电的,要先卖出去才能安装

解决进程间通信:通过内核空间内的对象(进程间通信方式)
进程A在内核中写入对象,进程B读取对象。注意得是同一个对象

线程间通信:
一个进程可以有多个线程,一个线程只能对一个进程
线程间通信可以在用户空间就可以实现,可以通过全局变量通信

2.通信方式
管道通信:无名管道,有名管道(文件系统中有名)
信号通信:信号通信包括:信号的发送、信号的接收和信号的处理
IPC通信:共享内存、消息队列、信号灯(信号量)
以上进程通信方式都是单机模式下的,即只有一个linux内核
socket通信存在于一个网络中两个进程之间的通信(2个linux内核)

3.进程通信的学习思路
每一种通信方式都是基于文件I/O的思想
open:创建或打开进程通信对象。函数形式不一样,有的是多个函数完成
write:向进程通信对象中写入内容。函数形式可能不一样
read:从进程通信对象中读取内容。函数形式可能不一样
close:关闭或者删除进程通信对象。函数形式可能不一样
在用户空间中open打开文件,在内核开辟一个缓存buf,write写入内容,read读出来,关闭文件

Linu进程间通信(一)相关推荐

  1. 快递拒收后怎么处理_如何处理快递中的错误

    快递拒收后怎么处理 If you use Express to develop your application, you probably thinking about Errors handlin ...

  2. Python 多进程笔记 — 启动进程的方式、守护进程、进程间通信、进程池、进程池之间通信、多进程生产消费模型

    1 面向过程启动多进程 Python 操作进程的类都定义在 multiprocessing 模块,该模块提供了一个 Process 类来代表一个进程对象,这个对象可以理解为是一个独立的进程,可以执行另 ...

  3. Android中Messenger进程间通信

    基于消息的进程间通信的方式,不需要编写aidl文件,使用更加简单方便. 客户端和服务端都用Messenger来发送数据,用Handler来处理数据.Messenger处理数据依靠Handler,所以是 ...

  4. Linux网络编程--进程间通信(一)

    进程间通信简介(摘自<Linux网络编程>p85) AT&T 在 UNIX System V 中引入了几种新的进程通讯方式,即消息队列( MessageQueues),信号量( s ...

  5. linux进程间通信-XSI IPC

    一 什么是XSI IPC 有三种 IPC我们称作XSI IPC,即消息队列.信号量以及共享存储器(共享内存),它们之间有很多相似之处. 二 标识符和键     每个内核中的 IPC结构(消息队列.信号 ...

  6. Linux进程间通信(IPC)-------消息队列

    消息队列是进程间通信的一种方法,他有两个操作,一个进程来发送消息(也就是向内存中写入数据),另一个是获取消息(也就是另外一个进程在内存中读取数据) 下面来看消息队列的 创建,写入,读取等需要用到的函数 ...

  7. Linux下进程间通信-------管道通信

    先来看原理: 特点 : 1.半双工的通信方式(通信期间双方都可以发送/接收文件,但是不能双方同时发送/接收数据) 2.pipe只能用于父子进程间的通信 3.mkfifo可用于任意进程间的通信 代码逐步 ...

  8. linux进程间通信:POSIX 共享内存

    文章目录 思维导图 通信原理 优势 POSIX 共享内存 编程接口 编程案例 思维导图 之前学习过sysemV 的共享内存的实现及使用原理,参考linux进程间通信:system V 共享内存 POS ...

  9. linux进程间通信:POSIX信号量

    文章目录 概念描述 编程接口 注意事项 编程案例 信号量基本接口使用案例 信号量父子进程间通信 信号量实现 两进程之间通信 概念描述 英文:semaphore 简称SEM,主要用来进行进程间同步 本质 ...

最新文章

  1. 戴尔电脑管家_2020年笔记本电脑推荐指南:笔记本电脑应该怎么选?什么牌子的笔记本电脑更值得入手?...
  2. 图的m着色问题pascal程序
  3. 输入三个数,按照由大到小的顺序输出
  4. python取余数函数_python中两数相除取余数怎么运算
  5. 手机QQ邮箱可以发html邮件么,如何使用手机qq邮箱发送邮件
  6. 生物信息学|通过整合药物表型、治疗、化学结构和基因组特征,使用机器学习预测药物-药物相互作用
  7. Go在迅雷P2P连通系统中的性能优化实践-朱文
  8. 博凌科技携手中企动力用互联网思维卖乐器
  9. 计算机系vlog,华为Mate40系列化身vlog神器,专业好用两手抓
  10. 美团酒店:如何收割新一代90后住宿需求? | 一点财经
  11. 什么是rmi?为什么要使用rmi框架?
  12. 完美解决MSSQL安装问题“Polybase要求安装Oracle JRE 7更新51(64位)”方案
  13. Java——Error running exam-web: Adress localhost:1099 is already in use
  14. 体验专业级上网行为管理的特色功能
  15. 商科转码之路 | 算法岗寒假实习面经
  16. Firefox浏览器多账号登陆方法
  17. 022-企业站:纽曼移动端微官网实战
  18. 软件测试方法和技术,朱少民,第三章习题答案
  19. 可实现一键分享到多个平台(微信,微博,qq空间,人人等)
  20. Anaconda:The environment is inconsistent, please check the package plan carefully的解决办法

热门文章

  1. sql 两张表的相同字段中刷选出不同数据
  2. 用Javascript开发《三国志曹操传》-开源讲座(三)-情景对话中,仿打字机输出文字...
  3. 【微信小程序】点击复制功能的实现(常用于分享码,兑换码)
  4. 【十二省联考2019】春节十二响
  5. python展示数据库视图_Django Admin后台添加数据库视图过程解析
  6. 六个可以永久收藏的网站
  7. Pycharm快速入门(10) — 插件管理
  8. 杜忠:顶层设计——中小型工业品企业也要有!
  9. 13、Scratch教程-打地鼠游戏
  10. 台球小技巧:高杆低杆中杆各种杆法效果线路图解