Sincronizacion
description
Transcript of Sincronizacion
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 1/38
Sincronización
Sistemas Operativos
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 2/38
Procesos Independientes
• No comparten estado (aislados entre sí)
• Su ejecución es determinista = la
ejecución del mismo programa con losmismos datos produce los mismosresultados.
• ada proceso puede avanzar a un ritmoar!itrario.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 3/38
Procesos ooperantes
• "n este tema #a!laremos deprocesos$#e!ras %uecooperan& ' omparten estado normalmente
mediante varia!les compartidasentre los dierentesprocesos$#e!ras.
' "jecución no determinista odiícil de reproducir dado %ueesta sometida a condiciones decarrera.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 4/38
*ipos de Procesos
• Independientes ' Su estado no es
compartido
' Son deterministas
' Son reproduci!les ' Pueden ser detenidos + re,
arrancados sin ning-neecto negativo
• ooperantes ' Su estado es compartido
' Su uncionamiento no esdeterminista
' Su uncionamiento puedeser irreproduci!le
' Si son detenidos +posteriormente re,arrancados puede %ue se
produzcan eectosnegativos
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 5/38
so de procesos cooperantes
• /os procesos %ue cooperan se puedenutilizar para& ' 0anar velocidad solapando actividades o
realizando tra!ajo en paralelo. ' ompartir inormación entre tra!ajos.
' "structurar mejor una aplicación.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 6/38
oncurrencia + Paralelismo
• "l paralelismo de una aplicaciónmultiprocesador es el grado real deejecución paralela alcanzado. ' "st1 limitado por el n2 de procesadores
disponi!les para la aplicación.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 7/38
oncurrencia + Paralelismo
• /a concurrencia de una aplicación es elm13imo grado de paralelismo alcanza!lecon un 4n-mero ilimitado5 deprocesadores. ' 6epende de como est1 escrita la aplicación +
del n-mero de #e!ras de control %ue pueden
ejecutarse simult1neamente.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 8/38
7emoria ompartida
• "n el tema nos moveremos en elparadigma de memoria compartida ' dos
ó m1s procesos comparten memoria.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 9/38
omo se puede compartir
• Procesos independientes& ' "l SO suministra medios para compartir
memoria&
• ni3 ' IP s#ared memor+ (s#mget() ...)• 8indo9s + ni3 ' arc#ivos pro+ectados en
memoria.
• :plicaciones multi#e!radas& ' las #e!ras de una aplicación comparten
memoria de orma natural pues comparten elmismo espacio de direcciones.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 10/38
ondición de carrera
• Se produce una condición de carreracuando el resultado de la ejecución dedos o m1s procesos %ue compartenvaria!les comunes depende de lavelocidad relativa a la %ue cada procesose ejecuta es decir del orden en el %ue
se ejecutan las instrucciones.• Para muestra un !otón ...
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 11/38
"l Spooler de impresión
• uando un proceso desea imprimirescri!e el nom!re del arc#ivo en undirectorio spooler. Otro proceso (eldemonio de impresión) veriica si e3istenarc#ivos para imprimir + si los #a+ losimprime para luego eliminar sus nom!res
del directorio.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 12/38
"l Spooler de impresión
• Supongamos %ue el directorio tiene unconjunto ininito de entradas ; < >
• *enemos ademas varia!les compartidas ' Out %ue apunta al siguiente arc#ivo a imprimir
' In %ue apunta a la siguiente entrada li!re enel directorio
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 13/38
"l Spooler de impresión
• "n un instante dado tenemos las entradas; a ? vacias + la @ al A ocupadas.
• "n orma Bo, simult1nea los procesos : +C deciden colocar un arc#ivo en la ila deimpresión.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 14/38
"l Spooler de impresión
• "n los escenarios donde la /e+ de 7urp#+es aplica!le ocurre lo siguiente& ' : lee in + almacena su valor D en una varia!le
local reeEslot. ' "n ese momento ocurre una interrupción + se
le pasa el %uantum a C.
• "l proceso C lee in + o!tiene el valor D porlo %ue almacena su arc#ivo en el espacio D+ actualiza in como F luego #ace otrascosas.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 15/38
"l Spooler de impresión
• "n cierto momento el proceso : vuelve aejecutarse revisa reeEslot encuentra elvalor de D + escri!e el nom!re de su
arc#ivo en el lugar D ' on lo cual elimina el arc#ivo %ue C #a!ía
colocado.
• /uego calcula in como F por lo %ue eldirectorio %ueda consistente.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 16/38
"3clusión 7utua
• oncepto %ue garantiza %ue si un procesoutiliza un recurso compartido los dem1sno pueden utilizarlo.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 17/38
Sección rítica
• Parte del programa en la %ue se tieneacceso al recurso compartido.
• Para evitar que existan condiciones de
competencia, se debe evitar que dos o
más procesos accedan al mismo tiempo a
la Sección Crítica.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 18/38
ondiciones
• ual%uier solución al pro!lema de!ecumplir @ condiciones& ' procesos no de!en encontrarse al mismo
tiempo dentro de sus secciones críticas ' No se de!e #acer #ipótesis so!re la velocidad
de la P.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 19/38
ondiciones
• > ' Ninguno de los procesos %ue estGn en
ejecución uera de la sección crítica puede
!lo%uear a otro proceso. ' Ning-n procesos de!e esperar ininitamente
para entrar en su sección crítica.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 20/38
Operaciones atómicas
• na operación se dice %ue es atómica (enun sistema uní procesador) cuando seejecuta con las interrupciones
des#a!ilitadas• /as reerencias + las asignaciones son
atómicas en la ma+oría de los sistemas.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 21/38
Operaciones atómicas
• "sto no es siempre cierto para matricesestructuras o n-meros en coma lotante
• *ípicamente la ar%uitectura proporcionaoperaciones especíicas para lograr laatomicidad
• Si el #ard9are no proporcionaoperaciones atómicas Gstas no puedenconstruirse por sot9are
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 22/38
Solución 0eneral
• Solución general&do {
protocolo de entrada
sección crítica
protocolo de salida
resto de la sección
} while (TRUE);
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 23/38
*ipos de solución
• Suposiciones& ' *odos los procesos se ejecutan a una
velocidad distinta de cero.
' Su velocidad relativa no inlu+e.• Soluciones !asadas en varia!les de
control
• Soluciones !asadas en instruccionesm1%uina especíicas (test_and_set oswap)
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 24/38
*ipos de solución
• Soluciones !asadas en primitivas delsistema operativo
• Soluciones proporcionadas por ellenguaje regiones críticas + monitores.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 25/38
"3clusión rente al Hard9are
• 6es#a!ilitar las interrupciones paraproteger nuestra S de la rutina deservicio de interrupción.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 26/38
"3clusión rente al Hard9are
• n proceso en su S puede verseinterrumpido por una SI con la %uecomparte datos. ' Para proteger el acceso concurrente a las
estructuras de datos del Jernel por parte delas SIs + el propio código del SO de!emos
!lo%uear las interrupciones&
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 27/38
6es#a!ilitar Interrrupciones
• onsideraciones& ' /as interrupciones necesitan un servicio
r1pido no intererirlas demasiado& la S
anterior de!e ser lo m1s !reve posi!le. ' Sólo !lo%uear las interrupciones cu+osmanejadores acceden a la sección crítica.
• "sto no suele ser siempre via!le en
multiprocesadores& el coste de des#a!ilitarla interrupciones en todos losprocesadores es mu+ elevado.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 28/38
Karia!le de cerradura
• Si se desea entrar a la S se veriica lacerradura ' Su es ; el proceso cam!ia el valor a < + entra
' Si es < el proceso espera #asta o!tener el ;
• :%uí ocurre lo %ue ocurrió con el ejemplodel spooler de impresión.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 29/38
:lternancia estricta
9#ile (<) L $$ P;
9#ile ( turno M= ; )
seccioncritica()
turno = <
seccionNoritica()
9#ile (<) L $$ P<
9#ile ( turno M= < )
seccionritica()
turno = ;
seccionNoritica()
"l proceso P; analiza turno + entra a su región crítica"l proceso P< determina %ue turno es ; por lo %ue espera (turno = <)uando P; sale de su S cam!ia turno a < por lo %ue P< entra en S
SI P< termina mu+ r1pido + le da el valor ; a turno ejecutandolentamente su sección NO crítica."l proceso P; sale de su S mu+ r1pido con turno = < ejecuta su SN eintenta entrar a su S pero no puede entrar por%ue turno = < a pesar de%ue nadie esta en la S."sta solución no es adecuada cuando un proceso es m1s lento %ue otro.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 30/38
"spera ocupada
• onsiste prue!a continua de una varia!le enespera de %ue aparezca cierto valor.
• No es adecuada por%ue desperdicia tiempo deP + consideremos el siguiente escenario ' procesos H con m13ima prioridad + / con !aja
prioridad la regla de planiicación es H se ejecutasiempre %ue este listo.
' "n cierto momento / esta en su sección critica pero Hpasa a estado listo
' H empieza su ejecución pero como / nunca m1s ser1planiicada H estara en loop ininito.
' Ocurre el pro!lema de inversión de prioridad.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 31/38
Solución de Peterson
• uando se va a entrar a S sellama a entrar() proceso = ; o <
• 6espues de terminar con la S sellama a dejar.
• Ning-n proceso en su S
• P; llama a entrar indica su interes+ pone turno en ;.
• omo P< no esta interesado saledel !ucle.
• Si P< llama a entrar() espera #asta
%ue interes;Q = R:/SO.• Si lo llaman de manera casi
simultanea con P< despues de P;ver el valor de turno.
int turno interesNQvoid entrar( int proceso ) L
otro = < ' proceso
interesprocesoQ = K"6:6
turno = proceso
9#ile ( turno = proceso interesotroQ )
void dejar( int proceso ) L
interes proceso Q = R:/SO
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 32/38
*S/
• /a instrucción lee el contenido de unapala!ra de memoria en un registro paradespuGs almacenar un valor distinto de
cero en esa dirección• /as operaciones de lectura +
almacenamiento de la pala!ra tienen la
garantía de ser indivisi!les
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 33/38
*S/
• Se emplea una varia!le compartida lag.Tsta coordina el acceso al recursocompartido.
• uando lag==; cual%uier proceso puededarle el valor < mediante la instrucción*S/ + despuGs leer o escri!ir en el
recurso compartido. :l terminar elproceso vuelve a #acer lag=;.
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 34/38
*S/
enter_region&tsl registerlag $$ copia lag al registro + #ace lag=<cmp register,#0 // ¿flag = 0?
jnz enterEregion $$ si era distinto de cero la cerradura$$ esta!a esta!lecida por lo %ue #a+$$ %ue #acer un ciclo
ret $$ retorno a %uien #izo la llamadaleave_region&
mov lagU; $$ almacena un ; en lagret $$ regresa a %uien #izo la llamada
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 35/38
"jercicios
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 36/38
Sem1oros
• Introducidos por 6ijJstra en los aVos A;• "s un tipo especial de varia!le %ue sólo puede ser
accedida por dos primitivas P + K• P (semáoro) !"#$
' Operación atómica %ue espera #asta %ue el sem1oro seapositivo en este momento lo decrementa en <• % (semáoro) UP
' Operación atómica %ue incrementa el sem1oro en <• Wómo %uedaría el pro!lema de la sección crítica con
sem1orosXP (e&m't) ección crítica% (e&m't)
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 37/38
aracterísticas
• Son independientes de la m1%uina
• Son simples
• Pueden tra!ajar con varios procesos
• Pueden permitir %ue varios procesos entren enla sección crítica al mismo tiempo en caso denecesitarse esta posi!ilidad
• 6o!le uso de los sem1oros& ' "3clusión mutua
' Sincronización
7/17/2019 Sincronizacion
http://slidepdf.com/reader/full/sincronizacion-568c9fd5d8e0c 38/38
Productor onsumidor
P (sm_acíos);
P (e&m't);
Produce un dato;
% (e&m't);
% (sm_llenos);
P (sm_llenos);
P (e&m't);
Consume el dato;
% (e&m't);
% (sm_acíos);
WPor %uG el productor #ace P(smEvacíos) + K(smEllenos)XW"s importante el orden en %ue se ejecutan las primitivas P
+ KXWómo podemos e3tender el pro!lema si #a+ dosconsumidoresX