Procesamiento de Transacciones

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Procesamiento de Transacciones"

Transcripción

1 Procesamiento de Transacciones Material basado en los capítulos 12 y 13 del libro: Sistemas Distribuidos. CyD. G. Coulouris, J. Dollimore and T. Kindberg.

2 Transacciones Distribuidas Atomicidad Durabilidad Gestor de Transacciones Consistencia Commit Aislamiento Concurrencia Two phase commit Bloqueos Transacciones Planas Roll Back

3 Contenido Definiciones Básicas Transacciones Problemas del Control de Concurrencia Equivalencia Secuencial Operaciones Conflictivas Problemas causados por el aborto de las transacciones

4 Contenido Mecanismos de Control de Concurrencia Control de Concurrencia a través de bloqueos Control Optimista de la Concurrencia Ordenación por marcas de tiempo

5 Contenido Transacciones Distribuidas Sistema Manejador de Transacciones Transacciones Planas y Anidadas Commit y Abort en un Sistema Distribuido Control de Concurrencia Por Bloqueo Optimista Marcas Temporales

6 Contenido Recuperación de Transacciones

7

8 Exclusión mutua Comunicación entre hilos Java Wait: Un hilo llama a wait en un objeto para suspenderse él mismo y permitir a otro hilo ejecutar un método en ese objeto. Notify: Un hilo llama a notify en un objeto para informar a cualquier hilo que esta esperando en el objeto que ha cambiado alguno de sus datos. - Uso eficiente de los recursos (CPU) - Polítcasjustas que eviten starvation

9 Transacciones Una transacción es una colección de acciones que hacen transformaciones de los estados de un sistema preservando la consistencia del sistema Una transacción indica una operación atómica exitosa, tal como por ejemplo la transferencia de dinero de una cuenta a otra. Trasferencia: 1) Débito, 2) Crédito Ya sea una operación compuesta o no.

10 Definiciones Consiste en una secuencia de operaciones que se ejecuta en forma atómica (indivisible) Todo o Nada Aislamiento

11 Transacciones Solicitudes atómicas: Aislamiento Efectos intermedios no visibles Todo o Nada Todas las operaciones o ninguna Atomicidad de fallo, durabilidad. Objetos Recuperables

12 Propiedades ACID de las Transacciones Atomicidad (Atomicity): todo o nada. Consistencia (Consistency): una transacción hace pasar el sistema de un estado consistente a otro. Es generalmente responsabilidad de los programadores de servidores y clientes el asegurar que los datos queden en un estado consistente. Aislamiento (Isolation) efecto equivalente a una ejecución secuencial. Durabilidad (Durability) los efectos de una transacción consumada no se pierden, perduran.

13 Implementación de las Transacciones El aislamiento se garantiza por protocolos de control de concurrencia La atomicidad y durabilidad se garantizan mediante protocolos de recuperación.

14 Modelo de fallo para Transacciones Lampson propuso un modelo de fallos para transacciones distribuidas que considera los fallos en: Discos, Servidores y Comunicación. En el modelo se intenta que los algoritmos trabajen correctamente en presencia de fallos predecibles, pero no se hacen consideraciones cuando ocurre un desastre. El modelo establece lo siguiente: Las escrituras pueden fallar (no se escribe nada, o se escribe un valor incorrecto). En este caso las lecturas al disco pueden detectar (mediante una suma de comprobación) cuando un bloque de datos es incorrecto.

15 Modelo de fallo para Transacciones Los servidores pueden fallar ocasionalmente. Cuando el servidor se reemplaza por otro, el nuevo proceso debe realizar un proceso de recuperación utilizando la memoria permanente y la información que le puedan suministrar otros procesos. Las fallas pueden ocurrir en cualquier instante de tiempo, incluso durante un proceso de recuperación. Puede existir un retardo arbitrario antes de que llegue un mensaje. Un mensaje se puede perder, duplicar o modificar. Se pueden detectar mensajes modificados. Los mensajes falsificados y corruptos que no se puedan detectar se les considera como desastres.

16 C C C TPS Transaction Manager scheduler Estructura de un Sistema de Manejo de Transacciones En los servidores se puede añadir manejo transaccional, mediante un SMT. Este Coordinador o manejador, provee operaciones para el manejo de las transacciones. Data Manager Recovery Manager Cache Manager

17 Estructura de un Sistema de Manejo de Transacciones El manejador de transacciones (Coordinador) dá a cada transacción un identificador TID Operaciones disponibles al Cliente: tid BeginTransaction() para el comienzo de una transacción, devuelve el TID EndTransaction(tid), devuelve abort o commit dependiendo si la transacción se ha podido o no realizar Abort(tid): El cliente puede abortar la transacción y todas las actualizaciones deben eliminarse.

18 Historia de vida de una Transacción Con éxito Abortado por el cliente Abortado por el servidor AbreTransacción AbreTransacción AbreTransacción Operación Operación Operación Operación Operación Operación El servidor aborta la transacción Operación Operación ERROR en la operación informado al cliente CierraTransacción AbortaTransacción

19 Condiciones de Terminación Una transacción siempre termina, aun en la presencia de fallas. Si una transacción termina de manera exitosa se dice que la transacción hace un commit (consumación) Si la transacción se detiene sin terminar su tarea, se dice que la transacción aborta. Cuando la transacción es abortada, su ejecución se detiene y todas las acciones ejecutadas hasta el momento se deshacen (undone) regresando a la base de datos al estado antes de su ejecución. A esta operación también se le conoce como rollback.

20 Condiciones de Terminación Las versiones provisionales se transfieren a los objetos sólo cuando una transacción hace commit; en este caso se transfieren también a memoria permanente. Cuando una transacción aborta, sus versiones provisionales se borran.

21 Historia de vida de una Transacción Ruptura de un proceso: Acciones en el servidor: (Falla en un Servidor) se reemplaza, se abortan todas las transacciones que no han finalizado, usa un procedimiento de recuperación para obtener los valores de transacciones consumadas. (Falla en un Cliente): los servidores dan un tiempo de expiración y abortan las transacciones que no hayan finalizado en ese tiempo.

22 Historia de vida de una Transacción Ruptura del proceso: Acciones en el cliente: Si falla el servidor, al cliente, después de un tiempo se le devolverá un código de error. El cliente debe tener un plan para reintentar la operación o abandonar la tarea que estaba realizando.

23 Estructura de las Transacciones Planas: consisten de una secuencia de operaciones primitivas encerradas entre las palabras clave Begin Transaction y End Transaction. Por ejemplo, Begin_transaction Reservación... End transaction

24 Estructura de las Transacciones Anidadas: las operaciones de una transacción pueden ser transacciones. Por ejemplo, Begin_transaction Reservación... Begin_transaction Vuelo... end. {Vuelo}... Begin_transaction Hotel end {Hotel} End_transaction Reservación

25 T: Transacción de Nivel Superior subtransacción T1: Commit provisional Commit Abort T2: T11 T12 T21 Commit provisional Commit provisional T211 Commit provisional Commit provisional

26 Transacciones anidadas Subtransacción Atómica Subtransacciones del mismo nivel concurrentes pero sus accesos a objetos comunes son secuencializados. Pueden consumar o abortar independientemente

27 Transacciones Anidadas Una transacción anidada dentro de otra transacción conserva las mismas propiedades que la de sus padres, esto implica, que puede contener así mismo transacciones dentro de ella. Existen restricciones obvias para una transacción anidada: Debe empezar después que su padre y debe terminar antes que él. El commit de una subtransacción es condicional al commit de su padre, en otras palabras, si el padre de una o varias transacciones aborta, las subtransacciones hijas también serán abortadas.

28 Transacciones Anidadas Las transacciones anidadas proporcionan un nivel más alto de concurrencia entre transacciones. Las transacciones de un mismo nivel se pueden ejecutar en forma concurrente pero sus accesos se deben secuencializar.

29 Transacciones Anidadas Las transacciones pueden hacer commit o abort de forma independiente. Cuando una subtransacción aborta, la transacción padre puede elegir una sub-transacción alternativa para completar su tarea.

30 Transacciones Anidadas Reglas para el commit de transacciones anidadas: Una transacción puede hacer commit o abort sólo después que han terminado las transacciones hijas. Cuando una subtransacción finaliza, decide de forma independiente si hace un commit provisional o aborta. Una decisión de abortar es definitiva.

31 Transacciones Anidadas Reglas para el commit de transacciones anidadas (cont): Cuando un padre aborta, todas las subtransacciones abortan (aún cuando éstas hayan realizado un commit provisional) Cuando una subtransacción aborta, el padre puede decidir abortar o no. Si las transacciones de alto nivel hacen COMMIT, se pueden consumar también todas las subtransacciones que hayan realizado un COMMIT provisional. Los efectos de una subtransacción no son permanentes hasta que no se consuma la transacción de nivel superior

32 Commit T: Transacción de Niver Superior T1: Commit provisional Abort T2: T11 T12 T21 Commit provisional Commit provisional T211 Commit provisional Commit provisional

33 Problemas de la Concurrencia Las aplicaciones de BD manejan una gran cantidad de datos persistentes, es decir datos almacenados en dispositivos de memoria secundaria. Un usuario típico de una BD, realiza queries sobre los datos, como por ejemplo: cuál es el saldo actual de mi cuenta bancaria??

34 Necesidad de Concurrencia En algunos sistemas no es crítico que los datos estén actualizados al instante; dichas actualizaciones pueden diferirse y hacerse en batch. Este enfoque simplifica enormemente el manejo de los datos. Por ejemplo algunos Bancos a finales de los noventa, hacían las actualizaciones en las cuentas de los usuarios por la noche La tendencia actual en los bancos es la de mantener información actualizada al instante.

35 Necesidad de Concurrencia En algunos sistemas las actualizaciones no pueden diferirse: por ejemplo un sistema de reserva de líneas aéreas o de compra de entradas al teatro. Se necesita saber inmediatamente si se ha podido reservar el asiento. En este tipo de aplicaciones pueden llegar requerimientos simultáneos de muchos clientes: Necesidad de concurrencia y de los problemas que esto acarrea. La concurrencia, permite también realizar procesos más eficientes.

36 Propiedades ACID Un servidor que soporta transacciones debe sincronizar las operaciones para asegurar que se satisface el requisito de aislamiento. Una forma de hacerlo es serializando o secuencializando las operaciones. Esto puede ser inaceptable desde el punto de vista del desempeño. La idea de los servidores es maximizar la concurrencia, se permitirá entonces que se entremezclen las transacciones (o sus componentes), si el efecto es el mismo que si se ejecutarán secuencialmente. Es decir son secuencialmente equivalentes.

37 Problemas que trae la Concurrencia Actualizaciones perdidas Recuperaciones Inconsistentes Solución: equivalencia secuencial Problemas que trae el aborto de las transacciones Lecturas sucias Escrituras prematuras Abortos en Cascada Los protocolos tratarán de evitar estos problemas

38 Los balances iniciales de A, B y C son 100$, 200$ y 300$ Actualizaciones Perdidas: T: balance = b.obtenbalance(); b.crédito(balance*1.1) a.debito(balance/10) U: balance = b.obtenbalance(); b.crédito(balance*1.1) c.debito(balance/10) balance = b.obtenbalance(); 200$ b.crédito(balance*1.1) 220$ a.débito(balance/10) 80$ balance = b.obtenbalance(); 200$ b.crédito(balance*1.1) 220$ c.débito(balance/10) 280$ El valor final de B ha debido ser 242$, no 220$. U leyó un valor antes de que T lo actualizara.

39 El problema viene por paralelizar, o pretender que las 2 transacciones se ejecuten concurrentemente cuando deben ejecutarse en forma secuencial.

40 Los balances iniciales de A, B son de 200$ Recuperaciones Inconsistentes V: a.débito(100) b.crédito(100) W: Unasucursal.totalSucursal(); /* El valor inicial de ambas cuentas es 200 */ a.débito(100) $100 b.crédito(100) $300 Total = a.obtenbalance(); total = total + b.balance(); // total=300 total = total + c.balance(): W vé el valor nuevo de a y el valor viejo de b. No se está cumpliendo la propiedad de aislamiento.

41 Control de Concurrencia: Solución al problema de actualizaciones perdidas. balance = b.obtenbalance(); 200$ b.crédito(balance*1.1) 220$ a.débito(balance/10) balance = b.obtenbalance(); 220$ b.crédito(balance*1.1) 242$ c.débito(balance/10) -Se puede conseguir serialización o algo equivalente (equivalencia secuencial) secuenciando el acceso al objeto. -La tabla es un ejemplo de secuenciación + cierto grado de concurrencia.

42 Serialización de Transacciones y Equivalencia Secuencial Operaciones conflictivas: 2 operaciones son conflictivas cuando sus efectos combinados dependen del orden en el cual fueron ejecutadas. Se consideran conflictivas las siguientes operaciones: read read no conflictivas read write conflictivas write write conflictivas Cuando dos o más transacciones son conflictivas es necesario su serialización para asegurar la consistencia de los datos después de su ejecución.

43 Operaciones Conflictivas (no conmutativas) En el caso de un objeto bancario: Crédito y débito a una cuenta son conmutativas? (el valor final es el mismo) crédito y crédito son conmutativas débito y débito son conmutativas read-balance y crédito no son conmutativas read-balance y débito no son conmutativas.

44 Control de Concurrencia Equivalencia secuencial: Para cualquier par de transacciones es posible determinar un orden de operaciones conflictivas sobre objetos accedidos por ambas. La equivalencia secuencial se logra de la siguiente forma: a. - Todos los accesos de una transacción a un objeto particular (operaciones conflictivas) deben secuenciarse con respecto a su acceso por otras transacciones.

45 Control de Concurrencia Equivalencia secuencial: b. Todos los pares de operaciones conflictivas de dos transacciones se deben ejecutar en el mismo orden sobre los objetos a los que ambas acceden. Si las transacciones T y U acceden a los objetos i y j en forma conflictiva, Se requiere: T acceda i antes que U y T accede j antes que U U acceda a i antes que T y U acceda a j antes que T

46 T U A B C D Todos los objetos sobre los cuales existan operaciones conflictivas tienen que ser accedidos por las transacciones en el mismo orden. i: T luego U j: U luego T

47 Control de Concurrencia Transacciones A B C A B C Operaciones conflictivas Delay Ejecución Operaciones compuestas Serialización de operaciones conflictivas

48 Control de Concurrencia T T: x=lee(i); escribe(i,10); escribe(j,20) U: y=lee(j); escribe(j,30); z=lee(i) U i: T luego U j: U luego T x = lee(i) escribe(i,10) y = lee(j) Escribe(j,30) escribe(j,20) Z=lee(i) No es secuencialmente equivalente porque los pares de operaciones conflictivas No se hacen en el mismo orden en todos los objetos. Aunque si se cumple la Primera condición. T lee i antes que U lo acceda, T no escribe j antes de que U la acceda

49 Control de concurrencia Ejercicio 12.9 del libro: Un servidor gestiona los objetos a 1, a 2, a n. El servidor proporciona dos operaciones a sus clientes: lee(i) devuelve el valor de a i escribe (i, valor) asigna Valor a a i Las transacciones T y U se definen de la siguiente forma: T: x=lee(j), escribe(j,44); U: x=escribe(i,55); escribe (j,66);

50 Control de concurrencia Un servidor gestiona los objetos a 1, a 2, a n. El servidor proporciona dos operaciones a sus clientes: lee(i) devuelve el valor de a i escribe (i, valor) asigna Valor a a i Las transacciones T y U se definen de la siguiente forma: T: x=lee(j); y=lee(i); escribe(j,44); escribe (i,33); U: x=lee(k); escribe(i,55); y=lee(j); escribe (k,66); Proporcione tres solapamientos serialmente equivalentes de las transacciones T y U

51 Control de Concurrencia: Problemas que generan las operaciones conflictivas Recuperaciones Inconsistentes V: a.débito(100) b.crédito(100) W: Unasucursal.totalSucursal(); /* El valor inicial de ambas cuentas es 200 */ a.débito(100) $100 b.crédito(100) $300 Total = a.obtenbalance(); total = total + b.balance; total = total + c.balance(): V accede a «a» antes que W. V no accede a b antes de W. a: V, W b: W, V

52 Solución al problema de Recuperaciones Inconsistentes. V: a.extrae(100) $100 b.deposita(100) $300 W: Total = a.obtenbalance(); total = total + b.balance; total = total + c.balance(): Solución: Ejecución Secuencial a: V,W b: V, W

53 Problemas que trae la Concurrencia Actualizaciones perdidas Recuperaciones Inconsistentes Problemas que trae el aborto de las transacciones Lecturas sucias Escrituras prematuras Abortos en Cascada Los protocolos trataran de evitar estos problemas

54 Control de Concurrencia: Abortos, más sobre la propiedad de aislamiento. No obstante pueden aparecer problemas aún en presencia de ejecuciones secuencialmente equivalentes. Esto es porque no hemos considerado que una transacción puede abortar. Se ha demostrado que la ejecución secuencialmente equivalente es necesaria pero no suficiente para la ejecución concurrente de transacciones.

55 Control de Concurrencia Las transacciones pueden abortar, ante esta situación surgen otros problemas: lecturas sucias y escrituras prematuras Lecturas Sucias Transacción T Transacción U Lectura Sucia a.getbalance() (100$) a.crédito(+10) (110$) a.getbalance() (110$) a.crédito(+20) (130$) commit aborta Se restaura el valor de a a 100. U tomó el valor 110$ que ahora no es válido. - La estrategia para la recuperación es retrasar la acción de commit de U hasta que T finalice - Esto conlleva a la posibilidad de Abortos en Cascada (si T aborta, U debe abortar también)

