热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux操作系统之进程间的通讯—管道

文章目录进程间通讯(IPC机制)有哪几种方式?1、管道有名管道无名管道2、信号量进程间通讯(IPC机制)有哪几


文章目录


  • 进程间通讯(IPC机制)有哪几种方式?
    • 1、管道
      • 有名管道
      • 无名管道

    • 2、信号量




进程间通讯(IPC机制)有哪几种方式?

管道、信号量、共享内存、消息队列、套接字


1、管道

什么是管道?
在这里插入图片描述


有名管道

有名管道可以在任意两个进程之间通信。
在这里插入图片描述

有名管道的创建两种方式:1、命令创建:mkfifo FIFO、2、系统调用创建。

1、命令创建:mkfifo FIFO
在这里插入图片描述
2、创建两个文件:
a.c 向管道文件中写入数据
在这里插入图片描述
b.c 从管道文件中读取数据
在这里插入图片描述
运行结果:
在这里插入图片描述
注:当管道中没有数据,read阻塞


无名管道

无名管道主要应用于父子之间的通信
1、无名管道的创建在这里插入图片描述
在这里插入图片描述
运行结果
在这里插入图片描述
管道通信的特点:
1.管道:半双工(某一端只能进行数据的发送,或者数据的接受)、 套接字:全双工(某一端既可以发送数据也可以接受数据)
2、管道没有数据, read阻塞;
3、管道的写端关闭,read返回0;
4、管道的读端关闭,写端产生异常(发送信号,SIGPIPE,程序收到信号,异常终止)

文件描述符:
1.dup(fd):将fd复制一份,分配给文件表中未被使用最小项
2.dup(fd,2)
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


2、信号量

信号量:多个进程 访问相同资源发生多少能冲突 (红路灯)
同步进程:同一时刻,只能有一个进程访问资源
特殊变量(信号量) 值 >= 0 值可用资源数目
p操作:获取资源 -1
v资源:释放资源 +1
临界资源:同一时刻,只允许一个进程访问资源
临界区: 访问临界资源的代码段







推荐阅读
  • 大华股份2013届校园招聘软件算法类试题D卷
    一、填空题(共17题,每题3分,总共51分)1.设有inta5,*b,**c,执行语句c&b,b&a后,**c的值为________答:5 ... [详细]
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
  • 本文详细探讨了Spring框架中遇到的NoSuchBeanDefinitionException异常,具体涉及com.thinkplatform.dao.UserLogDao Bean未定义的问题,并提供了相应的解决方案。 ... [详细]
  • 学习Linux下使用caffe进行模型训练(三)
    前言不管是训练过程中,查看网络学习的状态,还是训练结束后,使用模型去执行特定任务,都需要一个可被观察的输出呈现在研究者面前,最好是可视化的图形而非冰冷的数字。因此,本次讲的是通过c ... [详细]
  • 关于进程的复习:#管道#数据的共享Managerdictlist#进程池#cpu个数1#retmap(func,iterable)#异步自带close和join#所有 ... [详细]
  • Linux bash 命令行下实现可视化文件或文件夹浏览
    Linuxbash命令行下实现可视化文件或文件夹浏览  有时候部署环境,需要配置文件路径或者载入相应的配置文件。这种情况下,如果用传统的手动修改配置的方式配置,会比较容易出意外(比 ... [详细]
  • 整理于2020年10月下旬:总结过去,展望未来Itistoughtodayandtomorrowwillbetougher.butthedayaftertomorrowisbeau ... [详细]
  • 本文详细介绍了如何在Linux系统中使用nslookup命令查询DNS服务器地址,这对于Linux服务器的运维管理是非常重要的基础知识。 ... [详细]
  • 本文探讨了SSD购买后是否需要进行4K对齐的问题,并详细解释了4K对齐的原理及其重要性。通过对比机械硬盘与固态硬盘的结构,文章深入分析了4K对齐对SSD性能的影响,并提供了具体的对齐方法。 ... [详细]
  • 大数据领域的职业路径与角色解析
    本文将深入探讨大数据领域的各种职业和工作角色,帮助读者全面了解大数据行业的需求、市场趋势,以及从入门到高级专业人士的职业发展路径。文章还将详细介绍不同公司对大数据人才的需求,并解析各岗位的具体职责、所需技能和经验。 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 本文详细介绍了Linux系统中用于管理IPC(Inter-Process Communication)资源的两个重要命令:ipcs和ipcrm。通过这些命令,用户可以查看和删除系统中的消息队列、共享内存和信号量。 ... [详细]
  • 本文详细介绍了如何使用Python的多进程技术来高效地分块读取超大文件,并将其输出为多个文件。通过这种方式,可以显著提高读取速度和处理效率。 ... [详细]
  • 本文将详细介绍如何注册码云账号、配置SSH公钥、安装必要的开发工具,并逐步讲解如何下载、编译 HarmonyOS 2.0 源码。通过本文,您将能够顺利完成 HarmonyOS 2.0 的环境搭建和源码编译。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
author-avatar
shaka14
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有