You are on page 1of 5

Escuela Acadmico Profesional de Ing. Informtica y Sistemas. Crdenas Musaja Jess. Modelo del Bar ero dormil!

Modelo del Barbero dormiln


Escuela Acadmico Profesional de Ingeniera Informtica y Sistemas Universidad Nacional Jorge Basadre Grohmann Tacna-Per
jrcinformatico@gmail.com

Crdenas Musaja Jess

RESUMEN " El #ro lema del ar ero dormil!n es un #ro lema de sincroni$aci!n. Consiste en una ar er%a en la &ue tra aja un ar ero &ue tiene un nico sill!n de ar ero y 'arias sillas #ara es#erar. Cuando no (ay clientes) el ar ero se sienta en una silla y se duerme. Cuando llega un nue'o cliente) ste o ien des#ierta al ar ero o si el ar ero est afeitando a otro cliente) se sienta en una silla *o se 'a si todas las sillas estn ocu#adas #or clientes es#erando+. El #ro lema consiste en reali$ar la acti'idad del ar ero sin &ue ocurran condiciones de carrera. ,a soluci!n im#lica el uso de semforos y o jetos de e-clusi!n mutua #ara #roteger la secci!n cr%tica. PA,AB.AS C,A/E " Bar ero dormil!n) Semforos) E-clusion mutua) Secci!n cr%tica) E-clusion mutua) 0ait*+) Signal*+. ABSTRACT The sleepy barber problem is a timing issue. It consists o a barbershop !here you !or" a barber !ho has only one barber chair an# chairs or !aiting. $hen there are no customers% the barber sits on a chair an# alls asleep. $hen a ne! client% he or !a"es the barber or the barber is sha&ing another customer% sits on a chair 'or !ill i all seats are occupie# by customers !aiting(. The problem is the acti&ity o the barber !ithout race con#itions occur. The solution in&ol&es the use o semaphores an# mute) ob*ects to protect the critical section.

I. I12.345CCI61 Este art%culo se discute los #rinci#ales contenidos te!ricos y #rcticos de algunos mtodos de sincroni$acion y #ro lemas de #rocesos en sistemas concurrentes. Antes de tocar el modelo del BA.BE.3 43.MI,61) se define algunos conce#tos sicos tles como del Modelo de Semforos) El #ro lema del Productor7consumidor) 89u es una Secci!n cr%tica:. En seguida se desarrolla el moti'o #or el cual (a sido creado este documento. E, M34E,3 4E, BA.BE.3 43.MI,61) el cual #ara a ordar y entender mejor este #ro lema clsico) se descri en los #asos &ue #ueden resultar tiles a la (ora de enfrentarse a un #ro lema de sincroni$aci!n entre #rocesos. ;inalmente se concluye con el Pseudoc!digo de la soluci!n al #ro lema y los Patrones de sincroni$aci!n. II. 4ESA..3,,3 4E C312E1I43S Conceptos bsicos. El problema del productor/consumidor Considere un uffer de tama<o limitado &ue se com#arte #or un #roceso #roductor y otro #roceso consumidor. Mientras el #rimero a<ade elementos al es#acio de almacenamiento com#artido) el

2!#icos A'an$ados II

Escuela Acadmico Profesional de Ing. Informtica y Sistemas. Crdenas Musaja Jess. Modelo del Bar ero dormil!n

segun do los consume. E'identemente) el acceso concurrente a este uffer #uede generar incosistencias de dic(os datos a la (ora de) #or ejem#lo) modificar los elementos contenidos en el mismo.

Cuando un #roceso incrementa el semforo) si (ay otros #rocesos lo&ueados entonces uno de ellos se des lo&uear. ,as o#eraciones de sincroni$aci!n de los semforos son) #or lo tanto) dos> 0ait y signal. Estas o#eraciones tam in se suelen denominar P *del (olands Pro eren+ y / *del (olands /er(ogen+. 2odas las modificaciones del 'alor entero asociado a un semforo se (an de ejecutar de manera at!mica) es decir) de forma indi'isi le. En otras #ala ras) cuando un #roceso modifica el 'alor de un semforo) ningn otro #roceso #uede modificarlo de manera simultnea.

