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.消息队列





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值