Linux进程间通信(IPC)的几种方式总结

 更新时间:2023年09月07日 08:42:40   作者:fliter  
进程间通信是指至少两个进程或线程间传送数据或信号的一些技术或方法,每个进程都有自己的一部分独立的系统资源,彼此是隔离的,为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信,本文就给大家介绍几种Linux进程间通信的方式,需要的朋友可以参考下

概述:

进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位(进程是分配资源最小的单位,而线程是调度的最小单位,线程共用进程资源)。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。

主要方法:

管道:

分为两种,

软管道: 如 ps -ef | grep xxxx,

硬管道

消息队列:

内核创建一个消息队列,操作系统中的多个进程都可以操作这个消息队列.可以向其发送消息,也可从中接收消息.

共享内存:

每个进程都有一个虚拟内存地址和物理内存地址的映射,一般两个进程的映射的物理内存地址是不同的,共享内存即是将其映射的物理内存地址变成一样的.这样两个进程就可以访问相同的物理内存,也就可以实现进程之间的通信.

套接字:

非常常见,如通过3306端口访问某个远程mysql服务, 我访问mysql的这个进程,和远程的这个mysql服务的进程之间的通信,就是通过3306端口创建的TCP的套接字.

如果是访问本机的mysql服务,则不会走TCP套接字,而是走Linux底层的套接字

信号量:

类似一个计数器.控制多个进程对一个共享资源的访问.

信号:

一个进程可以向另一个进程发送一个信号.通过kill -l指令可以列出所有的信号

(64种死法...)

Linux中的信号 大多数作用是把一个进程杀死,于是叫kill了..

tail -f xxx文件时,是会一直是阻塞. 如何结束? 一般会按ctrl+c,

其实该命令就是当前的shell($$可以看到当前shell的pid),向tail -f进程发送了一个信号,该信号值是2,即SIGINT

kill -9 pid, 9号信号是SIGKILL.

如果不加,则默认15号信号SIGTERM(即Terminal)

9号信号即kill信号是不能被捕捉的,必须强制停止. 其他信号可以在程序中捕捉到.

ctrl+c : SIGINT

kill不带参数: SIGTERM

KILL -9: SIGKILL

到此这篇关于Linux进程间通信(IPC)的几种方式总结的文章就介绍到这了,更多相关Linux进程通信内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Apache伪静态Rewrite详解

    Apache伪静态Rewrite详解

    这篇文章主要介绍了Apache伪静态Rewrite的相关知识以及使用方法和使用实例,需要的朋友可以参考下
    2014-03-03
  • Linux VPS下SSH常用命令整理

    Linux VPS下SSH常用命令整理

    学习完如何使用Putty远程(SSH)管理Linux VPS,今天继续为VPSer新手们整理一篇关于Linux VPS下SSH常用命令。
    2010-12-12
  • 详解CentOS7 安装 MariaDB 10.2.4的方法

    详解CentOS7 安装 MariaDB 10.2.4的方法

    这篇文章主要介绍了CentOS7 安装 MariaDB 10.2.4的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • linux 定时休眠的实现思路

    linux 定时休眠的实现思路

    这篇文章主要介绍了linux 定时休眠的实现思路,休眠的类型有三种类型,文章对每种类型介绍的都很详细,需要的朋友可以参考下
    2018-07-07
  • 从Windows到Linux的三种文件传输实现方式

    从Windows到Linux的三种文件传输实现方式

    文章介绍了在跨平台工作环境中将文件从Windows系统传输到Linux服务器的几种方法,包括使用SCP命令、搭建Web服务和使用wget下载文件,每种方法都有其特点,如安全性、速度、易用性和适用场景等
    2024-12-12
  • 查看linux文件的命令详解

    查看linux文件的命令详解

    在本篇文章里小编给大家整理的是关于查看linux文件的命令总结内容,有需要的朋友们可以学习下。
    2020-02-02
  • Linux修改dmesg输出的日志级别的步骤详解

    Linux修改dmesg输出的日志级别的步骤详解

    要修改 /proc/sys/kernel/printk 文件的内容以更改 dmesg 输出的级别,可以通过命令行进行操作,这个文件包含四个值,分别代表内核消息的不同级别,本文给大家介绍了Linux修改dmesg输出的日志级别的步骤,需要的朋友可以参考下
    2024-07-07
  • Linux新建虚拟机Ubuntu的图文教程

    Linux新建虚拟机Ubuntu的图文教程

    这篇文章主要详细介绍了Linux新建虚拟机Ubuntu的教程,文章通过图文结合的方式给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-09-09
  • Linux inotify实时备份实现方法详解

    Linux inotify实时备份实现方法详解

    这篇文章主要介绍了Linux inotify实时备份实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • linux服务器显卡崩溃解决方案

    linux服务器显卡崩溃解决方案

    这篇文章主要介绍了linux服务器显卡崩溃解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07

最新评论