;igura => C!digo #ara los #rocesos #roductor y consumidor.

Modelo del Semforo Es una (erramienta de sincroni$aci!n genrica e inde#endiente del dominio del #ro lema) ideada #or 4ijs?tra en =@AB. =. Bsicamente) un semforo es similar a una 'aria le entera #ero con las tres diferencias siguientes> C. Al crear un semforo) ste se #uede iniciali$ar con cual&uier 'alor entero. Sin em argo) una 'e$ creado) s!lo es #osi le incrementar y decrementar en uno su 'alor. 4e (ec(o) no se de e leer el 'alor actual de un semforo. D. Cuando un #roceso decrementa el semforo) si el resultado es negati'o entonces dic(o #roceso se lo&uea a la es#era de &ue otro #roceso incremente el semforo.

;igura C> Modelo de funcionamiento de un semforo. ,os semforos se suelen clasificar en semforos contadores y semforos inarios. 5n semforo contador es a&ul &ue #ermite &ue su 'alor #ueda 'ariar sin restricciones) mientras &ue en un semforo inario dic(o 'alor s!lo #uede ser E ! =. 2radicionalmente) los semforos inarios se suelen denominar mute-. Seccin crtica El segmento de c!digo en el &ue un #roceso #uede modificar 'aria les com#artidas con otros #rocesos se denomina secci!n cr%tica *'er figura D+. Para e'itar inconsistencias) una de las ideas &ue se #lantean es &ue cuando un #roceso est ejecutando su secci!n cr%tica ningn otro #rocesos #uede ejecutar su secci!n cr%tica asociada.

2!#icos A'an$ados II

Escuela Acadmico Profesional de Ing. Informtica y Sistemas. Crdenas Musaja Jess. Modelo del Bar ero dormil!n

El #ro lema de la secci!n cr%tica consiste en dise<ar algn ti#o de soluci!n #ara garanti$ar &ue los #rocesos in'olucrados #uedan o#erar sin generar ningn ti#o de inconsistencia. 5na #osi le estructura #ara a ordar esta #ro lemtica se #lantea en la figura D) en la &ue el c!digo se di'ide en las siguientes secciones> Seccin de entrada) en la &ue se solicita el acceso a la secci!n cr%tica. Seccin crtica, en la &ue se reali$a la modificaci!n efecti'a de los datos com#artidos. Seccin de salida, en la &ue t%#icamente se (ar e-#l%cita la salida de la secci!n cr%tica. Seccin restante) &ue com#rende el resto del c!digo fuente.

&ue el ar ero tra aje. Si no (ay clientes) entonces el ar ero se duerme. Si un cliente entra en la ar er%a y todas las sillas estn ocu#adas) es decir) tanto la del ar ero como las de la sala de es#era) entonces el cliente se marc(a. Si el ar ero est ocu#ado #ero (ay sillas dis#oni les) entonces el cliente se sienta en una de ellas. Si el ar ero est durmiendo) entonces el cliente lo des#ierta. Para a ordar este #ro lema clsico se descri irn algunos #asos &ue #ueden resultar tiles a la (ora de enfrentarse a un #ro lema de sincroni$aci!n entre #rocesos. En cada uno de estos #asos se discutir la #ro lemtica #articular del #ro lema de la ar er%a. =. Identificacin de procesos) con el o jeti'o de distinguir las distintas entidades &ue forman #arte del #ro lema. En el caso del ar ero dormil!n) estos #rocesos son el ar ero y los clientes. 2%#icamente) ser necesario otro #roceso manager encargado del lan$amiento y gesti!n de los #rocesos es#ec%ficos de dominio. C. A rupacin en clases o tro!os de cdi o) con el o jeti'o de estructurar a ni'el de c!digo la soluci!n #lanteada. En el caso del ar ero) el c!digo se #uede estructurar de acuerdo a la identificaci!n de #rocesos.

;igura D> Estructura general de un #roceso. Definicin del barbero dormiln El #ro lema original de la ar er%a fue #ro#uesto #or 4ij?stra) aun&ue comnmente se suele conocer como el #ro lema del ar ero dormil!n. El enunciado de este #ro lema clsico de sincroni$aci!n se e-#one a continuaci!n. ,a ar er%a tiene una sala de es#era con n sillas y la (a itaci!n del ar ero tiene una nica silla en la &ue un cliente se sienta #ara
2!#icos A'an$ados II

;igura F> Secuencia de #asos #ara dise<ar una soluci!n ante un #ro lema de sincroni$aci!n.

D. Dentificacin de recursos compartidos)

