linux进程通信 信号量使用
标题:Linux进程通信-使用信号量
一、相关知识
信号量:一个整数;
大于或等于0时代表可供并发进程使用的资源实体数;
小于0时代表正在等待使用临界区的进程数;
用于互斥的信号量初始值应大于0;
只能通过P、V原语操作而改变;
信号量元素组成:
1、表示信号量元素的值;
2、最后操作信号量元素的进程ID
3、等待信号量元素值+1的进程数;
4、等待信号量元素值为0的进程数;
二、主要函数
1.1 创建信号量
int semget(
key_t key, //标识信号量的关键字,有三种方法:1、使用IPC——PRIVATE让系统产生,
// 2、挑选一个随机数,3、使用ftok从文件路径名中产生
int nSemes, //信号量集中元素个数
int flag //IPC_CREAT;IPC_EXCL 只有在信号量集不存在时创建
)
成功:返回信号量句柄
失败:返回-1
1.2 使用ftok函数根据文件路径名产生一个关键字
key_t ftok(const char *pathname,int proj_id);
路径名称必须有相应权限
1.3 控制信号量
int semctl(
int semid, //信号量集的句柄
int semnum, //信号量集的元素数
int cmd, //命令
/*union senum arg */... //
)
成功:返回相应的值
失败:返回-1
命令详细说明:
cmd: IPC_RMID 删除一个信号量
IPC_EXCL 只有在信号量集不存在时创建
IPC_SET 设置信号量的许可权
SETVAL 设置指定信号量的元素的值为 agc.val
GETVAL 获得一个指定信号量的值
GETPID 获得最后操纵此元素的最后进程ID
GETNCNT 获得等待元素变为1的进程数
GETZCNT 获得等待元素变为0的进程数
union senum 定义如下:
union senum{
int val;
struct semid_ds *buf;
unsigned short * array;
}agc;
其中 semid_ds 定义如下:
struct semid_ds{
struct ipc_pem sem_pem; //operation pemission struct
time_t sem_otime; //last semop()time
time_t sem_ctime; //last
相关文档:
一、JDK下载:http://java.sun.com下载自解压包:jdk.bin
#sh jdk.bin 按提示选择yes。到此JDK已经安装完成
二、设置环境变量
假如jdk安装到了/usr目录下。在/etc/profile中的最底端里写入如下:
#vi /etc/profile
#Set Environment by NetSeek (2005/9/5)
export JAVA_HOME=/usr/jdk
export JRE_HOME=/usr/jdk/jre
PA ......
linux
下 mysql
用户的管理
文章分类:数据库
关键字: linux
mysql
用户管理
自从上在redhat Enterprise 5 中安装了MySQL
,这次来实践操作一下MySQL
用户的管理;
一、root用户密码的维护:
由于安装MySQL
完后,MySQL
会自动提供一个不带 ......
1.Linux“线程”
进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型。Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。
大家知道,进程是资源分配的单位,同一进程中的多个线程共享该进程的 ......
目录索引
一、与用户管理相关的
配置文件;
1、/etc
/passwd 和/etc/groups
2、超级权
限控制 sudo 的配置文件/etc/sudoers ;
3、添加用
户规则文件 /etc/login.defs 和 /etc/default/useradd
二、添加用户工具和方
法;
1、useradd
工具;
1.1、
useraadd 命令中的 -D运用
1.2、
useradd 添加用户;
......
DMAI(DaVinci Multimedia Application Interface)是DSP提供给ARM端应用程序的调用接口,DSP也是依赖于DSPLINK的。 DMAI中也提供了许多VISA (video, imaging, speech and audio)编解码的实例。DMAI提供的是一种功能的抽象,而在具体实现上,不同硬件平台,不同系统是不一个样的。另外,由于DMAI是以源代码的形式提供的,所以 ......