Análise de Deadlocks e Comunicação Interprocessos
Classificado em Computação
Escrito em em português com um tamanho de 2,99 KB
Análise de Deadlocks em Sistemas de Comunicação
Suponha a implementação de um sistema composto por dois PCs que comunicam através de sockets. Existe a possibilidade de ocorrer deadlocks?
Não. Pois não existe uma lista circular no grafo de dependências entre processo e recurso.
Condições para a Ocorrência de Deadlocks
Para a existência de deadlocks, é preciso que ocorram quatro condições:
- Lista de espera circular (como mencionado acima)
- Condição de não preempção
- Condição de exclusividade mútua
- Condição de posse e espera
Comunicação entre Processos
Processos comunicam entre si através de diferentes mecanismos:
Pipes
Pipes: ficheiros especiais que servem de canal de comunicação entre processos. Um processo abre um ficheiro para escrita, outro para leitura.
Sinais
Sinais: Quando um processo recebe um sinal, este processo para de efetuar o processamento em execução e o controlo "salta" para uma função.
Sockets
Sockets: permitem que pares de processos troquem dados, estabelecendo canais diretos de comunicação bidirecional.
Cálculo de Fatoriais em Cenários de Comunicação
a) Fatorial com Múltiplos Processos Locais
Um processo gera números inteiros e pretende calcular o seu fatorial. O cálculo do fatorial de cada número gerado é efetuado por outros processos, um processo por cada fatorial calculado.
Uma pipe entre o processo que gera os valores e os processos criados, e outra no sentido contrário. Pode ser apenas uma pipe em cada um dos sentidos, desde que na resposta o processo indique qual o valor do fatorial calculado.
b) Fatorial com Processo Remoto via Socket
Um processo gera números inteiros e pretende calcular o seu fatorial. O cálculo do fatorial de cada número gerado é efetuado por um processo noutro computador, processo esse que calcula todos os fatoriais que lhe forem pedidos.
Um socket entre o processo/computador que gera os valores e o processo/computador que calcula os valores. A comunicação deve ser bidirecional. O computador gera um valor e envia esse valor via socket para o segundo computador. O segundo computador envia o fatorial calculado e, opcionalmente, o valor original na mesma mensagem.
Vantagens da Plataforma Java
Java: Sim, seria uma boa solução, pois a vantagem de utilizar a plataforma Java é a de não estar presa a um único sistema operacional ou hardware. É mais fácil de aprender, de programar e compilar, mais fácil de usar e permite criar programas com códigos reutilizáveis mais do que outras linguagens.
Comparativo: UNIX ou Windows
UNIX ou Windows: O UNIX tem uma maior segurança, mais atualizações, normalmente não requer uma compra de novo hardware ou software e o UNIX oferece uma maior estabilidade, ou seja, não "cai" tantas vezes.