Sincronizacion

38
 Sincronización Sistemas Operativos

description

sistemas operativos

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