Quais são os arrays de semáforos no Linux?

6

Eu entendo semáforos , mas quais são os arrays de semáforo sendo usados na minha caixa de 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    

$

Além disso, qual recurso do SO eles estão protegendo?

    
por Lazer 19.09.2011 / 12:50

2 respostas

5

ipcs -i <SEMID> -s fornecerá mais informações sobre o array sem específico. Por exemplo,

[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

Use o pid para descobrir quem está usando.

    
por 19.09.2011 / 13:20
1

Sim, eu estava confuso com isso.

Os arrays de semáforos são uma alternativa SysV aos semáforos do kernel para processos do usuário.

Eles são um pouco mais complicados:

  • Eles usam uma matriz de valores para proteger vários recursos com um semáforo. Então, onde os semáforos do kernel do linux têm as operações 'up' / 'down' para inc / decrementar o valor da estrutura, sem_arrays tem operações para editar qualquer um dos valores em sua matriz.

  • Eles têm operações que podem ser desfeitas. Um processo pode permitir que o kernel reverta uma operação se ela morrer inesperadamente.

Also, which OS resource are they guarding?

Como eles são para processos no modo de usuário, não acho que eles estejam protegendo quaisquer recursos do sistema operacional.

Para mais informações: "Entendendo o kernel Linux" - Capítulo 19

    
por 24.05.2013 / 15:57

Tags