Pues no tanto, porque cuando metes un sistema operativo multitarea ya tienes un ordenador impredecible.
Pues no. No es así. Los ordenadores están programados. Y siguen ese programa. Y no hay nada más allá del programa. Las cosas no aparecen de la nada, hay en algún lado una línea de código que explica por qué el programa ha fallado, o ha ido por otro lado.
Lo que hace un ordenador se considera predecible, metes unas entradas y tienes unas salidas, siempre las mismas, invariables. Pero ya no tanto... primero tienes la interrupción de reloj, que interrumpe tu programa y hace cosas por en medio: ya tienes un factor irregular, porque rompe la cadena de tiempo de tu programa, que no está demostrado que no le afecte, de momento; y porque toma el procesador y lo deja en un estado distinto del que lo tomó, a lo mejor se le olvida restaurar algún registro o flag. Como al diseñar tu programa no sabes cuantas interrupciones de reloj vas a tener, y exactamente en que puntos del programa, pues ya tienes un sistema impredecible.
Luego añade que tu programa va a ser interrumpido por otros programas... pues más de lo mismo. Además, esos programas pueden alterar el estado del disco, de la memoria, externamente a lo que hace tu programa... más imprevistos. Incluso podrían alterar el contenido de memoria de tu programa. O el sistema puede alterar la posición de la memoria en la que se guarda tu programa o sus datos (alterando los punteros para compensar).
No es cierto, no es así. A ver, los ordenadores son sistemas, desde un punto de vista puramente físico, unos sistemas enormemente complejos. Pero obedecen a unas leyes muy muy sencillas; tanto, que han sido los seres humanos quienes las han inventado. Y estas normas se han inventado intentando que fuesen lo más simples posibles. Puede que a ti el problema de resolver qué va a hacer un ordenador bajo ciertas circunstancias te parezca complejísimo (y en verdad lo es): Qué ocurre cuando el ordenador está ejecutando tales programas, con tales usuarios y éstos hacen tales cosas. Sin embargo, todo se reduce a conocer perfectamente el código fuente de lo que se está ejecutando y qué acciones se toman. El resto es una consecuencia de estos parámetros y es calculable (imagínate un super-debugger). Todo es predecible porque todo es programable. Sin embargo, hay problemas físicos que directamente _sabemos_ que _no_ podemos resolver. Sabemos, hemos demostrado, que con nuestras matemáticas no podemos alcanzar una solución. No es cuestión de conocer perfectamente las condiciones iniciales (que sí podríamos conocer) sino de las leyes que gobiernan ese movimiento: Simplemente, no sabemos resolver el problema. Más aún, sabemos que no se puede resolver.
Con lo que conviertes un sistema predecible en uno impredecible.
Son problemas distintos, insisto. En uno, puede que conozcas o no todas las variables y así obtengas o no una solución incorrecta (es un problema de conocer las condiciones iniciales). En el otro, aún conociendo perfectamente las condiciones iniciales de forma exaustiva, sabemos que no podemos alcanzar la solución.
¿Caótico? Pues depende de como lo definas. Díselo a los que hacen la función random(), les encantaría que fuese realmente caótica.
Aquí el problema es que intentan obtener una cifra aleatoria en función de algo que no lo es. Intentan, partiendo de algo en principio aleatorio pero muy ciclico intentan añadir complejidad mediante... un programa.
Ah, y no hemos hablado de las motas de polvo que conducen a veces si y a veces no tanto situadas entre los contactos produciendo cuelgues...
Eso es otro problema. No cuenta :D -- Saludos, miguel Los agujeros negros son lugares donde dios dividió por cero. Black holes are places where god divided by zero. Steven Wright -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org