Foro de elhacker.net

Foros Generales => Dudas Generales => Mensaje iniciado por: javier12 en 24 Agosto 2017, 13:35 pm



Título: atascos
Publicado por: javier12 en 24 Agosto 2017, 13:35 pm
Cuando un programa se queda atascado...¿a que se debe?
Pero sobre todo, lo que más me intriga es:
-hay veces que despues de muchos segundos atascado vuelve a funcionar perfectamente.
-hay otras que por mucho que esperas no se arregla nada.

Pues bien, lo que mas me intriga es cuando pasa uno y cuando pasa el otro. Por que si espero pero resulta que el error es de los que no tienen solucion...vaya tontería.

Gracas


Título: Re: atascos
Publicado por: Orubatosu en 24 Agosto 2017, 19:47 pm
Es bastante fácil "atascar" un programa, pero no hay un motivo único.

Puede ser que se ponga por error de código en un bucle infinito, que básicamente es que entra en una parte del código y vuelve a la misma y así continuamente. Esos errores de programación a menudo son complicados de detectar porque a veces dependen de muchos factores.

Algo mas usual es que simplemente se quede esperando a que un recurso esté disponible, y el programador por algún motivo no se ha molestado en indicarle al programa que hacer cuando ese recurso no está disponible por el motivo que sea y se quede ahí esperando.

También puede pasar que tengas varios programas en marcha (es lo mas usual en cualquier SO moderno) y uno de ellos acapare la prioridad de proceso dejando a otros en espera. En esos casos "se arregla solo" cuando ese proceso finaliza (o no).

El problema al final es que no hay un motivo único, sino muchos. En algunos lenguajes de programación no es obligatorio en tratar los posibles errores "criticos", como que un fichero no esté disponible, que no consiga conectar con un sitio de red, acceder a una tabla de una base de datos, etc. Si ese error no ha sido previsto, el programa "se cae" o se queda "empanado" esperando.

De hecho a veces hacer una rutina o programa sencillo no es lo difícil. Lo difícil es preveer todas las posibles contingencias, incluyendo que el usuario sea un manazas.

Un ejemplo simple: Imagina que haces un programa que pida al usuario la fecha de nacimiento, y en base a ello saque la edad. Fácil ¿no?

Si, es fácil el algoritmo. Es de una facilidad pasmosa... una resta sabiendo el año actual y arreando pero ¿que pasa con la entrada de datos?

El usuario puede que ponga el año, pero también puede que ponga su nombre, que lo deje en blanco, que ponga una fecha ridícula (posterior a la actual o negativa o....)

Pues en muchos casos el prever todas las posibles "cagadas" que el usuario puede cometer y atajarlas, cuesta mas que el proceso en si. Cierto es que muchos lenguajes ya tienen sistemas preparados para evitar esto (no todos ojo). Pero como este ejemplo simple se pueden dar muchos mas casos.

Y luego claro, los errores y problemas de hardware, esos ya....


Título: Re: atascos
Publicado por: javier12 en 9 Diciembre 2018, 22:03 pm
Es bastante fácil "atascar" un programa, pero no hay un motivo único.

Puede ser que se ponga por error de código en un bucle infinito, que básicamente es que entra en una parte del código y vuelve a la misma y así continuamente. Esos errores de programación a menudo son complicados de detectar porque a veces dependen de muchos factores.

Algo mas usual es que simplemente se quede esperando a que un recurso esté disponible, y el programador por algún motivo no se ha molestado en indicarle al programa que hacer cuando ese recurso no está disponible por el motivo que sea y se quede ahí esperando.

También puede pasar que tengas varios programas en marcha (es lo mas usual en cualquier SO moderno) y uno de ellos acapare la prioridad de proceso dejando a otros en espera. En esos casos "se arregla solo" cuando ese proceso finaliza (o no).

El problema al final es que no hay un motivo único, sino muchos. En algunos lenguajes de programación no es obligatorio en tratar los posibles errores "criticos", como que un fichero no esté disponible, que no consiga conectar con un sitio de red, acceder a una tabla de una base de datos, etc. Si ese error no ha sido previsto, el programa "se cae" o se queda "empanado" esperando.

De hecho a veces hacer una rutina o programa sencillo no es lo difícil. Lo difícil es preveer todas las posibles contingencias, incluyendo que el usuario sea un manazas.

Un ejemplo simple: Imagina que haces un programa que pida al usuario la fecha de nacimiento, y en base a ello saque la edad. Fácil ¿no?

Si, es fácil el algoritmo. Es de una facilidad pasmosa... una resta sabiendo el año actual y arreando pero ¿que pasa con la entrada de datos?

El usuario puede que ponga el año, pero también puede que ponga su nombre, que lo deje en blanco, que ponga una fecha ridícula (posterior a la actual o negativa o....)

Pues en muchos casos el prever todas las posibles "cagadas" que el usuario puede cometer y atajarlas, cuesta mas que el proceso en si. Cierto es que muchos lenguajes ya tienen sistemas preparados para evitar esto (no todos ojo). Pero como este ejemplo simple se pueden dar muchos mas casos.

Y luego claro, los errores y problemas de hardware, esos ya....

En otro foro me han comentado que puede ser:
*actualizaciones
*el antivirus haciendo alguna funcion
*desfragmentacion

Y que debo mirar al administrador de tareas para enterarme bien de que está pasando. Y que se puede programar para que esas 3 tareas se hagan en otro momento y no ahora.


Título: Re: atascos
Publicado por: Machacador en 9 Diciembre 2018, 23:24 pm
En otro foro me han comentado que puede ser:
*actualizaciones
*el antivirus haciendo alguna funcion
*desfragmentacion

Y que debo mirar al administrador de tareas para enterarme bien de que está pasando. Y que se puede programar para que esas 3 tareas se hagan en otro momento y no ahora.

Y en este foro te acaban de decir que:

Citar
El problema al final es que no hay un motivo único, sino muchos.

 :rolleyes: :o :rolleyes: