linux系统编程5

pstree:进程树
ipcs:查看信号量,消息队列,共享内存
ipcs -q:查看消息队列


信号量用来完成线程同步(无名信号量)
进程同步用的是system V信号量
每个新建的信号量、消息队列、共享内存都有一个唯一的标识符,每个标识都有唯一的关键字,关键字的数据类型为key_t


文件锁逻辑:
一个文件在被A进程读,B进程不能写这个文件
一个文件在被A进程读,B进程可以读这个文件
一个文件在被A进程写,B进程不能读/写这个文件


(包括普通文件,共享内存文件)


文件锁:
what:内部i/o计数器,是一种建议锁
作用:1、保护文件,尤其是保护共享内存文件2、同步文件的操作(原语操作),类似互斥锁
how:利用文件属性,传递到fcntl中去
int fcntl(int fd,int cmd,struct flock*lock)//值、结果、参数
cmd=F_GETLK:询问内核文件使用状况
cmd=F_SETLK:加锁
cmd=f_setlkw:阻塞加锁


p-v操作(原语操作)
P:申请信号量
v:释放信号量




信号量:进程间信号量是进程间同步主要方式。信号量操作为负的时候,进程阻塞直到信号量为正
1、创建或获取信号量
int semget(key_t key,int nsems,int semflg)


2、信号量是0/N型计数器,是一个文件,存在于内存中
0/1型是互斥型信号量,0/N型信号量是保护内存访问
0/1型等同于文件锁,保护共享内存
初始化信号量是使设置成0/1 或0/N型
 semctl(id,0,SETVAL,sunion)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值