进程间通讯(八)信号量

信号量 信号量的作用 在编写多进程程序时,我们可以使用信号量来实现进程同步,防止多个进程访问同一资源而引发一系列问题 为了访问共享资源,进程需要执行下列的操作 (1)检测控制此资源的信号量 (2)如果该信号量的值为正,则进程可以获取该资源,信号量值减1 (3)否则,该信号量值为0,进程睡眠等待,...

2019-06-03 16:52:04

阅读数 193

评论数 0

进程间通讯(七)消息队列

消息队列 消息队列时通过链表,将一个一个的消息构成了一个队列,存储在内核空间中,每个消息都有自己的类型 每一个消息队列都有一个msqid_ds结构体与之关联,msqid_ds结构体标记着消息队列的状态,还有消息队列的链表头和链表尾 可以使用下面结构体来表示消息 struct msg { ...

2019-06-03 14:32:41

阅读数 195

评论数 0

进程间通讯(四)popen和pclose

进程通讯 linux文件描述符表、文件表、索引节点表的关系 进程间通讯(一)基本概念 进程间通讯(二)无名管道 进程间通讯(三)有名管道 进程间通讯(四)popen和pclose 进程间通讯(五)信号 进程间通讯(六)共享内存 popen与pclose popen与pclose有什么用? 想一下我...

2019-06-02 22:23:53

阅读数 295

评论数 0

进程间通讯(六)共享内存

进程通讯 linux文件描述符表、文件表、索引节点表的关系 进程间通讯(一)基本概念 进程间通讯(二)无名管道 进程间通讯(三)有名管道 进程间通讯(四)信号 共享内存 一、简介 共享内存就是在内核空间中申请一段内存,各个进程将其映射到自己的地址空间,于是就相当于多个进程共用一段内存,共享内存通常...

2019-05-25 14:04:14

阅读数 194

评论数 0

进程间通讯(四)信号

信号 信号通信,其实就是内核向用户空间进程发送信号,只有内核才能发信号,用户空间进程不能发送信号 可以使用kill -l查看内核可以发送多少种信号 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT ...

2019-05-17 15:05:07

阅读数 46

评论数 0

进程间通讯(三)有名管道

进程通讯 linux文件描述符表、文件表、索引节点表的关系 进程间通讯(一)基本概念 进程间通讯(二)无名管道 有名管道 上一篇文章讲了无名管道,无名管道最大的缺点只能在父子进程间通讯,而有名管道就是解决了这个问题,有名管道可以在同一操作系统的任意两个进程间通讯 有名管道是如何做到的呢? 使用管道...

2019-05-15 20:27:08

阅读数 316

评论数 0

进程间通讯(二)无名管道

无名管道 前面讲了进程间通讯就是在内核空间中创建一个对象,然后基于文件IO的思想来实现进程间通讯 使用管道来实现进程间通讯也是这样的思想 管道有名管道和无名管道,本文讲解无名管道 无名管道和有名的管道的区别 顾名思义,无名管道就是在文件系统中没有名字,有名管道就是在文件系统中有名字 无名管道的实现...

2019-05-15 11:19:38

阅读数 335

评论数 0

进程间通讯(一)基本概念

进程间通讯基本概念 我们知道进程的地址空间是相互独立的,每个进程都认为在内存中只有自己和内核,所以进程间通讯无法向线程一样使用全局变量来通讯,那进程之间怎么通讯呢? 进程的用户地址空间是相互独立的,但是内核空间是唯一的,所以进程间通讯就需要通过内核空间来进行,实现的思路都是在内核空间创建一个对象...

2019-05-15 10:21:12

阅读数 329

评论数 0

提示
确定要删除当前文章?
取消 删除