Pergunta

Enquanto chamadas simultâneas não causam seg-v de ou devolver o mesmo valor, o que razões existem para prevenir condições de corrida e corrupção de dados em PRNGs quando os efeitos primários aqueles de erro são resultados imprevisíveis e que é o ponto de um PRNG?


Editar:? há algum PRNG que não iria sofrer sob condições de corrida e corrupção de dados

Foi útil?

Solução

PRNGs são ferramentas meticulosamente construída -. Francamente, se as condições de corrida e os erros de threading foram um bom PRNG, a implementação seria escrito dessa maneira

O problema com a adição de erros de segmentação para aumentar a aleatoriedade é que é uma unstudied mudar para o gerador. Existentes algoritmos seguros e implementações foram exaustivamente testados; Se você quiser tentar uma variante inseguro, você precisa fazer o trabalho pesado estatística para mostrar que é pelo menos tão aleatório como um PRNG normal.

Outras dicas

quando os efeitos primários aqueles de erro são resultados imprevisíveis e que é o ponto de um PRNG?

"Random" não é o mesmo que imprevisível - Aleatório implica uma certa distribuição que é muito importante para manter se você quiser números aleatórios reais. Se os seus números aleatórios são previsíveis em qualquer maneira que pode ser um problema de segurança, ou pelo menos um programa bug

Ele geralmente torná-los menos determinista (ruim se você confiar em seu determinismo, que muitas pessoas fazem), e pode ou não pode torná-los menos pseudo-aleatório, dependendo de seus detalhes de implementação particulares e as sutilezas de como o seu hardware se comporta.

Mas normalmente as pessoas escrevendo aplicativos multithreaded declarar seu estado PRNG em TLS (thread-armazenamento local). Desta forma, não importa, cada segmento tem sua própria PRNG e corridas não vai acontecer a menos que você deliberadamente criá-los. Não dentro do código de qualquer maneira PRNG. Este é livre-lock e um desempenho mais ou menos completa (dependendo implementação TLS usado).

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