一、实验目的
1、了解进程互斥、同步及其程序实现;
2、了解进程通信,以及利用进程互斥实现进程通信。
二、实验内容
Linux 上,用 C 语言信号量实现进程对临界资源的互斥访问
1、 信号量机制的基本操作:
资源使用者在使用临界资源之前“等待”信号量
资源使用者使用完临界资源后“通知”信号量
2、C 语言实现:
注意:以下函数原形在 sys/types.h、sys/ipc.h 和 sys/sem.h 包含文件中。
A)创建信号量集
int semget(key_t key,int nsems,int semfllg)
其中:key—创建信号量集关键字。
nsems—信号量集中信号量的数量。
semflg—指定选项及其权限位。
IPC_CREAT—创建新的信号量集
IPC_EXCEL—如果信号量集已经存在,则返回错误。
<XXX XXX XXX>--和文件、目录一样权限。
返回一个信号量集 ID--semid
B) 获得一个已经存在的信号量集
int semget(key_t key,0,0)
key—含义同上。
C)等待、通知一个信号量集