LINUX系统编程:信号量

目录

1.信号量理论

2.信号量原理

3.信号量的接口


1.信号量理论

信号量是进程之间通信的一种。

信号量可以在多执行流下对,共享资源进行保护(例:共享内存本身是是一种共享资源,但是本身是不带协同机制的,这样就会出现数据不一致的问题,写端想写"hello world",但是在写端写到hello时,读端就把数据读走了,造成了数据不一致)。

互斥:在访问公共资源时,只能有一个进程访问。

同步:在访问资源安全的前提下,各进程按一定顺序,并发访问资源。

临界区:访问临界资源的那些代码,就是临界区,保护临界资源本质就是保护临界区。

原子性:执行一个动作只有两种状态,一种是成功,一种是未开始,也就是说这个动作是不能在被切分的。

2.信号量原理

信号量是一种资源预定机制,只要预定了,资源在未来一定是该进程的。

这是一块共享内存,这个内存被分成了12个区域,每个进程只会访问一小块区域。

每个小区域都有自己的编号,当一个执行流想使用小块资源时必须,申请对应的编号,然后才能让问对应的小区域,使用完之后还要将编号还回去,这样保证每一块的小资源都是互斥访问的,大块的资源就是多个进程同步访问的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值