Computing">
Nothing Special   »   [go: up one dir, main page]

Cap 8 STR

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

EVALUACIÓN: Capítulo 8

1. ¿Cuáles son los mecanismos de sincronización?

Los monitores/métodos sincronizados, los servidores (paso de mensajes) y los recursos


protegidos (objetos protegidos).

2.¿Qué propiedades son deseables en un mecanismo de sincronización y control de


recursos?

Modularidad: Una implementación es modular si está estructurada de tal manera que es


sencillo modificar una parte sin afectar (o al menos reducir el impacto) al resto del
sistema. Puesto que los problemas de sincronización son complejos, esta propiedad es
importante para que el sistema sea más fácil de entender y mantener.

Expresividad: Un mecanismo es expresivo sí permite fácilmente la definición de los


requisitos de sincronización. En contraposición, un mecanismo adolece de poca
expresividad cuando no es posible usar directamente la información de que se dispone
sobre el problema de sincronización.

Facilidad de uso: Un sistema debe permitir la descomposición en restricciones de


sincronización individuales que puedan ser implementadas de forma aislada. En caso
contrario, a medida que las restricciones aumentan, se incrementa rápidamente la
complejidad de la implementación.

3. ¿Qué significado tiene la expresividad de un mecanismo de sincronización?

Un mecanismo de sincronización deberá permitir expresar adecuadamente las


restricciones de sincronización del sistema.

4.¿Qué información puede ser necesaria para realizar el control de un recurso?

Tipo de operación: Algunos recursos admiten diferentes tipos de acceso, tales como un
acceso compartido o un acceso exclusivo. Esta información se puede utilizar para dar
prioridad a un tipo de acceso frente a otro.
Temporización: El orden de llegada de las solicitudes de acceso se utiliza habitualmente
para gestionar el reparto de los recursos. De esta manera, considerando únicamente este
factor, un proceso que solicite un recurso antes que otro, conseguirá el acceso en
primer lugar.

Parámetros: A veces puede ser conveniente utilizar información contenida en los


parámetros asociados a la petición. Con frecuencia, esa información se refiere al tamaño
o número de elementos solicitados, en el caso de recursos cuantificables como la
memoria, o bien a la identidad del recurso. Por ejemplo, si dos procesos requieren
reservar diferentes tamaños de memoria, el servidor puede utilizar esta información para
atender primer al que menos (o más) cantidad solicita, según la política de reserva.

Estado del recurso: Además de la información relacionada con el solicitante del recurso,
ya sea orden de llegada, tipo de petición, etc.. el estado del recurso también debe
tenerse en cuenta. Por ejemplo, para poder atender una reserva de memoria, la cantidad
de memoria libre disponible en el recurso debe ser mayor a la solicitada.

Historial de uso: El historial de acceso contiene información sobre los eventos ocurridos
previamente en relación a un recurso, por ejemplo,qué o cuantos procesos han
accedido a un recurso. A diferencia del estado de sincronización, la información histórica
se refiere a operaciones que ya se han completado, por lo que no afectan directamente
a la sincronización del recurso.

Prioridad del proceso: puede utilizarse para determinar el orden de acceso a los
recursos. Así, un proceso de mayor prioridad puede ser atendido antes que otro de
menor prioridad, aunque esté haya realizado su solicitud con anterioridad.

5. ¿En qué consiste el interbloqueo?

Un problema relevante en el control de recursos es el de las condiciones de carrera:


cuando dos o más tareas acceden a más de un recurso compartido, existe la posibilidad
de que se genere una situación indeseable en la que los procesos involucrados quedan
incapacitados para continuar su normal evolución. Por ejemplo, supongamos que dos
procesos P1y P2 requieren utilizar los recursos R1 y R2. Por una parte, el proceso P1
obtiene exclusividad sobre un recurso R1, y solicita otro recurso R2. Mientras tanto, el
proceso P2, que ha conseguido previamente acceso exclusivo a R2 y desea utilizar R1.
De esta manera, se produce una espera mutua en la que, si no se dispone de los
mecanismos adecuados, el sistema puede quedar inmerso en un bloqueo indefinido.

