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.

Entradas relacionadas: