Tema 2: Sincronización en Memoria Compartida

Marlene Vásquez
Mind Map by Marlene Vásquez, updated more than 1 year ago
Marlene Vásquez
Created by Marlene Vásquez over 3 years ago
42
0

Description

resumen

Resource summary

Tema 2: Sincronización en Memoria Compartida
1 SOLUCIONES
1.1 Bajo Nivel con espera ocupada
1.1.1 software (operaciones estándar)
1.1.1.1 ALGORITMOS(para 2 procesos)
1.1.1.1.1 DEKKER
1.1.1.1.2 PETERSON
1.1.1.2 ESTRUCTURA DE LOS PROCESOS CON SECCIONES CRÍTICAS
1.1.1.2.1 E/S en secciones crítcas
1.1.1.2.2 acceso repetitivo
1.1.1.2.3 condiciones sobre el comportamiento de los procesos
1.1.1.3 PROPIEDADES PARA LA E.M
1.1.1.4 REFINAMIENTOS
1.1.1.4.1 DIJKSTRA
1.1.1.4.1.1 ALGORITMO DE DEKKER
1.1.1.4.1.1.1 VERSIÓN 1: No es correcta, no se cumple la propiedad de EM
1.1.1.4.1.1.2 VERSIÓN 2: No es correcta, se DA la propiedad de EM pero no se cumple la propiedad de PROGRESO EN LA EJECUCIÓN
1.1.1.4.1.1.3 VERSIóN 3: No e correcta. ahora se cumple el PROGRESO DE EJECUCIÓN pero no se cumple la propiedad de la EM
1.1.1.4.1.1.4 VERSIÓN 4: No es correcta, se DA la propiedad de EM pero no se cumple la propiedad de PROGRESO EN LA EJECUCIÓN puede ocurrir INTERBLOQUEO
1.1.1.4.1.1.5 VERSIÓN 5: la posibilidad de interbloqueo es pequeña, por tanto no se cumple la propiedad de progreso
1.1.1.4.1.2 Protocolo de Entrada(PE), Sección crítica(SC), Protocolo de Salida(PS), otras sentencias del proceso(RS)
1.1.1.5 E.M, Progreso, Espera limitada, Eficiencia, Equidad
1.1.2 Hardware (Cerrojos) instrucciones máquina
1.1.2.1 desventajas
1.1.2.1.1 las esperas ocupadas consumen tiempo de CPU
1.1.2.1.2 se puede acceder directamente a los cerrojos
1.1.2.1.3 no se cumplen ciertas condiciones de quidad
1.1.2.2 uso de los cerrojos es restringido
1.1.3 se basa en programas que contienen instrucciones de bajo nivel (lectura, escritura) y bucles para realizar esperas
1.1.4 Exclusión Mutua con espera ocupada : Para asegurar la exclusión mutua deben incluir una secuencia de 3 pasos, Protocolo de Entrada, Salida y sección crítica
1.2 ALTO NIVEL
1.2.1 Semáforos
1.2.1.1 se construyen sobre las instrucciones de bajo nivel, usando servicios del SO para bloquear y reactivar procesos. Se puede usar para resolver problemas de SINCRONIZACIÓN. El mecánismo se implementa mediante instancias de estructura de datos a las que se accede únicamente mediante subprogramas específicos (aumenta la SEGURIDAD y SIMPLICIDAD)
1.2.1.2 ESTRUCTURA
1.2.1.2.1 ELEMENTOS
1.2.1.2.1.1 Conjunto de procesos bloqueados. INICIALIZACIÓN: vacío
1.2.1.2.1.2 Valor Natural (no negativo). INICIALIZACION: valor inicial del semáforo

Annotations:

  • valor del semáforo
