Cap 7 STR

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

EVALUACIÓN: Capítulo 7

1. La definición de acción atómica puede presentar pequeñas discrepancias. ¿En qué


se diferencia la idea de acción atómica estricta de la idea de acción atómica no
estricta?

Estricta: Las tareas que conforman una acción atómica no pueden comunicarse con otras
tareas mientras se lleva a cabo la acción. Si bien, los recursos necesarios para realizar la
acción atómica no pueden asignarse mediante instrucciones en el programa.

No estricta: Las tareas que conforman una acción atómica sí pueden comunicarse con
otras tareas externas cierta restricciones (que esta interacción no tenga efecto en la
acción atómica y siempre que el resto del sistema no reciba información). sobre el
proceso de la acción En este caso, los recursos pueden ser distribuidos por el
programa, ya que las tareas internas a la acción atómica pueden comunicarse con el
gestor de recursos.

2. ¿Qué quiere decir que una acción atómica es de dos fases?

En una situación ideal todos los procesos involucrados en una acción atómica
conservarían los recursos que necesitan hasta el final de la acción. No obstante, esta
premisa conlleva una gestión de recursos deficiente. Para evitarlo, se permite la
comunicación de la acción atómica con los gestores de recursos. En este marco, la
comunicación con el exterior se realiza en dos fases eludiendo posibles inconsistencias
o problemas de acceso a los datos. En primer lugar, se desarrolla la fase creciente, en la
cual se efectúan las peticiones de los recursos que se necesitan para hacer la acción
atómica. Una vez que los recursos han sido asignados y han comenzado las tareas,
comienza la fase decreciente en la que se realiza la liberación de recursos. En ningún
caso, una vez que la fase decreciente está activa, podrá haber nuevas peticiones de
recursos.

3. ¿Qué requisitos debe cumplir una acción para ser considerada atómica?

Límites bien definidos: La acción atómica debe tener un inicio, un final y una
demarcación. El comienzo es el lugar de cada tarea involucrada en la acción en el que
comienza dicha acción. Análogamente se describe el final. La demarcación separa las
tareas involucradas en la acción atómica del resto de procesos.
Indivisibilidad: Expresa que no hay intercambio de información entre las tareas internas de
la acción atómica y las tareas externas a ésta.

Anidamiento: Las acciones atómicas pueden estar anidadas siempre y cuando no se


solapen con otras acciones atómicas.

Concurrencia: Distintas acciones atómicas pueden ejecutarse de forma concurrente. Sin


embargo, dado que deben ser independientes, el resultado debe ser el mismo si las
acciones se ejecutan de forma secuencial.

4. ¿Cuáles son las principales diferencias entre los conceptos de acción atómica y
transacción atómica?

Una transacción atómica se define como una acción atómica que puede tener éxito o
fallar, entendiendo por fallar si, durante el desarrollo de la acción, ha ocurrido un error
del que ésta no ha podido recuperarse. Debe entonces realizarse una recuperación de
errores hacia atrás para evitar estados inconsistentes. Por ejemplo, considérese como
indivisible la acción de reservar un viaje en avión de ida y vuelta. En este caso, el sistema
deberá reservar ambos billetes, no puede coger únicamente uno de los vuelos.

Las principales diferencias serían:


Atomicidad de fallo: La transacción debe completarse satisfactoriamente o no tener
efecto.

Atomicidad de sincronización (o aislamiento):La transacción es indivisible, es decir,


ninguna otra transacción que se ejecute simultáneamente puede observar su ejecución
parcial.
Así pues, no todas las acciones pueden ser catalogadas como transacciones atómicas.
Por ejemplo, acciones que no estén protegidas no satisfacen la propiedad de
consistencia, ya que pueden ocurrir distintos fallos.

5. ¿Qué opciones puede elegir un proceso que, en el transcurso de una conversación,


intente comunicarse con otro proceso que no está activo?

Si alguno de los procesos intentara comunicarse con el que no está activo existen dos
opciones (recuperación de errores hacia atrás):
i) Bloqueo y espera.
ii) Continuar sin la comunicación. Esta aproximación trae consigo dos importantes
ventajas. Por una parte, las conversaciones pueden diseñarse de manera que la
participación no sea obligatoria. Por otro lado, se permite que los procesos con plazos
de tiempo puedan abandonar la conversación y, si fuera necesario, realizar acciones
alternativas.

6. ¿Qué excepción se genera cuando no existe ningún manejador en ninguno de


los procesos activos o alguno de los manejadores existente falla?
(Recuperación de errores hacia adelante)
atomic_action_failure. Esta excepción se produce cuando no existe ningún manejador en
ninguno de los procesos activos o cuando falla alguno de ellos, provocando un fallo en
la acción atómica. La excepción se reproducirá para todos los procesos involucrados en
la acción.

7. ¿Qué dos modelos suelen considerarse a la hora de hablar de notación


asíncrona? ¿Qué caracteriza a cada uno?

El modelo de reanudación de manejo asíncrono de notificaciones: también denominado


manejo de eventos, se comporta como una interrupción software. De esta forma, cada
proceso indica que interrupciones está dispuesto a manejar y cuando recibe cada
evento. Entonces, el manejador responde al evento asíncrono y, tras haber manejado el
evento, el proceso se reanuda.
El modelo de determinación o transferencia asíncrona :implica que cada proceso
especifica un dominio de ejecución donde podrá recibir notificaciones asíncronas que lo
finalicen. De esta forma, si una petición de transferencia asíncrona de control ocurre
dentro de un proceso, pero no dentro de su dominio de ejecución, el proceso no
recibirá la notificación y ésta será ignorada o encolada.
8. ¿Qué debe crearse para implementar la interfaz de una acción atómica en Java?

La implementación de acciones atómicas en Java está basada en el uso de interfaces.


Por ejemplo, si se quiere definir una acción atómica con N tareas, debe definirse una
interfaz accion_atomica_N donde se definen las carteleras de los métodos
correspondientes a las tareas. Para implementar la interfaz de una acción atómica de N
tareas se crea una clase que implementa tanto el controlador como el código de las N
tareas, dando lugar a la siguiente estructura:

9. ¿Qué especificación debe utilizarse para hacer uso de la notificación asíncrona en


Java?

Java real time soporta el modelo de reanudación mediante el manejo de eventos


asíncronos y el modelo de determinación mediante la transferencia asíncrona de control.
Sin embargo, en ambos casos debe tenerse en cuenta que estas especificaciones
forman parte de Java Real Time Specificactions y no de la especificación estándar de
Java.

10. En el contexto de notificación asíncrona en Java, ¿qué excepción lanzará un


método que es interrumpido?

AsynchronouslyInterruptedException (AIE): Es una excepción especial que se lanza en


respuesta al intento de realizar una transferencia asíncrona de control en un
RealtimeThread. Si un método declara que lanzará (thows) una AIE, ésta se producirá
cuando se invoque a RealtimeThread.interrupt() mientras ese método esté ejecutando o,
si está pendiente, cuando el control vuelva al mismo.

También podría gustarte