Está en la página 1de 4

Curso: Sistemas Operativos

Profesor: Velásquez Díaz, Christian David

Tema: Algoritmo de Ostrich

Integrantes:

 Juan Champi Bejar

 María Yanqui Rivera

2019
Algoritmo de Ostrich

El algoritmo del avestruz es un concepto informático para denominar el


procedimiento de algunos sistemas operativos. Esta teoría, acuñada
por Andrew S. Tanenbaum, señala que dichos sistemas, en lugar de enfrentar
el problema de los bloqueos mutuos (deadlock en inglés), asumen que estos
nunca ocurrirán.

Origen:
Frente a esta estrategia surgen diversas formas de respuesta. En matemática,
por lo general, se la considera inaceptable por lo que los interbloqueos se
deben prevenir a toda costa; la ingeniería en sistemas, por otro lado, estudia la
frecuencia con la que aparecerá el problema, la frecuencia en la que fallará el
sistema por otras razones y la magnitud del interbloqueo. Si estos ocurren, por
ejemplo, con un promedio de uno cada cinco años, pero los fallos del sistema
debido al hardware, errores del compilador y errores en el sistema operativo
ocurren uno por semana, no se buscará reducir considerablemente el
rendimiento por la conveniencia de eliminarlos.

Funcionamiento:

El algoritmo Ostrich su funcionamiento es básico ya que evita enfrentar los


problemas de bloqueo al utilizar los recursos.
Por lo tanto, al verse frente a este problema hace uso del recurso de
esconderse hasta que el problema sea solucionado.
¿PARA QUE SIRVE?

En el mundo de la tecnología informática (IT) y computadores en donde


vivimos, el Algoritmo del Avestruz es una estrategia para ignorar problemas
potenciales basándose en la premisa de que serán extremadamente raros.
Esto asume que es mucho más efectivo desde el punto de vista económico
permitir que el problema ocurra que intentar prevenirlo. Este es un algoritmo
utilizado para trabajar con puntos muertos en programación si se considera que
el impase será muy raro y el costo para prevenirlo muy alto.

El algoritmo es utilizado en sistemas operativos, por ejemplo, para chequear el


riesgo de que el sistema deje de funcionar porque un programa está pidiendo
demasiados recursos (de CPU o memoria, por ejemplo). En este caso, el
algoritmo primero le pregunta al programa cuantos recursos piensa utilizar, lo
compara con los recursos disponibles en el sistema y los que serán necesarios
para los otros programas que están ejecutando y toma algunas decisiones; una
de ellas puede ser decidir que el problema podría ocurrir, pero no es muy
probable que suceda, “meter la cabeza en un hueco” y hacer como si el
problema no existiera: el Algoritmo del Avestruz.

La estrategia más sencilla es simplemente ignorar el problema. A esta


estrategia se la denomina algoritmo del avestruz (Ostrich): esconder la cabeza
en la tierra y pretender que no existe problema alguno. La justificación de este
método es que si el interbloqueo se presenta con una frecuencia baja en
comparación con los fallos del sistema por otras razones (errores en el sistema
operativo, fallos en el hardware, etc.), no tiene sentido tomar medidas para
evitar el problema a costa de reducir el rendimiento del sistema. Un ejemplo es
el sistema operativo Unix. Cada tabla del sistema en Unix (tabla de procesos,
tabla de nodos-i, etc.) es un recurso finito que puede ser fuente de un posible
interbloqueo. El planteamiento de UNIX es ignorar el problema, bajo la
hipótesis de que la mayoría de los usuarios preferiría un bloqueo ocasional en
vez de una regla que restringiera el uso de los recursos. Esta decisión tiene su
motivación en el hecho de que la eliminación del interbloqueo es muy costosa.
Una vez que se decide afrontar el problema, existen dos estrategias principales
para tratar el interbloqueo: 1. Usar un protocolo que garantice que el sistema
nunca entre en un estado de interbloqueo. 2. Permitir que el sistema entre en
interbloqueo y luego se recupere. En el primero de los casos existen dos
métodos generales, que son conocidos como (prevention) y evitación
(avoidance) de interbloqueos. El segundo requiere el empleo técnicas de
detection) complementadas con técnicas de recuperación (recovery).
BENEFICIOS:

Un aspecto importante es la frecuencia de detección de interbloqueos, que


suele ser un parámetro del sistema. Una posibilidad extrema es comprobar el
estado cada vez que se solicita un recurso y este no puede ser asignado. El
inconveniente es el tiempo de CPU que se utiliza. Otra alternativa es activar el
algoritmo ocasionalmente, a intervalos regulares, o cuando uno o más
procesos queden bloqueados durante un tiempo sospechosamente largo. Una
frecuencia alta de comprobación tiene la ventaja de descubrir con prontitud los
interbloqueos, capacitando al sistema a actuar rápidamente. Con una
frecuencia baja se reduce el gasto de tiempo de ejecución para la detección, a
expensas de dejar interbloqueos sin detectar durante más largos períodos.
Esta estrategia puede redundar en un empobrecimiento en la utilización de
recursos, puesto que los procesos Inter bloqueados continúan reteniendo los
recursos ya concedidos sin realizar trabajo alguno con ellos. Para romper el
bloqueo de un sistema, hay que anular una o más de las condiciones
necesarias para el bloqueo. Normalmente, varios procesos perderán algo o
todo lo realizado hasta el momento.
El algoritmo avestruz ignora el problema.
Detección: Permitir que ocurran los bloqueos, detectarlos e intentar
recuperarse de ellos.
Prevención: Lograr estáticamente que los bloqueos seas imposibles desde el
punto de vista estructural.
Evitarlos: evitar los bloqueos mediante la asignación de los recursos

Bibliografía

http://siom-udm.blogspot.com/2016/07/interbloqueos.html

http://repositorio.uned.ac.cr/reuned/bitstream/120809/453/1/MC0881%20Sistemas%20oper
ativos%20-%202009%20-%20Inform%C3%A1tica.pdf
https://geeks.ms/gvelez/2009/09/28/el-algoritmo-del-avestruz-en-sharepoint/
“Modern Operating Systems”. A.S. Tanenbaum. Prentice-Hall. 1992

También podría gustarte