table of contents
other languages
other sections
IPC(5) | Manual do Programador Linux | IPC(5) |
NOME¶
ipc - Mecanismo de inter-comunicação do System VSINOPSE¶
# include <sys/types.h> # include <sys/ipc.h> # include <sys/msg.h> # include <sys/sem.h> # include <sys/shm.h>
DESCRIÇÃO¶
Esta página do manual referese a implementação para o Linux do mecanismo de inter-comunicação usado no System V: fila de mensagens, sinalização por semáfaros e segmentos compartilhados de memória. Na seqüencia, a palavra resource significa uma instância de um entre muitos mecanismos.Permissão de Acessos aos Recursos¶
Para cada recurso o sistema usa uma estrutura comum do tipo struct ipc_perm para armazernar informações necessárias na determincação das permissões para executar uma operação ipc. A estrutura ipc_perm , definida pelo arquivo de cabeçalho do sistema <sys/ipc.h> , incluí os seguintes membros: ushort cuid; /* identificação numérica do usuário criador*/0400 Leitura pelo usuário. 0200 Escrita pelo usuário. 0040 Leitura pelo grupo. 0020 Escrita pelo grupo. 0004 Leitura pelos demais. 0002 Escrita pelos demais.Os bits 0100, 0010 e 0001 (os bits para execução) não são usados pelo sistema. Furthermore "escrita" significa efetivamente "modificar" para um conjunto de sinalizações. O arquivo cabeçalho de sistema define as seguintes constantes simbólicas:
- IPC_CREAT
- Criar a entrada se a chave não existe.
- IPC_EXCL
- Falhar se a chave existe.
- IPC_NOWAIT
- Errar se a requesição esperar muito.
- IPC_PRIVATE
- Chave privada.
- IPC_RMID
- Remover recurso.
- IPC_SET
- Fixar opção do recurso.
- IPC_STAT
- Pegar opção do recurso.
Fila de mensagens¶
Uma fila de mensagens é unicamente identificada por un inteiro positivo (its msqid) e possui uma estrutura de dados associada do tipo struct msquid_ds, definida em <sys/msg.h>, contendo os seguintes membros: struct ipc_perm msg_perm;- msg_perm
- ipc_perm estruturas que especificam a permissão de acesso na fila de mensagem.
- msg_qnum
- Número de mensagems atualmente na fila de mensagens.
- msg_qbytes
- Número máximo de bytes de texto de mensagem texto permetida na fila de mensagens.
- msg_lspid
- ID do processo que executou a última chamada de sistema msgsnd
- msg_lrpid
- ID do processo que executou a última chamada de sistema msgrcv
- msg_stime
- A hora da última chamada de sistema msgsnd
- msg_rtime
- A hora da última chamada de sistema msgcv
- msg_ctime
- A hora da última chamada de sistema que alterou um membro da estrutura msqid_ds
Conjunto sinalizador¶
Um conjunto sinalizador é unicamente identificado por um inteiro positivo (its semid) e possui uma estrutura de dados associada do tipo struct semid_ds, definida em <sys/sem.h>, contendo os seguintes membros: struct ipc_perm sem_perm;- sem_perm
- ipc_perm estruturas que especificam a permissão de acesso no conjunto sinalizador.
- sem_otime
- Hora da última chamada de sistema semop
- sem_ctime
- Hora da última chamada de sistema semctl que alterou um membro de uma estrutura citada acima ou um dos sinais pertencentes ao conjunto.
- sem_nsems
- Número de sinais no conjunto. Cada sinal de um conjunto é referenciado por um inteiro não negativo desde 0 até sem_nsems-1.
- semval
- Valor do sinal: um interio não negativo.
- sempid
- ID do último processo que executou uma operação sinalizada neste sinal.
- semncnt
- Número de processos supendidos aguardando por semval para adicionar.
- semznt
- Número de processos supendidos aguardando por semval para se transformar em zero.
Segmentos Compartilhados de Memória¶
Um segmento compartilhado de memória é unicamente identificado por um inteiro positivo (its shmid) e possui uma estrutura de dados associada do tipo struct shmid_ds, definida em <sys/shm.h>, contendo os seguintes membros: struct ipc_perm shm_perm;- shm_perm
- ipc_perm estrutura que especifica as permissões de acesso no segmento compartilhado de memória.
- shm_segsz
- Tamanho em bytes do segmento compartilhado de memória.
- shm_cpid
- ID do processo que criou o segmento compartilhado de memória
- shm_lpid
- ID do úlitmo processo que executou uma chamada de sistema shmat ou shmdt
- shm_nattch
- Número de uniões atuais ativas para este segmento compartilhado de memória.
- shm_atime
- Hora da úlitma chamada de sistema shmat
- shm_dtime
- Hora da úlitma chamada de sistema shmdt
- shm_ctime
- Hora da última chamada de sistema shmctl que alterou shmid_ds.
VEJA TAMBÉM¶
ftok(3), msgctl(2), msgget(2), msgrcv(2), msgsnd(2), semctl(2), semget(2), semop(2), shmat(2), shmctl(2), shmget(2), shmdt(2).TRADUZIDO POR LDP-BR em 21/08/2000.¶
André L. Fassone Canova <lonelywolf@blv.com.br> (tradução) Carlos Augusto Horylka <horylka@conectiva.com.br> (revisão)1/11/1993 | Linux 0.99.13 |