6.Describa las condiciones que deben existir para que haya posibilidad de
interbloqueo.

En general, para que exista la posibilidad de que haya interbloqueos, es necesario que
se den al mismo tiempo cuatro condiciones:

Exclusión mutua: Se garantiza que dos procesos no pueden tener acceso a un recurso al
mismo tiempo.

Retención y Espera: Los procesos pueden retener recursos mientras esperan a otros.

No apropiación: Un proceso no puede ser expropiado de un recurso por parte del SO,
sino que tiene que cederlo voluntariamente.

Espera circular: Existe una lista circular de procesos tal que cada uno de ellos retiene un
recurso solicitado por el siguiente.

7.¿Qué diferencia hay entre un interbloqueo de punto muerto(deadlock) y un


bloqueo activo?

Punto muerto(deadlock): los procesos quedan suspendidos a la espera de que se libere


el recurso que necesitan, o bien a
Bloqueo activo(livelock): los procesos continúan en ejecución, pero no pueden
evolucionar (por ejemplo, en un bucle de espera activa).

8.¿En qué consiste y para que se utiliza la funcionalidad de reencolado?

Consiste en mover explícitamente una tarea, que se encuentra en una barrera o guarda,
a otra cola de espera en la que deberá conseguir de nuevo el acceso. Un aspecto
importante del reencolado es el flujo de control: a diferencia de lo que ocurre en una
llamada a otro procedimiento, en el caso de la ejecución de un reencolado el invocador
no retoma el control. Cuando un punto de entrada se reencola en otro, el flujo de
control del primero termina. Cuando el segundo finaliza, el control se devuelve al objeto
que realizo la llamada inicial. Como consecuencia, cuando se ejecuta un reencolado de
un objeto protegido a otro, la exclusión mutua se libera.

9.¿Qué son los esquemas de nombrado asimétrico/simétrico y como afectan a la


sincronización?

En lenguajes que poseen nombrado simétrico directo, una tarea servidor (o recurso
protegido) siempre conoce la identidad de la tarea cliente con la que está tratando. En
el nombrado asimétrico, sin embargo, el servidor no conoce la identidad del cliente.
Esto tiene la desventaja de que se pueden escribir servidores de propósito general, pero
puede dar lugar a pobre seguridad en el uso de los recursos. En particular, una tarea de
servidor puede querer conocer la identidad del cliente:

Una solicitud puede ser rechazada para evitar posibilidad de interbloqueo.

Puede garantizarse que los recursos solo se liberen por la tarea que los ha
obtenido previamente
10. ¿Cuáles son los diferentes enfoques existentes para tratar el interbloqueo?

Prevención: Una posible estrategia es tomar las medidas necesarias para eliminar alguna
de las cuatro condiciones que dan lugar al interbloqueo (exclusión mutua, retención y
espera, no apropiación y espera circular).

Evitación: Se puede conceder acceso a los recursos únicamente si el sistema se


mantiene en un estado seguro. Sin entrar en definiciones formales, un estado inseguro es
aquel que puede llevar a un interbloqueo. El algoritmo del banquero es un ejemplo bien
conocido que utiliza el método de evitación.

Detección y recuperación: Esta estrategia consiste, en lugar de tomar medidas a priori,


en actuar después de que aparezca un estado de interbloqueo. Para ello, es necesario
detectar la ocurrencia del problema e identificar los procesos y recursos implicados, y a
continuación tomar las medidas necesarias para restablecer un estado consistente. El
algoritmo se detección, que se ejecuta de forma periódica. Para eliminar el interbloqueo,
una vez detectado, se puede optar por terminar los procesos implicados (todos, o
alguno de ellos) o retroceder a un estado anterior (rollback), o bien por expropiar
recursos para llegar a un estado consistente. En cualquier caso, se debe evitar provocar
inanición en los procesos.

También podría gustarte