IPC
文章平均质量分 86
KiranWang
某互联网大厂资深研发工程师。
展开
-
IPC(五)---------信号量
一、信号量和信号量集简介 1、用于进程间的互斥和同步,来控制对共享资源的访问。 2、为了便于对大量共享资源的操作引入了信号量集,每个共享资源对应一个信号量。 3、信号量的操作:P(对信号量减)操作和V(对信号量加)操作。二、信号量相关API 1、创建信号量集 int semget(key_t key,int nsems,int flag); 参数: key:用户指定的信号量集键...原创 2021-01-21 15:12:48 · 196 阅读 · 0 评论 -
IPC(四)---------共享内存
一、共享内存简介 1、共享内存是被多个进程共享的一部分物理内存。 2、所有用户空间的进程若要操作共享内存,都要将其映射到自己虚拟内存空间中,通过映射的虚拟内存空间地址去操作共享内存,从而达到进程间的数据通信。 3、共享内存是进程间共享数据的一种最快的方式,一种高效的IPC机制。二、API 1、创建共享内存 int shmget(key_t key, size_t size , int shmflag);...原创 2021-01-16 12:11:57 · 392 阅读 · 0 评论 -
IPC(三)---------消息队列
一、消息队列简介 1、消息队列是内核中的一个链表。 2、用户进程将数据传输到内核后,内核重新添加一些用户ID、组ID、读写进程的ID和优先级相关信息后打包成一个数据包成为消息。 3、可以多个进程忘消息队列中写消息和读消息,但一个消息只能被一个进程读取,读完后自动删除。 4、消息队列有FIFO的先进先出的特性。二、消息队列相关的API 1、打开或者创建消息队列 int msgget(key_t key,int fl...原创 2021-01-11 17:23:59 · 179 阅读 · 0 评论 -
IPC(二)---------命名管道(FIFO)
一、FIFO简介 1、API: #include <sys/types.h> #include <sys/stat.h> int mkfifo(const char * pathname,mode_t mode); 返回: 成功返回0,出错返回-1 2、 FIFO只要有适当的访问权限,可用在任何进程之间通信(有关系或者没关系的进程)。 本质是内核中的一块缓存,另外...原创 2020-12-28 15:13:12 · 170 阅读 · 0 评论 -
IPC(一)---------匿名管道
一、管道的分类 管道分为匿名管道和命名管道。 匿名管道: (1)、在关系进程中进行(父进程和子进程、兄弟进程之间) (2)、由pipe系统调用,管道由父进程建立。 (3)、 管道位于内核空间、其实是一块缓存。 命名管道: (1)、任何两个进程间都可通过命名管道进行数据传输。 (2)、通过系统调用mkfifo创建。 (3)、本质是内核中的一...原创 2020-12-25 10:45:04 · 359 阅读 · 0 评论