56 Control de Concurrencia Una forma de evitar abortos en cascada es permitir a las transacciones únicamente leer objetos que fueron escritos por transacciones consumadas. Es decir, implementar de forma estricta la propiedad de aislamiento.

57 Control de Concurrencia Escrituras Prematuras T: a.crédito(+5) U: b.crédito(+5) a= 100$ a. Crédito(+5) 105$ a.crédito(+5) 110$ a= 105$ Algunos sistemas de BD implementan la acción Abort restaurando las imágenes Anteriores. Si U aborta y T se consuma el balance debe ser de 105$. Correcto. U se consuma y T Aborta: El balance debería estar en 105$, pero se coloca la imagen anterior a T que es 100$. La escritura de U es prematura, antes de que T haga su commit.

58 Control de Concurrencia Para garantizar resultados correctos en un esquema de recuperación que utiliza imágenes anteriores, las operaciones de escritura se deben atrasar hasta que las transacciones anteriores que actualizaron los mismos objetos hayan hecho commit o abort (U no debería escribir)

59 Control de Concurrencia La ejecución de las transacciones se llama estricta si las lecturas o escrituras de los objetos se retrasa hasta que todas las transacciones que previamente escribieron el objeto hayan hecho commit o abort. La ejecución estricta de las transacciones hace cumplir la propiedad de aislamiento.

60 Control de Concurrencia Para que un servidor está en capacidad de deshacer cambios si una transacción aborta, debe diseñarse de forma que las actualizaciones puedan ser eliminadas. Todas las operaciones de actualización se hacen sobre versiones provisionales de los objetos en memoria volátil. A cada transacción se le proporciona su conjunto privado de versiones provisionales de los objetos que ha alterado. Cuando una transacción se consuma, las VP se llevan a almacenamiento permanente.

61 C C C TPS Transaction Manager scheduler Data Manager Recovery Manager Cache Manager Estructura de un Sistema de Manejo de Transacciones El Manejador de Transacciones valida las peticiones de los clientes y pasa la transacción al planificador. El Planificador usa alguna estrategia para permitir una ejecución concurrente que sea secuencialmente equivalente. Manejador de Datos: transferir los datos a memoria principal, escribir actualizaciones, recuperarse ante fallas.

62

63 Contenido Mecanismos de Control de Concurrencia Control de Concurrencia a través de bloqueos Control Optimista de la Concurrencia Ordenación por marcas de tiempo Comparación de métodos.

64 Control de Concurrencia: Bloqueos balance = b.obtenbalance(); 200$ b.ponbalance(balance*1.1) 220$ a.extrae(balance/10) balance = b.obtenbalance(); 220$ b.ponbalance(balance*1.1) 242$ c.extrae(balance/10) -Se puede conseguir equivalencia secuencial secuenciando el acceso al objeto. -La tabla es un ejemplo de secuenciamiento + cierto grado de concurrencia. -Una forma sencilla de serializar es a través del uso de bloqueos exclusivos. - El acceso a un objeto puede ser restringido mediante un lock. Sólo la transacción que tenga el lock sobre el objeto podrá hacer operaciones sobre él.

65 Control de Concurrencia: Bloqueos Exclusivos T: balance = b.obtenbalance(); b.ponbalance(balance*1.1) a.extrae(balance/10) U: balance = b.obtenbalance(); b.ponbalance(balance*1.1) c.extrae(balance/10) BeginTransaction balance = b.obtenbalance(); Bloquea B b.crédito(balance*1.1) a.débito(balance/10) Bloquea A End Transaction Desbloquea A,B Begin Transaction balance = b.obtenbalance(); Espera por B Concedido B b.obtenbalance(); b.crédito(balance*1.1) c.débito(balance/10) Bloquea C End Transaction Desbloquea B,C

66 Control de Concurrencia: Bloqueos Cada vez que una transacción necesita leer o escribir en un objeto, solicita un lock sobre el mismo hasta que la transacción culmine exitosamente (commit). Cualquier otra transacción que desee hacer alguna operación sobre dicho objeto tendrá que esperar hasta que el mismo sea desbloqueado.

67 Control de Concurrencia:Bloqueos Para lograr la equivalencia secuencial, todos los pares de operaciones conflictivas se deben hacer en el mismo orden. Para asegurar esto, no está permitido a una transacción adquirir un nuevo bloqueo después de que ha liberado alguno. Existen dos fases: Adquirir bloqueos (Fase de crecimiento) Liberar bloqueos (Fase de Acortamiento)

68 Algoritmo de locking o bloqueo Two Phase Locking: obtención y liberación Durante la fase de obtención, la transacción trata de obtener todos los locks que necesite. Si no es posible obtener alguno, entonces espera. La segunda fase comienza cuando la transacción libera alguno de los locks, a partir de ese momento no podrá solicitar ningún otro lock (si lo hace, será abortada). Desventaja: si una transacción en la fase de liberación había desbloqueado algunos objetos y los mismos habían sido accedidos por otras transacciones antes de que la primera hiciera commit, entonces las demás transacciones deberían abortar (esto es abortos en cascada). Pudiera ocurrir: lecturas sucias o escrituras prematuras.

69 Algoritmo de locking o bloqueo Para evitar esto, se mantienen todos los bloqueos aplicados a los objetos hasta que la transacción que los posee se consuma (commit) o aborte. Esto se llama Bloqueo en dos fases estricto. La fase de liberación se realiza sólo cuando la transacción hace commit Ventaja: evita los abortos en cascada Desventajas: El nivel de paralelismo se degrada En algunos casos es inadmisible.

70 Algoritmo de locking o bloqueo Two Phase Locking Strict Two Phase Locking Fase de crecimiento Fase de liberación Fase de crecimiento Fase de liberación number of locks number of locks Se liberan todos los locks Time Time

71 Control de Concurrencia: Bloqueos Para mejorar la concurrencia: la porción de objetos a la que se debe secuenciar el acceso debe ser tan pequeño como sea posible. Problema de los lectores y escritores: podemos tener muchos lectores accediendo concurrentemente a los datos.

72 Control de Concurrencia: Bloqueos Nivel de granularidad: tiene que ver con el tamaño del objeto o dato que se está bloqueando. A mayor granularidad (mayor fineza del grano), más pequeño es el tamaño del objeto: ejm: tabla, registro, campo, etc. Mientras mayor sea la fineza del grano, mejor será el grado de paralelismo/concurrencia, pero mayor será la complejidad del sistema. El bloqueo puede ser a nivel de item, página, archivo, base de datos (donde item representa el grano más fino y base de datos corresponde al grano más grueso)

73 Algoritmo de locking o bloqueo lock otorgado Ninguno read write lock solicitado read -> OK - write -> OK read -> OK - write -> Espera read -> Espera - write -> Espera Una mejora: utilizar locks de escritura y locks de lectura para ofrecer mayor paralelismo al permitir que se realicen concurrentemente transacciones que realizan operaciones no conflictivas. Los bloqueos de lectura se llaman también bloqueos compartidos.

74 Bloqueos Reglas de conflicto Si una transacción T ha realizado una operación de lectura en un objeto, entonces una transacción concurrente U no debe escribir ese objeto hasta la consumación de T, o que aborte. Si una transacción T ha realizado una operación de escritura en un objeto, entonces una transacción concurrente U no debe leer o escribir ese objeto hasta la consumación de T, o que aborte.

75 Bloqueos Uso de bloqueos en un sistema de bloqueos de dos fases estricto. 1. Cuando una operación accede a un objeto en una transacción: a) Si el objeto no estaba bloqueado, se bloquea y comienza la operación. b) Si el objeto tiene activado un bloqueo conflictivo con otra transacción, la transacción debe esperar hasta que esté desbloqueado. c) Si el objeto tiene activado un bloqueo no conflictivo de otra transacción, se comparte el bloqueo y comienza la operación. d) Si el objeto ya ha sido bloqueado en la misma transacción, el bloqueo será promovido si es necesario y comienza la operación. (Donde la promoción está impedida por un bloqueo conflictivo, se utiliza la regla (b)). 2. Cuando una transacción se consuma o aborta, el servidor desbloquea todos los objetos bloqueados por la transacción.

76 Algoritmo de locking o bloqueo Para asegurar que se sigan las reglas de solicitud de locks para los objetos, el cliente no tiene acceso a las operaciones de bloqueo. Los locks son adquiridos y liberados por el administrador de transacciones. Todo lo concerniente al control de concurrencia es transparente para el programador.

77 Implementación de Bloqueos La concesión de bloqueos será implementado por un objeto separado del servidor que llamaremos gestor de bloqueos. El Gertor de Bloqueos mantiene en una estructura de datos los locks concedidos. Cada bloqueo es una instancia de la clase Bloqueo que mantiene la siguiente información: El identificador del objeto bloqueado. Los identificadores de las transacciones que mantienen actualmente el bloqueo Un tipo de bloqueo.

