of 20 /20
Tema 4 Procesadores y procesos en sistemas distribuidos Es posible disponer en un proceso de más de un flujo de ejecución. A cada uno de estos flujos le denominaremos "thread". La introducción de threads en la codificación de servidores aporta ventajas e inconvenientes que serán estudiados en primer lugar. Por otra parte, en un sistema distribuido se dispone de más de un procesador. A continuación, estudiaremos las diversas formas de organizar los procesadores. Finalmente, estudiaremos la forma de asignar un proceso entre todos los procesadores disponibles. 4.1 Procesos y threads En los años ochenta se descubrió que el concepto de proceso, tal como lo entendemos en el mundo UNIX, resultaba desproporcionado para los requisitos de los sistemas distribuidos. El problema radica en que UNIX asocia un único thread de control con cada proceso. Un proceso es un recurso costoso en su creación y en su gestión. Ello lleva consigo que la cooperación entre las distintas actividades de una aplicación donde cada una de ellas ha sido implementada como un proceso sea difícil de programar y costosa en términos de ciclos de UCP por el gran número de llamadas al sistema requeridas en la comunicación de actividades comunicación de procesosy en la planificación de las mismas cambios de contexto(Fig. 4.1). Fig. 4.1 Mapeo tradicional de actividad como proceso En la actualidad, la investigación en sistemas distribuidos y el concepto de microkernel han puesto de manifiesto la necesidad de que en un mismo espacio de direccionamiento convivan más de un thread de control. Aunque no es la única, una de las finalidades de los threads es mejorar las prestaciones de los

[03] Sistemas Distribuidos - Procesadores y Procesos

Embed Size (px)

DESCRIPTION

Por otra parte, en un sistema distribuido se dispone de más de un procesador. A continuación, estudiaremos las diversas formas de organizar los procesadores. Finalmente, estudiaremos la forma de asignar un proceso entre todos los procesadores disponibles.

Text of [03] Sistemas Distribuidos - Procesadores y Procesos

Tema

4

Procesadoresyprocesosen sistemasdistribuidosEsposibledisponerenunprocesodemsdeunflujodeejecucin.Acadaunodeestosflujosledenominaremos "thread".Laintroduccindethreadsenlacodificacindeservidoresaportaventajaseinconvenientesquesern estudiados en primer lugar. Por otra parte, en un sistema distribuido se dispone de ms de un procesador. A continuacin,estudiaremoslasdiversasformasdeorganizarlosprocesadores.Finalmente,estudiaremoslaforma deasignarunprocesoentretodoslosprocesadoresdisponibles.

4.1

ProcesosythreadsEn los aos ochenta se descubri que el concepto de proceso, tal como lo entendemos en el mundo UNIX,resultabadesproporcionadoparalosrequisitosdelossistemasdistribuidos.Elproblemaradicaen queUNIXasociaunnicothreaddecontrolconcadaproceso.Unprocesoesunrecursocostosoensu creacinyensugestin.Ellollevaconsigoquelacooperacinentrelasdistintasactividadesdeunaapli cacindondecadaunadeellashasidoimplementadacomounprocesoseadifcildeprogramarycosto saentrminosdeciclosdeUCPporelgrannmerodellamadasalsistemarequeridasenlacomunica cindeactividadescomunicacindeprocesosyenlaplanificacindelasmismascambiosdecontexto (Fig.4.1).

Fig.4.1Mapeotradicionaldeactividadcomoproceso

En la actualidad, la investigacin en sistemas distribuidos y el concepto de microkernel han puesto de manifiestolanecesidaddequeenunmismoespaciodedireccionamientoconvivanmsdeunthreadde control.Aunquenoeslanica,unadelasfinalidadesdelosthreadsesmejorarlasprestacionesdelos

UNIVERSIDAD NACIONAL DE TRUJILLO 2 ESCUELADEINFORMATICA servidores,ahoranoocultosenlasprofundidadesdelsistemasinoconstruidoscomoprocesosdeusua rio.Enestaseccindiscutimoselconceptodethreadysusimplicaciones.

4.1.1 IntroduccinalconceptodethreadEnocasiones,elservidordeficherosdebebloquearseporquelosoctetosquesolicitaunprocesodeusua rionoseencuentranenlacachydebesolicitarlalecturadelbloquecorrespondientealmanejadorde disco.Elservidordeficherossebloqueaesperandoelservicio.Leerunbloquedediscollevaalgntiem po.Duranteestetiempo,elmanejadorsetambinsebloquea.Elresultadodelbloqueodelservidores queotraspeticionesdebloquesporpartedeotrosprocesosdeusuarionopuedenseratendidas,estno noestnlosoctetossolicitadosdisponiblesenlacach.Parasubsanarelproblemasedebedisponerde unoomsthreadsalternativosenelservidordeficherosquecontinenconlaejecucin.As,cuandoun threadsebloqueaenlasolicituddeunbloquealmanejadordediscoduro,otrothreadtomaelcontrol sirviendolasiguientepeticin,cuyosoctetospuedenestarenlacach.Laintroducindelconceptode threadaumentalaconcurrenciaylasprestacionesdelservidordeficheros. Puedepensarsequelaconcurrenciapuedetambinlograrsemedianterplicasdelservidordeficheros. Cadarplicapuedeatenderunasolicituddelaaplicacindeusuario.Estaesunaopcinquenodaresul tadoporque,entreotrascosas,ambosprocesosnecesitancompartirlacachdebloques.Elloexigeun procesodedicadoasoportarlacachymecanismosdepasodemensajesentrelosdosservidores(Fig. 4.2),unaopcinineficientedebidoaloscostosdecomunicacin.

Fig.4.2Aceleracindelservidordeficherosporreplicacin

Elusodethreadseslamejoropcin.Lafigura4.3a)muestratresprocesos.Cadaunodeellostienesu propioespaciodedireccionamientoydescriptordeproceso.Lostresprocesos,yaquenocompartenes pacio de direcciones, deben comunicarse haciendo uso de los servicios de comunicacin de procesos ofrecidosporelsistemaoperativo.Enlafigura4.3b)observamosunnicoprocesocontresthreadsde control.Cadaunodeellostienesupropiocontadordeprogramaysupropiapila,perotodoselloscom partenelmismoespaciodedirecciones.Aestosminiprocesosselesdenominathreadsoprocesoslige ros.Porsupuesto,losthreadscompartenlaUCPenunsistemamonoprocesador.Enunhardwaremulti procesador,sinembargo,losthreadspuedenejecutarenparalelo.Unthreadpuedecrearunthreadhijo y,aligualquelosprocesosinvocar,llamadasalsistema.Siunthreadsebloqueaenunadeestasllamadas, otrapuedetomarlaUCPsinqueelsistemaoperativonecesitecambiardecontexto.

UNIVERSIDAD NACIONAL DE TRUJILLO 3 ESCUELADEINFORMATICA mquina A mquina B

procesos

contador de programa

threads

Fig.4.3a)Tresprocesosconunthreaddecontrolcadauno. b)Unprocesocontresthreadsdecontrol.

Losthreadscompartenunmismoespaciodedireccionamiento,de modoquenohayproteccinentre ellas,todastienenaccesoalasvariblesglobalesdelresto.Elhechoesqueproporcionarproteccinentre losthreads,primero,esimposibley,segundo,noesnecesario.Adiferenciadelosprocesosdeusuario, losthreadssonprogramadosporunmismoprogramador,demodoquenodebenintentaraccionesper judicialesparaelrestodelosthreadssinotodolocontrarioy,silohacendebidoaunerrordecodifica cin,laresponsabilidadrecaesobreelprogramador.Ademsdecompartirespaciodedireccionamiento, losthreadscompartenlosmismosficherosabiertos,manejadoresdeseal,procesoshijos,etc,algoque estilcuandolosthreadsnosonindependientes,sinoquecolaboranenunfincomn.