Escuela Acadmico Profesional de Ing. Informtica y Sistemas. Crdenas Musaja Jess. Modelo del Bar ero dormil!n

es decir) identificaci!n de a&uellos elementos com#artidos #or los #rocesos. Ser necesario asociar (erramientas de sincroni$aci!n #ara garanti$ar el correcto acceso a dic(os recursos. Por ejem#lo) se tendr &ue usar un semforo #ara controlar el acceso concurrente al nmero de sillas. F. Identificacin de e"entos de sincroni!acin) con el o jeti'o de delimitar &u e'entos tienen &ue ocurrir o ligatoriamente antes &ue otros. Por ejem#lo) antes de #oder actuar) algn cliente (a de des#ertar al ar ero. Ser necesario asociar (erramientas de sincroni$aci!n #ara controlar dic(a sincroni$aci!n. Por ejem#lo) se #odr%a #ensar en un semforo inario #ara &ue un cliente des#ierte al ar ero. B. Implementacin) es decir) codificaci!n de la soluci!n #lanteada utili$ando algn lenguaje de #rogramaci!n. Por ejem#lo) una alternati'a es el uso de los mecanismos &ue el estndar P3SIG define #ara la mani#ulaci!n de mecanismos de sincroni$aci!n y de segmentos de memoria com#artida. En el caso #articular del #ro lema del ar ero dormil!n se distinguen claramente dos recursos compartidos> #as sillas, com#artidas #or los clientes en la sala de es#era. El silln, com#artido #or los clientes &ue com#iten #ara ser atendidos #or el ar ero. Para modelar las sillas se (a o#tado #or utili$ar un segmento de memoria compartida &ue re#resenta una 'aria le entera. Con dic(a 'aria le se #uede controlar fcilmente el nmero de clientes &ue se encuentran en la ar er%a) modelando la situaci!n es#ec%fica en la &ue todas las sillas estn ocu#adas y) #or lo tanto) el cliente (a de marc(arse. ,a 'aria le
2!#icos A'an$ados II

