H面试的基础知识(2):Linux进程间通信机制

面试常问【进程间通信】最详细解说 进程是如何通信的?通信的目的是什么?为什么需要进程间通信,一文带你深入了解。 阅读详情

Linux下的通信手段基本上是从Unix平台上的进程通信机制继承而来。

Linux下的进程通信通信机制主要包括:

  1. 管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;
  2. 信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于BSD的,BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数);
  3. 报文(Message)队列(消息队列):消息队列是消息的链接表,包括Posix消息队列system V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。
  4. 共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。
  5. 信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。
  6. 套接口(Socket):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由Unix系统的BSD分支开发出来的,但现在一般可以移植到其它类Unix系统上:Linux和System V的变种都支持套接字。

 

一般来说,linux下的进程包含以下几个关键要素:

  • 有一段可执行程序;
  • 有专用的系统堆栈空间;
  • 内核中有它的控制块(进程控制块),描述进程所占用的资源,这样,进程才能接受内核的调度;
  • 具有独立的存储空间

转自:http://blog.youkuaiyun.com/liujinxunhappy08110/article/details/5420836

后台开发面试 linux os 参考文章腾讯后台开发面试总结,原创,吐血推荐!!引文及相关资料linux和os:netstat tcpdump ipcs ipcrm (如果这四个命令没听说过或者不能熟练使用,基本上可以回家,通过的概率较小 ^_^ ,这四个命令的熟练掌握程度基本上能体现面试者实际开发和调试程序的经验)http://blog.youkuaiyun.com/waltonhuang/article/details/52212533c 阅读详情

相关推荐

面试题 | LINUX应用开发

面试题 | LINUX应用开发

I_feige的博客 779

进程间通信(Linux面试干货)

进程间通信(IPC) 为什么操作系统要为用户提供进程间通信方式? 答:因为进程的独立性。每个进程都有自己的独立虚拟地址空间,操作的都是自己的地址,所以进程之间无法直接进行通信。 进程间通信方式 从Unix借鉴的:管道- - -资源传输; systemV标准的进程间通信方式:共享共存、消息队列、信号量 管道:传输资源- - -传输的是数据资源; 本质:内核中的一块缓冲区,若多个进程可以访问...

qq_42433334的博客 651

浙江大华面试过程

去杭州是我弟弟接的我  他在杭州理工读书。 去的时候是下午,由于是做硬件的,有自己独立的大厦,去的时候不让我弟进去。我弟就只能在保安那个接待外来的人的地方玩(ps:我弟在里面睡觉了2个小时,很感想我弟陪我去面试哈。) 去的时候,我是推迟了几天去的,原本以为人不会太多,结果还是有好多。一个hr实习生先让我们填了一份表格,简单介绍自己的实习经历。部分来面试的还有5年工作经验的人。然后就按照不同的工

走过的路 1万+

【Linux】面试常考---进程间通信

目录

Zhou000815的博客 1603

echarts 生成中国陕西省份(或其他省份)的地图,大屏使用

效果图: 一、首先第一步需要下载echarts和获取到陕西身份的地图信息。 1.下载echarts链接(官网): Apache ECharts 2.生成指定省份的地图数据信息,数据可以在阿里云获取。 DataV.GeoAtlas地理小工具系列 如图,点击左圈需要的省份,这里我选择的是陕西省,然后点击右圈复制下载链接,得到一个json格式的数据,可以在json转换网站转成js格式。 Json在线解析格式化-Json在线校验Json格式化压缩-Jsons在线工具 转成js格.

PrimaryColor 3890

【PCIe】CDNS PCIe VIP 杂记 -- Callback

最近在研究Cadence PCIe VIP,怎一个“惨淡”来描述。用的真是一言难尽啊,都是泪。记录一些最近学习的觉得想记录的内容在此,仅供参考讨论学习哈。有不对之处请指出大家一起讨论。

小邦是名小ICer的博客 2716

Linux 进程间通信面试总结

Linux 进程间通信面试总结

Outside_的博客 754

Simulink中通过MEX与MinGW实现C/C++结构体变量的高效导入

本文详细介绍了在Simulink中通过MEX工具链与MinGW编译器,高效导入C/C++结构体变量的完整流程。文章从需求背景出发,逐步讲解了MinGW环境配置、.h文件编写规范、核心导入命令Simulink.importExternalCTypes的使用,以及如何在MATLAB Function模块和总线创建器中调用自定义结构体,旨在实现模型与代码的无缝对齐,为后续仿真和代码生成奠定坚实基础。