4.1.2 ElContextodeunthreadLafigura4.4muestraunprogramaquecalculadosvaloresylossuma.Lafigura4.5muestraelproceso tradicionalUNIXasociadoalprogramaconelcontextodelprocesodeterminadoportresbloquesdis tintos,losregistros,laidentidaddelprocesoylosrecursos.int r_a, r_b; main() { calcula_a(&r_a); calcula_b(&r_b); reune(r_a, r_b); } void calcula_a(int *res) { ... *res = Clculo_a(); } void calcula_b(int *res) { ... *res = Clculo_b(); } void reune(int p, int q) { printf("%d\n", p+q); } Fig.4.4Programa

UNIVERSIDAD NACIONAL DE TRUJILLO 4 ESCUELADEINFORMATICA

Fig.4.5ElprocesodelaFig.4.4ysucontexto

Losclculosdelosvaloresr_ayr_bsondosactividadesparalelas,demodoquecadaunapuedeser soportadaporunthread,segnilustralaFig.4.6.Cadathreadtienesupropiapila.Comoseapreciael contextodeunthreadesmuchomsligeroqueelcontextodeunproceso.

Fig.4.6ElprocesodelaFig.4.4condosthreadsdecontrol

4.1.3 Dndeseusanlosthreads?Losthreadsfueroninventadosafindecombinarelparalelismoconlaejecucinsecuencialylasllamadas alsistemabloqueantes.Supongamoslaorganizacindethreadsdelafigura4.7.Enellatenemosunthre ad denominado el despachador junto a un conjunto de threads denominados trabajadores. Todos los threads, despachador y trabajadores, ejecutan bajo la supervisin de una rutina del "ncleo de ejecu cin"denominadaelplanificador.Vamosasuponerqueuntrabajadoresperardenesdeldespachador bloqueadoenunsemforo.Supongamosqueeldespachadorsebloqueaesperandounapeticindeser viciodelosprocesosdeusuario.Cuandoeldespachadorrecibelasolicituddeservicioporejemplo,la lecturadeunbloquededisco,eligeuntrabajadorocioso,copiaelmensajeensusvariablesylodespier tamedianteunaoperacinsobreelsemforo.Hechoesto,eldespachadorvuelveaesperarunmensaje

UNIVERSIDAD NACIONAL DE TRUJILLO 5 ESCUELADEINFORMATICA de los procesos de usuario. El trabajador toma el control mientras el despachador espera, examina el mensajeydeterminasielbloquesolicitadoseencuentraenlacach.Sinoesas,envaunmensajeala tareadeldiscoyesperabloqueadolarplicadesta.Estebloqueocausarlaejecucindelplanificador, quedarpasoaotrothread,posiblementeeldespachadorqueahoraestdispuestodebidoalallegada deunanuevasolicituddeaccesoaldisco,oposiblementeotrotrabajador,queahoraestdispuestopara tomarlaUCP.

Fig.4.7Unservidorconthreads

Consideremosloqueocurresielservidordeficheroshasidoimplementadocomounprocesoconven cional,esdecir,conunsolothreaddecontrol.Unservidordeestetipoestescritocomounblucleinfini todeesperadepeticinyservicio.Trasrecibirunapeticin,lasirveantesdeponerseaesperarlaprxi ma.Silosdatosestnenlacach,lapeticinsesirvedeinmediato,perosinoesas,debeiniciaruna transferenciadediscoyesperaraquestaconcluya.Enesteintervalodetiempolasnuevaspeticiones queseincorporannopuedenseratendidasporqueestnretenidas.Pudieraserquellegasendospeticio nesconlosbloquesenlacach.Sielservidortuviesedosthreadsdecontrol,mientrasunoesperaaldis co,elotropodraservirestasdospeticiones.Laconclusinesqueconelmecanismodethreads,laspres tacionesdelservidoraumentanporquesirvemspeticionesporunidad detiempo.Enunservidorsin threads, una peticin que deba acceder al disco provoca el bloqueo del sistema de ficheros para que otrosprocesostomenlaUCP.Sinembargo,enmuchasocasioneselservidordediscoesunamquinade dicadaaestatarea,demodoquelaUCPquedaociosa,porloqueelusodethreadsquedamsjustifica do,sicabe.Comopodemosapreciar,losthreadsproporcionanmayoresprestaciones. Existe,noobstante,unaformadeprogramarservidoressinutilizarthreadsquealcanzaunaltogradode paralelismo.Elservidoresconcebidocomounamquinadeestadofinito.Existeunnicothreaddecon trolqueesperalaspeticionesdelosprocesosdeusuario.Cuandounapeticinpuedeserservidaapartir delacachsesirveyseesperaunanuevapeticin.Cuandoelbloquenoestenlacachesprecisoen viarunmensajealmanejadordeldisco,grabandoenunatablaelestadodelapeticin.Estemensajese envamedianteunaprimitivasendnobloqueante,demodoqueregistramoslasituacindelallamada pendienteyregresamosaesperarunanuevapeticindelosprocesosdeusuario.Enestemomentopue denllegardostiposdemensajesdenaturalezadiferente,segnindicalaFig.4.8.Uno,unapeticinde usuarioy,dos,unarplicadelmanejadordedisco.Enestediseo,elmodelode"procesosecuencial"se haperdidoenfavordeunaautmatafinitoquereaccionaymodificasuestadointernoenfuncindelos mensajesquerecibe.

UNIVERSIDAD NACIONAL DE TRUJILLO 6 ESCUELADEINFORMATICA

Fig.4.8Unservidorcomomquinadeestadofinito

Frentealmodelodelautmata,conllamadasnobloqueantes,laventajadelosthreadsesqueaumentan elparalelismomientrassonprogramadashaciendousodeprimitivasbloqueantes.Elparalelismoaporta prestacionesylasllamadasbloqueantessencillezenlaprogramacin.Cuandounthreadsolicitaunblo quealdisco,estapeticinpuederealizarsemedianteunaprimitivabloqueantecomosendrecome dianteunallamadaRPC,talycomosehaceenlaprogramacinconvencional.Noesprecisointroducir primitivassendnobloqueantesquecomplicanextraordinariamentelaprogramacin.Estaaportacinde paralelismomsprimitivasbloqueanteseslaaportacindelconceptodethread.LaTabla4.1resumelos tresmodelos. Modelo Threads Proceso Autmatafinito Caractersticas Paralelismo, NOparalelismo, Paralelismo, llamadasbloqueantes llamadasbloqueantes llamadasNObloqueantes

Tabla4.1Tresformasdeprogramarunservidor.

Por otra parte, los threads tambin pueden ser organizados en forma de tubera. Con este modelo, el primerthreadgeneraundatoquepasaaotrothreadparaqueloprocese.Conmsdedosthreads,los datossonprocesadosyentregadosalsiguientethreaddeformasucesiva.Estemodelonoesapropiado paralaconstruccindeservidores,peroscuandosepresentaelproblemadeloslectoresyescritores. Losthreadspermitenresolverloenunprocesonico.Elmodelodetuberaseempleatambinenlaes crituradeclientes.Lafigura4.9muestraunclientecondosthreads.Elprimerthreadgeneraresultados quedebenseralmacenadosenunservidormedianteunallamadaRPC.Desafortunadamente,unallama daconvencionalRPCesbloqueante,loquehaceesperaralcliente.Paraevitarlo,elclientepuedeincor porarunsegundothread,querealizalallamadaRPC.Mientraselsegundothreadpermanecebloqueado, elprimeropuedeseguirgenerandonuevosresultados.Ambosthreadscompartenunaestructuradeda tosenlaqueactancomoescritorylectorrespectivamente.

UNIVERSIDAD NACIONAL DE TRUJILLO 7 ESCUELADEINFORMATICA

Fig.4.9Clienteconthreads

