E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
linux进程间通信
Linux进程间通信
(IPC)编程实践(七)共享内存的使用-System V共享内存(API)
上一篇博文提到的系统调用mmap通过映射一个普通文件实现共享内存。那么本文中介绍的SystemV共享内存则是通过映射特殊文件系统shm中的文件实现进程间的共享内存通信。也就是说,每个共享内存区域对应特殊文件系统shm中的一个文件。执行过程是先调用shmget,再调用shmat。对于每个共享的内存区,内核维护如下的信息结构,定义在头文件中。//SystemV共享内存基本数据结构 structshmi
NK_test
·
2015-11-22 22:00
linux
System
ipc
共享内存
shmget
v
Linux进程间通信
(IPC)编程实践(六)共享内存的使用-mmap
共享内存区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据(如图)。共享内存和其他进程间通信方式的比较:用管道或者消息队列传递数据:使用共享内存传递数据:共享内存生成之后,传递数据并不需要再走Linux内核,共享内存允许两个或多个进程共享一个给定的存储区域,数据并不需要在多个进程之间进行复
NK_test
·
2015-11-21 14:00
linux
通信
共享内存
mmap
mumap
Linux进程间通信
(IPC)编程实践(五)消息队列实现回射客户/服务器
在我的上一篇博文中,讲解了关于消息队列的msgsnd和msgrcv函数的使用,这里我们试着来实现一个回射客户/服务器。基本框架如下:对于客户端:用进程的PID进行区分类型,发往服务器的类型(mtype)总是1,包含自己的PID,还有一行消息。对于回射服务器端:创建一个消息队列,指定键值是1234,服务器不停地接受类型是1的消息,解析出数据部分的pid(mtext的前四个字节)——回射即可。注意回射
NK_test
·
2015-11-16 15:00
linux
通信
消息队列
ipc
回射服务器客户端
Linux进程间通信
——使用信号量
这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。一、什么是信号量为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间
midion9
·
2015-11-16 10:00
mmap如何使用?
http://www.lslnet.com 2006年4月24日 18:41 对Linux内核内存管理搞了好久了,其中对于mmap如何使用,有很长一段时间存在疑惑,后来在看
Linux
·
2015-11-13 17:55
map
Linux进程间通信
(九)---综合实验之有名管道通信实验
实验目的 通过编写有名管道多路通信实验,进一步掌握管道的创建、读写等操作,同时复习使用select()函数实现管道的通信。 实验内容 这里采用管道函数创建有名管道(不是在控制台下输入命令mknod),而且使用select()函数替代poll()函数实现多路复用。如果对管道通信的知识忘了的话,请看这篇博客: http://blog.csdn.net/m
·
2015-11-13 14:32
linux
linux进程间通信
-共享内存
一 共享内存介绍 共享内存可以从字面上去理解,就把一片逻辑内存共享出来,让不同的进程去访问它,修改它。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进程向共享内存写入数
xuerongdeng
·
2015-11-13 13:00
linux
内存
深刻理解
Linux进程间通信
(IPC)
一个大型的应用系统,往往需要众多进程协作,进程(Linux进程概念见附1)间通信的重要性显而易见。本系列文章阐述了 Linux环境下的几种主要进程间通信手段,并针对每个通信手段关键技术环节给出详细实例。为达到阐明问题的目的,本文还对某些通信手段的内部实现机制进 行了分析。 序 linux 下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的
·
2015-11-13 08:28
linux
linux进程间通信
概述
一个大型的应用系统,往往需要众多进程协作,进程间通信的重要性显而易见。 进程间通信有如下一些目的: 数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间。 共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。 通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通
·
2015-11-13 07:06
linux
linux进程间通信
--有名管道
有名管道 只有当一个 库函数失败时,errno才会被设置。当函数成功运行时,errno的值不会被修改。这意味着我们不能通过测试errno的值来判断是否有错误存在。反之,只有当被调用的函数提示有错误发生时检查errno的值才有意义。 查看 错误代码errno是调试程序的一个重要方法。当linux C api函数发生异常时,一般会将errno 变量(需include errno.h)赋一个
·
2015-11-13 06:01
linux
linux进程间通信
--无名管道
管道 只能用于具有亲缘关系的进程之间通信是一个半双工的通信模式, 具有固定的写读端和写端,管道可以看成一种特殊的文件,对它可以使用普通的read、write等操作 管道的创建: #include <unistd.h> int pipe(int fd[2]) 该函数创建的管道的两端处于一个进程中间,在实际应用中没有太大意义,因此,一个进程在由pipe()创建
·
2015-11-13 06:34
linux
Linux进程间通信
——使用流套接字
前面说到的进程间的通信,所通信的进程都是在同一台计算机上的,而使用socket进行通信的进程可以是同一台计算机的进程,也是可以是通过网络连接起来的不同计算机上的进程。通常我们使用socket进行网络编程,这里将会简单地讲述如何使用socket进行简单的网络编程。 一、什么是socket socket,即套接字是一种通信机制,凭借这种机制,客户/服务器(即要进行通信的进程)系统的开发
·
2015-11-13 06:55
linux
Linux进程间通信
——使用数据报套接字
前一篇文章,
Linux进程间通信
——使用流套接字介绍了一些有关socket(套接字)的一些基本内容,并讲解了流套接字的使用,这篇文章将会给大家讲讲,数据报套接字的使用。
·
2015-11-13 02:49
linux
进程间通信--Linux
Linux进程间通信
主要方法有:管道,命名管道,消息队列,信号量,共享内存,还有信号和套接字Socket。
·
2015-11-12 23:16
linux
Linux进程间通信
——使用命名管道
在前一篇文章——
Linux进程间通信
——使用匿名管道中,我们看到了如何使用匿名管道来在进程之间传递数据,同时也看到了这个方式的一个缺陷,就是这些进程都由一个共同的祖先进程启动,这给我们在不相关的的进程之间交换数据带来了不方便
·
2015-11-12 17:02
linux
Linux进程间通信
之共享内存
Linux进程间通信
之共享内存 共享内存区是可用IPC形式中最快的。
·
2015-11-12 17:48
linux
Linux进程间通信
之信号量
Linux进程间通信
之信号量 信号量是一种用于提供不同进程间或一个给定进程的不同线程间同步手段的原语。
·
2015-11-12 17:47
linux
常见问题集锦
Linux进程间通信
(IPC,Inter-Process Communication)方式管道 管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。
·
2015-11-12 16:11
常见问题
Linux进程间通信
转载自:http://www.cnblogs.com/linshui91/archive/2010/09/29/1838770.html 一、进程间通信概述 进程通信有如下一些目的: A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间 B、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。 C、
·
2015-11-12 13:42
linux
linux进程间通信
之消息队列
http://www.cnblogs.com/magicbox/archive/2012/02/01/2363880.html ========================================================= 一、消息队列的基本概念 消息队列 (也叫做报文队列)是Unix系统V版本中3种进程间通信机制之一。另外两种是信号量和共享存储。这些I
·
2015-11-11 19:31
linux
linux进程间通信
之信号量(semaphore)
转载自:http://blog.chinaunix.net/space.php?uid=13670711&do=blog&cuid=2034149 ==================================================== 信号量(semaphore)简介 当我们在多用户系统,多进程系统,或是两者混合的系统中使用线程操作编写程序时,我们经
·
2015-11-11 19:30
Semaphore
Linux进程间通信
:IPC对象——信号灯集详解
作者:倪老师,华清远见嵌入式学院讲师。 一、信号灯概述 信号灯与其他进程间通信方式不大相同,它主要提供对进程间共享资源访问控制机制。相当于内存中的标志,进程可以根据它判定是否能够访问某些共享资源,同时,进程也可以修改该标志。除了用于访问控制外,还可用于进程同步。信号灯有以下两种类型: ● 二值信号灯:最简单的信号灯形式,信号灯的值只能取0或1,类似于互斥锁。
·
2015-11-11 18:29
linux
Linux进程间通信
(四)---信号通信之信号发送捕捉kill()、raise()、alarm()、pause()及其基础实验
信号概述 ● 信号是在软件层次上对中断机制的一种模拟。在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。 ● 信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上进程也不知道信号到底什么时候到达。 ● 信号可以直接进行用户空间进程和内核进程之间的交互
·
2015-11-11 18:59
linux
Linux进程间通信
(IPC)编程实践(四) 详解System V消息队列(2)(msgsnd & msgrcv)
本文主要介绍消息队列发送/接收消息的API:msgsnd函数[cpp] viewplaincopyint msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); 参数 msgid: 由msgget函数返回的消息队列标识码, 也可以是通过ipcs命令查询出来的一个已经存在的消息队列的ID号 msgp:是一个指针,指针指向准
NK_test
·
2015-11-11 18:00
linux
通信
System
v
msgsnd
msgrev
Linux进程间通信
——使用消息队列
有关命名管道的更多内容可以参阅我的另一篇文章:
Linux进程间通信
——使用命名管道 一、什么是消息队列 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。
·
2015-11-11 16:01
linux
Linux进程间通信
机制
Linux下的通信手段基本上是从Unix平台上的进程通信机制继承而来。 Linux下的进程通信通信机制主要包括: 管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信; 信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了
·
2015-11-11 16:10
linux
Linux进程间通信
(三)---管道通信之有名管道及其基础实验
有名管道(FIFO) 首先将上一节的有关有名管道的定义再贴出来 有名管道是对无名管道的一种改进,它具有以下特点: ① 它可以使互不相关的两个进程间实现彼此通信; ② 该管道可以通过路径名来指出,并且在文件系统中是可见的。在建立了管道之后,两个进程就可以把它当
·
2015-11-11 13:51
linux
深刻理解
Linux进程间通信
(IPC)
http://www.ibm.com/developerworks/cn/linux/l-ipc/ 一个大型的应用系统,往往需要众多进程协作,进程(Linux进程概念见附1)间通信的重要性显而易见。本系列文章阐述了 Linux环境下的几种主要进程间通信手段,并针对每个通信手段关键技术环节给出详细实例。为达到阐明问题的目的,本文还对某些通信手段的内部实现机制进 行了分析。
·
2015-11-11 06:44
linux
【资料】
linux进程间通信
的方式
# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 # 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。 # 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共
·
2015-11-11 03:58
linux
Linux进程间通信
(IPC)编程实践(三) 详解System V消息队列(1)
消息队列简介消息队列提供了一个从一个进程向另外一个进程发送一块数据的方法(本机);每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值。消息队列也有管道一样的不足: (1)每个消息的最长字节数的上限(MSGMAX); (2)系统中消息队列的总条数也有一个上限(MSGMNI); (3)每个消息队列所能够保存的总字节数是有上限的(MSGMNB) . 消息队列与管道的区别:最主要的区
NK_test
·
2015-11-10 13:00
linux
api
System
消息队列
ipc
v
Linux进程间通信
——使用共享内存
下面将讲解进程间通信的另一种方式,使用共享内存。 一、什么是共享内存 顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内
·
2015-11-09 14:21
linux
Linux进程间通信
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 谢谢nonoob纠错 我们在Linux信号基础中已经说明,信号可以看作一种粗糙的进程间通信(IPC, interprocess communication)的方式,用以向进程封闭的内存空间传递信息。为了让进程间传递更多的信息量,我们需要其他的进程间通信方式。这些
·
2015-11-08 16:32
linux
进程与线程(四)
linux进程间通信
的方式总结
1概述: 上文说到,每个进程都有自己的地址空间,包括什么呢?向下生长得栈,向上生长的堆,代码段,数据段等,这些都是进程私有的,如何实现通信的呢?通信需要媒介,这个媒介很重要。 对于研发人员来说,进程不是孤立的,而是相互关联的一个整体,有一些进程需要团结协作来完成
·
2015-11-08 11:52
linux
Linux进程间通信
进程通信有如下一些目的:A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间B、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。C、通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。D、资源共享:多个进程之间共享同样的资源。为了作到这一点,需要内核提供锁和同步机制。E
qq_20545159
·
2015-11-07 16:00
linux进程间通信
Linux进程间通信
方法总结
①匿名 管道(pipe) 匿名 管道(pipe)管道是一种半双工的通信方式,数据只能单向流动。如果要进行双工通信,需要建立两个管道。 管道只能在具有亲缘关系的进程间使用,例如父子进程或兄弟进程。 ②有名管道(mkfifo) 有名管道也是双半工的通信方式,但它允许无亲缘关系的进程间使用。 ③信号量(semophore) 信号量常用来作为一种锁机制来使用,它是一个记数
·
2015-11-07 14:02
linux
Linux进程间通信
—套接字
六.套接字(socket) socket也是一种进程间的通信机制,不过它与其他通信方式主要的区别是:它可以实现不同主机间的进程通信。一个套接口可以看做是进程间通信的端点(endpoint),每个套接口的名字是唯一的;其他进程可以访问,连接和进行数据通信。 套接口(socket)编程是实现Linux系统和其他大多数操作系统中进程间通信的主要方式之一。我们熟知的WWW服务、FTP服务、TELN
·
2015-11-07 14:32
linux
Linux进程间通信
—共享内存
五.共享内存(shared memory) 共享内存映射为一段可以被其他进程访问的内存。该共享内存由一个进程所创建,然后其他进程可以挂载到该共享内存中。共享内存是最快的IPC机制,但由于linux本身不能实现对其同步控制,需要用户程序进行并发访问控制,因此它一般结合了其他通信机制实现了进程间的通信,例如信号量。 共享内存与多线程共享global dat
·
2015-11-07 14:31
linux
Linux进程间通信
—消息队列
四.消息队列(Message Queue) 消息队列就是消息的一个链表,它允许一个或者多个进程向它写消息,一个或多个进程向它读消息。Linux维护了一个消息队列向量表:msgque,来表示系统中所有的消息队列。 消息队列克服了信号传递信息少,管道只能支持无格式字节流和缓冲区受限的缺点。 消息队列用于运行于同一台机器上的进程间通信,它和管道很相似,是一个在系统内核中用来保存消息的队列,它在系统
·
2015-11-07 14:30
linux
Linux进程间通信
—信号量
二.信号量(semophore) 信号量是一种计数器,可以控制进程间多个线程或者多个进程对资源的同步访问,它常实现为一种锁机制。实质上,信号量是一个被保护的变量,并且只能通过初始化和两个标准的原子操作(P/V)来访问。(P,V操作也常称为wait(s),signal(s)) semaphore 与mutex类似,用于处理同步问题。我们说mutex像是一个只能容纳一个人的洗手间,那么semaph
·
2015-11-07 14:29
linux
Linux进程间通信
—信号
三.信号(Signal) 信号是Unix系统中使用的最古老的进程间通信的方法之一。操作系统通过信号来通知某一进程发生了某一种预定好的事件;接收到信号的进程可以选择不同的方式处理该信号,一是可以采用默认处理机制—进程中断或退出,一是忽略该信号,还有就是自定义该信号的处理函数,执行相应的动作。 内核为进程生产信号,来响应不同的事件,这些事件就是信号源。信号源可以是:异常,其他进程,终端的中断(Ct
·
2015-11-07 14:29
linux
Linux进程间通信
—管道
Linux下的进程通信手段基本上是从UNIX平台上的进程通信手段继承而来的。而对UNIX发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间的通信方面的侧重点有所不同。前者是对UNIX早期的进程间通信手段进行了系统的改进和扩充,形成了"system V IPC",其通信进程主要局限在单个计算机内;后
·
2015-11-07 14:28
linux
Linux进程间通信
:管道,信号量,消息队列,信号,共享内存,套接字
Linux下的进程通信手段基本上是从UNIX平台上的进程通信手段继承而来的。而对UNIX发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间的通信方面的侧重点有所不同。前者是对UNIX早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,其通信进程主要局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(so
·
2015-11-07 14:27
linux
IPC——数据报套接字通信
Linux进程间通信
——使用数据报套接字 前一篇文章,
Linux进程间通信
——使用流套接字介绍了一些有关socket(套接字)的一些基本内容,并讲解了流套接字的使用,这篇文章将会给大家讲讲,数据报套接字的使用
·
2015-11-07 10:26
ipc
IPC——流套接字通信
Linux进程间通信
——使用流套接字 前面说到的进程间的通信,所通信的进程都是在同一台计算机上的,而使用socket进行通信的进程可以是同一台计算机的进程,也是可以是通过网络连接起来的不同计算机上的进程
·
2015-11-07 10:25
ipc
IPC——消息队列
Linux进程间通信
——使用消息队列 下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处。
·
2015-11-07 10:25
消息队列
IPC——共享内存
Linux进程间通信
——使用共享内存 下面将讲解进程间通信的另一种方式,使用共享内存。 一、什么是共享内存 顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。
·
2015-11-07 10:24
共享内存
IPC——信号量
Linux进程间通信
——使用信号量 这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。
·
2015-11-07 10:23
ipc
IPC——匿名管道
Linux进程间通信
——使用匿名管道 在前面,介绍了一种进程间的通信方式:使用信号,我们创建通知事件,并通过它引起响应,但传递的信息只是一个信号值。
·
2015-11-07 10:22
ipc
IPC——命名管道
Linux进程间通信
——使用命名管道 转载:http://blog.csdn.net/ljianhui/article/details/10202699 在前一篇文章——
Linux进程间通信
——使用匿名管道中
·
2015-11-07 10:22
ipc
IPC——信号
Linux进程间通信
——使用信号 一、什么是信号 用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?
·
2015-11-07 10:21
ipc
上一页
8
9
10
11
12
13
14
15
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他