weixin_29056781的博客 344

Linux 之 进程间通信(悄悄地~面试会考哟~~)

Linux 之 进程间通信 (多处面试细节,你get了吗)

qq_56674342的博客 732

11. 使用 HTTP PUT, PATCH 以及 MERGE 请求消费 SAP ABAP OData 服务修改操作的实现及其区别

使用 SAP ABAP SEGW 事物码实现 OData 服务的修改操作时,对于消费端通过 PATCH/MERGE 和 PUT 这三种不同类型的 HTTP 请求触发的场景,我们应该在 UPDATE_ENTITY 方法里用 IF 分支分别进行处理,原因就在于 GET_ENTITY 方法是否在修改处理逻辑的过程中被触发。......

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2463

基于瑞芯微RK3562 四核 ARM Cortex-A53 + 单核 ARM Cortex-M0——Linux应用开发手册

本文主要介绍TL3562-MiniEVM评估板的AMP(Asymmetric Multi-processing)开发案例,介绍基于Linux + RT-Thread(RTOS)、Baremetal的AMP案例的开发环境搭建。

创龙,嵌入式一体化解决方案商 411

【Linux:文件】进程间通信

Linux的进程间通信(IPC, Inter-Process Communication)是多进程协同工作的核心机制。本文将深入探讨IPC的原理、实现和应用,帮助读者建立完整的知识体系,掌握高性能系统设计的关键技能。在现代操作系统中,进程是程序执行的基本单位,每个进程拥有独立的地址空间。进程之间如何交换信息和协同工作?一个进程需要将数据发送给另一个进程多个进程之间共享同样的资源一个进程向其他进程发送消息,通知某种事件发生某个进程完全控制另一个进程的执行(如调试器)共享内存是最快的IPC形式!

艾莉丝努力练剑的博客,感谢大家一直以来的对艾莉丝的支持和鼓励,uu们如果对C/C++方向感兴趣的话,可以通过艾莉丝主页的微信名片加艾莉丝的好友,和努力练剑的艾莉丝一起加油! 1750

【Bug已解决】[Bug]: ValueError: No user query found in messages QWEN 3.5 27B VLLM 0.16.0 NIGHTLY 解决方案

用 vLLM 0.16.0 nightly 给发聊天请求时,服务端在处理消息时抛ValueError,请求失败。

博客 415

linux面试题_嵌入式linux面试题及答案

文末免费获取更多资料一、 简答题: 1. 请写出实现后面几个功能的Linux命令:显示文件,拷贝,删除 答:Ls cp rm 2. do„„while和while„„do有什么区别? 答:Do„while是先执行一次循环体内的代码然后在判断,而while„.do则是先判断一下条件,然后在执行。Do„„.while如果是不满足条件也会执行,一定会执行一次。 3. Linux系统下.ko文件是什么文件...

weixin_39660408的博客 1153

扩充两个三维体积:ITK实现

在医学图像处理中,经常需要进行 3D 体积的操作,比如合并、分割等。而 ITK (Insight Segmentation and Registration Toolkit) 是一个常用的开源库,可以用于实现各种医学图像处理算法。这篇文章将介绍如何使用 ITK 实现扩充两个三维体积的操作。不过以上代码已经足够简单明了地演示了如何使用 ITK 实现扩充两个三维体积的操作。首先,我们需要准备两个三维体积的数据。这里假设这两个体积大小相同,并且已经加载到内存中了。来读取和保存体积数据,使用了。

CodeVorter的博客 205

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

技术面面试高频考点总结-Linux篇

1)

qq_46046431的博客 815

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Linux:大数据告诉你面试官喜欢问什么

本文基于八股精网站对Linux面试题中高频关键词的统计分析,总结了面试中常见的知识点及其重要性。文章详细解析了Top 5高频关键词,包括命令、Linux系统、查看、进程和Linux命令,并提供了相应的学习建议。此外,文章还梳理了中频关键词和核心知识模块,如Shell脚本、文件系统与权限、进程与线程管理等,并给出了复习策略和推荐学习资源。文章强调,熟练掌握Linux命令、具备Shell编程能力以及能够独立进行系统排障,是应对Linux相关岗位面试的关键。建议读者在复习过程中注重实践,避免纸上谈兵。

