linux操作系统理解-IPC
(IPC指进程间通信方式,注意不是线程间,线程之间同步只有信号量和互斥量)
1.管道Pipe
shell的管道就是这个原理
进程管道:popen/pclose函数
1.2命名管道FIFO,是一种特殊的文件,在文件系统中以文件的形式存在
2.信号量:
(备注:学习多进程的同步与互斥,和多线的同步与互斥时,发现他们都有sem信号量,很困惑就查了一下区别才发现:
信号量分为有名与无名
信号量在进程是以有名信号量进行通信的,在线程是以无名信号进行通信的,因为线程linux还没有实现进程间的通信,所以在sem_init的第二个参数要为0,而且在多线程间的同步是可以通过有名信号量也可通过无名信号,但是一般情况线程的同步是无名信号量,无名信号量使用简单,而且sem_t存储在进程空间中,有名信号量必须LINUX内核管理,由内核结构struct ipc_ids 存储,是随内核持续的,系统关闭,信号量则删除,当然也可以显示删除,通过系统调用删除)
2.1
有名:
初始化并打开有名信号量:sem_open()
退出有名信号量:sem_close()
销毁有名信号量:sem_unlink()
公共:操作信号量:sem_wait()/sem_trywait()/sem_timedwait()/sem_post()/sem_getvalue()
无名:
创建/获得无名信号量:sem_init()
销毁无名信号量:sem_destroy()
3.共享内存
不同的进程逻辑地址空间,映射到同一块物理内存,这个物理内存就是共享内存
shmget
shmat
shmdt
shmctl
4.消息队列
linux操作系统理解-IPC相关推荐
- linux操作系统进程间通信IPC之共享存储映射
(1)文件存储映射I/O(Memory-mapped I/O) 一个磁盘文件与存储空间中的一个缓存区相对应,这样可以在不适合read/write函数的情况下,使用地址(指针)完成I/O操作.具体实现通 ...
- linux操作系统进程间通信IPC之管道pipe及FIFO
linux环境下,各进程相互独立,如果想要交换两个进程之间的数据,需要通过内核,在内存中提供一个缓存区,一个进程往缓存区中写数据,一个往缓存区读数据,内核提供的这种机制称为进程间通信(IPC),常见的 ...
- 深入理解Linux操作系统守护进程的意义
深入理解Linux操作系统守护进程的意义 Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台的守 ...
- 转载:Linux操作系统(1.3.1)《深入理解Nginx》(陶辉)
原文:https://book.2cto.com/201304/19611.html 1.3 准备工作 由于Linux具有免费.使用广泛.商业支持越来越完善等特点,本书将主要针对Linux上运行的Ng ...
- linux操作系统下 c语言编程入门
linux操作系统下 c语言编程入门 (一)目录介绍 1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门 ...
- [转] linux操作系统下c语言编程入门
(一)目录介绍 1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程 ...
- linux操作系统下c语言编程入门
linux操作系统下c语言编程入门 整理编写:007xiong 原文:Hoyt等 (一)目录介绍 1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux ...
- 【转贴】linux操作系统下c语言编程入门
[转贴]linux操作系统下c语言编程入门 发信人: Lerry (驴是的念来过倒·杏红等头墙上爬), 信区: Linux 标 题: linux操作系统下c语言编程入门 发信站: 哈工大紫丁香 (Fr ...
- 图解linux内核设计艺术,Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理...
Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理 作者:新设计团队 出版日期:2011年05月 文件大小:29.01M 支持设备: ¥6.00在线试读 适用客户端: 言商书局 iPa ...
最新文章
- python基础练习(六)
- PHP的echo和print小谈
- mysql数据库唯一性_mysql表的字段怎么设置唯一性
- struts bean static 静态方法注入
- php 转码iconv,PHP iconv()函数转字符编码的问题(转)
- C#断点续传原理与实现
- .Net Core DI,如何在程序集中注册所有现有的可分配类型
- Linux设置环境变量小结:设置永久变量临时变量 全局变量局部变量
- postgres 命令行建数据库表_PostgreSQL学习笔记(1)之模板数据库
- SpringBoot2.0应用(五):SpringBoot2.0整合MyBatis
- 如何在浏览器中显示本地文件系统_如何完全卸载浏览器中的Flash插件
- 操作系统-存储器管理
- GPO 安装 .net 4.5和WMF4
- Windows 無法查詢{7B849a69-220F-......} 的 DllName 登錄項目
- unity3d C#UnityEngine API 提示中文汉化
- ascii码值为负数_C语言编程基础学习字符型数据的ASCII码值为何是负数?
- 五星大饭店韩文插曲-请不要离我而去MV
- 【转载】Linux下用dd命令扇区读写SD卡
- Automatic classification of defective photovoltaic module cells in electroluminescence images-论文阅读笔记
- A Morphable Model For The Synthesis Of 3D Faces 论文解析 3DMM