Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una...

27

Transcript of Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una...

Page 1: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo
Page 2: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 3: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

ReDistinto

Introduction

3

Page 4: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

Arquitectura

Lasiguienteeslaarquitecturadeltrabajopráctico.Laslíneasrepresentanconexiones,queseránrealizadasutilizandosocketsTCP/IP.Laconexiónsellevaráacaboutilizandoipsypuertosdefinidosenunarchivodeconfiguración.

Arquitectura

4

Page 5: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 6: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 7: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 8: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 9: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 10: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 11: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 12: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

^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

Page 13: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 14: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 15: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 16: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

^15:Laletra"a"secodificacomoelcarácter97yla"z"comoel122,porloquehabrá25letrasaserdivididasen4instancias,cadaunacon7letrasylaúltimaconsolo4.Cadainstanciaredondearáparaarribalacantidaddeclavesaserusadas;ylaúltimaposiblementetengamenosrangoqueaceptaría

Distribución

16

Page 17: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 18: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 19: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 20: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

^18:Seprofundizaráenlacursada.

Almacenamiento

20

Page 21: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 22: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 23: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 24: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 25: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 26: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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

Page 27: Table of Contents - 3-129497896-gh.circle-artifacts.com · ^3: El Planificador empezará con una serie de claves bloqueadas de esta manera. ^4: ... , William Stallings 5ta Ed - Capítulo

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