Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una...
Transcript of Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una...
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1.11
TableofContentsIntroduction
Arquitectura
EjecutorSentenciasInteractivas(ESI)
Planificador
Coordinador
Instancia
Distribución
Almacenamiento
AnexoI:Lenguaje-Operactiones
AnexoII:Lenguaje-SecuenciasdeEjecución
Descripcióndelasentregas
2
ReDistinto
Introduction
3
Arquitectura
Lasiguienteeslaarquitecturadeltrabajopráctico.Laslíneasrepresentanconexiones,queseránrealizadasutilizandosocketsTCP/IP.Laconexiónsellevaráacaboutilizandoipsypuertosdefinidosenunarchivodeconfiguración.
Arquitectura
4
EjecutorSentenciasInteractivas(ESI)LosProcesosESIsonelpuntodeentradaalSistema.Estoscorreránunscriptconinstruccionesaserejecutadas(^1).Súúnicafunciónesladeinterpretardeaunalaslíneasdeunprograma(queselepasarácomoargumento)amedidaqueelPlanificadorseloindique.Pararesolverlasdistintassentenciasdelprogramaaserinterpretado;deberácolaborarconelcoordinadorparabloquear/liberarrecursosodatos.
ConexiónAliniciarseunProcesoESI,ésteseconectarátantoalPlanificadorcomoalCoordinadordeReDistintoeintercambiarálosnecesariosmensajesinicialesparaconfirmarlaconexiónconambos.Unavezestablecidalaconexión,yamedidaqueasílodicteelPlanificador,iráparseandolassentenciasdelscriptytransmitiéndolasalCoordinadordeReDistinto,quiénretornaráunmensajeinformandoelresultado.
ParserPorcadaunadelassentenciasinterpretadas,esnecesariorealizarunprocesodeparseo,conelfindetraducirlacadenadecaracteresenunaoperaciónentendibleporelSistemaReDistinto.Paraesto,lacátedraproveeráalosalumnosdelParserdeReDistinto(ParSI),yaquelaimplementacióndelmismonoconciernealostemasdelamateria.
InteracciónconCoordinadoryPlanificador1. SerecibeunasolicituddeejecucióndesdeelPlanificadordeReDistintoatravésdelaconexión.2. Seobtienelapróximasentenciaaserejecutadasegúnelprogramaainterpretar.3. Encasodesernecesario,seenvíaunasolicitudalCoordinadordeReDistinto.4. ElCoordinadorretornaunresultado,yaseaporéxitodelaoperaciónoporunfallodelamisma.5. Seleenvíaelresultadodeestealplanificador.
Configuración
Campo Tipo Ejemplo
IPdeConexiónalCoordinador [cadena] "127.0.0.1"
PuertodeConexiónalCoordinador [numérico] 8000
IPdeConexiónalPlanificador [cadena] "127.0.0.2"
PuertodeConexiónalPlanificador [numérico] 8001
^1:ParaconocerenprofundidadlasinstruccionesverelAnexoI.
EjecutorSentenciasInteractivas(ESI)
5
PlanificadorEselprocesoencargadodeorquestarlaejecucióndelosprocesosESI.LosprocesosESIllegaránaunacoladelistos,dondeselosplanificaráparasupróximaejecuciónsegúnunalgoritmopredeterminadoporarchivodeconfiguración.
Arazóndesimplificareldesarrollo,laejecucióndecadalíneadecódigodelscriptaserinterpretadoporelESIseráatómicaycadavezqueunainstrucciónseaejecutadaseleinformaráalplanificador.EnestesentidoelPlanificadoractúacomounClockdelsistema.Nosedeberáre-planificarlosESIaseguirejecutandoalrecibirlaconfirmacióndesentenciaejecutada.
EncasodequeunprocesoESInopuedaseguirejecutandodebidoaunbloqueo,deberáserenviadoalacoladeprocesobloqueados,esperandoaquequienbloqueólakeyutiliceunstoreyliberelamisma.
Porotrolado,enelcasodequeelESIhagaunaoperacióndeGETsobreunrecursolibre,nodeberámoversedelestadodeejecuciónniserre-planificado(amenosqueelalgoritmodelplanificadorasíloindique).
UnavezfinalizadoelprocesoESI,seloenviaráaunacoladefinalizados.
EsimportantedestacarquecadaprocesoESIdeberátenerunidentificadordentrodelsistema.
AlgoritmosdePlanificación^6LaejecucióndelasinstruccionesdecadaESIestarádivididaenráfagasdeCPUyráfagasdebloqueo.Dadoquenopodemospredecirconcertezaladuracióndecadaráfaga,elplanificadorseráresponsablederealizarlasestimacionescorrespondientes,cuandoseanecesario.Launidadautilizarserá"sentencias"enlugardetiempo,porcuestionesdesimplicidad.
Apartirdeestasestimaciones,elplanificadorpodráutilizarlossiguientesalgoritmos,loscualesdeberánpodersermodificados,juntoconsusparámetros,medianteelarchivodeconfiguraciónalmomentodeinicializarelplanificador:
1. ShortestJobFirst:sedaráprioridadalESIcuyapróximaráfagasealamáscorta.Deberásoportarlosmodosconysindesalojo.
Planificador
6
2. HighestResponseRatioNext:sedaráprioridadalESIcuyoresponseratioseaelmásalto.
Enambosalgoritmossedesconocelapróximaráfaga,porloqueseráestimadautilizandolafórmuladelamediaexponencial.Laformulaparaestaestimaciónserálasiguiente:
LaestimacióninicialdetodoslosESIserálamisma,ydeberápodersermodificableporarchivodeconfiguración.AnteunempateenlaestimaciónsepodráoptarporutilizarelalgoritmodeFCFS(FirstComeFirstServed)
ConsoladelplanificadorMedianteunaconsola,elplanificadordeberáfacilitaralusuariolassiguientesoperaciones:
Pausar/Continuarplanificación(^2):ElPlanificadornoledaránuevasórdenesdeejecuciónaningúnESImientrasseencuentrepausado.bloquearclaveID:SebloquearáelprocesoESIhastaserdesbloqueado(vermásadelante),especificadopordichoID(^3)enlacoladelrecursoclave.Valerecordarquecadalíneadelscriptaejecutaresatómica,ynopodráserinterrumpida;sinoqueseb loquearáenlapróximaoportunidadposib le.Solosepodránb loqueardeestamaneraESIsqueesténenelestadodelistooejecutando.desbloquearclave:SedesbloquearaelprimerprocesoESIbloquedoporlaclaveespecificada.listarrecurso:Listalosprocesosencoladosesperandoalrecurso.killID:finalizaelproceso.Recordandolaatomicidadmencionadaen“bloquear”.AlmomentodeeliminarelESI,sedebloquearanlasclavesquetengatomadas.statusclave:Conelobjetivodeconocerelestadodeunaclaveydeprobarlacorrectadistribucióndelasmismassedeberanobtenerlossiguientesvalores:(Estecomandoseutilizaraparaprobarelsistema)
Valor,encasodenoposeervalorunmensajequeloindique.Instanciaactualenlacualseencuentralaclave.(Encasodequelaclavenoexista,laInstanciaactualdebería)Instanciaenlacualseguardaríaactualmentelaclave(Calcularestevalormedianteelalgoritmodedistribución(^4),perosinafectarladistribuciónactualdelasclaves).ESIsbloqueadosalaesperadedichaclave.
deadlock:EstaconsolatambiénpermitiráanalizarlosdeadlocksqueexistanenelsistemayaqueESIestánasociados.Pudiendoresolverlosmanualmenteconlasentenciadekillpreviamentedescrita.
Configuración
Planificador
7
Campo Tipo Ejemplo
PuertodeEscuchadeconexiones [numérico] 8000
Algoritmodeplanificación SJF-CD/SJF-SD/HRRN HRRN
Alfaplanificación [numéricoentre0y100] 30(^5)
Estimacióninicial [numérico] 5
IPdeConexiónalCoordinador [cadena] "127.0.0.1"
PuertodeConexiónalCoordinador [numérico] 8001
Clavesinicialmentebloqueadas [Listadeclaves] materias:K3002,materias:K3001
^2:Estosepuedelograrejecutandounasycallbloqueantequeesperelaentradadeunhumano.
^3:ElPlanificadorempezaráconunaseriedeclavesbloqueadasdeestamanera.
^4:Estosalgoritmossedetallaránmásadelante.
^5:Paraparsearestevalordeformamássencilla,recomendamoscargarlocomounenterode0a100ydividirlopor100antesdeusarlo,conelfindequeseauncoeficienteentre0y1
^6:Paramayorinformaciónsobrelosalgoritmospuedenrecurrira:SistemasOperativos,Silberschatz,Galvin-Capítulo5:PlanificacióndelaCPUSistemasOperativos,WilliamStallings5taEd-Capítulo9:Planificaciónuniprocesador(Enotrasedicionesvaríaelcapitulo)
Planificador
8
CoordinadorElCoordinadordeReDistintoeselprocesoencargadodedistribuirlospedidosdeinformacióndelSistema.
Porunlado,tienecomoobligacionesrecibirlasoperacionesdesdelosESIs,ejecutarlasenunadelasInstanciasdeReDistintoenbaseacómodefineelalgoritmodeDistribucióndesuconfiguraciónyretornarunmensajeinformandoelresultadodeejecución.Porotrolado,eselencargadodegestionarlasInstanciasqueestándentrodelSistema,permitiendolaconexiónydesconexióndelasmismas.
Parapodersimularelpasodeltiempoenlaejecución,cadavezqueunESIlepidaejecutaralgo,laacciónestarásupeditadaaunretardoficticiodadoporarchivodeconfiguración.
InicializaciónElCoordinadordeberáserelprimeroeniniciarse,yleproveeráalasdistintasinstanciaslaconfiguracióndetamañosdelacantidadyeltamañodelasentradas.Enprimerainstancia,leerásuarchivodeconfiguracióneinicializarátodaslasestructurasadministrativasquerequeriráparalagestióndelsistema.Unavezrealizadoelprocesodeinicialización,quedaráalaesperadesolicitudesdeconexiónyaseadeInstanciasdeReDistintoodeprocesosESI(^7).Porcadaunadelasconexionesqueseanaceptadas,elCoordinadorlanzaráunHiloencargadodeatenderlaconexión.
EjecuciónElCoordinadorrecibirádesdelosprocesosESIsolicitudes.Además,porcadasolicitudesrecibida,sealmacenaráinformaciónquepermiteregistrarlaejecuciónquesedioenelsistema.Dichainformaciónseguardaráenunarchivoconocidocomologdeoperaciones.
LogdeOperaciones
ESI Operación
ESI1 SETmaterias:K3001Fisica2
ESI1 STOREmaterias:K3001
ESI2 SETmaterias:K3002Economia
Coordinador
9
InteracciónconESIeInstancia
1. ElCoordinadorrecibeunasolicitudprovenientedeunprocesoESI.2. ElCoordinadorprocesalasolicitudconelfindedeterminarlaInstanciaalaqueseleasignarálasolicitud(^8).3. SeeligelaInstanciaasociadayseleenvíalasolicitud.4. LainstanciaretornaalCoordinador.5. ElCoordinadorlogealarespuestayenvíaalESI.
Enelcasoqueelcoordinadordecidaenelpaso2quelaoperaciónnopuedeserejecutadaporquelainstancianoexistemásenelsistema(^9),leavisaráalPlanificador,elPlanificadorabortaráalESIencuestión.NosedeberántomaraccionessobrelosESIsbloqueadosparadichaclaveyaquelainstanciapuedereincorporarseenelsistemaafuturo.
EsimportantedestacarquelaoperaciónGETgeneraráunaclavesinvaloryademasmodificaelestadodebloqueosydesbloqueosenelplanificador.EselSETelencargadodealterarelvalor.
BloqueosElsistemadeReDistintoaplicabloqueossobreclavesutilizadas.Esdecir,amedidaqueunESIsolicitaunaoperacióndeGETsobreunaclaveespecífica,estapasaaestar“tomada”ynopuedesertomada(GET)porningúnESIhastaqueselibere(STORE).
Paralograrestecomportamiento,elPlanificadorllevaunregistrodequéclavesfueronbloqueadasporcadaESIenparticular,lascualesdeberáliberarencuantorecibaunaoperaciónSTOREcondichaclaveporpartedelaESIbloqueadora(^10).EstaliberaciónserádemaneraFIFO;elprimerESIqueseencontrababloqueadoesperandoestaclaveseráliberada(EstonoquieredecirqueseráinmediatamentetomadoporesteESI;sinoqueestarádisponib leparaserplanificado;ydeberáreejecutarlaoperacióndeGETalserejecutado)(^11).
CabeaclararquelafinalizacióndeunESIliberalosrecursosqueesteteníatomados.
Coordinador
10
Configuración
Campo Tipo Ejemplo
PuertodeEscuchadeconexiones [numérico] 8001
AlgoritmodeDistribución LSU/EL/KE EL
CantidaddeEntradas [numérico] 20
TamañodeEntrada(enbytes) [numérico] 100
Retardo(enmilisegundos) [numérico] 300
EjemplosGETderecursodisponible:
1. ElplanificadorenvíalaseñaldeejecutaralESI12. ElESI1envíaalcoordinadorlaordendebloquearlaclaveXX(GETXX)3. ElCoordinadorcolaboraconelPlanificadoravisandodeesterecurso4. ElPlanificadorllevacuentaquelaclaveXXestátomadaporESI1
GETdeunrecursotomado:
1. (partiendodelasituaciónanterior)2. ElplanificadorenvíalaseñaldeejecutaralESI23. ElESI2envíaalcoordinadorlaordendebloquearlaclaveXX(GETXX)4. ElCoordinadorcolaboraconelPlanificadoravisandodeesterecurso5. ElPlanificadorrespondequeestaclaveseencuentratomada,ytomanotaqueelESI2seencuentrabloqueado
esperándola.
^7:Parapoderdistinguirquéprocesoseestáconectando,intercambiarámensajesconelproceso(esteprocedimientoseconocecomohandshaking).
Coordinador
11
^8:Esovariasegunsiesunanuevaentrada(GET)ositienequeaccederaunaentradaexistente(SEToSTORE)
^9:Estainformaciónlasabeelcoordinadoryaquerecibelasdesconexionesdelasentidadesopuedeconsultarlealasentidadesalmomentodehacerlacomprobación.
^10:Esimportantetenerencuentaestoalahoradeimplementarelcomando"deadlock"delaconsoladelplanificador
^11:SiunESIrealizaunGETyestaoperaciónlobloquea,esasentenciadebeserconsideradaalcalcularlaráfagaejecutada.Aldesbloquearseyejecutarnuevamentelaoperación,volveráaserconsideradaparatotalizarlaráfaga.
Coordinador
12
InstanciaLasInstanciasdeReDistintosonlosprocesosencargadosdelalmacenamientodelosdatos.CadaInstanciaseccionasuespaciodealmacenamientoenloquesedenominanEntradasyaliniciarlaconexiónconelcoordinador,sedefiniráeltamañodelasmismasasícomolacantidadtotaldisponibledentrodelaInstancia.EnlaseccióndealmacenamientoseentrarámásendetallerespectoalasEntradas.(^12)
TabladeEntradasLaTabladeEntradasesunaestructuraadministrativadelaInstanciadeReDistintoquepermitegestionarelalmacenamientoyfacilitarelaccesoalosvaloresalmacenados.Paraesto,encadaelementodelatablasealmacenaráunaclave,elnúmerodeentradaasociadayeltamañodelvaloralmacenado.(^13)
InteracciónconCoordinador
1. ElCoordinadorenvíaunasentenciadeReDistintoalaInstancia.2. LaInstanciaprocesalasentenciaconelfindeejecutarlaoperacióncorrectamente.3. Alprocesarlasentencia,obtienelaclaveasociadaquelepermitiráaccederalaTabladeEntradas.4. DelaTabladeEntradas,seobtendrálainformaciónnecesariaparaobtenerelvalorenelalmacenamiento.5. SeaccedealvalorysepreparaunarespuestaparaelCoordinador.6. LaInstanciaenvíaelresultadoalCoordinador.
Configuración
Instancia
13
Campo Tipo Ejemplo
IPdeConexiónalCoordinador [cadena] "127.0.0.1"
PuertodeConexiónalCoordinador [numérico] 8000
AlgoritmodeReemplazo CIRC/LRU/BSU BSU
Puntodemontaje [pathabsoluto] "/home/utnso/instancia1/"
NombredelaInstancia [cadena] "Instancia1"
Intervalodedump(ensegundos) [numérico] 10
^12:Paramásinformación,investigarsobreelcomandomalloc().
^13:Dadalanaturalezadealmacenamientocontiguodelosvalores,encasodequeeltamañodelvalorexcedaeltamañodelaentrada,éstecontinuaráenlasiguienteentrada.
Instancia
14
DistribuciónParageneraraltadisponibilidaddelsistema,elCoordinadordeReDistintoseencargarádedistribuirlaejecucióndelasoperacionesalolargodelasInstanciasdeReDistinto.Paraesto,dispondráde3algoritmosdedistribución.
AlgoritmosdeDistribución
EquitativeLoad(^14)
ElalgoritmoEquitativeLoadeselmásbásicodetodospero,asuvez,eselmenosambiguodetodos.ConsisteendespacharunasolicitudaunaInstanciadistintacadavez.Deestaforma,laejecucióndesolicitudessedistribuyedeformaequitativaentretodaslasInstancias.
LeastSpaceUsed
ElalgoritmoLSUsebasaendistribuirlaejecucióndesolicitudesdealmacenamientodeacuerdoalespacioutilizadoporcadaInstancia.Paraesto,elCoordinadordeberállevarcuentadelespacioenusoencadaunadelasInstancias,paraasípoderdespacharlassolicitudesaaquellainstanciaconelmayorespaciolibre(medidoencantidaddeentradaslibres).
KeyExplicit
Porúltimo,elalgoritmoKeyExplicit,definelaInstanciaqueejecutarácadasolicituddealmacenamientoenlaClavemisma.Cuandoestealgoritmoestáenuso,setomaráelprimercarácterdelaclaveenminúsculacomoindicadordeInstanciaalaquelecorrespondelaejecucióndelasolicitud.
Consideremosuninstantedondeexistan4instancias,laprimerainstanciaserálaencargadadealmacenarclavesquecomienzanconlasletras"a"ala"g".Lasegundainstanciadela"h"ala"m".Latercerainstanciadelaletra"n"hastala"t",yporúltimolacuartainstanciadelaletra"u"ala"z"(^15).Deagregarsenuevasinstancias,lasclavespreviamentealmacenadasnosemoverándelugar;peronuevasclavesusaránelnuevonúmerodeinstanciasparacalcularladistribución.
DesconexiónDurantelaejecucióndelSistema,existelaposibilidaddequeunaomásInstanciasdejendeestardisponiblesparaelCoordinadordeReDistinto.Anteéstassituaciones,elCoordinadordeberáajustarsudistribucióndeformaacordealacantidaddeInstanciasdisponibles.Nosedeberáeliminarunaclavedelastablasdelcoordinadorsilainstanciadedesconectó;soloseeliminacuandounESIintentaaccederaella;detalforma,silainstanciasereincorporaprevioalusodelaclave;ladesconexiónseratransparenteparael/losESIquedeseenoperarcondichaclave.
ReincorporaciónAsícomolasInstanciaspuedendejardeestardisponibles,tambiénpuedenreincorporarsealSistemaynuevasInstanciastambiénpuedenseragregadasalmismo.
^14:Llegadoelcasodequeunalgoritmoproduzcaunempate,seutilizaráelalgoritmoEquitativeLoad,elcualseráeldesempatadorparatodoslosalgoritmosdedistribución.
Distribución
15
^15:Laletra"a"secodificacomoelcarácter97yla"z"comoel122,porloquehabrá25letrasaserdivididasen4instancias,cadaunacon7letrasylaúltimaconsolo4.Cadainstanciaredondearáparaarribalacantidaddeclavesaserusadas;ylaúltimaposiblementetengamenosrangoqueaceptaría
Distribución
16
AlmacenamientoElalmacenamientoencadaInstanciaestádefinidoporunacantidaddeterminadadeEntradasdetamañoconfigurable.EnestasEntradassealmacenaránlosdatos,conlaparticularidaddequecadadatoquesealmaceneserásiempreenEntradascontiguasparafacilitarelacceso.
DumpCadadeterminadointervalo(porarchivodeconfiguración)lainstanciaalmacenarálasclavesysusvaloresenelpuntodemontaje.Laformadeguardarloseráarchivodetextosimple,cuyonombreseráelnombredelaclave,ysucontenidoelvalor(independientementedesiocupan1omásentradas).Estainformacióndeberáserrecuperadaalmomentodeiniciarunainstancia.
EntradaLasEntradassonespaciodelimitadosdentrodelalmacenamientoenloscualessepuedenalmacenardatos.EstasEntradastienenuntamañofijoconelfindefacilitarlagestióndelalmacenamiento.
ClaveLasclavesseconformaránporcadenasdehasta40caracteres.
ValorElvaloralmacenadoparacadakeyserádetamañovariable,dandolugaralaposibilidaddequeunvalorocupemásdeunasolaentradaenlaInstanciadeReDistinto.OtroscasosposiblesquesurgenporlanaturalezavariabledelvalorsonaquelloscasosenlosqueelvalortienemenortamañoqueunaEntrada;enestecaso,seproducefragmentacióninterna(^16)enestaEntrada.
ValorAtómicoSonaquellosvaloresquenoexcedeneltamañodeunaentradadealmacenamiento.Elprocesodereemplazodeentradassoloseaplicaaaquellosvaloresquecumplanconestecriterio.
AlgoritmosdeReemplazo
Almacenamiento
17
Dadoquenuestrosistemaseenfocaenaspectosdedisponibilidadynotantoenaspectosdeconsistencia,siempresepermitiráelalmacenamientodeunnuevo.Paralograrestocuandonoexistemásespacio,esnecesarioreemplazarentradasyacargadasenlaInstancia.Elvalorprevioseperderá,ysiunESIintentaaccederaeste,seabortaráporClavenoencontrada.
Circular
ElalgoritmoCircularconsisteentenerunpunterosobrelasentradasdealmacenamientodelaInstancia,elcualestablecequéentradadebeserreemplazada.Unavezquesehareemplazadolaentrada,elpunterosemuevealasiguienteiterandohastallegaralfinal.Encuantollegaalaúltimaentrada,elpunteroretornaalaprimerposición.AsícomoenDistribuciónEquitativeLoadeselalgoritmodesempatador,enReemplazoelalgoritmoCircularseráeldesempatador.
LeastRecentlyUsed
ElalgoritmoLRUsebasaenllevarregistrodehacecuántofuereferenciadacadaentrada.Llegadoelmomentodereemplazarunaentrada,seseleccionaaquellaentradaquehasidoreferenciadahacemayortiempo(^17).
BiggestSpaceUsed
Porúltimo,elalgoritmoBSUllevaregistrodeltamañodentrodelaentradaatomicaqueestásiendoocupado,yenelmomentodeunreemplazo,escogeaquélqueocupamásespaciodentrodeunaentrada.
Almacenamiento
18
CompactaciónDadalanaturalezadelalmacenamientoenReDistinto,existelaposibilidaddequeseproduzcafragmentaciónexterna(^18),impidiendoalmacenarmásdatosencasosenlosqueenrealidadsíexisteespacioparaguardarlos.Anteéstassituaciones,ReDistintoactivaráautomáticamenteelprocesodeCompactaciónantedichocaso.EsteprocesoseejecutainternamenteencadaunadelasInstanciasdeformasimultánea;esdecir,quecuandollegueelmomentoderealizarunaCompactación,todaslasInstanciasrealizarándichoproceso.
ElprocesodeCompactaciónconsisteenelreordenamientodelosdatosalmacenadosenlasEntradas,deformadeeliminarloshuecosdeespaciolibrequesegenerandebidoalafragmentaciónexterna.
Ademásderealizarelreordenamientofísicodelosdatos,esdesumaimportanciaactualizarlainformaciónasociadadetodaslasestructurasadministrativasdelaInstancia,demaneradequeéstasseanconsistentesconlaactualizacióndelalmacenamiento.
MientrasestáenejecuciónelprocesodeCompactaciónyDump,nosepermitiráejecutaroperacionesenelSistemadeReDistintoyquedaránenesperaaqueelprocesosecompletecorrectamente.
^16:Seprofundizaráenlacursada.
^17:Parasimplificarelmanejodereferenciassólosellevarácuentadehacecuantasoperacionesfuereferenciadacadaentrada,almacenandoelnúmerodeultimareferenciayreemplazandoelmenor.Estosoloseraefectivosiseaccedióalainstancia(SETySTORE),casocontrarionoafectaraelcalculodelalgoritmo.
Almacenamiento
19
^18:Seprofundizaráenlacursada.
Almacenamiento
20
AnexoI:Lenguaje-OperacionesGETclave:Intentabloquearelvalordelaclaveasociada.Silaclavenoexistelacreaylabloquea.SETclavevalor:Almacenaelvalorconlaclaveasociada.LaclavedeberaestarpreviamentetomadaporelESIqueintentahacerelSET.STOREclave:PersisteelvalordelaclaveasociadaenunarchivodentrodelaInstancia.Porcadaclavepersistidasegeneraráunarchivoparticularconteniendoelvalorentextoplano.Estaoperacióntambiéndebeliberarelbloqueosobrelaclave.
BlockingEnelsistemadeReDistinto,elbloqueoserealizasobrelasclavesquesonsolicitadasalolargodelaejecucióndeunscript.Específicamente,losbloqueosseaplicaránamedidaquesetrabajaconunaclave(^19)ysoloseliberarandichasclavescuandoserealiceunaoperaciónSTOREocuandoterminelaejecucióndelscriptquebloqueolaclave.
Script1 Script2
GETmaterias:K3001 GETmaterias:K2001
GETmaterias:K2001 GETmaterias:K3001
Enestecaso,elscript1bloquealaclavematerias:K3001ensuprimeroperación,impidiendoqueelscript2puedautilizardichaclavehastaqueelscript1lalibere.Delamismamanera,elscript2hacelomismoconlaclavematerias:K2001ensuprimeraoperación.Cuandoestosscriptslleganalasegundaoperación,sedaunaparticularidadyesqueambosestánalaesperadequeelotroscriptliberelaclavequeestánusando.Estefenómenoseconocecomodeadlock(^20).
EjemplodeScript
GETdeportes:futbol:messi
SETdeportes:futbol:messiLionelMessi
GETdeportes:basquet:ginobili
SETdeportes:basquet:ginobiliEmanuelGinobili
#Persisteeldatodelainstanciayliberaestaclave
STOREdeportes:basquet:ginobili
ManejodeErrores
ErrordeTamañodeClave
Deexcedereltamañomáximode40caracteresparalaClave,laoperaciónfallaráyseinformaráalUsuario.AbortandoelESIculpable.
ErrordeClavenoIdentificada
CuandounUsuarioejecuteunaoperacióndeSTOREoSETylaclavenoexista,sedeberágenerarunerrorinformandodedichainexistenciaalUsuario.AbortandoelESIculpable.
ErrordeComunicación
AnexoI:Lenguaje-Operactiones
21
Encasodequeocurraunerrorenlacomunicaciónconalgúnproceso,sedeberágenerarunerrorinformandoalUsuariodedichoproblema.SiladesconexiónocurreentreelPlanificadoryelCoordinador;elsistemaseconsideraenunestadoinválido.LadesconeccióndeInstanciasydeESIsdeberáestarcontemplada.
ErrordeClaveInnacesible
SilaclavequeintentaaccederexisteenelsistemaperoseencuentraenunainstanciaqueseencuentradesconectadasedeberainformaralUsuariodedichoproblemaysedeberáabortarelESI.
ErrordeClavenoBloqueada
SilaclavequeintentaaccedernoseencuentratomadaporelESIencuestión,sedeberainformaralUsuarioysedeberaabortarelESI.
^19:SololaoperaciónGETbloqueaunaclave.
^20:Severádurantelacursadaconmayordetalle.
AnexoI:Lenguaje-Operactiones
22
AnexoII:Lenguaje-SecuenciasdeEjecuciónEnesteanexoveremoscasosdeejecucióndescriptsylosresultadosquedeberiantenerencadacasoafindesermasexplicitosencuantoalaformaquesedeseaquesecomporteelsistema.Entodosloscasosseconsideraqueelscripteselúnicoqueejecutaenelsistema.Losscriptsqueseproporcionaranalmomentodelaspruebasnocontentranerroresquenoseencuentrentipificadosenellistado
Ejemplo1-ScriptquefinalizaOK:EsteeselmismoejemploqueseencuentraenelAnexoI,esporestoquevamosatomarlocomoprimerejemplo.Dadoqueelordendelassentenciassiempreeselcorrecto,elscriptfinalizasininconvenientes.
#Secrealaclavedeportes:futbol:messienlatabladeclavesdelcoordinador
GETdeportes:futbol:messi
#Secreafinalmentelaclavedeportes:futbol:messienlainstanciaysegrabaelvalorLionelMessi
SETdeportes:futbol:messiLionelMessi
#Secrealaclavedeportes:basquet:ginobilienlatabladeclavesdelcoordinador
GETdeportes:basquet:ginobili
#Secreafinalmentelaclavedeportes:basquet:ginobilienlainstanciaysegrabaelvalorEmanuelGinobili
SETdeportes:basquet:ginobiliEmanuelGinobili
#Persisteeldatodelainstanciayliberaestaclave,nodaerroryaquelamismaexiste.
STOREdeportes:basquet:ginobili
Laclavedeportes:futbol:messiqueseencontrabatomadapreviamenteseliberaalfinalizarelESI.
Ejemplo2-ScriptqueAbortaporerror-ErrordeClavenoIdentificada:EnesteejemploseintentahacerSTOREdeunavariablenocreadapreviamenteconlocualabortaelESIydevuelveelerrordeErrordeClavenoIdentificada
GETdeportes:futbol:messi
SETdeportes:futbol:messiLionelMessi
#IntentohacerstoredeunavariablequenofuecreadayporlotantoabortaelESI.
STOREdeportes:basquet:ginobili
#Estasinstruccionesnoselleganaejecutar.
GETdeportes:basquet:ginobili
SETdeportes:basquet:ginobiliEmanuelGinobili
AligualqueenelEjemplo1,alfinalizarelESIlaclavedeportes:futbol:messiselibera.
Ejemplo3-ScriptqueAbortaporerror-ErrordeClavenoBloqueada:EnesteejemploapesardeexistirlaclaveenelsistemaseintentahacerSETdelavariabledeportes:futbol:messiqueporelSTOREprevionoseencuentrabloqueadaconlocualabortaelESIydevuelveelerrordeErrordeClavenoBloqueada
AnexoII:Lenguaje-SecuenciasdeEjecución
23
GETdeportes:futbol:messi
SETdeportes:futbol:messiLionelMessi
STOREdeportes:futbol:messi
#IntentohacersetdeunavariablequenoseencuentrabloqueadayporlotantoabortaelESI.
SETdeportes:futbol:messiElMejordelMundo
#Estasinstruccionesnoselleganaejecutar.
GETdeportes:futbol:messi
STOREdeportes:futbol:messi
EnesteejemploquedademanifiestoqueelordendeejecucióncorrectodeberiaserGET-SET(1ovarios)-STORE,yquecualquierotravariacióngeneraunerroryaseadeclavenobloqueadaodeclavenoidentificada.
Ejemplo4-ScriptqueAbortapordesconexióndelainstancia:EnestecasohabraunadesconexionenelmediodelaejecuciónyalnohaberreconexionantesdequeseintenteejecutarlasentenciaelESIaborta.Afindesimplificarlacomprensiondelejemplotendremosunainstanciaquecontendrainicialmentelasclavesdedeportes:futbol:messiyotraquecontendrainicialmentelasclavesdedeportes:basquet:ginobili
GETdeportes:futbol:messi
SETdeportes:futbol:messiLionelMessi
GETdeportes:basquet:ginobili
#Enestemomentosedesconectalainstanciaquetienelaclavedeportes:futbol:messi
#Estasentenciaejecutacorrectamenteporquelaclavedeportes:basquet:ginobiliseencuentraenunainstanciaquenosedesco
necta
SETdeportes:basquet:ginobiliEmanuelGinobili
#Estasentenciaseejecutacorrectamenteporqueelalgoritmodedistribuciónenvialanuevaclaveaotrainstancia
GETdeportes:futbol:cristiano
SETdeportes:futbol:cristianoCR7
#Almomentodeejecutarlasiguienteinstrucciónelcoordinadorencuentraquelaclaveexistiaenelsistemaperoseencuentr
aenunainstanciaqueestadesconectada,porlotantoelESIaborta.
STOREdeportes:futbol:messi
AnexoII:Lenguaje-SecuenciasdeEjecución
24
DescripcióndelasentregasLoscheckpointssedividenentre"Presenciales"y"Nopresenciales".Estetrabajoprácticocontaráconunúnicocheckpointpresencial,arealizarseenellaboratoriodeMedrano.Loscheckpointsnopresencialessonorientativos,yayudanalgrupoamedirelavance.Deformaopcional,puedenservalidadosconunayudante,durantelossábadosdesoporte.
Checkpoint1-NopresencialFecha:28deAbril
Tiempoestimado:2semanas
Distribuciónrecomendada:5integrantesconectandolosprocesos)
Objetivos:
FamiliarizarseconLinuxysuconsola,elentornodedesarrolloyelrepositorioAplicarlasCommonsLibraries,principalmentelasfuncionesparalistas,archivosdeconfylogsDefinirelProtocolodeComunicaciónFamiliarizarseconeldesarrollodeprocesosservidormultihilo(procesoCoordinador,Planificador)
Implementaciónmínima:
CreacióndetodoslosprocesosqueintervienenDesarrollarunacomunicaciónsimpleentrelosprocesosquepermitapropagarunmensajeporcadaconexiónnecesariaImplementarlaconsoladelPlanificadorsinfuncionalidades
Lecturarecomendada:
http://faq.utnso.com/arrancarBeejGuidetoNetworkProgramming-linkLinuxPOSIXThreads-linkSOUTNFRBACommonsLibraries-linkSistemasOperativos,Silberschatz,Galvin-Capítulo3:ProcesosSistemasOperativos,Silberschatz,Galvin-Capítulo4:Hilos
Checkpoint2-NopresencialFecha:19deMayo
Tiempoestimado:3semanas
Distribuciónrecomendada:1ESI-2Planificador-1Coordinador-1Instancia
Objetivos:
ImplementacióndelabasedelProtocolodeComunicaciónComprenderyaplicarmmap()EntenderelconceptodeSharedLibrary
Descripcióndelasentregas
25
Comprenderconalgodeprofundidadcómofuncionanalgunosalgoritmossencillos
Implementaciónmínima:
LecturadescriptsyutilizacióndelParserdelprocesoESIElPlanificadordebesercapazdeelegiraunESIutilizandounalgoritmosencillo(FIFOporej)ElCoordinadordebesercapazdedistribuirporEquitativeLoad.DesarrollodelecturayescrituradeEntradasenelInstancia(OperacionesGET/SET).
Lecturarecomendada:
SistemasOperativos,Silberschatz,Galvin-Capítulo4:HilosSistemasOperativos,Silberschatz,Galvin-Capítulo5:Planificación
Checkpoint3-Presencial-LaboratorioFecha:9deJunio
Tiempoestimado:3semanas
Distribuciónrecomendada:1ESI-2Planificador-1Coordinador-1Instancia
Objetivos:
EntenderlasimplicanciasdeunalgoritmodeplanificaciónrealEntenderelconceptodeproductor-consumidorysusproblemasdeconcurrenciaImplementaralgoritmossimilaresalosusadosenMemoriaVirtual
Implementaciónmínima:
ESIcompletoPlanificadorutilizandoSJFconysindesalojo,contodassuscolas.LaconsoladelPlanificadordeberápoderejecutarloscomandos"Pausar/Continuar","Bloquear","Desbloquear"y"Listar"ElCoordinadordeberátenerel"LogdeOperaciones"funcionando.Tambiéndeberásercapazdecomunicarbloqueos.LaInstanciadeberáimplementartodaslasinstrucciones.Alahoradereemplazarclaves,deberáimplementarelalgoritmoCircular
Lecturarecomendada:
SistemasOperativos,Silberschatz,Galvin-Capítulo5:PlanificaciónSistemasOperativos,Silberschatz,Galvin-Capítulo6:SincronizaciónSistemasOperativos,Silberschatz,Galvin-Capítulo8y9:Memoria
Checkpoint4-NoPresencialFecha:30deJunio
Tiempoestimado:3semanas
Distribuciónrecomendada:2Planificador-2Coordinador-1Instancia
Descripcióndelasentregas
26
Objetivos:
EntenderlasimplicanciasdeunalgoritmodeplanificaciónrealUtilizarelconceptode"interfase"paraquecadaprocesoplanifiquedeformasimilar,soportandodiferentesalgoritmos.
Implementaciónmínima:
PlanificadorutilizandoHRRNLaconsoladelPlanificadordeberápoderejecutarloscomandos"kill"y"status"ElCoordinadordeberásercapazdedistribuirutilizando"LSU"y"KE".ImplementarretardosLaInstanciadeberásercapazdesoportardesconexionesyreincorporaciones.AdemássedeberáimplementarelalgoritmoLRU
Lecturarecomendada:
SistemasOperativos,Silberschatz,Galvin-Capítulo5:PlanificaciónSistemasOperativos,Silberschatz,Galvin-Capítulo6:SincronizaciónSistemasOperativos,Silberschatz,Galvin-Capítulo8y9:Memoria
Entregafinal-Presencial-LaboratorioFecha:14deJulio
Tiempoestimado:2semanas
Distribuciónrecomendada:1Planificador-1Coordinador-1Instancia-2Testinggeneralyarreglos
Objetivos:
ImplementarunalgoritmodedeteccióndedeadlocksProbarelTPenunentornodistribuidoRealizarpruebasintensivasFinalizareldesarrollodetodoslosprocesos
Implementaciónmínima:
LaconsoladelPlanificadordeberápoderejecutarelcomando"deadlock"LaInstanciadeberásercapazdesoportardumpsycompactación.SedeberáimplementarelalgoritmoBSU
Lecturarecomendada:
SistemasOperativos,Silberschatz,Galvin-Capítulo6:DeadlockSistemasOperativos,Silberschatz,Galvin-Capítulo10y11:FileSystem
Segundafechadeentrega:28deJulio
Últimafechadeentrega:4deAgosto
Descripcióndelasentregas
27