嵌入式复习14

第十四天:

1. 使用信号量集实现进程间的通信

1.1 基本概念

1)信号量

2)信号量集

1.2 信号量的工作方式

1)初始化信号量为最大值

2)如果有进程申请到了一个共享资源,则信号量的数值减1;

3)当信号量的数值为0时,申请共享资源的进程进入阻塞状态;

4)如果有进程释放了一个共享资源,则信号量的数值加1;

5)当信号量的数值大于0时,等待申请共享资源的进程可以继续抢占共享资源,抢不到共享资源的进程继续阻塞

*》其实,相当于去网吧上网,网吧的电脑是共享资源,信号量相当于网吧的空机位的数值,当网吧的空机位大于零时,顾客进来可以使用空机位的

电脑,即占用共享资源,此时,空机位就减少了一台,信号量减1,当空机位为零时,网吧爆满,顾客进来就要等,也就是进入了阻塞状态,

等到有人下机了,即释放了一个共享资源,空机位多了一个,即信号量加1,在吧台等机子的人就要去抢占这个空机位,也就是抢占共享资源,

抢不到的人就要继续等了。

1.3 使用信号量集实现进程间通信的模型

1)获取key值——ftok函数

2)创建/获取信号量值——semget函数

3)初始化信号量集——semctl函数

4)操作信号量集控制进程/线程的个数——semop函数

5)删除信号量集——semctl函数

1.4 相关函数的解析

1)semget

2)semctl

3)semop

1.5 常用的基本命令

ipcs -s :

ipcrm -s :

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值