Pergunta

Eu estava me perguntando qual é a diferença real entre a rede de processos do Kahn e o modelo de ator.De fato, se eu procurar na definição, ambos são modelos em que entidades computacionais (chamadas atores em ambos os casos ...) trocar mensagens através de buffers ilimitados.Além disso, em ambos os casos, essas mensagens são enviadas de forma assíncrona, uma vez que um procedimento pode sempre enviar uma mensagem.Não precisa esperar que o destinatário esteja pronto para receber.

Daí minha pergunta, existe alguma diferença real?

Muito obrigado!

Foi útil?

Solução

Kahn Process Network é garantido para ser determinístico. Todas as conexões FIFO entre os processos são prioramente conhecidas e não alteram dinamicamente durante o curso da execução. Em contraste, em caso de modelo de ator (citando a Wikipedia):

.

Em resposta a uma mensagem que recebe, um ator pode tomar decisões locais, criar mais atores, enviar mais mensagens e determinar como responder à próxima mensagem recebida.

modelo de ator, portanto não é garantido para ser determinístico. Citando Wikipeda:

.

O modelo de ator apresenta o não-interminismo ilimitado que foi capturado em um modelo matemático por se inclinará usando a teoria do domínio.

Outra distinção importante é como a comunicação ocorre

Em caso de KPN - para preservar o determinismo, toda a comunicação é através de canais FIFO. Mas não há tal requisito em caso de modelo de ator. Citando a Wikipedia:

.

[no KPN Não há] nenhum requisito em ordem de chegada da mensagem [....] Se a mensagem de mensagem de saída for desejada, ela poderá ser modelada por um ator de filas que fornece essa funcionalidade. Esse ator de filas enfileiraria as mensagens que chegaram para que pudessem ser recuperadas no pedido FIFO. Então, se um ator x enviou uma mensagem m1 para um ator y, e depois x enviou outra mensagem m2 para y, não há necessidade de que m1 chegue a y antes m2.

A este respeito, o modelo do ator espelha sistemas de comutação de pacotes que não garantem que os pacotes devem ser recebidos na ordem enviada. Não fornecer a ordem de garantia de entrega permite que a troca de pacotes para pacotes de buffer, use vários caminhos para enviar pacotes, reenviar os pacotes danificados e fornecer outras otimizações.

Como é bem claro da discussão acima, o KPN é um cenário muito mais restrito que pode ser modelado usando o modelo de ator adicionando restrições adicionais.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top