Otrousodelosthreadsesdedicarunodeellosalaejecucindeunmanejadordeseal,comoelespeci ficadoenlallamadaUNIXsignal(Nro_Seal, Manejador).Cuandounasealllegaalproceso, porejemploelvencimientodeunaalarma(SIGALRM)olapulsacindeCtrlCenelteclado(SIGINT), seactivaelthreadquelassirve,hastaesemomentobloqueado,comoalternativaalaejecucindelma nejador.Esteesquemaevitalaprogamacindelmanejadorporelusuario,perodebeprogramarelthre adasociado. Finalmente,encomputadoresmultiprocesador,cadathreadpuedeserasignadoaunprocesador,demo doqueelprocesopuedeejecutarenparalelo.EnuncomputadordeunaslaUCPnoesposible,perola programacindelaaplicacinesindependientedeestehecho.

4.1.4 ImplementandounpaquetedethreadsHaydosformasdeimplementarunabibliotecadethreads.Unaenespaciodelncleo.Dos,enespaciode usuario.Laeleccinestactualmentesujetaacontroversiayunaimplementacinhbridatambinespo sible.Enestaseccindescribimosambosmtodos,mostrandosusventajaseinconvenientes.

4.1.4.1

Implementacin de threads en espacio de usuarioElprimermtododeimplementacindethreadsconsisteengestionarlosenteramenteenelprocesode usuario,demodoqueelncleodelsistemaoperativonosepanadaacercadesielprocesotieneunthre addecontrolomsdeuno.Laventajamsobviadelosthreadsenespaciodeusuarioesquepodemos disponerdeellossintenerquemodificarnuestrosistemaoperativo.Dehecho,variasbibliotecasdethre adshansidodesarrolladasparaUNIX,quetradicionalmentenosoportathreads. Todaslaimplementacionesdethreadsenespaciodeusuariotienenlaestructuradelafigura4.10a).Los threadsejecutansolicitandoserviciosdel"ncleodeejecucin",unmdulodeprocedimientosparages tionaryplanificarlosthreads.Cuandounthreadejecutaunaaccinqueexijasususpensin,operesobre unmutex,invoqueunallamadaalsistemaocualquiercosaqueprovoqueelbloqueo,llamaaunproce dimientodelncleodeejecucin.Esteprocedimientocompruebasielthreaddebesersuspendidoy,en esecaso,almacenalosregistrosdelthreadenunatabla,buscaunthreaddispuestoyloponeaejecutar. Uncambiodecontextodethreadsesalmenosunordendemagnitudmenoscostosoqueuncambiode contextoordinario,dondeelncleodeberealizarmuchomstrabajo.Unaconmutacindethreadexige pocomsquecambiarlosregistrosdelprocesador,entreelloselcontadordeprogramayelpunterode pila.Estavelocidadenlaconmutacindecontextoeselargumentomsfuerteenfavorderealizarlages tindethreadsmedianteunabibliotecadeusuario.

UNIVERSIDAD NACIONAL DE TRUJILLO 8 ESCUELADEINFORMATICA

Fig.4.10a)Bibliotecadegestindethreadsenespaciodeusuario. b)Threadsgestinadosporelncleo.

Otradelasventajasdelasbibliotecasdethreadsesquepermiteacadaprocesoescogersupropioalgo ritmodeplanificacindethreads.Ciertosthreadsrequierenqueelalgoritmonoseaexpulsorafindeno serinterrumpidoenunmomentoinoportuno.Otradelasventajasesquelasbibliotecasdethreadsper mitenmsthreadsenelsistemaquesilosthreadssongestionadosporelsistemaoperativo.Cadathread requiereespacioenelsistemaoperativoparamantenersugestinyesteespaciotieneunlmite,algo quenoocurreconlosthreadsdeusuario,dondeelnmerodethreadsporprocesopuedesermuygran de,ascomoelnmerodeprocesosconthreads. Apesardesermsrpidosquelosthreadssoportadosporelncleo,lasbibliotecasdegestindethre adsacusanseriosproblemasestructurales.Elprimerodeelloses:Cmoseimplementanlasllamadasal sistemabloqueantes?Permitirqueunthreadrealiceunallamadaalsistemaquebloqueeelproceso,co moleerdeunatuberavacaesinaceptable,yaquetodoslosthreadssevenafectadosporelnecesario cambiodecontextodelproceso.Yavimosqueunadelasmetasdelosthreadseralaprogramacincon primitivasbloqueantesmanteniendoelparalelismoentrelosthreads.Siunthreademiteunallamadaal sistemabloqueanteelparalelismosequiebra.Lasolucinescambiarlasllamadasalsistemabloqueantes porotrasnobloqueantes.Sinembargo,estorequierecambiarelsistemaoperativo,desdeluegoalgopo coatractivo.Adems,unadelashiptesisdetrabajodelsoportedethreadsenelprocesodeusuarioera queestaejecutasesobrelaplataformadetrabajohabitual,sinintroducirenelsistemaoperativomodifi cacinalguna.Cambiosenlosserviciosqueprestaelsistemaconllevacambiosenlamayoradelasapli caciones,loqueesabsolutamenteindeseable. Unaalternativaalamodificacindelosserviciosbloqueantesporotrosnobloqueantesesposiblesitu visemosunmecanismoqueinformaseacercadesiunallamadaalsistemavaabloquearseono.Enal gunasversionesdeUNIXexistelallamadaalsistemaselect.Estallamadapermiteconoceralproceso deusuarioquelainvocasiunatuberaestvacaosinoloest,entreotrascosas.Ladefinicindelalla madaselecteslasiguiente:select(int maxfdp1, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout

);

UNIVERSIDAD NACIONAL DE TRUJILLO 9 ESCUELADEINFORMATICA Losargumentosreadfsywritefssonunpunteroaunbloquedeenteros.Sielbloquetienecuatro enterosde32bits,podemosidentificar32*4=128descriptoresdeprocesoenelbloque,aquelloscuyobit estactivo.Elprimerenterodelbloqueidentificalosdescriptores0a31,elsegundolosdescriptores32a 63,etc.Elnombremismodelallamadaderivadeldescriptorolosdescriptoresenlosqueestamosinte resados.Losdescriptoresenreadfsywritefssoncomprobadosporelncleo,quedecidesiestn listosparalectura(hallegadoalgndato)oestnlistosparaescritura(sepuedeseguirenviandodatos). Laestructuratimevaltieneuncampos,unosonsegundosyotromicrosegundos.Siamboscamposson nulos,selectretornaenreadfsywritefslosdescriptorespreparadosparalecturaoescritura.Siel plazoespecificadoesdistintodecero,selectsuspendeelprocesoyretornacuandoelplazovence. Encuantoalaprogramacindethreads,selectpuedeserinvocada,porejemplo,paradeterminarsi unatuberaestvaca,esdecir,siestpreparadaparalectura.Siestvaca,selectretornaindicando estasituacin,demodoqueelthreadnorealizaunallamadadelecturasobrelamismaafindenoblo quearelprocesocompletoy,porlotanto,retrasarelrestodelosthreads.Alternativamente,elthread puededarpasoaotrothreadmedianteunallamadaalplanificadorlocalparaqueejecuteotrothread.El mtodo de select supone prohibir a los threads invocar las llamadas al sistema bloqueantes. Para stasseconstruyeunbibliotecaespecial,dondesecompruebasivaaproducirseelbloqueoy,entalca so,darpasoalplanificador.Estecdigodecomprobacinqueencapsulalallamadaalsistemasedeno minachaqueta.Lachaquetaesunaopcinpocoelegante ypocoeficiente,yaque,almenos,doblael nmerodellamadasalsistemaquehacenlosthreads. La rutina que sirve las interrupciones del reloj reside en espacio del ncleo. Los procesos solicitan del ncleoserviciosdetemporizacin,perodesconocencuandoseproduceunpulsodereloj.Comoconse cuencia,elplanificadordethreadsenelncleodeejecucinesincapazdedeterminarcundounthread ha ejecutado durante demasiado tiempo. Consecuentemente, es la tarea la que debe invocar volunta riamentealplanificadorcuandohaejecutadodurantedemasiadotiempo.Porotraparte,unproblemase codificaconthreadscuandoconceptualmentetienetareasclaramenteindependientesquepuedenser programadascomothreads.Lastareassecomunicanentresosolicitanserviciosdeentradasalida.En cualquieradelosdoscasos,debendarpasoalplanificador,queentoncestomaelcontrolypuedeplanifi carotrothread.Porlotanto,elplanificador,sibiennoseactivaperidicamentecomolarutinadeinte rrupcindereloj,esinvocadomuyamenudoporlosthreadsquegestiona.Silosthreadsraramenteinvo canalplanificadordeberamoscuestionarnossi laforma msadecuadadecodificarnuestroproblema sonlosthreadsynounprocesoclsicodeunnicoflujodecontrol. Apesardetodo,laausenciadeunrelojenelplanificadordethreadstraesusconsecuenciasnegativas. Porejemplo,laesperaactivaenunthreadesperandoqueotrothreadabrauncerrojoestprohibida,ya queelthreadqueloabrenuncatomalaUCPy,comoconsecuencia,laesperaactivasehaceinfinita.Una posiblesolucinesqueelplanificadordethreadsrequieraunainterrupcinderelojcadaciertotiempo, porejempounsegundo.Estaopcinexigeincorporaralaprogramacindelplanificadorelmanejodeex cepciones seales en C, algo que la complica notablemente. Por otra parte, requerir un servicio de alarma muy preciso, con un periodos de pocos milisegundos resulta caro para el ncleo y la precisin sueleserescasaennucleosconvencionales.Hayotraraznquejuegaencontradeestasolucinyesque laalarmadelplanificadorsuelecolisionarconlasalarmassolicitadasporlosthreads.EnellenguajeC,la alarmay,engeneral,todaslasseales,sonconceptosasociadosalproceso,noalthread.

