Está en la página 1de 34

EL

HARDWARE DE
SINCRONIZACIÓN
MUTEXES
También llamados candados, son
Variable que puede estar en uno de
dos estados: abierto (desbloqueado)
o cerrado (bloqueado)

2
Área de exclusión mutua

1 2
MÍNIMA COMPLETA

2
Técnica usada por algunos virus para
controlar el acceso a recursos
SEMÁFOROS
Variable de tipo entero
que tiene definida la
siguiente interfaz
Inicialización
Se puede inicializar el
semáforo a cualquier valor
entero, pero después de
esto, su valor ya puede no
ser leído.
Decrementar
Cuando un hilo decrementa el
semáforo, si el valor es negativo,
el hilo se bloquea y no puede
continuar hasta que otro hilo
incremente el
semáforo.
Incrementar
Cuando un hilo incrementa el
semáforo, si hay hilos esperando,
uno de ellos es despertado.
Implementacion De Patrones
Señalizar
Un hilo debe informar a otro que
cierta condición está ya cumplida
por ejemplo, un hilo prepara una
conexión en red mientras que otro
calcula lo que tiene que enviar.
Rendezvous
Este patrón busca que dos hilos se
esperen mutuamente
en cierto punto para continuar en
conjunto —por ejemplo, en una apli-
cación GUI, un hilo prepara la interfaz
gráfica y actualiza sus eventos
mientras otro efectúa cálculos para
mostrar.
Barrera
Una barrera es una generalización de
rendezvous que permite la sin-
cronización entre varios hilos (no sólo
dos), y no requiere que el papel de
cada uno de los hilos sea distinto.
Cola
Se emplea cuando se tienen dos clases de
hilos que deben proceder
pares. Este patrón es a veces referido como
baile de salón: para que una
pareja baile, hace falta que haya un líder y un
seguidor. Cuando llega una
persona al salón, verifica si hay uno de la otra
clase esperando bailar.
En caso de haberlo, bailan, y en caso
contrario, espera a que llegue su
contraparte.
PROBLEMAS
CLÁSICOS DE
SINCRONIZACIÓN
01 02 03
Productor - Consumidor Lectores - Escritores Filósofos gastronómicos
¿En qué consiste?

Este problema describe dos procesos que acceden a


un buffer de tamaño fijo al mismo tiempo y lo utilizan
como una cola.

El proceso productor produce, valga la redundancia,


01 un recurso o dato y lo almacena en la cola, mientras
que por su parte el proceso consumidor consume
Productor - Consumidor
los datos que el productor va produciendo, siempre
que existan datos o recursos que consumir.

¿En qué consiste?

Consiste de dos procesos que acceden el mismo


bloque de memoria compartida al mismo tiempo
02 tomando en cuenta la restricción de que dos
Lectores - Escritores acciones no pueden ser llevadas a cabo sobre el
mismo bloque de memoria al mismo tiempo
5 filósofos comensales se sientan en una mesa
redonda con un plato de espaguetti en el centro, y
un tenedor es colocado en medio de cada par de
filósofos. Cada filosofo pasa su vida pensando y
03 comiendo, pero necesita dos tenedores para poder
comer. Cada tenedor puede ser usado por un solo
Filósofos gastronómicos
filosofo a la vez y cuando un filosofo termina de
comer debe poner los tenedores de vuelta en su
lugar.
Siendo que el espaguetti es infinito y que cada filosofo no sabe cuando los otros
quieren comer o pensar, el problema reside en diseñar un algoritmo
concurrente tal que ninguno de los filósofos morirá de hambre.
Para esta solución consideremos las siguientes variables:
pensar (p)
comer (c)
hambriento (h)
dormir (d)

MONITORES
Los monitores son estructuras provistas por el
lenguaje o entorno de desarrollo que encapsulan
tanto los datos como las funciones que los
pueden manipular, impidiendo el acceso directo
a las funciones potencialmente peligrosas.

2
Un monitor puede implementarse utilizando cualquiera de
los mecanismos de sincronización, la diferencia radica en
que esto se hace en un solo lugar. Los programas que
quieran emplear el recurso protegido lo hacen incluyendo
el código del monitor como módulo/biblioteca, lo cual
fomenta la reutilización de código.
También incluye variables, que definen el estado de
una instancia de ese tipo, junto con las funciones
que las operan.

La representación de un tipo de monitor no puede


ser utilizada directamente por los diversos procesos.

Por lo tanto, una función definida dentro de un


monitor puede acceder solo a aquellas variables
declaradas localmente dentro del monitor y sus
parámetros formales.
Del mismo modo, solo se puede acceder a las
variables locales de un monitor mediante las
funciones locales.
Indican con precisión como esta funcionando
un sistema.
Producen grandes cantidades de datos.
Son de gran ayuda para evaluar sistemas en
desarrollo

EJEMPLOS DE
SINCRONIZACIÓN
Usa máscaras de interrupción para proteger el
acceso a recursos globales en sistemas mono
procesador

Usa spinlocks en sistemas multiprocesador


También provee dispatcher objects los cuales actúan
como mutex locks, semáforos, eventos y timers.
01
Sincronización en Los Dispatcher objects pueden proveer eventos
Windows Un evento actúa como una variable de condición
Deshabilita las interrupciones para implementar
secciones críticas cortas
Linux provee:

mutex-locks
02 semáforos
spin locks
Sincronización en
Linux
Implementa una variedad de locks para soportar
multitasking, multithreading (incluyendo threads en
tiempo real), y multiprocesamiento.

Lock Exclusión Mutua


Semáforos
Lock Lectores-Escritor
03 Variables de condición
Sincronización en
Solaris
APIs Pthreads son independientes de los SOs
Proveen:

Locks mutex
Variables de condición
Extensiones no portables incluyen:
Locks lector escritor
04 spin locks
Sincronización de
subprocesos
TRANSACCIONES
ATÓMICAS
Qué son ?
Considera un conjunto de operaciones como una única
operación que puede prosperar o fracasar. Este conjunto de
operaciones están agrupadas formando el ámbito de la
transacción. Si una operación se ejecuta correctamente, da paso
a la operación siguiente, en caso contrario realiza una operación
de ROLLBACK que deshace los datos o el estado que iba a ser
persistido y termina la unidad de ejecución o el ámbito de la
transacción.
MODELOS DE
SISTEMA
Modelos de Estación de trabajo

En este modelo el sistema consta de estaciones de trabajo


hjcbsdjbczdbshv
dispersas que están conectadas entre si mediante una red LAN.

Cantidad fija de poder de cómputo exclusiva.


Un alto grado de autonomía para asignar recursos.
Modelos de Pila de Procesadores

Se tienenhjcbsdjbczdbshv
un conjunto de CPUs que se pueden asginar
dinámicamente a los usuarios según la demanda.
En lugar de estaciones de trabajo el sistema tiene terminales
gráficas para conectarse.
Los procesadores se comparten entre todos los dispositivos.
Las solicitudes de procesos se administran siguiendo la teoría
de colas.

También podría gustarte