ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Crash


Enviado por   •  27 de Enero de 2015  •  Ensayo  •  2.708 Palabras (11 Páginas)  •  144 Visitas

Página 1 de 11

CRASH

Por crash se entiende en informática la condición en la cual una aplicación informática, ya sea un programa o parte o la totalidad del sistema operativo dejan de funcionar de la forma esperada y dejan de responder a otras partes del sistema. A veces el programa simplemente aparece como "congelado", esto es: no responde a ninguna acción del usuario o del entorno operativo. Si el programa que falla es una parte crítica del núcleo del Sistema Operativo, el equipo completo puede dejar de responder (crash de sistema). En lenguaje coloquial, se dice de una aplicación que lo padece, que se "congeló", "tildó", "colgó" o "pasmó".

Muchos crashes son resultado de una sola instrucción ejecutada por el equipo de cómputo, pero las causas pueden ser múltiples. Algunas causas típicas son:

• El secuenciador de instrucciones de la unidad de proceso apunta a una dirección de memoria inválida. En este caso no es extraño que el procesador intente ejecutar instrucciones aleatorias o datos en la región inválida que pretende leer. Dado que la región de memoria o los mismos datos pueden resultar ser instrucciones válidas, el programa puede intentar ejecutarlas hasta que se produzca una excepción del procesador o se sobreescriba una región de memoria vital para el sistema.

• El programa ingresa en un bucle infinito impidiendo cualquier acción del usuario o el sistema sobre él.

• En dos o más procesos concurrentes se produce una condición de carrera, y entonces el programa espera indefinidamente sin parecer hacer nada ni responder

Del inglés crash, choque. En el artículo correspondiente en inglés se cita al choque de las cabezas de lectura y escritura de un disco duro (o "head crash") como origen de su uso en informática.

Crash de aplicación

Un crash de aplicación sucede cuando un programa ejecuta una operación que no está permitida por el sistema operativo. Algunos crashes típicos son:

Intentar leer o escribir memoria que no ha sido ubicada para su uso por la aplicación (error de protección general).

Intentar ejecutar instrucciones privilegiadas o inválidas.

Circunstancias no previstas o un código malamente escrito que provoque un bucle infinito.

Intentar operaciones de entrada o salida en un dispositivo de hardware para el cual no se tienen privilegios de uso.

Pasar argumentos no válidos a una llamada al sistema.

Intentar acceder a otros recursos del sistema para los cuales la aplicación no tiene privilegios de uso (error de bus)

Cuando la aplicación que falla es un servidor, los programas cliente también pueden fallar.

Crash de sistema operativo

Un crash de sistema operativo sucede cuando se presenta una excepción de hardware que no puede ser manejada por el sistema quedando éste o el hardware en un estado inestable. Adicionalmente un crash de sistema operativo puede suceder cuando el mismo sistema operativo detecta que hay inconsistencias en él mismo dándose de baja y apagando el equipo para no causar daños mayores; en versiones tempranas de algunos sistemas operativos, los crashes de sistemas operativos podían dar lugar a daño físico del equipo.

CONCURRENCIA

La concurrencia de procesos se refiere a las situaciones en las que dos o más procesos puedan coincidir en el acceso a un recurso compartido o, dicho de otra forma, que requieran coordinarse en su ejecución. Para evitar dicha coincidencia, el sistema operativo ofrece mecanismos de arbitraje que permiten coordinar la ejecución de los procesos.

Un ejemplo de un problema de concurrencia sería el siguiente: Dados dos procesos A y B, suponiendo que ambos se ejecutan indefinidamente en el tiempo, el proceso A debe recibir tiempo de ejecución antes que B, tras esto, el proceso B debe recibir su oportunidad de ejecución, dando paso de nuevo al proceso A y así sucesivamente.

Recuerde que el planificador de procesos, al desconocer la naturaleza de los procesos y sus objetivos, no dispone de información suficiente como para garantizar la secuencia de ejecución descrita en el ejemplo anterior. Por tanto, suponiendo que ambos procesos se encuentran en estado preparado, podría seleccionar al proceso B para pasar a estado activo antes de seleccionar al proceso A, situación que no es deseada.

Recuerde que el planificador de procesos, como hemos visto en capítulos anteriores, emplea criterios de planificación que no tienen en consideración el objetivo de los procesos. Podemos decir que el planificador de procesos desconoce cuál es el propósito de los procesos, únicamente puede observar su comportamiento, es decir, si presentan un comportamiento más o menos interactivo.

Por tanto, el programador, a la hora de modelar los procesos, debe emplear mecanismos de arbitraje que ofrece el sistema operativo y que permiten resolver el problema de concurrencia que se plantee.

Formas de interacción entre procesos

Hay dos formas básicas de interacción entre los procesos:

Relaciones de competencia: Dados dos procesos A y B, ambos procesos tienen objetivos diferentes y compiten por los recursos para conseguirlos. Por ejemplo, dos procesos desean modificar el contenido de un mismo fichero, pero no deben hacerlo de manera simultánea o quedará en un estado incoherente.

Relaciones de cooperación: Dados dos procesos A y B, ambos con un mismo objetivo, se ponen de acuerdo a la hora de emplear los recursos existentes para alcanzarlos. Por ejemplo, si el proceso A produce un objeto que es consumido por el proceso B, hasta que el proceso A no produzca, el proceso B no debe consumir y viceversa.

Mecanismos de arbitraje

Los mecanismos de arbitraje que ofrece el sistema operativo son básicamente dos:

Mecanismos de sincronización: el sistema operativo ofrece mecanismos que permiten a los procesos coordinar su ejecución para conseguir el objetivo sin que sucedan situaciones no deseadas, como por ejemplo que dos o más procesos coincidan simultáneamente en el acceso a un cierto recurso que no se puede compartir.

Mecanismos de mensajería: el sistema operativo ofrece mecanismos de comunicación entre procesos mediante mensajes. El intercambio de mensajes entre procesos permite coordinarlos.

Programación concurrente

El término programación concurrente se emplea con frecuencia para referirse a un conjunto de programas que funcionan en cooperación.

Hay tres formas de interacción entre procesos cooperativos:

Concurrencia: Hay un recurso común, si varios procesos modificaran la misma información a la vez , cada uno podría

...

Descargar como (para miembros actualizados) txt (17 Kb)
Leer 10 páginas más »
Disponible sólo en Clubensayos.com