4.1.4.2

Implementacin de threads en el ncleoSielncleoesconscientedelosthreadsdelosprocesos,elncleodeejecucindelprocesodeusuario quegestionalosthreadsdesaparece,comoindicalafigura4.10b).Cuandounthreadquierecrearotro

UNIVERSIDAD NACIONAL DE TRUJILLO 10 ESCUELADEINFORMATICA thread o destruirlo, invoca una llamada al sistema. El descriptor de proceso en el ncleo crece. Ahora tambindebeincluirunatabladedescriptoresdethreads,conunaentradaporthread.Lamismainfor macinquemantenaelncleodeejecucinahorasetrasladaaldescriptordeprocesoenelncleo. Enausenciadelncleodeejecucin,todaslasllamadasquepuedenbloquearelthreadcomoporejem plolasdesincronizacincomosubirunsemforo,sonimplementadascomollamadasalsistema.Enton ceselncleopuedeactivarunthreadbiendelmismoprocesoobiendeotro.Laprincipaldesventajaes elcostodelasllamadasdecreacin,terminacin,sincronizacin,etc,yaquetodasellasexigenuncambio decontexto. Lasventajasdelosthreadsgestionadosenelncleoestribanenquenorequierenvesionesnobloquean tesdelasllamadasalsistemay,porlotanto,suprogramacinesmssencilla.Adems,siunthreadoca sionaunfallodepgina,elncleopuedeactivarotrothreaddelmismoprocesomientrasllegalapgina. Hemosvistoproblemasespecficosqueafectanunosalaimplementacinenespaciodeusuarioyotrosa laimplementacinenelncleo.Adems,existenproblemasqueataenaambos.Unodeellosesque muchosprocedimientosdebibliotecanosonreentrantes.Elusodethreadshacequeunthreadinvoque alprocedimientoy,enmitaddeunaccesoaunaestructuradedatosglobal,seotorgalaUCPaotrothre ad.Estethreadpudeperfectamenteinvocaraestemismoprocedimiento.Laestruturaalaqueaccede seguramenteseencuentraenunestadoinconsistente.Unodeestosprocedimientosesmalloc,dela bibliotecaestndardellenguajeC.Esteprocedimientoaccedeatablasglobalesdelicadas.Nohasidoes critopensandoenquepuedeserinvocadoporthreadsdistintos,demodoquenoesreentrante.Uncaso parecidoeslavariableglobalerrno.LabibliotecaestndarCdebeserreescritaengranpartecuandose utilizan threads. Este problema se soluciona envolviendo cada procedimiento de la biblioteca en una chaquetaqueconsisteenunmutexglobalatodalabiblioteca,queconvierteestaenunmonitorgigan tesco. Tambinesproblemticoeltratamientodeseales,yaquecadathreadpuededesearunmanejadorpar ticularparaunasealdada.EnellenguajeClosmanejadoresseestablecenmediantelallamadaalsiste masignal(Nro_Seal, manejador);Elltimomanejadoractivadoeselvigente,sustituyendo alpreviamenteactivado,talvezporotrothreadoporelncleodeejecucin.

4.1.4.3

El concepto de "Activacin del planificador"Deladiscusinmantenidaacercadedndeimplementarlosthreads,bienenelncleo,bienenespacio deusuario,sellegaalaconclusindeque,dadoelestadodeconocimientoactual,ningunaesmejorque laotra.Variosinvestigadoreshantratadodeconciliarunayotraaproximacin.Enestalnea,vamosaes tudiaruntipodeimplementacinhbridadethreads,propuestaporAndersonenelao1991,basadoen elconceptode"activacindelplanificador". Estaimplementacinparticularbuscalaeficienciayflexibilidaddelosthreadsdeusuarioylafuncionali daddelosthreadsenelncleo.Enprimerlugar,lasllamadasalsistemanobloqueantesodecomproba cindebloqueonoseutilizan.Sloseusanllamadasalsistemabloqueantes.Sinembargo,lasllamadasal sistemabloqueantesdebeninvocarselomenosposible.Porejemplo,siunthreaddebesincronizarsecon otrothreaddelmismoproceso,deberealizarsemedianteunsemforolocalquemantieneelplanificador dethreadslocalquemuestralafigura4.10a),sinqueseaprecisoinvocarunallamadaalsistema.Apesar detodo,enocasionescomoelaccesoaldisco,esprecisorealizarunallamadabloqueante.Enestecaso,o bienenelcasodeuntrapporfaltadepginaenlaejecucindeunthread,elncleotomaelcontrol.Su laborahoraesinvocaralservidorpertinenteycomunicarelbloqueodelthreadasuncleodeejecucin. Deaquelnombrede"activacindelplanificador".Estacomunicacinsedenominaupcall.

UNIVERSIDAD NACIONAL DE TRUJILLO 11 ESCUELADEINFORMATICA Cmoseimplementaunupcall?ElmecanismoeselmismoqueutilizaunncleoUNIXparacomunicar unasealaunprocesodeusuario.Estemecanismoes,grossomodo,elsiguiente.Elncleoconoceladi reccindecomienzodelncleodeejecucinyelpunterodepiladelproceso.Enlapiladelprocesocolo caloquesedenominaunaactivacin,asaber,unaseriedebytesconinformacinacercadelaidentidad delthreadbloqueadoyeltipodeeventoacontecidoporunapartey,porotra,enelcampodeldescriptor deprocesoqueguardaelcontadordeprograma,escribeladireccindecomienzodeunprocedimiento delncleodeejecucin.Trasesto,daUCPaesteprocesoobienaotrodistinto.Encualquiercaso,cuando elprocesotomelaUCP,serelprocedimientodelncleodeejecucinelqueejecuteynoelthreadque hizolallamadabloqueante.Losparmetrosdeesteprocedimientoestnenlapila,demodoqueentien dequeelthreadcuyoidentificadoresunodesusparmetrosestbloqueadoenunallamadaalsistema y,porlotanto,puedetomarladecisindeactivarotrothreaddeentrelosthreadsdispuestos. Comoacabamosdeverenelprrafoanterior,elplanificadoractasobrelosthreadscadavezqueunode elloshaceunallamadaalsistema.Deestaforma,silosthreadsrealizanllamadasalsistemaconunafre cuenciarazonable,elplanificadortienemuchasocasionesdeserinvocadoyactivarlosthreadsquecon sidereoportunosdeacuerdoasualgoritmoparticular.Nohaynecesidadqueseaactivadoperidicamen teporelncleoainstanciasdelmanejadordereloj.

