go top

信号量操作

网络释义

  semop

... sigprocmask根据参数对信号集中的信号执行阻塞/解除阻塞等操作 semop信号量操作 setfsuid设置文件系统检查时使用的用户标识号 ...

基于262个网页-相关网页

有道翻译

信号量操作

Semaphore operation

以上为机器翻译结果,长、整句建议使用 人工翻译

双语例句

  • short sem_op; (信号量操作

    short sem_op; (semaphore operation)

    youdao

  • 一个“等待为 0” 的操作可以它来获取信号

    This is a "wait-for-zero" operation and can be used to acquire a semaphore.

    youdao

  • 这种策略要求了解基本操作系统内核提供机制,程序逻辑利用这些机制设计信号使用方法。

    This tactic requires that you review what the base OS kernel provides or advises in terms of designing the use of semaphores within your program logic.

    youdao

更多双语例句

百科

信号量操作

应用程序创建信号量集需要调用semget(2)。系统中每个信号量集由一个semds_id数据结构描述,其中包括以下元素: struct semid_ds { struct ipc_perm sem_perm; /* operation permission struct */ struct sem *sem_base; /* ptr to first semaphore in set */ ushort_t sem_nsems; /* # of semaphores in set */ #if defined(_LP64) time_t sem_otime; /* last semop time */ time_t sem_ctime; /* last change time */ #else /*_LP64*/ time_t sem_otime; /* last semop time */ int32_t sem_pad1; /* reserved for time_t expansion */ time_t sem_ctime; /* last change time */ int32_t sem_pad2; /* time_t expansion */ #endif /*_LP64*/ int sem_binary; /* flag indicating semaphore type */ long sem_pad3; /* reserve area */ }; 系统会对传递给semget(2)的关键字的值进行检查来查看这个信号量是否已经存在了,并通过使用ipc支持例程ipcaccess()进行权限检查。信号量的权限和我们在Solaris文件中使用的权限模式有点不同。这些权限被定义程READ和ALTER,这样进程就可以读取当前信号量的值或者对该值进行修改(增大/减小)。这两个权限是通过传递给semget(2)调用的参数来建立的,它使用Solaris文件权限中通用的属主、组和其他用户的概念。 假设有一个新的信号量,根据紧接的下一步操作就是对信号量值进行初始化。初始化操作使用semctl(2)调用来实现,它使用SETVAL来设置某个时间点上这个集合中每个信号量的值(或者这个集合中只用一个信号量,那么就设置这个信号量的值),或者使用SETALL来设置一个操作中该集合中所有信号量的值。内核的实际流程是明确的,它使用期望的权限和值对可能的最大值进行检查,如果所有的检查都通过了,那么久设置用户定义的值。 应用程序代码对信号量的实际使用会调用semop(2)系统调用。semop(2)调用使用信号量的ID(由semget(2)返回)、一个指向sembuf结构的指针和信号量操作的个数作为参数。sembuf结构包含一下元素。 struct sembuf { ushort_t sem_num; /* semaphore # */ short sem_op; /* semaphore operation */ short sem_flg; /* operation flags */ }; 程序员必须创建sembuf结构并对其进行初始化,设置semaphore编号(说明它是集合中的哪一个信号量)、操作和标志。sem_op的值决定了信号量操作是对信号量进行修改还是读取这个信号量的值。非0的sem_op值可以增大信号量的值,也可以减小信号量的值。值为0的sem_op只是简单的读取信号量的值。

详细内容

以上来源于: 百度百科
$firstVoiceSent
- 来自原声例句
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定