1.2.1.2.2 un semáforo es una instancia de una estructura de datos. * esta estructura reside en memoria compartida.
1.2.1.3 OPERACIONES
1.2.1.3.1 sem_wait( S ) : if (S > 0) S-- ; else if(s==0) bloquear;
1.2.1.3.2 sem_signal(S) : if (! s.isEmpty()) desbloquear; else s++;
1.2.1.4 USO
1.2.1.4.1 EXCLUSIÓN MUTUA
1.2.1.4.1.1 semáforo inicializado a 1, y haciendo sem_wait antes de la sección crítica y sem_signal después de la sección crítica
1.2.1.4.2 SINCRONIZACIÓN
1.2.1.4.2.1 el problema de prod-cons se resuelve fácilmente
1.2.1.5 LIMITACIONES
1.2.1.5.1 solo resuelve problemas sencillos de sincronización. Problemas más complejos son difíciles de verificar su válidez. Al igual que los cerrojos, programas erroneos puede provocar que haya procesos bloqueados indefinidamente o estados incorrectos.
1.2.1.6 Inconvenientes de usar mecánismos como los semáforos. Basado en variables globales (impide el diseño MODULAR y reduce la ESCALABILIDAD). Las operaciones se encuentran dispersas y NO protegidas (posibilidad de errores).
1.2.2 regiones criticas
1.2.2.1 solución de mas alto nivel que los semáforos, se pueden implementar sobre semáforos
1.2.3 Monitores
1.2.3.1 solución de mas alto nivel que las otras soluciones y se pueden implementar en algunos lenguajes orientados a objetos (JAVA, PYTHON).
1.2.3.2 FUNCIONAMIENTO
1.2.3.2.1 COMUNICACIÓN
1.2.3.2.1.1 Cuando un proceso necesita OPERAR sobre un recurso compartido deberá realizar una llamada a uno de los procedimientos exportados. Cuando el proceso esta ejecutando el procedimiento decimos que esta dentro del monitor
1.2.3.2.2 EXCLUSIÓN MUTUA
1.2.3.2.2.1 Si un proceso esta dentro del monitor ningún otro proceso podrá entrar, hasta que el otro proceso que esta dentro termine
1.2.3.2.3 SON OBJETOS PASIVOS
1.2.3.2.3.1 Después de ejecutar el código de inicialización, un monitor es un objeto pasivo y el código de sus procedimientos solo se ejecuta cuando estos son invocados.
1.2.3.2.4 INSTANCIACIÓN
1.2.3.2.4.1 Para cada recurso compartido se tendría que definir un monitor. Para recursos con estructura y comportamiento idéntico podemos instanciar de forma parametrizada tantas veces como recursos se quiera controlar.
1.2.3.2.5 COLA PARA E.M
1.2.3.2.5.1 si un proceso esta DENTRO y otro proceso intenta ejecutar un procedimiento del monitor este proceso se queda bloqueado en la cola del monitor.
1.2.3.2.5.2 Cuando un proceso ABANDONA se desbloquea un proceso de la cola, que ya puede entrar al monitor.
1.2.3.2.5.3 Si la cola del monitor esta VACÍA el monitor está LIBRE y el primer proceso que ejecute una llamada a uno de sus procedimientos entrará al monitor. Para garantizar la VIVACIDAD del sistema, la planificación DE LA COLA debe seguir una política FIFO
1.2.3.2.5.3.1 FORMA parte del ESTADO del monitor
1.2.3.3 DEFINICION
1.2.3.3.1 PROPIEDADES
1.2.3.3.1.1 EXCLUSIÓN MUTUA en el acceso a los procedimientos
1.2.3.3.1.1.1 E.M garantizada por definición. La IMPLEMENTACION garantiza que NUNCA 2 procesos estarán ejecutando simultáneamente algún procedimiento del monitor
1.2.3.3.1.2 VENTAJAS sobre los semáforos
1.2.3.3.1.2.1 Variables protegidas
1.2.3.3.1.2.2 acceso estructurado
1.2.3.3.1.2.3 Exclusión mutua garantizada.
1.2.3.3.2 SINTAXIS
1.2.3.3.3 COMPONENTES
1.2.3.3.3.1 variables permanentes
1.2.3.3.3.1.1 almacenan el estado del recurso compartido
1.2.3.3.3.2 procedimientos internos o procedimientos exportados
1.2.3.3.3.2.1 manipulan las variables permanentes
1.2.3.3.3.3 código de inicialización
1.2.3.3.3.3.1 Se inicializa las variables permanentes. se ejecuta una única vez
1.2.3.3.3.4 VARIABLES CONDICION
1.2.3.3.4 Permite: *definir objetos abstractos compartidos*. Garantizar el acceso exclusivos a las variables e implementar sincronización. El *recurso compartido* se percibe como un objeto. *Acceso estructurado y encapsulación*: se accede al recurso mediante un conjunto de operaciones. El usuario ignora la(s) variable (s) que representan al recurso y la implementación de las las operaciones. asociadas
1.2.3.4 SINCRONIZACIÓN
1.2.3.4.1 VARIABLES CONDICIÓN (señales)
1.2.3.4.1.1 debe declararse una vble condición para cualquier condición lógica de SINCRONIZACIÓN. No tiene valor asociado (No requiere inicialización). representan colas. mas de un proceso puede estar dentro del monitor aunque solo uno estará ejecutándose.
1.2.3.4.2 COLAS DE CONDICIÓN
1.2.3.4.2.1 OPERACIONES
1.2.3.4.2.1.1 cond.wait()
1.2.3.4.2.1.2 cond.signal()
1.2.3.4.2.1.3 cond.queue()
1.2.3.4.2.2 Propiedad FIFO
1.2.3.4.2.2.1 signal reactivara al proceso que lleve más tiempo esperando
1.2.3.4.2.3 evita la inanición. Ningun efecto sobre la logica del programa solo mejoran las caracteristicas dependientes del TIEMPO
1.2.3.4.2.4 CON PRIORIDAD
1.2.3.4.2.4.1 Usa colas FIFO. cond.wait(PRIORIDAD: Integer). Tras bloqueo se ordena a los procesos en la cola por PRIORIDAD. cond.Signal reanuda al proceso con volor mas bajo de PRIORIDAD
1.2.3.5 SEMANTICA
1.2.3.5.1 SEÑALAR Y CONTINUAR
1.2.3.5.1.1 Proceso señalador continua su ejecución dentro del monitor hasta que sale o se bloquea. AL continuar dentro del monitor el proceso señalador podría hacer falsa la condicion lógica por la que esperaba el proceso señalado. Esta semántica OBLIGA a programar la operación wait en un bucle
1.2.3.5.2 SEÑALAR Y SALIR
1.2.3.5.2.1 El proceso señalador sale del monitor despues de ejecutar cond.signal. Esta semántica condiciona el ESTILO de progrmación ya que obliga a colocar SIEMPRE la operación signal como última instrucción
1.2.3.5.3 SEÑALAR Y ESPERAR
1.2.3.5.3.1 El proceso señalador se bloquea justo despues de ejecutar la operación signal. El proceso señalado entra de forma inmediata al monitor. El proceso señalador entra en la cola de procesos del monitor. Es una semántica INJUSTA
1.2.3.5.4 SEÑALAR Y ESPERA URGENTE
1.2.3.5.4.1 Esta solución intenta corregir el problema de la falta de EQUITATIVIDAD de (SS) El proceso señalador se bloquea justo despues de ejecutar la operación signal. El proceso señalado entra de forma inmediata al monitor. El proceso señalador entra en una nueva cola de procesos que esperan para acceder al monitor (cola de procesos urgentes)
1.2.3.5.5 POTENCIA EXPRESIVA: todas las semánticas son capaces de resolver los mismos problemas. FACILIDAD DE USO: la semántica SS condiciona el estilo de programación. EFICIENCIA: las semánticas SE y SU resultan ineficiente "suponiendo un bloqueo innecesario -> doble cambio de contexto en CPU" la semántica SC es un poco ineficiente al obligar usar un bucle para cada instrucción signal
1.2.3.6 VERIFICACIÓN
1.2.3.7 IMPLEMENTACIÓN CON SEMÁFOROS
1.2.3.7.1 COLA DEL MONITOR: semáforo MUTEX. COLA PROC. URGENTES: semáforo NEXT y el nÚmero de procesos en la cola se contabiliza en la variable NEXT_COUNT (necesaria para implementar la semántica SU) esta implementación no permite llamadas recursivas
1.2.3.7.2 COLA DEL MONITOR. COLA DE PROCESOS URGENTES, COLA DE PROCESOS BLOQUEADOS
1.2.3.8 semáforos y monitores son equivalentes en potencia expresiva pero los monitores facilitan el desarrollo
1.2.4 ofrece interfaces de acceso a estructuras de datos, ademas se usa bloqueos de procesos
Show full summary Hide full summary

Similar

Evolución de la Informática
Diego Santos
FUNDAMENTOS DE REDES DE COMPUTADORAS
anhita
TECNOLOGÍA TAREA
Denisse Alcalá P
Navegadores de Internet
al210561
DISPOSITIVOS DE ALMACENAMIENTO
Esteban Bravo3B
Mapa Conceptual de la arquitectura de base de datos
Alan Alvarado
Mapa Conceptual Hardware y Software
Jeferson Alfonso Alvarado Suarez
Abreviaciones comunes en programación web
Diego Santos
Curso Basico De Android
manrongel
codigos QR
Cristina Padilla
VENTAJAS Y DESVENTAJAS DE UNA BASE DE DATOS RELACIONAL
Patricia Cualchi