denominada numHclientes se iniciali$a a E. El acceso a esta 'aria le (a de ser e-clusi'o) #or lo &ue una 'e$ se utili$a el #atr!n mute-. 3tra #osi le o#ci!n (u iera sido un semforo contador iniciali$ado al nmero inicial de sillas li res en la sala de es#era de la ar er%a. Sin em argo) si utili$amos un semforo no es #osi le modelar la restricci!n &ue (ace &ue un cliente a andone la ar er%a si no (ay sillas li res. Con un semforo) el cliente se &uedar%a lo&ueado (asta &ue (u iese un nue'o (ueco. Por otra #arte) #ara modelar el recurso com#artido re#resentado #or el sill!n del ar ero se (a o#tado #or un semforo binario) denominado sill!n) con el o jeti'o de garanti$ar &ue s!lo #ueda (a er un cliente sentado en l. .es#ecto a los e"entos de sincroni!acin) en este #ro lema e-iste una interacci!n directa entre el cliente &ue #asa a la sala del ar ero) es decir) el #roceso de des#ertar al ar ero) y la notificaci!n del ar ero al cliente cuando ya (a terminado su tra ajo. El #rimer e'ento se (a modelado mediante un semforo inario denominado ar ero) ya &ue est asociado al #roceso de des#ertar al ar ero #or #arte de un cliente. El segundo e'ento se (a modelado) igualmente) con otro semforo inario denominado fin) ya &ue est asociado al #roceso de notificar el final del tra ajo a un cliente #or #arte del ar ero. Am os semforos se iniciali$an a E. En la figura B se muestra el #seudoc!digo de una #osi le soluci!n al #ro lema del ar ero dormil!n. Como se #uede a#reciar) la #arte relati'a al #roceso ar ero es tri'ial) ya &ue ste #ermanece de manera #asi'a a la es#era de un nue'o cliente) es decir) #ermanece lo&ueado mediante 0ait so re el semforo ar ero. Cuando aya terminado de cortar) el ar ero notificar dic(a finali$aci!n al cliente mediante signal

Escuela Acadmico Profesional de Ing. Informtica y Sistemas. Crdenas Musaja Jess. Modelo del Bar ero dormil!n

so re el semforo fin. E'identemente) el cliente estar lo&ueado #or 0ait. El #seudoc!digo del #roceso cliente es algo ms com#lejo) ya &ue (ay &ue controlar si un cliente #uede o no #asar a la sala de es#era. Para ello) en #rimer lugar se (a de com#ro ar si todas las sillas estn ocu#adas) es decir) si el 'alor de la 'aria le com#artida numHclientes a llegado al m-imo) es decir) a las 1 sillas &ue conforman la sala de es#era. En tal caso) el cliente (a r de a andonar la ar er%a. 1ote c!mo el acceso a numHclientes se gestiona mediante mute-. Si (ay alguna silla dis#oni le) entonces el cliente es#erar su turno. En otras #ala ras) es#erar el acceso al sill!n del ar ero. Esta situaci!n se modela ejecutando 0ait so re el semforo sill!n. Si un cliente se sienta en el sill!n) entonces deja una silla dis#oni le.
PROCESO CLIENTE 1. si no sillas libres, 1.1 marcharse 2. si hay sillas libres, 2.1 sentarse 2.2 esperar sillon 2.3 levantarse silla 2.4 ocupar sillon 2.5 despertar barbero 2.6 esperar fin 2.7 levantarse silln PROCESO BARBERO 1. dormir 2. despertar 3. cortar 4. notificar fin 5. volver a 1

A continuaci!n) el cliente sentado en el sill!n des#ertar al ar ero y es#erar a &ue ste termine su tra ajo. ;inalmente) el cliente a andonar la ar er%a li erando el sill!n #ara el siguiente cliente *si lo (u iera+. III. C31C,5SI31ES En conclusion se a a#rendid! mediante definiciones) grficos) ejem#los con #seudoc!digo el funcionamiento del modelo del ar ero dormilon. Secuencia de #asos #ara dise<ar una soluci!n ante un #ro lema de sincroni$aci!n.

I/. .E;E.E1CIAS I=J PROGRAMACIN CONCURRENTE Y TIEMPO REAL (EDITORIAL BUBOK PUBLISHING S.L) ,avid -alle.o /ernand01 ) 2arlos 3on14les 5orcillo ) 6avier 7lbusac 6im0ne1

while 1"* wait barbero"# cortar "# wait mute!"# si'nal fin"# if num$clientes%%& then" + si'nal mute!"# return# num$clientes((# si'nal mute!"# wait silln"# wait mute!"# num$clientes))# si'nal mute!"# si'nal barbero"# wait fin", si'nal silln"

;igura B> Pseudoc!digo de la soluci!n al #ro lema del ar ero dormil!n.

2!#icos A'an$ados II

You might also like