Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas operativos
Algoritmo de Ostrich
Integrantes
GALLEGOS ALVARADO CARLOS ALBERTO
GOMERO ARIAS ALEX WALTER
SANCHEZ ASTORAY VLADIMIR HENER
LAURA OCHOA VICTOR
Lima – Perú
2018
Introducción
Los bloqueos mutuos pueden ser evitados si se sabe cierta información sobre
los procesos antes de la asignación de recursos. Para cada petición de recursos,
el sistema controla si satisfaciendo el pedido entra en un estado inseguro, donde
puede producirse un bloqueo mutuo. De esta forma, el sistema satisface los
pedidos de recursos solamente si se asegura que quedará en un estado seguro.
Para que el sistema sea capaz de decidir si el siguiente estado será seguro o
inseguro, debe saber por adelantado y en cualquier momento el número y tipo
de todos los recursos en existencia, disponibles y requeridos. Existen varios
algoritmos para evitar bloqueos mutuos.
Por otro lado, también se puede definir como un algoritmo que esconde 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
Una posible salida ante la presencia del algoritmo del avestruz es adoptar un
método defensivo de programar. Un ejemplo de esto seria que los programas
soliciten un recurso, pero, en vez de solicitarlo por medio de una llamada
bloqueante, hacerlo por medio de una llamada bloqueante, hacerlo por medio de
una llamada no bloqueante y en caso de fallar esta, esperar un tiempo aleatorio
e intentarlo e intentarlo nuevamente acceder al recurso un numero dado de
veces, y tras n intentos, abortar limpiamente el proceso y notificar al usuario
(evitando un bloqueo mutuo circular indefinido).
Los ingenieros mas aterrizados en el mundo real tienen como parte básica de su
formación si el evitar efectos nocivos, pero también contemplan el calculo de
costos, la probabilidad de impacto los umbrales de tolerancia, para un ingeniero,
si un sistema típico corre riesgo de caer en un bloqueo mutuo con una
probabilidad dejando inservibles a dos procesos en un sistema. Pero debe
también considerar no solo las fallas en hardware y en los diferentes
componentes del sistema operativo, sino que en todos los demás programas que
corren en espacio de usuario y considerando que prevenir el bloqueo conlleva
un costo adicional en complejidad para el desarrollo o en rendimiento del
sistema, no debe sorprender a nadie que los ingenieros se inclinen por adoptar
la estrategia del avestruz.
Para que este contraste sea mas especifico, considere un sistema operativo que
bloquea al proceso llamador cuando no se puede llevar a cabo una llamada al
sistema open en un dispositivo físico, como una unidad de CD-ROM o una
impresora, debido a que el dispositivo esta muy ocupado. Por lo general es
responsabilidad del driver (controlador) de dispositivos decidir qué acción tomar
bajo tales circunstancias. Bloquear o devolver una clave de error son dos
posibilidades obvias. Si un proceso abre exitosamente la unidad de CD-ROM y
otro la impresora y después cada proceso trata de abrir el otro recurso y se
bloquea en el intento, tenemos un interbloqueo. Pocos sistemas actuales
detectaran esto.
Conclusiones
Bibliografía
1. Silva, M. (2015).Sistemas Operativos. Buenos Aires: AlfaOmega.
2. Tanenbaum, A. (2009).Sistemas Operativos Modernos. Tercera edición.
Buenos Aires: Prentice Hall.
3. Tanembaum, A. (1996).Sistemas Operativos Distribuidos. Naucalpa,
México: Prentice Hall