Linux__IPC
阿卡基-马
业余马拉松选手
展开
-
POSIX 消息队列函数(mq_open、mq_getattr、mq_send、mq_receive)示例
概述消息队列是Linux IPC中很常用的一种通信方式,它通常用来在不同进程间发送特定格式的消息数据。消息队列和之前讨论过的管道和FIFO有很大的区别,主要有以下两点:一个进程向消息队列写入消息之前,并不需要某个进程在该队列上等待该消息的到达,而管道和FIFO是相反的,进程向其中写消息时,管道和FIFO必需已经打开来读,那么内核会产生SIGPIPE信号。 IPC的持续性不同。管道和FIFO是随进程的持续性,当管道和FIFO最后一次关闭发生时,仍在管道和FIFO中的数据会被丢弃。消息队列是随内核转载 2020-07-09 17:29:26 · 2680 阅读 · 0 评论 -
Linux Netlink通信机制详解
前面有一篇文章其实已经介绍过Netlink方面的知识,还有一个内核和用户空间之间的一个交互例子,这篇文章主要是更细节和基础的知识介绍!Netlink 是一种特殊的 socket,它是 Linux 所特有的,由于传送的消息是暂存在socket接收缓存中,并不被接收者立即处理,所以netlink是一种异步通信机制。 系统调用和ioctl 则是同步通信机制。用户空间进程可以通过标准socket...转载 2018-09-19 10:31:15 · 1090 阅读 · 0 评论 -
进程控制原语
进程控制原语包括:进程的建立、进程的撤销、进程的等待和进程的唤醒。操作系统执行和监督进程控制操作,往往通过执行各种原语操作实现。计算机控制器的机器指令是微操作构成的,原语是机器指令的延伸,是由若干条机器指令构成用以完成特定功能的一段程序。操作系统执行和监督进程控制操作,往往通过执行各种原语操作实现。计算机控制器的机器指令是微操作构成的,原语是机器指令的延伸,是由若干条机器指令构成用以完成特...转载 2018-08-31 10:40:15 · 4605 阅读 · 0 评论 -
聊聊同步、异步、阻塞与非阻塞
近来遇到了一些常见的概念,尤其是网络编程方面的概念,如:阻塞、非阻塞、异步I/O等等,对于这些概念自己也没有太清晰的认识,只是很模糊的概念,说了解吧也了解,但是要让自己准确的描述概念方面的具体细节,却说的不那么准确,这也是自己在这几个方面也没有细细考究过的原因吧。经过看了些这几个概念的资料,发现同步、异步、阻塞、非阻塞的概念其实也并不难以理解,在此写下此文,欢迎拍砖,希望多多交流。1 同...原创 2018-07-31 11:12:43 · 285 阅读 · 0 评论 -
【待整理】聊聊IO多路复用之select、poll、epoll详解
IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合: 当客户处理多个描述符时(一般是交互式输入和网络套接口),必须使用I/O复用。 当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。 如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用。 ...转载 2018-07-31 10:54:37 · 483 阅读 · 0 评论 -
PV原语操作详解
PV原语操作详解 PV原语通过操作信号量来处理进程间的同步与互斥的问题。其核心就是一段不可分割不可中断的程序。 信号量的概念1965年由著名的荷兰计算机科学家Dijkstra提出,其基本思路是用一种新的变量类型(semaphore)来记录当前可用资源的数量。 semaphore有两种实现方式: 1) semaphore的取值必须大于或等于0。0表...转载 2018-07-30 10:14:54 · 5119 阅读 · 0 评论 -
Linux写时拷贝技术(copy-on-write)
不经意间看到这篇帖子,想起实习面试的时候再讨论fork时,谈到了这个问题。做一个记录吧。原帖见:Linux写时拷贝技术(copy-on-write)COW技术初窥在linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了“写时复制”技术,也就是只有进程空间的各段的内容要发生变化时,才将父进程的内容复制一份给子...转载 2018-07-19 16:59:07 · 252 阅读 · 0 评论 -
【Pthread—读写锁】pthread_rwlock_t 接口解析 【转】
原文地址在使用的过程中,往往会有一些细节上的疑问,心中会有模棱两可的地方,然后自己做了试验,并记录下来。首先,我们先来看一下 pthread_rwlock_t 结构体的定义: struct { int __lock; unsigned int __nr_readers; unsigned int __readers_wakeup; unsigned int __w...转载 2018-07-13 10:34:15 · 977 阅读 · 0 评论 -
linux下pthread_cancel无法取消线程的原因
一个线程可以调用pthread_cancel终止同一进程中的另一个线程,但是值得强调的是:同一进程的线程间,pthread_cancel向另一线程发终止信号。系统并不会马上关闭被取消线程,只有在被取消线程下次系统调用时,才会真正结束线程。或调用pthread_testcancel,让内核去检测是否需要取消当前线程。被取消的线程,退出值,定义在Linux的pthread库中常数PTHREAD_CAN...转载 2018-07-12 17:11:42 · 6468 阅读 · 0 评论 -
第8章 读写锁
互斥锁把试图进入我们称之为临界区的所有其他线程都阻塞住。该临界区通常涉及对由这些线程共享的一个或多个数据的访问或更新。然而有时候我们可以在读某个数据与修改某个数据之间作区分。...原创 2018-07-12 11:17:17 · 602 阅读 · 0 评论 -
linux多线程之读写锁
基本概念:读写锁也叫做共享互斥锁。当读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个锁加锁的线程都会被阻塞。当读写锁在读加锁状态,所有试图以读模式对它进行加锁的线程都可以得到访问权。与互斥量相比,读写锁在使用之前必须初始化,在释放它们底层的内存之前必须销毁。一、锁的初始化与销毁PTHREAD_RWLOCK_DESTROY(P) POSIX Programmer's Manual PTHR...转载 2018-07-12 10:49:31 · 495 阅读 · 0 评论 -
linux多线程之读写锁
基本概念:读写锁也叫做共享互斥锁。当读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个锁加锁的线程都会被阻塞。当读写锁在读加锁状态,所有试图以读模式对它进行加锁的线程都可以得到访问权。与互斥量相比,读写锁在使用之前必须初始化,在释放它们底层的内存之前必须销毁。一、锁的初始化与销毁PTHREAD_RWLOCK_DESTROY(P) POSIX Programmer's Manual PTHR...转载 2018-07-12 10:37:34 · 344 阅读 · 0 评论 -
unix环境高级编程读后感
读后感从九月初看着本书,到现在时间推移的有50天,本来计划一个月的结果1 2搞到现在,真是对自己无语。有的时候看着看着烦了,或者怎么了就会停止 一天or 俩天 。这些事实让我觉得对自己的控制力太低下,总是会给自己找 很多理由不看书,比如今天太累了,或者有的时候看个电影又或者聊聊微信 总之时间从自己的手上溜走,留下的只是自己懊悔和一个又一个没有按时完成 的计划,俗话说一步慢步...转载 2018-07-18 10:34:46 · 514 阅读 · 0 评论 -
【APUE】第8章 进程控制
8.3 函数fork子进程和父进程继续执行fork调用之后的指令。8.5 函数exit在UNIX术语中,一个已经终止,但是其父进程尚未对其进行善后处理(获取终止子进程的有关信息、释放它仍占用的资源)的进程被称为僵死进程(zombie)。...原创 2018-07-17 15:19:06 · 246 阅读 · 0 评论 -
第4章 管道和FIFO
第二部分 消息传递 第4章 管道和FIFO 第5章 Posix消息队列 第 6 章 System V消息队列 在Linux系统中,管道是一种使用非常频繁的进程间通信机制...原创 2018-07-17 14:18:50 · 233 阅读 · 0 评论 -
Linux进程间通信方式
进程的概念· 进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了一个进程,在这个过程中,伴随着资源的分配和释放。可以认为进程是一个程序的一次执行过程。进程通信的概念· 进程用户空间是相互独立的,一般而言是不能相互访问的。但很多情况下进程间需要互相通信,来完成系统的某项功能。进程通过与内核及其它进程之间的互相通信来协调它们的行为。进程通信的应用场景 数据传输:一个进程需要将它的数...转载 2018-06-12 14:04:32 · 229 阅读 · 0 评论 -
Linux系统下-进程间通信(消息队列-详解)【转】
参考书:《UNIX网络编程 卷2:进程间通信》 第5章 Posix消息队列 第6章 System V消息队列原文地址:点击打开链接Linux下进程间通信方式:# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系...转载 2018-06-12 10:58:57 · 879 阅读 · 0 评论