4.2

ModelosDeSistemasUnsistemadistribuidosecaracteriza,entreotrascosas,porquedisponedemsdeunprocesador.Enes taseccinnosocupamosdecmoorganizarlosprocesadores.Examinaremosdosmodelos,elmodelode estacindetrabajoyeldefondodeprocesadores.

4.2.1 ElmodelodeestacindetrabajoConsisteenunconjuntodeestacionesdetrabajoconectadasmedianteunaredlocal.Enunmomento dado,unaestacindetrabajoestocupadaobiennoestsiendoutilizadaporningnusuario.Decimos entoncesqueestociosa.Algunasestacionesdetrabajotienendiscoyotrasnotienendisco.Estaslti masconservansusficheroseneldiscodeotrasestaciones,enlasqueejecutaunservidordeficheros.El servidoresaccedidoatravsdelaredlocal. Lasventajasdelmodelodeestacionesdetrabajosonvarias.Porunaparte,cadausuariotieneunapo tenciadeclculodedicadaalenexclusiva,loquegarantizaeltiempoderespuesta.Esposibleutilizar aplicacionesgrficassofisticadas,yaquetienenaccesodirectoaunhardwaregrficodealtasprestacio nes.Cadausuariotieneplenaautonoma,demodoquepuedeutilizarlosrecursosdesumquinasegn supropiocriterio.Elmodelotambinpresentainconvenientes.Unodeelloseseldescensocontinuado delospreciosdelosprocesadores.Prontosereconmicamentafactibleelquecadausuariodispongade diezUCP,einclusocien.Lapenaesquedebaadquirircienestacionesdetrabajoparaaprovecharelpre ciodelhardware.Elotroeseldelasestacionesdetrabajoociosas,yaquesupotenciadeclculoesdes aprovechada.Losrecursosdecmputonoestnbiengestionados.Enocasiones,algunosusuariosnecesi tanunaestacinmspotenteparaciertasaplicacionesmientrasquesiestasexisten,talvezestnocio sas.Elprimerproblema,sinembargo,noestal,yaquesesolucionaconstruyendoestacionesdetrabajo multiprocesador.Porejemplo,acadaprocesadorpuede asignrsele lostrabajos arrancadosdesdeuna ventanadada.

UNIVERSIDAD NACIONAL DE TRUJILLO 12 ESCUELADEINFORMATICA

4.2.2 UsandoestacionesociosasEnlasuniversidadesesteproblemaseacusaintensamente.Endeterminadashorasdelda,casitodoslos puestosdetrabajoestnocupadosyenciertosperiodosdelaoquesehaobservadocoincidenconlos plazosdeentregadeprcticaselnmero depuestosresultaclaramenteinsuficiente. Enotrashorasy otrasfechas,elnmerodeestacionesociosasesnotorio.Estedespilfarroderecursoshapreocupadoa losinvestigadores,quehanpropuestoesquemasdiversosafindepaliarestasituacin.Elprimerintento conocidodesacarlepartidoaunaestacinociosafueelmandatoUNIXBSDrsh(deshellremoto).Sein vocacomo cc% rsh maquina mandato

ElprimerparmetroesladireccinderedtpicamenteunadireccinIPdeunaestacindetrabajoyel segundoparmetroeselmandatoquesedeseaejecutar.Lasalidadelmandatoseredirigealterminalde emisin del mandato. El defecto de rsh es que el mandato es ejecutado por un shell que en general proporcionaunentornoalmandatodistintoalentornolocal.Ensegundolugar,eselusuarioelquedebe buscarunamquinaociosa,talvezesperandoqueeldueosevayaatomarelbocadillo.Untercerpro blemaesquecuandoelusuariovuelveseencuentraconquelamquinavamslenta,loqueconseguri dadconduceauncuartoproblema,estavezmsacusadoporelusuarioqueinvocrsh. Lainvestigacinenestacionesociosassehacentradoenlaresolucindelossiguientesproblemas:

1. Cmoencontrarunaestacinociosa? 2. Cmopuedeunprocesoejecutartransparentemente? 3. Quocurresieldueodelamquinaociosavuele? Buscandounaestacinociosa Comencemos por el primer problema. Cabe antes preguntarnos qu es una estacin ociosa? En apa riencia,esaquellasinunusuariocerca.Sinembargo,aunentalcaso,enunsistemaactualejecutanmu chosprocesosen"background",comopuedesereldemoniodeimpresin,decorreo,detransferencia deficherosyotrosmildemonios.Detodasformas,sesueleconsiderarcomoociosaunamquinaqueno tieneactivoningnprocesodeusuarioycuyotecladooratnnohansidotocadosdurantevariosminu tos.Seacualseaelcriteroparadeterminarcundounamquinaestociosa,losalgoritmosparalocalizar unamquinaociosasondedostipos:servidoresyclientes. Algoritmosservidores Sebasanenunregistroobasededatosdemquinasociosas.Esteregistrosemantieneenunadetermi nadamquina.Cuandounaestacindecidequeestociosasedicequeseconvierteenunservidorde computacin.Enestemomentoenvaunmensajealamquinaquemantieneelregistro,dondeseabre unanuevaentradaconladireccinycaractersticasdelanuevamquinaociosa.Cuandoenunaestacin determinadaunusuariodecideejecutarunmandatoenunamquinaociosa,invocaelmandatoremote,alquepasacomoargumentoelnombredelaaplicacinomandatoquedeseaejecutar:cc% remote mandato

remote accedealregistroparaescogerunamquinaapropiada.Esteesquemaseilustraenlafigura 4.11.

UNIVERSIDAD NACIONAL DE TRUJILLO 13 ESCUELADEINFORMATICA lista de estaciones ociosas 1. La mquina se registra si esta ociosa

registro

2. Peticin de mquina ociosa + rplica

4. Baja en registro 3. Solicitud del procesador 5. Envo del entorno

remote6. Arranca el proceso 9. Notifica al solicitante

demonio

7. Ejecucin del proceso 8. El proceso termina

Fig.4.11Unalgoritmobasadoenregistroparaencontraryusarestacionesociosas.

Algoritmoscliente Cuando se invoca remote, se difunde una peticin diciendo qu programa se desea ejecutar, cunta memorianecesita,sirequiereonounprocesadordecomaflotante,etc.Sitodaslasmquinassonigua les,estainformacinnoesprecisa,pero,enunentornoheterogneoesesencial,porquenotodoslos programaspuedenejecutarentodaslasmquinas.Cuandolasrplicasdelasmquinasociosasllegan, remoteeligeunadeellasparaejecutarallelprograma.Unamodificacintilesaquellaenquecadaes tacinociosaretrasaelenvodelarplicaenfuncindesucargadetrabajo.Lamenosocupadaserla primeraenenviarlarplicayserlamquinaescogida. Ejecutandoelprogramaenlamquinaremota Encontrarunaestacinociosadondeejecutarunprocesoessloelprimerpaso.Ladificultadestribaen disponerendichamquinadelmismoentornodeejecucinqueenlamquinalocal(homeworkstation), demodoqueelprocesoejecutedelamismaformaenambas.Enlamquinaremota,elprocesomigrado necesitalamismavistadelsistemadeficheros,elmismodirectoriodetrabajoylasmismasvariablesde entorno.Slodespuselprocesopuedeejecutar. Elproblemaqueseplanteaenunaejecucinremotaeselserviciodelasllamadasalsistema.Qudebe hacerelkernel,porejemplo,paradarservicioalallamadaread?Dependedelaarquitecturadelsiste ma.Silasmquinasnotienendisco,sinoqueconfanenunservidordedisco,todaslaslecturassonredi rigidas al servidor de disco, de la misma forma que se hubiese hecho en la mquina local. En el lado opuesto, si todas las mquinas tienen disco, la peticin debe ser redirigida a la mquina local (home workstation).Otrasllamadascomosbrk,querealizaunamodificacindeltamaodelsegmentodeda tosdelproceso,necesariamentedebenserservidaslocalmente.Lomismoocurreallamadasquesolici tanelestadodelamquinaascomoinformacinacercadelamismacomosudireccindered,lame moriadequedispone,etc. Lasllamadasalsistemaquetratanconeltiemposonproblemticasporquelasmquinaslocalyremota noestngeneralmentesincronizadas.Siusamoseltiempodelaestacinremotapuedeintroducirincon sistenciascomovimosenelprogramamake.Siusamoseltiempodelamquinalocal(homeworksta tion)elretrasoqueprovocalacomunicacintambinesfuentedeproblemas.Enfin,aunqueejecutar procesosenmquinasremotasesposible,esunasuntocomplejo. Elusuariovuelve Unaestacindetrabajoesunamquinapersonal.Elhechodequeunnicousuarioseaatendidoporla mquina garantiza a las aplicaciones exigentes en recursos el tiempo de respuesta requerido. La carga que introduce en una mquina la ejecucin de procesos de otras mquinas no permite que sigamos hablandodeellacomounaestacinpersonal.Enconsecuencia,cuandounusuariovuelve,losprocesos

