在操作系统中,信号量sereWait和semSignal操作各自的动作是如何定义的?

admin2016-05-14  29

问题 在操作系统中,信号量sereWait和semSignal操作各自的动作是如何定义的?

选项

答案信号量的结构定义如下: typedef struct semaphore{ int value;/*信号量值*/ Queue queue;/*信号量的等待队列*/ }Semaphore; Semaphore s; 信号量操作的semWait和semSignal操作定义如下。对信号量操作应当是原子操作,故要用关、开中断或其他的安全机制将semWait和semSignal操作保护起来,以使它能完整地执行。 Void semWait(s) semaphore s; { if(--s.value<0){ 将进程置入等待队列queue中; 封锁进程; 转进程调度程序; } } Void semSignal(s) Semaphore s; { if(++s.value<=0){ 从等待队列queue中移出一进程; 将该进程置入就绪队列中; } }。

解析
转载请注明原文地址:https://kaotiyun.com/show/IiNx777K
本试题收录于: 操作系统题库理工类分类
0

最新回复(0)