ocean2103的专栏 1134

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【Linux系统】进程间通信(补充 struct file 的知识)

管道通信(匿名管道 和 命名管道详解)、System V进程间通信(共享内存详解) 以及 介绍内核是如何组织管理system V资源的(补充:共享内存映射到进程虚拟地址空间的底层实现)

无限进步!!! 1351

linux的一些典型面试题解读

面试过程中,展示对于 Linux 命令、文件系统、用户管理、软件包管理、系统监控等方面的熟练掌握以及对于系统启动流程、进程间通信方式、I/O 多路复用等更深层次概念的了解,将有助于展现你在 Linux 环境中的技能和经验。

cooldream2009的博客 1166

面试Linux易忘知识点3

信号量:用于进程间同步和互斥操作,可以控制对共享资源的访问。UNIX 套接字:也称为域套接字,用于同一台主机上的进程通信。• bg:将当前在前台运行的任务放到后台运行。无名管道:最基本的 IPC 机制之一,通常用于父子进程间的单向通信。• exec:用指定的程序替换当前进程的映像,即当前进程被新程序覆盖执行,原进程不再继续执行后续命令。• jobs:用于查看当前有哪些任务在后台运行,会列出任务编号、任务状态等信息。• dd:删除(或剪切)光标所在行(前面加数字表示删除连续的行)

m0_72164441的博客 325

Linux:共享内存全面详解

共享内存是最快的一种进程间通信(IPC)方式,它允许多个不相关的进程直接访问同一块物理内存区域。由于数据不需要在进程空间和内核空间之间来回拷贝,因此特别适合大量数据传输的场景。共享内存是Linux系统中最快的IPC机制,适合高性能和大量数据交换的场景。掌握共享内存的关键在于理解四个核心API函数的使用方法,以及同步机制的重要性。实际项目中,共享内存常与信号量结合使用,以确保数据的一致性。本文详细介绍了共享内存的原理、函数使用、实战示例和常见面试题,希望能够帮助大家全面理解和掌握这一重要的进程间通信技术。

2301_78626750的博客 1131

2020腾讯PCG后台开发暑期实习生面试(1-2面)

腾讯腾讯视频(PCG) 一面(3小时48分钟): 你没看错,三个小时,很多记不住了,问的太多太多了,嗓子都哑了 主要是技术栈不太一样,也是不放过我 1、代码测试 三道代码题 ,给90分钟,不过很快就写完了,不允许使用任何库函数和自带的数据结构 (1) 找出第100大的数 (2) 字符串复制函数 (3) 10进制数字转成64进制数,进制符包括0-9 A-Z a-z 和#@ 问了快排,递归非递归的实现 2、socket编程,原理 3、time wait 都设置成0 会怎样? 4、socket如何断开链接? tc

互联网校招面经 1438

从一道面试题谈linux下fork的运行机制

2010-11-04 作者:张洋 来源:张洋的blog 今天一位朋友去一个不错的外企面试linux开发职位,面试官出了一个如下的题目: 给出如下C程序,在linux下使用gcc编译: 1 #include "stdio.h" 2 #include "sys/t

stunix的学习之路 603

【Linux下进程机制】从一道面试题谈linux下fork的运行机制

今天一位朋友去一个不错的外企面试linux开发职位,面试官出了一个如下的题目: 给出如下C程序,在linux下使用gcc编译: 1 #include "stdio.h" 2 3 #include "sys/types.h" 4 5 #include "unistd.h" 6 7 int main() 8 9 { 10 11 pid_t pid...

weixin_34401479的博客 104

进程间通信:面试必问Linux管道底层原理与进程池设计(含踩坑记录)

即进程间通信,是指在不同进程之间传递数据、同步协作的一套机制。由于每个进程都拥有独立的地址空间,无法直接访问彼此的内存,因此通信必须通过内核中转来实现。让不同的进程看到同一份资源(内存),从而具备通信的条件。这份共享资源由操作系统提供,并需要配套创建、使用、销毁等管理能力。为此,操作系统必须提供一系列系统调用(System Call)来实现进程级的通信能力,这就要求设计出一套统一的通信接口。有了接口,自然需要相应的实现方案,进而催生了各类通信标准。例如经典的System V。

有且仅有质量分95以上的博客 858
上一篇: H面试的基础知识(1):一些基础知识的总结
下一篇: H面试程序(8):不含重复字母的字符串的全排列
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值