UNIVERSIDAD NACIONAL DE TRUJILLO 14 ESCUELADEINFORMATICA remotosarrancadosensumquinadebendeserabortados,mejordeunaformasuave.Unaterminacin traumticapuedeprovocarperdereltrabajohecho.Paraconseguirunaterminacinsuave,elprograma debeserescritoparasoportarestaeventualidad. Unaalternativaalaterminacinesmigrarlaejecucinaotramquina,bienalalocal(homeworkstation) oaotraremota.Nohayproblemasenmoverelespaciodedireccionamiento,sinorecogerenelncleo lasestructurasdedatosquedefinenelestadodelproceso,comosudescriptordeproceso,descriptores deficherosabiertos,temporizadoresactivados,etc.Aunquenohayproblemastericosenello,existen muchasdificultadesprcticas. Encualquieradelosdoscasos,esprecisodejarlamquinaenelmismoestadoenelqueladejsuusua rio.Estorequierenoslomatarelprocesoremotosinosusdescendientesytodossusrecursoscomobu zones,semforos,ficherostemporalestantoendiscocomoenlacach,etc.Tambinesprecisoconside rarlasllamadasRPCdelprocesocuyasrplicasnohanvueltoenelmomentodeeliminarelproceso.

4.2.3 ElmodelodefondodeprocesadoresSacarprovechodelasestacionesociosasaadepotenciaalsistema,peronoresuelveunproblemafun damentalqueeseldedisponerdemsUCP'squeusuarios.Coneldescensodelprecioenlosprocesado res,puededarseelcasodeunsistemaenelqueelnmerodeprocesadoressea10oincluso100veces mayorqueeldeusuarios.Lapreguntaquesurgeescmoutilizarestosnuevosrecursos. Unasolucinesconstruirestacionesdetrabajomultiprocesador,peroresultaineficiente,yaquedema siadosrecursosestnasignadosdeantemanoaunusuarioquelamayoradeltiemponoutilizamsque unaUCP.Laalternativaesconstruirunfondodeprocesadoresquepuedenserasignadosalosusariosso bredemanda.Amediadaqueunusuarionecesitamspotenciadeclculoseleasignannuevosprocesa doresyviceversa.Lafigura4.12ilustralaidea.Lamotivacindelfondoprocesadoresestcopiadadela delservidordeficheros.Aligualquelosficherossecentralizanenunnmeroreducidodemquinasde nominadasservidoresdeficherosparaeconomizarennmerodediscos,ventiladores,etc,sepuededis ponerdenodosqueactancomoservidoresdepotenciadecmputo.Losservidoresdecmputopermi tenunahorrodeestacionesconsiderableenunsistemadistribuido.TodaslasUCP'ssedisponenenun panelfrontalrackrequiriendounnicopuntodealimentacinyderefrigeracin.Elrackpuedeiren unahabitacinapropiada,fueradelaccesodelosusuarios,quenicamentedisponendeterminalesXo terminalesconvencionales.Loqueesmsimportante,elmodelodesacoplaelnmerodeusuariosdel nmerodeUCP's,queesunacaractersticadelmodelodeestacionesdetrabajo.Alosusuarios,elsiste maoperativolesasignalasUCPquenecesitenencadamomentodeformadinmica.

Fig.4.12Unsistemabasadoenelmodelodefondodeprocesadores.

UNIVERSIDAD NACIONAL DE TRUJILLO 15 ESCUELADEINFORMATICA Elmodelodefondodeprocesadoressefundamentaenlateoradecolas.Loselementosbsicosdeesta teorasebasanenunservidoralquelleganaleatoriamentepeticionesdetrabajo.Cuandoelservidor estocupado,laspeticionesesperanenunacola,comoocurreentantassituacionesdelavidareal,sea ensupermercados,oficinasdecorreosolamatriculacindeestudiantes,segnilustralafigura4.13.El intersdelateoradecolasradicaenqueesposibleobtenerdeellasinformacindeformaanaltica.Sea

latasadeentradadepeticionesporsegundodeltotaldelosusuariosysea laspeticionesqueel sistemaatiendeenunsegundo.Si > ,elsistemaesestable,porqueelsistemaescapazdeatender

elflujodepeticiones.Ambosvaloresnosonconstantes,sinolasmediasdevariablesaleatorias.Existirn periodosenquelaspeticionessuperenlacapacidaddelservicio,formndoseunacoladepeticionesen esperadeservicio.Estosperiodosvendrnsucedidosporotrosdemenornmerodepeticionesy,por tanto,dedisminucindelacolahastasudesaparicin.Loimportanteesquelosvaloresmedioscumplan ladesigualdadanteriorparagarantizarlaestabilidaddelsistema.Sepuededemostrarqueeltiempome dioquetranscurredesdequeseemiteunapeticinhastaqueseobtieneunarespuestacompletaviene dadoporlafrmula

T=

1 -

Fig.4.13Unsistemadecolasbsico.

Supongamosahoraunsistemadenestacionesmultiprocesador,cadaunadeellasconunnmerode

terminadodeUCP's.Encadaestacin,conunatasadellegada yunatasadeservicio ,eltiempo

medioderespuestaesT.Vamosapasarahoradelmodelodeestacionesdetrabajoalmodelodefondo deprocesadores.Reuniendolosnmultiprocesadoresenunfondodeprocesadoreslogramosunamqui nanvecesmspotentequecadaunadelasestacionesindividuales,conunacapacidaddeserviciode n peticionesporsegundo.Comotodaslaspeticionesdelasnestacionesvanapararahoraalfondode procesadores, esta mquina recibe una tasa de solicitudes de n peticiones por segundo. El tiempo medioderespuestadeestenuevosistemacombinadoes

T1 =

1 = T / n n - n

quevieneadecirqueagrupandonpequeosrecursosenunrecursonvecesmspotente,podemosre ducireltiempoderespuestanveces.Esteresultadoestericoy,porlotanto,puedeaplicarseatodotipo desistemas.Esmsrentableaunaempresadetransportesdisponerdeunautobsquesalecadahora deunaestacincentralquedecuatrominibusesquesalencadahoradecuatropuntosdistintosdela ciudad,porejemplo.Laraznesqueenelprimermodelo,sesucedenlosintervalosdetiempoenque partedelosmultiprocesadoresestnociososmientraslaotrapartedelosmultiprocesadorespuedeestar

