如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
typedefstructInterfaceModule{semaphoremutex;semaphorenext;发出signal操作的进程挂起自己的信号量intnext_count;在next上等待的进程数};mutex=1;next=0;next_count=0;voidenter(InterfaceModule&IM){P(IM.mutex);}voidleave(InterfaceModule&IM){if(IM.next_count>0)V(IM.next);elseV(IM.mutex);}voidwait(semaphore&x_sem,int&x_count,InterfaceModule&IM){x_count++;if(IM.next_count>0)V(IM.next);elseV(IM.mutex);P(x_sem);x_count--;}voidsignal(semaphore&x_sem,int&x_count,InterfaceModule&IM){if(x_count>0){IM.next_count++;V(x_sem);P(IM.next);IM.next_count--;}}