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)
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)