UNIVERSIDAD NACIONAL DE TRUJILLO 16 ESCUELADEINFORMATICA sobrecargada.Enestosperiodos,lapotenciadeclculodelosprocesadoresociososnoestaprovechado, almismotiempoquelaspeticionesenlosmultiprocesadoressobrecargadossesirvenmslentamente. Desdeluego,elargumentoanterioresunodelosmsfuertesquejuegaencontradelconceptodesiste madistribuido.Aunaorganizacinselepresentandosopcionesalahoraderealizarsuinformatizacin. Supongamosquesecalculaquesusprocesosexigenunsistemadeunapotenciade1000millonesdeins truccionesporsegundo(MIPS).Sepuedeoptarporunsistemacentralizadode1000MIPSodeunared de100estacionesde10MIPS.Elsistemade1000MIPSser100vecesmsrpido,algoqueabogapor concentrarlapotenciadecmputolomsposible,justolocontrariodeloquedictalatendenciaactual haciasistemasdistribuidos.Porquentoncesestatendencia? Larespuestaesqueeltiempomedioderespuestadeunsistemanoloestodo.Unodelosfactoresafa vor de los sistemas distribuidos es el costo. Si el costo de 100 PC's es muchsimo menor que el de un mainframede1000MIPS,laraznprestaciones/preciojuegaafavordelsistemadistribuido.Latolerancia afallosesmejorenlareddePC's,ascomoelhechodequenoesposibleconstruirunsistemadeuna potenciaarbitrariadebidoaloslmitesdelatecnologaactual.Esimportantetambinnosloeltiempo derespuestasinolavarianzaenelmismo.Losusuariosnonotantiemposderespuestamuydiferentes siemprequelainteraccinhumanaconelsistemasealosuficientementerpidaenelcasomslentoylo quenotoleranesunsistemamuyrpidoportrminomedioperoqueenocasionessevuelveexaspera damentelento.Untiempoderespuestauniformeysuficientementegilesloquegarantizaelmodelode estacionesdetrabajo. Anteriormentehemosdichoqueelmodelodefondodeprocesadoressefundamentaenlateoradeco las.Considerandoqueunfondodenprocesadoresesnvecesmspotentequeunaestacindetrabajo, lateoradecolasrevelaqueeltiempoderespuestadelfondodenprocesadoresesnvecesmsrpido queeltiempoderespuestadecadaunadelasestacionesenparticualar.Esteargumento,quejuegaafa vordelasolucindelfondodeprocesadoresfrentealasolucindelasestacionesdetrabajoes,desgra ciadamente,falaz.Noesciertoqueunfondodenprocesadoresseanvecesmspotentequeunnico procesador.Parasacarpartidoanprocesadores,esprecisodescomponerunproblemaennprocesosque corranenparalelo,cadaunodeellosasignadoaunprocesador.Cuandoenelsistemaexistenmenospro cesosqueprocesadores,lospocesadoresociososrestanpotenciaalsistema.Anas,aunqueeltiempo derespuestanoseanvecesmejor,elmodelodefondodeprocesadoresesunamejorsolucindistribui daqueelespiaraotrosusuariosparalanzarmandatosremotosensusmquinasyevitalosproblemas quesurgenalavueltadeeste. Porotraparte,optarporunauotrasolucindependedelanaturalezadeltrabajoqueserealizaenelsis tema.Enunentornodeofimtica,enlaquelaatividadprincipalpuedesereditardocumentosyenviar correoelectrnico,elmodelodeestacindetrabajoseaseguramentesuficiente.Engrandesprojectosde programacin, que donde continuamente se invoca el mandato make o en aplicaciones matemticas dondeelproblemasearesolvercontinuamentesistemasdeecuaciones,elmodelodefondodeprocesa doresposiblementeseaelmsadecuado. Tambinesposibleunmodelohbridodondecadausuariodisponedesuestacindetrabajoyexisteun fondodeproceadoresadisposicindelasaplicacionesmsexigentesentrminosdeusodeUCP.Este modeloproporcionaalavezuntiempoderespuestaadecuadoyunusoeficientederecursos.

4.3 AsignacindeprocesadoresOptemosporelmodelodeestacionesdetrabajo,elfondodeprocesadoresounamezcladeambos,es precisounalgoritmoquedecidaquprocesovaaejecutarenqumquina.Paraelmodelodeestacio

UNIVERSIDAD NACIONAL DE TRUJILLO 17 ESCUELADEINFORMATICA nesdetrabajo,lacuestinescundoejecutarunprocesoremotamenteyentalcaso,enquestacin. Paraelmodelodefondodeprocesadores,lacuestinseplanteasiempreparatodoproceso.Deellose ocupaestaseccin.

4.3.1 ModelosdeAsignacinAntesdeentraraexaminaralgoritmosespecficos,convieneexaminaralgunosdelosprincipiosylasme tasdelaasignacindeprocesadores. Sistemashomogneosysistemasheterogneos Cuando todas las mquinas de un sistema tienen la misma arquitectura se dice que el sistema es homogneo.Encasocontrario,sedicequeesheterogneo.Ensistemasheterogneos,elejecutablede unaaplicacindebeestardisponibleparatodaslasarquitecturasparticipantes.Lostrabajospublicados enelmbitodelaasignacindeprocesadoresasumenensumayorasistemashomogneos,difiriendo lasdistintasmquinasenvelocidaddeejecucin.Estaasuncinsimplificaelproblema,perodejasinre solverotroqueeslaeleccindelaarquitectura. Estrategiasmigratoriasynomigratorias Lasestrategiasdeasignacinsondedosclases.Enlaprimera,denominadamigratoria,unprocesoque ejecutaenunamquinaApuedeserinterrumpidoparacontinuarejecutandoenunmquinaB.Enlase gunda,denominadanomigratoria,losprocesoscomienzanyterminanlaejecucinenlamismamquina. Losalgoritmosmigratoriosconsiguenunmejorequilibradodecarga,perosonmscomplejosycondicio nannotablementeeldiseodelsistema. Parmetrosobjetodeoptimizacin Unalgoritmoasignaunprocesoaunprocesadoroaotroenfuncindealgncriterio,dealgnparme troquetratadeoptimizarse.Esteparmetronoeselmismoentodoslossistemas.Unodeellosesel tiempodeUCP.Deloquesetrataesde,enlaunidaddetiempo,maximizarelnmerodeciclosejecuta dosentodaslasUCP'sconjuntamente.Otroobjetivoesminimizareltiempoderespuesta.Consideremos elejemplodelafigura4.14.DisponemosdedosprocesadoresXeY.ElprocesadorXpuedeejecutar10 MIPSyelY100MIPS.Enunmomentodado,elprocesadorXseencuentralibre,consucoladeprocesos dispuestosvaca.EnlacoladelprocesadorYseencuentrandosprocesosqueseestimatardarncinco segundosencompletarsuejecucin.Dadoesteescenario,entranenelsistemadosprocesosAyB.El procesoAtiene100millonesde instruccionesy elB300. Supongamosqueasignamos elprocesoAal procesadorXyelprocesoBalprocesadorY.EltiempoderespuestaenelprocesadorXesde100M/10 M/s=10syeltiempoderespuestaenelprocesadorYesde5s+(300M/100M/s)=5s+3s=8s,loque haceuntiempoderespuestamediode(10+8)/2=9s.Laasignacin,porotraparte,puedeserlaopues ta,demodoqueelprocesdoAejecuteenelprocesadorY,dondesutiempoderespuestaesde5s+(100 M/100M/s)=5s+1s=6s,yelprocesoBejecuteenelprocesadorX,conuntiempoderespuestade 300M/10M/s=30s,resultandountiempoderespuestamediode(6+30)/2=18s.Desdeluegoesta ltimaasignacindelosprocesosalosprocesadoresesnotablementepeorquelaprimerasideloquese trataesdeminimizareltiempoderespuestadelaasignacin.

procesador X 10 MIPS procesos entrantes: A: 100 M instr B: 300 M instr

procesador Y 100 MIPS

cola vaca

cola de 5 s

Fig.4.14Asignacindedosprocesosadosprocesadores

