进程间通信

简介: 进程间通信

什么是进程通信


百度百科:进程通信是指在进程间传输数据(交换信息)。


也就是说,进程通信,就是不同进程之间,来进行的信息交换。


进程间通信(IPC)的一般目的,大概有数据传输、共享数据、通知事件、资源共享和进程控制等。


为什么需要进程通信


那么为什么会需要进程通信的存在呢?


我们知道,操作系统中最核心的概念就是进程,进程是对正在运行中的程序的一个抽象,是系统进行资源分配和调度的基本单位。每个进程都有独立的代码和数据空间,系统在运行的时候会为每个进程分配不同的内存空间


也就是说,在操作系统层面,进程属于最小颗粒,两个进程之间,是没有什么关联性的,是隔离的,当两个进程间需要进行信息交换的时候,就需要用到进程通信。


进程通信的方式


这部分属于操作系统的内容,想详细了解的可以找操作系统的书来看一下


进程通信的方式有七种,分别是:


管道pipe


半双工/单项通信/父子/依赖文件系统



有名管道FIFO


全双工/不需要亲缘关系/命名管道/先进先出


共享内存shared memory


互相通信



消息队列message queue


链表 ,互相通信



信号量semophore


计数器,控制对共享资源的访问,pv操作


保护上面的 共享内存shared memory


信号sinal


异步通信,通知接收进程某个事件已经发生


以下为linux中的信号



套接字socket


不同主机间进行通信用这个,同个主机内的进程也可以用


远程调用


不同主机进程间的通信,就是通过socket,是否还有其他方式,

http应该算一种。


redis的实现


此处提到redis,是因为,redis的客户端和服务端,其实就是通过socket来连接的,可以注意一下。


相关文章
MindOpt APL 达摩院自己的建模语言!
MindOpt建模语言(MindOpt Algebraic Programming Language, MindOpt APL, 简称为MAPL)是MindOpt团队研发的一种代数建模语言。相比与其他的语言,MAPL语法相对较少且自然,很贴近数学语言。用MAPL描述数学规划模型与用数学公式进行描述非常类似。
MindOpt APL 达摩院自己的建模语言!
|
5月前
|
人工智能 运维 网络协议
别只盯着ChatGPT!大模型也能帮你抓网络“鬼”
别只盯着ChatGPT!大模型也能帮你抓网络“鬼”
328 4
|
7月前
|
设计模式 机器学习/深度学习 缓存
基于PySide6的聚合翻译软件设计与实现
本项目基于PySide6框架构建多引擎聚合智能翻译系统,解决传统工具单一API依赖、切换繁琐及定制化不足的问题。系统采用分层架构,包含UI层、业务逻辑层和API层,运用策略模式、工厂模式等设计模式提升灵活性。核心功能包括翻译引擎抽象、智能路由选择与异步处理,支持无感切换、动态权重调整及非阻塞交互。优化策略涵盖LRU缓存与三级容错机制,确保高性能与稳定性。系统跨平台发布,具备插件化扩展能力,未来将探索机器学习质量预估与OCR支持等功能,适配企业级需求。
204 11
|
SQL 消息中间件 Kafka
实时计算 Flink版产品使用问题之如何进行数据校验和订正
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
10月前
|
存储 关系型数据库 分布式数据库
[PolarDB实操课] 01.PolarDB分布式版架构介绍
《PolarDB实操课》之“PolarDB分布式版架构介绍”由阿里云架构师王江颖主讲。课程涵盖PolarDB-X的分布式架构、典型业务场景(如实时交易、海量数据存储等)、分布式焦点问题(如业务连续性、一致性保障等)及技术架构详解。PolarDB-X基于Share-Nothing架构,支持HTAP能力,具备高可用性和容错性,适用于多种分布式改造和迁移场景。课程链接:[https://developer.aliyun.com/live/253957](https://developer.aliyun.com/live/253957)。更多内容可访问阿里云培训中心。
247 0
[PolarDB实操课] 01.PolarDB分布式版架构介绍
|
SQL 监控 Java
实时计算 Flink版产品使用问题之出现反压(Backpressure)问题时,该如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
Cloud Native 持续交付 云计算
云计算的未来:云原生技术引领数字化转型新篇章####
本文旨在探讨云原生技术如何重塑云计算领域,推动企业实现前所未有的敏捷性、可扩展性和效率。我们将深入分析云原生的核心概念、关键技术组件(如容器化、微服务、持续集成/持续部署CI/CD),并通过实际案例展示其在不同行业中的应用成效。此外,还将探讨云原生面临的挑战及未来发展趋势,为读者提供全面而深入的理解。 ####
|
人工智能 监控 数据可视化
Java智慧工地信息管理平台源码 智慧工地信息化解决方案SaaS源码 支持二次开发
智慧工地系统是依托物联网、互联网、AI、可视化建立的大数据管理平台,是一种全新的管理模式,能够实现劳务管理、安全施工、绿色施工的智能化和互联网化。围绕施工现场管理的人、机、料、法、环五大维度,以及施工过程管理的进度、质量、安全三大体系为基础应用,实现全面高效的工程管理需求,满足工地多角色、多视角的有效监管,实现工程建设管理的降本增效,为监管平台提供数据支撑。
301 3
|
存储 Python
【Python 基础】解释reduce函数的工作原理
【5月更文挑战第6天】【Python 基础】解释reduce函数的工作原理
|
存储 缓存 关系型数据库
MariaDB 和 GreatSQL 性能差异背后的真相
【10月更文挑战第22天】本文介绍了 MariaDB 和 GreatSQL 两款数据库系统的背景、性能差异因素及实际应用场景。MariaDB 是 MySQL 的分支,具有良好的社区支持和丰富的插件生态系统;GreatSQL 是国产的 MySQL 兼容数据库,专注于企业级应用场景。文章详细对比了两者的存储引擎优化、查询优化器差异、缓存机制和并发处理能力,并分析了它们在 OLTP 和 OLAP 场景中的性能表现。
552 3