Linux 上的信号量数组是什么?

Laz*_*zer 6 linux ipc

我了解semaphores,但是我的 Linux 机器上使用的这些信号量数组是什么?

$ ipcs

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x00000000 327681     root      644        80         2                       
0x00000000 360450     root      644        16384      2                       
0x00000000 393219     root      644        280        2                       
...

------ Semaphore Arrays --------
key        semid      owner      perms      nsems     
0x4172d4f4 290914305  lazer     660        104       
0x3b87b970 291045378  lazer     660        104       
0xa97eb380 293928963  lazer     660        104       
0x1fde2040 294191108  lazer     660        104       

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages    

$
Run Code Online (Sandbox Code Playgroud)

此外,他们保护哪些操作系统资源

Sha*_*hin 6

ipcs -i <SEMID> -s将为您提供有关特定 sem 数组的更多信息。例如

[me@home]$ ipcs -i 32769 -s

Semaphore Array semid=32769
uid=537  gid=85  cuid=537        cgid=85
mode=0600, access_perms=0600
nsems = 1
otime = Mon Sep 19 12:18:53 2011
ctime = Mon Sep 19 12:07:11 2011
semnum     value      ncount     zcount     pid
0          1          0          0          7548
Run Code Online (Sandbox Code Playgroud)

使用 pid 找出谁在使用它。