UNIVERSIDAD NACIONAL DE TRUJILLO 18 ESCUELADEINFORMATICA

4.3.2 CuestionesdediseodealgoritmosdeasignacindeprocesadoresAlolargodelosaossehanpropuestonumerososalgoritmosdeasignacin.Lasprincipalescuestionesque debenabordarsealelaborarunalgoritmodeasignacinsonlassiguientes: Algoritmoheursticofrenteadeterminstico. Algoritmodistribuidofrenteacentralizado. Algoritmoptimofrenteasubptimo. Algoritmolocalfrenteaglobal. Algoritmoiniciadoporelservidorfrentealiniciadoporelcliente. Otrascuestionenpuedentambierexaminarse,perolasanterioressonlasmstratadasenlaliteratura. Algoritmoheursticofrenteadeterminista Losalgoritmosdeterministassonaquellosqueasumenuncompletoconocimientoacercadelcomportamiento ylosrecursosconsumidosporlosprocesos.Debemosconocerlalistadetodoslosprocesos,sustiemposde computacin hasta que terminan, los ficheros que utilizan, etc. Con este conocimiento se puede hacer una asignacinperfecta.Comoesteconocimientoexaustivopocasvecesestdisponible,esprecisotomaraproxi maciones basadas en la experiencia. Por ejemplo, en una lnea area se conoce con bastante precisin el nmerodepersonasqueharnundeterminadovueloundeterminadodadelaobasadosenlosquehubo losaosatrs. Enelotroextremoseencuentranlossistemasenloscualessucargadetrabajoescompletamenteimpredeci ble.Enellosesprecisoutilizartcnicasheursticas. Algoritmocentralizadofrenteadistribuido Recogertodalainformacinenunnicopuntoestilporquepermitedisponerdetodalainformacinyhacer unmejorjuicio.Elproblemadelosalgorimoscentralizadosestribaenquesonmenosrobustosporconstituir unnicopuntodefalloycargarenexcesoelprocesadorquelosevala.Sonmsapropiadoslosalgoritmos distribuidos. Algoritmoptimofrenteasubptimo Obtener la mejor solucin supone regoger mucha informacin y realizar un anlisis minucios y costoso en trminosdetiempodecmputo,porloqueavecesunasolucinnoidealperosuficientementesatisfactoriay ms fcil de hallar es ms conveniente. Generalmente, los sistemas distribuidos se decantan por soluciones heursticas,distribuidasysubptimas. Algoritmolocalfrenteaglobal Entramosenloquesedenominalapolticadetransferencia.Cuandounprocesosecreaenunamquinaes precisotomarladecisinacercadesielprocesopuedeserejecutadolocalmenteoenotroprocesadorsiel localestdemasiadoocupado.Lacuestinfundamentalaquessibasarladecisineninfomacinpuramente localoesperaradisponerdedatosrelativosalacargadetodoelsistema.Losalgoritmoslocalessonsencillos peroestnlejosdeserptimos.Losalgoritmosglobalesdanresultadosligeramentemejoresauncostomucho msalto. Algoritmoiniciadoporelemisorfrenteainiciadoporelreceptor Parafinalizarhablaremosdelapolticadeubicacin.Unavezquesehadecididoqueelprocesoseenvaaotra mquina,lacuestinesdeterminaresamquina,algoquenecesitadeinformacinglobal.Cmosedifunde la informacin respecto a la carga de las mquinas? Segn un mtodo la mquina que crea el proceso o maquina emisora arranca el intercambio de comunicacin, difundiendo al resto de las mquinas que se encuentraocupada,afindequealgunadeellaslaecheunamano.Segnelotromtodo,sonlasmquinas ociosasopococargadaslasquetomanlainiciativa,difundiendosuestadoalresto,brindndosecomorecepto rasdeprocesosporejecutar.

1. 2. 3. 4. 5.

4.3.3 EjemplosdealgoritmosParacomprendermejorcmoserealizarealmentelaasignacindeunprocesoaunprocesadordetermi nado,convienediscutiralgunosalgoritmosconcretos. Unalgoritmodeterministabasadoenteoradegrafos

UNIVERSIDAD NACIONAL DE TRUJILLO 19 ESCUELADEINFORMATICA EstealgoritmosuponeunsistemaconunconjuntodeprocesosconrequisitosdememoriayUCPconoci dos y una matriz de trfico entre procesos tambin conocida. Si el nmero de UCP's es menor que el nmerodeprocesos,variosprocesostendrnqueserasignadosaunaUCP.Laideaesproponerunaasig nacinqueminimiceeltrficoenlared. Elsistemapuedeserrepresentadomedianteungrafoponderadodondecadanodoesunprocesoycada arcoeltrficoentredosprocesos.SielnmerodeUCP'sesk,elproblemasereduceaencontrarunpar ticionamientoapropiadodelgrafoenksubgrafossujetoaalgunasrestriccionescomoquelosrequisitos dememoriadelosprocesosdecadaparticinseaninferioresoigualesalamemoriadisponible,etc.).Di rijamosnuestraatencinalafigura4.15,enlaqueapreciamosdosparticionamientosdiferentes.Enellas, losarcosqueestndentrodeunsubgraforepresentancomunicacionesinternasdecadaprocesador,de formaqueelcostonoseconsiderapornotenerqueemplearlosmecanismosdecomunicacindelared. Enlafigura4.15aeltrficoenlaredesde5+2+4+4+2+8+5+2=32unidades.Enlafigura4.13belcostoes de5+2+4+4+3+5+5+2=30unidades,porloqueconstituyeunaasignacinmejordadoelparmetroaop timizar.

Fig.4.15Dosformasdeasignarnueveprocesosatresprocesadores.

Unalgoritmocentralizado Los algoritmos de teora de grafos son de una aplicabilidad limitada ya que requieren de informacin completa por adelantado. A continuacin vamos a presentar el algoritmo arribaabajo. Es un algorimo heursticoquenoprecisadedichainformacin.Esunalgoritmocentralizadoyaqueuncoordinadorman tieneunatabladeusoconunaentradaporcadaestacindetrabajo(porusuario)inicializadaacero.Un marcadorpositivoindicaqueelusuarioestconsumiendorecursosdelsistemayunmarcadornegativo indicaqueelusuarionecesitarecursos.Unmarcadoracerosignificaqueelusuarioesneutral. ElpropsitodelalgoritmonoesmaximizarelusodeUCPdelconjuntodeestacionesdetrabajoconinde pendencia de quin sea el propietario de los procesos, sino conseguir que a todos los usuarios se les asignenlosrecursosdeunamanerajusta,evitandoqueunusuarioacaparetodalapotenciadeclculo. As,enelcasodequedosestacionescompitanporunaUCPquehaquedadoociosa,elcoordinadorex aminalatabladeusoyconcedelaasignacinalaestacinconunmarcadormsbajo.Elmarcador,porlo tantoseutilizacomounaheursticaoayuda. Acontinuacinexaminamoselmecanismodepuntuacin.Cuandounusuarioestejecutandoproce sosenotrasestaciones,acumulapuntosdepenalizacinalolargodeltiempocomoindicalafigura 4.16.Lospuntosseacumulanmsrpidamentesihaymsprocesosenotrasmquinas.Porelcontra rio,siunamquinasolicitalaejecucinremotadeunprocesoynoseleasignaunprocesador,durante todoesetiempovaacumulandopuntuacinnegativa.Cuandounusuarionosolicitapeticionesnitie nepeticionesencurso,elmarcadorseaproximaacero.

UNIVERSIDAD NACIONAL DE TRUJILLO 20 ESCUELADEINFORMATICA

Fig.4.16Operacindelalgoritmodesubeybaja.

4.4

Bibliografa[Tan95] Tanenbaum,A.S.,DistributedOperatingSystems, PrenticeHall,1995.

[Cou94] Coulouris,G.etal.,DistributedSystems,ConceptsandDesign, SecondEdition,AddisonWesley,1994.