LINUX学习笔记16——进程间通信5信号量
2011-12-06 21:05
176 查看
a) 作用:保护临界资源,控制进程。访问临界资源时,先查看信号量,若信号量为1表示资源有空,那么才可以访问临界资源。同时把信号量-1;
1. 实质:是一个整数,初始值为1;
2. 二值信号灯:值只能取0或1;最多允许一个进程访问。
3. 计数信号灯:值可以取任意的非负值,即可以允许多个进程访问
b) 打开信号量:int semget(key_t key, int nsems, int senflg)
1. #include<sys/types.h>, #include<sys/ipc.h>,#include<sys/sem.h>
2. Key:键值,由ftok获得
3. Nsems:创建或打开 信号灯集 中将包含信号灯的数目
4. Semflg:标志,同消息队列
c) 操作:int semop(int semid, struct sembuf *sops, unsigned nsops)
1. 功能:对信号量进行控制
2. Semid:信号量集的ID
3. Sops:操作数组,表明要进行什么操作
a) Struct sembuf
{unsigned short sem_num; :表示第几个信号量
Short sem_op; :1表示释放,-1表示获取
Short sem_flg:} :标志
1. IPC_NOWAIT:
2. IPC_UNDO:程序结束时释放信号量。避免资源永远被锁定
4. Nsops:sops所指向的数组的元素的个数
1. 实质:是一个整数,初始值为1;
2. 二值信号灯:值只能取0或1;最多允许一个进程访问。
3. 计数信号灯:值可以取任意的非负值,即可以允许多个进程访问
b) 打开信号量:int semget(key_t key, int nsems, int senflg)
1. #include<sys/types.h>, #include<sys/ipc.h>,#include<sys/sem.h>
2. Key:键值,由ftok获得
3. Nsems:创建或打开 信号灯集 中将包含信号灯的数目
4. Semflg:标志,同消息队列
c) 操作:int semop(int semid, struct sembuf *sops, unsigned nsops)
1. 功能:对信号量进行控制
2. Semid:信号量集的ID
3. Sops:操作数组,表明要进行什么操作
a) Struct sembuf
{unsigned short sem_num; :表示第几个信号量
Short sem_op; :1表示释放,-1表示获取
Short sem_flg:} :标志
1. IPC_NOWAIT:
2. IPC_UNDO:程序结束时释放信号量。避免资源永远被锁定
4. Nsops:sops所指向的数组的元素的个数
相关文章推荐
- Linux进程间通信IPC学习笔记之同步二(SVR4 信号量)
- Linux进程间通信——使用信号量
- Linux进程间通信——使用信号量
- Linux进程间通信 共享内存+信号量+简单例子
- 系统编程之进程间通信和信号量(售票系统)
- 进程间通信之3----信号量
- Linux进程间通信——使用信号量
- Linux进程间通信——使用信号量
- Linux进程间通信——使用信号量
- 进程间通信:用信号量实现对共享内存读写顺序的控制
- Linux进程间通信方式--信号,管道,消息队列,信号量,共享内存
- 16.进程同步与死锁——进程同步与信号量
- 进程间通信:用信号量实现对共享内存读写顺序的控制
- Linux C编程--进程间通信(IPC)6--综合应用实例--信号量和共享内存的使用
- Linux进程间通信—信号量
- linux的进程间通信——信号量
- 在Linxu下进程间通信之信号量
- Linux进程间通信——使用信号量
- Linux进程间通信——使用信号量
- 进程间通信之信号量