78 Bloqueos public class Bloqueo { private Object objeto; private Vector propietarios; } } // El objeto que es protegido por el bloqueo // las TID de los propietarios private TipoBloqueo tipobloqueo; // el tipo actual public synchronized void adquiere(idtrans trans, TipoBloqueo untipobloqueo){ while(/* otra transacción posea el bloqueo en modo conflictivo */) { try { wait( ); }catch (InterruptedException e) {/*...*/ } } if (propietarios.estavacio( )) { // ningún TID posee un bloqueo propietarios.agregaelemento(trans); tipobloqueo = untipobloqueo; } else if (/*otra transacción posee el bloqueo, lo comparte*/ ) ) { if (/*esta transacción no es un poseedor*/) propietarios.agregaelemento(trans); } else if (/* esta transacción es un poseedor pero necesita más de un bloqueo exclusivo*/) tipobloqueo.promueve( );

79 Bloqueos public synchronized void libera (IDTrans trans ){ holders.removeelement(trans); // elimina este poseedor // establece el tipo de bloqueo a ninguno notifyall( ); } }

80 Bloqueos public class GestorBloqueo { private Hashtable losbloqueos; public void ponbloqueo(object objeto, IDTrans trans, TipoBloqueo tipobloqueo){ Bloqueo bloqueoencontrado; synchronized (this){ // busca el bloqueo asociado con el objeto // si no hay ninguno, lo crea y lo agrega a la tabla de dispersión } bloqueoencontrado.agrega(trans, tipobloqueo); } //sincroniza este dado que queremos eliminar todas las entradas public synchronized void desbloqueo(transid trans) { Enumeration e = losbloqueos.elements( ); while(e.hasmoreelements( )){ Bloqueo unbloqueo = (Bloqueo)(e.nextElement()); if(/* trans is a holder of this lock*/ ) unbloqueo.libera(trans); } } }

81 Bloqueo para Transacciones Anidadas El propósito de un esquema de bloqueo es serializar el acceso a los objetos de modo que: 1. Cada conjunto de transacciones anidadas sea la única entidad a la que se debe impedir ver los efectos de otro conjunto de transacciones anidadas 2. Se debe impedir que cada transacción en un conjunto de transacciones anidadas observe los efectos parciales de otras transacciones del conjunto.

82 Bloqueo para Transacciones Anidadas La primera regla se logra disponiendo que cada bloqueo que adquiere una subtransacción es heredado por su padre cuando esta finaliza (herencia del hijo al Padre). Esto garantiza que puedan mantenerse los bloqueos hasta que se haya consumado o abortado la transacción a nivel superior.

83 Bloqueo para Transacciones Anidadas La segunda regla se hace cumplir así: No se permite la ejecución concurrente de padre e hijos. Si una transacción padre tiene un bloqueo sobre el objeto, retiene el bloqueo mientras el hijo se ejecuta. La transacción hijo adquiere temporalmente el bloqueo. Se permite la ejecución concurrente de transacciones al mismo nivel, por lo que cuando éstas accedan a los mismos objetos el esquema de bloqueo debe secuenciar el acceso.

84 Bloqueos (transacciones anidadas) Reglas que describen la adquisición y liberación del bloqueo: Para que una subtransacción adquiera un bloqueo de lectura sobre un objeto, ninguna transacción activa puede tener un bloqueo de escritura sobre ese objeto, y los únicos que retienen un bloqueo de escritura son sus ascendientes.

85 Bloqueos (transacciones anidadas) Para que una subtransacción adquiera un bloqueo de escritura sobre un objeto, ninguna otra transacción activa puede tener un bloqueo de lectura o escritura sobre ese objeto, y los únicos que retienen los bloqueos de lectura y escritura en ese objeto son sus ascendientes. Cuando se consuma una transacción, sus bloqueos son heredados por su padre, permitiendo al padre retener los bloqueos del mismo modo que el hijo. Cuando una subtransacción aborta, sus bloqueos son eliminados. Si el padre todavía continúa manteniendo los bloqueos puede continuar haciéndolo. Las transacciones al mismo nivel que acceden a los mismos objetos realizan turnos para adquirir los objetos retenidos por sus padres.

86 Commit T: Transacción de Niver Superior T1: Commit provisional Abort T2: T11 T12 T21 Commit provisional Commit provisional T211 Commit provisional Commit provisional Desean bloqueo

87 Commit T: Transacción de Niver Superior T1: Commit provisional Abort T2: T11 T12 T21 Commit provisional Commit provisional T211 Commit provisional Commit provisional Adquiere bloqueo que le pasa a T11 para su ejecución. T11 Lo devuelve cuando finaliza. Cuando T1 finaliza devuelve el bloqueo a T Y es en ese momento cuando T2 lo puede adquirir.

88 Algoritmo de locking o bloqueo El problema del algoritmo de bloqueo es que puede ocasionar deadlocks o Interbloqueos. T U a.crédito() b.débito bloqueo de escritura para A Espera por U Bloqueo en B b.crédito() bloqueo de escritura para B a.débito(200) Espera por T. Bloquea en A

89 Condiciones para un bloqueo: Interbloqueos 1.- Condición de exclusión mutua. Cada recurso está asignado a un único proceso o está disponible. 2.- Condición de posesión y espera (Hold and Wait).Los procesos que tienen, en un momento dado, recursos asignados con anterioridad, pueden solicitar nuevos recursos. 3.- Condición de no apropiación. Un proceso no puede ser forzado a dejar los recursos otorgados con anterioridad. El proceso que los posee debe liberarlos en forma explícita. 4.- Condición de espera circular.debe existir una cadena circular de dos o más procesos, cada uno de los cuales espera un recurso poseído por el siguiente miembro de la cadena.

90 Poseído por R1 Espera por T T Espera por R2 Poseído por Grafo de Espera Circular: Si hay un ciclo en el grafo significa que hay interbloqueo (deadlock).

91 Tratamiento de Interbloqueos Políticas frente a los bloqueos: 1.- Detectar: dejar que suceda y luego recuperarse. 3.- Evitar que estructuralmente sea posible el deadlock, es decir, asegurar que al menos una de las cuatro condiciones no se cumpla. (EM, N Apropiación, H and W, Circular Wait) 4.- Predecir: Algoritmo del Banquero: Se necesita conocer los requerimientos de recursos del proceso. (No es aplicable en sistemas distribuidos por su complejidad de conocer los requerimientos de recursos de los procesos con anterioridad).

92 Tratamiento de Interbloqueos Políticas frente a los bloqueos: 1.- Detectar: Se pueden detectar a través de los grafos. Una vez detectado el ciclo se debe escoger una transacción y abortarla. La elección de la transacción a abortar no es sencilla. Un factor que puede ser tomado en cuenta es su edad. La presencia de ciclos en el grafo se puede detectar cada vez que se añade un arco o cada cierto tiempo para disminuir el overhead.

93 Algoritmos de Prevención Se basan en asignar a cada transacción un timeout: A cada bloqueo se le proporciona un tiempo limitado en el que es invulnerable. Después de ese tiempo es vulnerable. Si ninguna transacción está compititnedo por el objeto, un objeto con bloqueo vulnerable continua bloqueado. Sin embargo, si cualquier otra transacción está esperando por acceder a un objeto con un bloqueo vulnerable, se rompe el bloqueo y se reanuda la transacción que esperaba. La transacción cuyo bloqueo se ha roto, normalmente aborta.

94 Serialización de Transacciones a través de locks. El manejo de bloqueos (asignación, liberación) causan un overhead adicional, lo mismo que los algoritmos de prevención o detección Disminuyen la concurrencia.

95 EJERCICIO T U V W a.deposita(100) b.deposita(100) b.extrae(100) c.extrae(100) a.extrae(100) c.deposita(100) d.deposita(100) b.deposita(100) d.deposita(100) Bloqueo indefinido?

96 Incrementando la concurrencia en esquemas de bloqueo Bloqueos de dos versiones La activación de bloqueos exclusivos se retrasa hasta que una T se consuma Bloqueos jerárquicos Bloqueos de granularidad mixta

97 Incrementando la concurrencia en esquemas de bloqueo Bloqueos de dos versiones Esquema optimista que permite que una transacción escriba versiones tentativas. Las operaciones de lectura sólo esperan si otra transacción se está consumando actualmente sobre el mismo objeto. Tres tipos de bloqueo: Bloqueo de lectura Bloqueo de escritura Bloqueo de consumación

98 Incrementando la concurrencia en esquemas de bloqueo Bloqueos de dos versiones Para un objeto Bloqueo que se establece Lectura Escritura Consumación Bloqueo ya establecido Ninguno Bien Bien Bien Lectura Bien Bien Espera Escritura Bien Espera Consumación Espera Espera

99 Incrementando la concurrencia en esquemas de bloqueo Bloqueos Jerárquicos En algunas aplicaciones la granularidad adecuada para una operación no es apropiada para otra. Para reducir la sobrecarga, se permiten que coexistan bloqueos de granularidad mezclados. Propuesta de Gray: La activación de un bloqueo padre tiene el mismo efecto que la activación de todos los bloqueos hijo equivalentes. Intención de bloqueo

100 Incrementando la concurrencia en esquemas de bloqueo Bloqueos Jerárquicos Sucursal A B C Cuenta Semana Lunes Martes Miércoles Jueves Viernes Intervalos de tiempo 9:00 10:00 10:00 11:00 11:00 12:00 12:00 13:00 13:00 14:00 14:00 15:00 15:00 16:00

101 Incrementando la concurrencia en esquemas de bloqueo Bloqueos Jerárquicos Para un objeto Bloqueo que se va a activar Lectura Escritura I-Lectura I-Escritura Bloqueo ya activado Ninguno Bien Bien Bien Bien Lectura Bien Espera Bien Espera Escritura Espera Espera Espera Espera I-Lectura Bien Espera Bien Bien I- Escritura Espera Espera Bien Bien Tabla de compatibilidad para bloqueos jerárquicos.

Procesamiento de Transacciones

Procesamiento de Transacciones Procesamiento de Transacciones Material basado en los capítulos 12 y 13 del libro: Sistemas Distribuidos. CyD. G. Coulouris, J. Dollimore and T. Kindberg. Contenido Definiciones Básicas Sincronización

Más detalles

Procesamiento de Transacciones

Procesamiento de Transacciones Contenido Procesamiento de ransacciones Material basado en los capítulos 12 y 13 del libro: Sistemas Distribuidos. CyD. G. Coulouris, J. Dollimore and. Kindberg. Definiciones Básicas Sincronización ransacciones

Más detalles

Transacción. Introducción a los conceptos del Procesamiento de las Transacciones. Monousuarios vs. Multiusuarios. Pablo Turjanski.

Transacción. Introducción a los conceptos del Procesamiento de las Transacciones. Monousuarios vs. Multiusuarios. Pablo Turjanski. Transacción a los conceptos del Procesamiento de las Transacciones Definición Una transacción es un conjunto de instrucciones que se ejecutan formando una unidad lógica de procesamiento. Una transacción

Más detalles

CAPITULO 6. Control de Concurrencia y Recuperación

CAPITULO 6. Control de Concurrencia y Recuperación CAPITULO 6 Control de Concurrencia y Recuperación 6.1 Protocolos de Bloqueo Un protocolo de bloqueo nace de la necesidad creada cuando una transacción solicita un bloqueo de un modo particular sobre un

Más detalles

Transacciones Distribuidas. Basado en el cap. 13 del texto de G. Couloris, J. Dollimore y T. Kindberg. Sistemas Distribuidos. Conceptos y Diseño.

Transacciones Distribuidas. Basado en el cap. 13 del texto de G. Couloris, J. Dollimore y T. Kindberg. Sistemas Distribuidos. Conceptos y Diseño. Transacciones Distribuidas Basado en el cap. 13 del texto de G. Couloris, J. Dollimore y T. Kindberg. Sistemas Distribuidos. Conceptos y Diseño. Contenido Transacciones Distribuidas Transacciones Planas

Más detalles

4.6.- Integridad: Control de concurrencia.

4.6.- Integridad: Control de concurrencia. 4.6.- Integridad: Control de concurrencia. 4.6.1.- Introducción 4.6.2.- Técnicas de Bloqueo. 4.6.2.1.- Bloqueo (variable cerrojo) Tipos, protocolos Problemas. Interbloqueo Granularidad 4.6.2.2.- Marcas

Más detalles

Jose Manuel Perez Daniel Futrillé Prof. Ana Aguilera

Jose Manuel Perez Daniel Futrillé Prof. Ana Aguilera Jose Manuel Perez Daniel Futrillé Prof. Ana Aguilera 1 Introducción 2 Concepto de Transacciones 2.1 Propiedades de las transacciones 2.2 Condiciones de terminación de una transacción 2.3 Caracterización

Más detalles

TRANSACCIONES DISTRIBUIDAS

TRANSACCIONES DISTRIBUIDAS TRANSACCIONES DISTRIBUIDAS Tema # V Sistemas de operación II Abril-Julio 2008 Yudith Cardinale INDICE Introducción y definiciones Algoritmos de compromiso Two Phase Commit Three Phase Commit Algoritmos

Más detalles

Gestión de Transacciones: Concurrencia y Recuperación

Gestión de Transacciones: Concurrencia y Recuperación Gestión de Transacciones: Concurrencia y Recuperación Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla noviembre 2011 Objetivos

Más detalles

CONCURRENCIA, TRANSACCIONES, ACCESOS Y BLOQUEOS

CONCURRENCIA, TRANSACCIONES, ACCESOS Y BLOQUEOS CONCURRENCIA, TRANSACCIONES, ACCESOS Y BLOQUEOS Introducción 3 1. CONTROL DE CONCURRENCIA 3 2. TRANSACCIONES Y ACCESOS 4 3. TRANSACCIONES Y ESTADOS DE LA BASE DE DATOS 5 4. ESTADOS DE LA TRANSACCIÓN 6

Más detalles

Gestión de Transacciones

Gestión de Transacciones Gestión de Transacciones y su relación con el gestor de concurrencia (planificador) y el gestor de recuperación 1 Sistema Monousuario vs. Multiusuario. concurrencia Transacciones Estado de las transacciones.

Más detalles

Módulo 7 Transacciones Distribuidas

Módulo 7 Transacciones Distribuidas Sistemas Distribuidos Módulo 7 Facultad de Ingeniería Departamento de Informática Universidad Nacional de la Patagonia San Juan Bosco El modelo transaccional La actualización de una cinta maestra es tolerante

Más detalles

Asignatura: Administración de Bases de Datos. Pedro P. Alarcón Cavero

Asignatura: Administración de Bases de Datos. Pedro P. Alarcón Cavero Ingeniería Técnica en Informática Escuela Universitaria de Informática Universidad Politécnica de Madrid Asignatura: Administración de Bases de Datos Tema 5: Proceso de Transacciones Pedro P. Alarcón Cavero

Más detalles

Sistemas Operativos Tema 11. Interbloqueo José Miguel Santos C. Rubén García - Alexis Quesada

Sistemas Operativos Tema 11. Interbloqueo José Miguel Santos C. Rubén García - Alexis Quesada Sistemas Operativos Tema 11. Interbloqueo 1998-2008 José Miguel Santos C. Rubén García - Alexis Quesada 1 Contenidos Caracterización del interbloqueo Estrategias de tratamiento del interbloqueo Métodos

Más detalles

Interbloqueos. Módulo 7. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

Interbloqueos. Módulo 7. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Interbloqueos Módulo 7 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Módulo 7: Interbloqueos Modelo de Sistema Caracterización de Interbloqueos

Más detalles

Concurrencia y Recuperabilidad

Concurrencia y Recuperabilidad Concurrencia y Recuperabilidad Paradigma Pesimista Lic. Gerardo Rossel 2016 Recuperabilidad Control de Concurrencia Pesimista-Optimista-SQL Serializabilidad Recuperabilidad Control de Concurrencia Pesimista-Optimista-SQL

Más detalles

Concurrencia. M. Andrea Rodríguez-Tastets. II Semestre Universidad de Concepción,Chile andrea

Concurrencia. M. Andrea Rodríguez-Tastets. II Semestre Universidad de Concepción,Chile  andrea Concurrencia M. -Tastets Universidad de Concepción,Chile www.inf.udec.cl\ andrea andrea@udec.cl II Semestre - 2014 Objetivos de la unidad Entender los diferentes protocolos de manejo de concurrencia. Técnicas

Más detalles

Bases de Datos Distribuidas. Carlos A. Olarte BDII

Bases de Datos Distribuidas. Carlos A. Olarte BDII Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Contenido 1 Introducción 2 Fragmentación de Datos 3 Transparencia de Red 4 Transacciones Distribuidas 5 Control de Concurrencia Introducción Por que distribuir

Más detalles

Porqué es dificil sincronizar en un S.D.?

Porqué es dificil sincronizar en un S.D.? 1 Porqué es dificil sincronizar en un S.D.? Problemas: - Información repartida - No existe timing global - Decisiones con información local - Puntos de falla? 2 Relojes Lógicos LAMPORT (1978) Eventos a

Más detalles

Recuperación. Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J.

Recuperación. Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J. Recuperación Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J. Recuperación de transacciones Está vinculado a la noción de procesamiento de transacciones. Operaciones de SQL COMMIT

Más detalles

Transacciones. Carlos A. Olarte BDII

Transacciones. Carlos A. Olarte BDII Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Outline 1 2 Ejecuciones Concurrentes 3 Secuencialidad en Cuanto a Conflictos 4 Secuencialidad en Cuanto a Vistas 5 Recuperabilidad 6 en SQL Transacción Definición

Más detalles

TEMA 4 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ

TEMA 4 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 1 1 BASES DE DATOS DISTRIBUIDAS TEMA 4 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 4. MANEJO DE TRANSACCIONES 4.1 Conceptos de Transacciones 4.2 Control de concurrencia 4.3 Serialización de transacciones

Más detalles

14. Control de la concurrencia

14. Control de la concurrencia 14. Control de la concurrencia Objetivos Conocer la problemática asociada a la concurrencia de transacciones en los sistemas de bases de datos Entender el significado de la seriabilidad y su aplicación

Más detalles

Ejecuciones Concurrentes

Ejecuciones Concurrentes Elementos de Bases de Datos Dpto.Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Lic. María Mercedes Vitturini [mvitturi@cs.uns.edu.ar] Clase 24 1er. Cuatrimestre de 2004 Transacciones

Más detalles

Transacciones. M. Andrea Rodríguez-Tastets. II Semestre Universidad de Concepción,Chile andrea

Transacciones. M. Andrea Rodríguez-Tastets. II Semestre Universidad de Concepción,Chile  andrea Transacciones M. -Tastets Universidad de Concepción,Chile www.inf.udec.cl\ andrea andrea@udec.cl II Semestre - 2014 Objetivos de la Unidad Entender el concepto de transacciones. Transacciones Una transacción

Más detalles

Concurrencia. Concurrencia

Concurrencia. Concurrencia Concurrencia Procesos y hebras Concurrencia Programación concurrente Por qué usar hebras y procesos? Ejecución de procesos Ejecución de hebras Hebras vs. Procesos Creación y ejecución de hebras La prioridad

Más detalles

Aplicaciones Concurrentes

Aplicaciones Concurrentes PROGRAMACIÓN CONCURRENTE TEMA 6 Aplicaciones Concurrentes ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN PROGRAMACIÓN CONCURRENTE Aplicaciones Concurrentes

Más detalles

De que hay que Recuperarse?

De que hay que Recuperarse? Conceptos de Recuperación de Información en Bases de Datos [EN - 21] CSI-INCO Fundamentos de Bases de Datos 1 De que hay que Recuperarse? En un sistema, se pueden dar fallas que pongan en riesgo la integridad

Más detalles

Recuperación de Fallos del Sistema

Recuperación de Fallos del Sistema Recuperación de Fallos del Sistema Competencias específicas Proteger la información almacenada frente a fallos del sistema mediante las técnicas disponibles en los SGBDs. Justificar la necesidad de disponer

Más detalles

Sistemas Operativos. Curso 2016 Sistema de Archivos

Sistemas Operativos. Curso 2016 Sistema de Archivos Sistemas Operativos Curso 2016 Sistema de Archivos Agenda Interfaz. Archivos. Directorios. Seguridad en archivos. Implementación. Definiciones. Sistema de archivos virtual. Estructura de los directorios.

Más detalles

Universidad Nacional del Sur Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos 2do. Cuatrimestre de 2004

Universidad Nacional del Sur Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos 2do. Cuatrimestre de 2004 2do. Cuatrimestre de 2004 Elementos de Bases de Datos Dpto.Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Lic. María Mercedes Vitturini [mvitturi@cs.uns.edu.ar] Clase 21 1er. Cuatrimestre

Más detalles

Programación Concurrente y Paralela. Unidad 1 Introducción

Programación Concurrente y Paralela. Unidad 1 Introducción Programación Concurrente y Paralela Unidad 1 Introducción Contenido 1.1 Concepto de Concurrencia 1.2 Exclusión Mutua y Sincronización 1.3 Corrección en Sistemas Concurrentes 1.4 Consideraciones sobre el

Más detalles

Cliente- Servidor. Bases de Datos Distribuidas

Cliente- Servidor. Bases de Datos Distribuidas 1 2 3 4 Cliente- Servidor La tecnología que se utiliza habitualmente para distribuir datos es la que se conoce como entorno (o arquitectura) cliente/servidor (C/S). Todos los SGBD relacionales del mercado

Más detalles

Sistemas Operativos. Procesos

Sistemas Operativos. Procesos Sistemas Operativos Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor de proceso

Más detalles

Bases de datos Unidad 1 Introducción a las BD. Mónica María Rojas Rincón Oficina: P19-103

Bases de datos Unidad 1 Introducción a las BD. Mónica María Rojas Rincón Oficina: P19-103 Bases de datos Unidad 1 Introducción a las BD Mónica María Rojas Rincón mmrojas@elpoli.edu.co Oficina: P19-103 Competencias a desarrollar Identificar los conceptos propios de la asignatura. Diferenciar

Más detalles

PROCEDIMIENTOS DEL NOC RESPALDO Y RECUPERACION DE DATOS

PROCEDIMIENTOS DEL NOC RESPALDO Y RECUPERACION DE DATOS PROCEDIMIENTOS DEL NOC RESPALDO Y RECUPERACION DE DATOS Página 1 de 7 OBJETIVO El objetivo de este procedimiento es describir la política de respaldo por defecto para el NOC de Provectis, entendiéndose

Más detalles

SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009

SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009 SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009 4. (2 p) Dos procesos A y B se ejecutan concurrentemente en un determinado sistema. El proceso A ejecuta unas tareas ( Tareas

Más detalles

Unidad 8. Bases de Datos en el Modelo Cliente Servidor

Unidad 8. Bases de Datos en el Modelo Cliente Servidor Unidad 8 Bases de Datos en el Modelo Cliente Servidor El Modelo Cliente Servidor En la comunicación TCP/IP las comunicaciones entre computadoras se manejan a través del modelo Cliente Servidor Este concepto

Más detalles

Introducción a Base de Datos

Introducción a Base de Datos Introducción a Base de Datos Agradecimiento a la Prof. Gloria Lucía Giraldo Gómez de la Universidad Nacional de Colombia por las fuentes de su trabajo. @emalca /iluminatic Ing. Eddie Malca Vicente emalca@iluminatic.com

Más detalles

Universidad Autónoma del Estado de México Facultad de Medicina

Universidad Autónoma del Estado de México Facultad de Medicina Universidad Autónoma del Estado de México Facultad de Medicina Licenciatura en Bioingeniería Médica Unidad de Aprendizaje: Algoritmos y programación básica Unidad 3: Estructuras de control de flujo en

Más detalles

El Sistema Gestor de Base de Datos (DBMS)

El Sistema Gestor de Base de Datos (DBMS) Pontificia Universidad Javeriana Contenido 1 Introducción 2 Evolución de los SGBD 3 Arquitectura del SGBD 4 Lenguajes de BD 5 Usuarios de la BD Introducción Se espera del SGBD (DBMS) que: 1 Permita a los

Más detalles

Bases de Datos: Bases de Datos Distribuidas. Departamento de O.E.I. - U.P.M.

Bases de Datos: Bases de Datos Distribuidas. Departamento de O.E.I. - U.P.M. Diseño o y Optimización n de Bases de Datos: Bases de Datos Distribuidas Departamento de O.E.I. - U.P.M. 1. Introducción. ÍNDICE 2. Almacenamiento distribuido de datos. 3. Transparencia de la red. 4. Procesamiento

Más detalles

Unidad V: Sistemas de archivos 5.1 Concepto

Unidad V: Sistemas de archivos 5.1 Concepto Unidad V: Sistemas de archivos 5.1 Concepto Son los algoritmos y estructuras lógicas utilizadas para poder acceder a la información que tenemos en el disco. Cada uno de los sistemas operativos crea estas

Más detalles

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos Sistema Operativo Repaso de Estructura de Computadores Capítulo 1 Explota los recursos hardware de uno o más procesadores Proporciona un conjunto de servicios a los usuarios del sistema Gestiona la memoria

Más detalles

UNIDAD II Metodología de programación paralela. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM

UNIDAD II Metodología de programación paralela. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM UNIDAD II Metodología de programación paralela UNIDAD II: Metodología de programación paralela Metodología de programación paralela Algunos conceptos que nos ayudarán a entender mejor el tema. Modelos

Más detalles

SGBD. Gestión y Modelación de Datos. María Constanza Pabón

SGBD. Gestión y Modelación de Datos. María Constanza Pabón SGBD Gestión y Modelación de Datos María Constanza Pabón mcpabon@javerianacali.edu.co Contenido Qué es un SGBD? Funciones de un SGBD CaracterísDcas funcionales Usuarios Niveles de Abstracción de los datos

Más detalles

Procesos Definición y Estados

Procesos Definición y Estados Procesos Definición y Estados Profesorado de Informática CeRP del Suroeste, Uruguay Contenidos Qué es un proceso Estructuras de datos para gestionar procesos API para trabajar con procesos Hilos (threads).

Más detalles

Tema 6. Transacciones y seguridad

Tema 6. Transacciones y seguridad Tema 6. Transacciones y seguridad Las aplicaciones de bases de datos a gran escala, con bases de datos de gran tamaño y con cientos de usuarios concurrentes, como los sistemas de reservas, los bancos,

Más detalles

1 ( 3,5 puntos) Responda, justificando sus respuestas, a las siguientes cuestiones:

1 ( 3,5 puntos) Responda, justificando sus respuestas, a las siguientes cuestiones: Universidad de Las Palmas de Gran Canaria Escuela Universitaria de Informática Facultad de Informática Sistemas Operativos Convocatoria de Junio, 26 de Junio de 2003 SOLUCIONES Calificación 1 2 3 4 Nombre

Más detalles

APUNTES SOBRE PROCESOS Y DEADLOCK CONCEPTO DE PROCESO 1

APUNTES SOBRE PROCESOS Y DEADLOCK CONCEPTO DE PROCESO 1 APUNTES SOBRE PROCESOS Y DEADLOCK Alejandro Bia PROCESO CONCEPTO DE PROCESO 1 - En 1960 (proyecto "Multics") surge concepto de proceso. Definiciones breves: - Programa en ejecución. - Entidad lógica a

Más detalles

Nombre del estudiante: Giovanna Kristhel Mendoza Castillo Gustavo Antonio González Morales Eduardo Solis Lara Francisco Javier Merodio Molina

Nombre del estudiante: Giovanna Kristhel Mendoza Castillo Gustavo Antonio González Morales Eduardo Solis Lara Francisco Javier Merodio Molina Nombre del estudiante: Giovanna Kristhel Mendoza Castillo Gustavo Antonio González Morales Eduardo Solis Lara Francisco Javier Merodio Molina Nombre del trabajo: Resumen y mapa conceptual del Capítulo

Más detalles

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria Sistemas operativos UPCO ICAI Departamento de Electrónica y Automática 1 Hasta ahora hemos visto Relación programa-sistema operativo Gestión de memoria Reserva para la ejecución Pilas, heap, memoria de

Más detalles

INDICE 1. Introducción 2. Entrada / Salida: Principios y Programación 3. Procesos

INDICE 1. Introducción 2. Entrada / Salida: Principios y Programación 3. Procesos INDICE Prólogo XV 1. Introducción 1 1.1. Evolución de los sistemas operativos 2 Procesamiento en serie 3 Procesamiento por lotes 4 Multiprogramación 7 1.2. Tipos de Sistemas Operativos 9 Sistemas operativos

Más detalles

Bases de Datos: Introducción

Bases de Datos: Introducción Bases de Datos: Introducción Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl Sistemas de Información/Sistemas Informáticos v En

Más detalles

Consistencia y Replicación

Consistencia y Replicación Consistencia y Replicación Segunda parte Modelos de Consistencia Centrados en el Cliente Modelos de Consistencia Centrados en el Cliente Caracterís4cas: Bajo número de actualizaciones simultáneas Fácil

Más detalles

Tema 12: El sistema operativo y los procesos

Tema 12: El sistema operativo y los procesos Tema 12: El sistema operativo y los procesos Solicitado: Tarea 06 Arquitecturas de una computadora y el funcionamiento del software M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx

Más detalles

Interbloqueo. Concurrencia: Interbloqueo e Inanición

Interbloqueo. Concurrencia: Interbloqueo e Inanición Interbloqueo Concurrencia: Interbloqueo e Inanición Capítulo 6 Bloqueo permanente de un conjunto de procesos que compiten por recursos del sistema o por comunicación con los otros No existe una solución

Más detalles

Sistemas Operativos Distribuidos. Sincronización

Sistemas Operativos Distribuidos. Sincronización Sincronización Sincronización en Sistemas Distribuidos Más compleja que en los centralizados Características de algoritmos distribuidos: La información relevante se distribuye entre varias máquinas. Debe

Más detalles

Conceptos de Planificación

Conceptos de Planificación Conceptos de Planificación Conceptos de Planificación Planificación Planificación de Procesos de Procesos Algoritmos Algoritmos Estructura Estructura Propiedades Propiedades Tipos Tipos Evaluación Evaluación

Más detalles

Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo

Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo Hilo (theread) llamado también proceso ligero o subproceso, es la unidad de ejecución de un proceso y esta asociado con una secuencia

Más detalles

Existen dos tipos de disparadores que se clasifican según la cantidad de ejecuciones a realizar:

Existen dos tipos de disparadores que se clasifican según la cantidad de ejecuciones a realizar: Trigger Un trigger(o desencadenador) es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases de datos. Los triggers o disparadores

Más detalles

Unidad 3: Gestión de Archivos

Unidad 3: Gestión de Archivos Unidad 3: Gestión de Archivos Tema 5, Sistema de Archivos: 5.1 Introducción: Requisitos para el almacenamiento de información. 5.2 Archivo: Concepto y operaciones con archivos. 5.3 Métodos de Acceso: Acceso

Más detalles

Control de Concurrencia

Control de Concurrencia Esquema de la clase Conceptos Preliminares Aspectos positivos y negativos de la ejecución concurrente Planificaciones y Secuencialidad Recuperabilidad Esquemas de Conceptos Preliminares Transacción Propiedades

Más detalles

Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores

Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores Programación Orientada a Objetos Resumen de Temas Unidad 3: Constructores y destructores 3.1 Conceptos de métodos constructor y destructor Java inicializa siempre con valores por defecto las variables

Más detalles

Tipos de Diseño. Ing. Elizabeth Guerrero V.

Tipos de Diseño. Ing. Elizabeth Guerrero V. Tipos de Diseño Ing. Elizabeth Guerrero V. Tipos de Diseño Tipos de diseño de Procesos: Centralizado, Distribuido y Cooperativo Procesos Centralizados Un sistema centralizado está formado por un computador

Más detalles

Módulo 3 Sincronización

Módulo 3 Sincronización Sistemas Distribuidos Módulo 3 Sincronización Facultad de Ingeniería Departamento de Informática Universidad Nacional de la Patagonia San Juan Bosco Sincronización en Sistemas Distribuidos Sincronización

Más detalles

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS Introducción Hardware Software Aspectos de diseño 1 Introducción Aparecen en los 80 Desarrollo de Microprocesadores LAN Sistemas Distribuidos: Gran nº de procesadores

Más detalles

Memoria. Organización de memorias estáticas.

Memoria. Organización de memorias estáticas. Memoria 1 Memoria Organización de memorias estáticas. 2 Memoria En memoria físicas con bus de datos sea bidireccional. 3 Memoria Decodificación en dos niveles. 4 Necesidad de cantidades ilimitadas de memoria

Más detalles

Transacciones, Recuperación y Control de Concurrencia

Transacciones, Recuperación y Control de Concurrencia Transacciones, Recuperación y Control de Concurrencia Diseño de Bases de Datos Relacionales Curso 2011/2012 Sergio Ilarri silarri@unizar.es Transacciones (I) Transacción Secuencia de operaciones que deben

Más detalles

PROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN. actividad Transacciones en MySQL. como requerimiento parcial para acreditar la asignatura de

PROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN. actividad Transacciones en MySQL. como requerimiento parcial para acreditar la asignatura de DEXCELENCIA UNIVERSITARIA, FORTALEZA E MEXICO I Z U C A R D E M ATA M O R O S PROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN actividad Transacciones en MySQL como requerimiento parcial para acreditar

Más detalles

Funcionamiento de la computadora

Funcionamiento de la computadora Funcionamiento de la computadora La computadora es una maquina destinada a procesar datos. Este procesamiento involucra dos flujos de información: el de datos y el de instrucciones. Se parte del flujo

Más detalles

Organización de Computadoras

Organización de Computadoras Organización de Computadoras SEMANA 10 UNIVERSIDAD NACIONAL DE QUILMES Qué vimos? Mascaras Repeticiones controladas Arreglos Modo indirecto Q5 Hoy! Memorias: Características Memorias ROM Jerarquía de memorias

Más detalles

Lección 10: Ejemplos de programación con semáforos

Lección 10: Ejemplos de programación con semáforos Lección 10: Ejemplos de programación con semáforos El problema de la cena de los filósofos El problema de los lectores y escritores Ejercicios Gestión de concurrencia mediante paso de testigo (implementación

Más detalles

Recuperación de Bases de Datos

Recuperación de Bases de Datos Recuperación de Bases de Datos M. -Tastets Universidad de Concepción,Chile www.inf.udec.cl\ andrea andrea@udec.cl II Semestre - 2012 Concepto de Recuperación La recuperación de fallos a transacciones casi

Más detalles

Elementos de Bases de Datos. Serializabilidad en Bases de Datos Distribuidas. Protocolo de Bloqueo de Dos Fases. Protocolo de Compromiso de 2 Fases

Elementos de Bases de Datos. Serializabilidad en Bases de Datos Distribuidas. Protocolo de Bloqueo de Dos Fases. Protocolo de Compromiso de 2 Fases Elementos de Bases de Datos 2do Cuatrimestre de 2004 Elementos de Bases de Datos DptoCiencias e Ingeniería de la Computación Universidad Nacional del Sur Lic María Mercedes Vitturini [mvitturi@csunseduar]

Más detalles

Bases de Datos Paralelas. Carlos A. Olarte BDII

Bases de Datos Paralelas. Carlos A. Olarte BDII Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Contenido 1 Introducción 2 Paralelismo de I/O 3 Paralelismo entre Consultas 4 OPS Introducción Por qué tener bases de datos paralelas? Tipos de arquitecturas:

Más detalles

TOLERANCIA A FALLAS Y RECUPERACIÓN

TOLERANCIA A FALLAS Y RECUPERACIÓN TOLERANCIA A FALLAS Y RECUPERACIÓN Tema # VI Sistemas de operación II Abril-Julio 2013 Yudith Cardinale Tolerancia a fallas INDICE Conceptos Básicos de Tolerancia a Fallas Redundancia Recuperación de transacciones

Más detalles

TEMA 5: Control de la Concurrencia en Java (API Estándar)

TEMA 5: Control de la Concurrencia en Java (API Estándar) TEMA 5: Control de la Concurrencia en Java (API Estándar) CONTENIDO Exclusión Mutua con código synchronized. Exclusión Mutua con métodos synchronized. Protocolos de Control de la Exclusión Mutua. Interbloqueos

Más detalles

BASE DE DATOS DISTRIBUIDOS

BASE DE DATOS DISTRIBUIDOS 1 BASE DE DATOS DISTRIBUIDOS Contenido: Base de Datos Distribuidos 1.1. Introducción 1.1.1 Almacenamiento Distribuido 1.2. Sistemas de gestión de bases de datos distribuidos 1.2.1 Funciones y Arquitectura

Más detalles

Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica

Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica Licenciatura en Sistemas Computacionales Sistemas Operativos Docente: M.G.A.

Más detalles

GESTION DE LA MEMORIA

GESTION DE LA MEMORIA GESTION DE LA MEMORIA SISTEMAS OPERATIVOS Generalidades La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección Tanto el tamaño de la tabla (memoria), como el de los datos

Más detalles

Transacciones, copias de seguridad. Xochitl Clemente Parra Armando Méndez Morales

Transacciones, copias de seguridad. Xochitl Clemente Parra Armando Méndez Morales Transacciones, copias de seguridad Xochitl Clemente Parra Armando Méndez Morales Transacciones Las transacciones hablan de atomicidad. Atomicidad es el concepto que habla de un conjunto de cosas actuando

Más detalles

Sistemas operativos: una visión aplicada. Capítulo 6 Interbloqueos

Sistemas operativos: una visión aplicada. Capítulo 6 Interbloqueos Sistemas operativos: una visión aplicada Capítulo 6 Interbloqueos Contenido Introducción Tipos de recursos Modelo del sistema Definición y caracterización del interbloqueo Tratamiento del interbloqueo

Más detalles

PROCEDIMIENTOS ALMACENADOS

PROCEDIMIENTOS ALMACENADOS Modelado de Base de Datos PROCEDIMIENTOS ALMACENADOS Universidad Politecnica de los Llanos Procedimiento Almacenado Un Procedimiento almacenado es un Objeto de Base de Datos que puede encapsular logica

Más detalles

Sistemas Operativos. Daniel Rúa Madrid

Sistemas Operativos. Daniel Rúa Madrid Sistemas Operativos Daniel Rúa Madrid Qué es? Es un programa que administra el hardware de una computadora. También proporciona las bases para los programas de aplicación y actúa como intermediario entre

Más detalles

Capítulo 3. Procesos concurrentes 3.1. Conceptos de programación concurrente La computación concurrente es la simultaneidad en la ejecución de

Capítulo 3. Procesos concurrentes 3.1. Conceptos de programación concurrente La computación concurrente es la simultaneidad en la ejecución de Capítulo 3. Procesos concurrentes 3.1. Conceptos de programación concurrente La computación concurrente es la simultaneidad en la ejecución de múltiples tareas interactivas. Estas tareas pueden ser un

Más detalles

CAPÍTULO 3. PROCESOS VS. HILOS

CAPÍTULO 3. PROCESOS VS. HILOS CAPÍTULO 3. PROCESOS VS. HILOS 3.1 Primitivas de sincronización en Java Java no tiene semáforos como primitivas de sincronización. Sin embargo, proporciona otras primitivas diferentes con las cuales sí

Más detalles

Manejo de Transacciones

Manejo de Transacciones Bases de Datos Transacciones 1 Manejo de Transacciones Jorge Pérez Rojas Universidad de Talca, II Semestre 2006 Bases de Datos Transacciones 2 Transacciones Hasta ahora el modelo de operación en la BD

Más detalles

Velocidades Típicas de transferencia en Dispositivos I/O

Velocidades Típicas de transferencia en Dispositivos I/O Entradas Salidas Velocidades Típicas de transferencia en Dispositivos I/O Entradas/Salidas: Problemas Amplia variedad de periféricos Entrega de diferentes cantidades de datos Diferentes velocidades Variedad

Más detalles

MEMORIA CACHÉ PRINCIPIOS BASICOS

MEMORIA CACHÉ PRINCIPIOS BASICOS MEMORIA CACHÉ PRINCIPIOS BASICOS El objetivo de la memoria cache es lograr que la velocidad de la memoria sea lo mas rapida posible, consiguiendo al mismo tiempo un tamaño grande al precio de memorias

Más detalles

Sistemas Operativos. Curso 2014 Estructura de los sistemas operativos

Sistemas Operativos. Curso 2014 Estructura de los sistemas operativos Sistemas Operativos Curso 2014 Estructura de los sistemas operativos Agenda Componentes de un sistema operativo. Servicios del sistema operativo (system services). Llamados a sistema (system calls). Estructura

Más detalles

Tarea #6. Gestión de E/S y Planificación de Discos

Tarea #6. Gestión de E/S y Planificación de Discos 1 Tarea #6. 1. Enumere y defina brevemente las tres técnicas de realización de E/S E/S Programada: el procesador emite una orden de E/S de parte de un proceso a un módulo de E/S; el proceso espera entonces

Más detalles

HP - UX. Qué es HP UX?

HP - UX. Qué es HP UX? HP - UX Integrantes: Cisneros Pedraza Christian. Jiménez Nieves José Manuel. Villanueva Armenta Fernando. Qué es HP UX? Hp UX es una variante de Unix creada por los desarrolladores de software de HP. Provee

Más detalles

Arquitectura de Computadoras

Arquitectura de Computadoras Arquitectura de Computadoras Clase 7 Memoria Sistema de Memoria Los programadores desean acceder a cantidades ilimitadas de memoria rápida!! Solución práctica: Jerarquía de memoria organizada en niveles

Más detalles

PROGRAMACIÓN CONCURRENTE

PROGRAMACIÓN CONCURRENTE PROGRAMACIÓN CONCURRENTE Lenguajes de Programación - Progr. Concurrente 1 Introducción El concepto fundamental de la programación concurrente es la noción de Proceso. Proceso: Cálculo secuencial con su

Más detalles

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;) Tags Fundamentos PHP La Sintaxis de PHP se deriva de muchos lenguajes de programación principalmente de C pero Perl también ha tenido mucha influencia en esta sintaxis Con las últimas incorporaciones agregadas,

Más detalles

Actividad 1.2. Cuestionario sobre SGBD (2ª parte)

Actividad 1.2. Cuestionario sobre SGBD (2ª parte) Actividad 1.2. Cuestionario sobre SGBD (2ª parte) 1.Indica las diferencias existentes entre las funciones de manipulación y de descripción. Función de descripción o de definición: Esta función debe permitir

Más detalles

Bases de Datos I. Cursada 2008. Clase 7: Recuperación de BD. Introducción a la Seguridad. Introducción a la Seguridad

Bases de Datos I. Cursada 2008. Clase 7: Recuperación de BD. Introducción a la Seguridad. Introducción a la Seguridad Bases de Datos I Cursada 2008 Clase 7: Recuperación de BD Facultad de Ciencias Exactas Universidad Nac. Centro de la Pcia. de Bs. As. 1 Introducción a la Seguridad Una base de datos es: Un conjunto de

Más detalles

Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia

Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia Programación orientada a objetos Resumen de Temas Unidad 5: Herencia 5.1 Introducción a la Herencia La herencia es el mecanismo fundamental de relación entre clases en la orientación a objetos. Relaciona

Más detalles

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO Definición y objetivos de un S.O Definición y objetivos del sistema operativo Estructura, componentes y servicios de un S.O Llamadas al sistema

Más detalles