
IPC 进程间通讯
Shawyou
这个作者很懒,什么都没留下…
展开
-
无名管道
无名管道无名管道是Linux中进程间通信的一种方式。• 它只能用于具有亲缘关系的进程之间的通信(也就是父子进程或者兄弟进程之间)。• 它是一个半双工的通信模式,具有固定的读端和写端。• 管道也可以看成是一种特殊的文件,对于它的读写也可以使用普通的read()和write()等函数。但是它不是普通的文件,并不属于其他任何文件系统,即只存在于内核的内存空间中。管道是基于原创 2013-05-06 09:58:48 · 1135 阅读 · 0 评论 -
FIFO 有名管道
有名管道 在创建管道成功之后,就可以使用open()、read()和write()这些函数了。与普通文件的开发设置一样,对于为读而打开的管道可在open()中设置O_RDONLY,对于为写而打开的管道可在open()中设置O_WRONLY,在这里与普通文件不同的是阻塞问题。 由于普通文件的读写时不会出现阻塞问题,而在管道的读写中却有阻塞的可能,这里的非阻原创 2013-05-06 08:54:56 · 1097 阅读 · 0 评论 -
消息队列
消息队列是IPC对象的一种消息队列由消息队列ID来唯一标识消息队列就是一个消息的列表。用户可以在消息队列中添加消息、读取消息等。消息队列可以按照类型来发送/接收消息消息队列的操作包括创建或打开消息队列、添加消息、读取消息和控制消息队列创建或打开消息队列使用的函数是msgget,这里创建的消息队列的数量会受到系统消息队列数量的限制添加消息使用的函数是msgsnd,按照原创 2013-05-06 09:19:23 · 1008 阅读 · 0 评论 -
信号量
信号量概述在多任务操作系统环境下,在不同进程之间,为了争夺有限的系统资源(硬件或软件资源)会进入竞争状态,这就是进程之间的互斥关系。信号量是用来解决进程之间的同步与互斥问题的一种进程之间通信机制。信号量对应于某一种资源,取一个非负的整型值。信号量值指的是当前可用的该资源的数量,若它等于0则意味着目前没有可用的资源。PV原子操作的具体定义为:P操作:如果有可用的资源(原创 2013-05-06 09:44:58 · 1009 阅读 · 0 评论 -
线程
线程基础每个用户进程有自己的地址空间。系统为每个用户进程创建一个 task_struct来描述该进程。该结构体中包含了一个指针指向该进程的虚拟地址空间映射表。实际上task_struct 和地址空间映射表一起用来,表示一个进程线程基础。由于进程的地址空间是私有的,因此在进程间上下文切换时,系统开销比较大。为了提高系统的性能,许多操作系统规范里引入了轻量级进程的概原创 2013-05-06 10:59:59 · 983 阅读 · 0 评论 -
共享内存
共享内存共享内存是一种最为高效的进程间通信方式,进程可以直接读写内存,而不需要任何数据的拷贝为了在多个进程间交换信息,内核专门留出了一块内存区,可以由需要访问的进程将其映射到自己的私有地址空间进程就可以直接读写这一内存区而不需要进行数据的拷贝,从而大大提高的效率。由于多个进程共享一段内存,因此也需要依靠某种同步机制,如互斥锁和信号量等存的映射区共享内存实现原创 2013-05-06 21:30:13 · 734 阅读 · 0 评论 -
linux动态连接
总结:至少2个文件和共2条指令我使用的文件是sock.h 和 wrapper.c 使用的指令是$ gcc wrapper.c -o wrapper.o -c$ gcc -shared -fPIC -o libnetlib.so wrapper.o这样就生成了libnetlib.so文件了,将libnetlib.so复制到/lib中.并将sock.h复制到/usr/inclu原创 2013-05-12 16:42:08 · 1166 阅读 · 0 评论 -
TCP/IP之服务端多线程通信
好吧!这次总共有4个文件.分别是sock.h wrapper.c tcp_server.c tcp_client.c编译方法:$ gcc tcp_server.c wrapper.c -o tcp_server $ gcc tcp_client.c wrapper.c -o tcp_client以下是运行服务端$ ./tcp_server 再打开多原创 2013-05-13 23:07:25 · 1462 阅读 · 1 评论 -
TCP/IP UDP
TCP/IP 就像打电话,1.要连接 2.连接后占线 3.传输质量要求高,传输大量数据的通信。(数据无误,数据无丢失,数据无失序,数据无重复到达)UDP 就像寄信,1.不需要先连通 2.发送就快速,效率高。发送小尺寸文件等,不会准确无误的到达。TCP/IP协议笔记打电话的人(顺序):买一个电话->绑定一个电话(可有可无)->拨打->聊天 //相当与客户端接电话的人(顺序)原创 2013-05-11 13:58:42 · 989 阅读 · 0 评论