[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Dúvidas de Shared Memory





Nos exemplos que vem junto com o enunciado do EP (ex1.c e ex2.c), pelo que
eu entendi, rodamos ex1 e depois rodamos ex2. Em ex2 é executado
shmctl(shmid, IPC_RMID, 0 ) para "destruir" a área de memoria
compartilhada assim que todos os processos realizarem um shmdt nessa área
enquanto que o processo ex1 apenas realiza o shmdt na area compartilhada.

No nosso caso, criaremos o processo supervisor que deverá criar as áreas
de memória compartilhada e que deverão ser destruidas quando este sair
(executando o shmctl com o comando IPC_RMID) certo? E
os processos operadores deverão apenas executar o shmdt sobre a área
certo? Agora, o processo supervisor também deve executar um shmdt antes do
shmctl???? Me parece que não, mas não tenho certeza.

Outra dúvida é no fato de que quando o processo supervisor estiver "fora
do ar" ou for morto, ou finalizado, não tem mais sentido existirem os
processos operadores, então o que podemos fazer? Poderíamos mandar um
sinaol para cada um deles, mas desta forma teríamos que saber qual é o PID
de cada um desses processos. Como podemos saber isso?

[]'s



-----
Nelson Guedes Paulo Junior   
E-mail:  <npaulo@linux.ime.usp.br>   UIN: 2489382 (Tender [:alpha:]*)
"LAPTOPirose é a doença causada pela urina do mouse"