Está en la página 1de 921

SI STEMAS OPERATI VOS

SI STEMAS
OPERATI VOS
Master David Luis la Red Martnez
PROFESOR TITULAR POR CONCURSO DE
SISTEMAS OPERATIVOS
Licenciatura en Sistemas deInformacin
Departamento deInformtica
UNIVERSIDAD NACIONAL DEL NORDESTE
U.N.N.E. - ARGENTINA
A mi familia.
A mis profesores.
A mis alumnos.
Prlogo
Es para mi una gran satisfaccin prologar este libro del Profesor La Red Martnez
sobre el aprendizaje de los Sistemas Operativos. El libro no es ms que una muestra y
un testimonio escrito de un largo proceso de formacin del profesorado y de renovacin
en las formas docentes, que ha tenido lugar en la Universidad Nacional del Nordeste en
Corrientes en el Departamento deInformtica, con motivo dela Maestra en Informtica
y Computacin, y en el que el Profesor La Red ha colaborado de una forma destacada,
pudiendo decirsequeno hubiera sido posiblesin su participacin.
El tema de los sistemas operativos es complejo e implica muchos conceptos nuevos
para el alumno, algunos de ellos difciles de comprender. Con este libro el aprendizaje
se hace mucho ms llevadero, e incluso divertido. El libro es fruto, por un lado, de la
experiencia diaria del aula, acumulada tras muchos aos de trabajo y esfuerzo, y, por
otro, delaincorporacin delasnuevastecnologasalaenseanza. Ello senotaen el estilo
del libro, en la seleccin delos ejemplos y problemas queseincluyen, en los contenidos, y
en la forma decomunicarlo al lector.
La incorporacin delos recursos y herramientas informticas detrabajo es uno desus
muchos aciertos. Sorprende la lista de ellas que han sido utilizadas. El poder acceder
a multitud de programas de clculo y diseo, dibujo, tratamiento de textos, correo elec-
trnico, Internet, etc., desdeel propio libro, en su versin electrnica, brindan al alumno
la posibilidad de un aprendizaje mucho ms profundo y prctico. Permiten tambin la
auto-formacin.
El Profesor La Red al poner a disposicin de cualquiera el libro en Internet, compar-
te con todos su trabajo y conocimiento. Nada hay ms grato que compartir, sabiendo
que muchos, en cualquier parte del mundo, se beneciarn de este trabajo. Esto podr
comprobarlocuandoempiecearecibir agradecimientosyconsultasdeloslugaresmsinsos-
pechados. Aunque, en la inmensa mayora delos casos, no recibir ni siquiera las gracias,
convienequesepa quemuchos leagradecern, en silencio, su esfuerzo y generosidad.
Por ello, medianteestelibro, el Profesor La Red pasa deser un profesor universitario
a un profesor universal.
Dr. Enrique Castillo Ron.
Acadmico de Nmero de la
Academia de I ngeniera de Espaa.
Santander (Espaa); Noviembre de 2001.
Prefacio
Este libro trata sobre los aspectos fundamentales referidos a los Sistemas Operativos
y divideel estudio delos mismos en tres partes:
Sistemas Operativos Convencionales.
Sistemas Operativos Distribuidos.
Casos de Estudio.
Para aquellos lectores quesolo deseen adquirir o refrescar conocimientos relacionados
con los Sistemas Operativos en general, ser sucientecon la lectura dela Primer Parte,
entantoqueparaaquellosquedeseen unconocimientomsprofundo, teniendopresentela
problemtica delos Sistemas Distribuidos, ser necesario avanzar en la lectura del primer
grupodetemasdelaSegundaParte; asimismo, si ademssedeseaincursionar en aspectos
complementarios pero importantes, se sugiere tambin la lectura del segundo grupo de
temas de la mencionada Segunda Parte, la que se recomienda leer aunque no se tenga
inters en los Sistemas Distribuidos, ya quees un buen complemento de la Primer Parte
deesta obra.
En cuanto a la Tercer Parte, correspondeaclarar que resultara de inters para quie-
nes deseen profundizar en el estudio terico - prctico de un conjunto de problemticas
relacionadas con los Sistemas Operativos, con el auxilio deherramientas deavanzada ta-
les como Mathematica, Matlab, J ava, Redes Neuronales, Sistemas Expertos, Orientacin
a Objetos, etc., siendo un buen complemento de las dos partes anteriores, que permite
incrementar el conocimiento delos temas considerados.
Es preciso sealar adems queestelibro est destinado a los alumnos deuna Carrera
deGrado en Informticaquedeban hacer un Curso deSistemas Operativos, pudiendoser
deutilidad, segn la profundidad del curso, la Primer Parte, la Segunda Parteo las tres
quecomponen estetrabajo.
Master David Luis la Red Martnez.
Prof. Titular de la UNNE.
Corrientes (Argentina); Noviembre de 2001.
ndice General
I Sistemas Operativos Convencionales 1
1 I ntroduccin 3
1.1 Ques un Sistema Operativo . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Historia delos Sistemas Operativos - Generaciones . . . . . . . . . . . . . . 5
1.3 Conceptos delos Sistemas Operativos . . . . . . . . . . . . . . . . . . . . . 8
1.4 Estructura delos Sistemas Operativos . . . . . . . . . . . . . . . . . . . . . 10
1.5 Tendencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.6 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.7 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.8 Memoria Fija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2 Procesos y Administracin del Procesador 27
2.1 Introduccin y Deniciones SobreProcesos . . . . . . . . . . . . . . . . . . 27
2.2 Estados deProcesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3 Procesamiento deInterrupciones . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4 El Ncleo del Sistema Operativo . . . . . . . . . . . . . . . . . . . . . . . . 33
2.5 Planicacin deProcesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.6 Niveles dePlanicacin del Procesador . . . . . . . . . . . . . . . . . . . . . 35
2.7 Objetivos dela Planicacin . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.8 Criterios dePlanicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.9 Planicacin Apropiativa Versus No Apropiativa . . . . . . . . . . . . . . . 39
2.10 Temporizador deIntervalos o Reloj deInterrupcin . . . . . . . . . . . . . . 40
2.11 Prioridades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.12 Tipos dePlanicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.12.1 Planicacin a Plazo Fijo . . . . . . . . . . . . . . . . . . . . . . . . 42
2.12.2 Planicacin Garantizada . . . . . . . . . . . . . . . . . . . . . . . . 42
2.12.3 Planicacin del Primero en Entrar Primero en Salir (FIFO) . . . . 42
2.12.4 Planicacin deAsignacin en Rueda (RR: Round Robin) . . . . . . 43
2.12.5 Tamao del Cuanto o Quantum. . . . . . . . . . . . . . . . . . . . . 43
2.12.6 Planicacin del Trabajo Ms Corto Primero (SJ F) . . . . . . . . . 43
2.12.7 Planicacin del Tiempo RestanteMs Corto (SRT) . . . . . . . . . 44
2.12.8 Planicacin el Siguientecon Relacin deRespuesta Mxima (HRN) 44
2.12.9 Planicacin por Prioridad . . . . . . . . . . . . . . . . . . . . . . . 45
2.12.10Colas deRetroalimentacin deNiveles Mltiples . . . . . . . . . . . 45
2.12.11Poltica Versus Mecanismo dePlanicacin . . . . . . . . . . . . . . 46
xi
xii NDICE GENERAL
2.12.12Planicacin deDos Niveles . . . . . . . . . . . . . . . . . . . . . . . 46
2.13 Multiprocesamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.13.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.13.2 Conabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.13.3 Explotacin del Paralelismo . . . . . . . . . . . . . . . . . . . . . . . 49
2.13.4 Paralelismo Masivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.13.5 Metas delos Sistemas deMultiprocesamiento . . . . . . . . . . . . . 50
2.13.6 Deteccin Automtica del Paralelismo . . . . . . . . . . . . . . . . . 50
2.13.7 Distribucin deCiclos . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.13.8 Reduccin dela Altura del Arbol . . . . . . . . . . . . . . . . . . . . 52
2.14 Organizacin del Hardwaredel Multiprocesador . . . . . . . . . . . . . . . . 54
2.14.1 Tiempo Compartido o Bus Comn (o Conductor Comn) . . . . . . 54
2.14.2 Matriz deBarras Cruzadas eInterruptores . . . . . . . . . . . . . . 55
2.14.3 Almacenamiento deInterconexin Mltiple . . . . . . . . . . . . . . 55
2.15 Grados deAcoplamiento en Multiprocesamiento . . . . . . . . . . . . . . . 55
2.15.1 Organizacin Maestro / Satlite . . . . . . . . . . . . . . . . . . . . 57
2.16 Sistema Operativo deMultiprocesadores . . . . . . . . . . . . . . . . . . . . 57
2.16.1 Maestro / Satlite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.16.2 Ejecutivos Separados . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.16.3 Tratamiento Simtrico . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.17 Rendimiento del Sistema deMultiprocesamiento . . . . . . . . . . . . . . . 60
2.18 Recuperacin deErrores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.19 Multiprocesamiento Simtrico (MPS) . . . . . . . . . . . . . . . . . . . . . . 61
2.20 Tendencias delos Multiprocesadores . . . . . . . . . . . . . . . . . . . . . . 61
3 Administracin de la Memoria 65
3.1 Introduccin al Almacenamiento Real . . . . . . . . . . . . . . . . . . . . . 65
3.2 Organizacin y Administracin del Almacenamiento . . . . . . . . . . . . . 65
3.2.1 Organizacin del Almacenamiento . . . . . . . . . . . . . . . . . . . 65
3.2.2 Administracin del Almacenamiento . . . . . . . . . . . . . . . . . . 66
3.3 J erarqua deAlmacenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.4 Estrategias deAdministracin del Almacenamiento . . . . . . . . . . . . . . 67
3.4.1 Asignacin Contigua deAlmacenamiento Versus No Contigua . . . . 68
3.4.2 Asignacin Contigua deAlmacenamiento deUn Solo Usuario . . . . 68
3.5 Multiprogramacin deParticin Fija . . . . . . . . . . . . . . . . . . . . . . 70
3.5.1 Multiprogramacin deParticin Fija: Traduccin y Carga Absolutas 71
3.5.2 Multiprogramacin deParticin Fija: Traduccin y CargaRelocali-
zables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3.5.3 Proteccin en los Sistemas deMultiprogramacin . . . . . . . . . . . 73
3.5.4 Fragmentacin en la Multiprogramacin deParticin Fija . . . . . . 73
3.6 Multiprogramacin deParticin Variable. . . . . . . . . . . . . . . . . . . . 74
3.6.1 Compresin o Compactacin deAlmacenamiento . . . . . . . . . . . 74
3.6.2 Estrategias deColocacin del Almacenamiento . . . . . . . . . . . . 77
3.7 Multiprogramacin con Intercambio deAlmacenamiento . . . . . . . . . . . 77
3.8 Introduccin a la Organizacin del Almacenamiento Virtual . . . . . . . . . 78
3.9 Conceptos Bsicos deAlmacenamiento Virtual . . . . . . . . . . . . . . . . 79
NDICE GENERAL xiii
3.10 Organizacin del Almacenamiento deNiveles Mltiples . . . . . . . . . . . . 80
3.11 Transformacin deBloques . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.12 Conceptos Bsicos dePaginacin . . . . . . . . . . . . . . . . . . . . . . . . 84
3.12.1 Traduccin deDirecciones dePaginacin por Transformacin Directa 86
3.12.2 Traduccin de Direcciones de Paginacin por Transformacin Aso-
ciativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.12.3 TraduccindeDireccionesdePaginacinpor CombinacindeTrans-
formacin Asociativa / Directa . . . . . . . . . . . . . . . . . . . . . 90
3.12.4 Compartimiento deRecursos en un Sistema dePaginacin . . . . . . 91
3.13 Segmentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.13.1 Control deAcceso en Sistemas deSegmentacin . . . . . . . . . . . 94
3.13.2 Traduccin deDireccionesdeSegmentacin por Transformacin Di-
recta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.13.3 Compartimiento en un Sistema deSegmentacin . . . . . . . . . . . 98
3.14 Sistemas dePaginacin / Segmentacin . . . . . . . . . . . . . . . . . . . . 99
3.14.1 Traduccin Dinmica de Direcciones en Sistemas de Paginacin /
Segmentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.14.2 Compartimiento en un Sistema dePaginacin / Segmentacin. . . . 101
3.15 Administracin del Almacenamiento Virtual . . . . . . . . . . . . . . . . . . 101
3.15.1 Estrategias deReposicin dePgina . . . . . . . . . . . . . . . . . . 105
3.15.2 El Principio deOptimizacin . . . . . . . . . . . . . . . . . . . . . . 105
3.15.3 Reposicin dePgina al Azar . . . . . . . . . . . . . . . . . . . . . . 106
3.15.4 ReposicindePginapor el SistemadePrimeroenEntrar - Primero
en Salir (FIFO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
3.15.5 Reposicin dePgina Menos - Recientemente- Usada (LRU) . . . . 106
3.15.6 Reposicin dePgina Menos - Frecuentemente- Usada (LFU) . . . . 106
3.15.7 Reposicin dePgina No Usada - Recientemente(NUR) . . . . . . . 107
3.16 Localidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3.17 Conjuntos deTrabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
3.18 Paginacin por Demanda y Paginacin Anticipada . . . . . . . . . . . . . . 111
3.18.1 Paginacin por Demanda . . . . . . . . . . . . . . . . . . . . . . . . 111
3.18.2 Paginacin Anticipada . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.19 Liberacin dePgina y Tamao dePgina . . . . . . . . . . . . . . . . . . . 112
3.19.1 Liberacin dePgina . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.19.2 Tamao dePgina . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.20 Comportamiento deun Programa en la Paginacin . . . . . . . . . . . . . . 114
4 Sistemas de Archivos 117
4.1 Introduccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.2 Funciones del Sistema deArchivos . . . . . . . . . . . . . . . . . . . . . . . 118
4.3 El Sistema deArchivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.4 Archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.4.1 Nombredelos Archivos . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.4.2 Estructura deun Archivo . . . . . . . . . . . . . . . . . . . . . . . . 119
4.4.3 Tipos deArchivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.4.4 Acceso a un Archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
xiv NDICE GENERAL
4.4.5 Atributos deArchivo . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.4.6 Operaciones con Archivos . . . . . . . . . . . . . . . . . . . . . . . . 122
4.4.7 Archivos Mapeados a Memoria . . . . . . . . . . . . . . . . . . . . . 122
4.5 Directorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.5.1 Sistemas J errquicos deDirectorios . . . . . . . . . . . . . . . . . . . 123
4.5.2 Nombredelas Rutas deAcceso . . . . . . . . . . . . . . . . . . . . . 124
4.5.3 Operaciones con Directorios . . . . . . . . . . . . . . . . . . . . . . . 126
4.6 Implantacin del Sistema deArchivos . . . . . . . . . . . . . . . . . . . . . 127
4.6.1 Implantacin deArchivos . . . . . . . . . . . . . . . . . . . . . . . . 127
4.6.2 Implantacin deDirectorios . . . . . . . . . . . . . . . . . . . . . . . 133
4.6.3 Archivos Compartidos . . . . . . . . . . . . . . . . . . . . . . . . . . 133
4.6.4 Administracin del Espacio en Disco . . . . . . . . . . . . . . . . . . 136
4.6.5 Conabilidad del Sistema deArchivos . . . . . . . . . . . . . . . . . 138
4.6.6 Desempeo del Sistema deArchivos . . . . . . . . . . . . . . . . . . 142
4.7 Descriptor deArchivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
4.8 Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.8.1 El AmbientedeSeguridad. . . . . . . . . . . . . . . . . . . . . . . . 144
4.8.2 Virus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
4.8.3 Principios del Diseo Para la Seguridad . . . . . . . . . . . . . . . . 146
4.8.4 Autenticacin del Usuario . . . . . . . . . . . . . . . . . . . . . . . 147
4.8.5 Contraseas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
4.8.6 Identicacin Fsica . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
4.8.7 Medidas Preventivas . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
4.9 Mecanismos deProteccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
4.9.1 Dominios deProteccin . . . . . . . . . . . . . . . . . . . . . . . . . 149
4.9.2 Listas Para Control deAcceso . . . . . . . . . . . . . . . . . . . . . 150
4.9.3 Posibilidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
4.9.4 Modelos deProteccin . . . . . . . . . . . . . . . . . . . . . . . . . . 152
4.9.5 Control deAcceso Por Clases deUsuarios . . . . . . . . . . . . . . . 152
4.10 Respaldo y Recuperacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
5 Entrada / Salida 155
5.1 Introduccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
5.2 Principios del HardwaredeE / S . . . . . . . . . . . . . . . . . . . . . . . . 155
5.2.1 Dispositivos deE / S . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
5.2.2 Controladores deDispositivos . . . . . . . . . . . . . . . . . . . . . . 156
5.2.3 Acceso Directo a Memoria (DMA) . . . . . . . . . . . . . . . . . . . 158
5.3 Principios del SoftwaredeE / S . . . . . . . . . . . . . . . . . . . . . . . . 160
5.3.1 Objetivos del SoftwaredeE / S . . . . . . . . . . . . . . . . . . . . . 161
5.3.2 Manejadores deInterrupciones . . . . . . . . . . . . . . . . . . . . . 162
5.3.3 Manejadores deDispositivos. . . . . . . . . . . . . . . . . . . . . . . 162
5.3.4 SoftwaredeE / S Independientedel Dispositivo . . . . . . . . . . . 163
5.3.5 SoftwaredeE / S en el Espacio del Usuario . . . . . . . . . . . . . . 164
5.4 Discos - HardwarePara Discos . . . . . . . . . . . . . . . . . . . . . . . . . 165
5.4.1 Discos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
5.4.2 HardwarePara Discos . . . . . . . . . . . . . . . . . . . . . . . . . . 165
NDICE GENERAL xv
5.5 Operacin deAlmacenamiento deDisco deCabeza Mvil . . . . . . . . . . 165
5.6 Algoritmos deProgramacin del Brazo del Disco . . . . . . . . . . . . . . . 167
5.7 Porques Necesaria la Planicacin deDiscos . . . . . . . . . . . . . . . . . 170
5.8 Caractersticas Deseables dela Planicacin . . . . . . . . . . . . . . . . . . 171
5.9 Optimizacin dela Bsqueda en Discos . . . . . . . . . . . . . . . . . . . . 171
5.9.1 Planicacin FCFS (Primero en Llegar, Primero en Ser Servido) . . 172
5.9.2 Planicacin SSTF (Menor Tiempo deBsqueda Primero) . . . . . 172
5.9.3 Planicacin SCAN . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
5.9.4 Planicacin SCAN deN - Pasos . . . . . . . . . . . . . . . . . . . . 172
5.9.5 Planicacin C - SCAN (Bsqueda Circular) . . . . . . . . . . . . . 173
5.9.6 Esquema Eschenbach. . . . . . . . . . . . . . . . . . . . . . . . . . . 173
5.9.7 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
5.10 Optimizacin Rotacional en Discos . . . . . . . . . . . . . . . . . . . . . . . 173
5.11 Consideraciones delos Discos Sobrelos Sistemas . . . . . . . . . . . . . . . 174
5.12 Manejo deErrores en Discos. . . . . . . . . . . . . . . . . . . . . . . . . . . 175
5.13 Ocultamiento deUna Pista a la Vez en Discos . . . . . . . . . . . . . . . . . 176
5.14 Discos en RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
5.15 Relojes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
5.16 Terminales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
6 Bloqueos 181
6.1 Introduccin y Ejemplos deBloqueo (o Interbloqueo) . . . . . . . . . . . . . 181
6.2 Conceptos deRecursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
6.3 Bloqueos y Condiciones Necesarias Para el Bloqueo . . . . . . . . . . . . . . 184
6.4 Modelacin deBloqueos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
6.5 Areas Principales en la Investigacin deBloqueos . . . . . . . . . . . . . . . 188
6.6 El Algoritmo del Avestrz o deOstrich . . . . . . . . . . . . . . . . . . . . 189
6.7 Deteccin deBloqueos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
6.7.1 Grcas deAsignacin deRecursos. . . . . . . . . . . . . . . . . . . 190
6.7.2 Reduccin deGrcas deAsignacin deRecursos . . . . . . . . . . . 190
6.7.3 Deteccin deBloqueos deForma Un Recurso deCada Tipo . . . . 190
6.7.4 Deteccin deBloqueos deForma Varios Recursos deCada Tipo . 194
6.7.5 Cundo Buscar los Bloqueos . . . . . . . . . . . . . . . . . . . . . . 197
6.8 Recuperacin deBloqueos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
6.8.1 Recuperacin Mediantela Apropiacin . . . . . . . . . . . . . . . . . 198
6.8.2 Recuperacin MedianteRollback . . . . . . . . . . . . . . . . . . . . 198
6.8.3 Recuperacin Mediantela Eliminacin deProcesos . . . . . . . . . . 199
6.9 Evasin deBloqueos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
6.9.1 Trayectorias deRecursos. . . . . . . . . . . . . . . . . . . . . . . . . 199
6.9.2 Estados Seguros eInseguros . . . . . . . . . . . . . . . . . . . . . . . 201
6.9.3 El Algoritmo del Banquero (deDijkstra) Para Solo Un Recurso . . . 202
6.9.4 El Algoritmo del Banquero (deDijkstra) Para Varios Recursos . . . 203
6.9.5 Asignacin deRecursos por el Algoritmo del Banquero . . . . . . . . 204
6.9.6 Debilidades del Algoritmo del Banquero . . . . . . . . . . . . . . . . 205
6.10 Prevencin deBloqueos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
6.10.1 Prevencin dela Condicin deExclusin Mutua . . . . . . . . . . . 205
xvi NDICE GENERAL
6.10.2 Prevencin dela Condicin detenersey esperar o espera por . . 206
6.10.3 Prevencin dela Condicin deno apropiacin . . . . . . . . . . . 206
6.10.4 Prevencin dela Condicin deespera circular . . . . . . . . . . . . 206
6.11 Otros Aspectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
6.11.1 Cerradura deDos Fases . . . . . . . . . . . . . . . . . . . . . . . . . 208
6.11.2 Bloqueos Sin Recursos . . . . . . . . . . . . . . . . . . . . . . . . . . 208
6.11.3 Inanicin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
6.12 Tendencias del Tratamiento del Bloqueo . . . . . . . . . . . . . . . . . . . . 209
I I Sistemas Operativos Distribuidos 211
7 I ntroduccin a los Sistemas Distribuidos 213
7.1 Introduccin a los Sistemas Distribuidos . . . . . . . . . . . . . . . . . . . . 213
7.2 Ventajas delos Sistemas Distribuidos con Respecto a los Centralizados . . . 213
7.3 Ventajas Respecto a las PC Independientes . . . . . . . . . . . . . . . . . . 215
7.4 Desventajas delos Sistemas Distribuidos . . . . . . . . . . . . . . . . . . . . 215
7.5 Conceptos deHardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
7.6 Multiprocesadores con Baseen Buses . . . . . . . . . . . . . . . . . . . . . . 218
7.7 Multiprocesadores con Conmutador . . . . . . . . . . . . . . . . . . . . . . . 219
7.8 Multicomputadoras con Baseen Buses . . . . . . . . . . . . . . . . . . . . . 222
7.9 Multicomputadoras con Conmutador . . . . . . . . . . . . . . . . . . . . . . 223
7.10 Conceptos deSoftware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
7.11 Sistemas Operativos deRedes . . . . . . . . . . . . . . . . . . . . . . . . . . 225
7.11.1 NFS: Network FileSystem . . . . . . . . . . . . . . . . . . . . . . . 227
7.12 Sistemas RealmenteDistribuidos . . . . . . . . . . . . . . . . . . . . . . . . 232
7.13 Sistemas deMultiprocesador con Tiempo Compartido . . . . . . . . . . . . 234
7.14 Aspectos del Diseo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
7.15 Transparencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
7.16 Flexibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
7.17 Conabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
7.18 Desempeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
7.19 Escalabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
8 Comunicacin en los Sistemas Distribuidos 243
8.1 Introduccin a la Comunicacin en los Sistemas Distribuidos . . . . . . . . 243
8.2 Protocolos con Capas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
8.3 Introduccin al Modelo Cliente- Servidor (C - S) . . . . . . . . . . . . . . . 245
8.4 Direccionamiento en C - S . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
8.5 Primitivas deBloqueo Vs. No Bloqueo en C - S . . . . . . . . . . . . . . . . 250
8.6 Primitivas Almacenadas Vs. No Almacenadas . . . . . . . . . . . . . . . . . 251
8.7 Primitivas Conables Vs. No Conables en C - S . . . . . . . . . . . . . . . 254
8.8 Implantacin del Modelo C - S . . . . . . . . . . . . . . . . . . . . . . . . . 255
8.9 Llamada a un Procedimiento Remoto (RPC) . . . . . . . . . . . . . . . . . 257
8.10 Operacin Bsica deRPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
8.11 Transferencia deParmetros en RPC . . . . . . . . . . . . . . . . . . . . . . 262
NDICE GENERAL xvii
8.12 Conexin Dinmica (Dynamic Binding) en RPC . . . . . . . . . . . . . . . 265
8.13 Semntica deRPC en Presencia deFallos . . . . . . . . . . . . . . . . . . . 266
8.13.1 El ClienteNo PuedeLocalizar al Servidor . . . . . . . . . . . . . . . 266
8.13.2 Prdida deMensajes deSolicitud . . . . . . . . . . . . . . . . . . . . 267
8.13.3 Prdida deMensajes deRespuesta . . . . . . . . . . . . . . . . . . . 267
8.13.4 Fallos del Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
8.13.5 Fallos del Cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
8.14 Aspectos dela Implantacin en RPC . . . . . . . . . . . . . . . . . . . . . . 271
8.14.1 Protocolos RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
8.14.2 Reconocimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
8.14.3 Ruta Crtica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
8.14.4 Copiado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
8.14.5 Manejo del Cronmetro . . . . . . . . . . . . . . . . . . . . . . . . . 277
8.15 Areas deProblemas en RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
8.16 Comunicacin en Grupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
8.17 Aspectos del Diseo dela Comunicacin en Grupo . . . . . . . . . . . . . . 280
8.17.1 Grupos Cerrados Vs. Grupos Abiertos . . . . . . . . . . . . . . . . . 281
8.17.2 Grupos deCompaeros Vs. Grupos J errquicos . . . . . . . . . . . . 281
8.17.3 Membresa del Grupo . . . . . . . . . . . . . . . . . . . . . . . . . . 283
8.17.4 Direccionamiento al Grupo . . . . . . . . . . . . . . . . . . . . . . . 284
8.17.5 Primitivas Send y Receive . . . . . . . . . . . . . . . . . . . . . . . . 285
8.17.6 Atomicidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
8.17.7 Ordenamiento deMensajes . . . . . . . . . . . . . . . . . . . . . . . 287
8.17.8 Grupos Traslapados . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
8.17.9 Escalabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
9 Sincronizacin en Sistemas Distribuidos 289
9.1 Introduccin a la Sincronizacin en Sistemas Distribuidos . . . . . . . . . . 289
9.2 Sincronizacin deRelojes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
9.3 Relojes Lgicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
9.4 Relojes Fsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
9.5 Algoritmos Para la Sincronizacin deRelojes . . . . . . . . . . . . . . . . . 295
9.5.1 Algoritmo deCristian . . . . . . . . . . . . . . . . . . . . . . . . . . 295
9.5.2 Algoritmo deBerkeley . . . . . . . . . . . . . . . . . . . . . . . . . . 297
9.5.3 Algoritmos con Promedio . . . . . . . . . . . . . . . . . . . . . . . . 297
9.5.4 Varias Fuentes Externas deTiempo . . . . . . . . . . . . . . . . . . 297
9.6 Exclusin Mutua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
9.6.1 Un Algoritmo Centralizado . . . . . . . . . . . . . . . . . . . . . . . 298
9.6.2 Un Algoritmo Distribuido . . . . . . . . . . . . . . . . . . . . . . . . 299
9.6.3 Un Algoritmo deAnillo deFichas (Token Ring) . . . . . . . . . . . . 300
9.7 Algoritmos deEleccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
9.7.1 El Algoritmo del Granduln o deGarca-Molina . . . . . . . . . . . 301
9.7.2 Un Algoritmo deAnillo . . . . . . . . . . . . . . . . . . . . . . . . . 302
9.8 Transacciones Atmicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
9.9 El Modelo deTransaccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
9.9.1 Almacenamiento Estable. . . . . . . . . . . . . . . . . . . . . . . . . 304
xviii NDICE GENERAL
9.9.2 Primitivas deTransaccin . . . . . . . . . . . . . . . . . . . . . . . . 304
9.9.3 Propiedades delas Transacciones . . . . . . . . . . . . . . . . . . . . 305
9.9.4 Transacciones Anidadas . . . . . . . . . . . . . . . . . . . . . . . . . 305
9.10 Implantacin del Modelo deTransaccin . . . . . . . . . . . . . . . . . . . . 305
9.10.1 Espacio deTrabajo Particular . . . . . . . . . . . . . . . . . . . . . . 306
9.10.2 Bitcora deEscritura Anticipada . . . . . . . . . . . . . . . . . . . . 307
9.10.3 Protocolo deCompromiso deDos Fases (Two - PhaseCommit) . . . 308
9.11 Control deConcurrencia en el Modelo deTransaccin . . . . . . . . . . . . 308
9.11.1 Cerradura (locking) . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
9.11.2 Control Optimista dela Concurrencia . . . . . . . . . . . . . . . . . 310
9.11.3 Marcas deTiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
9.11.4 Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
9.12 Bloqueos en Sistemas Distribuidos . . . . . . . . . . . . . . . . . . . . . . . 311
9.13 Deteccin Distribuida deBloqueos . . . . . . . . . . . . . . . . . . . . . . . 312
9.13.1 Deteccin Centralizada deBloqueos . . . . . . . . . . . . . . . . . . 312
9.13.2 Deteccin Distribuida deBloqueos . . . . . . . . . . . . . . . . . . . 313
9.14 Prevencin Distribuida deBloqueos . . . . . . . . . . . . . . . . . . . . . . 314
10 Procesos y Procesadores en Sistemas Distribuidos 315
10.1 Introduccin a los Hilos (Threads) . . . . . . . . . . . . . . . . . . . . . . . 315
10.2 Uso deHilos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
10.3 Aspectos del Diseo deun PaquetedeHilos . . . . . . . . . . . . . . . . . . 317
10.4 Implantacin deun PaquetedeHilos . . . . . . . . . . . . . . . . . . . . . . 318
10.5 Hilos y RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
10.6 Modelos deSistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
10.7 El Modelo deEstacin deTrabajo . . . . . . . . . . . . . . . . . . . . . . . 320
10.8 Uso deEstaciones deTrabajo Inactivas . . . . . . . . . . . . . . . . . . . . 321
10.9 El Modelo dela Pila deProcesadores . . . . . . . . . . . . . . . . . . . . . . 323
10.10Asignacin deProcesadores . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
10.11Modelos deAsignacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
10.12Diseo deAlgoritmos deAsignacin deProcesadores . . . . . . . . . . . . . 325
10.13Aspectos dela Implantacin deAlgoritmos deAsignacin deProcesadores . 326
10.14Ejemplos deAlgoritmos deAsignacin deProcesadores . . . . . . . . . . . 327
10.14.1Un Algoritmo Determinista Segn la Teora deGrcas . . . . . . . 327
10.14.2Un Algoritmo Centralizado . . . . . . . . . . . . . . . . . . . . . . . 329
10.14.3Un Algoritmo J errquico . . . . . . . . . . . . . . . . . . . . . . . . 330
10.14.4Un Algoritmo Distribuido Heurstico (Eager) . . . . . . . . . . . . . 331
10.14.5Un Algoritmo deRemates . . . . . . . . . . . . . . . . . . . . . . . . 331
10.15Planicacin en Sistemas Distribuidos . . . . . . . . . . . . . . . . . . . . . 332
11 Sistemas Distribuidos de Archivos 333
11.1 Introduccin a los Sistemas Distribuidos deArchivos . . . . . . . . . . . . . 333
11.2 Diseo delos Sistemas Distribuidos deArchivos . . . . . . . . . . . . . . . . 334
11.3 La Interfaz del Servicio deArchivos. . . . . . . . . . . . . . . . . . . . . . . 334
11.4 La Interfaz del Servidor deDirectorios . . . . . . . . . . . . . . . . . . . . . 335
11.4.1 Transparencia delos Nombres . . . . . . . . . . . . . . . . . . . . . . 336
NDICE GENERAL xix
11.5 Semntica delos Archivos Compartidos . . . . . . . . . . . . . . . . . . . . 336
11.6 Implantacin deun Sistema Distribuido deArchivos . . . . . . . . . . . . . 338
11.7 Uso deArchivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
11.8 Estructura del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
11.9 Ocultamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
11.9.1 Consistencia del Cach. . . . . . . . . . . . . . . . . . . . . . . . . . 343
11.10Rplica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
11.10.1Protocolos deActualizacin . . . . . . . . . . . . . . . . . . . . . . . 345
11.11Conclusiones Importantes Respecto dela Implantacin deun Sistema Dis-
tribuido deArchivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
11.12Tendencias en los Sistemas Distribuidos deArchivos . . . . . . . . . . . . . 347
11.13Consideraciones Respecto del Hardware . . . . . . . . . . . . . . . . . . . . 347
11.14Escalabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
11.15Redes en un Area Amplia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
11.16Usuarios Mviles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
11.17Tolerancia deFallos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
12 Rendimiento 351
12.1 Introduccin a la Medicin, Control y Evaluacin del Rendimiento . . . . . 351
12.2 Tendencias Importantes queAfectan a los Aspectos del Rendimiento . . . . 352
12.3 Necesidad del Control y dela Evaluacin del Rendimiento . . . . . . . . . . 352
12.4 Mediciones del Rendimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
12.5 Tcnicas deEvaluacin del Rendimiento . . . . . . . . . . . . . . . . . . . . 355
12.6 Embotellamientos y Saturacin . . . . . . . . . . . . . . . . . . . . . . . . . 357
12.7 Ciclos deRetroalimentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
13 Modelado Analtico en Relacin al Rendimiento 359
13.1 Introduccin al Modelado Analtico y Teora deColas . . . . . . . . . . . . 359
13.2 Fuente, Llegadas y Llegadas dePoisson . . . . . . . . . . . . . . . . . . . . 360
13.3 Servicio, Cola y Servidores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
13.4 Disciplinas deColas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
13.5 Intensidad deTrco y Utilizacin del Servidor . . . . . . . . . . . . . . . . 363
13.6 Estado Estableen Funcin deSoluciones Transitorias . . . . . . . . . . . . 364
13.7 Resultado deLittle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
13.8 Resumen del Proceso dePoisson . . . . . . . . . . . . . . . . . . . . . . . . 365
13.9 Anlisis deun Sistema deColas M/ M/ 1 . . . . . . . . . . . . . . . . . . . . 367
13.10Anlisis deun Sistema deColas M/ M/ c . . . . . . . . . . . . . . . . . . . . 369
13.11Procesos deMarkov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
13.12Procesos deNacimiento y Muerte . . . . . . . . . . . . . . . . . . . . . . . . 371
13.13Anlisis del Rendimiento deun Subsistema deDisco . . . . . . . . . . . . . 372
14 Seguridad de los Sistemas Operativos 377
14.1 Introduccin a la Seguridad delos Sistemas Operativos. . . . . . . . . . . . 377
14.2 Requisitos deSeguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
14.3 Un Tratamiento Total dela Seguridad . . . . . . . . . . . . . . . . . . . . . 378
14.4 Seguridad Externa y Seguridad Operacional . . . . . . . . . . . . . . . . . . 379
xx NDICE GENERAL
14.4.1 Seguridad Externa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
14.4.2 Seguridad Operacional . . . . . . . . . . . . . . . . . . . . . . . . . . 379
14.5 Vigilancia, Vericacin deAmenazas y Amplicacin . . . . . . . . . . . . . 380
14.5.1 Vigilancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
14.5.2 Vericacin deAmenazas . . . . . . . . . . . . . . . . . . . . . . . . 381
14.5.3 Amplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
14.6 Proteccin por Contrasea . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
14.7 Auditora y Controles deAcceso . . . . . . . . . . . . . . . . . . . . . . . . 382
14.7.1 Auditora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
14.7.2 Controles deAcceso . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
14.8 Ncleos deSeguridad y Seguridad por Hardware . . . . . . . . . . . . . . . 383
14.8.1 Ncleos deSeguridad . . . . . . . . . . . . . . . . . . . . . . . . . . 383
14.8.2 Seguridad por Hardware . . . . . . . . . . . . . . . . . . . . . . . . . 384
14.9 Sistemas Supervivientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
14.10Capacidades y Sistemas Orientados Hacia el Objeto . . . . . . . . . . . . . 385
14.11Criptografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
14.12Penetracin al Sistema Operativo . . . . . . . . . . . . . . . . . . . . . . . . 389
14.12.1Principales Fallos Genricos Funcionales delos Sistemas . . . . . . . 389
14.12.2Ataques Genricos a Sistemas Operativos . . . . . . . . . . . . . . . 392
I I I Casos de Estudio 395
15 Planicacin del Procesador con P.O.O. 397
15.1 Introduccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
15.2 Objetivo del Caso deEstudio . . . . . . . . . . . . . . . . . . . . . . . . . . 397
15.3 Descripcin del Problema Planteado . . . . . . . . . . . . . . . . . . . . . . 397
15.4 Descripcin delos Algoritmos Utilizados . . . . . . . . . . . . . . . . . . . . 398
15.5 Programa Desarrollado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
15.6 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
15.7 Resultados y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
16 Paginacin de Memoria Virtual con S. E. 425
16.1 Introduccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
16.2 Objetivo del Caso deEstudio . . . . . . . . . . . . . . . . . . . . . . . . . . 427
16.3 Descripcin del Problema Planteado . . . . . . . . . . . . . . . . . . . . . . 427
16.4 Descripcin del SoftwareUtilizado . . . . . . . . . . . . . . . . . . . . . . . 433
16.5 Descripcin del Ejercicio Efectuado . . . . . . . . . . . . . . . . . . . . . . . 433
16.6 Programas Desarrollados y Datos y Ejecuciones . . . . . . . . . . . . . . . . 446
16.7 Resultados y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
17 Subsistema de Disco de Una Peticin 467
17.1 Introduccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
17.2 Objetivo del Caso deEstudio . . . . . . . . . . . . . . . . . . . . . . . . . . 467
17.3 Descripcin del Problema Planteado . . . . . . . . . . . . . . . . . . . . . . 468
17.4 Descripcin del Algoritmo Utilizado . . . . . . . . . . . . . . . . . . . . . . 468
NDICE GENERAL xxi
17.5 Programa Desarrollado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
17.6 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
17.7 Resultados y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
18 Subsistema de Disco de Varias Peticiones 481
18.1 Introduccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
18.2 Objetivo del Caso deEstudio . . . . . . . . . . . . . . . . . . . . . . . . . . 481
18.3 Descripcin del Problema Planteado . . . . . . . . . . . . . . . . . . . . . . 482
18.4 Descripcin del Algoritmo Utilizado . . . . . . . . . . . . . . . . . . . . . . 482
18.5 Programa Desarrollado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
18.6 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
18.7 Resultados y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
19 Bsqueda en Disco con Redes Neuronales 495
19.1 Introduccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
19.2 Objetivo del Caso deEstudio . . . . . . . . . . . . . . . . . . . . . . . . . . 496
19.3 Descripcin del Problema Planteado . . . . . . . . . . . . . . . . . . . . . . 496
19.4 Descripcin delos Algoritmos Utilizados . . . . . . . . . . . . . . . . . . . . 497
19.5 Programa Desarrollado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
19.6 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
19.7 Descripcin del SoftwaredeRNA Utilizado . . . . . . . . . . . . . . . . . . 509
19.7.1 BreveIntroduccin a las RNA . . . . . . . . . . . . . . . . . . . . . 509
19.7.2 Herramienta Nndt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
19.7.3 Herramienta Nnmodel . . . . . . . . . . . . . . . . . . . . . . . . . . 514
19.7.4 Herramienta Qnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
19.8 Resultados y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
20 Concurrencia e Hilos con J ava 529
20.1 Introduccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
20.2 Objetivo del Caso deEstudio . . . . . . . . . . . . . . . . . . . . . . . . . . 529
20.3 Descripcin del Problema Planteado . . . . . . . . . . . . . . . . . . . . . . 530
20.4 Descripcin delos Algoritmos Utilizados . . . . . . . . . . . . . . . . . . . . 530
20.5 Programa Desarrollado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
20.6 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
20.7 Resultados y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
21 Anomala de Belady con Matlab 559
21.1 Introduccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
21.2 Objetivo del Caso deEstudio . . . . . . . . . . . . . . . . . . . . . . . . . . 559
21.3 Descripcin del Problema Planteado . . . . . . . . . . . . . . . . . . . . . . 559
21.4 Descripcin del Algoritmo Utilizado . . . . . . . . . . . . . . . . . . . . . . 560
21.5 Programa Desarrollado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
21.6 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
21.7 Resultados y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
xxii NDICE GENERAL
I V Anexos 571
22 Planicacin del Procesador con P.O.O. 573
22.1 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
23 Paginacin de Memoria Virtual con S. E. 585
23.1 Programas Desarrollados y Datos y Ejecuciones . . . . . . . . . . . . . . . . 585
24 Subsistema de Disco de Una Peticin 663
24.1 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
25 Subsistema de Disco de Varias Peticiones 721
25.1 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
26 Bsqueda en Disco con Redes Neuronales 779
26.1 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
27 Concurrencia e Hilos con J ava 847
27.1 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847
28 Anomala de Belady con Matlab 859
28.1 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
Bibliografa 875
ndice de Materias 877
ndice de Figuras
1.1 Recursos administrados por el S. O. . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Modelo deestructura simplepara un sistema monoltico. . . . . . . . . . . . 11
1.3 Forma dellamada al sistema en un sistema monoltico. . . . . . . . . . . . . 11
1.4 La estructura deVM/ 370con CMS. . . . . . . . . . . . . . . . . . . . . . . 14
1.5 El modelo cliente- servidor. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.6 El modelo cliente- servidor en un sistema distribuido. . . . . . . . . . . . . 15
2.1 Multiprogramacin decuatro programas. . . . . . . . . . . . . . . . . . . . 29
2.2 Solo un programa est activo en un momento dado. . . . . . . . . . . . . . 29
2.3 Un proceso puedeestar en ejecucin, bloqueado o listo. . . . . . . . . . . . 29
2.4 Niveles deplanicacin del procesador. . . . . . . . . . . . . . . . . . . . . . 36
2.5 Tipos deplanicacin del procesador. . . . . . . . . . . . . . . . . . . . . . 47
2.6 Idea simplicada dela organizacin deun multiprocesador. . . . . . . . . . 52
2.7 Reduccin dela altura del rbol por asociatividad. . . . . . . . . . . . . . . 52
2.8 Reduccin dela altura del rbol por conmutatividad. . . . . . . . . . . . . . 53
2.9 Reduccin dela altura del rbol por distributividad. . . . . . . . . . . . . . 53
2.10 Organizacin demultiprocesador detiempo compartido debus comn. . . . 55
2.11 Organizacin del multiprocesador por matriz debarrascruzadaseinterrup-
tores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.12 Organizacin demultiprocesador por sistema dememoria deinterconexin
mltiple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.13 Organizacin demultiprocesador por sistema dememoria deinterconexin
mltiplecon memorias privadas. . . . . . . . . . . . . . . . . . . . . . . . . 57
2.14 Multiprocesamiento ligeramenteacoplado. . . . . . . . . . . . . . . . . . . . 58
2.15 Multiprocesamiento rgidamenteacoplado. . . . . . . . . . . . . . . . . . . . 59
2.16 Ejemplo deimplementacin demultiprocesamiento simtrico. . . . . . . . . 62
3.1 Organizacin jerrquica del almacenamiento. . . . . . . . . . . . . . . . . . 67
3.2 Asignacin contigua dealmacenamiento deun solo usuario. . . . . . . . . . 69
3.3 Estructura derecubrimiento tpica. . . . . . . . . . . . . . . . . . . . . . . . 70
3.4 Utilizacin dela cpu en un sistema deun solo usuario. . . . . . . . . . . . . 71
3.5 Multiprogramacin departicin ja con traduccin y carga absolutas. . . . 72
3.6 Multiprogramacin departicin ja con traduccin y carga relocalizables. . 72
3.7 Proteccin del almacenamiento con asignacin contigua deun solo proceso
deusuario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
xxiii
xxiv NDICE DE FIGURAS
3.8 Proteccindel almacenamientoconasignacincontiguaen sistemasdemul-
tiprogramacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.9 Asignacin de particiones iniciales en la multiprogramacin de particin
variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.10 Agujeros del almacenamiento en la multiprogramacin departicin variable. 75
3.11 Combinacin deagujerosadyacentesdealmacenamientoen lamultiprogra-
macin departicin variable. . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.12 Compresin (compactacin) del almacenamiento en la multiprogramacin
departicin variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.13 Transformacin de tems del espacio de direcciones virtuales al espacio de
direcciones reales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.14 Contigidad articial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.15 Almacenamiento dedos niveles. . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.16 Formato dela direccin virtual dentro deun sistema detransformacin de
bloques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.17 Traduccin dedirecciones virtuales con transformacin debloques. . . . . . 85
3.18 Formato dela direccin virtual en un sistema depaginacin pura. . . . . . 86
3.19 Almacenamiento real dividido en marcos depginas. . . . . . . . . . . . . . 86
3.20 Una entrada en la tabla demapa depginas. . . . . . . . . . . . . . . . . . 87
3.21 Correspondencia entre las direcciones de almacenamiento virtual y las di-
recciones dealmacenamiento real en un sistema depaginacin. . . . . . . . 88
3.22 Traduccin dedirecciones depgina por transformacin directa. . . . . . . 89
3.23 Traduccin dedirecciones depgina por transformacin asociativa pura. . . 90
3.24 Traduccindedireccionesdepaginacinpor combinacindetransformacin
asociativa / directa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
3.25 Compartimiento en un sistema depaginacin pura. . . . . . . . . . . . . . . 93
3.26 Asignacin no contigua dealmacenamiento. . . . . . . . . . . . . . . . . . . 95
3.27 Proteccindel almacenamientoconclavesensistemasdemultiprogramacin
deasignacin no contigua dealmacenamiento. . . . . . . . . . . . . . . . . . 95
3.28 Traduccin dedirecciones virtuales en un sistema desegmentacin pura. . . 96
3.29 Entrada detabla demapa desegmentos. . . . . . . . . . . . . . . . . . . . . 98
3.30 Compartimiento en un sistema desegmentacin pura. . . . . . . . . . . . . 99
3.31 Traduccin dedireccionesvirtualesconcombinacindetransformacinaso-
ciativa / directa dentro deun sistema depaginacin y segmentacin. . . . . 102
3.32 Estructura detablas para un sistema depaginacin y segmentacin. . . . . 103
3.33 Dos procesos compartiendo un sistema depaginacin y segmentacin. . . . 104
3.34 Ejemplo deanomala FIFO. . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
3.35 Fenmeno delocalidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.36 Una denicin del conjunto detrabajo depginas deun proceso. . . . . . . 110
3.37 Tamao del conjunto detrabajo como unafuncin del tamao dela ventana.111
3.38 Producto espacio - tiempo con paginacin por demanda. . . . . . . . . . . . 112
3.39 Comportamiento deun programa en la paginacin. . . . . . . . . . . . . . . 115
4.1 Un solo directorio compartido por todos los usuarios. . . . . . . . . . . . . . 124
4.2 Un directorio por usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
4.3 Un rbol arbitrario por usuario. . . . . . . . . . . . . . . . . . . . . . . . . . 125
NDICE DE FIGURAS xxv
4.4 Encadenamiento debloques o lista ligada debloques. . . . . . . . . . . . . . 129
4.5 Encadenamiento debloques dendices. . . . . . . . . . . . . . . . . . . . . . 131
4.6 Transformacin dearchivos orientada hacia bloques. . . . . . . . . . . . . . 132
4.7 Esquema deun nodo-i. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
4.8 Representacin dela velocidad delectura y del uso del espacio en disco en
funcin del tamao debloque. . . . . . . . . . . . . . . . . . . . . . . . . . . 137
5.1 Un controlador realiza completamenteuna transferencia DMA. . . . . . . . 159
5.2 Factores deseparacin: sin separacin, separacin simpley separacin doble.160
5.3 Capas del sistema de entrada / salida y las principales funciones de cada
capa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
5.4 Esquema deun disco decabeza mvil. . . . . . . . . . . . . . . . . . . . . . 166
5.5 Componentes del acceso a un disco. . . . . . . . . . . . . . . . . . . . . . . . 167
6.1 Un interbloqueo simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
6.2 Grcas deasignacin derecursos. . . . . . . . . . . . . . . . . . . . . . . . 186
6.3 Ejemplo deocurrencia deun bloqueo y la forma deevitarlo. . . . . . . . . . 186
6.4 Ejemplo deocurrencia deun bloqueo y la forma deevitarlo (continuacin). 187
6.5 Grca deasignacin y peticin derecursos. . . . . . . . . . . . . . . . . . . 191
6.6 Reducciones degrcas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
6.7 Grca derecursos y procesos. . . . . . . . . . . . . . . . . . . . . . . . . . 192
6.8 Un ejemplo del algoritmo dedeteccin debloqueos. . . . . . . . . . . . . . . 196
6.9 Trayectorias derecursos dedos procesos. . . . . . . . . . . . . . . . . . . . . 200
7.1 Multiprocesadores con baseen un bus. . . . . . . . . . . . . . . . . . . . . . 218
7.2 Conmutador decruceta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
7.3 Red omega deconmutacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
7.4 Conmutador decruceta versus red omega. . . . . . . . . . . . . . . . . . . . 222
7.5 Multicomputadora queconsta deestaciones detrabajo en una LAN. . . . . 223
7.6 Retcula. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
7.7 Hipercubo dedimensin 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
7.8 Estructura decapas deNFS. . . . . . . . . . . . . . . . . . . . . . . . . . . 233
7.9 Un multiprocesador con una sola cola deejecucin. . . . . . . . . . . . . . . 235
7.10 Esquema dencleo monoltico y demicroncleo. . . . . . . . . . . . . . . . 239
8.1 Capas, interfaces y protocolos en el modelo OSI. . . . . . . . . . . . . . . . 246
8.2 Un mensajetpico tal como apareceen la red. . . . . . . . . . . . . . . . . . 246
8.3 Modelo cliente- servidor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
8.4 Esquema demensajes reconocidos en forma individual y esquema dondela
respuesta seutiliza como reconocimiento dela solicitud. . . . . . . . . . . . 255
8.5 Intercambio depaquetes en la comunicacin cliente- servidor. . . . . . . . . 258
8.6 Llamada a un procedimiento local. . . . . . . . . . . . . . . . . . . . . . . . 260
8.7 Llamadas y mensajes en una RPC, donde cada elipse representa un solo
proceso queincluyeel resguardo. . . . . . . . . . . . . . . . . . . . . . . . . 263
8.8 Ejemplo declculo remoto. . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
8.9 Situaciones posibles defallos en el servidor. . . . . . . . . . . . . . . . . . . 268
8.10 Ruta crtica del clienteal servidor. . . . . . . . . . . . . . . . . . . . . . . . 275
xxvi NDICE DE FIGURAS
8.11 Comunicacin punto a punto y comunicacin uno a muchos. . . . . . . . . . 281
9.1 Ejemplo detres procesos cuyos relojes corren a diferentes velocidades - El
algoritmo deLamport corrigelos relojes. . . . . . . . . . . . . . . . . . . . . 293
10.1 Una forma deasignar 9procesos a 3procesadores. . . . . . . . . . . . . . . 328
10.2 Otra forma deasignar 9procesos a 3procesadores. . . . . . . . . . . . . . . 328
11.1 Arbol dedirectorios contenido en una mquina. . . . . . . . . . . . . . . . . 335
11.2 Grca dedirectorios dedos mquinas. . . . . . . . . . . . . . . . . . . . . 336
16.1 Ejemplo deanomala FIFO. . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
16.2 ESB Question Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
16.3 ESB KnowledgeAcquisition. . . . . . . . . . . . . . . . . . . . . . . . . . . 434
16.4 ESB User Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
16.5 Nmero deocurrencias segn las estrategias depaginacin. . . . . . . . . . 464
17.1 Promedio depeticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 478
18.1 Promedio depeticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 493
19.1 Ejemplo depantalla Nndt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
19.2 Ejemplo depantalla Nndt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
19.3 Ejemplo depantalla Nnmodel. . . . . . . . . . . . . . . . . . . . . . . . . . 516
19.4 Ejemplo depantalla Nnmodel. . . . . . . . . . . . . . . . . . . . . . . . . . 517
19.5 Ejemplo depantalla Nnmodel. . . . . . . . . . . . . . . . . . . . . . . . . . 518
19.6 Ejemplo depantalla Nnmodel. . . . . . . . . . . . . . . . . . . . . . . . . . 519
19.7 Ejemplo depantalla Nnmodel. . . . . . . . . . . . . . . . . . . . . . . . . . 520
19.8 Ejemplo depantalla Qnet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
19.9 Ejemplo depantalla Qnet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
19.10Ejemplo depantalla Qnet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
21.1 Bsqueda deAnomala deBelady en paginacin FIFO. . . . . . . . . . . . . 568
24.1 Promedio depeticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 668
24.2 Promedio depeticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 684
24.3 Promedio depeticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 720
25.1 Promedio depeticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 726
25.2 Promedio depeticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 742
25.3 Promedio depeticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 778
ndice de Tablas
1.1 Estructura del S.O. en capas THE. . . . . . . . . . . . . . . . . . . . . . . 12
2.1 Tipos deinterrupciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2 Criterios deun buen algoritmo deplanicacin. . . . . . . . . . . . . . . . . 34
2.3 Disciplinas deplanicacin del procesador. . . . . . . . . . . . . . . . . . . . 39
2.4 Tipos deprioridades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.5 Grados deacoplamiento en multiprocesamiento. . . . . . . . . . . . . . . . . 58
3.1 Ejemplo decombinacin deaccesos. . . . . . . . . . . . . . . . . . . . . . . 97
3.2 Ejemplo deaplicaciones dela combinacin deaccesos. . . . . . . . . . . . . 97
5.1 Controladores dee/ s, direcciones dee/ s y vector deinterrupciones. . . . 158
6.1 Ejemplo deestado seguro en (a). . . . . . . . . . . . . . . . . . . . . . . . . 202
6.2 Ejemplo deestado inseguro. . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
6.3 Ejemplo deuna transicin deestado seguro a estado inseguro. . . . . . . . . 203
6.4 El algoritmo del banquero con varios recursos. . . . . . . . . . . . . . . . . . 204
6.5 Resumen delos mtodos para prevenir el bloqueo. . . . . . . . . . . . . . . 207
7.1 Conmutador decruceta versus red omega. . . . . . . . . . . . . . . . . . . . 221
7.2 Comparacin detres formas distintas deorganizar n cpu. . . . . . . . . . 236
15.1 Estrategias deasignacin del procesador en ejecucin concurrente. . . . . . 423
15.2 Estrategias de asignacin del procesador en ejecucin concurrente (conti-
nuacin). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
16.1 Evolucin en las organizaciones del almacenamiento. . . . . . . . . . . . . . 428
16.2 Estrategias deadministracin del almacenamiento virtual. . . . . . . . . . . 429
19.1 Formas bsicas decomputacin. . . . . . . . . . . . . . . . . . . . . . . . . . 511
19.2 Utilizacin dela herramienta Nndt. . . . . . . . . . . . . . . . . . . . . . . . 523
19.3 Utilizacin dela herramienta Nndt (continuacin). . . . . . . . . . . . . . . 523
19.4 Utilizacin dela herramienta Nndt (continuacin). . . . . . . . . . . . . . . 524
19.5 Utilizacin dela herramienta Nnmodel. . . . . . . . . . . . . . . . . . . . . 524
19.6 Utilizacin dela herramienta Nnmodel (continuacin). . . . . . . . . . . . . 525
19.7 Utilizacin dela herramienta Nnmodel (continuacin). . . . . . . . . . . . . 525
19.8 Utilizacin dela herramienta Qnet. . . . . . . . . . . . . . . . . . . . . . . . 526
19.9 Utilizacin dela herramienta Qnet (continuacin). . . . . . . . . . . . . . . 526
xxvii
xxviii NDICE DE TABLAS
19.10Utilizacin dela herramienta Qnet (continuacin). . . . . . . . . . . . . . . 527
19.11Resumen comparativo dela utilizacin deRNA. . . . . . . . . . . . . . . . 527
Parte I
Sistemas Operativos
Convencionales
1
Captulo 1
I ntroduccin
1.1 Qu es un Sistema Operativo
Una delas deniciones ms comnmenteaceptadas expresa:
Un S. O. es un grupo de programas de proceso con las rutinas de control
necesarias para mantener continuamente operativos dichos programas.
El objetivo primario deun Sistema Operativo es:
Optimizar todos los recursos del sistema para soportar los requerimientos.
A los efectos de situar a los S. O. en el conjunto del software para computadoras,
podemos clasicar a estedela siguientemanera:
Programas de sistema:
Controlan la operacin dela computadora en s.
Programas de aplicacin:
Resuelven problemas para los usuarios.
En estecontexto, el Sistema Operativo es el programa fundamental de todos los pro-
gramas desistema.
El S. O. protege y libera a los programadores de la complejidad del hardware, colo-
cndoseun nivel desoftwarepor sobreel hardwarepara:
Controlar todas las partes del sistema.
Presentar al usuario una interfaz o mquina virtual.
El esquema tpico de un sistema de cmputos incluye:
Programas deaplicacin:
3
4 CAPTULO 1. INTRODUCCIN
Sistema bancario, reservaciones en una lnea area, juegos, etc.
Programas desistema:
Compiladores, editores, intrpretes decomandos.
Sistema Operativo.
Hardware:
Lenguajedemquina.
Microprogramacin.
Dispositivos fsicos
Las principales caractersticas del microprograma son:
Setrata desoftwarequegeneralmenteselocaliza en la memoria desolo lectura.
Busca las instrucciones de lenguajedemquina para ejecutarlas como una seriede
pequeos pasos.
El conjunto deinstrucciones queinterpreta deneal lenguaje de mquina.
Enciertasmquinasseimplantaenel hardwareynoesenrealidadunacapadistinta.
Respecto del lenguaje de mquina es preciso sealar que:
Generalmenteposeeentre50y 300instrucciones, sirviendolamayoraparadesplazar
datos, hacer operaciones aritmticas y comparar valores.
Losdispositivos dee/ s(entrada/ salida) secontrolan al cargar valores en registros
del dispositivo especiales.
Una de las principales funciones del S. O. es ocultar toda esta complejidad y
brindar al programador un conjunto mas convenientedeinstrucciones para trabajar.
El S. O. se ejecuta en modo central o modo desupervisin, con mxima prioridad y
generalmentecon proteccin por hardware.
Los compiladores, editores y dems programas seejecutan en modo usuario.
El S. O. es la seriedeprogramas, dispuestos ya sea en el softwareo en la memoria ja
(microcdigo), quehacen al hardwareutilizable.
Los S. O. ponen el poder computacional bsico del hardware convenientemente a
disposicin del usuario, pero consumen parte de ese poder computacional para funcionar
[7, Deitel].
Los S. O. son, en primer lugar, administradores de recursos, siendo el recurso
primario el hardwaredel sistema.
1
Las principales caractersticas delos S. O. son:
Denir la Interfaz del Usuario.
1
Ver Figura 1.1 dela pgina 6.
1.2. HISTORIA DE LOS SISTEMAS OPERATIVOS - GENERACIONES 5
Compartir el hardwareentreusuarios.
Permitir a los usuarios compartir los datos entreellos.
Planicar recursos entreusuarios.
Facilitar la entrada / salida.
Recuperarsedelos errores.
Los principales recursos administrados por los S. O. son:
Procesadores.
Almacenamiento.
Dispositivos dee/ s.
Datos.
Los S. O. son una interfaz con:
Operadores.
Programadores deaplicaciones.
Programadores desistemas (administradores del S. O.).
Programas.
Hardware.
Usuarios.
El S. O. debepresentar al usuarioel equivalentedeunamquina extendida omqui-
na virtual quesea mas fcil deprogramar queel hardwaresubyacente.
1.2 Historia de los Sistemas Operativos - Generaciones
LosS. O. han estadorelacionadoshistricamentecon laarquitecturadelascomputadoras
enlascualesseejecutan, razn por lacual su historiapuedeanalizarsesegnlassiguientes
generaciones y sus principales caractersticas [7, Deitel]:
Generacin Cero (dcada de1940):
Carencia total deS. O.
Completo acceso al lenguajedemquina.
Primera generacin (1945-1955): bulbos y conexiones:
Carencia deS. O.
6 CAPTULO 1. INTRODUCCIN
Figura~1.1: Recursos administrados por el S. O.
1.2. HISTORIA DE LOS SISTEMAS OPERATIVOS - GENERACIONES 7
En los aos cincuenta comienzan como transicin entre trabajos, haciendo la
misma ms simple.
Segunda generacin (1955-1965): transistores y sistemas deprocesamiento por lotes
(batch):
En los aos sesenta aparecen los S. O. para sistemas compartidos con:
Multiprogramacin: variosprogramasdeusuarios seencuentran al mis-
mo tiempo en el almacenamiento principal, cambiando el procesador rpi-
damentedeun trabajo a otro.
Multiprocesamiento: varios procesadores seutilizan en un mismo siste-
ma para incrementar el poder deprocesamiento.
Posteriormenteaparecela independencia de dispositivo:
El programadel usuarioespecicalascaractersticasdelosdispositivosque
requieren los archivos.
El S. O. asigna los dispositivos correspondientes segn los requerimientos
y las disponibilidades.
Tercera generacin (1965-1980): circuitos integrados y multiprogramacin:
Difusin dela multiprogramacin:
Particin de la memoria en porciones, con trabajos distintos en cada una
deellas.
Aprovechamiento del tiempo deespera consecuencia deoperaciones dee/
s, para utilizar la CPU para otros procesos.
Proteccin por hardwaredel contenido decada particin dememoria.
Aparicin detcnicas despooling:
Simultaneous Peripheral Operation On Line: operacin simultnea y en
lnea deperifricos.
Almacenamiento de trabajos de entrada y de salida en dispositivos tran-
sitorios rpidos (discos), para disminuir el impacto de los perifricos mas
lentos.
Son sistemas de modos mltiples, es decir que deben soportar sistemas
de propsitos generales; son grandes y complejos pero muy poderosos.
Interponen una capa de software entreel usuario y el hardware.
Aparecen los lenguajes de control de trabajos, necesarios para especicar
el trabajo y los recursos requeridos.
Soportan timesharing (tiempo compartido), variante de la multiprogra-
macin con usuarios conectados mediante terminales en lnea, permitiendo la
operacin en modo interactivo o conversacional.
Aparecen los sistemas de tiempo real, que requieren tiempos de respuesta
muy exigentes, especialmentepara usos industriales o militares.
8 CAPTULO 1. INTRODUCCIN
Sedifunden las computadoras derango medio.
Cuarta generacin (1980-1990): computadoras personales:
Aparicin de software amigable con el usuario, destinado a usuarios no
profesionales y con una interfasegrca muy desarrollada.
Desarrollo de sistemas operativos de red y sistemas operativos distri-
buidos.
Sistemas operativos de red:
Los usuarios estn conscientes dela existencia devarias computadoras co-
nectadas.
Cada mquina ejecuta su propio S. O. local.
Son similares a los S. O. deun solo procesador pero con el agregado de:
Controlador deinterfaz dela red y su softwaredebajo nivel.
Softwarepara conexin y acceso a archivos remotos, etc.
Sistemas operativos distribuidos:
Apareceantelosusuarioscomoun S. O. deunsoloprocesador, ancuando
desoportea varios procesadores.
Los usuarios no son conscientes del lugar dondeseejecutan sus programas
o donde se encuentran sus archivos, ya que lo debe administrar el S. O.
automticamente.
Deben permitir que un programa se ejecute mediante varios procesadores
a la vez, maximizando el paralelismo.
Aparicin de emuladores de terminal para el acceso a equipos remotos desde
computadoras personales (PC).
Gran nfasis en la seguridad, en especial por el desarrollo delos sistemas de
comunicaciones dedatos.
El S. O. crea un ambientedetrabajo segn el concepto demquina virtual,
quelo asla del funcionamiento interno dela mquina.
Proliferacin de sistemas de bases de datos, accesibles mediante redes de
comunicacin.
1.3 Conceptos de los Sistemas Operativos
La interfaz entreel S. O. y los programas del usuario sedenecomo el conjunto deins-
trucciones ampliadas [23, Tanenbaum] queproporciona el S. O. y son las llamadas
al sistema:
Crean, eliminan y utilizan objetos del software controlados por el S. O.:
Los mas importantes son procesos y archivos.
Procesos:
1.3. CONCEPTOS DE LOS SISTEMAS OPERATIVOS 9
Es el concepto central detodos los S. O.
Es bsicamenteun programa en ejecucin.
Consta del programa ejecutable, sus datos y pila, contador y otros registros,
adems dela informacin necesaria para ejecutar el programa.
Lainformacin decontrol relacionadacon los procesossealmacenaen la tabla
de procesos:
Es administrada por el S. O.
Posee un arreglo de estructuras, una por cada proceso existente en ese
momento.
Un proceso (suspendido) consta de:
Un espacio dedireccin.
Los datos pertinentes dela tabla deprocesos.
Un proceso puede crear procesos hijo y estos nuevos procesos hijo, confor-
mando un rbol de procesos.
Archivos:
Una delas funciones principales del S. O. es brindar independencia de dis-
positivo.
Muchos S. O. soportan el concepto dedirectorio como una forma deagrupar
archivos.
Los directorios se estructuran jerrquicamente, por lo que a cada archivo le
correspondeuna ruta de acceso.
Existen distintos esquemas deseguridad dearchivos en los distintos S. O.
Llamadas al sistema:
Permiten a los programas comunicarsecon el S. O. y solicitarleservicios.
A cada llamada lecorrespondeun procedimiento:
Ponelosparmetrosdelallamadaenunlugar especcoparaluegoejecutar
una instruccin tipo trap de llamada a procedimiento protegido para
iniciar el S. O.
Luego detrap el S. O. recupera el control , examina los parmetros y si
son vlidos ejecuta el trabajo solicitado.
Luego de terminar, el S. O. coloca un cdigo de estado en un registro
indicando si tuvoxitoo fracasoy ejecutaunainstruccin del tipo return
fromtrap para regresar el control al procedimiento.
El procedimiento regresa al programa llamador con un cdigo de estado
comoun valor defuncin; dentrodelosparmetrospuedenregresar valores
adicionales.
10 CAPTULO 1. INTRODUCCIN
1.4 Estructura de los Sistemas Operativos
Seconsidera la organizacin interna delos S. O. y conformea ella selos clasica dela
siguientemanera, destacndosesus principales caractersticas:
Sistemas monolticos:
Es muy comn: no existeestructura propiamentedicha o es mnima.
El S. O. es una coleccin deprocedimientos quesepueden llamar entres.
2
Cadaprocedimientotieneunainterfaz bien denidaen trminosdeparmetros
y resultados.
Para ejecutar los servicios del S. O. (llamadas al sistema):
3
Sesolicitan colocando los parmetros en lugares bien denidos (registros o
pilas).
Seejecuta una instruccin especial detrampa: llamada al ncleo o lla-
mada al supervisor.
Lainstruccin cambialamquina del modo usuario al modo ncleo (o
modo supervisor). [23, Tanenbaum]
Setransereel control al S. O.
El S. O. examina los parmetros de la llamada para determinar cul de
ellas sedesea realizar.
El S. O. analiza una tabla quecontieneen la entrada k un apuntador al
procedimiento querealiza la k-sima llamada al sistema:
Identica al procedimiento deservicio llamado.
Lallamadaal sistematerminay el control regresaal programadel usuario.
Sistemas con capas:
Es una generalizacin del modelo deestructura simplepara un sistema mono-
ltico.
Consisteenorganizar el s. o. comounajerarquadecapas, cadaunaconstruida
sobrela inmediata inferior.
El primer sistema con esteesquema fueel THE (Holanda - Dijkstra -1968):
4
THE: Technische Hogeschool Eindhoven.
Capa 0:
Trabaja con la asignacin del procesador.
Alterna entrelos procesos cuando ocurren las interrupciones o expiran
los cronmetros.
2
Ver Figura 1.2 dela pgina 11 [23, Tanenbaum].
3
Ver Figura 1.3 dela pgina 11 [23, Tanenbaum].
4
Ver Tabla 1.1 dela pgina 12 [23, Tanenbaum].
1.4. ESTRUCTURA DE LOS SISTEMAS OPERATIVOS 11
PROGRAMA 2 DEL USUARIO
PROGRAMA 1 DEL USUARIO
LLAMADA AL NUCLEO
PROC. DE SERVICIO
3
4
2
1
MEMORI A
PRINCIPAL
PROG. DEL
USUARIO
EN MODO
USUARIO
SIST. OPER.
EN MODO
NUCLEO
Figura~1.2: Modelo deestructura simplepara un sistema monoltico.
PROCED. PRINCIPAL
PROC. DE
SERVICIO
PROCED.
UTILITARIOS
Figura~1.3: Forma dellamada al sistema en un sistema monoltico.
12 CAPTULO 1. INTRODUCCIN
5- Operador
4- Programas del Usuario
3- Control deEntrada / Salida
2- Comunicaciones Operador - Proceso
1- Administracin dela Memoria y del Disco
0- Asignacin del Procesador y Multiprogramacin
Tabla 1.1: Estructura del S.O. en capas THE.
Proporciona la multiprogramacin bsica.
Capa 1:
Administra la memoria.
Asegura quelas pginas (porciones dememoria) requeridas delos pro-
cesos lleguen a memoria cuando fueran necesarias.
Capa 2:
Administra la comunicacin entrecada proceso y la consola del opera-
dor.
Por sobreesta capa, cada proceso tienesu propia consola deoperador.
Capa 3:
Controla los dispositivos de e / s y almacena en buers los ujos de
informacin entreellos.
Por sobrela capa 3 cada proceso puedetrabajar con dispositivos abs-
tractos dee/ s en vez decon dispositivos reales.
Capa 4:
Aloja los programas del usuario.
Los programas. del usuario no tienen quepreocuparse por el proceso,
memoria, consola o control dee/ s.
Capa 5:
Localiza el proceso operador del sistema.
Una generalizacin mas avanzada del concepto decapas sepresento con Mul-
tics (MIT, Bell Labs y General Electric):
Multics: multiplexed information and computingservice.
Presenta una estructura en anillos concntricos, siendo los interiores los
privilegiados.
Un procedimientodeun anillo exterior, parallamar aun procedimientode
un anillo interior, debehacer el equivalentea una llamada al sistema.
Mquinas virtuales:
Seseparan totalmentelasfuncionesdemultiprogramacin y demquinaexten-
dida.
1.4. ESTRUCTURA DE LOS SISTEMAS OPERATIVOS 13
Existeun elemento central llamado monitor de la mquina virtual que:
Seejecuta en el hardware.
Realiza la multiprogramacin.
Proporciona varias mquinas virtuales a la capa superior.
Lasmquinasvirtualesinstrumentancopiasexactas del hardwaresimple, con
su modo ncleo / usuario, e/ s, interrupciones y todo lo dems queposeeuna
mquina real.
Pueden ejecutar cualquier S. O. queseejecuteen forma directa sobreel hard-
ware.
Las distintas mquinas virtuales pueden ejecutar distintos S. O. y en general
as lo hacen.
Soportan perifricos virtuales.
Ejemplo deS. O. representativo deesta estructura: VM/ 370 deIBM:
5
Las m. v. generalmenteutilizaran, entreotros, el S. O. CMS: Conversa-
tional Monitor System.
Cuando un programa CMS ejecuta una llamada al sistema:
La llamada es atrapada por el S. O. en su propia m. v.; no pasa
directamenteal VM/ 370.
CMS proporciona las instrucciones de e / s en hardware para la
lectura del disco virtual o lo necesario para efectuar la llamada.
VM/ 370 atrapa estas instrucciones de e / s y las ejecuta sobre el
hardwareverdadero.
Modelo cliente - servidor:
Una tendencia en los S. O. modernos es la de explotar la idea de mover el
cdigo a capas superiores y mantener un ncleo mnimo, de manera similar
al VM/ 370.
Implantar la mayora delas funciones del S. O. en los procesos del usuario.
Parasolicitar un servicio(por ej.: lecturadeun bloquedeciertoarchivo) segn
el modelo cliente- servidor:
6
El proceso del usuario (proceso cliente) enva la solicitud a un proceso
servidor:
Realiza el trabajo y regresa la respuesta.
El ncleo controla la comunicacin entrelos clientes y los servidores.
Sefracciona el S. O. en partes, cada una controlando una faceta:
Servicio a archivos, a procesos, a terminales, a memoria, etc., cada parte
pequea y ms fcilmentecontrolable.
5
Ver Figura 1.4 dela pgina 14 [23, Tanenbaum].
6
Ver Figura 1.5 dela pgina 15 [23, Tanenbaum].
14 CAPTULO 1. INTRODUCCIN
CMS CMS CMS
VM / 370
370 HARDWARE SIMPLE
MAQUINAS 370 VIRTUALES
LLAMADA AL
SISTEMA AQUI
TRAMPA AQUI
INSTRUC.
DE E / S
AQUI
TRAMPAS
AQUI
Figura~1.4: La estructura deVM/ 370con CMS.
Los servidores seejecutan como procesos en modo usuario:
No tienen acceso directo al hardware.
Seaslan y acotan ms fcilmentelos problemas.
Seadapta para su uso en los sistemas distribuidos:
7
Si un clientesecomunica con un servidor mediantemensajes:
No necesita saber si el mensaje se atiende localmente o mediante un
servidor remoto, situado en otra mquina conectada.
Enva una solicitud y obtieneuna respuesta.
Algunas funciones del S. O., por ej. el cargado de comandos en los registros
fsicos del dispositivo dee/ s, presentan problemas especiales y distintas solu-
ciones:
Ejecucin en modo ncleo, con acceso total al hardware y comunicacin
con los dems procesos medianteel mecanismo normal demensajes.
Construccin deun mnimodemecanismos dentrodel ncleomantenien-
do las decisiones depoltica relativas a los usuarios dentro del espacio del
usuario.
1.5 Tendencias
Las principales tendencias en S. O. son las siguientes [7, Deitel]:
Soportegeneralizado para multiprocesamiento.
Migracin hacia el microcdigo defunciones delos S. O. realizadas por software.
Distribucin del control entreprocesadores localizados.
Mejora dela eciencia en el soportedela ejecucin concurrentedeprogramas.
7
Ver Figura 1.6 dela pgina 15 [23, Tanenbaum].
1.5. TENDENCIAS 15
PROCESO
CLIENTE
PROCESO
CLIENTE
SERVIDOR
DEL PROC.
SERVIDOR
DE LA TERM
. . .
SERVIDOR
DE ARCHIV.
SERVIDOR
DE MEMOR.
NUCLEO
MODO
USUARIO
MODO
NUCLEO
LOS CLIENTES OBTIENEN EL SERVICIO AL
ENVIAR MENSAJES A LOS PROC. SERVIDORES
Figura~1.5: El modelo cliente- servidor.
CLIENTE
NUCLEO
SERV. DE
ARCHIVOS
NUCLEO
SER. DE
PROCESOS
NUCLEO
SERV. DE
TERMINALES
NUCLEO
... ...
MAQUINA 1 MAQUINA 2 MAQUINA 3 MAQUINA 4
RED
MENSAJE DEL CLIENTE AL SERVIDOR
Figura~1.6: El modelo cliente- servidor en un sistema distribuido.
16 CAPTULO 1. INTRODUCCIN
Soportedel paralelismo masivo con altsimo grado deconcurrencia.
Profundizacin delos esquemas demquinas virtuales.
Continuacindel esquemadefamiliasdeS. O. parafamiliasdecomputadoras, viendo
las aplicaciones mquinas virtuales.
Compatibilidad con nuevas generaciones decomputadoras.
Desarrollos en la ingeniera desoftwarepara brindar S. O. ms preservables, cona-
bles y comprensibles.
Proliferacin deredes desistemas, distribuyendo tareas en equipos sobrelos queel
usuario puede no tener conocimiento ni control con nfasis en la importancia dela
perspectiva delas mquinas virtuales.
Permanencia del concepto dealmacenamiento virtual.
Permanencia de la perspectiva del S. O. como administrador de recursos, teniendo
presente que los datos sern considerados cada vez ms como un recurso para ser
administrado.
Profundizacin del desarrollo deS. O. con funciones distribuidas entrevarios proce-
sadores a travs degrandes redes desistemas [26, Tanenbaum].
1.6 Hardware
Los principales aspectos del hardware, de importancia para los S. O., son los siguientes
[7, Deitel]:
Compaginacin del almacenamiento:
Objetivo: acelerar el acceso al almacenamiento primario (bancos dememoria).
Generalmente, mientras cualquiera de las localidades de un banco de alma-
cenamiento primario, est siendo accedida, ninguna otra referencia puede
estar en curso.
Lacompaginacin del almacenamientocolocalocalidades dememoriaadyacen-
tes en diferentes bancos dealmacenamiento, para permitir varias referencias al
mismo tiempo.
Registro de relocalizacin:
Permiterelocalizar deforma dinmica los programas.
Ladireccin basedeunprogramaenlamemoriaprincipal sesitaenel registro
derelocalizacin.
El contenidodel registroderelocalizacinseaadeacadadireccindesarrollada
por un programa en ejecucin.
1.6. HARDWARE 17
Permiteal programaresidir en localizaciones diferentes aaquellasparalascua-
les fuetraducido.
I nterrupciones y escrutinio:
I nterrupciones: permiten a una unidad obtener la inmediata atencin deotra,
demanera quela primera pueda informar deun cambio deestado:
Permitesalvar el estado dela unidad interrumpida antes deprocesar la
interrupcin.
Escrutinio: tcnica que permite que una unidad verique el estado de otra
unidad defuncionamiento independiente.
Utilizacin del buer:
Un buer esun readealmacenamientoprimariodestinadaacontener datos
durantetransferencias dee/ s.
Cuando concluye la transferencia los datos pueden ser accedidos por el proce-
sador.
Esquema deentradas de buer simple:
El canal deposita datos en el buer.
El procesador procesa estos datos.
El canal deposita nuevos datos, etc.
No puede haber simultaneidad entre operaciones de colocar datos en el
buer y procesarlos:
Afecta la performance.
Esquema deentradas de buer doble:
Permitela sobreposicin deoperaciones dee/ s con el procesamiento:
Mejora la performance.
Mientras el canal deposita datos en un buer el procesador puede estar
procesando los datos del otro buer.
Cuando el procesador concluye el proceso de los datos del primer buer,
puedecontinuar con los datos del segundo, mientrasel canal deposita nue-
vos datos en el primer buer:
Es la tcnica debuer biestable ( o en ip op).
Dispositivos perifricos:
Permiten el almacenamiento de grandes cantidades de informacin fuera del
almacenamiento principal.
Existen dispositivos secuenciales y deacceso directo.
Las caractersticas y prestaciones son muy variadas.
Proteccin del almacenamiento:
18 CAPTULO 1. INTRODUCCIN
Limita el nmero dedirecciones queun programa puedereferenciar.
Es esencial en los sistemas multiusuario.
Se implementa mediante los registros de lmites, que denen las direcciones
superior e inferior del bloque de almacenamiento afectado a un determinado
programa.
Tambin se pueden utilizar claves de proteccin del almacenamiento anexas
a reas dealmacenamiento primario:
Un programa solo puede acceder a localidades de almacenamiento cuyas
claves deproteccin concuerdan con las del programa.
Temporizadores y relojes:
Temporizador deintervalos: previenequeun solousuariomonopoliceel pro-
cesador en sistemas multiusuario.
El temporizador genera una interrupcin al procesador cuando expira el inter-
valo asignado a un usuario.
Reloj horario: permite al computador hacer un seguimiento de la hora del
reloj de pared, con una exactitud demillonsimas desegundo o mayor.
Operaciones en lnea y fuera de lnea; procesadores satlite:
Operacin en lnea: los perifricosutilizadosestn conectadosal procesador.
Operacin fuera delnea: losperifricos utilizados estn conectados aunida-
des decontrol queno estn conectadas al sistema central o principal.
Canales de entrada / salida:
Son sistemas computacionales depropsito especial, dedicados al manejo dela
e/ s con independencia del procesador principal.
Tienen acceso directo al almacenamiento principal para almacenar o recuperar
informacin.
Evitan al procesador la mayor partedela carga demanejar la e/ s, incremen-
tando la concurrencia.
Los principales tipos decanales son los siguientes:
Selectores.
Multiplexores debytes.
Multiplexores debloques.
Robo de ciclo:
Signica que en la competencia entre el procesador y los canales para acceder
a un determinado banco de almacenamiento primario (memoria principal), se
da prioridad a los canales:
1.6. HARDWARE 19
Seoptimiza el uso delos dispositivos dee/ s.
Direccionamiento de base ms desplazamiento:
Todas las direcciones son aadidas al contenido deun registro de base.
Los programas son independientes de la localizacin:
Especialmenteimportanteen ambientes multiusuario.
Estado de problema, estado supervisor, instrucciones privilegiadas:
Correspondea distintos estados de ejecucin.
Estado de problema o de usuario: estado en que corren los programas de
usuario:
Tieneacceso a un subconjunto deinstrucciones del conjuntodeinstruccio-
nes dela mquina.
Estadosupervisor odencleo: generalmenteel S. O. correas conlacategora
deusuario de mayor conanza o nivel:
Tiene acceso a todas las instrucciones del conjunto de instrucciones de la
mquina.
Si el sistema soporta ms dedos estados:
Sepuedeinstrumentar una granulacin de proteccin ms na.
Permiteconceder accesos por medio del principio de menos privilegio:
Se debe garantizar a cada usuario en particular la menor cantidad de
privilegio y acceso quenecesitepara cumplir sus tareas.
Instruccionesprivilegiadas: sonaquellasalasquenosetieneaccesoenestado
deproblema.
Almacenamiento virtual:
Los sistemas de almacenamiento virtual permiten a los programas referenciar
direcciones quenonecesitan corresponder con las direccionesrealesdisponibles
en el almacenamiento primario.
Las direcciones virtuales desarrolladas por los programas en ejecucin son
traducidas dinmicamente por el hardware a las direcciones reales de ins-
trucciones y datos del almacenamiento principal.
Los programas pueden referenciar espacios de direcciones mucho mayores que
los espacios dedirecciones disponibles en el almacenamiento primario.
Seutilizan tcnicas de:
Paginacin: bloquesdedatosdetamaojo van ovienen entreel alma-
cenamiento primario y el secundario.
Segmentacin: identica las unidades lgicas de los programas y datos
para facilitar el control deacceso y participacin.
20 CAPTULO 1. INTRODUCCIN
Multiprocesamiento:
Varios procesadores comparten un almacenamiento primario comn y un solo
S. O.
Es necesario secuencializar el acceso a una localizacin (direccin) de alma-
cenamiento compartido para quedos o ms procesadores no intenten:
Modicarla al mismo tiempo.
Modicarla uno(s) mientras otro(s) intenta(n) leerla.
Acceso directo a la memoria (DMA):
Requiere una sola interrupcin al procesador por cada bloque de caracteres
transferidos durantela operacin dee/ s, lo cual mejora signicativamentela
performance(rendimiento).
Es como si el procesador, en vez deinterrumpido fuera retrasado.
Resulta muy til para altos requerimientos dee/ s.
Canal DMA: es el hardwareresponsabledel robo deciclos y dela operacin
delos dispositivos dee/ s.
Canalizacin:
Tcnicadehardwareutilizadaparaexplotar ciertostiposdeparalelismodurante
el procesamiento deinstrucciones.
Variasinstruccionespuedenestar simultneamenteen diferentesestadosdeeje-
cucin.
J erarqua de almacenamiento:
Los niveles dealmacenamiento incluyen:
Almacenamiento primario: memoria principal.
Almacenamiento secundario: discos, cintas, etc.
Almacenamiento cach: memoria muy veloz diseada para aumentar la
velocidad deejecucin delos programas:
Aloja la parte(instrucciones y datos) en ejecucin deun programa.
Los niveles de almacenamiento crean jerarquas de almacenamiento: cach,
almacenamiento primario, almacenamiento secundario.
Al bajar en la jerarqua:
Descienden el costo y la velocidad.
Aumenta la capacidad.
Espacio dedirecciones: conjuntodetodaslasdireccionesdisponiblesparaun
programa.
1.7. SOFTWARE 21
1.7 Software
Consisteen los programas deinstrucciones y datos quedenen para el hardwarelos algo-
ritmos necesarios para la resolucin deproblemas.
Los aspectos ms destacados en relacin con los S. O. son los siguientes [7, Deitel]:
Programacin en lenguaje de mquina:
Lenguaje de mquina:
Lenguajedeprogramacin queun computador puedecomprender directa-
mente.
Es dependiente de la mquina: un programa en lenguaje de mquina
escrito en el computador deun fabricante, generalmenteno puedeser eje-
cutado en el deotro, salvo quesu lenguajedemquina sea compatible.
Muy poco usado actualmente.
Ensambladores y macroprocesadores:
Los lenguajes ensambladores sedesarrollaron para:
Incrementar la velocidad deprogramacin .
Reducir los errores decodicacin.
Los programas deben ser traducidos al lenguaje de mquina mediante un
programa ensamblador:
Tambin es dependientedela mquina.
Los macroprocesadores:
Sedesarrollaron paraacelerar lacodicacin deunprogramaensamblador.
Seincorporaron en los ensambladores.
Una macroinstruccin indica la ejecucin devarias instrucciones en len-
guajeensamblador.
El procesador demacroinstrucciones efectaunamacroexpansin cuan-
do leeuna macro durantela traduccin deun programa:
Genera una seriedeinstrucciones en lenguajeensamblador correspon-
dientes a la macro.
Compiladores:
Lenguajes de alto nivel: se desarrollaron para resolver el problema de la
dependencia respecto a la mquina.
Permiten el desarrollo deprogramas independientes de la mquina.
Selogramayor velocidad deprogramacin, programastransportablesentresis-
temas diferentes y menores requerimientos deconocimientos dehardware.
Compiladores: traducen los lenguajes dealto nivel al lenguajedemquina.
Traductores: es la denominacin para compiladores y ensambladores.
22 CAPTULO 1. INTRODUCCIN
Entrada: programa fuente del programador.
Salida: programa objeto o programa resultante.
Sistemas de control de entrada / salida (I OCS: input / output control
system):
EL IOCS libera al programador deaplicaciones de la complejidad dela admi-
nistracin dela e/ s:
Programas decanal, coordinacin decanales y procesadores, control dela
e/ s, etc.
Es una manifestacin dela tendencia a quelos desarrolladores deaplicaciones
se concentren en la produccin de cdigos orientados hacia las aplicaciones y
no hacia los sistemas (hardware).
Utilizacin del SPOOL (Simultaneous Peripheral Operation On Line:
operacin simultnea de perifricos en lnea):
Un dispositivo dealta velocidad (ej.: disco) seinterponeentreun programa en
ejecucin y un dispositivodebaja velocidad (ej.: impresora) relacionado con el
programa en la e/ s.
Evita la demora en la ejecucin de programas como consecuencia del uso de
perifricos lentos.
Lenguajes orientados hacia el procedimiento versus lenguajes orientados
hacia el problema:
O. hacia el procedimiento: son de propsito general y aptos para resolver
gran variedad deproblemas:
Ej.: Pascal, Cobol, Fortran, Basic, PL/ I.
O. hacia el problema: son especcos para resolver determinados tipos de
problemas:
Ej.: GPSS (simulacin), SPSS (estadstica).
Compiladores rpidos y sucios versus compiladores optimizadores:
C. rpidos y sucios: producen rpidamente un programa objeto que puede
ser inecienterespecto dealmacenamiento y velocidad deejecucin:
Utiles para el desarrollo y prueba desistemas.
C. optimizadores: producen con mayor lentitud un cdigo demquina alta-
menteecienteen almacenamiento y ejecucin:
Utiles en etapa deproduccin delos sistemas.
I nterpretadores:
No producen un programa objeto.
1.8. MEMORIA FIJ A 23
Ejecutan directamenteun programa fuente.
Son tiles en ambientes dedesarrollo deprogramas.
Son ms lentos quelos cdigos compilados.
Cargadores absolutos y de relocalizacin:
Los programas seejecutan en el almacenamiento principal.
Asignacin: es la asociacin deinstrucciones y datos con localizaciones par-
ticulares dealmacenamiento.
Cargador: esun programaquecolocalasinstruccionesy datosdeun progra-
ma dentro delocalizaciones del almacenamiento principal.
Cargador absoluto: coloca las instrucciones y datos en las localizaciones es-
peccas indicadas en el programa delenguajedemquina.
Cargador derelocalizacin: puedecargar un programaen varioslugaresden-
tro del almacenamiento principal:
Dependedela disponibilidad dealmacenamiento primario al momento de
realizar la carga.
Tiempo de carga: momento derealizar la carga.
Cargadores de enlace y editores de enlace:
El programa en lenguaje de mquina producido por un traductor debe ser
combinadoconotrosprogramasenlenguajedemquinaparaformar unaunidad
ejecutable.
Lacombinacin deprogramas esrealizadapor cargadores deenlace y edi-
tores de enlace antes del tiempo deejecucin del programa.
Cargador de enlace: en el momento de carga, combina cualesquiera progra-
mas requeridos y los carga directamenteen el almacenamiento primario.
Editor de enlace: ejecuta la combinacin de programas mencionada y ade-
ms crea una imagen de carga a memoria que preserva en el almacenamiento
secundario (disco), para usos futuros:
Es muy til en ambientes de produccin, ya que la carga inmediata de
la imagen de memoria previamente producida evita un nuevo proceso de
combinacin deprogramas previo a cada ejecucin.
1.8 Memoria Fija
El concepto de microprogramacin suele atribuirse al prof. Maurice Wilkes (1951) [7,
Deitel].
La primer aplicacin a gran escala fueron los S/ 360(IBM - 60) [24, Tanenbaum].
La microprogramacin dinmica: permite cargar fcilmente los nuevos micropro-
gramas (microcdigo) dentrodel almacenamiento decontrol , desdedondeson ejecu-
tados:
24 CAPTULO 1. INTRODUCCIN
Permitevariar dinmicayfrecuentementelosconjuntosdeinstruccionesdemquina.
Lamicroprogramacin introduceunacapadeprogramacin por debajodel lenguaje
demquina:
Haceposibledenir las instrucciones del lenguajedemquina.
Los microprogramas estn formados por microinstrucciones individuales que en
relacin a las instrucciones delos lenguajes demquina son de:
Naturaleza mucho ms elemental.
Funcin ms dispersa.
Cada instruccin de lenguaje de mquina es implementada por un microprograma
completo quepuedeser extenso:
El almacenamiento de control debe ser mucho ms rpido que el almacenamiento
primario.
Microcdigos vertical y horizontal:
El microcdigo vertical:
Es similar a la ejecucin deinstrucciones en lenguajedemquina.
Especica el movimiento deuno o varios datos entreregistros.
El microcdigo horizontal:
Est constitudo por microinstrucciones querequieren muchos ms bits.
Puedeespecicar laoperacinparalelademovimientodedatosentremuchosotodos
los registros dedatos dela unidad decontrol.
Es ms poderoso pero ms complejo queel microcdigo vertical.
Decisin de qu funciones implementar en microcdigo:
Unaimportantecuestin dediseoes decidir qufuncionesdel sistema computacional
seimplementarn en microcdigo.
El microcdigo permitemejorar el rendimiento en la ejecucin de un sistema compu-
tacional.
El criterio frecuentementees colocar en la memoria ja (en vez deen el software) las
secuencias deinstrucciones utilizadas con ms frecuencia.
Emulacin:
Es una tcnica por medio dela cual sehacequeuna mquina aparenteser otra.
El conjunto de instrucciones de lenguaje de mquina que va a ser emulada se micro-
programa en la mquina antriona.
Los programas de lenguaje de mquina de la mquina emulada pueden ejecutarse
directamenteen la antriona.
Es til para compatibilidad y migracin desistemas.
Microdiagnsticos:
Los microprogramas tienen ms acceso al hardwarequelos programas delenguajede
mquina:
1.8. MEMORIA FIJ A 25
Esposibleefectuar deteccin y correccin deerroresmsampliaaun nivel msno.
Se puede intercalar el microdiagnstico con las instrucciones de programas de len-
guajedemquina.
Computadores personalizados:
El hardware proporciona un ambiente de propsito general para ejecutar programas
desoftware:
Moldean el sistema computacional segn las necesidades del usuario.
En algunos sistemas los usuarios pueden efectuar esta adaptacin por medio del mi-
crocdigo.
Asistencias de microcdigo:
Implementan varias rutinas demanejo deinterrupciones deuso ms frecuenteen mi-
crocdigo a n delograr mejoras signicativas en la ejecucin.
Microprogramacin y sistemas operativos:
Las funciones implementadas frecuentementeen microcdigo son las siguientes:
Manejo deinterrupciones.
Mantenimiento devarios tipos deestructuras dedatos.
Primitivas desincronizacin quecontrolan el acceso a los datos compartidos y otros
recursos.
Operacionesdepalabrasparcialesquepermitenquelasoperacionesdemanipulacin
debits sean manejadas en forma eciente.
Intercambio decontexto, por ej., intercambiorpidodel procesador entrelosusua-
rios deun sistema deusuarios mltiples.
Secuencias deregreso y llamada al procedimiento.
26 CAPTULO 1. INTRODUCCIN
Captulo 2
Procesos y Administracin del
Procesador
2.1 I ntroduccin y Deniciones Sobre Procesos
El concepto central decualquier Sistema Operativo es el deproceso: una abstraccin de
un programa en ejecucin tambin llamada tarea.
No hay un acuerdo universal sobre una denicin de proceso, pero s algunas deni-
ciones aceptadas [7, Deitel]:
Un programa queseest ejecutando.
Una actividad asincrnica.
El emplazamiento del control deun procedimiento queest siendo ejecutado.
Aquello que se maniesta por la existencia en el Sistema Operativo de un bloque
de control de proceso.
Aquella entidad a la cual son asignados los procesadores.
La unidad despachable.
En sistemas demultiprogramacin la cpu alterna deprograma en programa, en un
esquema de seudoparalelismo , es decir que la cpu ejecuta en cierto instante un solo
programa, intercambiando muy rpidamenteentreuno y otro.
El paralelismo real de hardware seda en las siguientes situaciones:
Enejecucindeinstruccionesdeprogramaconmsdeunprocesador deinstrucciones
en uso simultneamente.
Con la superposicin deejecucin deinstrucciones deprograma con la ejecucin de
una o ms operaciones deentrada / salida.
El objetivo es aumentar el paralelismo en la ejecucin.
El modelo de procesos poseelas siguientes caractersticas:
27
28 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
Todo el software ejecutable, inclusive el Sistema Operativo, se organiza en varios
procesos secuenciales o procesos.
Un proceso incluye al programa en ejecucin y a los valores activos del contador,
registros y variables del mismo.
Conceptualmentecada proceso tienesu propia cpu virtual.
Si la cpu alterna entrelos procesos, la velocidad a la queejecuta un proceso no ser
uniforme, por lo quees necesario aclarar lo siguiente:
Quelosprocesosnodebenprogramarseconhiptesisimplcitasacercadel tiem-
po.
Quenormalmentela mayora delos procesos no son afectados por la multipro-
gramacinsubyacentedelacpuolasvelocidadesrelativasdeprocesosdistintos.
Unprocesoesunaactividaddeunciertotipo, quetieneunprograma, entrada, salida
y estado.
Un soloprocesador puedeser compartidoentrevariosprocesoscon ciertoalgoritmo
de planicacin , el cual determina cundo detener el trabajo en un proceso y dar
servicio a otro distinto
1
.
En cuantoalasjerarquas de procesos esnecesariosealar quelos SistemasOpera-
tivosdeben disponer deunaformadecrear y destruir procesoscuandoserequieradurante
la operacin, teniendo adems presente que los procesos pueden generar procesos hijos
mediantellamadas al Sistema Operativo, pudiendo darseejecucin en paralelo.
Respectodelos estados del proceso deben efectuarselas siguientesconsideraciones:
Cada proceso es una entidad independiente pero frecuentemente debe interactuar
con otros procesos
2
.
Los procesos pueden bloquearseen su ejecucin porque:
Desdeel puntodevista lgiconopuedecontinuar porqueespera datosquean
no estn disponibles.
El Sistema Operativo asign la cpu a otro proceso.
Los estados [23, Tanenbaum] quepuedetener un proceso son
3
:
En ejecucin: utiliza la cpu en el instantedado.
Listo: ejecutable, se detiene en forma temporal para que se ejecute otro pro-
ceso.
Bloqueado: no se puede ejecutar debido a la ocurrencia de algn evento ex-
terno.
Son posibles cuatro transiciones entreestos estados.
1
Ver Figura 2.1 dela pgina 29 [23, Tanenbaum].
2
Ver Figura 2.2 dela pgina 29 [23, Tanenbaum].
3
Ver Figura 2.3 dela pgina 29 [23, Tanenbaum].
2.1. INTRODUCCIN Y DEFINICIONES SOBRE PROCESOS 29
A
B
C
D
ALTERNADOR DE PROCESOS
UN CONTADOR DE PROGRAMA
MODELO CONCEPTUAL DE CUATRO
PROCESOS SECUENCIALES INDEPENDIENTES
A C D B
CUATRO CONTADORES DE PROGRAMA
Figura~2.1: Multiprogramacin decuatro programas.
TIEMPO
P
R
O
C
E
S
O
A
B
C
D
Figura~2.2: Solo un programa est activo en un momento dado.
EN EJECUCION
BLOQUEADO LISTO
1
2
3
4
1-EL PROCESO SE BLOQUEA EN ESPERA DE DATOS
2-EL PLANIFICADOR ELIGE OTRO PROCESO
3-EL PLANIFICADOR ELIGE ESTE PROCESO
4-LOS DATOS ESTAN DISPONIBLES
TANSICIONES ENTRE LOS ESTADOS
1-BLOQUEO
2-TIEMPO EXCEDIDO
3-DESPACHO
4-DESPERTAR
Figura~2.3: Un proceso puedeestar en ejecucin, bloqueado o listo.
30 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
2.2 Estados de Procesos
Durantesu existenciaun procesopasapor unaseriedeestadosdiscretos, siendo variaslas
circunstancias quepueden hacer queel mismo cambiedeestado.
Debido a ello se puede establecer una Lista deListos para los procesos listos y
una Lista deBloqueados para los bloqueados.
La Lista de Listos semantieneen orden prioritario y la Lista de Bloqueados est
desordenada, yaquelosprocesossedesbloqueanenel ordenenquetienenlugar loseventos
queestn esperando.
Al admitirseun trabajo en el sistema secrea un proceso equivalentey es insertado en
la ltima partedela Lista de Listos.
La asignacin de la cpu al primer proceso dela Lista de Listos se denomina Des-
pacho , quees ejecutado por una entidad del Sistema Operativo llamada Despachador
.
El Bloqueo eslanicatransicindeestadoiniciadapor el propioprocesodel usuario,
puesto quelas otras transiciones son iniciadas por entidades ajenas al proceso.
La manifestacin deun proceso en un Sistema Operativo es un Bloque de Control de
Proceso (PCB) con informacin queincluye[7, Deitel]:
Estado actual del proceso.
Identicacin nica del proceso.
Prioridad del proceso.
Apuntadores para localizar la memoria del proceso.
Apuntadores para asignar recursos.
Area para preservar registros.
Cuando el Sistema Operativo cambia la atencin dela cpu entrelos procesos, utiliza
lasreasdepreservacin del PCB paramantener lainformacinquenecesitaparareiniciar
el proceso cuando consiga denuevo la cpu.
Los sistemas que administran los procesos deben poder crear, destruir, suspender,
reanudar, cambiar la prioridad, bloquear, despertar y despachar un proceso.
La creacin deun proceso signica:
Dar nombreal proceso.
Insertar un proceso en la lista del sistema deprocesos conocidos.
Determinar la prioridad inicial del proceso.
Crear el bloquedecontrol del proceso.
Asignar los recursos iniciales del proceso.
2.3. PROCESAMIENTO DE INTERRUPCIONES 31
Un proceso puede crear un nuevo proceso, en cuyo caso el proceso creador se de-
nomina proceso padre y el proceso creado proceso hijo y se obtiene una estructura
jerrquica de procesos.
La destruccin deun proceso implica:
Borrarlo del sistema.
Devolver sus recursos al sistema.
Purgarlo detodas las listas o tablas del sistema.
Borrar su bloquedecontrol deprocesos.
Un proceso suspendido no puedeproseguir hasta queotro proceso lo reanude.
Reanudar (reactivar) un proceso implica reiniciarlo en el punto dondefuesuspendido.
La destruccin de un proceso puede o no signicar la destruccin de los procesos
hijos, segn el Sistema Operativo.
GeneralmentesedenominaTabla deProcesos al conjuntodeinformacin decontrol
sobrelos distintos procesos.
2.3 Procesamiento de I nterrupciones
Una interrupcin es un evento quealtera la secuencia en queel procesador ejecuta las
instrucciones; es un hecho generado por el hardwaredel computador [7, Deitel].
Cuando ocurreuna interrupcin, el Sistema Operativo:
Obtieneel control.
Salva el estado del proceso interrumpido, generalmente en su bloque de control de
procesos.
Analiza la interrupcin.
Transereel control a la rutina apropiada para la manipulacin dela interrupcin.
Una interrupcin puede ser iniciada por un proceso en estado de ejecucin o por un
evento quepuedeo no estar relacionado con un proceso en ejecucin.
Generalmente las interrupciones se pueden clasicar por tipos segn el siguiente
detalle
4
:
SVC (llamadaal supervisor): es unapeticin generadapor el usuarioparaun ser-
vicioparticular del sistema, por ejemplo, realizacindeEntrada/ Salidauobtencin
dems memoria.
Entrada / Salida: son iniciadas por el hardwaredeEntrada / Salida, indicando a
lacpu quehacambiadoel estadodeun canal odispositivo, por ejemplo, nalizacin
deEntrada / Salida u ocurrencia deun error.
4
Ver Tabla 2.1 dela pgina 32 [7, Deitel].
32 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
Tipo deInterrupcin Descripcin
SVC Llamada al Sistema Operativo
Entrada / Salida Cambio deestado deun canal o dispositivo
Externa Evento externo al sistema
DeReinicio Reinicio del procesamiento
DeVericacin dePrograma Errores deprocesos
DeVericacin deMquina Errores dehardware
Tabla 2.1: Tipos deinterrupciones.
Externas: soncausadaspor distintoseventos, por ejemplo, expiracindeuncuanto
enunreloj deinterrupcinorecepcindeunaseal deotroprocesador enunsistema
multiprocesador.
Dereinicio: ocurren al presionar latecla dereinicio o cuandollegauna instruc-
cin dereinicio deotro procesador en un sistema multiprocesador.
Devericacin deprograma: son causadas por errores producidos durantela eje-
cucin deprocesos, por ejemplo:
Un intento dedividir por cero.
Un intento deun proceso deusuario deejecutar una instruccin privilegiada.
Un intento deejecutar un cdigo deoperacin invlido.
Devericacin demquina: son ocasionadaspor un mal funcionamientodel hard-
ware.
El SistemaOperativoincluyerutinasllamadasManipuladores de I nterrupciones
(I H) para procesar cada tipo diferentedeinterrupcin.
Cuandoseproduceuna interrupcin el SistemaOperativoefectalas siguientes accio-
nes:
Salva el estado del proceso interrumpido.
Dirigeel control al manipulador deinterrupciones adecuado.
Seaplica la tcnica deCambio deContexto .
LosSistemasOperativosinstrumentaninformacindecontrol quepuedeaparecer como
las Palabras deEstado dePrograma (PSW), las cuales controlan el orden deejecucin
delas instrucciones y contienen informacin sobreel estado del proceso.
Existen tres tipos dePSW, queson la actual, la nueva y la vieja.
La PSW Actual almacena la direccin dela prxima instruccin queser ejecutada
eindica los tipos deinstrucciones actualmentehabilitadas einhabilitadas.
En un sistema uniprocesador existe:
2.4. EL NCLEO DEL SISTEMA OPERATIVO 33
Solo una PSW actual.
Seis PSW nuevas (una para cada tipo deinterrupcin).
Seis PSW viejas (una para cada tipo deinterrupcin).
LaPSW nuevapara un tipo deinterrupcin dadocontieneladireccin en el hardware
donderesideel manipulador deinterrupciones para estetipo especco.
Cuandoocurreunainterrupcinparalacual el procesador noestinhabilitado, ocurren
las siguientes acciones:
El hardwarecambia las PSW en los casos siguientes:
Al almacenar la PSW actual en la PSW vieja, para estetipo deinterrupcin.
Al almacenar la PSW nueva en la PSW actual, para estetipo deinterrupcin.
Luego deesteintercambio dePSW:
LaPSW actual contieneladireccindel manipulador deinterrupcinadecuado.
El manipulador deinterrupciones procesa la interrupcin.
Luego deprocesar la interrupcin, la cpu es enviada al:
Proceso queestaba en ejecucin en el momento dela interrupcin, o al
Proceso delisto dems alta prioridad.
La accin precedentedependedesi el proceso deinterrupcin es:
Apropiativo : obtienela cpu solo si no hay procesos delistos.
No apropiativo : obtienedenuevo la cpu.
2.4 El Ncleo del Sistema Operativo
El ncleo del SistemaOperativo controla todas lasoperaciones queimplican procesos y
representa solo una pequea porcin del cdigo detodo el Sistema Operativo pero es de
amplio uso [7, Deitel].
Generalmentepermaneceen el almacenamiento primario.
El proceso de interrupciones se incluye en el ncleo ya que debe ser rpido (espe-
cialmente en sistemas multiusuario), para optimizar el uso de los recursos del sistema y
proveer tiempos derespuesta aceptables a los usuarios interactivos.
El ncleo inhabilita las interrupciones mientras responde a una interrupcin. Las
interrupciones son habilitadas denuevo despus decompletar el proceso deuna interrup-
cin.
El ncleo del Sistema Operativo generalmenterealiza las siguientes funciones:
Manipulacin deinterrupciones.
Creacin y destruccin deprocesos.
Cambio deestados deprocesos.
34 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
Criterio Descripcin
Equidad Garantizar quecada proceso obtienesu proporcin
justa dela cpu
Ecacia Mantener ocupada la cpu el ciento por ciento
del tiempo
Tiempo derespuesta Minimizar el tiempo derespuesta para los
usuarios interactivos
Tiempo deregreso Minimizar el tiempo quedeben esperar los
usuarios por lotes (batch) para obtener
sus resultados
Rendimiento Maximizar el nmero detareas procesadas por hora
Tabla 2.2: Criterios deun buen algoritmo deplanicacin.
Despacho.
Suspensin y reanudacin deprocesos.
Sincronizacin deprocesos.
Comunicacin entreprocesos.
Manipulacin debloques decontrol deproceso.
Soportedelas actividades deEntrada / Salida.
Soportedela asignacin y desasignacin dealmacenamiento.
Soportedel sistema dearchivos.
Soportedeun mecanismo dellamada / regreso al procedimiento.
Soportedeciertas funciones contables (estadsticas) del sistema.
2.5 Planicacin de Procesos
Cuando ms deun proceso es ejecutabledesdeel punto devista lgico, el Sistema Opera-
tivo debedecidir cul deellos debeejecutarseen primer trmino.
El Planicador es la porcin del Sistema Operativo quedecide y el Algoritmo de
Planicacin es el utilizado.
Los principales criterios respecto de un buen algoritmo de planicacin [23, Ta-
nenbaum] son la equidad, la ecacia, el tiempo de respuesta, el tiempo de regreso y el
rendimiento
5
.
Algunas deestas metas son contradictorias, por ejemplo, minimizar el tiempo deres-
puesta para los usuarios interactivos signicara no ejecutar las tareas batch.
5
Ver Tabla 2.2 dela pgina 34 [23, Tanenbaum].
2.6. NIVELES DE PLANIFICACIN DEL PROCESADOR 35
Cadaprocesoesnicoeimpredecible, esdecir quepuedenrequerir intensivamenteope-
raciones deEntrada / Salida o intensivamentecpu; el planicador del Sistema Operativo
no tienela certeza decunto tiempo transcurrir hasta queun proceso sebloquee, ya sea
por una operacin deEntrada / Salida o por otra razn .
Paraevitar queun procesoseapropiedelacpu un tiempoexcesivo, losequiposposeen
un dispositivo queprovoca una interrupcin en forma peridica, por ejemplo 60hz, o sea
sesenta veces por segundo.
En cada interrupcin del reloj el Sistema Operativo decide si el proceso que se est
ejecutando contina o si el proceso agot su tiempo decpu y debesuspendersey ceder la
cpu a otro proceso.
Los principales conceptos relacionados con Planicacin del Procesador son los
siguiente:
Planicacin apropiativa: eslaestrategiadepermitir queprocesosejecutables(des-
deel punto devista lgico) sean suspendidos temporalmente.
Planicacin no apropiativa : es la estrategiadepermitir la ejecucin deun proceso
hasta terminar.
Planicacin del procesador : determinar cundo deben asignarselos procesadores
y a quprocesos, lo cual es responsabilidad del Sistema Operativo.
2.6 Niveles de Planicacin del Procesador
Seconsiderantresnivelesimportantesdeplanicacin, losquesedetallanacontinuacin
6
:
Planicacin dealto nivel:
Tambin sedenomina Planicacin detrabajos.
Determina a qu trabajos se les va a permitir competir activamente por los
recursos del sistema, lo cual sedenomina Planicacin deadmisin.
Planicacin denivel intermedio:
Determina a quprocesos seles puedepermitir competir por la cpu.
Responde a uctuaciones a corto plazo en la carga del sistema y efecta sus-
pensiones y activaciones (reanudaciones) deprocesos.
Debeayudar a alcanzar ciertas metas en el rendimiento total del sistema.
Planicacin debajo nivel:
Determina a quproceso listo seleasigna la cpu cuando esta queda disponible
y asigna la cpu al mismo, es decir quedespacha la cpu al proceso.
La efecta el Despachador del Sistema Operativo, el que opera muchas veces
por segundo y residesiempreen el almacenamiento primario.
Los distintos SistemasOperativosutilizan variasPolticas dePlanicacin, queseins-
trumentan medianteMecanismos dePlanicacin .
6
Ver Figura 2.4 dela pgina 36 [7, Deitel].
36 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
TRABAJOS ESPERANDO
ENTRADA
TRABAJOS ESPERANDO
INICIACION
ENTRADA DE TRABAJOS
TRABAJOS SUSPENDIDOS
ESPERANDO ACTIVACION
INICIACION DE TRABAJOS
PLANIFICACION DE
ALTO NIVEL
PROCESOS ACTIVOS
PLANIFICACION DE
NIVEL INTERMEDIO
ACTIVAR SUSPENDER
PROCESOS EN
EJECUCION
DESPACHO PLANIFICACION DE
BAJO NIVEL
TERMINADO
TERMINAR
Figura~2.4: Niveles deplanicacin del procesador.
2.7. OBJ ETIVOS DE LA PLANIFICACIN 37
2.7 Objetivos de la Planicacin
Los objetivos dela planicacin del procesador son los siguientes e involucran a los con-
ceptos detallados seguidamente[7, Deitel]:
Ser justa:
Todos los procesos son tratados deigual manera.
Ningn proceso es postergado indenidamente.
Maximizar la capacidad de ejecucin:
Maximizar el nmero deprocesos servidos por unidad detiempo.
Maximizar el nmero de usuarios interactivos que reciban unos tiempos
de respuesta aceptables:
En un mximo deunos segundos.
Ser predecible:
Un trabajo dado debe ejecutarse aproximadamente en la misma cantidad de
tiempo independientementedela carga del sistema.
Minimizar la sobrecarga:
No sueleconsiderarseun objetivo muy importante.
Equilibrar el uso de recursos:
Favorecer a los procesos queutilizarn recursos infrautilizados.
Equilibrar respuesta y utilizacin:
La mejor manera degarantizar buenos tiempos derespuesta es disponer delos
recursos sucientes cuando se necesitan, pero la utilizacin total de recursos
podr ser pobre.
Evitar la postergacin indenida:
Seutiliza la estrategia del envejecimiento .
Mientras un proceso espera por un recurso su prioridad debeaumentar, as la
prioridad llegar a ser tan alta queel proceso recibir el recurso esperado.
Asegurar la prioridad:
Los mecanismos deplanicacin deben favorecer a los procesoscon prioridades
ms altas.
38 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
Dar preferencia a los procesos que mantienen recursos claves:
Un proceso debaja prioridad podra mantener un recurso clave, quepuedeser
requerido por un proceso dems alta prioridad.
Si el recurso es no apropiativo, el mecanismo de planicacin debe otorgar al
proceso un tratamiento mejor del que le correspondera normalmente, puesto
quees necesario liberar rpidamenteel recurso clave.
Dar mejor tratamiento a los procesos que muestren un comportamiento
deseable:
Un ejemplo decomportamiento deseablees una tasa baja depaginacin.
Degradarse suavemente con cargas pesadas:
Un mecanismo de planicacin no debe colapsar con el peso de una exigente
carga del sistema.
Sedebeevitar una carga excesiva mediantelas siguientes acciones:
Nopermitiendoquesecreen nuevosprocesoscuandolacargayaespesada.
Dando servicio a la carga ms pesada al proporcionar un nivel moderada-
mentereducido deservicio a todos los procesos.
Muchas deestas metas seencuentran en conicto entres, por lo quela planicacin
seconvierteen un problema complejo.
2.8 Criterios de Planicacin
Para realizar los objetivos dela planicacin, un mecanismo deplanicacin debeconsi-
derar lo siguiente[7, Deitel]:
LalimitacindeunprocesoalasoperacionesdeEntrada/ Salida: cuandounproceso
consiguelacpu, lautilizasolobrevementeantesdegenerar unapeticindeEntrada
/ Salida?.
La limitacin de un proceso a la cpu: cuando un proceso obtiene la cpu, tiende a
usarla hasta queexpira su tiempo?.
Si unprocesoespor lote(batch) ointeractivo: losusuariosinteractivosdebenrecibir
inmediato servicio para garantizar buenos tiempos derespuesta.
Quurgencia tieneuna respuesta rpida?: por ejemplo, un proceso detiempo real
de un sistema de control que supervise una renera de combustible requiere una
respuesta rpida, ms rpida que la respuesta requerida por un proceso en lotes
(batch) quedeber entregarseal da siguiente.
La prioridad deun proceso: a mayor prioridad mejor tratamiento.
Frecuentementeun proceso genera fallos (carencias) depgina:
2.9. PLANIFICACIN APROPIATIVA VERSUS NO APROPIATIVA 39
Disciplina Descripcin
Apropiativa Una vez queseleha otorgado la cpu a un proceso,
lepuedeser retirada
No Apropiativa Una vez queseleha otorgado la cpu a un proceso,
no lepuedeser retirada
Tabla 2.3: Disciplinas deplanicacin del procesador.
Probablemente los procesos que generan pocos fallos depgina hayan acumu-
lado sus conjuntos detrabajo en el almacenamiento principal.
Los procesos que experimentan gran cantidad de fallos de pgina an no han
establecido sus conjuntos detrabajo.
Un criterioindica favorecer a losprocesos quehan establecidosus conjuntos de
trabajo.
Otrocriterioindicafavorecer alosprocesosconunatasaaltadefallosdepgina
ya querpidamentegenerarn una peticin deEntrada / Salida.
Frecuentementeun procesohasidoapropiadopor otrodemsaltaprioridad, locual
signica lo siguiente:
A menudo los procesos apropiados deben recibir un tratamiento menos favora-
ble.
Cada vez que el Sistema Operativo asume la sobrecarga para hacer ejecutar
este proceso, el corto tiempo de ejecucin antes de la apropiacin no justica
la sobrecarga dehacer ejecutar al proceso en primer lugar.
Cunto tiempo deejecucin real ha recibido el proceso?: un criterio considera que
debeser favorecido un proceso queha recibido muy poco tiempo decpu.
Cunto tiempo adicional va a necesitar el proceso para terminar?: los tiempos
promedio de espera pueden reducirse priorizando los procesos que requieren de un
tiempodeejecucinmnimoparasuterminacin, peropocasvecesesposibleconocer
la cantidad detiempo adicional quecada proceso necesita para terminar.
2.9 Planicacin Apropiativa Versus No Apropiativa
Las Disciplinas dePlanicacin pueden ser Apropiativas o No Apropiativas
7
.
Las principales caractersticas dela planicacin apropiativa son las siguientes:
Es til cuando los procesos dealta prioridad requieren atencin rpida.
Es importantepara garantizar buenos tiemposderespuestaen sistemasinteractivos
detiempo compartido.
7
Ver Tabla 2.3 dela pgina 39 [23, Tanenbaum].
40 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
Tiene su costo en recursos, ya que el intercambio de contexto implica sobrecarga
y adems requiere mantener muchos procesos en el almacenamiento principal, en
espera dela cpu, lo quetambin implica sobrecarga.
Lasprincipalescaractersticas delaplanicacin no apropiativa son las siguientes:
Signica quelos trabajos largos hacen esperar a los trabajos cortos.
Logra ms equidad en el tratamiento delos procesos.
Lograhacer mspredecibleslostiemposderespuestapuestoquelostrabajosnuevos
deprioridad alta no pueden desplazar a los trabajos en espera.
El diseodeunmecanismoapropiativohacenecesarioconsiderar lasarbitrariedadesde
casi cualquier esquemadeprioridades, enrazndequemuchasveceslaspropiasprioridades
no son asignadas deforma signicativa [25, Tanenbaum].
El mecanismo debera ser sencillo pero efectivo y signicativo.
2.10 Temporizador de I ntervalos o Reloj de I nterrupcin
El procesoal cual estasignadalacpusedicequeesten ejecucin y puedeser un proceso
deSistema Operativo o deusuario.
El Sistema Operativo dispone de mecanismos para quitarle la cpu a un proceso de
usuario para evitar quemonopoliceel sistema.
El Sistema Operativo posee un reloj de interrupcin o temporizador de interva-
los para generar una interrupcin, en algn tiempo futuro especco o despus de un
transcursodetiempo en el futuro; la cpu es entonces despachada hacia el siguienteproce-
so [7, Deitel].
Un proceso retiene el control de la cpu hasta que ocurra alguna de las siguientes
situaciones:
La libera voluntariamente.
El reloj la interrumpe.
Alguna otra interrupcin atraela atencin dela cpu.
Si el reloj interrumpe un proceso de usuario, la interrupcin causa la ejecucin del
Sistema Operativo, el quedecidecul ser el proceso queobtendr la cpu.
El reloj deinterrupcin ayudaagarantizar tiemposderespuestarazonablesausuarios
interactivos, ya queevita queel sistemasecuelgue a un solo usuario en un cicloinnito
y permitequelos procesos respondan a eventos dependientes del tiempo.
Asimismo, los procesos que necesitan una ejecucin peridica dependen del reloj de
interrupcin [22, Tanenbaum].
2.11. PRIORIDADES 41
Tipos deprioridades
Asignadas automticamentepor el sistema
Asignadas desdeel exterior
Dinmicas
Estticas
Asignadas racionalmente
Asignadas arbitrariamente
Tabla 2.4: Tipos deprioridades.
2.11 Prioridades
Las prioridades pueden ser dedistinto tipo
8
.
Enel casodeprioridadesasignadasarbitrariamente, unmecanismodel sistemanecesita
distinguir entreprocesos sin importarlecul es el ms importante.
Las principales caractersticas delas prioridades estticas son las siguientes:
No cambian.
Los mecanismos deimplementacin son sencillos.
Implican una sobrecarga relativamentebaja.
Norespondenacambiosenel ambiente(contexto) queharandeseableajustar alguna
prioridad.
Las principales caractersticas delas prioridades dinmicas son las siguientes:
Responden al cambio.
La prioridad inicial asignada a un proceso puede durar poco tiempo, luego se la
reajusta a un mejor valor.
Los mecanismos de implementacin son ms complicados que para prioridades es-
tticas.
Implican una sobrecarga mayor quepara esquemas estticos.
Respecto de las prioridades adquiridas, se hace referencia al tratamiento especial
queen situaciones excepcionales requiereun cierto proceso, lo quepuedesignicar restar
recursos a los dems procesos.
8
Ver Tabla 2.4 dela pgina 41 [7, Deitel].
42 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
2.12 Tipos de Planicacin
2.12.1 Planicacin a Plazo Fijo
Ciertos trabajos seplanican para ser terminados en un tiempo especco o plazojo. Es
una planicacin compleja debido a los siguientes factores:
El usuariodebesuministrar anticipadamenteunalistaprecisaderecursosnecesarios
para el proceso, pero generalmenteno sedisponededicha informacin.
La ejecucin del trabajo de plazo jo no debe producir una grave degradacin del
servicio a otros usuarios.
El sistemadebeplanicar cuidadosamentesusnecesidadesderecursoshastael plazo
jo, lo quesepuedecomplicar con las demandas derecursos denuevos procesos que
ingresen al sistema.
La concurrencia de varios procesos de plazo jo (activos a la vez) puede requerir
mtodos sosticados deoptimizacin.
La administracin intensiva derecursos puede generar una considerable sobrecarga
adicional.
2.12.2 Planicacin Garantizada
Seestablecencompromisosdedesempeoconel procesodel usuario, por ejemplo, si existen
n procesos en el sistema, el proceso del usuario recibir cerca del 1=n dela potencia
dela cpu.
El sistema debetener un registro del tiempo decpu quecada proceso ha tenido desde
su entrada al sistema y del tiempo transcurrido desdeesa entrada.
Con los datos anteriores y el registro de procesos en curso de ejecucin, el sistema
calcula y determina qu procesos estn ms alejados por defecto de la relacin 1=n
prometida y prioriza los procesos quehan recibido menos cpu dela prometida.
2.12.3 Planicacin del Primero en Entrar Primero en Salir (FI FO)
Es muy simple, los procesos se despachan de acuerdo con su tiempo de llegada a la cola
delistos.
Una vez queel proceso obtienela cpu, seejecuta hasta terminar, ya quees una disci-
plina no apropiativa.
Puede ocasionar que procesos largos hagan esperar a procesos cortos y que procesos
no importantes hagan esperar a procesos importantes.
Es ms predeciblequeotros esquemas.
No puedegarantizar buenos tiempos derespuesta interactivos.
Sueleutilizarseintegrado a otros esquemas, por ejemplo, dela siguientemanera:
Los procesos sedespachan con algn esquema deprioridad.
Los procesos con igual prioridad sedespachan FIFO.
2.12. TIPOS DE PLANIFICACIN 43
2.12.4 Planicacin de Asignacin en Rueda (RR: Round Robin)
Los procesos sedespachan en FIFO y disponen deuna cantidad limitada detiempo de
cpu, llamada divisin detiempo o cuanto.
Si un proceso no termina antes de expirar su tiempo de cpu ocurren las siguientes
acciones:
1. La cpu es apropiada.
2. La cpu es otorgada al siguienteproceso en espera.
3. El proceso apropiado es situado al nal dela lista delistos.
Es efectiva en ambientes detiempo compartido.
La sobrecarga de la apropiacin semantiene baja mediante mecanismos ecientes de
intercambio decontexto y con sucientememoria principal para los procesos.
2.12.5 Tamao del Cuanto o Quantum
Ladeterminacindel tamaodel cuantoesdecisivaparalaoperacinefectivadeunsistema
computacional [7, Deitel].
Los interrogantes son: cuanto pequeo o grande?, cuanto jo o variable? y cuanto
igual para todos los procesos de usuarios o determinado por separado para cada uno de
ellos?.
Si el cuanto se hace muy grande, cada proceso recibe todo el tiempo necesario para
llegar a su terminacin, por lo cual la asignacin en rueda (RR) degenera en FIFO.
Si el cuanto se hace muy pequeo, la sobrecarga del intercambio de contexto se con-
vierteenunfactor dominantey el rendimientodel sistemasedegrada, puestoquelamayor
partedel tiempo decpu seinvierteen el intercambio del procesador (cambio decontexto)
y los procesos deusuario disponen demuy poco tiempo decpu.
El cuanto debeser lo sucientementegrandecomo para permitir quela gran mayora
de las peticiones interactivas requieran de menos tiempo que la duracin del cuanto, es
decir queel tiempo transcurrido desde el otorgamiento de la cpu a un proceso hasta que
generaunapeticin deEntrada/ Salidadebeser menor queel cuantoestablecido, deesta
forma, ocurrida la peticin la cpu pasa a otro proceso y como el cuanto es mayor queel
tiempotranscurridohastalapeticindeEntrada/ Salida, losprocesostrabajanal mximo
develocidad, seminimiza la sobrecarga deapropiacin y semaximiza la utilizacin dela
Entrada / Salida.
El cuantoptimovaradeunsistemaaotroyconlacarga, siendounvalor dereferencia
100mseg (cien milisegundos).
2.12.6 Planicacin del Trabajo Ms Corto Primero (SJ F)
Es una disciplina no apropiativa y por lo tanto no recomendableen ambientes detiempo
compartido.
El proceso en espera con el menor tiempo estimado deejecucin hasta su terminacin
es el siguienteen ejecutarse.
Los tiempos promedio deespera son menores quecon FIFO.
44 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
Los tiempos deespera son menos predecibles queen FIFO.
Favorecea los procesos cortos en detrimento delos largos.
Tiendea reducir el nmerodeprocesos en esperay el nmerodeprocesosqueesperan
detrs deprocesos largos.
Requiereun conocimiento preciso del tiempo deejecucin deun proceso, lo quegene-
ralmentesedesconoce.
Sepueden estimar los tiempos en basea series devalores anteriores.
2.12.7 Planicacin del Tiempo Restante Ms Corto (SRT)
Es la contraparteapropiativa del SJ F.
Es til en sistemas detiempo compartido.
El proceso con el tiempo estimado deejecucin menor para nalizar es el siguienteen
ser ejecutado.
Un proceso en ejecucin puede ser apropiado por un nuevo proceso con un tiempo
estimado deejecucin menor.
Tienemayor sobrecarga quela planicacin SJ F.
Debemantener unregistrodel tiempodeserviciotranscurridodel procesoenejecucin,
lo queaumenta la sobrecarga.
Los trabajos largos tienen un promedio y una varianza de los tiempos de espera an
mayor queen SJ F.
La apropiacin deun proceso a punto determinar por otro demenor duracin recin
llegado podra signicar un mayor tiempo de cambio de contexto (administracin del
procesador) queel tiempo denalizacin del primero.
Al disearse los Sistemas Operativos se debe considerar cuidadosamente la sobrecarga
de los mecanismos de administracin de recursos comparndola con los benecios espera-
dos.
2.12.8 Planicacin el Siguiente con Relacin de Respuesta Mxima
(HRN)
Corrige algunas de las debilidades del SJ F, tales como el exceso de perjuicio hacia los
procesos (trabajos) largos y el exceso defavoritismo hacia los nuevos trabajos cortos.
Es una disciplina no apropiativa.
Laprioridaddecadaprocesoesten funcin noslodel tiempodeserviciodel trabajo,
sino que tambin inuye la cantidad de tiempo que el trabajo ha estado esperando ser
servido.
Cuando un proceso ha obtenido la cpu, correhasta terminar.
Las prioridades, que son dinmicas, se calculan segn la siguiente frmula, donde p
r
es la prioridad, t
e
es el tiempo deespera y t
s
es el tiempo deservicio:
p
r
=
(t
e
+t
s
)
t
s
(2.1)
2.12. TIPOS DE PLANIFICACIN 45
2.12.9 Planicacin por Prioridad
Considera factores externos al proceso [23, Tanenbaum].
Las ideascentralesson quecada proceso tieneasociadaunaprioridad y queel proceso
ejecutablecon mxima prioridad es el quetieneel permiso deejecucin.
Losprocesosdealtaprioridad podran ejecutar indenidamente, yaqueel planicador
del sistemapuededisminuir laprioridad del proceso en ejecucin en cada interrupcin del
reloj.
Lasprioridadestambinpuedenser asignadasdinmicamentepor el sistemaparalograr
ciertas metas relacionadas con el procesador o la Entrada / Salida.
Los procesos limitados por la Entrada / Salida (requerimientos intensivos deEntrada
/ Salida) ocupan mucho desu tiempo en espera deoperaciones deEntrada / Salida, por
lo tanto:
Deben tener prioridad para usar lacpu y efectuar lasiguientepeticin deEntrada/
Salida, ya que seejecutar (la operacin deEntrada / Salida) en paralelo con otro
proceso queutilicela cpu.
Si deben esperar mucho tiempo a la cpu estarn ocupando memoria por un tiempo
innecesario.
Un algoritmo sencillo consisteen establecer quela prioridad sea 1=f , dondef es
la fraccin del ltimo cuanto utilizado por el proceso.
Un proceso que utilice 2 mseg (dos milisegundos) de su cuanto de 100 mseg (cien
milisegundos) tendr prioridad 50(cincuenta).
Un proceso queseejecut 50mseg antes del bloqueo tendr prioridad 2.
Un proceso queutiliz todo el cuanto tendr prioridad 1.
Frecuentemente los procesos se agrupan en Clases de Prioridad, en cuyo caso se
utiliza la Planicacin con Prioridades entre las clases y con Round Robin (RR) dentro
de cada clase. Si las prioridades no se reajustan en algn momento, los procesos de las
clases deprioridad mnima podran demorarseindenidamente.
2.12.10 Colas de Retroalimentacin de Niveles Mltiples
Proporcionan una estructura para lograr los siguientes objetivos:
Favorecer trabajos cortos.
Favorecer trabajos limitados por la Entrada / Salida para optimizar el uso de los
dispositivos deEntrada / Salida.
Determinar lanaturaleza deun trabajo lo ms rpido posibley planicar el trabajo
(proceso) en consecuencia.
Un nuevo proceso entra en la red delnea deespera al nal dela cola superior.
Semuevepor esta cola FIFO hasta obtener la cpu.
Si el trabajo termina o abandona la cpu para esperar por la terminacin de una ope-
racin deEntrada / Salida o la terminacin dealgn otro suceso, el trabajo abandona la
red delnea deespera.
46 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
Si su cuanto expira antes de abandonar la cpu voluntariamente, el proceso se coloca
en la partetrasera dela cola del siguientenivel inferior.
El trabajo recibeservicio al llegar a la cabeza deesta cola si la primera est vaca.
Mientras el proceso contine consumiendo totalmentesu cuanto en cada nivel, conti-
nuar movindosehacia el nal delas colas inferiores.
Generalmente hay una cola en la parte ms profunda a travs de la cual el proceso
circula en asignacin derueda hasta quetermina.
Existen esquemas en los que el cuanto otorgado al proceso aumenta a medida que el
proceso semuevehacia las colas de los niveles inferiores, en tal caso, cuanto ms tiempo
haya estado el proceso en la red de lnea de espera, mayor ser su cuanto cada vez que
obtienela cpu y no podr obtener la cpu muy a menudo debido a la mayor prioridad de
los procesos delas colas superiores.
Un proceso situado en una cola dada no podr ser ejecutado hasta quelas colas delos
niveles superiores estn vacas.
Un proceso en ejecucin es apropiado por un proceso quelleguea una cola superior.
Es un mecanismo adaptable, es decir queseadapta a cargas variables.
A los efectosdeunarevisin grcadeloenunciado precedentemente, ver lagura2.5
dela pgina 47[7, Deitel].
2.12.11 Poltica Versus Mecanismo de Planicacin
Puedeocurrir quehaya procesos con muchos procesos hijos ejecutndosebajo su control,
por ejemplo, un proceso en un DBMS con procesos hijos atendiendo funciones especcas,
tales como, anlisis deinterrogantes, acceso a discos, etc.
Es posible que el proceso principal (padre) pueda identicar la importancia (o criti-
cidad) de sus procesos hijos, pero los planicadores analizados no aceptan datos de los
procesos deusuario relativos a decisiones deplanicacin.
La solucin es separar el mecanismo de planicacin dela poltica de planica-
cin , para ello separametriza el algoritmo deplanicacin y los parmetros pueden ser
determinados por medio de procesos del usuario; as el mecanismo est en el ncleo del
Sistema Operativo pero la poltica queda establecida por un proceso del usuario.
2.12.12 Planicacin de Dos Niveles
Los esquemas analizados hasta ahora suponen quetodos los procesos ejecutables estn en
la memoria principal.
Si la memoria principal es insuciente, ocurrir lo siguiente[23, Tanenbaum]:
Habr procesos ejecutables quesemantengan en disco.
Habr importantes implicaciones para la planicacin, tales como las siguientes:
El tiempo de alternancia entre procesos para traer y procesar un proceso del
disco es considerablemente mayor que el tiempo para un proceso que ya est
en la memoria principal.
Esmsecienteel intercambiodelosprocesosconunplanicador dedosniveles.
2.12. TIPOS DE PLANIFICACIN 47
PLANIFICACION PRIMERO EN ENTRAR PRIMERO EN SALIR
LISTA DE LISTOS
C B A CPU
TERMINACION
PLANIFICACION DE ASIGNACION EN RUEDA (ROUND ROBIN: RR)
C B A A
LISTA DE LISTOS
CPU
TERMINACION
APROPIACION
COLAS DE RETROALIMENTACION DE NIVELES MULTIPLES
NIVEL 1 (FIFO)
USA LA CPU
TERMINACION
NIVEL 2 (FIFO)
APROPIACION
USA LA CPU
TERMINACION
APROPIACION
USA LA CPU
NIVEL N (ASIGNACION EN
RUEDA)
APROPIACION
TERMINACION
MAXIMA PRIORIDAD
MINIMA PRIORIDAD
Figura~2.5: Tipos deplanicacin del procesador.
48 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
El esquema operativo deun planicador dedos niveles es como sigue:
1. Secarga en la memoria principal cierto subconjunto delos procesos ejecutables.
2. El planicador serestringea ellos durantecierto tiempo.
3. Peridicamentesellamaaun planicador denivel superior paraefectuar lassiguien-
tes tareas:
(a) Eliminar dela memoria los procesos quehayan permanecido en ella el tiempo
suciente.
(b) Cargar a memoria los procesos quehayan estado en disco demasiado tiempo.
4. El planicador denivel inferior serestringedenuevo a los procesos ejecutables que
seencuentren en la memoria.
5. El planicador denivel superior seencarga dedesplazar los procesos dememoria a
disco y viceversa.
Los criterios quepodra utilizar el planicador denivel superior para tomar sus deci-
siones son los queseindican a continuacin:
Cunto tiempo ha transcurrido desdeel ltimo intercambio del proceso?.
Cunto tiempo decpu ha utilizado recientementeel proceso?.
Qu tan grande es el proceso? (generalmente los procesos pequeos no causan
tantos problemas en estesentido).
Qutan alta es la prioridad del proceso?.
El planicador de nivel superior podra utilizar cualquiera de los mtodos de plani-
cacin analizados.
2.13 Multiprocesamiento
2.13.1 I ntroduccin
Es una tendencia signicativa en el campo dela computacin.
Consisteen congurar un sistema decomputacin con varios procesadores .
No es un enfoque nuevo pero s posee grandes perspectivas en funcin del desarrollo
delos microprocesadores.
Sepodran concebir sistemas construidos por cientos o miles demicroprocesadores.
2.13. MULTIPROCESAMIENTO 49
2.13.2 Conabilidad
Si unprocesador falla, losrestantescontinanoperando, locual noesautomticoyrequiere
deun diseo cuidadoso.
Un procesador quefalla habr deinformarlo a los dems dealguna manera, para que
sehagan cargo desu trabajo .
Los procesadores en funcionamiento deben poder detectar el fallo de un procesador
determinado.
El Sistema Operativo debe percibir que ha fallado un procesador determinado y ya
no podr asignarlo y tambin debeajustar sus estrategias deasignacin derecursos para
evitar la sobrecarga del sistema queest degradado.
2.13.3 Explotacin del Paralelismo
La mayora de los sistemas de multiprocesamiento tienen como meta principal el incre-
mento de la capacidad de ejecucin.
La programacin sigue siendo esencialmente secuencial y generalmente no se explota
la concurrencia.
Las principales razones son las siguientes:
Las personas piensan en forma secuencial.
Ningn lenguaje humano proporciona la expresin adecuada de paralelismo, pero
existen lenguajes de computacin con soporte de concurrencia (por ejemplo, Ada,
Pascal Concurrente, etc.).
Ni el multiprocesamiento ha sido usado con amplitud para explotar el paralelismo.
El hardwaretradicional del computador estorientadohacialaoperacinsecuencial.
Es muy difcil depurar programas en paralelo.
Los multiprocesadores no seutilizan a menudo para explotar el paralelismo ya quees
muy escaso el softwarequeexploteel paralelismo.
Lo deseable es que los Sistemas Operativos y compiladores puedan detectar e imple-
mentar el paralelismo automticamente.
2.13.4 Paralelismo Masivo
Se debe disponer de sucientes procesadores como para que todas las operaciones que
puedan ser ejecutadasenparalelopuedan ser asignadasaprocesadoresseparados[14, Pino
y Marrone].
Esto ofreceuna forma deejecutar un programa en el menor tiempo posible.
La cuestin central es, disponiendo del paralelismo masivo, cul es el tiempo mnimo
requerido para ejecutar un algoritmo determinado?.
50 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
2.13.5 Metas de los Sistemas de Multiprocesamiento
Las metas de los sistemas de multiprocesamiento generalmente son la conabilidad y la
disponibilidad muy altas, como as tambin el incremento del poder decomputacin.
El diseo modular proporciona una exibilidad importante y facilita la expansin de
la capacidad.
2.13.6 Deteccin Automtica del Paralelismo
Los multiprocesadores hacen posiblela explotacin del paralelismo.
Lossistemasdecomputacinobtienenlosbeneciosdel procesamientoconcurrentems
por lamultiprogramacin devariosprocesosymenospor laexplotacindel paralelismo
dentro deun solo proceso.
La deteccin del paralelismo es un problema complejo y la puede efectuar el progra-
mador, el traductor del lenguaje, el hardwareo el Sistema Operativo.
El paralelismo dentro delos programas puedeser explcito o implcito.
Las principales caractersticas del paralelismo explcito son las quesedetallan a con-
tinuacin:
Esindicado deformaespeccapor un programador medianteuna construccin de
concurrencia como la siguiente:
cobegin;
proposicin 1;
................
proposicin n;
coend;
Sepueden utilizar procesadores separados para ejecutar cada una delas proposicio-
nes.
Es susceptibledeerrores deprogramacin difciles dedetectar y depurar.
El programador puedeomitir tratar situaciones dondeseraaplicableel paralelismo.
Las principales caractersticas del paralelismo implcito son las quesedetallan a con-
tinuacin:
La verdadera esperanza est en la deteccin automtica del paralelismo implcito.
Es el paralelismo intrnseco del algoritmo pero no establecido explcitamentepor el
programador.
Los compiladores explotan el paralelismo implcito mediantelas tcnicas dedistri-
bucin deciclos y dereduccin dela altura del rbol.
2.13. MULTIPROCESAMIENTO 51
2.13.7 Distribucin de Ciclos
Una estructura de ciclos o de repeticin implica la repeticin de una serie de proposi-
ciones (cuerpo del ciclo) hasta queocurrealguna condicin determinacin, por ejemplo:
For i =1to 3
Do
a(i) =b(i) +c(i) (2.2)
;
El procesador secuencial realizar en secuencia lo siguiente:
a(1) = b(1) +c(1)
a(2) = b(2) +c(2)
a(3) = b(3) +c(3)
En un sistema de multiprocesamiento con tres procesadores disponibles se podran
ejecutar concurrentemente.
Un compilador quedetecte automticamente el paralelismo implcito puedeconvertir
el ciclo del ejemplo 2.2dela pgina 51en lo siguiente:
cobegin;
a(1) = b(1) +c(1)
a(2) = b(2) +c(2)
a(3) = b(3) +c(3)
coend;
Esta tcnica sedenomina distribucin de ciclos.
52 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
PROCESADORES
PROCESADORES
DE E / S
UNIDADES
DE MEMORIA
MECANISMO DE
INTERCONEXION
Figura~2.6: Idea simplicada dela organizacin deun multiprocesador.
( ( P + Q ) + R ) + S ( P + Q ) + ( R + S )
1 2 3 1 2 1
P Q R S
+ 1
+ 2
+ 3
P Q R S
+ 1 + 1
+ 2
Figura~2.7: Reduccin dela altura del rbol por asociatividad.
2.13.8 Reduccin de la Altura del Arbol
Utilizando las propiedades asociativa, conmutativa y distributiva de la aritmtica, los
compiladores pueden:
1. Detectar el paralelismo implcito en expresiones algebraicas.
2. Producir un cdigo objeto para multiprocesadores que indique las operaciones que
sepueden realizar simultneamente.
3. Reordenar expresiones para quesean ms apropiadas para la computacin en para-
lelo.
Se invierten ms tiempo y recursos durante la compilacin para reducir el tiempo de
ejecucin, es decir quesebuscaoptimizacin en el momento dela compilacin paralograr
ejecucin en tiempo mnimo, lo quees aplicableespecialmentecuando los sistemas pasan
a produccin, no tanto cuando estn en desarrollo
9
.
9
Ver Figura 2.6 dela pgina 52, Figura 2.7dela pgina 52, Figura 2.8 dela pgina 53 y Figura 2.9de
la pgina 53 [7, Deitel].
2.13. MULTIPROCESAMIENTO 53
P + ( Q * R ) + S
2 1 3
( P + S ) + ( Q * R )
1 2 1
P Q R S
* 1
+ 2
+ 3
P S Q R
+ 1 * 1
+ 2
Figura~2.8: Reduccin dela altura del rbol por conmutatividad.
P * ( Q * R * S + T )
4 1 2 3
( P * Q ) * ( R * S ) + ( P * T )
1 2 1 3 1
P Q R S T
* 1
* 2
+ 3
* 4
P Q R S P T
* 1 * 1 * 1
* 2
+ 3
Figura~2.9: Reduccin dela altura del rbol por distributividad.
54 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
REGLA DE NUNCA ESPERAR: Es mejor darle a un procesador una tarea que
puede llegar a no ser utilizada, que tenerlo ocioso.
2.14 Organizacin del Hardware del Multiprocesador
El problema clave es determinar los medios de conexin de los procesadores mltiples y
los procesadores deEntrada / Salida a las unidades dealmacenamiento [7, Deitel].
Los multiprocesadores secaracterizan por los siguientes aspectos:
Un multiprocesador contiene dos o ms procesadores con capacidades aproximada-
mentecomparables.
Todoslosprocesadorescomparten el accesoaun almacenamientocomn y acanales
deEntrada / Salida, unidades decontrol y dispositivos.
Todo est controlado por un Sistema Operativo que proporciona interaccin entre
procesadores y sus programas en los niveles de trabajo, tarea, paso, archivo y ele-
mentos dedatos.
Las organizaciones ms comunes son las siguientes:
Tiempo compartido o bus comn (conductor comn).
Matriz debarras cruzadas einterruptores.
Almacenamiento deinterconexin mltiple.
2.14.1 Tiempo Compartido o Bus Comn (o Conductor Comn)
Usa un solo camino decomunicacin entretodas las unidades funcionales
10
.
El bus comn es en esencia una unidad pasiva.
Un procesador o procesador deEntrada / Salida quedeseetransferir datos debeefec-
tuar los siguientes pasos:
1. Vericar la disponibilidad del conductor y dela unidad dedestino.
2. Informar a la unidad dedestino delo queseva a hacer con los datos.
3. Iniciar la transferencia dedatos.
Las unidades receptoras deben poder reconocer qu mensajes del bus son enviados
hacia ellas y seguir y conrmar las seales decontrol recibidas dela unidad emisora.
Esunaorganizacineconmica, simpleyexibleperoconunasolavadecomunicacin,
por lo cual:
El sistema falla totalmentesi falla el bus.
10
Ver Figura 2.10 dela pgina 55 [7, Deitel].
2.15. GRADOS DE ACOPLAMIENTO EN MULTIPROCESAMIENTO 55
PROCE-
SADOR
PROCE-
SADOR
MEMORIA MEMORIA
PROC.
E / S
PROC.
E / S
BUS
MEMORIA MEMORIA
PROC.
E / S
PROC.
E / S
PROCE-
SADOR
PROCE-
SADOR
Figura~2.10: Organizacin demultiprocesador detiempo compartido debus comn.
La tasa neta de transmisiones est limitada por la tasa neta de transmisin del
conductor.
La contencin por el uso del bus en un sistema sobrecargado puede ocasionar una
seria degradacin.
2.14.2 Matriz de Barras Cruzadas e I nterruptores
En este caso existe un camino diferente para cada unidad de almacenamiento, por lo
cual las referencias a dos unidades diferentes dealmacenamiento no son bloqueantes sino
simultneas y la multiplicidad de caminos de transmisin puede proporcionar tasas de
transferencia muy altas
11
.
2.14.3 Almacenamiento de I nterconexin Mltiple
Se obtiene al sacar las lgicas de control, de conmutacin y de arbitraje de prioridades
fuera del interruptor de barras cruzadas y se las coloca en la interfaz de cada unidad de
almacenamiento
12
.
Cada unidad funcional puedeacceder a cada unidad dealmacenamiento, pero slo en
una conexin de almacenamiento especca, es decir que hay una conexin de almace-
namiento por unidad funcional.
El conexionado es ms complejo queen los otros esquemas.
Sepuederestringir el acceso a las unidades dealmacenamiento para queno todas las
unidades de procesamiento las accedan, en tal caso habr unidades de almacenamiento
privadas dedeterminados procesadores
13
.
2.15 Grados de Acoplamiento en Multiprocesamiento
Los grados de acoplamiento en multiprocesamiento pueden clasicarse de ligeramente
acoplados
14
o rgidamente acoplados
15
, segn las caractersticas que se detallan en
11
Ver Figura 2.11 dela pgina 56 [7, Deitel].
12
Ver Figura 2.12 dela pgina 56 [7, Deitel].
13
Ver Figura 2.13 dela pgina 57 [7, Deitel].
14
Ver Figura 2.14 dela pgina 58 [7, Deitel].
15
Ver Figura 2.15 dela pgina 59 [7, Deitel].
56 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
MEMORIA
0
MEMORIA
1
MEMORIA
J
PROCES.
0
PROCES.
1
PROCES.
I
PROC.
E / S 0
PROC.
E / S 1
PROC.
E / S K
Figura~2.11: Organizacin del multiprocesador por matriz debarras cruzadas einterrup-
tores.
PROCES.
0
PROCES.
1
PROCES.
2
MEMORIA
0
MEMORIA
1
MEMORIA
2
MEMORIA
3
PROCES.
E / S 0
PROCES.
E / S 1
PROCES.
E / S 2
Figura~2.12: Organizacin de multiprocesador por sistema dememoria deinterconexin
mltiple.
2.16. SISTEMA OPERATIVO DE MULTIPROCESADORES 57
PROCES.
0
PROCES.
1
MEMORIA
0
MEMORIA
1
MEMORIA
2
MEMORIA
3
PROCES.
E / S 0
PROCES.
E / S 1
Figura~2.13: Organizacin demultiprocesador por sistema de memoria de interconexin
mltiplecon memorias privadas.
la tabla 2.5dela pgina 58[7, Deitel].
2.15.1 Organizacin Maestro / Satlite
Un procesador est diseado como el maestro y los otros como satlites.
El procesador maestro es de propsito general y realiza operaciones de Entrada /
Salida y computaciones.
Los procesadores satlites slo realizan computaciones.
Los procesos limitados por computacin pueden ejecutarse con efectividad en los sa-
tlites.
Los procesos limitados por la Entrada / Salida ejecutados en los satlites generan
frecuentes llamadas deservicios al procesador maestro, pudiendo resultar inecientes.
Si falla un satlitesepierdecapacidad computacional pero el sistema no falla.
Si falla el maestro el sistema falla al no poder efectuar operaciones de Entrada /
Salida, por lo que un satlite debera asumir las funciones del maestro previo cambio de
los perifricos y reinicio del sistema.
En el multiprocesamiento simtrico todos pueden hacer Entrada / Salida.
2.16 Sistema Operativo de Multiprocesadores
Las capacidades funcionales de los Sistema Operativo de multiprogramacin y de multi-
procesadores incluyen lo siguiente:
Asignacin y administracin derecursos.
Proteccin detablas y conjuntos dedatos.
58 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
Grados deacoplamiento Descripcin
en multiprocesamiento
Ligeramenteacoplado Incluyela conexin dedos o ms sistemas
independientes por medio deun enlacede
comunicacin.
Cada sistema tienesu propio Sistema Operativo
y almacenamiento.
Los sistemas pueden funcionar
independientementey secomunican cuando
sea necesario.
Los sistemas separados pueden acceder a los
archivos delos otros eintercambiar tareas a
procesadores menos cargados.
Rgidamenteacoplado Utiliza un solo almacenamiento
compartido por varios procesadores.
Emplea un solo Sistema Operativo que
controla todos los procesadores y el
hardwaredel sistema.
Tabla 2.5: Grados deacoplamiento en multiprocesamiento.
ALMACENA-
MIENTO
ALMACENA-
MIENTO
PROCESADOR PROCESADOR
E / S E / S
ENLACE DE CO-
MUNICACIONES
Figura~2.14: Multiprocesamiento ligeramenteacoplado.
2.16. SISTEMA OPERATIVO DE MULTIPROCESADORES 59
PROCESADOR PROCESADOR
ALMACE-
NAMIENTO
E / S E / S
Figura~2.15: Multiprocesamiento rgidamenteacoplado.
Prevencin contra el interbloqueo del sistema.
Terminacin anormal.
Equilibrio decargas deEntrada / Salida.
Equilibrio decarga del procesador.
Reconguracin.
Lastresltimasson especialmenteimportantesen SistemasOperativosdemultiproce-
sadores, dondees fundamental explotar el paralelismo en el hardwarey en los programas
y hacerlo automticamente.
Las organizaciones bsicas delos Sistemas Operativos para multiprocesadores son las
siguientes:
Maestro / satlite.
Ejecutivo separado para cada procesador.
Tratamiento simtrico (o annimo) para todos los procesadores.
2.16.1 Maestro / Satlite
Es la organizacin ms fcil deimplementar.
Nologralautilizacin ptimadel hardwaredadoquesloel procesador maestropuede
ejecutar el Sistema Operativo y el procesador satlite slo puede ejecutar programas del
usuario.
Lasinterrupcionesgeneradaspor losprocesosen ejecucinenlosprocesadoressatlites
queprecisanatencindel SistemaOperativodebenser atendidaspor el procesador maestro
y por ello pueden generarselargas colas derequerimientos pendientes.
2.16.2 Ejecutivos Separados
Cada procesador tiene su propio Sistema Operativo y responde a interrupciones de los
usuarios queoperan en eseprocesador.
60 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
Existen tablas decontrol con informacin global detodoel sistema (por ejemplo, lista
deprocesadores conocidos por el Sistema Operativo) a las quesedebeacceder utilizando
exclusin mutua.
Es ms conablequela organizacin maestro / satlite.
Cada procesador controla sus propios recursos dedicados.
Lareconguracin delos dispositivos deEntrada/ Salidapuedeimplicar el cambiode
dispositivos a diferentes procesadores con distintos Sistemas Operativos.
La contencin sobrelas tablas del Sistema Operativo es mnima.
Losprocesadoresnocooperan en laejecucin deun proceso individual, quehabrsido
asignado a uno deellos.
2.16.3 Tratamiento Simtrico
Eslaorganizacinmscomplicadadeimplementar y tambinlamspoderosay conable.
El SistemaOperativoadministraungrupodeprocesadoresidnticos, dondecualquiera
puede utilizar cualquier dispositivo de Entrada / Salida y cualquiera puede referenciar a
cualquier unidad dealmacenamiento.
El Sistema Operativo precisa cdigo reentrantey exclusin mutua.
Es posibleequilibrar la carga detrabajo ms precisamentequeen las otras organiza-
ciones.
Adquieren signicativa importancia el hardwarey el softwarepara resolucin decon-
ictos.
Todos los procesadores pueden cooperar en la ejecucin deun proceso determinado.
El procesador ejecutivo es el responsable (uno slo) en un momento dado de las
tablas y funciones del sistema; as seevitan los conictos sobrela informacin global.
2.17 Rendimiento del Sistema de Multiprocesamiento
An con multiprocesamientocompletamentesimtrico, laadicin deun nuevo procesador
no har quela capacidad deejecucin del sistema aumentesegn la capacidad del nuevo
procesador, siendo las causas las siguientes:
Hay sobrecarga adicional del Sistema Operativo.
Seincrementa la contencin por recursos del sistema.
Hay retrasos del hardwareen el intercambio y en el encaminamiento delas transmi-
siones entreun nmero mayor decomponentes.
Al incrementar el nmero de procesadores n similares en un multiprocesador, el
incremento dela productividad no es lineal y tiendea disminuir cuando n crece.
2.18 Recuperacin de Errores
Una delas capacidadesms importantes delos Sistemas Operativos demultiprocesadores
esladesoportar fallasdehardwareen procesadoresindividualesy continuar su operacin.
Debeexistir el soportecorrespondienteen el Sistema Operativo.
2.19. MULTIPROCESAMIENTO SIMTRICO (MPS) 61
Las tcnicas derecuperacin deerrores incluyen los siguientes aspectos:
Los datos crticos (del sistema y de usuario) deben mantenerse en copias mltiples
y en bancos dealmacenamiento separados.
El Sistema Operativo debe ejecutar efectivamente con la conguracin mxima y
con subconjuntos antefallas.
Debehaber capacidad dedeteccin y correccin deerroresdehardwaresin interferir
con la eciencia operacional del sistema.
Sedebeutilizar la capacidad ociosa del procesador para tratar dedetectar posibles
fallos antes dequeseproduzcan.
El Sistema Operativo debedirigir un procesador operativo para quetomeel control
deun proceso queseestaba ejecutando en un procesador quefalla.
2.19 Multiprocesamiento Simtrico (MPS)
Cada procesador poseecapacidades funcionales completas.
Los dispositivos de Entrada / Salida pueden ser conectados a cada uno de los proce-
sadores
16
.
Todas las llamadas al supervisor pueden ser ejecutadas en todos los procesadores,
inclusivelas deEntrada / Salida.
Si un programa en ejecucin en un procesador pideunaoperacin deEntrada / Salida
en un dispositivo conectado a un procesador diferente, el procesador puede continuar
ejecutando el trabajoy la Entrada / Salida secoloca en una colapara su iniciacin por el
procesador apropiado.
Seconsidera procesador ejecutante al queest ejecutando un proceso determinado.
Seconsidera procesador propietario al queest conectado a los diferentes dispositivos
utilizados por el proceso.
Es ms eciente que la organizacin maestro / satlite, ya que los requerimientos de
Entrada / Salida se encolan y no sobrecargan con intercambio de contexto y a queen la
organizacin maestro / satlitelas peticiones deEntrada / Salida en el satliteprovocan
un intercambio decontexto en el maestro.
Cada procesador puedeejecutar el planicador para buscar el siguientetrabajo a eje-
cutar, de forma que un proceso determinado se ejecuta en diferentes procesadores en
distintos momentos; adems, el MPS utiliza una sola cola de trabajos y cada procesador
puedeseleccionar trabajos deella, con lo cual seequilibra la carga entrelos procesadores.
Paraminimizar lacontencinenel despachodeprocesos, losrelojesdelosprocesadores
tienen oblicuidad, debidoaellolasinterrupcionesdereloj ocurrenendiferentesmomentos.
2.20 Tendencias de los Multiprocesadores
Todo indica queel uso delos multiprocesadores seincrementar considerablementeen el
futuro [7, Deitel].
16
Ver Figura 2.16 dela pgina 62 [7, Deitel].
62 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
E / S
PROCESADOR
MEMORIA PROCESADOR PROCESADOR E / S E / S
PROCESADOR
E / S
Figura~2.16: Ejemplo deimplementacin demultiprocesamiento simtrico.
2.20. TENDENCIAS DE LOS MULTIPROCESADORES 63
Las principales razones son las siguientes:
La conabilidad requerida es cada vez mayor.
La reduccin decostos consecuencia delos avances en microelectrnica.
El previsibledesarrollo delenguajes quepermitan a los usuarios expresar el parale-
lismo explcitamente.
El progreso en la deteccin automtica del paralelismo .
El hecho dequeseestara llegando a los lmites del uniprocesador debido a la com-
pactacin decomponentes, es decir queseestara prximo a los lmites delongitud
y de proximidad de los caminos electromagnticos (longitud del recorrido de la
seal electromagntica); alcanzados los lmites mencionados, la nica posibilidad de
incrementar capacidad decmputo es mediantemultiprocesamiento.
Existen estudios de tendencias en arquitectura de computadoras que apuntan a los
poliprocesadores, es decir, sistemas quecombinan el multiprocesamiento, simtrico y asi-
mtrico, para crear una jerarqua deprocesadores dentro deun sistema.
64 CAPTULO 2. PROCESOS Y ADMINISTRACIN DEL PROCESADOR
Captulo 3
Administracin de la Memoria
3.1 I ntroduccin al Almacenamiento Real
Laorganizacin y administracin delamemoria principal , memoria primaria ome-
moria real de un sistema ha sido y es uno de los factores ms importantes en el diseo
delos S. O. [7, Deitel].
Los trminos memoria y almacenamiento seconsideran equivalentes.
Los programas y datos deben estar en el almacenamiento principal para:
Poderlos ejecutar.
Referenciarlos directamente.
Se considera almacenamiento secundario o almacenamiento auxiliar al general-
mentesoportado en discos.
Los hechos demuestran que generalmente los programas crecen en requerimientos de
memoria tan rpido como las memorias:
Ley de Parkinson parafraseada: Los programas se desarrollan para ocupar toda
la memoria disponiblepara ellos.
Lapartedel S. O. queadministralamemoriasellamaadministrador dela memoria:
Lleva un registro delas partes dememoria queseestn utilizandoy deaquellas que
no.
Asigna espacio en memoria a los procesos cuando estos la necesitan.
Libera espacio dememoria asignada a procesos quehan terminado.
3.2 Organizacin y Administracin del Almacenamiento
3.2.1 Organizacin del Almacenamiento
Histricamente el almacenamiento principal se ha considerado como un recurso costoso,
por lo cual su utilizacin deba optimizarse[7, Deitel].
65
66 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
Por organizacin del almacenamiento se entiende la manera de considerar este alma-
cenamiento:
secoloca un solo programa deusuario o varios ?.
Si seencuentran varios programas deusuario:
seconcedea cada uno la misma cantidad deespacio o sedivideel almacena-
miento en porciones o particiones dediferentetamao ?.
se utilizar un esquema rgido de nmero y tamao de particiones o un es-
quema dinmico y adaptable?.
se requerir que los trabajos de los usuarios sean diseados para funcionar
en una particin especca o sepermitir queseejecuten en cualquiera donde
quepan ?.
se requerir o no que cada trabajo sea colocado en un bloque contiguo de
memoria ?.
3.2.2 Administracin del Almacenamiento
Independientemente del esquema de organizacin hay que decidir las estrategias que se
utilizarn para optimizar el rendimiento.
Las estrategias de administracin deben considerar:
cundo seconsigueun nuevo programa para colocar en la memoria ?:
cuando el sistema lo pide especcamenteo seintenta anticiparsea las peti-
ciones ?.
dndesecolocar el programa queseejecutar a continuacin ?:
sepriorizael tiempodecargao la optimizacin en el usodel almacenamiento
?.
con qucriterio sedesplazarn programas ?.
3.3 J erarqua de Almacenamiento
Los programas y datos tienen que estar en la memoria principal para poder ejecutarse o
ser referenciados [7, Deitel].
Los programas y datos que no son necesarios de inmediato pueden mantenerse en el
almacenamiento secundario.
El almacenamiento principal es ms costoso y menor queel secundario pero deacceso
ms rpido.
Los sistemas con varios niveles de almacenamiento requieren destinar recursos para
administrar el movimiento deprogramas y datos entreniveles
1
.
Unnivel adicional esel cach omemoria de alta velocidad, queposeelassiguien-
tes caractersticas:
1
Ver Figura 3.1 dela pgina 67 [7, Deitel].
3.4. ESTRATEGIAS DE ADMINISTRACIN DEL ALMACENAMIENTO 67
ALMACENAMIENTO
CACHE
ALMACENAMIENTO
PRIMARIO
ALMACENAMIENTO
SECUNDARIO
EL TIEMPO DE ACCESO
AL ALMACENAMIENTO
DECRECE
LA VELOCIDAD DE
ACCESO AL ALMACENA-
MIENTO AUMENTA
EL COSTO DE ALMACE-
NAMIENTOPOR BIT
AUMENTA
LA CAPACIDAD DE AL-
MACENAMIENTO
DECRECE
LA CPU PUEDE
HACERREFEREN-
CIA DIRECTA A
LOS PROGRAMAS
Y DATOS
LA CPU SOLO
PODRA HACER
REFEREN-
CIA A LOS
PROGRA-
MAS Y DA-
TOS LUEGO
DE HABER
SIDO TRASLA-
DADOS AL ALMA-
CENAMIENTO
PRIMARIO
Figura~3.1: Organizacin jerrquica del almacenamiento.
Es ms rpida y costosa quela memoria principal.
Imponeal sistema un nivel ms detraspaso:
Los programas son traspasados de la memoria principal al cach antes de su
ejecucin.
Los programas en la memoria cachejecutan mucho ms rpido queen la memoria
principal.
Al utilizar memoria cachseespera que:
La sobrecarga quesuponeel traspaso de programas de un nivel de memoria a
otro sea mucho menor quela mejora en el rendimiento obtenida por la posibi-
lidad deuna ejecucin mucho ms rpida en la cach.
3.4 Estrategias de Administracin del Almacenamiento
Estn dirigidas a la obtencin del mejor uso posibledel recurso del almacenamiento prin-
cipal [7, Deitel].
Sedividen en las siguientes categoras:
Estrategias debsqueda:
Estrategias debsqueda por demanda.
68 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
Estrategias debsqueda anticipada.
Estrategias decolocacin.
Estrategias dereposicin.
Las estrategias de bsqueda estn relacionadas con el hecho de cundo obtener el
siguientefragmento deprograma o dedatos para su insercin en la memoria principal.
En labsqueda por demanda el siguientefragmentodeprogramaodedatossecarga
al almacenamiento principal cuando algn programa en ejecucin lo referencia.
Se considera que la bsqueda anticipada puede producir un mejor rendimiento del
sistema.
Lasestrategias decolocacin estn relacionadascon la determinacin del lugar dela
memoria dondesecolocar (cargar) un programa nuevo.
Las estrategias de reposicin estn relacionadas con la determinacin de qu frag-
mento deprograma o dedatos desplazar para dar lugar a los programas nuevos.
3.4.1 Asignacin Contigua de Almacenamiento Versus No Contigua
En la asignacin contigua cada programa ocupa un bloquecontiguo y sencillo deloca-
lizaciones dealmacenamiento.
En laasignacin no contigua unprogramasedivideen variosbloquesosegmentos
quepueden almacenarseen direcciones queno tienen queser necesariamenteadyacentes,
por lo quees ms compleja pero ms ecientequela asignacin continua.
3.4.2 Asignacin Contigua de Almacenamiento de Un Solo Usuario
Seconsideran S. O. queyaposeendesarrolladoel sistema decontrol deentrada / salida:
IOCS: input / output control system
2
.
El tamao delos programas est limitado por la cantidad dememoria principal, pero
sepuedesuperar estelmitecon tcnicas derecubrimientos, con las siguientes caracte-
rsticas:
3
Si una seccin particular del programa ya no es necesaria, se carga otra seccin
desde el almacenamiento secundario ocupando las reas de memoria liberadas por
la seccin queya no senecesita.
Laadministracin manual por programadel recubrimientoescomplicaday diculta
el desarrollo y el mantenimiento.
Proteccin en los sistemas de un solo usuario
El usuario tieneun completo control sobrela totalidad del almacenamiento principal:
El almacenamiento se divide en porciones que contienen el S. O., el programa del
usuario y una porcin sin usar.
2
Ver Figura 3.2 dela pgina 69 [7, Deitel].
3
Ver Figura 3.3 dela pgina 70 [7, Deitel].
3.4. ESTRATEGIAS DE ADMINISTRACIN DEL ALMACENAMIENTO 69
SISTEMA
OPERATIVO
0
A
B
C
USUARIO
SIN USAR
Figura~3.2: Asignacin contigua dealmacenamiento deun solo usuario.
El programa del usuario podra destruir reas del S. O. quepodran:
Detener el sistema.
Producir salidas errneas.
El S. O. debeestar protegido contra el proceso usuario:
La proteccin seinstrumenta mediante un registro de lmites incorporado a
la cpu:
Contienela direccin dela instruccin ms alta utilizada por el S. O.
Si se intenta ingresar al S. O. la instruccin es interceptada y el proceso
naliza.
Procesamiento por lotes de ujo nico
Los sistemas de un solo usuario sededican a un trabajo durantems tiempo del que
toma su ejecucin.
Los trabajos requieren de:
tiempo de instalacin: el necesario para preparar el entorno operativo requerido.
tiempo de descarga: el necesario para desmontar el entorno operativo que fue
requerido.
Durante la instalacin y descarga de los trabajos la cpu no est ejecutando dichos
trabajos requeridos, por lo cual:
Automatizar la transicin de trabajo a trabajo reducela cantidad detiempo per-
dido entretrabajos.
Surgieron los sistemas deprocesamiento por lotes.
En el procesamiento por lotes de ujo nico los trabajos se agrupan en lotes
encolndosepara su ejecucin.
El procesador de ujos de trabajos:
70 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
SISTEMA
OPERATIVO
PORCION DEL
CODIGO Y DATOS
DEL USUARIO QUE
DEBEN PERMANECER
EN EL A. PRINCIPAL
DURANTE TODA
LA EJECUCION
AREA DE
RECUBRIMIENTO
0
A
B
C
1
2
3
PROGRAMA DEL USUARIO CON UN REQUERIMIENTO
DE ALMACENAMIENTO MAYOR QUE EL DISPONIBLE
DENTRO DEL ALMACENAMIENTO PRINCIPAL
B B B
FASE DE
INICIALIZAC
.
FASE DE
PROCESAMTO.
FASE DE
SALIDA
1 CARGA LA FASE DE INICIALIZACION EN B Y LA EJECUTA.
2 DESPUES CARGA LA FASE DE PROCESAMIENTO EN B Y LA EJECUTA.
3 DESPUES CARGA LA FASE DE SALIDA EN B Y LA EJECUTA.
Figura~3.3: Estructura derecubrimiento tpica.
Leelas instrucciones del lenguaje de control de trabajos.
Facilita la preparacin del trabajo siguiente.
Emiteinstrucciones al operador del sistema.
Automatiza funciones anteriormentemanuales.
Cuando naliza un trabajo efecta las operaciones de mantenimiento apropiadas
para facilitar la transicin del siguientetrabajo.
3.5 Multiprogramacin de Particin Fija
Los sistemas de un solo usuario desperdician gran cantidad de recursos computacionales
debido a que[7, Deitel]:
4
Cuando ocurre una peticin de e / s la cpu normalmente no puede continuar el
proceso hasta queconcluya la operacin dee/ s requerida.
Los perifricos dee/ sfrenan la ejecucin delos procesos ya quecomparativamente
la cpu es varios rdenes demagnitud ms rpida quelos dispositivos dee/ s.
Los sistemas demultiprogramacin permiten quevarios procesos usuarios compitan
al mismo tiempo por los recursos del sistema:
4
Ver Figura 3.4 dela pgina 71 [7, Deitel].
3.5. MULTIPROGRAMACIN DE PARTICIN FIJ A 71
PARA UN USUARIO QUE REALIZA CALCULOS INTENSIVOS:
EL AREA OSCURA INDICA CPU EN USO
PARA UN USUARIO QUE REALIZA OPERACIONES REGULARES DE E / S:
USO DE CPU ESPERA LA TERMINACION DE LA OPERACION DE E / S
NOTA: FRECUENTEMENTE LA LONGITUD DE LAS ESPERAS DE E / S ES MAS GRANDE
EN RELACION CON LA LONGITUD DE LOS PERIODOS DE UTILIZACION DE LA CPU DE
LO QUE INDICA ESTE DIAGRAMA. SE DEBE A LA RELACION DE VELOCIDADES ENTRE
LA CPU Y LOS DISPOSITIVOS DE E / S.
Figura~3.4: Utilizacin dela cpu en un sistema deun solo usuario.
Un trabajoen esperadee/ scederlacpuaotrotrabajoqueestlistoparaefectuar
cmputos.
Existeparalelismo entreel procesamiento y la e/ s.
Seincrementalautilizacin delacpu y lacapacidad global deejecucin del sistema.
Es necesario quevarios trabajos residan a la vez en la memoria principal.
3.5.1 Multiprogramacin de Particin Fija: Traduccin y Carga Abso-
lutas
Las particiones del almacenamiento principal:
Son detamao jo.
Alojan un proceso cada una.
La cpu se cambia rpidamente entre los procesos creando la ilusin de simulta-
neidad.
Los trabajos setraducan con ensambladores y compiladores absolutos para ser ejecu-
tados solo dentro deuna particin especca.
5
El S. O. resulta deimplementacin relativamentesencilla pero no seoptimiza la utili-
zacin de la memoria.
5
Ver Figura 3.5 dela pgina 72 [7, Deitel].
72 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
SISTEMA
OPERATIVO
PARTICION 1
PARTICION 2
PARTICION 3
0
A
B
C
D
COLA DE TRAB. P / LA PARTICION 1
COLA DE TRAB. P / LA PARTICION 2
COLA DE TRAB. P / LA PARTICION 3
SOLO EJECUTAN
EN PARTICION 1
SOLO EJECUTAN
EN PARTICION 2
SOLO EJECUTAN
EN PARTICION 3
Figura~3.5: Multiprogramacin departicin ja con traduccin y carga absolutas.
SISTEMA
OPERATIVO
PARTICION 1
PARTICION 2
PARTICION 3
COLA DE TRABAJOS
0
A
B
C
D
LOS TRABAJOS PUEDEN SER
COLOCADOS DENTRO DE CUALQUIER
PARTICION DISPONIBLE EN LA QUE QUEPAN
Figura~3.6: Multiprogramacin departicin ja con traduccin y carga relocalizables.
3.5.2 Multiprogramacin de Particin Fija: Traduccin y Carga Relo-
calizables
Los compiladores, ensambladores y cargadores derelocalizacin:
Seusan para producir programas relocalizables quepuedan ser ejecutados en cual-
quier particin disponibledetamao sucientepara aceptarlos.
6
Son ms complejos quelos absolutos.
Mejoran la utilizacin del almacenamiento.
Coneren ms exibilidad en el armado dela carga deprocesos.
6
Ver Figura 3.6 dela pgina 72 [7, Deitel].
3.5. MULTIPROGRAMACIN DE PARTICIN FIJ A 73
SISTEMA
OPERATIVO
USUARIO
SIN USAR
0
A
B
C
CPU
A
REGISTRO DE
LIMITES
TODAS LAS DIRECCIONES DESARROLLADAS POR EL
PROGRAMA DEL USUARIO SON VERIFICADAS PARA
ASEGURAR QUE NO SON MENORES QUE A.
Figura~3.7: Proteccin del almacenamientocon asignacin contiguadeun soloprocesode
usuario.
SISTEMA
OPERATIVO
PARTICION 1
PARTICION 2
PARTICION 3
0
A
B
C
D
CPU
2
USUARIO
ACTIVO
ACTUAL
B
C
LIMITE INFERIOR
LIMITE SUPERIOR
Figura~3.8: Proteccin del almacenamiento con asignacin contigua en sistemas de mul-
tiprogramacin.
3.5.3 Proteccin en los Sistemas de Multiprogramacin
Si seutiliza asignacin contigua dememoria la proteccin sueleimplementarsecon varios
registros de lmites.
7
Los extremos superior einferior deuna particin pueden ser:
Delineados con dos registros.
Indicados el lmiteinferior o superior y el tamao dela particin o regin.
3.5.4 Fragmentacin en la Multiprogramacin de Particin Fija
La fragmentacin de almacenamiento ocurreen todos los sistemas independientemente
desu organizacin dememoria.
EnlosS. O. demultiprogramacindeparticinjalafragmentacinseproducecuando:
7
Ver Figura 3.7 dela pgina 73 y Figura 3.8 dela pgina 73 [7, Deitel].
74 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
Los trabajos del usuario no llenan completamentesus particiones designadas.
Una particin permanece sin usar porque es demasiado pequea para alojar un
trabajo queest en espera.
3.6 Multiprogramacin de Particin Variable
Los procesos ocupan tanto espacio como necesitan, pero obviamenteno deben superar el
espacio disponibledememoria [7, Deitel].
8
No hay lmites jos de memoria, es decir que la particin de un trabajo es su propio
tamao.
Seconsideran esquemas deasignacin contigua, dadoqueun programadebeocupar
posiciones adyacentes dealmacenamiento.
Los procesos que terminan dejan disponibles espacios de memoria principal llamados
agujeros:
Pueden ser usados por otros trabajos que cuando nalizan dejan otros agujeros
menores.
En sucesivos pasos los agujeros son cada vez ms numerosos pero ms pequeos,
por lo quesegenera un desperdicio dememoria principal.
Combinacin de agujeros (reas libres)
Consisteen fusionar agujeros adyacentes para formar uno sencillo ms grande.
Sepuedehacer cuandountrabajoterminay el almacenamientoqueliberatienelmites
con otros agujeros.
3.6.1 Compresin o Compactacin de Almacenamiento
Puedeocurrir quelos agujeros (reas libres) separados distribuidos por todo el almacena-
miento principal constituyan una cantidad importantedememoria:
Podra ser suciente(el total global disponible) para alojar a procesos encolados en
espera dememoria.
Podra no ser sucienteningn rea libreindividual.
9
La tcnica de compresin de memoria implica pasar todas las reas ocupadas del
almacenamiento a uno delos extremos dela memoria principal:
Deja un solo agujero grandedememoria librecontigua.
Esta tcnica sedenomina recogida de residuos.
10
Principales desventajas de la compresin
Consumerecursos del sistema.
11
8
Ver Figura 3.9 dela pgina 75 [7, Deitel].
9
Ver Figura 3.10 dela pgina 75 [7, Deitel].
10
Ver Figura 3.11 dela pgina 76 [7, Deitel].
11
Ver Figura 3.12 dela pgina 76 [7, Deitel].
3.6. MULTIPROGRAMACIN DE PARTICIN VARIABLE 75
USUARIO F NECESITA 1400 K
USUARIO E NECESITA 3200 K
USUARIO D NECESITA 2500 K
USUARIO C NECESITA 1000 K
USUARIO B NECESITA 2000 K
USUARIO A NECESITA 1500 K
SIST. OPER.
USUARIO A
LIBRE
SIST. OPER.
USUARIO A
USUARIO B
LIBRE
SIST. OPER.
USUARIO A
USUARIO B
USUARIO C
LIBRE
SIST. OPER.
USUARIO A
USUARIO B
USUARIO C
USUARIO D
LIBRE
Figura~3.9: Asignacin departiciones iniciales en la multiprogramacin de particin va-
riable.
SISTEMA
OPERATIVO
USUARIO A
USUARIO B
USUARIO C
USUARIO D
USUARIO E
AGUJERO
SISTEMA
OPERATIVO
USUARIO A
AGUJERO
USUARIO C
USUARIO D
USUARIO E
AGUJERO
US. B
TERMINA
SISTEMA
OPERATIVO
USUARIO A
AGUJERO
USUARIO C
AGUJERO
USUARIO E
AGUJERO
US. D
TERMIN
A
Figura~3.10: Agujerosdel almacenamientoen lamultiprogramacin departicin variable.
76 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
SIST. OPERAT.
OTROS
USUARIOS
AGUJERO DE
200 K
USUARIO A
DE 500 K
OTROS
USUARIOS
SIST. OPERAT.
OTROS
USUARIOS
AGUJERO DE
200 K
AGUJERO DE
500 K
OTROS
USUARIOS
EL US. A
TERMINA
SIST. OPERAT.
OTROS
USUARIOS
AGUJERO DE
700 K
OTROS
USUARIOS
EL S. O.
COMBINA LOS
AGUJEROS
ADYACENTES
FORMANDO
UNO SENCILLO
MAS GRANDE
Figura~3.11: Combinacin deagujeros adyacentes dealmacenamiento en la multiprogra-
macin departicin variable.
SIST. OPERAT.
EN USO
LIBRE
EN USO
LIBRE
EN USO
LIBRE
SIST. OPERAT.
EN USO
EN USO
EN USO
LIBRE
EL S. O. COLOCA TODOS LOS BLOQUES EN USO JUNTOS,
DEJANDO EL ALMACENAMIENTO LIBRE COMO UN UNICO
AGUJERO GRANDE.
Figura~3.12: Compresin (compactacin) del almacenamiento en la multiprogramacin
departicin variable.
3.7. MULTIPROGRAMACIN CON INTERCAMBIO DE ALMACENAMIENTO 77
El sistema debedetener todo mientras efecta la compresin, lo quepuedeafectar los
tiempos derespuesta.
Implicalarelocalizacin(reubicacin) delosprocesosqueseencuentranenlamemoria:
La informacin derelocalizacin debeser deaccesibilidad inmediata.
Una alta carga de trabajo signica mayor frecuencia de compresin que incrementa el
uso de recursos.
3.6.2 Estrategias de Colocacin del Almacenamiento
Seutilizan para determinar el lugar de la memoria dondesern colocados los programas
y datos quevan llegando y selas clasica dela siguientemanera:
Estrategia de mejor ajuste:
Un trabajo nuevo es colocado en el agujero en el cual quepa de forma ms
ajustada:
Debedejarseel menor espacio sin usar.
Estrategia de primer ajuste:
Un trabajo nuevo es colocado en el primer agujero disponiblecon tamao su-
cientepara alojarlo.
Estrategia de peor ajuste:
Consiste en colocar un programa en el agujero en el que quepa de la peor
manera, es decir en el ms grandeposible:
El agujero restante es tambin grande para poder alojar a un nuevo pro-
grama relativamentegrande.
3.7 Multiprogramacin con I ntercambio de Almacenamien-
to
En el esquema deintercambio los programas del usuario no requieren permanecer en la
memoria principal hasta su terminacin [7, Deitel].
Una varianteconsisteen queun trabajo seejecuta hasta queya no puedecontinuar:
Cedeel almacenamiento y la cpu al siguientetrabajo.
La totalidad del almacenamiento se dedica a un trabajo durante un breve perodo
detiempo.
Lostrabajosson intercambiados, dndosequeun trabajopuedeser intercambiado
varias veces antes dellegar a su terminacin.
78 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
Esunesquemarazonableyecienteparaunnmerorelativamentereducidodeprocesos
deusuarios.
Los sistemas de intercambio fueron los predecesores de los sistemas de paginacin.
El rendimiento delos sistemas deintercambio mejora al reducir el tiempo de inter-
cambio:
Manteniendoal mismotiempovariasimgenes deusuarioo imgenes dememoria
en la memoria principal.
Retirando una imagen deusuario dela memoria principal solo cuando es necesario
su almacenamiento para una nueva imagen.
Incrementando la cantidad dememoria principal disponibleen el sistema.
Lasimgenesdeusuario(imgenesdememoria) retiradasdel almacenamientoprincipal
segraban en el almacenamiento secundario (discos).
3.8 I ntroduccin ala Organizacin del Almacenamiento Vir-
tual
Almacenamiento virtual signica la capacidad de direccionar un espacio de almacena-
miento mucho mayor que el disponible en el almacenamiento primario de determinado
sistema de computacin [7, Deitel].
Esta tecnologa apareci en 1960 en la Universidad de Manchester (Inglaterra), en el
sistema Atlas.
Los mtodos ms comunes deimplementacin son mediante:
Tcnicas depaginacin.
Tcnicas desegmentacin.
Una combinacin deambas tcnicas.
Las direcciones generadas por los programas en su ejecucin no son, necesariamente,
aquellascontenidasenel almacenamientoprimario(memoriareal), yaquelasdirecciones
virtuales suelen seleccionarse dentro deun nmero mucho mayor dedirecciones quelas
disponibles dentro del almacenamiento primario.
La evolucin en las organizaciones de almacenamiento puede resumirse como
sigue:
Real:
Sistemas dedicados a un solo usuario.
Real:
Sistemas demultiprogramacin en memoria real:
Multiprogramacin en particin ja:
3.9. CONCEPTOS BSICOS DE ALMACENAMIENTO VIRTUAL 79
Absoluta.
Relocalizable(reubicable).
Multiprogramacin en particin variable.
Virtual:
Multiprogramacin en almacenamiento virtual:
Paginacin pura.
Segmentacin pura.
Combinacin paginacin / segmentacin.
3.9 Conceptos Bsicos de Almacenamiento Virtual
La clavedel concepto dememoria (almacenamiento) virtual esta en la disociacin:
Delas direcciones a las quehacereferencia un programa.
Delas direcciones disponibles en la memoria real (almacenamiento primario).
Los principales conceptos son los siguientes:
Direcciones virtuales:
Son las referidas por un proceso en ejecucin.
Direcciones reales:
Son las disponibles dentro del almacenamiento primario.
Espacio de direcciones virtuales (v) deun proceso:
Es el nmero dedirecciones virtuales a quepuedehacer referencia el proceso.
Espacio de direcciones reales (r) deun computador:
Es el nmero dedirecciones reales disponibles en el ordenador.
Los procesos hacen referencia a direcciones virtuales pero stas deben ejecutarseen el
almacenamiento real:
Las direcciones virtuales deben ser transformadas dentro de las direcciones reales,
mientras el proceso est en ejecucin.
La traduccin de direcciones deber hacerserpidamentepara no degradar al siste-
ma.
80 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
ALMACENAM. VIRTUAL ALMACENAM. REAL
Figura~3.13: Transformacin de tems del espacio de direcciones virtuales al espacio de
direcciones reales.
Existen varios medios para asociar las direcciones virtuales con las reales.
12
Losmecanismosdetraduccin dinmica dedirecciones (dat) convierten lasdireccio-
nes virtuales en reales al ejecutarseel proceso.
Las direcciones contiguas dentro del espacio dedirecciones virtuales deun proceso no
tienen por qu ser contiguas dentro del almacenamiento real, a esto se denomina con-
tigidad articial .
13
3.10 Organizacin del Almacenamiento de Niveles Mlti-
ples
Se deben proporcionar los medios para retener programas y datos en un gran almacena-
miento auxiliar para:
Permitir queel espaciodedireccionesvirtuales deunusuarioseamayor queel espacio
dedirecciones reales.
Soportar multiprogramacin de forma efectiva en un sistema con muchos usuarios
quecompartan el almacenamiento real.
Seutiliza un esquema dealmacenamiento dedos niveles:
14
Primer nivel: almacenamiento real :
En l seejecutan losprocesos y en l deben estar losdatosparaqueun proceso
pueda referirsea ellos.
12
Ver Figura 3.13 dela pgina 80 [7, Deitel].
13
Ver Figura 3.14 dela pgina 81 [7, Deitel].
14
Ver Figura 3.15 dela pgina 82 [7, Deitel].
3.11. TRANSFORMACIN DE BLOQUES 81
ALMACENAM. VIRTUAL ALMACENAM.
REAL
MECANISMO DE
TRANSFORMACION
DE DIRECCIONES
LOCALIZA-
CIONES
CONTI-
GUAS DE
ALMA-
CENA-
MIENTO
VIRTUAL
Figura~3.14: Contigidad articial.
Segundo nivel: almacenamiento auxiliar, secundario o adicional:
Generalmente consta de discos de gran capacidad que pueden mantener los
programas y datos queno caben al mismo tiempo en el ms limitado almace-
namiento real.
Cuando se va a ejecutar un proceso su cdigo y datos se pasan al almacenamiento
principal.
El almacenamiento real es compartido por varios procesos:
Cada proceso puede tener un espacio de direcciones virtuales mucho mayor que el
almacenamiento real.
Solo se mantiene al mismo tiempo una pequea parte de los programas y datos de
cada proceso en el almacenamiento real.
3.11 Transformacin de Bloques
Losmecanismosdetraduccin dinmicadedireccionesdeben mantener mapas queilus-
tren qudirecciones del almacenamiento virtual seencuentran en el almacenamiento real
y dndeseencuentran [7, Deitel].
La informacin seagrupa en bloques:
82 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
PROCESA-
DORES
ALMACENAM.
REAL
ALMACENAM. PRINCIPAL,
PRIMARIO O REAL
DISCOS
OTROS
DISPOSIT.
ALMACENAM. SECUNDARIO,
AUXILIAR O ADICIONAL
ALMACENAMIENTO AUXILIAR
ALMACENAMIENTO
VIRTUAL DEL PROC. A
EL ALMACENAMIENTO VIRTUAL DE UN PROCESO
NO NECESITA SER CONTIGUO NI SIQUIERA EN EL
ALMACENAMIENTO SECUNDARIO
ALMACENAMIENTO
VIRTUAL DEL PROC. B
ALMACENAMIENTO
VIRTUAL DEL PROC. Z
ALMACENAMIENTO REAL
Figura~3.15: Almacenamiento dedos niveles.
3.11. TRANSFORMACIN DE BLOQUES 83
El sistema est informado del lugar del almacenamiento real dondehan sido coloca-
dos los bloques dealmacenamiento virtual.
Cuantomayor seael bloquemenor serlafraccin del almacenamientoreal quedebe
dedicarsea contener la informacin del mapa.
Con bloques grandes:
Sereducela sobrecarga dealmacenamiento del mecanismo detransformacin.
Seincrementa el tiempodetransferencia entrelosalmacenamientossecundario
y primario.
Consumen ms almacenamiento real pudiendo limitar el nmero de procesos
quepueden compartirlo.
Los bloques pueden ser detamao:
I gual : se denominan pginas y la organizacin de almacenamiento virtual
asociada sedenomina paginacin.
Diferente: se denominan segmentos y la organizacin de almacenamiento
virtual asociada sedenomina segmentacin.
Se pueden combinar ambas tcnicas: segmentos de tamao variable compuestos de
pginas detamao jo.
Las direccionesson bidimensionales, es decir queunadireccin virtual v seindica
por un par ordenado (b,d), donde:
b: nmero del bloquedondereside.
d: desplazamiento a partir del inicio del bloque.
La traduccin deuna direccin virtual v =(b,d) a la direccin real r considera lo
siguiente:
15
Cada proceso tiene su tabla de mapa de bloques mantenida por el sistema en el
almacenamiento real.
Un registro especial del procesador llamado registro origen de la tabla de bloques
secarga con la direccin real a dela tabla demapa debloques:
Contieneuna entrada para cada bloquedel proceso.
Las entradas semantienen en orden secuencial para el bloque0, bloque1, etc.
Seaadeel bloquenmerob a la direccin basea delatabladebloques
para formar la direccin real de la entrada de la tabla de mapa de bloques
para el bloqueb:
Contienela direccin real b para el bloqueb.
15
Ver Figura 3.16 dela pgina 84 y Figura 3.17 dela pgina 85 [7, Deitel].
84 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
BLOQUE N B DESPLAZAM. D
DIRECCION
VIRTUAL
V = ( B,D)
Figura~3.16: Formato dela direccin virtual dentro deun sistema de transformacin de
bloques.
El desplazamiento d seaadea la direccin deinicio del bloque, b ,
para formar la direccin real deseada: r = b + d.
La transformacin de bloques se efecta en forma dinmica mientras se ejecuta un
proceso, por lo cual, si la implementacin no es eciente, su sobrecarga puedecausar una
degradacin del rendimientoquepodraeliminar en partelasventajasdelautilizacin del
almacenamiento virtual.
3.12 Conceptos Bsicos de Paginacin
Frecuentementesediferencia entrela paginacin pura y la combinacin depaginacin
y segmentacin [7, Deitel].
Las pginas se transeren del almacenamiento secundario al primario en bloques lla-
mados marcos de pginas:
Tienen el mismo tamao quelas pginas.
Comienzan en direcciones del almacenamiento real que son mltiplos enteros del
tamao jo dela pgina.
Podr colocarse una nueva pgina dentro de cualquier marco de pgina o celda
de pgina disponible.
La traduccin dinmica de direcciones incluye:
Un proceso en ejecucin hacereferencia a una direccin virtual v =(p,d).
16
Un mecanismo de transformacin de pginas busca la pgina p en la tabla de
pginas y determina si la pgina p seencuentra en el marco depgina p .
La direccin dealmacenamiento real seforma por la concatenacin dep y d.
Latablademapa depginas debeindicar si seencuentraonoen el almacenamiento
primario la pgina referenciada:
En caso armativo dndeest en la memoria real.
En caso negativo dndepuedeestar en el almacenamiento secundario.
16
Ver Figura 3.18 dela pgina 86 [7, Deitel].
3.12. CONCEPTOS BSICOS DE PAGINACIN 85
A
REGISTRO DE ORIGEN DE LA TABLA DE BLOQUES, QUE CONTIENE
LA DIRECCION BASE DE LA TABLA DE MAPA DE BLOQUES
+
A + B
B D
N DE BLOQUE DESPLAZAMIENTO
DIRECCION
VIRTUAL
V = (B,D)
A
TABLA DE MAPA
DE BLOQUES
DIRECCION
DE ESTE
BLOQUE
DENTRO DEL
ALMACENA-
MIENTO
REAL
LONGITUD
L B
B
+
B
D
R
DIRECCION REAL
R = B + D
A
B
Figura~3.17: Traduccin dedirecciones virtuales con transformacin debloques.
86 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
PAGINA N P DESPLAZAMIENTO D
DIRECCION
VIRTUAL
V = (P,D)
Figura~3.18: Formato dela direccin virtual en un sistema depaginacin pura.
MARCO DE PAG. 0
0
MARCO DE PAG. 1
MARCO DE PAG. 2
MARCO DE PAG. 3
MARCO DE PAG. 4
P
2P
3P
4P
MARCO DE PAG. 5
5P
MARCO DE PAG. 6
6P
MARCO DE PAG. 7
7P
N DE
PAGINA
TAMAO DE
PAGINA
N DE DIRECCIONES DE
ALMACENAMIENTO REAL
0
1
2
3
4
5
6
7
.
.
.
.
P
P
P
P
P
P
P
P
0 --> P - 1
P --> 2P - 1
2P --> 3P - 1
3P --> 4P - 1
4P --> 5P - 1
5P --> 6P - 1
6P --> 7P - 1
7P --> 8P - 1
Figura~3.19: Almacenamiento real dividido en marcos depginas.
La direccin dealmacenamiento primario a, dondecomienza el marco depagina p
(suponiendo un tamao de pgina p), est dada por: a = (p) (p ); se supone
marcos depgina numerados 0, 1, 2, etc.
17
3.12.1 Traduccin de Direcciones de Paginacin por Transformacin Di-
recta
Un proceso en ejecucin hacereferencia a la direccin virtual v = (p,d).
Antes que un proceso comience su ejecucin, el S. O. carga la direccin de almace-
namiento primario de la tabla de mapa de pginas en el registro origen de la tabla de
mapa de pginas.
18
La direccin basedela tabla demapa depginas es b.
El nmero depgina es p.
La direccin en el almacenamiento primario de la entrada en la tabla de mapa de
pginas para la pgina p es b+ p:
17
Ver Figura 3.19 dela pgina 86, Figura 3.20dela pgina 87 y Figura 3.21 dela pgina 88 [7, Deitel].
18
Ver Figura 3.22 dela pgina 89 [7, Deitel].
3.12. CONCEPTOS BSICOS DE PAGINACIN 87
R S P
BIT DE
RESIDENCIA
DE PAGINA
DIRECCION DE ALMACENA-
MIENTO SECUNDARIO
(SI LA PAGINA NO ESTA EN EL
ALMACENAMIENTO REAL)
N DEL MARCO DE PAGINA
(SI LA PAGINA ESTA EN EL
ALMACENAMIENTO REAL)
R = 0 SI LA PAGINA NO ESTA EN EL ALMACENAMIENTO REAL
R = 1 SI LA PAGINA ESTA EN EL ALMACENAMIENTO REAL
Figura~3.20: Una entrada en la tabla demapa depginas.
Indica queel marco depgina p correspondea la pgina virtual.
p seconcatena con el desplazamiento d par formar la direccin real r.
Estoes un ejemplodetransformacin directadebidoaquelatablademapadepginas
contiene una entrada por cada una de las pginas del almacenamiento virtual de este
proceso.
Ladireccin virtual queseesttraduciendoy la direccin basedelatablademapade
pginas son mantenidas en un registro dealta velocidad del control del procesador.
Latabla demapa depginas transformada directamentesuelemantenerseen el alma-
cenamiento primario:
Lasreferenciasaestatablarequierenunciclocompletodealmacenamientoprimario,
quegeneralmentees la partems larga deun ciclo deejecucin deinstrucciones.
Serequiereotro ciclo deejecucin dealmacenamiento primario para la transforma-
cin de pginas, lo que puede ocasionar degradacin equivalente a un 50%, para lo
cual unasolucinseratener latablacompletademapadepginasdetransformacin
directa en la cach demuy alta velocidad.
3.12.2 Traduccin de Direcciones de Paginacin por Transformacin
Asociativa
Una forma de acelerar la traduccin dinmica de pginas consiste en colocar la tabla
completademapadepginasen un almacenamiento asociativo quetengaun tiempode
ciclo mucho ms rpido queel almacenamiento primario.
Una variantees la transformacin asociativa pura.
19
Un programa en ejecucin hacereferencia a la direccin virtual v = (p,d).
Cada entrada en el almacenamiento asociativo se busca de forma simultnea para la
pgina p:
19
Ver Figura 3.23 dela pgina 90 [7, Deitel].
88 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
P D
N DE PAGINA DESPLAZAMIENTO
DIRECCIONES VIRTUALES
A LAS QUE HACE
REFERENCIA UN PROCESO
EN EJECUCION
MECANISMO
DE TRANS-
FORMACION
DE PAGINAS
LA PAGINA VIRTUAL P
CORRESPONDE AL MARCO DE
PAGINA P
MARCO DE PAGINA 0
ALMACENAMIENTO REAL
MARCO DE PAGINA 1
P
MARCO DE PAGINA P
D
POSICION DEL ALMACENAMIENTO REAL
CORRESPONDIENTE A LA DIRECCION
VIRTUAL (P,D)
Figura~3.21: Correspondenciaentrelasdireccionesdealmacenamientovirtual y lasdirec-
ciones dealmacenamiento real en un sistema depaginacin.
3.12. CONCEPTOS BSICOS DE PAGINACIN 89
B
DIRECCION BASE DE LA
TABLA DE MAPA DE PAGINAS
REGISTRO
ORIGEN DE
LA TABLA
DE MAPA DE
PAGINAS
N DE PAGINA
P D
DESPLAZAMIENTO
+
B
P
B + P
DIRECCION VIRTUAL
V = (P,D)
P
B
P
TABLA DE
MAPA DE
PAGINAS
P D
DIRECCION REAL R
Figura~3.22: Traduccin dedirecciones depgina por transformacin directa.
90 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
N DE PAGINA DESPLAZAMIENTO
P D
DIRECCION VIRTUAL
V = (P,D)
MAPA
ASOCIATIVO
P P
P D
N DE MARCO DESPLAZAMIENTO
DIRECCION
REAL R
Figura~3.23: Traduccin dedirecciones depgina por transformacin asociativa pura.
Seobtienep como el marco depgina correspondientea la pgina p.
Seconcatena p con d formando la direccin real r.
Cada una de las clulas del almacenamiento asociativo se registra de manera simul-
tnea:
Hacecostoso el almacenamiento asociativo.
Implementar la transformacin asociativa pura resulta demasiado costoso, tal lo
ocurridoconlaimplementacindelatransformacindirectapurautilizandocach.
3.12.3 Traduccin de Direcciones de Paginacin por Combinacin de
Transformacin Asociativa / Directa
Se utiliza un almacenamiento asociativo capaz de mantener solo un pequeo porcentaje
del mapa completo depginas para un proceso.
20
Las entradas de pgina contenidas en este mapa reducido corresponden solo a las
pginas referenciadas recientemente:
Sepresuponequeunapginarecientementereferenciadatendrposibilidadesdeserlo
denuevo prximamente.
Los rendimientos obtenidos con este esquema de mapa asociativo parcial superan
aproximadamenteen un 100%a los rendimientos obtenidos con esquemas demapa
asociativo de pgina completo.
Un programa hacereferencia a la direccin virtual v = (p,d).
El mecanismodetraduccin dedirecciones intentaencontrar lapginap en el mapa
depgina asociativo parcial:
20
Ver Figura 3.24 dela pgina 92 [7, Deitel].
3.12. CONCEPTOS BSICOS DE PAGINACIN 91
Si p seencuentra all:
El mapaasociativodevuelvep comoel nmerodemarco depginacorres-
pondientea la pgina virtual p.
p seconcatenacon el desplazamientod paraformar ladireccin real r
quecorrespondea la direccin virtual v = (p,d).
Si p no seencuentra en el mapa depagina parcial:
Seutiliza un mapa directo convencional.
La direccin b del registro de origen de la tabla de pginas se aade a p
para localizar la entrada apropiada a la pgina p en la tabla de mapa de
pginas detransformacin directa del almacenamiento primario.
La tabla indica que p es el marco de pgina correspondiente a la pgina
virtual p.
p seconcatenacon el desplazamientod paraformar ladireccin real r
correspondientea la direccin virtual v = (p,d).
3.12.4 Compartimiento de Recursos en un Sistema de Paginacin
En sistemasmultiprogramados, especialmenteen los detiempocompartido, escomn que
ms deun usuario estn ejecutando los mismos programas:
Para optimizar el uso de la memoria real se comparten las pginas que pueden ser
compartidas:
El compartimientodebeser cuidadosamentecontroladoparaevitar queun pro-
ceso modiquedatos queotro proceso esta leyendo.
21
Los programas seencuentran divididos en reas separadas deprocedimiento
y datos.
Los procedimientos no modicables sellaman procedimientos puros reentran-
tes.
Los datos y procedimientos modicables no pueden ser compartidos.
Los datos no modicables (ej.: tablas jas) son compartibles.
Sedebeidenticar cada pgina como compartible o no.
Habr marcos (celdas) depginas compartidos por varios procesos.
El compartimiento:
Reduce la cantidad de almacenamiento primario necesario para la ejecucin ecaz
deun grupo deprocesos.
Puedehacer posiblequeun sistema determinado mantenga una cantidad mayor de
usuarios (procesos).
21
Ver Figura 3.25 dela pgina 93 [7, Deitel].
92 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
DIRECCION DE LA TABLA DE PAG. B
REGISTRO ORIGEN DE LA TABLA DE PAGINA
+
B
DIRECCION VIRTUAL V = (P,D)
N DE PAGINA P DESPLAZAM. D
P P
P
INTENTA
ESTO
PRIMERO
MAPA ASOCIATIVO PARCIAL
(SOLO LAS PAGINAS MAS ACTIVAS)
P P
MAPA DIRECTO
(TODAS LAS PAGINAS)
B
P
EJECUTADO
SOLO SI NO HAY
CORRESPON-
DENCIA EN EL
MAPA ASOCIA-
TIVO B + P
DIRECCION REAL R
N DE MARCO P DESPLAZAM. D
SOLO SI NO HAY
CORRESPONDENCIA EN
EL MAPA ASOCIATIVO
SOLO SI HAY
CORRESPONDENCIA
EN EL MAPA
ASOCIATIVO
Figura~3.24: Traduccin dedireccionesdepaginacin por combinacin detransformacin
asociativa / directa.
3.12. CONCEPTOS BSICOS DE PAGINACIN 93
TABLA DE
MAPA DEL
PROCESO A
TABLA DE
MAPA DEL
PROCESO B
TABLA DE
MAPA DEL
PROCESO M
USADO SOLO POR
EL PROCESO A
ALMACENAMIENTO REAL
PAGINA 0
COMPARTIDO POR
LOS PROCESOS A Y B
PAGINA 1
PAGINA 2
COMPARTIDO POR
LOS PROC. A, B Y M
PAGINA 3
PAGINA 4
PAGINA 5
PAGINA 6
USADO SOLO POR
EL PROCESO B
Figura~3.25: Compartimiento en un sistema depaginacin pura.
94 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
3.13 Segmentacin
En lossistemasdesegmentacin un programay susdatospueden ocupar variosbloques
separados dealmacenamiento real.
22
Los bloques:
No necesitan ser deigual tamao.
Los bloques separados no necesitan ser adyacentes.
Deben estar compuestos deposiciones contiguas dealmacenamiento.
Secomplica la proteccin debloques dememoria deun proceso deusuario.
Es ms difcil limitar el rango deacceso decualquier programa [7, Deitel].
Un esquema posibledeproteccin es el uso declaves deproteccin del almacenamien-
to:
23
Las claves estn bajo el control estricto del S. O.
Un programa deusuario, a quien correspondeuna cierta claveen la cpu, solo puede
hacer referenciaalosotrosbloquesdel almacenamientoconigual clavedeproteccin.
Una direccin virtual es un par ordenado v=(s,d):
24
s es el nmero del segmento del almacenamiento virtual en el cual residen los
elementos referidos.
d es el desplazamiento en el segmento s en el cual se encuentra el elemento
referido.
Un proceso solo puede ejecutarse si su segmento actual (como mnimo) est en el
almacenamiento primario.
Lossegmentossetranserendel almacenamientosecundarioal primariocomounidades
completas.
Un nuevosegmento puedeser colocadoen una seriedisponibledeposiciones contiguas
del almacenamiento primario detamao sucientepara alojar al segmento.
La traduccin dinmica dedirecciones utiliza una tabla de mapa de segmentos.
3.13.1 Control de Acceso en Sistemas de Segmentacin
Seleotorga a cada proceso ciertos derechos deacceso a todos los segmentos y seleniega
completamenteel acceso a muchos otros.
Si un proceso tiene acceso de lectura a un segmento, puede obtener cualquier ele-
mento deinformacin contenido en esesegmento.
22
Ver Figura 3.26 dela pgina 95 [7, Deitel].
23
Ver Figura 3.27 dela pgina 95 [7, Deitel].
24
Ver Figura 3.28 dela pgina 96 [7, Deitel].
3.13. SEGMENTACIN 95
SISTEMA
OPERATIVO
ALMACENAMIENTO
PRIMARIO
LIBRE
100 K
LIBRE
100 K
LIBRE
160 K
70 K
90 K
140 K
300 K
REQUERIMIENTOS DE
ESPACIO DEL NUEVO
TRABAJO
Figura~3.26: Asignacin no contigua dealmacenamiento.
SISTEMA
OPERATIVO
1 USUARIO A
1 USUARIO A
2 USUARIO B
2 USUARIO B
3 USUARIO C
1 USUARIO A
3 USUARIO C
3 USUARIO C
2 USUARIO B
2 USUARIO B
CLAVE DE
PROTECCION
DEL ALMACENAMIENTO
DE LA CPU
2
0
1 USUARIO A
1 USUARIO A
4 USUARIO D
4 USUARIO D
4 USUARIO D
CLAVES DE PROTECCION DEL ALMACENAMIENTO PARA BLOQUES
INDIVIDUALES DE ALMACENAMIENTO
Figura~3.27: Proteccin del almacenamientocon clavesen sistemasdemultiprogramacin
deasignacin no contigua dealmacenamiento.
96 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
DIRECCION BASE B
DE LA TABLA DE SEG.
REGISTRO ORIGEN DE LA TABLA DE
MAPA DE SEGMENTOS
+
B DIRECCION VIRTUAL V = (S,D)
N DE SEGMENTO S DESPLAZAM. D
S
TABLA DE MAPA
DE SEGMENTOS
S
S
B + S
+
D
S
R
S + D
DIRECCION
REAL
R = S + D
Figura~3.28: Traduccin dedirecciones virtuales en un sistema desegmentacin pura.
Si un proceso tiene acceso de escritura a un segmento, puede modicar cualquier
contenido del segmento y puede introducirleinformacin adicional, incluso destruir toda
la informacin del segmento.
Un proceso con acceso de ejecucin deun segmento puedeejecutarlo como si fuera
un programa.
Un proceso con acceso de adicin puede escribir informacin adicional al nal del
segmento, pero no puedemodicar la informacin existente.
En base a los tipos de control de acceso indicados pueden crearse distintos modos
de control de acceso.
Ejemplosdecombinacin delos accesosdelectura, escrituray ejecucin paraproducir
modos deproteccin tiles sedan en la Tabla 3.1dela pgina 97y en la Tabla 3.2dela
pgina 97[7, Deitel].
3.13.2 Traduccin de Direcciones de Segmentacin por Transformacin
Directa
Existen varias estrategias para la implementacin dela traduccin dedirecciones deseg-
mentacin:
Por transformacin directa, asociativa o combinacin deasociativa / directa.
Con cach suciente para alojar la tabla completa de mapa de segmentos o cach
parciales quecontengan sololasentradasdelos segmentos dereferencia ms recien-
3.13. SEGMENTACIN 97
Modo Lectura Escritura Ejecucin Explicacin
0 N N N No hay permiso deacceso
1 N N S Solo ejecucin
2 S N N Solo lectura
3 S N S Lectura / ejecucin
4 S S N Lectura / escritura pero no ejecucin
5 S S S Acceso no limitado
Tabla 3.1: Ejemplo decombinacin deaccesos.
Modo Aplicacin
0 Seguridad
1 Un programa disponiblea los usuarios,
queno pueden copiarlo ni modicarlo,
pero s ejecutarlo
2 Recuperacin deinformacin
3 Un programa puedeser copiado o
ejecutado, pero no puedeser modicado
4 Protegelos datos contra un intento
errneo deejecutarlos
5 Esteacceso seconcedea los usuarios deconanza
Tabla 3.2: Ejemplo deaplicaciones dela combinacin deaccesos.
te.
25
Seconsiderar la traduccin dedirecciones desegmentacin con la tabla completa de
mapa desegmentos en la cach.
Un proceso en ejecucin hacereferencia a la direccin virtual v = (s,d):
El segmento nmero s se aade a la direccin base b en el registro origen de
la tabla demapa de segmentos formando la direccin dememoria real b + s, de
la entrada para el segmento s de la tabla de mapa de segmentos, quecontiene la
direccin del almacenamiento primario s , dondecomienza el segmento.
El desplazamiento d seaadea s formando la direccin real r = d + s ,
correspondientea la direccin virtual v = (s,d).
Un bit de residencia, r, indica si en la actualidad el segmento se encuentra o no
en el almacenamiento primario.
Si el segmento se encuentra en el almacenamiento primario s es la direccin en
estealmacenamiento dondecomienza el segmento.
25
Ver Figura 3.29 dela pgina 98 [7, Deitel].
98 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
BIT DE
RESIDENCIA
DEL SEGM.
DIRECCION DE
ALMAC. SECUN.
(SI EL SEGM. NO
ESTA EN EL
ALMAC. REAL)
LONGITUD
DEL SEGM.
BITS DE
PROTECCION
DIRECCION BASE
DEL SEGM.
(SI EL SEGM.
ESTA EN EL
ALMACEN.)
R A L R W E A S
R = 0 SI EL SEGMENTO NO ESTA EN EL ALMACENAMIENTO PRIMARIO
R = 1 SI EL SEGMENTO ESTA EN EL ALMACENAMIENTO PRIMARIO
BITS DE PROTECCION: (1-SI, 0-NO)
R - ACCESO DE LECTURA E - ACCESO DE EJECUCION
W - ACCESO DE ESCRITURA A - ACCESO DE ADICION
Figura~3.29: Entrada detabla demapa desegmentos.
Si el segmento no se encuentra en el almacenamiento primario a es la direccin
en el almacenamiento secundario de donde debe recuperarse antes que el proceso pueda
continuar.
Secompara cada referencia a un segmento con los bits de proteccin para determinar
si sepermitela operacin queseest intentando.
Si el segmento buscado no est en el almacenamiento primario segenera un fallo de
prdida de segmento:
El S. O. obtiene el control y carga el segmento referido desde la direccin a del
almacenamiento secundario.
Secomprueba si el desplazamiento d es menor o igual a la longitud del segmento
l :
Si no es as se genera un fallo de desbordamiento de segmento y el S. O.
obtieneel control y termina la ejecucin del proceso.
Si el desplazamiento est en el rango del segmento se comprueban los bits de
proteccin para asegurarsesi sepermitela operacin queseest intentando:
Si es as entonces la direccin base del segmento, s , en el almacena-
miento primario seaadeal desplazamiento d formando la direccin de
memoria real r = s + d, quecorrespondea la direccin del almacena-
miento virtual v = (s,d).
Si laoperacin intentadanosepermitesegeneraun fallo deproteccin de
segmento y el S. O. obtieneel control y termina la ejecucin del proceso.
3.13.3 Compartimiento en un Sistema de Segmentacin
Una de las ventajas de la segmentacin sobre la paginacin es que se trata ms de un
hecho lgico quefsico:
3.14. SISTEMAS DE PAGINACIN / SEGMENTACIN 99
TABLA DE SEGM. DEL PROC. A
TABLA DE SEGM. DEL PROC. B
ALMACENAM.
PRIMARIO
Figura~3.30: Compartimiento en un sistema desegmentacin pura.
En un sistema de segmentacin, una vez que un segmento ha sido declarado como
compartido, entonces las estructuras quelo integran pueden cambiar detamao.
Lo anterior no cambia el hecho lgico dequeresiden en un segmento compartido.
Dos procesos pueden compartir un segmento con solo tener entradas en sus tablas
generales queapunten al mismo segmento del almacenamiento primario.
26
3.14 Sistemas de Paginacin / Segmentacin
Ofrecen las ventajas de las dos tcnicas de organizacin del almacenamiento virtual [7,
Deitel].
El tamao delos segmentos es mltiplo del delas pginas.
No es necesario que todas las pginas de un segmento se encuentren al mismo tiempo
en el almacenamiento primario.
Las pginas dealmacenamiento virtual, queson contiguas en estealmacenamiento, no
necesitan ser contiguas en el almacenamiento real.
El direccionamiento es tridimensional con unadireccin dealmacenamientovirtual v
= (s,p,d):
s es el nmero del segmento.
p es el nmero depgina.
d es el desplazamiento en la pgina donde se encuentra asignado el elemento
deseado.
3.14.1 Traduccin Dinmica de Direcciones en Sistemas de Paginacin
/ Segmentacin
Se considera la traduccin dinmica de direcciones de virtuales a reales en un sistema
de paginacin / segmentacin utilizando la combinacin de transformacin asociativa /
directa.
27
26
Ver Figura 3.30 dela pgina 99 [7, Deitel].
27
Ver Figura 3.31 dela pgina 102 [7, Deitel].
100 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
El proceso en ejecucin hacereferencia a la direccin virtual v = (s,p,d).
28
Las pginas de referencia ms recientetienen entradas en un almacenamiento asocia-
tivo.
Serealiza una bsqueda asociativa para intentar localizar (s,p) en el almacenamiento
asociativo:
Si seencuentra(s,p), entoncesel marcodepginap enel cual residedichapgina
en la memoria real, seconcatena al desplazamiento d para formar la direccin de
memoria real r correspondientea la direccin virtual v= (s,p,d).
Si no seencuentra (s,p), entonces:
La direccin baseb dela tabla desegmentos seaadeal nmero desegmen-
to s formando la direccin b + s de la entrada de la tabla de mapa de
segmentos para el segmento s dela memoria real.
La entrada dela tablademapa desegmentos indica la direccin bases de
la tabla depginas para el segmento s.
El nmero depgina p seaadea s formando ladireccin p +s de
la entrada en la tabla depginas para la pgina p del segmento s:
Indicaquep esel nmerodel marcocorrespondientealapginavirtual
p.
p se concatena con el desplazamiento d formando la direccin real
r quecorrespondea la direccin virtual v = (s,p,d).
Si el segmentos noseencuentraen el almacenamientoprimarioseproduceun fallo
de prdida de segmento, cuyo caso el S. O. localiza el segmento en el almacenamiento
secundario, crea una tabla depginas para el segmento y carga la pgina apropiada en el
almacenamiento primario, pudiendo producir reemplazos depginas.
Si el segmento s est en el almacenamiento primario y si la referencia a la tabla
de mapa de pginas indica que la pgina deseada no se encuentra en el almacenamiento
primario, seproduceunfallo deprdida depgina, ental casoel S. O. obtieneel control,
localiza la pgina en el almacenamiento secundario y la carga, pudiendo reemplazar otra
pgina.
Si una direccin de almacenamiento virtual est ms all del nal del segmento se
genera un fallo de desbordamiento de segmento, el quedebeser atendido por el S. O.
Si los bits de proteccin indican que la operacin quese va a ejecutar en la direccin
virtual referida no se permite, se genera un fallo de proteccin de segmento, el que
tambin debeser atendido por el S. O.
Si seutilizaun mecanismodetransformacin directapura, manteniendoel mapacom-
pleto dentro del almacenamiento primario, la referencia promedio dealmacenamiento vir-
tual requerira:
Un ciclo dealmacenamiento para acceder a la tabla de mapa de segmentos.
28
Ver Figura 3.32 dela pgina 103 [7, Deitel].
3.15. ADMINISTRACIN DEL ALMACENAMIENTO VIRTUAL 101
Un segundo ciclo de almacenamiento para hacer referencia a la tabla de mapa de
pginas.
Un tercer ciclo dealmacenamiento para referenciar al elemento deseado del almace-
namiento real.
Cada referencia a un elemento comprende tres ciclos de almacenamiento:
El sistema correra casi a 1/ 3desu velocidad nominal.
La traduccin dedirecciones insumira 2/ 3del tiempo.
Con la utilizacin deregistros asociativos (por ej. 16registros), selogran velocidades
de ejecucin del 90 %o ms de la velocidad total de procesamiento de sus procesadores
decontrol.
La estructura de tablas de procesos, de mapas de segmentos y de mapas de pginas
puedeconsumir unporcentajeimportantedel almacenamientoprimariocuandoseejecutan
un gran nmero deprocesos.
Latraduccinprocedemuchomsrpidosi todaslastablasestnenel almacenamiento
primario, lo queresta espacio para los procesos.
3.14.2 Compartimiento en un Sistema de Paginacin / Segmentacin
Se implementa disponiendo entradas en tablas de mapa de segmentos para diferentes
procesos queapunten a la misma tabla demapa de pginas.
29
El compartimientorequiereunaadministracincuidadosapor partedel S. O., yaseaen
sistemasdepaginacin, segmentacinopaginacin/ segmentacin, puessedebeconsiderar
qu sucedera si una nueva pgina reemplazara a otra pgina compartida por muchos
procesos.
3.15 Estrategias deAdministracin del Almacenamiento Vir-
tual
Las diferentes organizaciones de almacenamiento virtual generalmenteimplementa-
das son [7, Deitel]:
Paginacin.
Segmentacin.
Segmentacin y paginacin.
Las estrategias para la administracin de sistemas de almacenamiento virtual con-
dicionan la conducta de los sistemas de almacenamiento virtual que operan segn esas
estrategias.
Seconsideran las siguientes estrategias:
29
Ver Figura 3.33 dela pgina 104 [7, Deitel].
102 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
DIRECCION B
DE LA TABLA DE
SEGMENTOS
REGISTRO ORIGEN DE LA
TABLA DE SEGMENTOS
+
B
DIRECCION VIRTUAL V = (S,P,D)
N DE SEGM.
S
N DE PAGINA
P
DESPLAZAM.
D
S P P
S,P
INTENTA ESTO
PRIMERO
MAPA DE ALMACENAM.
ASOCIATIVO (SOLO LAS
PAGINAS MAS ACTIVAS)
S
B
TABLA DE MAPA DE
SEGMENTOS PARA
ESTE PROCESO
S
B + S
S
SOLO EJECUTADO
SI NO HAY
CORRESPONDENCIA
DENTRO DEL MAPA
ASOCIATIVO
P
P
P + S
TABLA DE MAPA DE
PAGINAS PARA EL
SEGMENTO S
S
N DE MARCO
P
DESPLAZAM.
D
DIRECCION REAL R
P
Figura~3.31: Traduccin dedirecciones virtuales con combinacin detransformacin aso-
ciativa / directa dentro deun sistema depaginacin y segmentacin.
3.15. ADMINISTRACIN DEL ALMACENAMIENTO VIRTUAL 103
A
B
I
PROCESO
TABLA DE PROCESOS
(LA TOTALIDAD DEL
SISTEMA)
SEGMENTO
TABLAS DE MAPA DE
SEGMENTOS (UNO POR
PROCESO)
DIRECCION DE LA
TABLA DE SEGMENTOS
TABLAS DE MAPA
DE PAGINAS
(UNO POR
SEGMENTO)
DIREC. DE LA TABLA
DE MAPA DE PAGINAS
DIRECCION DEL
MARCO DE PAGINA
ALMACENAM.
REAL
Figura~3.32: Estructura detablas para un sistema depaginacin y segmentacin.
104 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
TABLA DE MAPA DE
SEGMENTOS PARA
EL PROCESO A
TABLA DE MAPA
DE
SEGMENTOS PARA
EL PROCESO B
TABLA DE MAPA DE PAGINAS
PARA UNO DE LOS SEGMENTOS
DEL PROCESO A
TABLA DE MAPA DE
PAGINAS COMPARTIDA
TABLA DE MAPA DE PAGINAS
PARA UNO DE LOS SEGMENTOS
DEL PROCESO B
ALMACENAMIENTO
REAL
PAGINA DEL
PROCESO A
PAGINA COMPAR.
POR PROC. A Y B
PAGINA DEL
PROCESO B
PAGINA COMPAR.
POR PROC. A Y B
Figura~3.33: Dos procesos compartiendo un sistema depaginacin y segmentacin.
3.15. ADMINISTRACIN DEL ALMACENAMIENTO VIRTUAL 105
Estrategias de bsqueda:
Tratan delos casos en queuna pgina o segmento deben ser trados del alma-
cenamiento secundario al primario.
Las estrategias de bsqueda por demanda esperan a que se haga referencia
a una pgina o segmento por un proceso antes de traerlos al almacenamiento
primario.
Los esquemas debsqueda anticipada intentan determinar por adelantado a
qupginas o segmentos har referencia un proceso para traerlos al almacena-
miento primario antes deser explcitamentereferenciados.
Estrategias de colocacin:
Tratan del lugar del almacenamiento primario donde se colocar una nueva
pgina o segmento.
Los sistemas toman las decisiones de colocacin de una forma trivial ya que
una nueva pgina puede ser colocada dentro de cualquier marco de pgina
disponible.
Estrategias de reposicin:
Tratan de la decisin de cul pgina o segmento desplazar para hacer sitio a
unanueva pgina osegmento cuando el almacenamiento primario estcomple-
tamentecomprometido.
3.15.1 Estrategias de Reposicin de Pgina
Las principales son:
El principio deoptimizacin.
Reposicin depginas al azar.
Primero en entrar - primero en salir.
Menos recientementeusada.
Menos frecuentementeusada.
No usada recientemente.
Conjuntos detrabajo.
3.15.2 El Principio de Optimizacin
El principio de optimizacin indica quepara obtener un rendimiento ptimo, la pgina
quesevaareponer esunaquenosevaautilizar en el futuroduranteel perododetiempo
ms largo.
El problema es queno es factiblepredecir el futuro.
106 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
3.15.3 Reposicin de Pgina al Azar
Consisteen escoger al azar la pgina queva a ser reemplazada.
Todaslaspginasdel almacenamientoprincipal deben tener la misma probabilidad
deser reemplazadas.
Debe poder seleccionar cualquier pgina, incluyendo la que va a ser referenciada a
continuacin (peor seleccin).
Esteesquema es raramenteusado.
3.15.4 Reposicin de Pgina por el Sistema de Primero en Entrar -
Primero en Salir (FI FO)
Seregistra el momento en quecada pgina ingresa al almacenamiento primario.
Para reemplazar una pgina, seselecciona aquella queha estado ms tiempo almace-
nada.
Se presenta el inconveniente de que se pueden reemplazar pginas muy usadas, que
sern llamadas denuevo al almacenamiento primario casi deinmediato.
Sepuedepresentar la llamada anomala FI FO:
Belady, Nelson y Shedler descubrieron quecon la reposicin FIFO, ciertos patrones
dereferenciasdepginascausan msfallosdepginascuandoseaumenta el nmero
demarcos (celdas) depginasasignados aun proceso: en esto consistela anomala
FI FO.
Esta anomala contradice a la intuicin.
30
3.15.5 Reposicin de Pgina Menos - Recientemente - Usada (LRU)
Estaestrategiaselecciona para ser reemplazada lapginaquenohasidousadaduranteel
mayor perodo detiempo.
Se basa en la heurstica de que el pasado reciente es un buen indicador del futuro
prximo.
Requierequecada pgina reciba un sello de tiempo cada vez quesereferencia:
Puedesignicar una sobrecarga adicional importante.
No seimplementa frecuentemente.
La pgina seleccionada para reemplazo podra ser la prxima en ser requerida, por lo
quehabra quepaginarla denuevo al almacenamiento principal casi deinmediato.
3.15.6 Reposicin de Pgina Menos - Frecuentemente - Usada (LFU)
Ac interesa la intensidad de uso quehaya tenido cada pgina.
La pgina queser reemplazada es aquella queha sido usada con menos frecuencia o
queha sido referida con menos intensidad.
El inconveniente es que se puede seleccionar fcilmente para su reposicin la pgina
equivocada:
30
Ver Figura 3.34 dela pgina 107 [7, Deitel].
3.15. ADMINISTRACIN DEL ALMACENAMIENTO VIRTUAL 107
REFERENCIAS
DE PAGINAS
REPOSICION CON TRES
MARCOS DISPONIBLES
A - - A FALLO
B A - B FALLO
C FALLO C B A
D C B D FALLO
A D C A FALLO
B A D B FALLO
E B A E FALLO
E B A A NO FALLO
E B A B NO FALLO
C E B C FALLO
D C E D FALLO
D C E E NO FALLO
TRES NO FALLOS
REFERENCIAS
DE PAGINAS
REPOSICION CON CUATRO
MARCOS DISPONIBLES
A FALLO A - - -
B FALLO B A - -
C FALLO C B A -
D FALLO D C B A
A NO FALLO D C B A
B NO FALLO D C B A
E FALLO E D C B
A FALLO A E D C
B FALLO B A E D
C FALLO C B A E
D FALLO D C B A
E FALLO E D C B
DOS NO FALLOS
Figura~3.34: Ejemplo deanomala FIFO.
Ej.: La pgina deuso menos frecuentepuedeser la pgina deentrada ms reciente
al almacenamiento principal, y por lo tanto existeuna alta probabilidad dequesea
usada deinmediato.
3.15.7 Reposicin de Pgina No Usada - Recientemente (NUR)
Presuponequelas pginas queno han tenidouso recientetienen pocaprobabilidad deser
usadas en el futuro prximo y pueden ser reemplazadas por otras nuevas.
Es deseable reemplazar una pgina que no ha sido cambiada mientras estaba en el
almacenamiento primario.
La estrategia NUR seimplementa con la adicin dedos bits de hardware por pgina:
Bit referenciado:
= 0si la pgina no ha sido referenciada.
= 1si la pgina ha sido referenciada.
Bit modicado (tambin llamado bit sucio):
= 0si la pgina no ha sido modicada.
= 1si la pgina ha sido modicada.
Laseleccin dela pginaqueserreemplazada comienza buscandounapgina queno
hasidoreferenciada, perosi nolaencuentrahabrquereemplazar unapginaquehasido
referenciada.
Si una pgina ha sido referenciada secomprueba si ha sido modicada o no:
108 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
Si no ha sido modicada sela reemplaza:
Su reposicin representamenossobrecargaqueladeunapginamodicada, ya
quedebera grabarsedenuevo en el almacenamientos secundario.
Si no se encuentra una pgina que no ha sido modicada ser reemplazada una
pgina modicada.
Con el transcurso del tiempo la mayora delos bits referenciados sern activados:
Se pierde la capacidad para distinguir las pginas ms deseables para ser reempla-
zadas.
Para evitarlo seajustan peridicamentetodos los bits referenciados a 0:
Selogra un nuevo inicio.
Se vuelve vulnerable al reemplazo an a las pginas activas, pero solo breve-
mente, mientras sereajustan los bits.
Los bits modicados no seajustan peridicamentesegn esta estrategia.
3.16 Localidad
El concepto delocalidad expresa [7, Deitel]:
Losprocesostiendenahacer referenciaal almacenamientoenpatronesnouniformes
y muy localizados.
La localidad semaniesta en el tiempo y en el espacio:
Es una propiedad emprica (observada).
Nunca est garantizada pero es altamenteprobable.
Ej.: Losprocesostiendenafavorecer ciertossubconjuntosdepginas, lasquetienden
a ser adyacentes entres en el espacio dedirecciones virtuales del proceso.
Est relacionada con la forma en que se escriben los programas y se organizan los
datos.
Localidad temporal: signica que las localidades de almacenamiento referenciadas
recientementetienen una alta probabilidad deser referenciadas en un futuro prximo:
Seapoya en la utilizacin de:
Formacin deciclos (loops).
Subrutinas.
Pilas.
3.17. CONJ UNTOS DE TRABAJ O 109
Variables usadas para contar y totalizar.
Localidad en el espacio: signica que las referencias de almacenamiento tienden a
acumularse de manera tal que, una vez que se hace referencia a una localidad, es muy
probablequelas localidades cercanas sean tambin referenciadas:
Seapoya en la utilizacin de:
Recorrido dearreglos.
Ejecucin secuencial decdigo.
Tendenciadelosprogramadoresacolocar denicionesdevariablesrelacionadas,
prximas entres.
Un programa puede ejecutar ecientemente mientras su subconjunto de pginas prefe-
rido se encuentre en el almacenamiento primario.
El nmerodefallosdepginasdeunprocesodependedelacantidaddealmacenamiento
primario disponiblepara sus pginas.
Generalmente los procesos no muestran patrones de referencias aleatorios uniforme-
mentedistribuidos por sus diferentes pginas.
Al reducir el nmero demarcos(celdas) depginas disponibles para un proceso existe
un intervalo duranteel cual la razn defallos depginas no seafecta excesivamente.
En determinado punto, cuando se reduce ms el nmero de marcos de pginas, el
nmero defallos depginas aumenta drsticamente.
Mientras el subconjunto de pginas favorecidas por un proceso permanezca en el al-
macenamiento primario, el nmero defallos depginas no aumenta mucho.
Tan pronto como las pginas del subconjunto favorecido son retiradas del almace-
namiento primario, la actividad de paginacin del proceso aumenta en gran medida al
referenciar y traer denuevo estas pginas al almacenamiento primario.
Los subconjuntos favorecidos tambin son llamados conjuntos de trabajo o wor-
kingsets.
31
3.17 Conjuntos de Trabajo
Denningdesarrollunpuntodevistadelaactividaddepaginacindeunprogramallamado
la teora de conjunto de trabajo del comportamiento de un programa [7, Deitel].
Un conjunto de trabajo es una coleccin de pginas a las cuales un proceso hace
activamente referencia.
Denning sostena que para que un programa se ejecutara ecientemente, su conjunto
detrabajo debeser mantenido en el almacenamiento primario, para evitar la hiperpagi-
nacin.
Una poltica de administracin de almacenamiento por conjunto de trabajo trata de
mantener el conjunto detrabajo delos programas activosen el almacenamiento primario.
La decisin de aadir un nuevo proceso al conjunto activo de procesos (aumentar el
nivel demultiprogramacin):
31
Ver Figura 3.35 dela pgina 110 [7, Deitel].
110 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
RAZON DE FALLOS DE PAGINAS
0.00
0.25
0.50
0.75
1.00
0.25
0.50
0.75
1.00
FRACCION DEL N DE PAGINAS DE UN PROCESO
EN EL ALMACENAMIENTO PRIMARIO
UN PROCESO REALIZANDO REFERENCIAS ALEATORIAS
A SUS DIFERENTES PAGINAS
UN PROCESO REALIZANDO REFERENCIAS LOCALIZADAS
Figura~3.35: Fenmeno delocalidad.
TIEMPO DE EJECUCION DE UN
PROCESO
t - w t
w
LAS PAGINAS REFERENCIADAS POR EL PROCESO DURANTE
ESTE INTERVALO DE TIEMPO CONSTITUYEN EL CONJUNTO
DE TRABAJOS W (t,w) DEL PROCESO
Figura~3.36: Una denicin del conjunto detrabajo depginas deun proceso.
Sebasa en si hay sucienteespacio disponibleen el almacenamiento primario como
para acomodar el conjunto detrabajo del nuevo proceso.
Setomageneralmentedeformaheursticayaqueesimposibleparael sistemaconocer
por anticipado el tamao del conjunto detrabajo deun proceso dado.
El conjunto de trabajo de pginas de un proceso w(t,w) en el momento t es el
conjunto de pginas referidas por un proceso durante el intervalo de tiempo del proceso
t - w a t.
32
El tiempo del proceso es el tiempo duranteel cual esteproceso tienela cpu.
La variablew sedenomina tamao de la ventana del conjunto de trabajo:
La determinacin del tamao dew es muy importante.
32
Ver Figura 3.36 dela pgina 110 [7, Deitel].
3.18. PAGINACIN POR DEMANDA Y PAGINACIN ANTICIPADA 111
TAMAO DEL PROGRAMA
TAMAO DE LA VENTANA w
TAMAO DEL
CONJUNTO
DE TRABAJO
Figura~3.37: Tamaodel conjuntodetrabajocomounafuncindel tamaodelaventana.
Al aumentar el tamao dela ventana w aumenta el tamao del conjunto detra-
bajo.
33
El verdadero conjunto de trabajo de un proceso es el conjunto de pginas que deben
estar en el almacenamiento primario para la ejecucin ecaz de este proceso.
Los conjuntos detrabajo cambian mientras un proceso est en ejecucin:
Complica la administracin precisa del almacenamiento primario en base a esta
estrategia.
Los conjuntos de trabajo son transitorios y el siguiente conjunto de trabajo del
proceso puede diferir substancialmente de su conjunto de trabajo anterior.
Se debe evitar un exceso de compromiso del almacenamiento primario y la conse-
cuentehiperpaginacin.
3.18 Paginacin por Demanda y Paginacin Anticipada
3.18.1 Paginacin por Demanda
Las paginas son cargadas por demanda [7, Deitel].
Nosellevan pginasdel almacenamientosecundarioal primariohastaqueson referen-
ciadas explcitamentepor un proceso en ejecucin.
Las razones del atractivo deesta estrategia son:
Los resultados decomputabilidad, en especial el problema de parada, indican que
el caminoquetomarlaejecucin deunprogramanosepuedepredecir con exactitud.
Garantizaquesololaspginasquenecesitael procesoseantradasal almacenamiento
principal.
Lasobrecarga deproceso para decidir qupgina traer al almacenamiento principal
es mnima.
33
Ver Figura 3.37 dela pgina 111 [7, Deitel].
112 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
ASIGNACION DEL ALMACENAMIENTO PRIMARIO
UN MARCO DE
PAGINA
PROCESO EN EJECUCION
ESPERA POR
PAGINA
F F F F F
F ES EL TIEMPO PROMEDIO DE UNA BUSQUEDA DE PAGINA
TIEMPO SEGUN EL
RELOJ DE LA PARED
Figura~3.38: Producto espacio - tiempo con paginacin por demanda.
El principal inconvenienteesten losprocesosquerequieren acumular suspginasuna
por una:
Los tiempos deespera depginas son considerables.
Escrecientela cantidad dealmacenamientoprimario afectada al proceso queespera
pginas, por lo queel producto espacio - tiempo seincrementa.
El producto espacio - tiempo indica la cantidad dealmacenamiento queusa un pro-
ceso y la cantidad detiempo quelo usa.
La reduccin del producto espacio - tiempo delas esperas depginas deun proceso es
una meta importante de las estrategias de administracin del almacenamiento.
34
3.18.2 Paginacin Anticipada
El S. O. intentapredecir laspginasqueunprocesovaanecesitar yacontinuacinprecarga
estas pginas cuando hay espacio disponible[7, Deitel].
Mientras el proceso ejecuta sus pginas actuales, el sistema carga pginas nuevas que
estarn disponibles cuando el procesolaspida, debidoa ello, el tiempodeejecucin deun
proceso sepuedereducir.
3.19 Liberacin de Pgina y Tamao de Pgina
3.19.1 Liberacin de Pgina
Un proceso usuario puede emitir una liberacin voluntaria de pgina para liberar el
marco depgina cuando ya no necesitara esa pgina [7, Deitel].
Sepuedeeliminar el desperdicio y acelerar la ejecucin.
34
Ver Figura 3.38 dela pgina 112 [7, Deitel].
3.19. LIBERACIN DE PGINA Y TAMAO DE PGINA 113
El inconvenientees quela incorporacin demandatos deliberacin depginas dentro
delos programas deusuarios puedeser peligroso y retrasar el desarrollo deaplicaciones.
Los compiladores y S. O. deberan detectar automticamentesituaciones deliberacin
de pgina mucho antes de lo que es posible con estrategias de conjuntos de trabajo.
3.19.2 Tamao de Pgina
Generalmente el almacenamiento real se divide en marcos o celdas de pgina de tamao
jo [7, Deitel].
Los interrogantes tienen que ver con el tamao de las pginas, si todas las pginas
tendrn igual tamao, si en caso de utilizar pginas de diferente tamao las pginas
mayores deben ser o no mltiplos enteros delas menores, etc.
Algunas consideraciones para determinar el tamao depgina son las siguientes:
Cuantomspequeoseael tamaodeunapgina, mspginasy marcosdepginas
habr y mayores sern las tablas depginas:
El desperdicio de almacenamiento debido al tamao excesivo de las tablas de
pgina sellama fragmentacin de tablas.
Esto indica la necesidad depginas ms grandes.
Con pginas grandes, grandes cantidades de informacin que nunca llegara a ser
referenciada, sepaginarn hacia el almacenamiento primario:
Esto indica la necesidad depginas ms pequeas.
Debido a que las transferencias de e / s del disco (paginacin) consumen bastante
tiempo, sedebeminimizar la paginacin queun proceso requiera:
Esto indica la necesidad depginas grandes.
Los programas tienden a mostrar la propiedad de localidad de referencia y esta
localidad tiendea ser pequea:
Esto indica la necesidad depginas pequeas.
Los procedimientos y datos rara vez comprenden un nmero entero depginas, por
lo quelos sistemas depaginacin experimentan una fragmentacin interna:
El desperdicio promedio es de1/ 2 pgina no usada por segmento (grupo) de
pginas, queestar en la ltima pgina del segmento.
Esto indica la necesidad depginas pequeas.
Los tamaos depagina mas utilizados son: 512b, 1kb, 2kb, 4kb.
114 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
3.20 Comportamiento de un Programa en la Paginacin
Respectodel porcentajedelaspginasdeunprocesotpicoreferenciadasdesdeel momento
deiniciarsesu ejecucin [7, Deitel]:
Un proceso tiende a hacer referencia a una parte signicativa desus pginas inme-
diatamentedespus deiniciar su ejecucin.
El proceso puede concluir sin haber referenciado a algunas de sus pginas, corres-
pondientes a rutinas queatienden errores queno seprodujeron.
Respecto de variar el tamao de la pgina manteniendo constante la cantidad de al-
macenamiento primario:
El nmero de fallos de pginas experimentados por un proceso en ejecucin tiende
a aumentar con el tamao de la pgina, debido a que se traen al almacenamiento
primario un mayor nmero de procedimientos y datos que no sern referenciados,
restando lugar para los ques lo sern.
Respecto de cmo el promedio de tiempo interfallos (tiempo entre fallos de pgina)
vara al aumentar el nmero demarcos depgina asignados al proceso:
Cuantomsmarcosdepginatengaun proceso, mayor serel tiempoentrelosfallos
depginas.
El punto de inexin seda cuando el proceso tiene todo su conjunto detrabajo en
el almacenamiento primario.
Asignar marcos de pgina adicionales ms all del punto de inexin no produce
efectos signicativos sobreel tiempo interfallos.
Respecto del porcentaje de instrucciones de una pgina que son ejecutadas antes de
transferirseel control aotrapgina, losvaloresexperimentalesobtenidosindican un mxi-
mo de200instrucciones por pgina de1kb.
35
35
Ver Figura 3.39 dela pgina 115 [7, Deitel].
3.20. COMPORTAMIENTO DE UN PROGRAMA EN LA PAGINACIN 115
100
0
TIEMPO
% DE LAS PAGINAS REFERENCIADAS DE UN PROCESO
0
TAMAO DE PAGINA
N DE FALLOS DE PAGINAS EXPERIMENTADOS POR UN PROCESO EN SU
EJECUCION DE PRINCIPIO A FIN
0
N DE MARCOS DE PAGINA
ASIGNADOS A ESTE PROCESO
N DE PAGINAS DEL PROCESO
TIEMPO TOTAL DE EJECUCION
DEL PROCESO TIEMPO
INTER-
FALLOS
(TIEMPO
ENTRE
FALLOS
DE
PAGINAS)
0
FRECUENCIA
i
INSTRUCCIONES EJECUTADAS POR PAGINA ANTES DE SER
TRANSFERIDO EL CONTROL A OTRA PAGINA
Figura~3.39: Comportamiento deun programa en la paginacin.
116 CAPTULO 3. ADMINISTRACIN DE LA MEMORIA
Captulo 4
Sistemas de Archivos
4.1 I ntroduccin
Todas las aplicaciones computarizadas necesitan almacenar y recuperar la informacin
[7, Deitel]:
Superando las limitaciones del almacenamiento real.
Trascendiendo a la duracin delos procesos quelas utilizan o generan.
Independizandoa la informacin delos procesos permitiendo el acceso a lamismaa
travs devarios procesos.
Lascondiciones esenciales parael almacenamientodelainformacin alargoplazoson:
Debeser posiblealmacenar una cantidad muy grandedeinformacin.
La informacin debesobrevivir a la conclusin del proceso quela utiliza.
Debeser posiblequevarios procesos tengan acceso concurrente a la informacin.
La solucin es el almacenamiento dela informacin en discos y otros medios externos
en unidades llamadas archivos:
Los archivos deben ser persistentes, decir que no deben verse afectados por la
creacin o terminacin deun proceso.
Los archivos son una coleccin dedatos con nombre.
Puedenser manipuladoscomounaunidadpor operacionescomo: open, close, create,
destroy, copy, rename, list.
Los elementos dedatos individuales dentro del archivo pueden ser manipulados por
operaciones como: read, write, update, insert, delete.
El SistemadeArchivos es lapartedel sistema deadministracin del almacenamien-
to responsable, principalmente, de la administracin de los archivos del almacenamiento
secundario.
Es la partedel S. O. responsabledepermitir compartir controladamente lainforma-
cin delos archivos.
117
118 CAPTULO 4. SISTEMAS DE ARCHIVOS
4.2 Funciones del Sistema de Archivos
Los usuarios deben poder crear, modicar y borrar archivos.
Sedeben poder compartir los archivos de una manera cuidadosamente controlada [7,
Deitel].
El mecanismo encargado de compartir los archivos debe proporcionar varios tipos de
acceso controlado:
Ej.: Acceso de Lectura, Acceso de Escritura, Acceso de Ejecucin, varias
combinaciones deestos, etc.
Sedebepoder estructurar los archivos dela manera ms apropiada a cada aplicacin.
Los usuarios deben poder ordenar la transferencia deinformacin entrearchivos.
Se deben proporcionar posibilidades de respaldo y recuperacin para prevenirse
contra:
La prdida accidental deinformacin.
La destruccin maliciosa deinformacin.
Se debe poder referenciar a los archivos mediante Nombres Simblicos, brindando
Independencia de Dispositivos.
En ambientes sensibles, el sistemadearchivos debeproporcionar posibilidadesdeCi-
frado y Descifrado.
El sistema dearchivos debebrindar una interfasefavorableal usuario:
Debe suministrar una visin lgica de los datos y de las funciones que sern eje-
cutadas, en vez deuna visin fsica.
El usuario no debetener quepreocuparsepor:
Los dispositivos particulares.
Dndesern almacenados los datos.
El formato delos datos en los dispositivos.
Los medios fsicos dela transferencia dedatos hacia y desdelos dispositivos.
4.3 El Sistema de Archivos
Un Archivo es un conjunto deregistros relacionados [23, Tanenbaum].
El Sistema de Archivos es un componenteimportantedeun S. O. y suelecontener
[7, Deitel]:
Mtodos deacceso relacionadoscon lamanera deacceder alosdatosalmacenados
en archivos.
Administracin de archivos referida a la provisin de mecanismos para que los
archivos sean almacenados, referenciados, compartidos y asegurados.
4.4. ARCHIVOS 119
Administracin del almacenamiento auxiliar para la asignacin de espacio a los
archivos en los dispositivos dealmacenamiento secundario.
Integridad del archivo para garantizar la integridad dela informacin del archivo.
El sistemadearchivosestrelacionadoespecialmenteconlaadministracin del espacio
dealmacenamiento secundario, fundamentalmentecon el almacenamiento dedisco.
Una forma deorganizacin deun sistema dearchivos puedeser la siguiente:
Se utiliza una raz para indicar en qu parte del disco comienza el directorio
raz.
El directorio raz apunta a los directorios de usuarios.
Un directorio de usuario contiene una entrada para cada uno delos archivos del
usuario.
Cada entrada dearchivo apuntaal lugar del disco dondeest almacenado el archivo
referenciado.
Los nombres de archivos solo necesitan ser nicos dentro de un directorio de usuario
dado.
El nombredel sistemaparaun archivodadodebeser nicoparael sistemadearchivos.
En sistemas dearchivojerrquicos el nombredel sistemaparaun archivosueleestar
formado como el nombre de la trayectoria del directorio raz al archivo.
4.4 Archivos
Seconsiderar el punto devista del usuario.
4.4.1 Nombre de los Archivos
Las reglas exactas para los nombres de archivos varan de sistema a sistema [23, Tanen-
baum].
Algunos sistemas de archivos distinguen entre las letras maysculas y minsculas,
mientras queotros no.
Muchos S. O. utilizan nombres dearchivo con dos partes, separadas por un punto:
La parte posterior al punto es la extensin de archivo y generalmente indica algo
relativo al archivo, aunquelas extensiones suelen ser meras convenciones.
4.4.2 Estructura de un Archivo
Los archivos se pueden estructurar de varias maneras, las ms comunes son [23, Tanen-
baum]:
Secuencia de bytes:
120 CAPTULO 4. SISTEMAS DE ARCHIVOS
El archivo es una serieno estructurada debytes.
Poseemxima exibilidad.
El S. O. no ayuda pero tampoco estorba.
Secuencia de registros:
El archivoesunasecuenciaderegistrosdelongitud ja, cadaunocon su propia
estructura interna.
Arbol:
El archivo consta de un rbol de registros, no necesariamente de la misma
longitud.
Cada registro tiene un campo key (llave o clave) en una posicin ja del
registro.
El rbol se ordena mediante el campo de clave para permitir una rpida bs-
queda deuna claveparticular.
4.4.3 Tipos de Archivos
Muchos S. O. soportan varios tipos de archivos, por ej.: archivos regulares, directorios,
archivos especiales de caracteres, archivos especiales de bloques, etc., donde [23, Tanen-
baum]:
Los Archivos Regulares son aquellos quecontienen informacin del usuario.
Los Directorios son archivos de sistema para el mantenimiento de una estructura
del sistema dearchivos.
Los Archivos Especiales de Caracteres:
Tienen relacin con la e/ s.
Seutilizan para modelar dispositivos seriales dee/ s (terminales, impresoras,
redes, etc.).
Los Archivos Especiales de Bloques seutilizan para modelar discos.
4.4.4 Acceso a un Archivo
Los tipos de acceso ms conocidos son:
Acceso Secuencial: el proceso leeen orden todos los registros del archivo comen-
zando por el principio, sin poder:
Saltar registros.
Leer en otro orden.
4.4. ARCHIVOS 121
Acceso Aleatorio: el procesopuedeleer losregistrosen cualquier orden utilizando
dos mtodos para determinar el punto deinicio dela lectura:
Cadaoperacindelectura(read) dalaposicinenel archivocon lacual iniciar.
Una operacin especial (seek) establecela posicin detrabajo pudiendo luego
leerseel archivo secuencialmente.
4.4.5 Atributos de Archivo
Cada archivo tiene:
Su nombrey datos.
Elementosadicionalesllamadosatributos, quevaran considerablementedesistema
a sistema.
Algunos delos posibles atributos de archivo son [23, Tanenbaum]:
Proteccin: quin debetener acceso y dequforma.
Contrasea: contrasea necesaria para acceder al archivo.
Creador: identicador dela persona quecre el archivo.
Propietario: propietario actual.
Bandera exclusivo - para - lectura: 0 lectura / escritura, 1 para lectura exclusiva-
mente.
Bandera deocultamiento: 0normal, 1para no exhibirseen listas.
Bandera desistema: 0archivo normal, 1archivo desistema.
Bandera debiblioteca: 0ya seha respaldado, 1necesita respaldo.
Bandera ascii / binario: 0archivo en ascii, 1archivo en binario.
Bandera deacceso aleatorio: 0solo acceso secuencial, 1acceso aleatorio.
Bandera temporal: 0normal, 1eliminar al salir del proceso.
Banderas decerradura: 0no bloqueado, distinto de0bloqueado.
Longitud del registro: nmero debytes en un registro.
Posicin dela llave: ajustedela llavedentro decada registro.
Longitud dela llave: nmero debytes en el campo llave.
Tiempo decreacin: fecha y hora decreacin del archivo.
Tiempo del ltimo acceso: fecha y hora del ltimo acceso al archivo.
Tiempodelaltimamodicacin: fechay horadelaltimamodicacinal archivo.
Tamao actual: nmero debytes en el archivo.
Tamao mximo: tamao mximo al quepuedecrecer el archivo.
122 CAPTULO 4. SISTEMAS DE ARCHIVOS
4.4.6 Operaciones con Archivos
Las llamadas ms comunes al sistema relacionadas con los archivos son [23, Tanenbaum]:
Create(crear): el archivo secrea sin datos.
Delete(eliminar): si el archivoyanoesnecesariodebeeliminarseparaliberar espacio
en disco. Ciertos S. O. eliminan automticamente un archivo no utilizado durante
n das.
Open (abrir): antes deutilizar un archivo, un proceso debe abrirlo. La nalidad es
permitir que el sistema traslade los atributos y la lista de direcciones en disco a la
memoria principal para un rpido acceso en llamadas posteriores.
Close(cerrar): cuando concluyen los accesos, los atributos y direcciones del disco ya
no son necesarios, por lo que el archivo debe cerrarse y liberar la tabla de espacio
interno.
Read (leer): los datos se leen del archivo; quien hace la llamada debe especicar la
cantidad dedatos necesarios y proporcionar un buer para colocarlos.
Write(escribir): los datos seescriben en el archivo, en la posicin actual. El tamao
del archivopuedeaumentar (agregadoderegistros) ono(actualizacin deregistros).
Append (aadir): es una forma restringida de write. Solo puede aadir datos al
nal del archivo.
Seek (buscar): especica el punto dondeposicionarse. Cambia la posicin del apun-
tador a la posicin activa en cierto lugar del archivo.
Get attributes (obtener atributos): permite a los procesos obtener los atributos del
archivo.
Set attributes (establecer atributos): algunos atributos pueden ser determinados por
el usuario y modicados luego dela creacin del archivo. La informacin relativa al
modo deproteccin y la mayora delas banderas son un ejemplo obvio.
Rename(cambiar denombre): permitemodicar el nombredeunarchivoyaexistente.
4.4.7 Archivos Mapeados a Memoria
Algunos S. O. permiten asociar los archivos con un espacio dedirecciones de un proceso
en ejecucin [23, Tanenbaum].
Seutilizan las llamadas al sistema map y unmap:
Map: utiliza un nombre de archivo y una direccin virtual y hace que el S. O.
asocie al archivo con la direccin virtual en el espacio de direcciones, por lo cual
las lecturas o escrituras de las reas de memoria asociadas al archivo se efectan
tambin sobreel archivo mapeado.
4.5. DIRECTORIOS 123
Unmap: elimina los archivos del espacio dedirecciones y concluyela operacin de
asociacin.
El mapeo dearchivos elimina la necesidad deprogramar la e/ s directamente, facili-
tando la programacin.
Los principales problemas relacionados son:
Imposibilidad de conocer a priori la longitud del archivo de salida, el que podra
superar a la memoria.
Dicultad para compartir los archivos mapeados evitando inconsistencias, ya que
las modicaciones hechas en las pginas no severn reejadas en el disco hasta que
dichas pginas sean eliminadas dela memoria.
4.5 Directorios
Generalmenteson utilizados por los S. O. para llevar un registro delos archivos [23, Ta-
nenbaum].
En muchos sistemas son a su vez tambin archivos.
4.5.1 Sistemas J errquicos de Directorios
El directorio contieneun conjunto dedatos por cada archivo referenciado.
Una posibilidad es queel directorio contenga por cada archivoreferenciado [7, Deitel]:
El nombre.
Sus atributos.
Las direcciones en disco dondesealmacenan los datos.
Otra posibilidad es quecada entrada del directorio contenga:
El nombredel archivo.
Un apuntador a otra estructura de datos donde se encuentran los atributos y las
direcciones en disco.
Al abrir un archivo el S. O.:
Busca en su directorio el nombredel archivo.
Extraelos atributos y direcciones en disco.
Graba esta informacin en una tabla dememoria real.
Todaslasreferenciassubsecuentesal archivoutilizarnlainformacin delamemoria
principal.
124 CAPTULO 4. SISTEMAS DE ARCHIVOS
DIRECTORIO ARCHIVO
DIRECTORIO RAIZ
Figura~4.1: Un solo directorio compartido por todos los usuarios.
DIRECTORIO RAIZ
DIRECTORIO DEL USUARIO
Figura~4.2: Un directorio por usuario.
El nmero y organizacin dedirectorios vara desistema en sistema:
Directorio nico: el sistema tiene un solo directorio con todos los archivos de todos
los usuarios.
1
Un directorio por usuario: el sistema habilita un solo directorio por cada usuario.
2
Un rbol dedirectorios por usuario: el sistema permitequecada usuario tenga tantos
directorios como necesite, respetando una jerarqua general.
3
4.5.2 Nombre de las Rutas de Acceso
Cuando el sistema de archivos est organizado como un rbol de directorios se necesita
una forma dedeterminar los nombres delos archivos.
Los principales mtodos para nombres delos archivos son [23, Tanenbaum]:
1
Ver Figura 4.1 dela pgina 124 [23, Tanenbaum].
2
Ver Figura 4.2 dela pgina 124 [23, Tanenbaum].
3
Ver Figura 4.3 dela pgina 125 [23, Tanenbaum].
4.5. DIRECTORIOS 125
DIRECTORIO RAIZ
DIRECTORIO DEL USUARIO
SUBDIRECTORIOS
DEL USUARIO
Figura~4.3: Un rbol arbitrario por usuario.
126 CAPTULO 4. SISTEMAS DE ARCHIVOS
Ruta de Acceso Absoluta:
Cada archivo tieneuna ruta deacceso absoluta.
Consta dela ruta deacceso desdeel directorio raz hasta el archivo.
Los componentes de la ruta de acceso se separan mediante algn caracter lla-
mado separador.
Ruta de Acceso Relativa:
Seutiliza junto con el concepto dedirectorio detrabajo o directorio activo.
Todos los nombres queno comiencen en el directorio raz setoman en relacin
con el directorio detrabajo.
El nombre absoluto de la ruta de acceso siempre funciona, sin importar cual
sea el directorio detrabajo.
4.5.3 Operaciones con Directorios
Las llamadas al sistema permitidas para el manejo de los directorios tienen variacin de
sistema a sistema [23, Tanenbaum].
Las ms comunes son las siguientes:
Create(crear): secrea un directorio vaco.
Delete(eliminar): seelimina un directorio, quedebeestar vaco.
Opendir (abrir directorio): sepueden leer los directorios:
Antes depoder leer un directorio, stedebeser abierto.
Closedir (cerrar directorio): cuando se ha ledo un directorio, ste debe ser cerrado
para liberar el espacio correspondientedela tabla interna.
Readdir (leer directorio): regresa la siguiente entrada en un directorio abierto, sin
importar el tipo deestructura dedirectorios queseutilice.
Rename(cambiar denombre): cambia el nombredeun directorio demanera similar
al cambio para archivos.
Link (ligar): es una tcnica que permite que un archivo aparezca en ms de un
directorio:
Especica un archivo existentey el nombredeuna ruta deacceso.
Crea un enlace del archivo ya existente con el nombre especicado en la ruta
deacceso.
Unlink (desligar): seelimina una entrada del directorio:
4.6. IMPLANTACIN DEL SISTEMA DE ARCHIVOS 127
Si el archivoquesedeseadesligar aparecesoloenundirectorio(el casonormal):
Seelimina del sistema dearchivos.
Si el archivo quesedesea desligar, est presenteen varios directorios:
Solo seelimina la ruta deacceso especicada.
Las dems rutas permanecen.
4.6 I mplantacin del Sistema de Archivos y sus Relaciones
con la Asignacin y Liberacin de Espacio
Seconsideran aspectos tales como [7, Deitel]:
La forma de almacenamiento de archivos y directorios.
La administracin del espacio en disco.
La forma de hacerlo de manera eciente y conable.
Se deben tener presentes problemas tales como la fragmentacin creciente del es-
pacio en disco:
Ocasiona problemas de performance al hacer que los archivos se desperdiguen a
travs debloques muy dispersos.
Una tcnica para aliviar el problema de la fragmentacin consiste en realizar
peridicamente:
Condensacin: se pueden reorganizar los archivos expresamente o auto-
mticamentesegn algn criterio predenido.
Recoleccin de basura o residuos: se puede hacer fuera de lnea o en lnea,
con el sistema activo, segn la implementacin.
4.6.1 I mplantacin de Archivos
El aspecto clave de la implantacin del almacenamiento de archivos es el registro de los
bloques asociados a cada archivo [7, Deitel].
Algunos delos mtodos utilizados son los siguientes:
Asignacin contigua o adyacente:
Los archivos son asignados a reas contiguas dealmacenamiento secundario.
Las principales ventajas son:
Facilidad deimplantacin, ya que solo se precisa el nmero del bloque de
inicio para localizar un archivo.
Rendimiento excelenterespecto dela e/ s.
Los principales defectos son:
128 CAPTULO 4. SISTEMAS DE ARCHIVOS
Sedebeconocer el tamao mximo del archivo al crearlo.
Produceuna gran fragmentacin delos discos.
Asignacin no contigua:
Son esquemas dealmacenamiento ms dinmicos, destacndoselos siguientes:
Asignacin encadenada orientada hacia el sector:
El disco seconsidera compuesto desectores individuales.
Losarchivosconstan devariossectoresquepuedenestar dispersospor todo
el disco.
Los sectores quepertenecen a un archivo comn contienen apuntadores de
uno a otro formando una lista encadenada.
Unalista deespacio libre contieneentradasparatodoslossectoreslibres
del disco.
Las ampliaciones o reducciones en el tamao de los archivos se resuelven
actualizandolalistadeespacio libre y nohay necesidaddecondensacin.
Las principales desventajas son:
Debido a la posibledispersin en el disco, la recuperacin deregistros
lgicamentecontiguos puedesignicar largas bsquedas.
El mantenimiento de la estructura de listas encadenadas signica
una sobrecarga en tiempo deejecucin.
Los apuntadores dela estructura delista consumen espacio en disco.
Asignacin por bloques:
Es ms ecientey reducela sobrecarga en ejecucin.
Es una mezcla delos mtodos deasignacin contigua y no contigua.
Seasignan bloques desectores contiguos en vez desectores individuales.
El sistema trata deasignar nuevos bloques a un archivo eligiendo bloques
libres lo ms prximos posiblea los bloques del archivo existentes.
Las formas ms comunes deimplementar la asignacin por bloques son:
Encadenamiento debloques.
Encadenamiento debloques dendice.
Transformacin dearchivos orientada hacia bloques.
Encadenamiento de bloques o lista ligada:
Lasentradasen el directorio deusuariosapuntan al primer bloquedecada
archivo.
Cada uno de los bloques de longitud ja que forman un archivo contiene
dos partes:
Un bloquededatos.
Un apuntador al bloquesiguiente.
Cada bloquecontienevarios sectores.
Frecuentementeel tamaodeun bloquesecorrespondecon el deunapista
completa del disco.
4.6. IMPLANTACIN DEL SISTEMA DE ARCHIVOS 129
ARCHIVO
DIRECTORIO DE USUARIOS
LOCALIZACION
A
DATOS
SE REPRESENTA EL ARCHIVO A
BLOQUE DE ARCHIVO 0
BLOQUE FISICO 4
DATOS
BLOQUE DE ARCHIVO 1
BLOQUE FISICO 7
DATOS
BLOQUE DE ARCHIVO 2
BLOQUE FISICO 2
DATOS
B. DE A. 3
B. F. 10 DATOS
B. DE A. 4
B. F. 12 DATOS
B. DE A. 5
B. F. 8
DATOS
0
B. DE A. 6
B. F. 15
Figura~4.4: Encadenamiento debloques o lista ligada debloques.
Localizar un registro determinado requiere:
Buscar en la cadena debloques hasta encontrar el bloqueapropiado.
Buscar en el bloquehasta encontrar el registro.
El examen de la cadena desde el principio puede ser lento ya que debe
realizarsedebloqueen bloque, y pueden estar dispersos por todo el disco.
La insercin y el retiro son inmediatos, dado que se deben modicar los
apuntadores del bloqueprecedente.
Se pueden usar listas de encadenamiento doble, hacia adelante y hacia
atrs, con lo quesefacilita la bsqueda.
4
Encadenamiento de bloques de ndices:
Los apuntadores son colocados en varios bloques dendices separados:
Cada bloquedendices contieneun nmero jo deelementos.
Cada entrada contiene un identicador de registros y un apuntador a
eseregistro.
4
Ver Figura 4.4 dela pgina 129 [23, Tanenbaum].
130 CAPTULO 4. SISTEMAS DE ARCHIVOS
Si es necesario utilizar ms de un bloque de ndices para describir un
archivo, seencadena una seriedebloques dendices.
Lagranventaja esquelabsquedapuederealizarseenlospropiosbloques
dendices.
Los bloques de ndices pueden mantenerse juntos en el almacenamiento
secundarioparaacortar labsqueda, peroparamejor performancepodran
mantenerseen el almacenamiento primario.
La principal desventaja es quelas inserciones pueden requerir la recons-
truccin completa delos bloques dendices:
Una posibilidad es dejar vacauna partedelos bloques dendices para
facilitar inserciones futuras y retardar las reconstrucciones.
Es suciente que el dato del directorio contenga el nmero de bloque ini-
cial para localizar todos los bloques restantes, sin importar el tamao del
archivo.
5
Transformacin de archivos orientada hacia bloques:
Seutilizan nmeros debloques en vez deapuntadores.
Los nmeros de bloques seconvierten fcilmentea direcciones debloques
gracias a la geometra del disco.
Seconservaunmapadel archivo, conteniendounaentradaparacadabloque
del disco.
Las entradas en el directorio del usuario apuntan a la primera entrada al
mapa del archivo para cada archivo.
Cada entrada al mapa del archivo contieneel nmero del bloquesiguiente
deesearchivo.
La entrada al mapa del archivo correspondientea la ltima entrada deun
archivodeterminadoseajustaaalgnvalor centinela (nil) paraindicar
quesealcanz el ltimo bloquedeun archivo.
El sistema puedemantener una lista de bloques libres.
La principal ventaja es quelas cercanas fsicas del disco sereejan en el
mapa del archivo.
6
Nodos-i (nodos ndices):
Seasociaacadaarchivounapequeatabla, llamadanodo-i (nodondice):
Contienelosatributosy direccionesen discodelosbloquesdel archivo.
Setraslada del disco a la memoria principal al abrir el archivo.
En rigor, almacena solo las primeras direcciones en disco:
o Si el archivo es pequeo, toda la informacin est en el nodo-i.
5
Ver Figura 4.5 dela pgina 131 [7, Deitel].
6
Ver Figura 4.6 dela pgina 132 [7, Deitel].
4.6. IMPLANTACIN DEL SISTEMA DE ARCHIVOS 131
ARCHIVO LOCALIZACION
BLOQUE DE
INDICES
BLOQUE DE
CONTINUACION
DE INDICE
Figura~4.5: Encadenamiento debloques dendices.
132 CAPTULO 4. SISTEMAS DE ARCHIVOS
ARCHIVO LOCALIZACION
A
B
C
8
6
2
DIRECTORIO DE USUARIOS
22
NIL
5
26
9
20
10
LIBRE
17
1
14
LIBRE
3
4
0
LIBRE
LIBRE
12
13
NIL
23
LIBRE
18
19
LIBRE
LIBRE
NIL
MAPA DEL ARCHIVO
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
LIBRE
BLOQUE0
B(4)
BLOQUE 1
B(10)
BLOQUE 2
C(1)
BLOQUE 3
A(4)
BLOQUE 4
B(8)
BLOQUE 5
C(2)
BLOQUE 6
B(1)
BLOQUES FISICOS EN EL ALMACENAMIENTO SECUNDARIO
BLOQUE 7
LIBRE
BLOQUE 14
B(3)
BLOQUE 21
LIBRE
BLOQUE 8
A(1)
BLOQUE 15
LIBRE
BLOQUE 22
B(5)
BLOQUE 9
B(9)
BLOQUE 16
LIBRE
BLOQUE 23
C(4)
BLOQUE 10
B(2)
BLOQUE 17
A(2)
BLOQUE 24
LIBRE
BLOQUE 11
LIBRE
BLOQUE 12
A(3)
BLOQUE 18
B(6)
BLOQUE 26
A(5)
BLOQUE 13
B(7)
BLOQUE 19
C(5)
BLOQUE 25
LIBRE
BLOQUE 20
C(3)
BLOQUE 27
LIBRE
Figura~4.6: Transformacin dearchivos orientada hacia bloques.
4.6. IMPLANTACIN DEL SISTEMA DE ARCHIVOS 133
o Si el archivo es grande, una de las direcciones en el nodo-i es la
direccindeunbloqueenel discollamadobloquesimplementeindirecto:
- Contienelas direcciones en disco adicionales.
- Si resultainsuciente, otradireccinenel nodo-i, el bloquedoblemente
indirecto, contienela direccin deun bloquequepresenta una lista de
los bloques simplementeindirectos:
- Cada bloquesimplementeindirecto apunta a un grupo debloques de
datos.
- Deser necesario sepueden utilizar bloques triplemente indirectos.
7
4.6.2 I mplantacin de Directorios
Para abrir un archivo el S. O. utiliza informacin del directorio:
El directorio contiene la informacin necesaria para encontrar los bloques en el
disco.
El tipo deinformacin vara segn el sistema.
La principal funcin del sistema de directorios es asociar el nombre del archivo
con la informacin necesaria para localizar los datos.
Un aspecto ntimamenteligado con esto es la posicin dealmacenamiento delos atri-
butos:
Una posibilidad es almacenarlos en forma directa dentro del dato del directorio.
Otraposibilidad esalmacenar losatributosen el nodo-i en vez deutilizar laentrada
del directorio.
4.6.3 Archivos Compartidos
Frecuentementeconvienequelosarchivoscompartidosaparezcan simultneamenteen dis-
tintos directorios dedistintos usuarios.
El propio sistema de archivos es una grca dirigida acclica en vez de un rbol [23,
Tanenbaum].
La conexin entre un directorio y un archivo de otro directorio al cual comparten se
denomina enlace.
Si los directorios realmentecontienen direcciones en disco:
Se debe tener una copia de las direcciones en disco en el directorio que accede al
archivo compartido al enlazar el archivo.
Sedebeevitar queloscambioshechospor unusuarioatravsdeundirectorionosean
visibles por los dems usuarios, para lo queseconsideraran dos soluciones posibles.
Primer solucin:
7
Ver Figura 4.7 dela pgina 134 [23, Tanenbaum].
134 CAPTULO 4. SISTEMAS DE ARCHIVOS
ATRIBUTOS
NODO-I
DIRECCIONES EN DISCO
BLOQUE
SIMPLEMENTE
INDIRECTO
BLOQUE
DOBLEMENTE
INDIRECTO
BLOQUE
TRIPLEMENTE
INDIRECTO
DIRECCIONES
DE LOS
BLOQUES DE
DATOS
Figura~4.7: Esquema deun nodo-i.
4.6. IMPLANTACIN DEL SISTEMA DE ARCHIVOS 135
Losbloquesdel disconoseenlistanenlosdirectorios, sinoenunapequeaestructura
dedatos asociada al propio archivo.
Los directorios apuntaran solo a esa pequea estructura dedatos, quepodra ser el
nodo-i.
Segunda solucin:
El enlaceseproducehaciendo queel sistema creeun nuevo archivo detipo link.
El archivo link:
Ingresa al directorio del usuario que accede a un archivo de otro directorio y
usuario.
Solo contieneel nombre de la ruta de acceso del archivo al cual seenlaza.
Estecriterio sedenomina enlace simblico.
Desventajas de la primer solucin:
La creacin deun enlace:
No modica la propiedad respecto deun archivo.
Aumenta el contador deenlaces del nodo-i:
El sistema sabeel nmero deentradas dedirectorio queapuntan en cierto
momento al archivo.
Si el propietario inicial del archivo intenta eliminarlo, surge un problema para el
sistema:
Si eliminael archivoylimpiael nodo-i, el directorioqueenlazoal archivotendr
una entrada queapunta a un nodo-i no vlido.
Si el nodo-i sereasigna a otro archivo el enlaceapuntar al archivo incorrecto.
El sistema:
Puede ver por medio del contador de enlaces en el nodo-i que el archivo
sigueutilizndose.
No puedelocalizar todas las entradas dedirectorio asociadas a esearchivo
para eliminarlas.
La solucin podra ser:
Eliminar la entrada del directorio inicialmentepropietario del archivo.
Dejar intacto el nodo-i:
Sedara el caso queel directorio queposeeel enlacees el nico queposee
una entrada de directorio para un archivo de otro directorio, para el cual
dicho archivo ya no existe.
136 CAPTULO 4. SISTEMAS DE ARCHIVOS
Esto no ocurrecon los enlaces simblicos ya quesolo el propietario verda-
dero tieneun apuntador al nodo-i:
Losusuariosenlazadosal archivosolotienennombresderutasdeacceso
y no apuntadores a nodo-i.
Cuando el propietario elimina un archivo, estesedestruye.
Desventajas de la segunda solucin:
El principal problema es su costo excesivo, especialmenteen accesos a disco, puesto
que se debe leer el archivo que contiene la ruta de acceso, analizarla y seguirla
componentea componentehasta alcanzar el nodo-i.
Se precisa un nodo-i adicional por cada enlace simblico y un bloque adicional en
disco para almacenar la ruta deacceso.
Losarchivospueden tener doso ms rutasdeacceso, debido alo cual, en bsquedas
genricas sepodraencontrar el mismo archivopor distintas rutas y tratrselocomo
si fueran archivos distintos.
Losenlacessimblicostienen laventajadequesepuedenutilizar paraenlazar archivos
en otras mquinas, en cualquier parte del mundo; se debe proporcionar solo la direccin
dela red dela mquina donderesideel archivo y su ruta deacceso en esa mquina.
4.6.4 Administracin del Espacio en Disco
Existendosestrategiasgenerales paraalmacenar unarchivoden bytes[23, Tanenbaum]:
Asignar n bytes consecutivos deespacio en el disco:
Tieneel problemadequesi unarchivocrecesermuy probablequedebadesplazarse
en el disco, lo quepuedeafectar seriamenteal rendimiento.
Dividir el archivo en cierto nmero debloques (no necesariamente) adyacentes:
Generalmentelossistemasdearchivosutilizanestaestrategiaconbloquesdetamao
jo.
Tamao del bloque:
Dadalaformaen queestn organizadoslosbloques, el sector, lapistay el cilindroson
los candidatos obvios como unidades deasignacin.
Si setieneuna unidad de asignacin grande, como un cilindro, esto signica quecada
archivo, inclusiveuno pequeo, ocupar todo un cilindro; con esto sedesperdicia espacio
dealmacenamiento en disco.
Si se utiliza una unidad de asignacin pequea, como un sector, implica que cada
archivo constar demuchos bloques; con esto su lectura generar muchas operaciones de
e/ s afectando la performance.
Lo anterior indica quela eciencia en tiempo y espacio tienen un conicto inherente.
Generalmenteseutilizan comosolucin decompromisobloquesde1/ 2k, 1k, 2k o4k.
8
Hay que recordar que el tiempo de lectura de un bloque de disco es la suma de los
tiempos de:
8
Ver Figura 4.8 dela pgina 137 [23, Tanenbaum].
4.6. IMPLANTACIN DEL SISTEMA DE ARCHIVOS 137
128 B 256 B 512 B 1 K 2 K 4 K 8 K 16 K
100
75
50
25
0
200
150
100
50
0
VELOCIDAD DE LECTURA DE LOS DATOS (KB / SEG)
USO DEL ESPACIO EN DISCO
VELOCIDAD DE LECTURA
TAMAO DE BLOQUE
Figura~4.8: Representacin de la velocidad de lectura y del uso del espacio en disco en
funcin del tamao debloque.
Bsqueda.
Demora rotacional.
Transferencia.
Registro de los bloques libres:
Seutilizan por lo general dos mtodos:
La lista debloques libres como lista ligada.
Un mapa debits.
Lista ligada de bloques de disco:
Cada bloquecontienetantos nmeros debloques libres como pueda.
Los bloques libres seutilizan para contener a la lista debloques libres.
Mapa de bits:
Un disco con n bloques necesita un mapa debits con n bits.
Los bloques libres serepresenta con 1 y los asignados con 0 (o viceversa).
Generalmenteestemtodoespreferiblecuandoexisteespaciosucienteen lamemo-
ria principal para contener completo el mapa de bits.
Disk quotas:
Para evitar que los usuarios se apropien de un espacio excesivo en disco, los S. O.
multiusuario proporcionan generalmente un mecanismo para establecer las cuotas en el
disco.
La idea es que:
138 CAPTULO 4. SISTEMAS DE ARCHIVOS
Un administrador del sistema asigne a cada usuario una proporcin mxima de
archivos y bloques.
El S. O. garanticequelos usuarios no excedan sus cuotas.
Un mecanismo utilizado es el siguiente:
Cuando un usuario abre un archivo:
Selocalizan los atributos y direcciones en disco.
Secolocan en una tabla dearchivos abiertos en la memoria principal.
Uno de los atributos indica el propietario del archivo; cualquier aumento del
tamao del archivo secarga a la cuota del propietario.
Una segunda tabla contiene el registro de las cuotas para cada uno de los
usuarios quetengan un archivo abierto en esemomento, an cuando el archivo
lo haya abierto otro usuario.
Cuando seescribeuna nueva entrada en la tabla de archivos abiertos:
Seintroduceun apuntador al registro dela cuota del propietario para localizar
los lmites.
Cuando seaade un bloque a un archivo:
Seincrementa el total debloques cargados al propietario.
Severicaestevalor contraloslmitesestrictoy exible(el primeronosepuede
superar, el segundo s).
Tambin severica el nmero dearchivos.
4.6.5 Conabilidad del Sistema de Archivos
Es necesario proteger la informacin alojada en el sistema de archivos, efectuando los
resguardos correspondientes [23, Tanenbaum].
De esta manera se evitan las consecuencias generalmente catastrcas de la prdida
delos sistemas dearchivos.
Lasprdidassepueden deber aproblemasdehardware, software, hechosexternos, etc.
Manejo de un bloque defectuoso:
Seutilizan soluciones por hardwarey por software.
La solucin en hardware:
Consisteen dedicar un sector del disco a la lista de bloques defectuosos.
Al inicializar el controlador por primera vez:
Leela lista de bloques defectuosos.
Eligeun bloque(o pista) dereserva para reemplazar los defectuosos.
4.6. IMPLANTACIN DEL SISTEMA DE ARCHIVOS 139
Registra la asociacin en la lista debloques defectuosos.
En lo sucesivo, las solicitudes del bloquedefectuoso utilizarn el derepuesto.
La solucin en software:
Requierequeel usuario oel sistema dearchivosconstruyan un archivo con todos los
bloques defectuosos.
Selos elimina dela lista de bloques libres.
Secrea un archivo de bloques defectuosos:
Esta constituido por los bloques defectuosos.
No debeser ledo ni escrito.
No sedebeintentar obtener copias derespaldo deestearchivo.
Respaldos (copias de seguridad o de back-up):
Es muy importanterespaldar los archivos con frecuencia.
Losrespaldospueden consistir en efectuar copiascompletasdel contenidodelosdiscos
(exibles o rgidos).
Una estrategia de respaldo consiste en dividir los discos en reas de datos y reas de
respaldo, utilizndolas dea pares:
Sedesperdicia la mitad del almacenamiento dedatos en disco para respaldo.
Cada noche (o en el momento que se establezca), la parte de datos de la unidad 0
secopia a la partederespaldo dela unidad 1y viceversa.
Otra estrategia es el vaciado por incrementos o respaldo incremental:
Se obtiene una copia de respaldo peridicamente (por ej.: una vez por mes o por
semana), llamada copia total.
Se obtiene una copia diaria solo de aquellos archivos modicados desde la ltima
copia total; en estrategias mejoradas, se copian solo aquellos archivos modicados
desdela ltima vez quedichos archivos fueron copiados.
Sedebemantener en el disco informacin decontrol como una lista de los tiempos
de copiado de cada archivo, la que debe ser actualizada cada vez que se obtienen
copias delos archivos y cada vez quelos archivos son modicados.
Puede requerir una gran cantidad de cintas de respaldo dedicadas a los respaldos
diarios entrerespaldos completos.
Consistencia del sistema de archivos:
Muchos sistemas dearchivos leen bloques, los modican y escriben en ellos despus.
Si el sistema falla antes deescribir en los bloques modicados, el sistema de archivos
puedequedar en un estado inconsistente.
La inconsistencia es particularmentecrtica si alguno delos bloques afectados son:
140 CAPTULO 4. SISTEMAS DE ARCHIVOS
Bloques denodos-i.
Bloques dedirectorios.
Bloques dela lista debloques libres.
Lamayoradelossistemasdisponedeunprogramautilitarioquevericalaconsistencia
del sistema de archivos:
Sepueden ejecutar al arrancar el sistema o a pedido.
Pueden actuar sobretodos o algunos delos discos.
Pueden efectuar vericaciones a nivel debloques y a nivel dearchivos.
La consistencia del sistema de archivos no asegura la consistencia interna de cada
archivo, respecto desu contenido.
Generalmentepueden vericar tambin el sistemadedirectoriosy / odebibliotecas.
Generalmentelos utilitarios utilizan dos tablas:
Tabla debloques en uso.
Tabla debloques libres.
Cada bloquedebeestar referenciado en una deellas.
Si un bloqueno apareceen ninguna delas tablas setrata deuna falla llamada bloque
faltante:
No producedaos pero desperdicia espacio en disco.
Sesoluciona aadiendo el bloquea la tabla debloques libres.
Tambin podra detectarse la situacin de falla debida a un bloque referenciado dos
veces en la tabla de bloques libres:
Esta falla no seproduceen los sistemas dearchivos basados en mapas debits, s en
los basados en tablas o listas.
La solucin consisteen depurar la tabla debloques libres.
Una falla muy grave es queel mismo bloque de datos aparezca referenciado dos o ms
veces en la tabla de bloques en uso:
Como partedel mismo o dedistintos archivos.
Si uno delos archivos seborra, el bloque aparecera en la tabla debloques libres y
tambin en la debloques en uso.
Una solucin es queel vericador del sistema dearchivos:
4.6. IMPLANTACIN DEL SISTEMA DE ARCHIVOS 141
Asigneun bloquelibre.
Copieen el bloquelibreel contenido del bloqueconictivo.
Actualicelas tablas afectando el bloquecopia a alguno delos archivos.
Agregueel bloqueconictivo a la tabla debloques libres.
Informeal usuario para queveriqueel dao detectado y la solucin dada.
Otro error posiblees queun bloque est en la tabla de bloques en uso y en la tabla de
bloques libres:
Sesoluciona eliminndolo dela tabla debloques libres.
Las vericaciones dedirectorios incluyen controles como:
Nmero dedirectorios queapuntan a un nodo-i con los contadores deenlaces alma-
cenadosenlospropiosnodos-i; enunsistemaconsistentedearchivosdebencoincidir.
Una posible falla es que el contador de enlaces sea mayor que el nmero de entradas
del directorio:
Aunqueseeliminaran todos los archivos delos directorios el contador sera distinto
decero y no sepodra eliminar el nodo-i.
Nosetratadeunerror serioperoproducedesperdiciodeespacioendiscoconarchivos
queno seencuentran en ningn directorio.
Sesolucionahaciendoqueel contador deenlaces en el nodo-i tomeel valor correcto;
si el valor correcto es 0, el archivo debeeliminarse.
Otro tipo deerror es potencialmentecatastrco:
Si dos entradas de un directorio se enlazan a un archivo, pero el nodo-i indica que
soloexisteunenlace, entonces, al eliminar cualquieradeestasentradasdedirectorio,
el contador del nodo-i tomar el valor 0.
Debido al valor 0 el sistema de archivos lo seala como no utilizado y libera todos
sus bloques.
Unodelosdirectoriosapuntahaciaun nodo-i noutilizado, cuyosbloquessepodran
asignar entonces a otros archivos.
La solucin es forzar que el contador de enlaces del nodo-i sea igual al nmero de
entradas del directorio.
Tambin sepueden hacer vericaciones heursticas, por ej.:
Cada nodo-i tieneun modo, pero algunos modos son vlidos aunqueextraos:
Ej.: Seprohibeel acceso al propietario y todo su grupo, pero sepermitea los
extraos leer, escribir y ejecutar el archivo.
La vericacin debera detectar einformar deestas situaciones.
Se debera informar como sospechosos aquellos directorios con excesivas entradas,
por ej., ms demil.
142 CAPTULO 4. SISTEMAS DE ARCHIVOS
4.6.6 Desempeo del Sistema de Archivos
El acceso al disco es mucho ms lento queel acceso a la memoria:
Los tiempos semiden en milisegundos y en nanosegundos respectivamente.
Sedebereducir el nmero deaccesos a disco.
La tcnica ms comn para reducir los accesos a disco es el bloque cach o buer
cach [23, Tanenbaum]:
Seutiliza el trmino ocultamiento para esta tcnica (del francs cacher: ocultar).
Un caches una coleccin debloques quepertenecen desdeel punto devista lgico
al disco, pero quesemantienen en memoria por razones derendimiento.
Uno delos algoritmos ms comunes para la administracin del caches el siguiente:
Vericar todaslassolicitudesdelecturaparasaber si el bloquesolicitadoseencuentra
en el cach.
En caso armativo, sesatisfacela solicitud sin un acceso a disco.
En caso negativo, seleepara queingreseal cachy luego secopia al lugar dondese
necesite.
Cuando hay quecargar un bloqueen un cachtotalmenteocupado:
Hay que eliminar algn bloque y volverlo a escribir en el disco en caso deque
haya sido modicado luego dehaberlo trado del disco.
Seplantea una situacin muy parecida a la paginacin y seresuelvecon algo-
ritmos similares.
Se debe considerar la posibilidad de una falla total del sistema y su impacto en la
consistencia del sistema de archivos:
Si un bloquecrtico, como un bloquedeun nodo-i, seleeen el cachy semodica,
sin volverse a escribir en el disco, una falla total del sistema dejar al sistema de
archivos en un estado inconsistente.
Sedeben tener en cuenta los siguientes factores:
Es posiblequeel bloquemodicado sevuelva a necesitar muy pronto ?:
Los bloques quesevayan a utilizar muy pronto, como un bloqueparcialmente
ocupado queseest escribiendo, deberan permanecer un largo tiempo.
Es esencial el bloquepara la consistencia del sistema dearchivos ?:
4.7. DESCRIPTOR DE ARCHIVOS 143
Si es esencial (generalmentelo ser si no es bloquededatos) y ha sido modi-
cado, debeescribirseen el disco deinmediato:
Sereducelaprobabilidad dequeunafallatotal del sistemahaganaufragar
al sistema dearchivos.
Sedebeelegir con cuidado el orden deescritura delos bloques crticos.
Noesrecomendablemantener losbloquesdedatosenel cachdurantemuchotiempo
antes dereescribirlos.
La solucin dealgunos S. O. consisteen tener una llamada al sistema que fuerza una
actualizacin general a intervalos regulares dealgunos segundos (por ej. 30).
Otra solucin consiste en escribir los bloques modicados (del cach) al disco, tan
pronto como haya sido escrito (el cach):
Sedicequesetrata decachs de escritura.
Requierems e/ s queotros tipos decachs.
Una tcnica importanteparaaumentar el rendimiento deun sistema dearchivos es la
reduccin dela cantidad demovimientos del brazo del disco (mecanismo deacceso):
Sedeben colocar los bloques queprobablementetengan un acceso secuencial, prxi-
mos entres, preferentementeen el mismo cilindro.
Los nodos-i deben estar a mitad del disco y no al principio, reduciendo a la mitad
el tiempo promedio debsqueda entreel nodo-i y el primer bloquedel archivo.
4.7 Descriptor de Archivos
El descriptor de archivos o bloque de control de archivos es un bloque de control que
contieneinformacin queel sistema necesita para administrar un archivo [7, Deitel].
Es una estructura muy dependientedel sistema.
Puedeincluir la siguienteinformacin:
Nombresimblico del archivo.
Localizacin del archivo en el almacenamiento secundario.
Organizacin del archivo (mtodo deorganizacin y acceso).
Tipo dedispositivo.
Datos decontrol deacceso.
Tipo (archivo dedatos, programa objeto, programa fuente, etc.).
Disposicin (permanentecontra temporal).
Fecha y tiempo decreacin.
144 CAPTULO 4. SISTEMAS DE ARCHIVOS
Fecha dedestruccin.
Fecha dela ltima modicacin.
Suma delas actividades deacceso (nmero delecturas, por ejemplo).
Los descriptores de archivos suelen mantenerse en el almacenamiento secundario; se
pasan al almacenamiento primario al abrir el archivo.
El descriptor dearchivos escontrolado por el sistema dearchivos; el usuario puedeno
hacer referencia directa a l.
4.8 Seguridad
Los sistemas dearchivos generalmentecontienen informacin muy valiosa para sus usua-
rios, razn por la quelos sistemas dearchivos deben protegerla [23, Tanenbaum].
4.8.1 El Ambiente de Seguridad.
Se entender por seguridad a los problemas generales relativos a la garanta de que los
archivos no sean ledos o modicados por personal no autorizado; esto incluye aspectos
tcnicos, deadministracin, legales y polticos.
Se consideraran mecanismos de proteccin a los mecanismos especcos del sistema
operativo utilizados para resguardar la informacin dela computadora.
La frontera entreseguridad y mecanismos de proteccin no est bien denida.
Dos delas ms importantes facetas dela seguridad son:
La prdida dedatos.
Los intrusos.
Algunas delas causas ms comunes de la prdida de datos son:
Actos y hechos diversos, como incendios, inundaciones, terremotos, guerras, revolu-
ciones, roedores, etc.
Errores de hardware o de software, como fallas en la cpu, discos o cintas ilegibles,
errores detelecomunicacin, errores en los programas, etc.
Errores humanos, por ej., entrada incorrecta de datos, mal montaje de cintas o
discos, ejecucin incorrecta deprogramas, prdida decintas o discos, etc.
La mayora deestas causas sepueden enfrentar con el mantenimiento delos respaldos
(back-ups) adecuados; debera haber copias en un lugar alejado delos datos originales.
Respecto del problema delos intrusos, selos puedeclasicar como:
Pasivos: solo desean leer archivos queno estn autorizados a leer.
Activos: desean hacer cambios no autorizados a los datos.
Para disear un sistema seguro contra intrusos:
4.8. SEGURIDAD 145
Hay quetener en cuentael tipodeintrusoscontralosquesedesea tener proteccin.
Hay queser conscientedequela cantidad deesfuerzo queseponeen la seguridad y
la proteccin dependeclaramentedequin sepiensa sea el enemigo.
Algunos tipos de intrusos son los siguientes:
Curiosidad casual deusuarios no tcnicos.
Conocidos (tcnicamentecapacitados) husmeando.
Intentos deliberados por hacer dinero.
Espionajecomercial o militar.
Otro aspecto del problema dela seguridad es la privaca:
Proteccin delas personas respecto del mal uso dela informacin en contra deuno
mismo.
Implica aspectos legales y morales.
Tambin debesealarsela posibilidad del ataquedel caballo de Troya:
Modicar un programa normal para quehaga cosas adversas adems desu funcin
usual.
Arreglar las cosas para quela vctima utilicela versin modicada.
Ademsdebeconsiderarselaposibilidad deataquesal estilodel gusano de I nternet:
Fue liberado por Robert Tappan Morris el 02/ 11/ 88 e hizo que se bloquearan la
mayora delos sistemas Sun y Vax deInternet (fuedescubierto y condenado).
Constaba deun programa arrancador y del gusano propiamentedicho.
Utilizaba fallas se seguridad del Unix y de los programas Finger y Sendmail de
Internet.
Una forma deprobar la seguridad deun sistema es contratar un grupo deexpertos en
seguridad, conocidocomoel equipo tigre oequipo depenetracin, cuyoobjetivoesintentar
penetrar el sistema deseguridad para descubrir sus falencias y proponer soluciones.
Otro aspecto importantedela seguridad consisteen no subestimar los problemas que
puedecausar el personal.
146 CAPTULO 4. SISTEMAS DE ARCHIVOS
4.8.2 Virus
Los virus computacionales:
Constituyen una categora especial deataque.
Son un enormeproblema para muchos usuarios.
Son fragmentos deprogramas queseaaden a programas legtimos con la intencin
deinfectar a otros.
Un virus dieredeun gusano en lo siguiente:
Un virus est a cuestas deun programa existente.
Un gusano es un programa completo en s mismo.
Los virus y los gusanos intentan diseminarsey pueden crear un dao severo.
Generalmentesepropagan a travs decopias ilegtimas deprogramas.
Comnmentelos virusseejecutan eintentan reproducirsecadavez queseejecuta el
programa quelos aloja.
Frecuentementelos problemas con los virus son ms fciles deevitar quedecurar:
Utilizar softwareoriginal adquirido en comercios respetables.
No utilizar copias piratas.
Efectuar controlesrigurosos y frecuentescon programasantivirusactualizados.
Trabajar con metodologay disciplinarigurosaen el intercambiodediscos y en
las copias a travs deredes decomunicacin dedatos.
4.8.3 Principios del Diseo Para la Seguridad
El diseo del sistema debeser pblico, ya quepensar queel intruso no conocer la forma
defuncionamiento del sistema es un engao.
El estado predenido debeser el de no acceso, dado quelos errores en dondeseniega
el acceso vlido se reportan ms rpido que los errores en donde se permite el acceso no
autorizado.
Vericar la autorizacin actual:
El sistema no debe:
Vericar el permiso.
Determinar queel acceso est permitido.
Abandonar esta informacin para su uso posterior.
El sistema tampoco debe:
4.8. SEGURIDAD 147
Vericar el permiso al abrir un archivo y no despus deabrirlo, pues un acceso
habilitado permanecera como vlido aunque haya cambiado la proteccin del
archivo.
Dar a cada proceso el mnimo privilegio posible, lo que implica un esquema de pro-
teccin de grano no.
El mecanismo deproteccin debeser simple, uniformeeintegrado hastalascapas ms
bajas del sistema:
Dotar deseguridad a un sistema inseguro es casi imposible.
La seguridad no es una caracterstica quesepueda aadir fcilmente.
El esquema deseguridad debeser sicolgicamente aceptable:
Los usuariosnodeben sentir quelaproteccin desusarchivoslesimplicademasiado
trabajo:
Podran dejar deproteger sus archivos.
Sequejaran en caso deproblemas.
No aceptaran fcilmentesu propia culpa.
4.8.4 Autenticacin del Usuario
Muchos esquemas deproteccin sebasan en la hiptesis dequeel sistema conoce la iden-
tidad de cada usuario.
La identicacin delos usuarios seconocecomo la autenticacin de los usuarios.
Muchos mtodos deautenticacin sebasan en:
La identicacin dealgo conocido por el usuario.
Algo queposee el usuario.
Algo quees el usuario.
4.8.5 Contraseas
Son la forma deautenticacin ms utilizada.
Son defcil comprensin eimplementacin.
Deben almacenarse cifradas (encriptadas).
Sedeben prever intentos depenetracin consistentes en pruebas de combinaciones de
nombres y contraseas.
Si las contraseas fueran de 7 caracteres elegidos al azar de los 95 caracteres ASCI I
quesepueden imprimir:
El espacio debsqueda sera de95
7
, alrededor de7x 10
13
.
A 1.000 ciframientos por segundo tomara 2.000 aos construir la lista a vericar
contra el archivo decontraseas.
148 CAPTULO 4. SISTEMAS DE ARCHIVOS
Una mejora al esquema de contraseas consisteen:
Asociar un nmero aleatorio den bits a cada contrasea.
El nmero aleatorio semodica al cambiar la contrasea.
El nmero seguarda en el archivo decontraseas en forma no cifrada.
Seconcatenan la contrasea y el nmero aleatorio y secifran juntos.
El resultado cifrado sealmacena en el archivo decontraseas.
Se aumenta por 2
n
el espectro de bsqueda: a esto se llama salar el archivo de
contraseas.
Una proteccin adicional consisteen hacer ilegibleel archivo decontraseas encripta-
das.
Otra proteccin adicional consisteen queel sistema sugiera a los usuarios contraseas
generadas segn ciertos criterios; con esto se evita que el usuario elija contraseas muy
sencillas.
Tambin es conveniente que el sistema obligue al usuario a cambiar sus contraseas
con regularidad; sepuedellegar a la contrasea de una sola vez.
Una variante delaideadecontrasea essolicitar al usuario respuestas sobreinforma-
cin decontexto quedebeconocer.
Otra variantees la dereto-respuesta:
Seacuerdan con el usuario algoritmos (por ejemplo formulas matemticas) quese
utilizarn segn el da y / o la hora.
Cuando el usuario seconecta:
El sistema suministra un argumento.
El usuariodeberesponder conel resultadocorrespondienteal algoritmovigente
eseda a esa hora.
4.8.6 I denticacin Fsica
Una posibilidad es la vericacin de si el usuario tiene cierto elemento (generalmente
una tarjeta plstica con una banda magntica), que generalmente se combina con una
contrasea.
Otro aspecto consisteen la medicin decaractersticas fsicas difciles dereproducir:
Huellas digitales o vocales.
Firmas.
Longitud delos dedos delas manos.
4.9. MECANISMOS DE PROTECCIN 149
4.8.7 Medidas Preventivas
Limitar los intentos deacceso fallidos y registrarlos.
Registrar todos los accesos.
Tender trampas para atrapar a los intrusos.
4.9 Mecanismos de Proteccin
4.9.1 Dominios de Proteccin
Muchosobjetosdel sistema necesitanproteccin, talescomolacpu, segmentosdememoria,
unidades de disco, terminales, impresoras, procesos, archivos, bases de datos, etc. [23,
Tanenbaum].
Cadaobjetosereferenciapor unnombreytienehabilitadasunconjuntodeoperaciones
sobrel.
Un dominio es un conjunto de parejas (objeto, derechos):
Cada pareja determina:
Un objeto.
Un subconjunto delas operaciones quesepueden llevar a cabo en l.
Un derecho es el permiso para realizar alguna de las operaciones.
Es posiblequeun objeto seencuentreen varios dominios con distintos derechos en
cada dominio.
Un proceso seejecuta en alguno de los dominios de proteccin:
Existeuna coleccin deobjetos a los quepuedetener acceso.
Cada objeto tienecierto conjunto dederechos.
Los procesos pueden alternar entrelos dominios durantela ejecucin.
Una llamada al S. O. provoca una alternancia de dominio.
En algunos S. O. los dominios sellaman anillos.
Una forma en la que el S. O. lleva un registro de los objetos que pertenecen a cada
dominio es medianteuna matriz:
Los renglones son los dominios.
Las columnas son los objetos.
Cada elemento de la matriz contiene los derechos correspondientes al objeto en ese
dominio, por ej.: leer, escribir, ejecutar.
150 CAPTULO 4. SISTEMAS DE ARCHIVOS
4.9.2 Listas Para Control de Acceso
Las matrices de proteccin son muy grandes y con muchos lugares vacos [23, Tanen-
baum]:
Desperdician espacio dealmacenamiento.
Existen mtodosprcticosquealmacenan sololoselementosnovacospor lasopor
columnas.
La lista de control de acceso (ACL: access control list):
Asocia a cada objeto una lista ordenada con:
Todos los dominios quepueden tener acceso al objeto.
La forma dedicho acceso (ej: lectura (r), grabacin (w), ejecucin (x)).
Una forma de implementar las ACL consisteen:
Asignar tres bits (r, w, x) para cada archivo, para:
El propietario, el grupo del propietario y los dems usuarios.
Permitir que el propietario de cada objeto pueda modicar su ACL en cualquier
momento:
Permiteprohibir accesos antes permitidos.
4.9.3 Posibilidades
La matriz de proteccin tambin puededividirsepor renglones [23, Tanenbaum]:
Seleasocia a cada proceso una lista de objetos a los cuales puedetener acceso.
Seleindican las operaciones permitidas en cada uno.
Esto dene su dominio.
La lista de objetos se denomina lista de posibilidades y los elementos individuales se
llaman posibilidades.
Cada posibilidad tiene:
Un campo tipo:
Indica el tipo del objeto.
Un campo derechos:
Mapa de bits que indica las operaciones bsicas permitidas en este tipo de
objeto.
4.9. MECANISMOS DE PROTECCIN 151
Un campo objeto:
Apuntador al propio objeto (por ej.: su nmero denodo-i).
Las listas de posibilidades son a su vez objetos y se les puede apuntar desde otras
listas deposibilidades; esto facilita la existencia desubdominios compartidos.
Laslistasdeposibilidadesolistas-c debenser protegidasdel manejoindebidopor parte
del usuario.
Los principales mtodos de proteccin son:
Arquitectura marcada:
Necesitaun diseodehardwareen el quecadapalabradememoriatieneun bit
adicional:
Indica si la palabra contieneuna posibilidad o no.
Solo puedeser modicado por el S. O.
Lista de posibilidades dentro del S. O.:
Los procesos hacen referencia a las posibilidades mediantesu nmero.
Lista de posibilidades cifrada dentro del espacio del usuario:
Cada posibilidad est cifrada con una clavesecretadesconocida por el usuario.
Muy adecuado para sistemas distribuidos.
Generalmentelas posibilidades tienen derechos genricos aplicables a todos los obje-
tos, por ej.:
Copiar posibilidad:
Crear una nueva posibilidad para el mismo objeto.
Copiar objeto:
Crear un duplicado del objeto con una nueva posibilidad.
Eliminar posibilidad:
Eliminar un dato dentro dela lista-c sin afectar al objeto.
Destruir objeto:
Eliminar en forma permanenteun objeto y una posibilidad.
152 CAPTULO 4. SISTEMAS DE ARCHIVOS
Muchos sistemas con posibilidades se organizan como una coleccin de mdulos con
mdulos administradores de tipos para cada tipo de objeto y entonces es esencial que el
mdulo administrador de tipos pueda hacer ms cosas con la posibilidad que un proceso
ordinario.
Seutiliza la tcnica deamplicacin de derechos:
Los administradores detipo obtienen unaplantilladederechos queles dams dere-
chos sobre un objeto delos quepermita la propia lista deposibilidades.
4.9.4 Modelos de Proteccin
Las matrices de proteccin no son estticas sino dinmicas [23, Tanenbaum].
Sepueden identicar seis operaciones primitivas en la matriz de proteccin:
Crear objeto.
Eliminar objeto.
Crear dominio.
Eliminar dominio.
Insertar derecho.
Eliminar derecho.
Las primitivas sepueden combinar en comandos de proteccin, quepueden ser ejecu-
tados por los programas del usuario para modicar la matriz de proteccin.
En cada momento, la matriz de proteccin determina lo que puede hacer un proceso
en cualquier momento; no determina lo queno est autorizado a realizar.
La matriz es impuesta por el sistema.
La autorizacin tienequever con la poltica de administracin.
4.9.5 Control de Acceso Por Clases de Usuarios
Una matriz de control de acceso puede llegar a ser tan grande que resulte imprctico
mantenerla [7, Deitel].
Una tcnica querequieremenos espacio es controlar el acceso a varias clases de usua-
rios.
Un ejemplo deesquema de clasicacin es el siguiente:
Propietario:
Sueleser el usuario quecre el archivo.
Usuario especicado:
El propietario especica quin ms puedeusar el archivo.
Grupo o proyecto:
4.10. RESPALDO Y RECUPERACIN 153
Los diferentes miembros deun grupo de trabajo sobreun proyecto, acceden a
los diferentes archivos relacionados con el proyecto.
Pblico:
Unarchivopblicopuedeser accedidopor cualquier usuariodelacomputadora.
Generalmentepermiteleer o ejecutar pero no escribir sobreel archivo.
4.10 Respaldo y Recuperacin
La destruccin dela informacin, ya sea accidental o intencional, es una realidad y tiene
distintas causas [7, Deitel]:
Fallas dehardwarey desoftware.
Fenmenos meteorolgicos atmosfricos.
Fallas en el suministro deenerga.
Incendios einundaciones.
Robos, vandalismo (incluso terrorismo).
Etc.
Esta posibledestruccin dela informacin debeser tenida en cuenta por:
Los sistemas operativos en general.
Los sistemas dearchivos en particular.
Unatcnicamuyusadaparaasegurar ladisponibilidaddelosdatosesrealizar respaldos
peridicos:
Hacer con regularidad unao ms copias delos archivosy colocarlas en lugar seguro.
Todas las actualizaciones realizadas luego del ltimo respaldo pueden perderse.
Otra tcnica es pasar todas las transacciones a un archivo, copindolas en otro disco:
Genera una redundancia quepuedeser costosa.
En caso de fallas en el disco principal, puede reconstruirse todo el trabajo perdido
si el disco dereserva no seda tambin.
Tambin existela posibilidad del respaldo incremental :
Duranteuna sesin detrabajo los archivos modicados quedan marcados.
Cuando un usuario se retira del sistema (deja de trabajar), un proceso del sistema
efecta el respaldo delos archivos marcados.
Se debe tener presente que es muy difcil garantizar una seguridad absoluta de los
archivos.
154 CAPTULO 4. SISTEMAS DE ARCHIVOS
Captulo 5
Entrada / Salida
5.1 I ntroduccin
Una delas funciones principales deun S. O. es el control de todos los dispositivos de e /
s dela computadora [23, Tanenbaum].
Las principales funciones relacionadas son:
Enviar comandos a los dispositivos.
Detectar las interrupciones.
Controlar los errores.
Proporcionar una interfaz entrelos dispositivos y el resto del sistema:
Debeser sencilla y fcil deusar.
Debeser lamisma(preferentemente) paratodoslosdispositivos(independencia
del dispositivo).
El cdigo dee/ s representa una fraccin signicativa del S. O.
El uso inapropiado delos dispositivos dee/ s frecuentementegenera ineciencias del
sistema, lo queafecta la performanceglobal.
5.2 Principios del Hardware de E / S
El enfoque que se considerar tiene que ver con la interfaz que desde el hardware se
presenta al software: [23, Tanenbaum]
Comandos queacepta el hardware.
Funciones querealiza.
Errores quepuedeinformar.
155
156 CAPTULO 5. ENTRADA / SALIDA
5.2.1 Dispositivos de E / S
Sepueden clasicar en dos grandes categoras:
Dispositivos de bloque.
Dispositivos de caracter.
Las principales caractersticas delos dispositivos de bloque son:
La informacin sealmacena en bloques detamao jo.
Cada bloquetienesu propia direccin.
Los tamaos ms comunes de los bloques van desde los 128 bytes hasta los 1.024
bytes.
Se puede leer o escribir en un bloque de forma independiente de los dems, en
cualquier momento.
Un ejemplo tpico dedispositivos debloqueson los discos.
Las principales caractersticas delos dispositivos de caracter son:
La informacin setranserecomo un ujo decaracteres, sin sujetarsea una estruc-
tura debloques.
No sepueden utilizar direcciones.
No tienen una operacin debsqueda.
Unejemplostpicodedispositivosdecaracter sonlasimpresorasdelnea, terminales,
interfaces deuna red, ratones, etc.
Algunos dispositivos no se ajustan a este esquema de clasicacin, por ejemplo los
relojes, que no tienen direcciones por medio debloques y no generan o aceptan ujos de
caracteres.
El sistema de archivos solo trabaja con dispositivos de bloque abstractos, por lo que
encarga la parte dependiente del dispositivo a un software de menor nivel, el software
manejador del dispositivo.
5.2.2 Controladores de Dispositivos
Las unidades de e / s generalmenteconstan de:
Un componente mecnico.
Un componenteelectrnico, el controlador del dispositivo o adaptador.
Muchos controladores pueden manejar ms deun dispositivo.
El S. O. generalmentetrabaja con el controlador y no con el dispositivo.
Los modelos ms frecuentes decomunicacin entre la cpu y los controladores son:
5.2. PRINCIPIOS DEL HARDWARE DE E / S 157
Para la mayora delas micro y mini computadoras:
Modelo debus del sistema.
Para la mayora delos mainframes:
Modelodevariosbusesy computadorasespecializadasen e/ sllamadascanales
de e / s.
La interfaz entre el controlador y el dispositivo es con frecuencia demuy bajo nivel:
La comunicacin es medianteun ujo de bits en serie que:
Comienza con un prembulo.
Siguecon una seriedebits (deun sector dedisco, por ej.).
Concluyecon una suma para vericacin o un cdigo corrector deerrores.
El prembulo:
Seescribeal dar formato al disco.
Contiene el nmero de cilindro y sector, el tamao de sector y otros datos
similares.
El controlador debe:
Convertir el ujo debits en serieen un bloquedebytes.
Efectuar cualquier correccin deerrores necesaria.
Copiar el bloqueen la memoria principal.
Cada controlador posee registros queutiliza para comunicarsecon la cpu:
Pueden ser partedel espacio normal dedirecciones dela memoria: e / s mapeada a
memoria.
Pueden utilizar un espacio de direcciones especial para la e / s, asignando a cada
controlador una partedel.
El S. O. realiza la e / s al escribir comandos en los registros de los controladores; los
parmetros delos comandos tambin secargan en los registros delos controladores.
Al aceptar el comando, la cpu puededejar al controlador y dedicarsea otro trabajo.
Al terminar el comando, el controlador provoca una interrupcin para permitir queel
S. O.:
Obtenga el control dela cpu.
Veriquelos resultados dela operacin.
La cpu obtiene los resultados y el estado del dispositivo al leer uno o ms bytes de
informacin delos registros del controlador.
Ejemplos de controladores, sus direcciones de e / s y sus vectores de interrupcin en
la PC IBM pueden verseen la Tabla 5.1dela pgina 158[23, Tanenbaum].
158 CAPTULO 5. ENTRADA / SALIDA
Controlador dee/ s Direccin dee/ s Vector deinterrupciones
Reloj 040- 043 8
Teclado 060- 063 9
Disco duro 320- 32f 13
Impresora 378- 37f 15
Disco exible 3f0- 3f7 14
Rs232primario 3f8- 3 12
Rs232secundario 2f8- 2 11
Tabla 5.1: Controladores dee/ s, direcciones dee/ s y vector deinterrupciones.
5.2.3 Acceso Directo a Memoria (DMA)
Muchos controladores, especialmente los correspondientes a dispositivos de bloque, per-
miten el DMA.
Si seleeel disco sin DMA:
El controlador leeen serieel bloque(uno o ms sectores) dela unidad:
La lectura es bit por bit.
Los bits del bloquesegraban en el buer interno del controlador.
Secalcula la suma devericacin para corroborar queno existen errores delectura.
El controlador provoca una interrupcin.
El S. O. leeel bloquedel disco por medio del buer del controlador:
La lectura es por byteo palabra a la vez.
En cada iteracin de este ciclo se lee un byte o una palabra del registro del
controlador y sealmacena en memoria.
Sedesperdicia tiempo dela cpu.
DMA se ide para liberar a la cpu de este trabajo de bajo nivel.
La cpu leproporciona al controlador:
La direccin del bloqueen el disco.
La direccin en memoria adondedebeir el bloque.
El nmero debytes por transferir.
Luego de que el controlador ley todo el bloque del dispositivo a su buer y de que
corrobor la suma devericacin:
Copia el primer byteo palabra a la memoria principal.
5.2. PRINCIPIOS DEL HARDWARE DE E / S 159
CPU
MEMORIA
CONTADO
R
CONTROLADOR
DEL
DISCO
UNIDAD
BUFFER
REGISTROS DEL DMA
DIREC. EN MEMORIA
CONTADO
R BUS DEL SISTEMA
Figura~5.1: Un controlador realiza completamenteuna transferencia DMA.
Lohaceen la direccin especicada por medio dela direccin dememoria deDMA.
Incrementaladireccin DMA y decrementael contador DMA en el nmerodebytes
queacaba detransferir.
Se repite este proceso hasta que el contador se anula y por lo tanto el controlador
provoca una interrupcin.
Al iniciar su ejecucin el S. O. luego dela interrupcin provocada, no debecopiar el
bloqueen la memoria, porqueya seencuentra ah.
1
El controlador necesita un buer interno porqueunavez iniciadaunatransferenciadel
disco:
Los bits siguen llegando del disco constantemente.
No interesa si el controlador est listo o no para recibirlos.
Si el controlador intentara escribir los datos en la memoria directamente:
Tendra que recurrir al bus del sistema para c / u de las palabras (o bytes)
transferidas.
El bus podra estar ocupado por otro dispositivo y el controlador deberaespe-
rar.
Si lasiguientepalabrallegaraantesdequelaanterior hubierasidoalmacenada,
el controlador la tendra quealmacenar en alguna parte.
Si el bloqueseguarda en un buer interno:
El bus no senecesita sino hasta queel DMA comienza.
La transferencia DMA a la memoria ya no es un aspecto crtico del tiempo.
Los controladores simples no pueden atender la e / s simultnea:
1
Ver Figura 5.1 dela pgina 159 [23, Tanenbaum].
160 CAPTULO 5. ENTRADA / SALIDA
1
0
2
3 4
5
6
7 0
4
1
5 2
6
3
7 0
3
6
1 4
7
2
5
Figura~5.2: Factores deseparacin: sin separacin, separacin simpley separacin doble.
Mientras transeren a la memoria, el sector quepasa debajo dela cabeza del disco
sepierde; es decir queel bloquesiguienteal recin ledo sepierde.
La lectura deuna pista completa sehar en dos rotaciones completas, una para los
bloques pares y otra para los impares.
Si el tiempo necesario para una transferencia de un bloque del controlador a la
memoria por medio del bus es mayor que el tiempo necesario para leer un bloque
del disco:
Sera necesario leer un bloquey luego saltar dos o ms bloques.
El salto de bloques:
Se ejecuta para darle tiempo al controlador para la transferencia de los
datos a la memoria.
Sellama separacin.
Al formatear el disco, los bloques senumeran tomando en cuenta el factor
de separacin.
2
Esto permiteal S. O.:
Leer los bloques con numeracin consecutiva.
Conservar la mxima velocidad posibledel hardware.
5.3 Principios del Software de E / S
La idea bsica es organizar el softwarecomo una serie de capas donde[23, Tanenbaum]:
Las capas inferiores se encarguen de ocultar las peculiaridades del hardware a las
capas superiores.
Las capas superiores deben presentar una interfaz agradable, limpia y regular a los
usuarios.
2
Ver Figura 5.2 dela pgina 160 [23, Tanenbaum].
5.3. PRINCIPIOS DEL SOFTWARE DE E / S 161
PROCESO DEL
USUARIO
CAPAS FUNCIONES DE E / S
SOFTWARE INDEP.
DEL DISPOSITIVO
MANEJADORES DE
DISPOSITIVOS
MANEJADORES DE
LAS
INTERRUPCIONES
HARDWARE
SOLICITUD
DE E / S
REPLICA DE E / S
HACE LLAMADAS A E / S; DA FORMATO
A LA E / S; SPOOLING
NOMBRE, PROTECCION, BLOQUEO, USO
DE BUFFER, ASIGNACION
CONFORMA LOS REGISTROS DEL
DISPOSITIVO; VERIFICA EL ESTADO
DESPIERTA AL MANEJADOR AL
TERMINAR LA E / S
LLEVA A CABO LA OPERACION DE E / S
Figura~5.3: Capasdel sistemadeentrada/ saliday lasprincipalesfuncionesdecadacapa.
5.3.1 Objetivos del Software de E / S
Un concepto clavees la independencia del dispositivo:
Debeser posibleescribir programas quesepuedan utilizar con archivos en distintos
dispositivos, sin tener quemodicar los programas para cada tipo dedispositivo.
El problema debeser resuelto por el S. O.
El objetivodelograr nombres uniformes estmuy relacionadocon el deindependencia
del dispositivo.
Todos los archivos y dispositivos adquieren direcciones de la misma forma, es decir
medianteel nombre de su ruta de acceso.
Otro aspecto importantedel softwarees el manejo de errores de e / s:
Generalmentelos errores deben manejarse lo ms cerca posible del hardware.
Solo si los niveles inferiores no pueden resolver el problema, seinforma a los niveles
superiores.
Generalmentela recuperacin sepuedehacer en un nivel inferior y deforma trans-
parente.
Otro aspecto clave son las transferencias sncronas (por bloques) o asncronas (con-
trolada por interruptores):
La mayora de la e / s es asncrona: la cpu inicia la transferencia y realiza otras
tareas hasta una interrupcin.
162 CAPTULO 5. ENTRADA / SALIDA
La programacin es ms fcil si la e / s es sncrona (por bloques): el programa se
suspendeautomticamentehasta quelos datos estn disponibles en el buer.
El S. O. se encarga de hacer que operaciones controladas por interruptores parezcan
del tipo debloques para el usuario.
Tambin el S. O. debeadministrar los dispositivos compartidos (ej.: discos) y los
deuso exclusivo (ej.: impresoras).
Generalmente el software de e / s se estructura en capas:
3
Manejadores deinterrupciones.
Directivas dedispositivos.
SoftwaredeS. O. independientedelos dispositivos.
Softwarea nivel usuario.
5.3.2 Manejadores de I nterrupciones
Las interrupciones deben ocultarseen el S. O.:
Cada proceso queinicieuna operacin dee/ s sebloquea hasta quetermina la e/
s y ocurra la interrupcin.
El procedimiento de interrupcin realiza lo necesario para desbloquear el proceso
quelo inicio.
5.3.3 Manejadores de Dispositivos
Todo el cdigo quedepende delos dispositivos apareceen los manejadores de dispositivos.
Cada controlador poseeuno o ms registros dedispositivos:
Seutilizan para darlelos comandos.
Los manejadores de dispositivos proveen estos comandos y verican su ejecucin
adecuada.
La labor deun manejador de dispositivos es la de:
Aceptar las solicitudes abstractas quelehaceel softwareindependientedel disposi-
tivo.
Vericar la ejecucin dedichas solicitudes.
Si al recibir una solicitud el manejador est ocupado con otra solicitud, agregara la
nueva solicitud a una cola de solicitudes pendientes.
La solicitud dee/ s, por ej. para un disco, sedebetraducir detrminos abstractos a
trminos concretos:
3
Ver Figura 5.3 dela pgina 161 [23, Tanenbaum].
5.3. PRINCIPIOS DEL SOFTWARE DE E / S 163
El manejador de disco debe:
Estimar el lugar dondeseencuentra en realidad el bloquesolicitado.
Vericar si el motor dela unidad funciona.
Vericar si el brazo est colocado en el cilindro adecuado, etc.
Resumiendo: debedecidir cules son lasoperacionesnecesarias del controlador
y su orden.
Enva los comandos al controlador al escribir en los registros dedispositivo del
mismo.
Frecuentementeel manejador del dispositivosebloqueahastaqueel controlador
realiza cierto trabajo; una interrupcin lo libera deestebloqueo.
Al nalizar la operacin debevericar los errores.
Si todoesta o.k. transferir los datos al softwareindependientedel dispositivo.
Regresa informacin deestado sobrelos errores a quien lo llam.
Inicia otra solicitud pendienteo queda en espera.
5.3.4 Software de E / S I ndependiente del Dispositivo
Funciones generalmente realizadas por el software independiente del dispositivo:
Interfaz uniformepara los manejadores dedispositivos.
Nombres delos dispositivos.
Proteccin del dispositivo.
Proporcionar un tamao debloqueindependientedel dispositivo.
Uso debuers.
Asignacin deespacio en los dispositivos por bloques.
Asignacin y liberacin delos dispositivos deuso exclusivo.
Informedeerrores.
Las funciones bsicas del software independiente del dispositivo son:
Efectuar las funciones dee/ s comunes a todos los dispositivos.
Proporcionar una interfaz uniformedel softwarea nivel usuario.
El softwareindependientedel dispositivo asocia los nombres simblicos delos disposi-
tivos con el nombreadecuado.
Unnombrededispositivodeterminademaneranicael nodo-i deunarchivoespecial:
Estenodo-i contieneel nmero principal del dispositivo, queseutilizapara localizar
el manejador apropiado.
164 CAPTULO 5. ENTRADA / SALIDA
El nodo-i contiene tambin el nmero secundario de dispositivo, que se transere
como parmetro al manejador para determinar la unidad por leer o escribir.
El software independiente del dispositivo debe:
Ocultar a los niveles superiores los diferentes tamaos de sector de los distintos
discos.
Proporcionar un tamao uniformedelos bloques, por ej.: considerar varios sectores
fsicos como un solo bloquelgico.
5.3.5 Software de E / S en el Espacio del Usuario
La mayora del softwaredee/ s est dentro del S. O.
Unapequeaparteconstadebibliotecasligadasentres conlosprogramasdel usuario.
La biblioteca estndar de e / s contiene varios procedimientos relacionados con e / s y
todos seejecutan como partedelos programas del usuario.
Otra categora importante de software de e / s a nivel usuario es el sistema de
spooling.
El spooling es una forma de trabajar con los dispositivos de e/ s de uso exclusivo en
un sistema de multiprogramacin:
El ejemplo tpico lo constituyela impresora delneas.
Los procesos deusuario no abren el archivo correspondientea la impresora.
Secrea un proceso especial, llamado demonio en algunos sistemas.
Secrea un directorio de spooling.
Para imprimir un archivo:
Un proceso genera todo el archivo por imprimir y lo coloca en el directorio despo-
oling.
El proceso especial, nico con permiso para utilizar el archivo especial dela impre-
sora, debeimprimir los archivos en el directorio.
Seevitael posibleproblemadetener un procesodeusuarioquemantengaun recurso
tomado largo tiempo.
Unesquemasimilar tambinesaplicableparalatransferenciadearchivos entreequipos
conectados:
Un usuario coloca un archivo en un directorio despooling dela red.
Posteriormente, el proceso especial lo toma y transmite. Un ej. son los sistemas de
correo electrnico.
5.4. DISCOS - HARDWARE PARA DISCOS 165
5.4 Discos - Hardware Para Discos
5.4.1 Discos
Las siguientes son las principales ventajas con respecto del uso de la memoria principal
como almacenamiento [23, Tanenbaum]:
Mucho mayor capacidad deespacio dealmacenamiento.
Menor precio por bit.
La informacin no sepierdeal apagar la computadora.
Un uso inapropiado de los discos puede generar ineciencia, en especial en sistemas
con multiprogramacin.
5.4.2 Hardware Para Discos
Los discos estn organizados en cilindros, pistas y sectores.
El nmero tpico desectores por pista vara entre8y 32(o ms).
Todos los sectores tienen igual nmero debytes.
Los sectores cercanos a la orilla del disco sern mayores fsicamente que los cercanos
al anillo.
Un controlador puederealizar bsquedas en una o ms unidades al mismo tiempo:
Son las bsquedas traslapadas.
Mientras el controlador y el softwareesperan el n deuna bsqueda en una unidad,
el controlador puedeiniciar una bsqueda en otra.
Muchos controladores pueden:
Leer o escribir en una unidad.
Buscar en otra.
Los controladores no pueden leer o escribir en dos unidades al mismo tiempo.
La capacidad de bsquedas traslapadas puede reducir considerablemente el tiempo pro-
medio de acceso.
5.5 Operacin deAlmacenamiento deDisco deCabeza Mvil
Los datos segraban en una seriedediscos magnticos o platos [7, Deitel].
El ejecomndelosdiscosgiraaunavelocidaddel ordendelas4.000omsrevoluciones
por minuto.
Seleeo escribemedianteuna seriedecabezas de lectura - escritura:
4
Sedisponedeuna por cada superciededisco.
4
Ver Figura 5.4 dela pgina 166 [7, Deitel].
166 CAPTULO 5. ENTRADA / SALIDA
PLATOS EJE BARRA
CABEZAS DE
LECTURA -
ESCRITURA
Figura~5.4: Esquema deun disco decabeza mvil.
Solo puedeacceder a datos inmediatamenteadyacentes a ella:
La partedela superciedel disco dedondeseleer (o sobrela quesegrabar)
debe rotar hasta situarse inmediatamente debajo (o arriba) de la cabeza de
lectura - escritura.
El tiempo derotacin desdela posicin actual hasta la adyacenteal cabezal se
llama tiempo de latencia.
Todaslas cabezasdelectura- escrituraestn montadas sobreuna barrao conjuntode
brazo mvil:
Puede moverse hacia adentro o hacia afuera, en lo que se denomina operacin de
bsqueda.
Para una posicin dada, la seriedepistas accesibles forman un cilindro vertical.
A los tiempos de bsqueda y de latencia se debe agregar el tiempo de transmisin
propiamente dicha.
5
El tiempo total de acceso a un registro particular:
Involucra movimientos mecnicos.
Generalmentees del orden decentsimas desegundo, aunqueel tiempo delatencia
sea dealgunas milsimas desegundo (7a 12aproximadamente).
5
Ver Figura 5.5 dela pgina 167 [7, Deitel].
5.6. ALGORITMOS DE PROGRAMACIN DEL BRAZO DEL DISCO 167
BARRA
TIEMPO DE BUSQUEDA
TIEMPO DE
TRANSMISION
TIEMPO DE
LATENCIA
Figura~5.5: Componentes del acceso a un disco.
5.6 Algoritmos de Programacin del Brazo del Disco
En la mayora delos discos, el tiempo de bsqueda supera al deretraso rotacional y al de
transferencia[23, Tanenbaum], debidoaello, lareduccin del tiempopromediodebsqueda
puede mejorar en gran medida el rendimiento del sistema.
Si el manejador del disco utiliza el algoritmo primero en llegar primero en ser
atendido (FCFS), poco sepuedehacer para mejorar el tiempo debsqueda.
Esposiblequemientrasel brazorealizaunabsquedaparaunasolicitud, otrosprocesos
generen otras solicitudes.
Muchos manejadores tienen una tabla:
El ndicees el nmero decilindro.
Incluye las solicitudes pendientes para cada cilindro enlazadas entre s en una lista
ligada.
Cuando concluyeuna bsqueda, el manejador del disco tienela opcin de elegir la
siguiente solicitud a dar paso:
Seatiendeprimero la solicitud ms cercana, para minimizar el tiempo de bs-
queda.
Estealgoritmo sedenomina primero la bsqueda ms corta (SSF: shor-
test seek rst).
Reduce a la mitad el nmero de movimientos del brazo en comparacin con
FCFS.
Ej. deSSF :
Consideramos un disco de40cilindros.
Sepresenta una solicitud delectura deun bloqueen el cilindro 11.
168 CAPTULO 5. ENTRADA / SALIDA
Durante la bsqueda, llegan solicitudes para los cilindros 1, 36, 16, 34, 9 y 12, en
eseorden.
La secuencia debsqueda SSF ser: 12, 9, 16, 1, 34, 36.
Habr un nmero demovimientos del brazo para un total de:
111cilindros segn FCFS.
61cilindros segn SSF.
El algoritmo SSF tieneel siguienteproblema:
El ingreso denuevas solicitudes puededemorar la atencin delas ms antiguas.
Con un disco muy cargado, el brazo tender a permanecer a la mitad del disco la
mayora del tiempo, como consecuencia deello las solicitudes lejanas a la mitad del
disco tendrn un mal servicio.
Entran en conicto los objetivos de:
Tiempo mnimo derespuesta.
J usticia en la atencin.
La solucin a este problema la brinda el algoritmo del elevador (por su analoga
con el ascensor o elevador):
Semantieneel movimiento del brazo en la misma direccin, hasta queno tienems
solicitudes pendientes en esa direccin; entonces cambia dedireccin.
El softwaredebeconservar el bit dedireccin actual.
Ej. del algoritmo del elevador para el caso anterior, con el valor inicial arriba del bit
dedireccin:
El orden deservicio a los cilindros es: 12, 16, 34, 36, 9y 1.
El nmero demovimientos del brazo correspondea 60cilindros.
El algoritmo del elevador:
Ocasionalmentees mejor queel algoritmo SSF.
Generalmentees peor queSSF.
Dada cualquier coleccin de solicitudes, la cuota mxima del total de movimientos
est ja, siendo el dobledel nmero decilindros.
Una varianteconsisteen rastrear siempre en la misma direccin:
Luego deservir al cilindro con el nmero mayor:
5.6. ALGORITMOS DE PROGRAMACIN DEL BRAZO DEL DISCO 169
El brazo pasa al cilindro denmero menor con una solicitud pendiente.
Contina su movimiento hacia arriba.
Algunos controladores de disco permiten que el software inspeccione el nmero del
sector activo debajo del cabezal:
Si dos o ms solicitudes para el mismo cilindro estn pendientes:
El manejador puede enviar una solicitud para el sector que pasar debajo del
cabezal.
Sepueden hacer solicitudes consecutivas dedistintas pistas deun mismo cilin-
dro, sin generar un movimiento del brazo.
Cuando existen variasunidades, sedebetener una tabla desolicitudes pendientes para
cada unidad.
Si una unidad est inactiva, deber buscarse el cilindro siguiente necesario, si el con-
trolador permitebsquedas traslapadas.
Cuando termina la transferencia actual severica si las unidades estn en la posicin
del cilindro correcto:
Si una o ms unidades lo estn, se puede iniciar la siguiente transferencia en una
unidad ya posicionada.
Si ninguno delos brazos est posicionado, el manejador:
Deberealizar una nueva bsqueda en la unidad quetermin la transferencia.
Debe esperar hasta la siguiente interrupcin para ver cul brazo se posiciona
primero.
Generalmente, las mejoras tecnolgicas de los discos:
Acortan los tiempos de bsqueda (seek).
No acortan los tiempos de demora rotacional (search).
En algunos discos, el tiempo promedio de bsqueda ya es menor que el retraso
rotacional.
El factor dominante ser el retraso rotacional, por lo tanto, los algoritmos que op-
timizan los tiempos debsqueda (como el algoritmo del elevador) perdern impor-
tancia frentea los algoritmos queoptimicen el retraso rotacional.
Una tecnologa importantees la quepermiteel trabajo conjunto de varios discos.
Una conguracin interesante es la de treinta y ocho (38) unidades ejecutndose en
paralelo.
Cuando serealiza una operacin delectura:
Ingresan a la cpu 38bit a la vez, uno por cada unidad.
170 CAPTULO 5. ENTRADA / SALIDA
Los 38bits conforman una palabra de32bits junto con 6bits para vericacin.
Los bits 1, 2, 4, 8, 16y 32seutilizan como bits de paridad.
La palabra de 38 bits se puede codicar mediante el cdigo Hamming, que es un
cdigo corrector de errores.
Si una unidad saledeservicio:
Sepierdeun bit decada palabra.
El sistema puedecontinuar trabajando; sedebea quelos cdigos Hamming se
pueden recuperar deun bit perdido.
Este diseo se conocecomo RAI D; siglas en ingls de arreglo redundante de discos
no costosos.
5.7 Porqu es Necesaria la Planicacin de Discos
En lossistemasdemultiprogramacin muchosprocesospueden estar generandopeticiones
dee/ s sobrediscos [7, Deitel]:
La generacin de peticiones puede ser mucho ms rpida que la atencin de las
mismas:
Seconstruyen lneas de espera o colas para cada dispositivo.
Parareducir el tiempo debsqueda deregistros seordena la cola depeticiones:
esto sedenomina planicacin de disco.
La planicacin de disco implica:
Un examen cuidadoso de las peticiones pendientes para determinar la forma ms
eciente deservirlas.
Un anlisis delas relaciones posicionales entrelas peticiones en espera.
Un reordenamiento de la cola de peticiones para servirlas minimizando los movi-
mientos mecnicos.
Los tipos ms comunes de planicacin son:
Optimizacin dela bsqueda.
Optimizacin rotacional (latencia).
Generalmentelos tiempos debsqueda superan a los delatencia, aunquela diferencia
disminuye:
Muchos algoritmos deplanicacin seconcentran en la reduccin de los tiempos de
bsqueda para un conjunto depeticiones.
5.8. CARACTERSTICAS DESEABLES DE LA PLANIFICACIN 171
Generalmentela reduccin de la latencia recin tieneefectos bajo cargas de trabajo
muy pesadas.
Bajo condiciones de carga ligera (promedio bajo delongitud dela cola), es aceptable
el desempeo del mtodo FCFS (primero en llegar, primero en ser servido).
Bajo condiciones decarga media o pesada, es recomendableun algoritmo de planica-
cin de las colas de requerimientos.
5.8 Caractersticas Deseables de las Polticas de Planica-
cin de Discos
Los principales criterios de categorizacin de las polticas de planicacin son [7, Deitel]:
Capacidad de ejecucin.
Media del tiempo de respuesta.
Varianza de los tiempos de respuesta (predecibilidad).
Una poltica deplanicacin debeintentar maximizar la capacidad de ejecucin:
Maximizar el nmero depeticiones servidas por unidad detiempo.
Minimizar la media del tiempo derespuesta.
Mejorar el rendimiento global, quizs a costa delas peticiones individuales.
La planicacin suele mejorar la imagen total al tiempo que reduce los niveles de
servicio deciertas peticiones:
Semideutilizando la varianza de los tiempos de respuesta.
Lavarianzaesun trminoestadsticoqueindicahastaqupuntotienden adesviarse
del promedio detodos los elementos los elementos individuales.
A menor varianza mayor predecibilidad.
Sedeseaunapolticadeplanicacinqueminimicelavarianza, esdecir quemaximice
la predecibilidad.
No debehaber peticiones quepuedan experimentar niveles deservicio errticos.
5.9 Optimizacin de la Bsqueda en Discos
Las estrategias ms comunes de optimizacin dela bsqueda son las siguientes [7, Deitel]:
FCFS.
SSTF.
172 CAPTULO 5. ENTRADA / SALIDA
SCAN.
SCAN de N - Pasos.
C - SCAN.
Esquema Eschenbach.
5.9.1 Planicacin FCFS (Primero en Llegar, Primero en Ser Servido)
Una peticin no puede ser desplazada por la llegada de una peticin con prioridad ms
alta.
No hay reordenamiento de la cola de peticiones pendientes.
Seignoran las relaciones posicionales entrelas peticiones pendientes.
Ofreceuna varianza pequea aunqueperjudica a las peticiones situadas al nal dela
cola.
5.9.2 Planicacin SSTF (Menor Tiempo de Bsqueda Primero)
El brazo del disco sesita en la siguientepeticin queminimice el movimiento del brazo.
No respeta el orden dellegada delas peticiones a la cola.
Tiendea favorecer a las pistas del centro del disco.
La media de tiempos de respuesta tiende a ser ms baja que con FCFS, para cargas
moderadas.
Lasvarianzas tienden aser mayores quecon FCFS por el efectodelaspistasinteriores
y exteriores.
5.9.3 Planicacin SCAN
El brazo del disco sedesplaza sirviendo a todas las peticiones que encuentra a su paso.
Cambia dedireccin cuando ya no hay peticiones pendientes en la direccin actual.
Ha sido la base de la mayora de las estrategias de planicacin implementadas.
Elimina las discriminaciones deSSTF y tienemenor varianza.
Las pistas exteriores son menos visitadas que las intermedias, pero no es tan grave
como con SSTF.
5.9.4 Planicacin SCAN de N - Pasos
La estrategia demovimiento del brazoes como en SCAN; solo daservicioa las peticiones
queseencuentran en espera cuando comienza un recorrido particular.
Las peticiones que llegan durante un recorrido son agrupadas y ordenadas y sern
atendidas duranteel recorrido de regreso.
Poseemenor varianzadelostiemposderespuestasi secomparacon lasplanicaciones
SSTF y SCAN convencionales.
5.10. OPTIMIZACIN ROTACIONAL EN DISCOS 173
5.9.5 Planicacin C - SCAN (Bsqueda Circular)
El brazo se mueve del cilindro exterior al interior, sirviendo a las peticiones sobre una
basedebsqueda ms corta.
Finalizado el recorrido hacia el interior, salta a la peticin ms cercana al cilindro
exterior y reanuda su desplazamiento hacia el interior.
No discrimina a los cilindros exterior einterior.
La varianza de los tiempos de respuesta es muy pequea.
5.9.6 Esquema Eschenbach
El brazo del disco semuevecomo en C - SCAN, pero:
Las peticiones se reordenan para ser servidas dentro deun cilindro para tomar ven-
taja dela posicin rotacional.
Si dos peticiones trasladan posiciones desectores dentro deun cilindro, solo sesirve
una en el movimiento actual del brazo del disco.
Esta estrategia tiene en cuenta el retraso rotacional.
5.9.7 Conclusiones
Mediantetrabajos desimulacin y de laboratorio sedemostr lo siguiente:
La estrategia SCAN es la mejor con carga baja.
La estrategia C - SCAN es la mejor con cargas medias y pesadas.
La estrategia C - SCAN con optimizacin rotacional es la mejor para cargas muy
pesadas (mejor quela estrategia Eschenbach inclusive).
5.10 Optimizacin Rotacional en Discos
En condiciones de carga pesada, las probabilidades de que ocurran referencias al mismo
cilindroaumentan, por ello resulta til considerar la optimizacin rotacional adems dela
optimizacin de bsqueda [7, Deitel].
La optimizacin rotacional es deuso comn en dispositivos decabezas jas.
La estrategia utilizada es la SLTF (tiempo de latencia ms corto primero):
Situado el brazo del disco en un cilindro:
Examina todas las peticiones sobreel cilindro.
Sirveprimero a la quetieneel retraso rotacional ms corto.
174 CAPTULO 5. ENTRADA / SALIDA
5.11 Consideraciones de los Discos Sobre los Sistemas
Los principales interrogantes son [7, Deitel]:
Cundo es til la planicacin dedisco.
Cundo puededegradar el rendimiento.
El almacenamiento en disco como un recurso limitador
La planicacin dedisco puedemejorar el rendimiento y eliminar el embotellamiento,
que se produce cuando se concentran grandes cargas de peticiones sobre relativamente
pocos discos o pocos cilindros deun disco.
Nivel de multiprogramacin
Generalmente la planicacin es efectiva en sistemas de tiempo compartido con un
nivel alto demultiprogramacin.
Subsistemas de discos mltiples
Frecuentementela cpu est conectada mediantecanales (o bus) a dispositivos contro-
ladores, los queestn conectados a las unidades dediscos.
El embotellamiento puede producirse en algn disco, algn controlador o en algn
canal.
Existesoftware especco para:
Medir la actividad.
Detectar dndeseproduceel embotellamiento.
Para eliminar ciertos embotellamientos puede ser necesaria una reconguracin del
hardware:
Agregar canales, controladores, dispositivos.
Cambiar dispositivos deun controlador a otro.
Cambiar controladores deun canal a otro.
Para ayudar a reducir la congestin del canal, muchos sistemas han incorporado la
tcnica de examen (sensado) de posicin rotacional (RPS):
Reduce el tiempo durante el cual un canal seencuentra ocupado en la bsqueda de
un registro.
RPS permite al canal quedar libre justo hasta antes dequeel registro seencuentre
debajo dela cabeza delectura - grabacin apropiada.
RPS permite varias peticiones activas al mismo tiempo en un solo canal, incremen-
tando la performance.
5.12. MANEJ O DE ERRORES EN DISCOS 175
Distribucin de peticiones no uniformes
Son muy comunes en ciertas situaciones reales.
Son frecuentes en procesos secuenciales dearchivos secuenciales, para los queseafec-
taron cilindros adyacentes inmediatos.
Generalmente en estos casos las bsquedas son cortas y la planicacin de disco ser
depoca utilidad.
Tcnicas de organizacin de archivos
Los mtodos de organizacin y acceso de archivos, as como los DBMS (manejadores
debases dedatos):
Son muy convenientes desdeel punto devista delas aplicaciones y del usuario.
Pueden generar complicaciones en la implementacin y el rendimiento, puesto que
el recorrido de estructuras de ndices, bloques de control, apuntadores, etc., puede
signicar un gran nmero deoperaciones dee/ s.
5.12 Manejo de Errores en Discos
Algunos delos errores ms comunes en discos son [23, Tanenbaum]:
Error deprogramacin:
Ej.: Solicitar un sector no existente.
Error temporal en la suma devericacin:
Ej.: Provocado por polvo en la cabeza.
Error permanenteen la suma devericacin:
Ej.: Un bloquedel disco daado fsicamente.
Error debsqueda:
Ej.: El brazo seenva al cilindro 6pero va al 7.
Error del controlador:
Ej.: El controlador no acepta los comandos.
El manejador del disco debe controlar los errores de la mejor manera posible.
La mayora delos controladores:
Verican los parmetros queseles proporcionan.
Informan si no son vlidos.
Respecto delos errores temporales en la suma de vericacin:
176 CAPTULO 5. ENTRADA / SALIDA
Generalmenteseeliminan al repetir la operacin.
Si persisten, el bloquedebeser marcado como un bloque defectuoso, para queel
softwarelo evite.
Otraposibilidad esquecontroladores inteligentes reserven ciertacantidad depistas:
Sern asignadas en reemplazo depistas defectuosas.
Una tabla asocia las pistas defectuosas con las pistas de repuesto:
Est alojada en la memoria interna del controlador y en el disco.
La sustitucin es transparentepara el manejador.
Puedeafectarseel desempeodelosalgoritmosdebsqueda, comoel del eleva-
dor, ya queel controlador utiliza pistas fsicamentedistintas delas solicitadas.
5.13 Ocultamiento de Una Pista a la Vez en Discos
Generalmente el tiempo de bsqueda supera al de rotacin y transferencia (aunque esto
seesta equilibrando) [23, Tanenbaum].
Una vez resuelta la bsqueda del cilindro correspondiente, no es muy importante si se
lee un sector o toda la pista:
Especialmenteen dispositivos con sensibilidad rotacional (RPS):
El manejador puede ver que sector se encuentra debajo de la cabeza y puede
enviar una solicitud del siguientesector:
Permiteleer una pista en un tiempo de rotacin.
De lo contrario se tardara, en promedio, un tiempo de rotacin ms un
tiempo desector, para leer un solo sector.
Algunos manejadores aprovechan esto mediante un cach secreto de una pista a la
vez:
Es desconocido por el software independientedel dispositivo.
Si senecesita un sector del cach, no es necesaria una transferencia del disco.
Las principales desventajas deesteocultamiento deuna pista a la vez son:
Complejidad del software.
Requerimientos deespacio para buers.
Las transferencias del cachal programa quehacela llamada:
Las deberealizar la cpu medianteun ciclo programado.
No las puedehacer el hardwareDMA.
Algunoscontroladoresrealizanel ocultamientodeunapistaalavezensupropia
memoria interna:
Resulta transparenteal manejador.
Las transferencias entreel controlador y la memoria pueden utilizar DMA.
5.14. DISCOS EN RAM 177
5.14 Discos en RAM
Utilizan una partedela memoria principal asignada con anterioridad para almacenar los
bloques [23, Tanenbaum].
Tienen la ventaja del acceso instantneo:
No hay demora rotacional o debida a las bsquedas.
Son adecuados para el almacenamiento deprogramas o datos con accesos muy fre-
cuentes.
Los bloques dealmacenamiento tienen el mismo tamao queen los discos reales.
Cuandoel manejador debeleer deoescribir en un bloquedeun discoen RAM, calcula
el lugar delamemoriadondeseencuentrael bloquesolicitadoy leeoescribeen el mismo.
5.15 Relojes
Losrelojes ocronmetros son esenciales paralaoperacin desistemas detiempocompar-
tido [23, Tanenbaum].
Registran la hora del da.
Evitan queun proceso monopolicela cpu.
El software para reloj toma generalmente la forma de un manejador de dispositivo,
aunqueno es un dispositivo de bloque ni de caracter.
Losrelojesmssencillotrabajan con lalneadecorrienteelctricade110o220voltios
y provocan una interrupcin por cada ciclo devoltaje, a 50o 60hz.
Otro tipo derelojes consta detres componentes:
Un oscilador decristal, un contador y un registro.
Una pieza decristal decuarzo semonta en una estructura bajo tensin:
Genera una seal peridica demuy alta precisin, generalmenteentre5 y 100
mhz.
Laseal sealimentaenel contador paraquecuenteen formadescendentehasta
cero.
Cuando el contador llega a cero, provoca una interrupcin dela cpu.
Los relojes programables tienen varios modos deoperacin:
Modo de una instancia:
Cuando el reloj seinicializa, copia el valor del registro en el contador.
Decrementa el contador en cada pulso del cristal.
Cuandoel contador llegaaceroprovocaunainterrupcin y sedetienehastaser
nuevamenteinicializado por el software.
Modo de onda cuadrada:
178 CAPTULO 5. ENTRADA / SALIDA
Luegodellegar aceroy provocar lainterrupcin, el registrosecopiademanera
automtica en el contador.
Todo el programa serepiteen forma indenida.
Las interrupciones peridicas sellaman marcas del reloj.
La ventaja del reloj programable es que su frecuencia de interrupcin puede ser con-
trolada por el software.
Las principales funciones del software manejador del reloj son:
Mantener la hora del da o tiempo real.
Evitar quelos procesos seejecuten durantems tiempo del permitido.
Mantener un registro del uso dela cpu.
Controlar llamadas al sistema tipo alarm por partedelos procesos del usuario.
Proporcionar cronmetros guardianes departes del propio sistema.
Realizar resmenes, monitoreo y recoleccin deestadsticas.
El software manejador del reloj puede tener que simular varios relojes virtuales con
un nico reloj fsico.
5.16 Terminales
Las terminales tienen gran nmero deformas distintas [23, Tanenbaum]:
El manejador de la terminal debeocultar estas diferencias.
La parteindependiente del dispositivo en el S. O. y los programas del usuario no se
tienen quereescribir para cada tipo determinal.
Desdeel punto devista del S. O. se las puede clasicar en:
Interfaz RS-232:
Hardcopy (terminales deimpresin).
TTY devidrio (terminales devideo).
Inteligente(computadoras con cpu y memoria).
Interfaz mapeada a memoria:
Orientada a caracteres.
Orientada a bits.
5.16. TERMINALES 179
Las terminales RS-232 poseen un teclado y un monitor que se comunican mediante
una interfaz serial, un bit alavez; lasconversionesdebitsabytesy viceversalasefectan
los chips uart (transmisores - receptores asncronos universales).
Las terminales mapeadas a memoria:
No secomunican medianteuna lnea serial.
Poseen una interfaz medianteuna memoria especial llamada video RAM:
Forma partedel espacio dedirecciones dela computadora.
La cpu sedirigea ella como al resto dela memoria.
En la tarjeta de video RAM hay un chip llamado controlador de video:
Extrae bytes del video RAM y genera la seal de video utilizada para
manejar la pantalla.
El monitor genera un rayo de electrones que recorre la pantalla pintando
lneas.
Cada lnea est constituida por un cierto nmero depuntos o pixeles.
Laseal del controlador devideomodulael rayodeelectronesy determina
si un pixel debeestar o no iluminado.
Losmonitoresdecolor poseentresrayos(rojo, verdeyazul) quesemodulan
independientemente.
En las pantallas mapeadas a caracteres:
Cada caracter en la pantalla equivalea dos caracteres deRAM:
Uno aloja al cdigo (ASCI I) del caracter por exhibir.
Otroesel bytedeatributo, necesarioparadeterminar el color, el videoinverso,
el parpadeo, etc.
En las terminales mapeadas a bits:
Seutiliza el mismo principio.
Cada bit en el video RAM controla en forma directa un solo pixel dela pantalla.
Permiteuna completa exibilidad en los tipos y tamaos decaracteres, varias ven-
tanas y grcos arbitrarios.
Con las pantallas mapeadas a memoria, el teclado se desacopla totalmente de la pan-
talla:
El teclado disponedesu propio manejador.
El manejador del teclado puedeoperar en modo caracter o en modo lnea.
180 CAPTULO 5. ENTRADA / SALIDA
Las terminales pueden operar con una estructura central de buers o con buers ex-
clusivos para cada terminal.
Frecuentementelos manejadores de terminales soportan operaciones tales como:
Mover el cursor hacia arriba, abajo, a la izquierda o a la derecha una posicin.
Mover el cursor a x,y.
Insertar un caracter o una lnea en el cursor.
Eliminar un caracter o una lnea en el cursor.
Recorrer la pantalla hacia arriba o hacia abajo n lneas.
Limpiar la pantalla desde el cursor hacia el nal de la lnea o hasta el nal de la
pantalla.
Trabajar en modo devideo inverso, subrayado, parpadeo o normal.
Crear, construir, mover o controlar las ventanas.
Captulo 6
Bloqueos
6.1 I ntroduccin y Ejemplos de Bloqueo (o I nterbloqueo)
Un proceso dentro deun sistema demultiprogramacin est en un estado de interbloqueo
(o interbloqueado) si estesperando por un evento determinado queno ocurrir [7, Deitel].
Cuando los recursos son compartidos entreusuarios:
Pueden producirse interbloqueos en los cuales los procesos de algunos usuarios
nunca podrn llegar a su trmino.
Sedebeconsiderar laprevencin, evitacin, deteccin y recuperacin del interbloqueo
y la postergacin indenida, queseda cuando un proceso, aunqueno estinterblo-
queado, puedeestar esperando por un evento que probablemente nunca ocurrir.
En algunos casos:
El precio deliberar interbloqueos en un sistema es demasiado alto.
Permitir el interbloqueo podra resultar catastrco.
Los sistemas de cmputos tienen muchos recursos que solo pueden ser utilizados por
un proceso a la vez:
Ej.: impresoras, unidades decinta, espacio dela tabla denodos-i.
Los S. O. tienen la capacidad de otorgar temporalmente a un proceso el acceso
exclusivo a ciertos recursos.
Frecuentementeun proceso necesita el acceso exclusivo no solo a un recurso, sino
a varios.
Ej. debloqueo (deadlock):
Dos procesos desean imprimir grandes archivos en cinta.
El proceso a solicita la impresora, queseleconcede.
El proceso b solicita la unidad decinta, queseleconcede.
181
182 CAPTULO 6. BLOQUEOS
RECURSO
1
PROCESO
A
RECURSO
2
PROCESO
B
RECURSO 1 ASIGNADO A
PROCESO A
PROCESO B PIDIENDO A
RECURSO 1
PROCESO A PIDIENDO
A
RECURSO 2
RECURSO 2 ASIGNADO A
PROCESO B
Figura~6.1: Un interbloqueo simple.
El proceso a solicita la unidad decinta, pero sedeniegalasolicitud hasta queb
la libera.
El proceso b solicita la impresora y seproduceel bloqueo (deadlock).
Ejemplo deinterbloqueo de trco:
Tienesimilitud con el congestionamiento del trnsito en las ciudades.
El trco puededetenersecompletamente.
Es necesaria una intervencin externa para poner orden y restablecer la normalidad.
Ejemplo de interbloqueo de un recurso simple:
Tiene su origen en la contencin normal de los recursos dedicados o reutilizables en
serie:
Pueden ser utilizados por un solo usuario a la vez.
Cada proceso est esperando por el otro para liberar uno delos recursos.
El recurso retenido no ser liberado hasta que el otro proceso usuario libere su
recurso.
Este ltimo proceso usuario no liberar su recurso retenido hasta que el primer
proceso usuario liberesu recurso retenido.
Seproduceuna espera circular.
1
Ejemplo de interbloqueo en sistemas de spool:
Unsistemadespool esutilizadoparaincrementar lacapacidaddeejecucindel sistema,
al disasociar un programa dela lenta velocidad delos dispositivos (ej.: impresoras):
1
Ver Figura 6.1 dela pgina 182 [7, Deitel].
6.2. CONCEPTOS DE RECURSOS 183
Si un programa enva lneas a una impresora, en realidad son enviadas a un dispo-
sitivo ms rpido (disco).
Sealmacenan temporalmentehasta ser impresas.
Varios trabajos en ejecucin que generan lneas de spool pueden interbloquearsesi el
espacio disponiblesellena antes decompletarsealguno deestos trabajos:
Sereduce la probabilidad de interbloqueos del spool:
Proporcionandoun espacio en disco considerablementemayor queel necesario,
preferentementecon asignacin dinmica.
Limitando los spoolers de entrada para que no lean ms trabajos cuando los
archivos despool llegan a cierto nivel desaturacin.
Un problema relacionado: postergacin indenida:
Es posibleque un proceso sea postergado indenidamenteen tanto queotros reciben
la atencin del sistema:
Setrata dela postergacin indenida.
Cuando los recursos son planicados en funcin de prioridades, un proceso dado
puedeesperar indenidamente, mientras sigan llegando procesos deprioridades ma-
yores.
En algunossistemas, lapostergacin indenidaseevitaal permitir quelaprioridad de
un proceso aumentemientras espera por un recurso; a esto sellama envejecimiento.
6.2 Conceptos de Recursos
El S. O. es, sobretodo, un administrador de recursos [7, Deitel].
Los recursos pueden ser apropiativos, como la cpu y la memoria principal.
La apropiatividad es extremadamente importante para el xito de los sistemas compu-
tacionales multiprogramados.
Ciertos recursos son no apropiativos, como las unidades de cinta o cartridge mag-
nticos, o sea queno pueden sacarsedelos procesos a los queestn asignados.
Algunos recursos:
Pueden ser compartidos entrevarios procesos.
Pueden estar dedicados a procesos individuales.
Tambin son recursos compartibles (deuso compartido) ciertos programas:
Secarga una copia del cdigo a memoria.
Sehabilitan varias copias delas estructuras dedatos, una para cada usuario.
184 CAPTULO 6. BLOQUEOS
Como el cdigo puede ser utilizado por varios usuarios a la vez, no puede cambiar
durantela ejecucin:
El cdigo que no cambia durante la ejecucin sedenomina reentrante.
El cdigo que puede ser cambiado, pero se inicializa cada vez que se usa, se
denomina reutilizable en serie.
El cdigo reentrante puede ser compartido simultneamente por varios procesos.
El cdigo reutilizable en serie puede ser usado solo por un proceso a la vez.
Cuando se consideran compartidos a determinados recursos, se debe establecer si son
utilizables por varios procesos simultneamente o de a uno por vez, estos ltimos son los
recursos quems a menudo estn implicados en los interbloqueos.
6.3 Bloqueos y Condiciones Necesarias Para el Bloqueo
Lasecuenciadeeventos necesariosparautilizar unrecursoeslasiguiente[23, Tanenbaum]:
1. Solicitar el recurso.
2. Utilizar el recurso.
3. Liberar el recurso.
Si el recurso no est disponible cuando selo solicita:
El proceso solicitantedebeesperar.
EnalgunosS. O. el procesosebloqueaautomticamentey sedespiertacuandodicho
recurso est disponible.
En otros S. O. la solicitud falla y el proceso debeesperar para luego intentar nueva-
mente.
Un bloqueo sepuededenir formalmente como sigue:
Un conjunto de procesos se bloquea si cada proceso del conjunto espera un evento
que solo puede ser provocado por otro proceso del conjunto [23, Tanenbaum]:
Ya quetodos los procesos estn esperando:
Ninguno realizar un evento que pueda despertar a los dems miembros
del conjunto.
Todos los procesos esperarn por siempre.
Generalmenteel eventoqueesperacadaprocesoeslaliberacindeciertorecurso
queposeepor el momento otro miembro del conjunto:
Cada miembro del conjunto deprocesos bloqueados espera un recurso po-
sedo por un proceso bloqueado.
6.4. MODELACIN DE BLOQUEOS 185
Ningunodelosprocesosbloqueadospuedecontinuar suejecucin, ni liberar
recursos, ni puedeser despertado.
Las condiciones necesarias para el bloqueo son (Coman) [7, Deitel]:
Los procesos reclaman control exclusivo de los recursos que piden (condicin de
exclusin mutua).
Los procesos mantienen los recursos queya les han sido asignados mientras esperan
por recursos adicionales (condicin de espera por).
Losrecursosnopuedenser extradosdelosprocesosquelostienenhastasucompleta
utilizacin (condicin de no apropiatividad).
Existe una cadena circular de procesos en la que cada uno mantiene a uno o ms
recursosquesonrequeridospor el siguienteprocesodelacadena(condicin deespera
circular).
6.4 Modelacin de Bloqueos
La modelacin de bloqueos sepuedemostrar mediantegrcas dirigidas (Holt).
2
Las grcas tienen dos tipos denodos:
Procesos (aparecen como crculos).
Recursos (aparecen como cuadrados).
Un arco deun nodo derecurso a uno deproceso indica queel recurso fuesolicitado
con anterioridad, fueotorgado y es posedo en esemomento por dicho proceso.
Un arco deun proceso a un recurso indica queel proceso est bloqueado, en espera
deeserecurso.
Un ciclo en la grcaindica laexistencia deun bloqueo relacionado con los procesos
y recursos en el ciclo.
3
Las estrategias utilizadas para enfrentar los bloqueos son:
Ignorar todo el problema.
Deteccin y recuperacin.
Evitarlos dinmicamentemedianteuna cuidadosa asignacin derecursos.
Prevencin mediantela negacin estructural deuna delas cuatro condiciones nece-
sarias.
2
Ver Figura 6.2 dela pgina 186 [23, Tanenbaum].
3
Ver Figura 6.3 dela pgina 186 y Figura 6.4 dela pgina 187 [23, Tanenbaum].
186 CAPTULO 6. BLOQUEOS
POSESION DE
UN RECURSO
SOLICITUD DE
UN RECURSO
BLOQUEO
A
R
S
B
T U
D
C
Figura~6.2: Grcas deasignacin derecursos.
PROCESOS: A, B, C RECURSOS: R, S, T
SECUENCIA DEL PROCESO A:
SOLICITUD DE R, SOLICITUD DE S, LIBERACION DE R, LIBERACION DE S.
SECUENCIA DEL PROCESO B:
SOLICITUD DE S, SOLICITUD DE T, LIBERACION DE S, LIBERACION DE T.
SECUENCIA DEL PROCESO C:
SOLICITUD DE T, SOLICITUD DE R, LIBERACION DE T, LIBERACION DE R.
SECUENCIA DE SOLICITUDES DE RECURSOS QUE CONDUCE A BLOQUEO:
A SOLICITUD R, B SOLICITUD S, C SOLICITUD T,
A SOLICITUD S, B SOLICITUD T, C SOLICITUD R, BLOQUEO.
A B C
R S T
A B C
R S T
A B C
R S T
Figura~6.3: Ejemplo deocurrencia deun bloqueo y la forma deevitarlo.
6.4. MODELACIN DE BLOQUEOS 187
A
R
B
S
C
T
A
R
B
S
C
T
A
R
B
S
C
T
SECUENCIA DE SOLICITUDES DE RECURSOS QUE NO CONDUCE A BLOQUEO:
A SOLICITUD R, C SOLICITUD T, A SOLICITUD S,
C SOLICITUD R, A LIBERA R, A LIBERA S, NO EXISTE BLOQUEO.
A B C A B C A B C
R S T R S T R S T
A
R S T
B C A
R
B
S
C
T
A
R
B
S
C
T
Figura~6.4: Ejemplo deocurrencia deun bloqueo y la forma deevitarlo (continuacin).
188 CAPTULO 6. BLOQUEOS
6.5 Areas Principales en la I nvestigacin de Bloqueos
Los principales aspectos son los siguientes [7, Deitel]:
Prevencin del bloqueo.
Evitacin del bloqueo.
Deteccin del bloqueo.
Recuperacin del bloqueo.
Prevencin del bloqueo:
El inters secentra en condicionar un sistema para queelimine toda posibilidad de
questos seproduzcan.
Los mtodos pueden dar como resultado una pobre utilizacin de los recursos, an
as son ampliamenteutilizados.
Evitacin del bloqueo:
Lametaes imponer condiciones menos estrictas queen laprevencin, paraintentar
lograr una mejor utilizacin de los recursos.
No precondiciona al sistema para que evite todas las posibilidades de que se pro-
duzca un bloqueo.
Permiten la aparicin del bloqueo, pero siempreque seproduceuna posibilidad de
bloqueo, steseesquiva.
Deteccin del bloqueo:
Se utiliza en sistemas que permiten que stos ocurran, ya sea voluntaria o involun-
tariamente.
La meta es determinar si ha ocurrido un bloqueo:
Sedebedetectar conprecisinlosprocesosyrecursosimplicadosenel bloqueo.
Sepuedeeliminar el bloqueo detectado.
Recuperacin del bloqueo:
Seutiliza para despejar bloqueos deun sistema para que:
Contineoperando sin ellos.
Terminen los procesos estancados.
Seliberen los recursos correspondientes a ellos.
Generalmente se logra extrayendo (cancelando) a uno o varios de los procesos
bloqueados, quesereinician luego deforma normal.
6.6. EL ALGORITMO DEL AVESTRZ O DE OSTRICH 189
6.6 El Algoritmo del Avestrz o de Ostrich
El punto devista ms simplees pretender que no existe el problema [23, Tanenbaum].
Esta estrategia puedegenerar distintas reacciones:
Matemticamentees inaceptable, considerndosequelos bloqueos deben evitarsea
toda costa.
Desde la ingeniera de software podra considerarse cul es la frecuencia esperada
del problema, cules son sus consecuencias esperadas, cules son las frecuencias
esperadas defallas deotro tipo, etc.
AlgunosS. O. soportan potencialmentebloqueosqueni siquierasedetectan, yaquese
rompen automticamente.
Los S. O. queignoran el problema delos bloqueos asumen la siguiente hiptesis:
La mayora delos usuarios preferira un bloqueo ocasional, en vez deuna regla que
restringiera a todos los usuarios en el uso delos distintos tipos derecursos.
El problemaesquesedebepagar unciertoprecio para encarar el problema del bloqueo:
En restricciones para los procesos.
En el uso derecursos.
Sepresenta una contradiccin entrela conveniencia y lo quees correcto.
Es muy difcil encontrar tericamentesoluciones prcticas deorden general aplicables
a todos los tipos deS. O.
Uncriteriodeorden general utilizadopor losS. O. quenohacentratamientoespecco
del bloqueo consisteen:
Intentar acceder al recurso compartido.
Deno ser factibleel acceso:
Esperar un tiempo aleatorio.
Reintentar nuevamente.
6.7 Deteccin de Bloqueos
El S. O. no intenta evitar los bloqueos [23, Tanenbaum]:
Intenta detectar cuando han ocurrido.
Acciona para recuperarse despus del hecho.
La deteccin del bloqueo es el proceso de:
Determinar si dehecho existeo no un bloqueo.
190 CAPTULO 6. BLOQUEOS
Identicar cules son los procesos y recursos implicados en el bloqueo.
Los algoritmos de deteccin de bloqueos implican cierta sobrecarga en tiempo de eje-
cucin, por lo cual surgeel siguienteinterrogante: compensa la sobrecarga implcita en
los algoritmos dedeteccin debloqueos, el ahorro potencial delocalizarlos y romperlos ?.
6.7.1 Grcas de Asignacin de Recursos
Una grca dirigida indica las asignaciones y peticiones derecursos.
Los cuadros representan procesos.
Los crculos grandes indican clases de recursos idnticos.
Los crculos pequeos, dibujados dentro de los grandes, representan el nmero de
recursos idnticos dentro de cada clase.
4
6.7.2 Reduccin de Grcas de Asignacin de Recursos
Si las peticiones derecursos deun proceso pueden ser concedidas, sedicequeuna grca
puede ser reducida por ese proceso.
La reduccin de una grca por un proceso determinado semuestra retirando:
Las echas quevan delos recursos al proceso (los recursos asignados al proceso).
Las echas quevan del proceso al recurso (las peticiones actuales del proceso).
Si una grca puedeser reducida por todos sus procesos, entonces no hay interbloqueo.
Si una grca no puede ser reducida por todos sus procesos, entonces los procesos
irreducibles constituyen la serie de procesos interbloqueados de la grca.
5
6.7.3 Deteccin de Bloqueos de Forma Un Recurso de Cada Tipo
No sedisponedems deun objeto de cada clase de recurso.
Si la grca de recursos contuviera uno o ms ciclos, existira un bloqueo.
Cualquier proceso queforme parte de un ciclo est bloqueado; si no existen ciclos, el
sistema no est bloqueado.
Ejemplo: sistema con 7(siete) procesos (A aG) y 6(seis) recursos (R aW):
La posesin delos recursos es la siguiente:
El proceso A poseea R y desea a S.
El proceso B no poseerecurso alguno y desea a T.
El proceso C no poseerecurso alguno y desea a S.
El proceso D poseea U y desea a S y a T.
El proceso E poseea T y desea a V.
El proceso F poseea W y desea a S.
4
Ver Figura 6.5 dela pgina 191 [7, Deitel].
5
Ver Figura 6.6 dela pgina 192 [7, Deitel].
6.7. DETECCIN DE BLOQUEOS 191
P1
P1 ESTA PIDIENDO UN RECURSO DEL TIPO R1.
R2
P2
UN RECURSO DEL TIPO R2 HA SIDO
ASIGNADO AL PROCESO P2.
P3
R3
P4
EL PROCESO P3 ESTA PIDIENDO EL RECURSO R3,
EL CUAL HA SIDO ASIGNADO AL PROCESO P4.
P5
R4
R5 P6
AL PROCESO P5 LE HA SIDO ASIGNADO EL RECURSO R5,
QUE ESTA SIENDO PEDIDO POR EL PROCESO P6, AL
CUAL LE HA SIDO ASIGNADO EL RECURSO R4, QUE
ESTA SIENDO PEDIDO POR EL PROCESO P5
(SE DA LA ESPERA CIRCULAR).
Figura~6.5: Grca deasignacin y peticin derecursos.
El proceso G poseea V y desea a U.
La pregunta es: est bloqueado estesistema y, en tal caso, cules son los procesos
bloqueados?.
La respuesta seobtienemediantela grca de recursos: si la grca presenta un
ciclo signica procesos bloqueados.
6
Se hace necesario un algoritmo formal para la deteccin de bloqueos que se pueda
utilizar en los sistemas reales.
Ejemplo dealgoritmo aplicablea cada nodo N dela grca:
1. Seconsidera a N como nodo inicial.
2. Seinicializan:
La estructura dedatos Lcomo una lista vaca.
Todos los arcos como no marcados.
3. Se aade el nodo activo al nal de L y se verica si el nodo aparece en L dos
veces:
Si aparecedos veces existeun ciclo y el algoritmo termina.
6
Ver Figura 6.7 dela pgina 192 [23, Tanenbaum].
192 CAPTULO 6. BLOQUEOS
P7
R6
P8
R7
P9
P7
R6
P8
P9
R7
REDUCIDA POR P9
REDUCIDA POR P7
R6
P7
R7
P8
P9
P7
P9
P8
R6
R7
REDUCIDA POR P8
Figura~6.6: Reducciones degrcas.
R A
S C
F
W
D
U
G
T
B
E
V
LOS PROCESOS D, E Y G
ESTAN BLOQUEADOS.
LOS PROCESOS A, C Y F
NO ESTAN BLOQUEADOS.
Figura~6.7: Grca derecursos y procesos.
6.7. DETECCIN DE BLOQUEOS 193
4. Desdeel nodo dado severica si existen arcos quesalgan dedicho nodo y no estn
marcados:
En caso armativo seva al paso 5.
En caso negativo seva al paso 6.
5. Seeligeal azar un arco desalida no marcado y selemarca:
Luego sesigueestearco hasta el nuevo nodo activo y seregresa al paso 3.
6. Seha llegado a un punto dondeno sepuedecontinuar:
Seregresa al nodo anterior, es decir al queestaba activo antes del actual.
Seseala denuevo como nodo activo.
Sepasa al paso 3.
Si este nodo era el nodo inicial, la grca no contiene ciclos y el algoritmo
termina.
La aplicacin del algoritmo precedente al ejemplo anterior de grca dirigida es la
siguiente:
SepartedeR y seinicializa L como la lista vaca.
SeaadeR a la lista y semuevea la nica posibilidad, A.
SeaadeA a la lista: L=[R,A].
Sepasa deA a S, quedando L=[R,A,S].
S no tienearcos quesalgan del, por lo queno sepuedecontinuar y seregresa a
A.
Ya que A no tiene arcos de salida no marcados se regresa a R, nalizando la
inspeccin deR.
Se inicia nuevamente el algoritmo partiendo de A, siendo L otra vez la lista
vaca.
La bsqueda termina rpidamentey separtedeB.
DeB sesiguen losarcosdesalidahastallegar aD, siendoL=[B,T,E,V,G,U,D].
Seefecta una eleccin al azar.
Si seeligeS llegamos a un punto sin salida y debemos regresar a D.
La segunda vez seeligeT quedando L=[B,T,E,V,G,U,D,T]:
Seha descubierto un ciclo y el algoritmo sedetiene.
194 CAPTULO 6. BLOQUEOS
6.7.4 Deteccin de Bloqueos de Forma Varios Recursos de Cada Tipo
Seconsidera un algoritmo basado en matrices para la deteccin deun bloqueo entren
procesos, P
1
" hasta P
n
.
Seconsidera m el nmero declases de recursos con:
E
1
recursos dela clase1.
E
2
recursos dela clase2.
E
i
recursos dela clasei (1menor o igual quei menor o igual quem).
E es el vector de recursos existentes.
En todo momento algunos de los recursos estn asignados y por lo tanto no estn
disponibles.
Seconsidera un vector A de recursos disponi bles:
A
i
" indicael nmerodeinstanciasdisponiblesdel recursoi ; sereerearecursos
no asignados.
Seutilizan:
La matriz C de la asi gnacin actual.
La matriz R de solici tudes.
El rengln i -simodeC indica el nmero deinstancias decada claseP
i
" posedas
en esemomento.
C
i j
" es el nmero de instancias del recurso j deseadas por P
i
".
Cada recurso est asignado o disponible, es decir que la suma de las instancias del
recurso j asignadas y el nmero de instancias disponibles es el nmero de instancias
existentes deesa clasederecurso [23, Tanenbaum].
6.7. DETECCIN DE BLOQUEOS 195
Recursos en existencia E:

E
1
; E
2
; E
3
; ::::::: E
m

Recursos disponibles A:

A
1
; A
2
; A
3
; ::::::: A
m

Matriz deasignacin actual C:
2
6
6
6
6
4
C
11
C
12
C
13
::::::: C
1m
C
21
C
22
C
23
::::::: C
2m
: : : : :
: : : : :
C
n1
C
n2
C
n3
::::::: C
nm
3
7
7
7
7
5
El rengln n es la asignacin actual para el proceso n.
Matriz desolicitudes R:
2
6
6
6
6
4
R
11
R
12
R
13
::::::: R
1m
R
21
R
22
R
23
::::::: R
2m
: : : : :
: : : : :
R
n1
R
n2
R
n3
::::::: R
nm
3
7
7
7
7
5
El rengln 2 es lo quenecesita el proceso 2.
Estructuras dedatos necesarias para el algoritmo dedeteccin debloqueos.
El algoritmo dedeteccin debloqueos sebasa en la comparacin devectores:
Denimos queA es menor o igual queB si y solo si A
i
es menor o igual que
B
i
para i entre0 y m, ambos inclusive.
Los procesos no estn marcados al principio.
Al avanzar el algoritmo los procesos semarcarn:
Esto indica quepueden terminar su labor, ya queno estn bloqueados.
Al concluir el algoritmo sesabequelos procesos no marcados estarn bloqueados.
Los pasos bsicos del algoritmo de deteccin debloqueos son los siguientes:
196 CAPTULO 6. BLOQUEOS
RECURSOS EN EXISTENCIA:
E = (4 2 3 1)
CD ROM
IMPRESORAS
PLOTTERS
UNIDADES DE CINTA
RECURSOS DISPONIBLES:
A = (2 1 0 0)
MATRIZ DE ASIGNACION ACTUAL:
0 0 1 0
2 0 0 1
0 1 2 0
C =
MATRIZ DE SOLICITUDES:
2 0 0 1
1 0 1 0
2 1 0 0
R =
Figura~6.8: Un ejemplo del algoritmo dedeteccin debloqueos.
1. Sebusca un proceso no marcado P
i
" , para el cual el i -simo rengln deR sea
menor queA.
2. Si se encuentra tal proceso, se suma el i -simo rengln de C a A, se marca el
proceso y seregresa al paso 1.
3. Si no existetal proceso, el algoritmo termina.
En el ejemplo tenemos 3procesos y 4clases de recursos.
7
El proceso 1tiene1impresora.
El proceso 2tiene2unidades decinta y 1unidad decd rom.
El proceso 3tiene1plotter y 2impresoras.
La matriz R indica las necesidades derecursos adicionales.
El algoritmo de deteccin de bloqueos busca un proceso cuya solicitud de un recurso
pueda ser satisfecha:
El proceso 1no sepuedesatisfacer por no disponer deuna unidad decd rom.
El proceso 2no sepuedesatisfacer por no disponer deuna impresora.
El proceso 3 s se puede satisfacer, por lo que se ejecuta, regresando en cierto mo-
mento sus recursos, lo queresulta en: A =(2220).
Seejecuta el proceso 2, el cual regresa sus recursos, obtenindose: A =(4221).
Seejecuta el proceso restante: no existe bloqueo en el sistema.
Si seconsidera la siguientevariante:
El proceso 2necesita 1unidad decd rom, las 2unidades decinta y el plotter.
No sepueden satisfacer las 3solicitudes y todo el sistema se bloquea.
7
Ver Figura 6.8 dela pgina 196 [23, Tanenbaum].
6.8. RECUPERACIN DE BLOQUEOS 197
6.7.5 Cundo Buscar los Bloqueos
Una posibilidad es cada vez que se solicita un recurso, pero esto podra sobrecargar al
sistema.
Otra posibilidad es vericar cada k minutos.
Otro criterio es vericar cuando el uso de la cpu baje de cierto valor jo:
Si sebloquean sucientes procesos:
Existirn pocos procesos en ejecucin.
La cpu estar inactiva con ms frecuencia.
6.8 Recuperacin de Bloqueos
Para romper el bloqueo deun sistema hay queanular una o ms de las condiciones nece-
sarias para el bloqueo [7, Deitel].
Normalmente, varios procesos perdern algo o todo lo realizado hasta el momento.
Los principales factores quedicultan la recuperacin del bloqueo son los siguientes:
Puedeno estar claro si el sistema seha bloqueado o no.
Muchossistemastienenlimitacionesparasuspender unprocesopor tiempoindenido
y reanudarlo ms tarde:
Ej.: Los procesos de tiempo real, que deben funcionar continuamente, no son
fciles desuspender y reanudar.
Los procedimientos de suspensin / reanudacin implican una sobrecarga conside-
rable.
La sobrecarga de recuperacin est en funcin de la magnitud del bloqueo (algunos,
decenas o centenas deprocesos involucrados).
Generalmentela recuperacin suelerealizarse:
Retirando forzosamente(cancelando) a un proceso.
Reclamando sus recursos.
Permitiendo quelos procesos restantes puedan nalizar.
Los procesos pueden ser retirados (cancelados) deacuerdo a un orden de prioridades,
existiendo las siguientes dicultades:
Pueden no existir las prioridades delos procesos bloqueados.
Las prioridades instantneas (en un momento dado), pueden ser incorrectas o con-
fusas debido a consideraciones especiales, por ej.: procesos de baja prioridad que
tienen prioridad alta momentneamentedebido a un tiempo topeinminente.
198 CAPTULO 6. BLOQUEOS
La decisin ptima puederequerir un gran esfuerzo.
Algunas formas de recuperacin antebloqueos son [23, Tanenbaum]:
Recuperacin mediante la apropiacin.
Recuperacin mediante rollback.
Recuperacin mediante la eliminacin de procesos.
6.8.1 Recuperacin Mediante la Apropiacin
En ciertos casos podra ser posible tomar un recurso temporalmente de su poseedor y
drselo a otro proceso, por ej.:
Retirar una impresora deun proceso para dedicarla a otro proceso.
Retomar luego el primer proceso reasignndola al mismo.
La recuperacin de recursos de esta forma depende en gran medida de la naturaleza
del recurso.
La eleccin del proceso a suspender dependemucho:
Decules procesos poseen recursos quepueden ser tomados con facilidad.
Delas posibilidades derecuperacin luego dela apropiacin.
6.8.2 Recuperacin Mediante Rollback
En los S. O. dondees posible queocurran bloqueos sepuedehacer quelos procesos sean
vericados peridicamente:
Su estado segraba en un archivo demodo quepueda volver a iniciar ms tarde.
El punto de vericacin o decontrol contiene:
La imagen dela memoria.
El estadodelosrecursos, esdecir, el detalledelosrecursosasignadosal proceso
en eseinstante.
Los puntos devericacin grabados duranteun proceso semantienen sin ser regra-
bados.
Al detectarse un bloqueo es fcil ver cules son los recursos necesarios.
Paralarecuperacin, un procesoqueposeeun recursonecesario regresa hastacierto
instanteen el tiempo anterior a la adquisicin:
Inicializa alguno desus anteriores puntos devericacin.
El proceso regresa a un momento anterior en el queno posea el recurso.
El recurso seasigna ahora a uno delos procesos bloqueados.
Si el proceso que volvi a iniciar intenta adquirir de nuevo el recurso, tendr que
esperar hasta queestdisponible.
6.9. EVASIN DE BLOQUEOS 199
6.8.3 Recuperacin Mediante la Eliminacin de Procesos
Es la forma ms sencilla deromper un bloqueo.
Unaposibilidad eseliminar un proceso del ciclo: si el bloqueonoserompe, sepuede
intentar con otro proceso del ciclo, hasta romper dicho ciclo.
Otraposibilidadeseliminar un proceso queno esten el ciclo, parapoder liberar sus
recursos: debe elegirse un proceso que posea recursos necesarios por algn proceso
del ciclo.
Siemprequesea posible, es mejor eliminar un proceso quepueda volver a iniciar su
ejecucin sin efectos dainos:
Espreferibleeliminar unprocesodecompilacinqueunprocesodeactualizacin
deuna basededatos:
La compilacin sepuederepetir sin problemas.
Laactualizacin deuna basededatos no siempresepuederepetir directa-
mente.
6.9 Evasin de Bloqueos
En este anlisis se supone implcitamente que si un proceso solicita recursos, los solicita
todos al mismo tiempo [23, Tanenbaum]:
En la mayora delos sistemas los recursos sesolicitan uno a la vez.
El S. O. debepoder:
Decidir si el otorgamiento deun recurso es seguro o no.
Asignarlo solo en caso dequesea seguro.
El objetivo es evitar el bloqueo haciendo la eleccin correcta todoel tiempo, pero para
evitar los bloqueos serequieredecierta informacin deantemano.
6.9.1 Trayectorias de Recursos
Los principales algoritmos para evitar los bloqueos se basan en el concepto de estados
seguros.
8
El ejemplo de modelo grco utilizado indica lo siguiente:
Es vlido para dos procesos y dos recursos.
El eje horizontal representa el nmero de instrucciones ejecutadas por el proceso
A.
El ejevertical representa el nmero deinstrucciones ejecutadas por el proceso B.
8
Ver Figura 6.9 dela pgina 200 [23, Tanenbaum].
200 CAPTULO 6. BLOQUEOS
B
A
I8
I7
I6
I5
p q I1 I2 I3 I4
r s
t
u (AMBOS PROCESOS CONCLUYEN)
SEGURA
SEGURA
SEGURA
SEGURA SEGURA
REGION INALCANZABLE
REGION SEGURA
IMPRES.
PLOT.
IMPRESORA
PLOTTER
Figura~6.9: Trayectorias derecursos dedos procesos.
En I
1
"; A solicita una impresora y en I
2
necesita un plotter.
En I
3
" eI
4
" seliberan la impresora y el plotter.
El proceso B necesita el plotter desdeI
5
" hasta I
7
" y la impresora desdeI
6
"
hasta I
8
".
Cada punto del diagrama representa un estado conjunto delos dos procesos.
El estado inicial es p, sin quelos procesos hayan ejecutado instruccin alguna.
Si el planicador del S. O. elige A se pasa a q, en donde A ha ejecutado
instrucciones pero no B.
En q la trayectoria se vuelve vertical, ya que el planicador ha elegido ejecutar
B.
Con un monoprocesador todas las trayectorias sern horizontales o verticales (no
diagonales).
Cuando A cruzalalneaI
1
" en latrayectoriader as, solicitay seleotorga
la impresora.
Cuando B alcanza el punto t, solicita el plotter.
La regin delimitada por I
1
", I
3
", I
6
" e I
8
" representa que ambos procesos
poseen la impresora, pero esto es imposibley la regla de exclusin mutua impidela
entrada a esta regin.
6.9. EVASIN DE BLOQUEOS 201
La regin delimitada por I
2
", I
4
", I
5
" e I
7
" representa que ambos procesos
poseen el plotter, lo quees imposible.
Si el sistemaingresaraalaregindelimitadapor I
1
", I
2
", I
5
" eI
6
" sebloquear
en la interseccin deI
2
" eI
6
":
Ac, A solicita el plotter y B la impresora, queya estn asignados.
Toda la regin no es segura y no hay que entrar a ella:
En t, lo nico seguro es ejecutar A hasta llegar a I
4
".
Luego sepuedeutilizar cualquier trayectoria hasta u.
En t, B solicita un recurso:
El S. O. debedecidir si lo otorga o no.
Si lo otorga, el sistema entrar a una regin insegura y se bloquear en algn
momento.
Paraevitar el bloqueo, hay quesuspender aB hastaqueA hayasolicitado
y liberado el plotter.
6.9.2 Estados Seguros e I nseguros
Un estado actual est conformado por E, A, C y R:
E: vector de recursos en existencia.
A: vector de recursos disponibles.
C: matriz de asignacin actual.
R: matriz de solicitudes.
Un estado es seguro si:
No est bloqueado.
Existeunaformadesatisfacer todaslassolicitudespendientes, mediantelaejecucin
delos procesos en cierto orden.
Ejemplo con un recurso para demostrar queel estado en (a) es seguro:
El estado es seguro ya queexisteuna sucesin deasignaciones quepermiten terminar
a todos los procesos; dicha sucesin deasignaciones es la siguiente:
9
Ejemplo con un recurso para mostrar un estado inseguro:
10
No sepuedegarantizar queterminen los tres procesos.
Si el proceso A pide y se le otorga una unidad, puede producirse un bloqueo de
tres vas si cada uno delos procesos necesitaal menos otra unidad del recurso antes
deliberar ninguna.
202 CAPTULO 6. BLOQUEOS
( a ) ( b ) ( c ) ( d ) ( e )
T M T M T M T M T M
A 3 9 A 3 9 A 3 9 A 3 9 A 3 9 T: Tiene
B 2 4 B 4 4 B 0 - B 0 - B 0 - M: Mximo
C 2 7 C 2 7 C 2 7 C 7 7 C 0 - L: Libre
L: 3 L: 1 L: 5 L: 0 L: 7
Tabla 6.1: Ejemplo deestado seguro en (a).
T M
A 8 10 T: Tiene
B 2 5 M: Mximo
C 1 3 L: Libre
L: 1
Tabla 6.2: Ejemplo deestado inseguro.
Un estado inseguro [7, Deitel]:
No implica la existencia, ni siquiera eventual, de bloqueo.
S implicaquealgunasecuenciainfortunadadeeventosdcomoresultadoun bloqueo.
La diferencia entre estado seguro e inseguro es que:
A partir deun estado seguro, el sistema puedegarantizar la conclusin de todos los
procesos.
A partir deun estado inseguro, no existe tal garanta.
Ejemplo deuna transicin de estado seguro a estado inseguro:
11
Dado un estado actual seguro, ello no implica que vayan a ser seguros todos los
estados futuros.
6.9.3 El Algoritmo del Banquero (de Dijkstra) Para Solo Un Recurso
Es un algoritmo de planicacin quepuedeevitar los bloqueos [23, Tanenbaum].
En la analoga:
Los clientes son los procesos, las unidades de crdito son los recursos del sistema y
el banquero es el S. O.
9
Ver Tabla 6.1 dela pgina 202 [23, Tanenbaum].
10
Ver Tabla 6.2 dela pgina 202 [7, Deitel].
11
Ver Tabla 6.3 dela pgina 203 [7, Deitel].
6.9. EVASIN DE BLOQUEOS 203
T M T M
A 1 4 A 1 4 T: Tiene
B 4 6 B 4 6 M: Mximo
C 5 8 C 6 8 L: Libre
L: 2 L: 1
Tabla 6.3: Ejemplo deuna transicin deestado seguro a estado inseguro.
El banquerosabequenotodoslosclientesnecesitaransucrditomximootorgadoen
formainmediata, por elloreservamenosunidades(recursos) delastotalesnecesarias
para dar servicio a los clientes.
Un estado inseguro no tiene que llevar a un bloqueo.
El algoritmo del banquero consisteen:
Estudiar cada solicitud al ocurrir sta.
Ver si su otorgamiento conducea un estado seguro:
En caso positivo, seotorga la solicitud.
En caso negativo, sela pospone.
Para ver si un estado es seguro:
Verica si tienelos recursos sucientes para satisfacer a otro cliente:
En caso armativo, sesuponequelos prstamos sepagarn.
Severica al siguienteclientecercano al lmitey as sucesivamente.
Si en cierto momento sevuelven a pagar todos los crditos, el estado es seguro
y la solicitud original debeser aprobada.
6.9.4 El Algoritmo del Banquero (de Dijkstra) Para Varios Recursos
Ac tambin los procesos deben establecer sus necesidades totales de recursos antes de
su ejecucin y dada una matriz de recursos asignados, el S. O. debe poder calcular en
cualquier momento la matriz derecursos necesarios.
12
Sedisponede:
E: vector de recursos existentes.
P: vector de recursos posedos.
A: vector de recursos disponibles.
El algoritmo para determinar si un estado es seguro es el siguiente[23, Tanenbaum]:
12
Ver Tabla 6.4 dela pgina 204 [23, Tanenbaum].
204 CAPTULO 6. BLOQUEOS
1. Sebusca un rengln R cuyas necesidades derecursos no satisfechas sean menores
o iguales queA:
Si no existe tal rengln, el sistema se bloquear en algn momento y ningn
proceso podr concluirse.
2. Supongamosqueel procesodel renglnelegidosolicitatodoslosrecursosquenecesita
y concluye:
Seseala el proceso como concluido y seaaden sus recursos al vector A.
3. Serepiten los pasos 1y 2:
Hasta quetodos los procesos queden sealados como concluidos, en cuyo caso,
el estado inicial era seguro, o
Hasta queocurra un bloqueo, en cuyo caso, no lo era.
R e c u r s o s R e c u r s o s
A s i g n a d o s N e c e s a r i o s
A 3 0 1 1 A 1 1 0 0
B 0 1 0 0 B 0 1 1 2 E=(6342)
C 1 1 1 0 C 3 1 0 0 P=(5322)
D 1 1 0 1 D 0 0 1 0 A=(1020)
E 0 0 0 0 E 2 1 1 0
"
P r o c e s o s
Tabla 6.4: El algoritmo del banquero con varios recursos.
6.9.5 Asignacin de Recursos por el Algoritmo del Banquero
Se permiten las condiciones de exclusin mutua, espera por y no apropiatividad
[7, Deitel].
Los procesos reclaman uso exclusivo delos recursos querequieren.
Los procesos mantienen los recursos mientras piden y esperan por otros recursos adi-
cionales, pero no pueden apropiarsedeun proceso quemantenga esos recursos.
Las peticiones son deun recurso a la vez.
El S. O. puedeconceder o negar cada una delas peticiones; si seniega una peticin:
El proceso retienelos recursos queya tieneasignados.
Espera un tiempo nito hasta quelesea atendida la peticin.
El S. O. concede peticiones que den como resultado solo estados seguros.
Dado que el sistema se mantienesiempreen estado seguro, todas las peticiones sern
atendidas en un tiempo nito.
6.10. PREVENCIN DE BLOQUEOS 205
6.9.6 Debilidades del Algoritmo del Banquero
Requierequeexista un nmero jo derecursos asignables, pero generalmenteno sepuede
contar con queel nmero derecursos semantenga siempreconstante[7, Deitel].
Requierequela poblacin de usuarios se mantenga constante, lo cual es irrazonable.
Requierequeel S. O. garanticequetodas las peticiones sern concedidas en un tiempo
nito, pero en la realidad serequieren mayores garantas.
Requierequelosprocesosreintegrenlosrecursosen un tiemponito, peroenlarealidad
serequieren mayores garantas.
Requierequelos procesos indiquen sus necesidades mximas derecursos por adelanta-
do, lo cual generalmenteno ocurre.
Generalmenteno es utilizado en S. O. reales.
6.10 Prevencin de Bloqueos
Si se puede garantizar que al menos una de las cuatro condiciones de Coman para el
bloqueonuncasesatisface, entonceslosbloqueossernimposiblespor razonesestructurales
(enunciado de Havender) [23, Tanenbaum].
Havender sugiri las siguientes estrategias para evitar varias de las condiciones de
bloqueo:
Cada proceso [7, Deitel]:
Deber pedir todos sus recursos requeridos deuna sola vez.
No podr proceder hasta quelehayan sido asignados.
Si a un proceso que mantiene ciertos recursos se le niega una nueva peticin, este
proceso deber:
Liberar sus recursos originales.
En caso necesario, pedirlos denuevo junto con los recursos adicionales.
Seimpondr la ordenacin lineal delos tipos derecursos en todos los procesos:
Si a un proceso lehan sido asignados recursos deun tipo dado, en lo sucesivo
solo podr pedir aquellos recursos delos tipos quesiguen en el ordenamiento.
Havender no presenta una estrategia contra el uso exclusivo de recursos por parte de
los procesos, pues sedesea permitir el uso derecursos dedicados.
6.10.1 Prevencin de la Condicin de Exclusin Mutua
Si ningn recurso se asignara de manera exclusiva a un solo proceso, nunca tendramos
bloqueos, peroestoesimposibledeaplicar, en especial en relacin a ciertostipos derecur-
sos, queen un momento dado no pueden ser compartidos (ej.: impresoras).
Sedebe:
Evitar la asignacin deun recurso cuando no sea absolutamentenecesario.
Intentar asegurarsedequelos menos procesos posibles puedan pedir el recurso.
206 CAPTULO 6. BLOQUEOS
6.10.2 Prevencin de la Condicin detenerse y esperar o espera por
Si sepuedeevitar quelos procesos queconservan recursos esperen ms recursos, sepueden
eliminar los bloqueos.
Unaformaesexigir atodos los procesos quesoliciten todos los recursos antesdeiniciar
su ejecucin; si un proceso no puededisponer detodos los recursos, deber esperar, pero
sin retener recursos afectados.
Un problema es quemuchos procesos no saben el nmero derecursos necesarios hasta
iniciar su ejecucin.
Otro problema es que puede signicar desperdicio de recursos, dado que todos los
recursos necesarios para un proceso estn afectados al mismo desde su inicio hasta su
nalizacin.
Otro criterio aplicable consisteen:
Exigir a un proceso quesolicita un recurso quelibereen forma temporal los dems
recursos quemantieneen esemomento.
Hacer queel proceso intenteluego recuperar todo al mismo tiempo.
6.10.3 Prevencin de la Condicin de no apropiacin
UnadelasestrategiasdeHavender requierequecuandoaunprocesoquemantienerecursos
le es negada una peticin de recursos adicionales; deber liberar sus recursos y si es
necesario pedirlos denuevo junto con los recursos adicionales.
La implementacin de esta estrategia niega la condicin de no apropiacin y los
recursos pueden ser retirados delos procesos quelos retienen antes de la terminacin de
los procesos.
El problemaconsisteen queel retirodeciertosrecursosdeun procesopuedesignicar:
La prdida del trabajo efectuado hasta esepunto.
La necesidad derepetirlo luego.
Una consecuencia seria es la posible postergacin indenida deun proceso.
6.10.4 Prevencin de la Condicin de espera circular
Una forma es queun procesosoloest autorizado autilizar un recurso en cada momento:
Si necesita otro recursos, debeliberar el primero.
Esto resulta inaceptablepara muchos procesos.
Otra forma es la siguiente:
Todos los recursos senumeran globalmente.
Los procesos pueden solicitar los recursos en cualquier momento:
6.11. OTROS ASPECTOS 207
Las solicitudes se deben hacer segn un cierto orden numrico (creciente) de
recurso; debido a lo cual la grca deasignacin derecursos no tendr ciclos.
En cada instanteuno delos recursos asignados tendr el nmero ms grande:
El proceso quelo posea no pedir un recurso ya asignado.
El proceso terminar o solicitar recursos con nmeros mayores , que estarn
disponibles:
Al concluir liberar sus recursos.
Otro proceso tendr el recurso con el nmero mayor y tambin podr ter-
minar.
Todos los procesos podrn terminar y no habr bloqueo.
Una variante consiste en eliminar el requisito de adquisicin de recursos en orden
creciente:
Ningn proceso debe solicitar un recurso con nmero menor al que posee en el
momento.
El problema es que en casos reales podra resultar imposible encontrar un orden que
satisfaga a todos los procesos.
6.11 Otros Aspectos
Los mtodos para prevenir el bloqueo pueden resumirsesegn seindica en la Tabla 6.5de
la pgina 207[23, Tanenbaum].
Condicin Mtodo
Exclusin mutua Realizar un spooling general
Detenersey esperar Solicitar todos los recursos al principio
No apropiacin Retirar los recursos
Espera circular Ordenar los recursos en forma numrica
Tabla 6.5: Resumen delos mtodos para prevenir el bloqueo.
Otros aspectos interesantes relacionados con bloqueos son [23, Tanenbaum]:
La cerradura de dos fases.
Los bloqueos sin recursos.
La inanicin.
208 CAPTULO 6. BLOQUEOS
6.11.1 Cerradura de Dos Fases
Una operacin frecuenteen sistemas debases dedatos consisteen:
Solicitar el cierredevarios registros.
Actualizar todos los registros cerrados.
Ante la ejecucin de varios procesos al mismo tiempo, existe un grave riesgo de
bloqueo.
El mtodo dela cerradura de dos fases consisteen:
Primer fase: el proceso intenta cerrar todos los registros necesarios, uno a la vez.
Segunda fase: seactualiza y seliberan las cerraduras.
Si durantela primer fasesenecesita algn registro ya cerrado:
El procesoliberatodaslascerradurasy comienzaenlaprimer fasenuevamente.
Generalmenteesto no resulta aplicableen la realidad:
No resulta aceptabledejar un proceso a la mitad y volver a comenzar.
El proceso podra haber actualizado archivos, enviado mensajes en la red,
etc.
6.11.2 Bloqueos Sin Recursos
Los bloqueos tambin pueden aparecer en situaciones que no estn relacionadas con los
recursos.
Puede ocurrir que dos procesos se bloqueen en espera de que el otro realice cierta
accin, por ej.: operacionesefectuadassobresemforos(indicadoresovariablesdecontrol)
en orden incorrecto.
6.11.3 I nanicin
En un sistema dinmico permanentementehay solicitudes derecursos.
Senecesita un criterio (poltica) para decidir:
Quin obtienecual recurso.
En qu momento.
Podrasuceder queciertosprocesosnuncalograranel servicio, ansinestar bloqueados,
porqueseprivilegia en el uso del recurso a otros procesos.
La inanicin sepuedeevitar medianteel criterio deasignacin derecursos FIFO el
primero en llegar es el primero en despachar (ser atendido).
El proceso queha esperado el mximo tiempo sedespachar a continuacin:
En el transcurso del tiempo, cualquiera delos procesos dados:
Ser el ms antiguo.
Obtendr el recurso necesario.
6.12. TENDENCIAS DEL TRATAMIENTO DEL BLOQUEO 209
6.12 Tendencias del Tratamiento del Bloqueo
Generalmente los S. O. han considerado al bloqueo como una incomodidad limitada [7,
Deitel].
Muchos S. O. implementan mtodos bsicos de prevencin de bloqueos sugeridos por
Havender y los resultados son satisfactorios en gran nmero decasos.
La tendencia es a queel bloqueo tenga una consideracin mucho mayor en los nuevos
S. O., debido a:
Orientacin hacia la operacin asincrnica en paralelo:
Incremento del multiprocesamiento y delas operaciones concurrentes.
Asignacin dinmica derecursos:
Capacidad delos procesos deadquirir y liberar recursos segn las necesidades.
Ignorancia a priori delos procesos respecto desus necesidades derecursos.
Consideracin delos datos como un recurso:
Signica incrementar la capacidad del S. O. para administrar gran nmero de
recursos.
210 CAPTULO 6. BLOQUEOS
Parte I I
Sistemas Operativos Distribuidos
211
Captulo 7
I ntroduccin a los Sistemas
Distribuidos
7.1 I ntroduccin a los Sistemas Distribuidos
Desdeel inicio de la era de la computadora moderna (1945), hasta cerca de1985, solo se
conoca la computacin centralizada [25, Tanenbaum].
A partir de la mitad de la dcada de los ochentas aparecen dos avances tecnolgicos
fundamentales:
Desarrollo demicroprocesadores poderosos y econmicos con arquitecturas de8,
16, 32y 64bits.
Desarrollo de redes de rea local (LAN) de alta velocidad, con posibilidad de
conectar cientos demquinas a velocidades detransferencia demillones debits por
segundo (mb/ seg).
Aparecen los sistemas distribuidos, en contrastecon los sistemas centralizados.
Lossistemasdistribuidosnecesitanunsoftwaredistintoal delossistemascentralizados.
Los S. O. para sistemas distribuidos han tenido importantes desarrollos pero todava
existeun largo camino por recorrer.
Los usuarios pueden acceder a una gran variedad de recursos computacionales:
Dehardwarey desoftware.
Distribuidos entreun gran nmero desistemas computacionales conectados.
Un importante antecedente de las redes de computadoras lo constituye Arpanet, ini-
ciada en 1968en los EE. UU.
7.2 Ventajas de los Sistemas Distribuidos con Respecto a
los Centralizados
Una razn para la tendencia hacia la descentralizacin es la economa.
HerbGrosch formul la quesellamara Ley de Grosch [25, Tanenbaum]:
213
214 CAPTULO 7. INTRODUCCIN A LOS SISTEMAS DISTRIBUIDOS
El poder decmputo deuna cpu es proporcional al cuadrado desu precio:
Si sepaga el dobleseobtieneel cudrupledel desempeo.
Fueaplicableen los aos setentas y ochentas a la tecnologa mainframe.
No es aplicablea la tecnologa del microprocesador:
La solucin ms ecaz en cuanto a costo es limitarsea un gran nmero decpu
baratos reunidos en un mismo sistema.
Los sistemas distribuidos generalmente tienen en potencia una proporcin precio /
desempeo mucho mejor quela deun nico sistema centralizado.
Algunos autores distinguen entre:
Sistemas distribuidos: estn diseados para que muchos usuarios trabajen en
forma conjunta.
Sistemas paralelos: estn diseados para lograr la mxima rapidez en un nico
problema.
En general se consideran sistemas distribuidos, en sentido amplio, a los sistemas en
que:
Existen varias cpu conectadas entres.
Las distintas cpu trabajan de manera conjunta.
Ciertas aplicaciones son distribuidas en forma inherente:
Ej.: sistema deautomatizacin deuna fbrica:
Controla los robots y mquinas en la lnea demontaje.
Cada robot o mquina es controlado por su propia computadora.
Las distintas computadoras estn interconectadas.
Una ventaja potencial de un sistema distribuido es una mayor conabilidad:
Al distribuir la carga de trabajo en muchas mquinas, la falla de una de ellas no
afectara a las dems:
La carga detrabajo podra distribuirse.
Si una mquina sedescompone:
Sobreviveel sistema como un todo.
Otraventajaimportanteeslaposibilidad del crecimiento incremental opor incremen-
tos:
7.3. VENTAJ AS RESPECTO A LAS PC INDEPENDIENTES 215
Podran aadirse procesadores al sistema, permitiendo un desarrollo gradual segn
las necesidades.
No son necesarios grandes incrementos depotencia en breves lapsos detiempo.
Sepuedeaadir poder decmputo en pequeos incrementos.
7.3 Ventajas de los Sistemas Distribuidos con Respecto a
las PC I ndependientes
Satisfacen la necesidad demuchos usuarios decompartir ciertos datos [25, Tanenbaum]:
Ej.: sistema dereservas delneas areas.
Tambin con los sistemas distribuidos se pueden compartir otros recursos como pro-
gramas y perifricos costosos:
Ej.: impresoras lser color, equipos de fotocomposicin, dispositivos de almacena-
miento masivo (ej.: cajas pticas), etc.
Otra importanterazn es lograr una mejor comunicacin entre las personas:
Ej.: correo electrnico:
Poseeimportantes ventajas sobreel correo por cartas, el telfono y el fax:
Velocidad, disponibilidad, generacin de documentos editables por proce-
sadores detexto, etc.
La mayor exibilidad es tambin importante:
La carga detrabajo sepuededifundir (distribuir) entrelas mquinas disponibles en
la forma ms ecaz segn el criterio adoptado (por ej. costos).
Los equipos distribuidos pueden no ser siemprePC:
Sepueden estructurar sistemas con grupos dePC y decomputadoras compar-
tidas, dedistinta capacidad.
7.4 Desventajas de los Sistemas Distribuidos
El principal problema es el software, ya que el diseo, implantacin y uso del software
distribuido presenta numerosos inconvenientes [25, Tanenbaum].
Los principales interrogantes son los siguientes:
Qu tipo de S. O., lenguaje de programacin y aplicaciones son adecuados para
estos sistemas?.
Cunto deben saber los usuarios dela distribucin?.
216 CAPTULO 7. INTRODUCCIN A LOS SISTEMAS DISTRIBUIDOS
Qutanto debehacer el sistema y qutanto deben hacer los usuarios?.
La respuesta a estos interrogantes no es uniforme entre los especialistas, pues existe
una gran diversidad de criterios y deinterpretaciones al respecto.
Otroproblemapotencial tienequever conlasredesdecomunicaciones, yaquesedeben
considerar problemas debidos a prdidas demensajes, saturacin en el trco, expansin,
etc.
El hecho de que sea fcil compartir los datos es una ventaja pero se puede convertir
en un gran problema, por lo quela seguridad debeorganizarseadecuadamente.
En general se considera que las ventajas superan a las desventajas, si estas ltimas se
administran seriamente.
7.5 Conceptos de Hardware
Todos los sistemas distribuidos constan de varias cpu, organizadas de diversas formas,
especialmenterespecto de[25, Tanenbaum]:
La forma de interconectarlas entres.
Los esquemas de comunicacin utilizados.
Existen diversos esquemas de clasicacin para los sistemas de cmputos con varias
cpu:
Uno delos mas conocidos es la Taxonoma de Flynn:
Considera comocaractersticas esencialesel nmero deujo deinstrucciones y
el nmero de ujos de datos.
La clasicacin incluyeequipos SI SD, SI MD, MI SD y MI MD.
SI SD (Single I nstruction Single Data: un ujo de instrucciones y un ujo de datos):
Poseen un nico procesador.
SI MD (Single Instruction Multiple Data: un ujo de instrucciones y varios ujos de
datos):
Sereerea ordenar procesadores con una unidad deinstruccin que:
Busca una instruccin.
Instruyea varias unidades dedatos para quela lleven a cabo en paralelo, cada
una con sus propios datos.
Son tiles para los cmputos querepiten los mismos clculos en varios conjuntos de
datos.
MI SD (Multiple Instruction Single Data: un ujo de varias instrucciones y un solo
ujo de datos):
7.5. CONCEPTOS DE HARDWARE 217
No sepresenta en la prctica.
MIMD (MultipleI nstruction MultipleData: un grupodecomputadorasindependientes,
cada una con su propio contador del programa, programa y datos):
Todos los sistemas distribuidos son de este tipo.
UnavancesobrelaclasicacindeFlynnincluyeladivisindelascomputadorasMIMD
en dos grupos:
Multiprocesadores: poseen memoria compartida:
Losdistintosprocesadorescomparten el mismoespaciodedireccionesvirtuales.
Multicomputadoras: no poseen memoria compartida:
Ej.: grupo dePC conectadas medianteuna red.
Cadaunadelas categoras indicadassepuedeclasicar segn la arquitectura dela red
de interconexin en:
Esquema de bus:
Existeuna sola red, bus, cableu otro medio queconecta todas las mquinas:
Ej.: la televisin por cable.
Esquema con conmutador:
No existeuna sola columna vertebral deconexin:
Hay mltiples conexiones y varios patrones deconexionado.
Los mensajes demueven a travs delos medios deconexin.
Sedecideexplcitamentelaconmutacin en cadaetapaparadirigir el men-
sajea lo largo deuno delos cables desalida.
Ej.: el sistema mundial telefnico pblico.
Otro aspecto dela clasicacin considera el acoplamiento entre los equipos:
Sistemas fuertemente acoplados:
El retraso al enviar un mensajedeuna computadora a otra es corto y la tasa
detransmisin es alta.
Generalmenteselos utiliza como sistemas paralelos.
Sistemas dbilmente acoplados:
El retrasodelosmensajesentrelasmquinasesgrandey latasadetransmisin
es baja.
Generalmenteselos utiliza como sistemas distribuidos.
Generalmente los multiprocesadores estn ms fuertemente acoplados que las multi-
computadoras.
218 CAPTULO 7. INTRODUCCIN A LOS SISTEMAS DISTRIBUIDOS
CPU
CACHE
CPU
CACHE
CPU
CACHE
MEMORIA
Figura~7.1: Multiprocesadores con baseen un bus.
7.6 Multiprocesadores con Base en Buses
Constan de cierto nmero de cpu conectadas a un bus comn, junto con un mdulo de
memoria.
1
Un bus tpico poseeal menos [25, Tanenbaum]:
32lneas dedirecciones.
32lneas dedatos.
30lneas decontrol.
Todos los elementos precedentes operan en paralelo.
Para leer una palabra dememoria, una cpu:
Coloca la direccin dela palabra deseada en las lneas dedirecciones del bus.
Coloca una seal en las lneas decontrol adecuadas para indicar quedesea leer.
La memoria responde y coloca el valor de la palabra en las lneas de datos para
permitir la lectura deesta por partedela cpu solicitante.
Para grabar el procedimiento es similar.
Solo existe una memoria, la cual presenta la propiedad de la coherencia:
Las modicaciones hechas por una cpu sereejan de inmediato en las subsiguientes
lecturas dela misma o deotra cpu.
El problema de este esquema es que el bus tiende a sobrecargarse y el rendimiento a
disminuir drsticamente; la solucin es aadir una memoria cach de alta velocidad entre
la cpu y el bus:
El cachguarda las palabras deacceso reciente.
Todas las solicitudes dela memoria pasan a travs del cach.
Si la palabra solicitada seencuentra en el cach:
El cachrespondea la cpu.
No sehacesolicitud alguna al bus.
1
Ver Figura 7.1 dela pgina 218 [25, Tanenbaum].
7.7. MULTIPROCESADORES CON CONMUTADOR 219
Si el caches lo bastantegrande:
La tasa de encuentros ser alta y la cantidad de trco en el bus por cada
cpu disminuir drsticamente.
Permiteincrementar el nmero de cpu.
Un importante problema debido al uso de cachs es el de la incoherencia de la me-
moria:
Supongamos que las cpu A y B leen la misma palabra de memoria en sus
respectivos cachs.
A escribesobrela palabra.
CuandoB leeesapalabra, obtieneunvalor anterior ynoel valor recinactualizado
por A.
Una solucin consisteen lo siguiente:
Disear las cachdetal forma quecuando una palabra sea escrita al cach, tambin
sea escrita a la memoria.
A esto sedenomina cach de escritura.
No causa trco en el bus el uso decach para la lectura.
S causa traco en el bus:
El no uso decachpara la lectura.
Toda la escritura.
Si todos los cachs realizan un monitoreo constantedel bus:
Cada vez que un cach observa una escritura a una direccin dememoria presente
en l, puedeeliminar esedato o actualizarlo en el cachcon el nuevo valor.
Estos cachs sedenominan cachs monitores.
Un diseo con cachs monitores y de escritura es coherente e invisible para el progra-
mador, por lo que es muy utilizado en multiprocesadores basados en buses.
7.7 Multiprocesadores con Conmutador
El esquema demultiprocesadores con base en buses resulta apropiado para hasta aproxi-
madamente 64 procesadores [25, Tanenbaum].
Parasuperar estacifraesnecesario un mtodo distinto deconexin entreprocesadores
(cpu) y memoria.
Una posibilidad es dividir la memoria en mdulos y conectarlos a las cpu con un
conmutador de cruceta (cross-bar switch):
220 CAPTULO 7. INTRODUCCIN A LOS SISTEMAS DISTRIBUIDOS
MEMORIAS
CPU
CONMUTADOR
DEL PUNTO DE
CRUCE
Figura~7.2: Conmutador decruceta.
Cada cpu y cada memoria tieneuna conexin quesaledel.
En cada interseccin est un conmutador del punto de cruce (crosspoint switch)
electrnico queel hardware puedeabrir y cerrar:
Cuando una cpu desea tener acceso a una memoria particular, el conmutador
del punto decrucequelos conecta secierra momentneamente.
La virtud del conmutador de cruceta es que muchas cpu pueden tener acceso a la
memoria al mismo tiempo:
Aunqueno a la misma memoria simultneamente.
Lo negativo deesteesquema es el alto nmero de conmutadores:
Para n cpu y n memorias senecesitan n x n conmutadores.
2
El nmero de conmutadores del esquema anterior puede resultar prohibitivo:
Otros esquemas precisan menos conmutadores, por ej., la red omega:
3
Poseeconmutadores 2x 2:
Cada uno tiene2entradas y 2salidas.
Cadaconmutador puededirigir cualquieradelasentradasencualquiera
delas salidas.
Eligiendo los estados adecuados de los conmutadores, cada cpu podr
tener acceso a cada memoria.
Para n cpu y n memorias seprecisan:
n etapas deconmutacin.
2
Ver Figura 7.2 dela pgina 220 [25, Tanenbaum].
3
Ver Figura 7.3 dela pgina 221 [25, Tanenbaum].
7.7. MULTIPROCESADORES CON CONMUTADOR 221
CPU MEMORIAS
Figura~7.3: Red omega deconmutacin.
Cada etapatienelog
2
n conmutadores para un total den log
2
n con-
mutadores; estenmero es menor quen x n del esquema anterior,
pero sigue siendo muy grande para n grande.
4
n log
2
n n * log
2
n n * n
50 5,64385619 282 2.500
75 6,22881869 467 5.625
100 6,64385619 664 10.000
125 6,96578428 871 15.625
150 7,22881869 1.084 22.500
175 7,45121111 1.304 30.625
200 7,64385619 1.529 40.000
1.024 10 10.240 1.048.576
Tabla 7.1: Conmutador decruceta versus red omega.
Un problema importante en la red omega es el retraso:
Ej.: si n = 1024existen segn la tabla anterior:
10etapas deconmutacin dela cpu a la memoria.
10etapas para quela palabra solicitada dela memoria regrese.
Si lacpu esde50mhz, el tiempodeejecucin deunainstruccin es de20nseg.
Si una solicitud dela memoria deberecorrer 20 etapas deconmutacin (10 de
ida y 10deregreso) en 20nseg:
El tiempo deconmutacin debeser de1nseg.
El multiprocesador de1024cpu necesitar 10240conmutadores de1nseg.
4
Ver Tabla 7.1 dela pgina 221 y Figura 7.4 dela pgina 222.
222 CAPTULO 7. INTRODUCCIN A LOS SISTEMAS DISTRIBUIDOS
CONMUTADOR DE CRUCETA VERSUS RED OMEGA
282 467 664 871 1084 1304 1529
2500
5625
10000
15625
22500
30625
40000
0
5000
10000
15000
20000
25000
30000
35000
40000
45000
N DE CPU Y MEMORIAS
N


D
E

C
O
N
M
U
T
A
D
O
R
E
S
Red omega
Conmutador de cruceta
Red omega 282 467 664 871 1084 1304 1529
Conmutador de cruceta 2500 5625 10000 15625 22500 30625 40000
50 75 100 125 150 175 200
Figura~7.4: Conmutador decruceta versus red omega.
El costo ser alto.
Otra posible solucin son los esquemas segn sistemas jerrquicos:
Cada cpu tieneasociada cierta memoria local.
El acceso ser muy rpido a la propia memoria local y ms lento a la memoria de
las dems cpu.
EstosedenominaesquemaomquinaNUMA (AccesoNoUniformealaMemoria):
Tienen un mejor tiempopromediodeaccesoquelasmquinasbasadasen redes
omega.
La colocacin de los programas y datos en memoria es crtica para lograr que
la mayora de los accesos sean a la memoria local de cada cpu.
7.8 Multicomputadoras con Base en Buses
Es un esquema sin memoria compartida [25, Tanenbaum].
Cada cpu tieneuna conexin directa con su propia memoria local.
Un problema importante es la forma en quelas cpu se comuniquen entre s.
El trco es solo entre una cpu y otra; el volumen de trco ser varios rdenes de
magnitud menor quesi seutilizara la red deinterconexin para el trco cpu - memoria.
7.9. MULTICOMPUTADORAS CON CONMUTADOR 223
MEMORIA
LOCAL
CPU
MEMORIA
LOCAL
CPU
MEMORIA
LOCAL
CPU
ESTACION DE
TRABAJO
ESTACION DE
TRABAJO
ESTACION DE
TRABAJO
RED
Figura~7.5: Multicomputadora queconsta deestaciones detrabajo en una LAN.
Topolgicamentees un esquema similar al del multiprocesador basado en un bus.
Consistegeneralmenteen una coleccin deestaciones detrabajo en una LAN (red de
rea local).
5
7.9 Multicomputadoras con Conmutador
Cadacputieneaccesodirectoyexclusivoasupropiamemoriaparticular [25, Tanenbaum].
Existen diversas topologas, las ms comunes son la retcula y el hipercubo.
Las principales caractersticas de las retculas son:
Son fciles decomprender.
Sebasan en las tarjetas decircuitos impresos.
Seadecan aproblemascon unanaturalezabidimensional inherente(teoradegr-
cas, visin articial, etc.).
6
Las principales caractersticas del hipercubo son:
Es un cubo n - dimensional.
En un hipercubo de dimensin 4:
Sepuedeconsiderar comodoscubosordinarios, cadaunodeelloscon 8vrtices
y 12aristas.
Cada vrticees un cubo.
Cada arista es una conexin entre2cpu.
Seconectan los vrtices correspondientes decada uno delos cubos.
5
Ver Figura 7.5 dela pgina 223 [25, Tanenbaum].
6
Ver Figura 7.6 dela pgina 224 [25, Tanenbaum].
224 CAPTULO 7. INTRODUCCIN A LOS SISTEMAS DISTRIBUIDOS
Figura~7.6: Retcula.
Figura~7.7: Hipercubo dedimensin 4.
En un hipercubo de dimensin 5:
Sedeberan aadir dos cubos conectados entres y conectar las aristas corres-
pondientes en las dos mitades, y as sucesivamente.
En un hipercubo de n dimensiones:
Cada cpu tienen conexiones con otras cpu.
Lacomplejidaddel cableadoaumentaen proporcin logartmicacon el tamao.
Solo seconectan los procesadores vecinos ms cercanos:
Muchos mensajes deben realizar varios saltos antes dellegar a su destino.
La trayectoria ms grandecreceen forma logartmica con el tamao:
En la retcula crececomo la raz cuadrada del nmero decpu.
Con la tecnologa actual ya sepueden producir hipercubos de16.384cpu.
7
7
Ver Figura 7.7 dela pgina 224 [25, Tanenbaum].
7.10. CONCEPTOS DE SOFTWARE 225
7.10 Conceptos de Software
La importancia del software supera frecuentemente a la del hardware [25, Tanenbaum].
Laimagen queun sistemapresentaquedadeterminadaen gran medidapor el software
del S. O. y no por el hardware.
Los S. O. no se pueden encasillar fcilmente, como el hardware, pero se los puede
clasicar en dos tipos:
Dbilmente acoplados.
Fuertemente acoplados.
El softwaredbilmente acoplado deun sistema distribuido:
Permitequelasmquinas y usuarios sean independientes entres enlofundamental.
Facilita queinteracten en cierto grado cuando sea necesario.
Los equipos individuales sedistinguen fcilmente.
Combinando los distintos tipos de hardware distribuido con software distribuido se
logran distintas soluciones:
No todas interesan desdeel punto devista funcional del usuario:
Ej.: un multiprocesador es un multiprocesador:
No importa si utiliza un bus con cachs monitores o una red omega.
7.11 Sistemas Operativos de Redes
Una posibilidad es el software dbilmente acoplado en hardware dbilmente acoplado [25,
Tanenbaum]:
Es una solucin muy utilizada.
Ej.: una red deestaciones detrabajo conectadas medianteuna LAN.
Cada usuario tieneuna estacin de trabajo para su uso exclusivo:
Tienesu propio S. O.
La mayora delos requerimientos seresuelven localmente.
Esposiblequeun usuarioseconectedemaneraremotacon otraestacin detrabajo:
Medianteun comando delogin remoto.
Se conviertela propia estacin de trabajo del usuario en una terminal remota
enlazada con la mquina remota.
Los comandos seenvan a la mquina remota.
226 CAPTULO 7. INTRODUCCIN A LOS SISTEMAS DISTRIBUIDOS
La salida dela mquina remota seexhibeen la pantalla local.
Paraalternar conotramquinaremota, primerohayquedesconectarsedelaprimera:
En cualquier instantesolo sepuedeutilizar una mquina.
Las redes tambin disponen de un comando de copiado remoto de archivos de una
mquina a otra:
Requierequeel usuario conozca:
La posicin detodos los archivos.
El sitio dondeseejecutan todos los comandos.
Una mejor solucin consiste en un sistema de archivos global compartido, accesible
desdetodas las estaciones detrabajo:
Una o varias mquinas soportan al sistema de archivos:
Son los servidores de archivos.
Los servidores de archivos:
Aceptan solicitudes delos programas deusuarios:
Losprogramas seejecutan enlasmquinasnoservidoras, llamadas clientes.
Las solicitudes seexaminan, seejecutan y la respuesta seenva deregreso.
Generalmentetienen un sistema jerrquico de archivos.
Las estaciones detrabajo pueden importar o montar estos sistemas dearchivos:
Seincrementan sus sistemas de archivos locales.
Sepueden montar los servidores en lugares diferentes desus respectivos sistemas de
archivos:
Las rutas de acceso a un determinado archivo pueden ser diferentes para las
distintas estaciones.
Los distintos clientes tienen un punto de vista distinto del sistema dearchivos.
El nombredeun archivo depende:
Del lugar desdeel cual setieneacceso a l.
Dela conguracin del sistema dearchivos.
El S. O. deestetipo deambientedebe:
Controlar las estaciones detrabajo en lo individual.
7.11. SISTEMAS OPERATIVOS DE REDES 227
Controlar a los servidores dearchivo.
Encargarsedela comunicacin entrelos servidores.
Todas las mquinas pueden ejecutar el mismo S. O., pero esto no es necesario.
Si los clientes y los servidores ejecutan diversos S. O., como mnimo deben coincidir
en el formato y signicado de todos los mensajes quepodran intercambiar.
Esquemas como estesedenominan sistema operativo de red:
Cada mquina tieneun alto grado deautonoma.
Existen pocos requisitos a lo largo detodo el sistema.
7.11.1 NFS: Network File System
Es uno delos ms conocidos y aceptado como sistema operativo de red [25, Tanen-
baum].
Fueun desarrollo deSun Microsystems, soportado tambin por distintos fabricantes:
Surgi para UNIX pero seampli a otros S. O. (ej.: MS - DOS).
Soporta sistemas heterogneos, por ej.: clientes de MS - DOS que hagan uso de
servidores UNIX.
Los equipos pueden ser tambin dehardware heterogneo.
Los aspectos ms interesantes son los relacionados con:
La arquitectura.
El protocolo.
La implantacin.
La Arquitectura de NFS
La idea fundamental es permitir queuna coleccin arbitraria declientes y servidores com-
partan un sistema de archivos comn.
Generalmente todos los clientes y servidores estn en la misma LAN, pero esto no es
necesario; por ello sepuedeejecutar NFS en una WAN (red de rea amplia).
NFS permitequecada mquina sea un cliente y un servidor al mismo tiempo.
Cadaservidor deNFS exporta uno o varios desus directorios (y subdirectoriosdepen-
dientes) para el acceso por partedeclientes remotos.
Los clientes tienen acceso a los directorios exportados medianteel montaje:
Cuando un cliente monta un directorio (remoto), este se convierte en parte de su
jerarqua dedirectorios.
228 CAPTULO 7. INTRODUCCIN A LOS SISTEMAS DISTRIBUIDOS
Unclientesindiscopuedemontar unarchivoremotoensudirectorioraz; estoproduce
un sistema de archivos soportado en su totalidad en un servidor remoto.
Las estaciones de trabajo que no poseen discos locales pueden montar directorios re-
motos en donde lo deseen, en la parte superior de su jerarqua de directorios local; esto
produceun sistema de archivos quees en parte local y en parte remoto.
Si dos o ms clientes montan el mismo directorio al mismo tiempo:
Sepueden comunicar al compartir archivos en sus directorios comunes.
No hay quehacer nada especial para lograr compartir los archivos.
Los archivos compartidos guran en la jerarqua de directorios de varias mquinas y
selos puedeleer o escribir dela manera usual.
Protocolos de NFS
Uno delos objetivos de NFS es:
Soportar un sistema heterogneo en dondelos clientes y servidores podran ejecutar
distintos S. O. en hardware diverso, por ello es esencial que la interfaz entre los
clientes y los servidores estbien denida.
NFS logra esteobjetivo deniendo dos protocolos cliente - servidor:
Un protocolo es un conjunto de:
Solicitudes queenvan los clientes a los servidores.
Respuestas queenvan los servidores deregreso a los clientes.
Un protocolo de NFS maneja el montaje.
Un cliente puede:
Enviar el nombredeuna ruta deacceso a un servidor.
Solicitar el permiso para montar ese directorio en alguna parte de su jerarqua de
directorios.
Si el nombredelarutadeaccesoesvlido y el directorioespecicadohasidoexportado:
El servidor regresa un asa de archivo (le handle) al cliente:
Contienecampos queidentican:
De manera nica el tipo de sistema de archivos, el disco, el nmero de
nodo-i del directorio.
La informacin relativa a la seguridad.
Es utilizada en llamadas posteriores para la lectura o escritura dearchivos en
el directorio montado.
7.11. SISTEMAS OPERATIVOS DE REDES 229
Algunos S. O. soportan la alternativa del automontaje:
Permite que un conjunto de directorios remotos quede asociado con un directorio
local.
Ninguno delos directorios remotos semonta duranteel arranquedel cliente.
La primera vez que se abra un archivo remoto, el S. O. enva un mensaje a los
servidores:
Los servidores responden y semonta su directorio.
Las principales ventajas sobre el montaje esttico son:
Se evita el trabajo de contactar servidores y montar directorios que no son
requeridos de inmediato.
Si el clientepuedeutilizar varios servidores en paralelo, sepuedetener:
Cierta tolerancia a fallas.
Mejorar el rendimiento.
NFS no da soportea la duplicacin dearchivos o directorios.
Otro protocolo de NFS es para el acceso a los directorios y archivos.
Los clientes pueden:
Enviar mensajes a los servidores para el manejo de los directorios y la lectura o
escritura dearchivos.
Tener acceso a los atributos dearchivo, tales como su modo, tamao y fecha de la
ltima modicacin.
NFS soporta servidores sin estado:
No mantienen la informacin de estado relativa a los archivos abiertos.
Si un servidor falla y arranca rpidamente, no se pierde informacin acerca de los
archivos abiertos y los programas clienteno fallan.
El sistema dearchivos remotos (RFS) del Sistema V deUNIX no funciona as, sino
que:
El servidor lleva un registro del hecho que cierto archivo est abierto y la posicin
actual del lector.
Si un servidor falla y vuelvea arrancar rpidamente:
Sepierden todas las conexiones abiertas.
Los programas clientefallan.
En un servidor sin estado, como NFS:
230 CAPTULO 7. INTRODUCCIN A LOS SISTEMAS DISTRIBUIDOS
Los bloqueos no tienen queasociarsecon los archivos abiertos y el servidor no sabe
cules archivos estn abiertos.
Senecesita un mecanismo adicional independiente para controlar el bloqueo.
NFS utiliza el esquema deproteccin deUNIX, con los bits rwx para el propietario,
grupo y otros.
Se puede utilizar la criptografa de claves pblicas para dar validez al cliente y el
servidor en cada solicitud y respuesta; el cliente malicioso no puede personicar a otro
cliente, ya queno conocesu clavesecreta.
Las claves utilizadas para la autenticacin, as como otra informacin, estn conteni-
das en el NI S:
Network Information Service: Servicio deInformacin dela Red.
Almacena parejas (clave, valor).
Cuando seproporciona una clave, regresa el valor correspondiente.
Almacena la asociacin de:
Los nombres delos usuarios con las contraseas (cifradas).
Los nombres delas mquinas con las direcciones en la red y otros elementos.
I mplantacin de NFS
Laimplantacin del cdigo del clientey el servidor es independientedelos protocolos NFS.
Una implementacin que suele tomarse como referencia es la de Sun, que consta de
tres capas.
8
La capa superior es la dellamadas al sistema:
Maneja las llamadas del tipo open, read y close.
Analiza la llamada y verica los parmetros.
Llama a la segunda capa: capa del sistema virtual de archivos: virtual le system:
VFS.
La capa VFS mantiene una tabla con una entrada por cada archivo abierto que es
anloga a la tabla denodos-i para los archivos abiertos en UNIX.
La capa VFS tieneuna entrada por cada archivo abierto:
Sela llama nodo-v (nodo-i virtual).
Los nodos-v seutilizan para indicar si el archivo es local o remoto.
Para los archivos remotos, poseen la informacin suciente como para tener acceso
a ellos.
8
Ver Figura 7.8 dela pgina 233 [25, Tanenbaum].
7.11. SISTEMAS OPERATIVOS DE REDES 231
Para montar un sistema remoto de archivos, el administrador del sistema llama al
programa mount :
Utiliza la informacin del directorio remoto, el directorio local dondeser montado
y otros datos adicionales.
Conel nombredel directorioremotopor montar sedescubreel nombredelamquina
dondeselocaliza dicho directorio.
Severica si el directorio existey si est disponiblepara su montajeremoto.
El ncleo:
Construyeun nodo-v para el directorio remoto.
Pide el cdigo del cliente NFS para crear un nodo-r (nodo-i remoto) en sus tablas
internas.
El nodo-v apunta al nodo-r.
Cada nodo-v dela capa VFS contendr en ltima instancia un apuntador a un nodo-i
en el S. O. local.
Es posible ver desde el nodo-v si un archivo o directorio es local o remoto y, si es
remoto, encontrar su asa dearchivo.
Todo archivo o directorio abierto tiene un nodo-v que apunta a un nodo-r o a un
nodo-i.
Por razonesdeeciencia las transferenciasentreclientey servidor sehacen en bloques
grandes, generalmentede8k:
Luegodehaber recibidolacapaVFSdel clienteel bloquenecesario, emitelasolicitud
del siguientebloque; esto sedenomina lectura adelantada (read ahead).
Un criterio similar sesiguecon la escritura:
Antes deser enviados al servidor los datos seacumulan en forma local:
Hasta completar cierta cantidad debytes, o
Hasta quesecierra el archivo.
Otra tcnica utilizada para mejorar el rendimiento es el ocultamiento o caching:
Los servidores ocultan los datos para evitar el acceso al disco.
Esto es invisiblepara los clientes.
Los clientes mantienen dos cachs:
Uno para los atributos dearchivo (nodos-i).
Otro para los datos del archivo.
232 CAPTULO 7. INTRODUCCIN A LOS SISTEMAS DISTRIBUIDOS
Cuando senecesita un nodo-i o un bloquedel archivo:
Primero se verica si la solicitud se puede satisfacer mediante el cach del cliente,
con esto seevita el trco en la red.
Un problema importante del caching es queel cach no es coherente; ej.:
Dos clientes ocultan el mismo bloquedel archivo.
Uno deellos lo modica.
Cuando el otro leeel bloque, obtieneel valor antiguo.
Para mitigar esteproblema, la implantacin deNFS:
Asocia a cada bloquecachun temporizador (timer).
Cuando el timer expira, la entrada sedescarta.
Generalmentelos tiempos son de:
3segundos para bloques dedatos.
30segundos para bloques dedirectorio.
Al abrir un archivo con cach se enva un mensaje al servidor para revisar la hora
dela ltima modicacin.
Sedeterminasi lacopiadel caches vlida odebedescartarse, utilizandounanueva
copia del servidor.
El temporizador del cachexpira cada 30segundos y todos los bloques modicados
en el cachseenvan al servidor.
Resumiendo:
NFS solo trata el sistema de archivos.
NFS no hace referencia a otros aspectos, como la ejecucin de un proceso.
NFS se ha difundido ampliamente, a pesar de todo.
7.12 Sistemas Realmente Distribuidos
NFS es un ejemplo de software dbilmente acoplado en hardware dbilmente acoplado
[25, Tanenbaum]:
Cada computadora puedeejecutar su propio S. O.
Solo sedisponedeun sistema compartido de archivos.
El trco cliente- servidor debeobedecer los protocolos NFS.
7.12. SISTEMAS REALMENTE DISTRIBUIDOS 233
CAPA DE LLAMADAS AL SISTEMA
CLIENTE SERVIDOR
CAPA DEL SIST. VIRT. DE ARCHIVOS
S. O. LOCAL CLIENTENFS
DISCO
LOCAL
MENSAJE
AL SERVIDOR
CAPA DEL SIST. VIRT. DE ARCHIVOS
SERVIDORNFS S. O. LOCAL
MENSAJE
DEL CLIENTE
DISCO
LOCAL
NETWORK
Figura~7.8: Estructura decapas deNFS.
Las multicomputadoras son un ejemplo de software fuertemente acoplado en hardware
dbilmente acoplado:
Crean la ilusin de que toda la red de computadoras es un solo sistema de tiempo
compartido, en vez deuna coleccin demquinas diversas.
Un sistema distribuido es aquel que se ejecuta en una coleccin de mquinas sin me-
moria compartida, pero que aparece ante sus usuarios como una sola computadora:
A esta propiedad sela conocecomo la imagen de un nico sistema.
Tambin sedeneun sistema distribuidocomo aquel queseejecutaen una coleccin de
mquinas enlazadas mediante una red pero queactan como un uniprocesador virtual.
Algunas delas caractersticas delos sistemas distribuidos son las siguientes:
Debeexistir un mecanismo de comunicacin global entrelos procesos:
Cualquier procesodebepoder comunicarse(intercambiar informacin) concual-
quier otro.
No tienequehaber:
Distintos mecanismos en distintas mquinas.
Distintos mecanismos para la comunicacin local o la comunicacin remota.
234 CAPTULO 7. INTRODUCCIN A LOS SISTEMAS DISTRIBUIDOS
Debeexistir un esquema global de proteccin.
La administracin de procesos debe ser la misma en todas parte.
Sedebetener una misma interfaz de llamadas al sistema en todas partes:
Es normal queseejecuten ncleos idnticos en todas las cpu del sistema.
Es necesario un sistema global de archivos.
7.13 Sistemas de Multiprocesador con Tiempo Compartido
Corresponde a software fuertemente acoplado en hardware fuertemente acoplado [25, Ta-
nenbaum].
Los ejemplos ms comunes depropsito general son los multiprocesadores:
Operan como un sistema de tiempo compartido, pero con varias cpu en vez deuna
sola.
Externamente un multiprocesador con 32 cpu de 3 mips acta de manera muy pa-
recida a una sola cpu de96mips; 1mips: 1.000.000deinstrucciones por segundo.
Secorrespondecon la imagen de un nico sistema.
La caracterstica clave es la existencia de una sola cola para ejecucin:
9
Unalistadetodoslosprocesosenel sistemaquenoestnbloqueadosenformalgica
y listos para su ejecucin.
Lacoladeejecucin esunaestructuradedatoscontenidaenlamemoriacompartida.
Los programas delos procesos estn en la memoria compartida, tambin el S. O.
El planicador (de procesos) del S. O. se ejecuta como una regin crtica, con ello
seevita quedos cpu elijan el mismo proceso para su ejecucin inmediata.
Cuando un proceso se asigna a un procesador:
Encuentra que el cach del procesador est ocupado por palabras de memoria que
pertenecen a aquella partedela memoria compartida quecontieneal programa del
proceso anterior.
Luegodeunbrevelapsosehabrnreemplazadopor el cdigoylosdatosdel programa
del proceso asignado a eseprocesador.
Ninguna cpu tienememoria local, es decir quetodos losprogramas sealmacenan en la
memoria global compartida.
Si todas las cpu estn inactivas en espera de e / s y un proceso est listo para su
ejecucin:
9
Ver Figura 7.9 dela pgina 235 [25, Tanenbaum].
7.14. ASPECTOS DEL DISEO 235
BUS
CPU 1
PROC. A EN EJ.
CACHE
CPU 2
PROC. B EN EJ.
CACHE
CPU 3
PROC. C EN EJ.
CACHE
SIST. OPERATIVO
COLA DE EJECUC.
A (EN EJECUCION)
B(EN EJECUCION)
C (EN EJECUCION)
D (LISTO)
E (LISTO)
MEMORIA
DISCO
Figura~7.9: Un multiprocesador con una sola cola deejecucin.
Es convenienteasignarlo a la cpu queseutiliz por ltima vez (para eseproceso):
Lahiptesisesqueningnotroprocesoutilizesacpudesdeentonces(hiptesis
de Vaswani y Zahorjan).
Si un proceso sebloquea en espera dee/ s en un multiprocesador, el S. O. puede:
Suspenderlo.
Dejarlo en espera ocupada:
Es aplicablecuando la mayora de la e/ s serealiza en menos tiempo del que
tarda un cambio entrelos procesos.
El proceso conserva su procesador por algunos milisegundos en espera de que
la e/ s nalice:
Si se agota el tiempo de espera y no ha nalizado la e / s, se realiza una
conmutacin deprocesos.
Generalmentesedispondr deun sistema dearchivos tradicional, con un nico cach:
Globalmenteconsiderado es similar al sistema dearchivos deun nico procesador.
7.14 Aspectos del Diseo
La comparacin delas tres principales formas deorganizar n cpu sepuederesumir en
la Tabla 7.2dela pgina 236[25, Tanenbaum].
Los aspectos claves en el diseo de S. O. distribuidos son:
Transparencia.
Flexibilidad.
236 CAPTULO 7. INTRODUCCIN A LOS SISTEMAS DISTRIBUIDOS
Elemento S. O. S. O. S. O. de
de red distribuido multiprocesador
Sevecomo un
uniprocesador virtual? No S S
Todas tienen que
ejecutar el mismo S. O.? No S S
Cuntas copias
del S. O. existen? n n 1
Cmo selogra Archivos Memoria
la comunicacin? compartidos Mensajes compartida
Serequiereun acuerdo
en los protocolos dela red? S S No
Existeuna nica
cola deejecucin? No No S
Existeuna semntica bien
denida para los archivos
compartidos? Por lo general No S S
Tabla 7.2: Comparacin detres formas distintas deorganizar n cpu.
Conabilidad.
Desempeo.
Escalabilidad.
7.15 Transparencia
Un aspecto muy importante es la forma de lograr la imagen de un nico sistema [25,
Tanenbaum].
Los usuarios deben percibir que la coleccin de mquinas conectadas son un sistema
de tiempo compartido de un solo procesador:
Un sistema quelogreesteobjetivo sedicequees transparente.
Desdeel punto de vista de los usuarios, la transparencia selogra cuando:
Sus pedidos sesatisfacen con ejecuciones en paralelo en distintas mquinas.
Seutilizan una variedad deservidores dearchivos.
El usuario no necesita saberlo ni notarlo.
La transparencia desdeel punto de vista de los programas signica disear la interfaz
dellamadas al sistema demodo queno sea visiblela existencia devarios procesadores.
No es transparente un sistema donde el acceso a los archivos remotos se realice me-
diante:
7.16. FLEXIBILIDAD 237
El establecimiento explcito deuna conexin en la red con un servidor remoto.
El envo posterior demensajes, dondeel acceso a los servicios remotos ser distinto
al acceso a los servicios locales.
Existen distintos tipos de transparencia en un sistema distribuido:
De localizacin: los usuarios no pueden indicar la localizacin delos recursos.
De migracin: los recursos sepueden mover a voluntad sin cambiar sus nombres.
De rplica: los usuarios no pueden indicar el nmero decopias existentes.
De concurrencia: varios usuariospueden compartir recursos demaneraautomtica.
Deparalelismo: lasactividadespueden ocurrir en paralelosin el conocimientodelos
usuarios.
7.16 Flexibilidad
La exibilidad es defundamental importancia [25, Tanenbaum].
Existen dos escuelas de pensamiento en cuanto a la estructura de los sistemas distri-
buidos:
10
Ncleo monoltico:
Cada mquina debeejecutar un ncleo tradicional queproporcionela mayora
delos servicios.
Microncleo (microkernel):
El ncleo debeproporcionar lo menos posible.
El grueso delos servicios del S. O. sedebeobtener a partir delos servidores al
nivel usuario.
El ncleo monoltico es el S. O. centralizado aumentado con:
Capacidades dered.
Integracin deservicios remotos.
Con ncleo monoltico:
La mayora delas llamadas al sistema serealizan mediantesealamiento al ncleo:
El ncleo realiza el trabajo.
El ncleo regresa el resultado al proceso del usuario.
10
Ver Figura 7.10 dela pgina 239 [25, Tanenbaum].
238 CAPTULO 7. INTRODUCCIN A LOS SISTEMAS DISTRIBUIDOS
La mayora de las mquinas tiene discos y administra sus propios sistemas locales
dearchivos.
El microncleo es ms exible y proporciona solo cuatro servicios mnimos:
Un mecanismo decomunicacin entreprocesos.
Cierta administracin dela memoria.
Una cantidad limitada deplanicacin y administracin deprocesos debajo nivel.
Entrada / salida debajo nivel.
Contrariamenteal ncleo monoltico, el microncleo no proporciona el sistema dear-
chivos, el sistema de directorios, toda la administracin de procesos o gran parte del
manejo delas llamadas al sistema.
El objetivo es mantener el microncleo pequeo.
Todos los dems servicios del S. O. se implementan generalmente como servidores a
nivel usuario:
Para obtener un servicio:
El usuario enva un mensajeal servidor apropiado.
El servidor realiza el trabajo y regresa el resultado.
Una importante ventaja deestemtodo es su alta modularidad:
Existeuna interfaz bien denida con cada servicio (conjunto demensajes quecom-
prendeel servidor).
Cada servicio es igual deaccesiblepara todos los clientes, independientementedela
posicin.
Es fcil implantar, instalar y depurar nuevos servicios, sin necesidad de detener el
sistema totalmente.
7.17 Conabilidad
Un importante objetivo de los sistemas distribuidos es que si una mquina falla, alguna
otra debe encargarse del trabajo [25, Tanenbaum].
Laconabilidadglobal terica del sistemapodraser el or booleanodelaconabilidad
de los componentes; ejemplo:
Se dispone de 5 servidores de archivos, cada uno con una probabilidad de 0,95 de
funcionar en un instantedado.
La probabilidad defalla simultnea delos 5es (0,05)
5
= 0,000006.
7.18. DESEMPEO 239
USUARIO
NUCLEO
MONOLIT.
NUCLEO
MONOLITICO
INCLUYE EL MANEJO DE ARCHIVOS,
DIRECTORIOS Y PROCESOS
USUARIO
MICRONUCLEO
MICRONU-
CLEO
SERVIDOR
DE
ARCHIVOS
MICRONU-
CLEO
SERVIDOR
DE DIREC-
TORIOS
MICRONU-
CLEO
SERVIDOR
DE
PROCESOS
MICRONU-
CLEO
RED
Figura~7.10: Esquema dencleo monoltico y demicroncleo.
La probabilidad dequeal menos uno estdisponiblees 0,999994.
La conabilidad prctica sevedisminuida ya quemuchas veces serequierequeciertos
servidores estn en servicio simultneamente para que el todo funcione, debido a ello
algunos sistemas tienen una disponibilidad ms relacionada con el and booleano delas
componentes quecon el or booleano.
Unaspectodelaconabilidadesladisponibilidad, quesereerealafraccin detiempo
en que se puede utilizar el sistema.
La disponibilidad se mejora mediante:
Un diseo que no exija el funcionamiento simultneo de un nmero sustancial de
componentes crticos.
La redundancia, es decir la duplicidad de componentes clave del hardware y del
software.
Los datos no deben perderse o mezclarse y si los archivos se almacenan de manera
redundanteen varios servidores, todas las copias deben ser consistentes.
Otroaspectodelaconabilidadgeneral eslaseguridad, loquesignicaquelosarchivos
y otros recursos deben ser protegidos contra el uso no autorizado.
Un aspecto tambin relacionado con la conabilidad es la tolerancia a fallas, segn la
cual las fallas sedeben ocultar brindando una recuperacin transparente para el usuario,
aunquehaya cierta degradacin dela performance.
7.18 Desempeo
Cuando se ejecuta una aplicacin en un sistema distribuido no debe parecer peor que su
ejecucin en un nico procesador, pero esto es difcil delograr [25, Tanenbaum].
240 CAPTULO 7. INTRODUCCIN A LOS SISTEMAS DISTRIBUIDOS
Algunas mtricas del desempeo son:
Tiempo derespuesta.
Rendimiento (nmero detrabajos por hora).
Uso del sistema y cantidad consumida dela capacidad dela red.
El problema se complica por el hecho de que la comunicacin entre equipos es lenta
comparada con:
La velocidad deproceso.
La velocidad dela comunicacin dentro deun mismo procesador.
Se requiere el uso de protocolos de comunicaciones en los extremos (procesadores)
que intervienen en la comunicacin, con lo que se incrementa el consumo de ciclos de
procesador.
Para optimizar el desempeo frecuentementehay que:
Minimizar el nmero demensajes:
La dicultad es que la mejor forma de mejorar el desempeo es tener muchas
actividades en ejecucin paralela en distintos procesadores, pero esto requiere
el envo demuchos mensajes.
Centralizar el trabajo en una sola mquina:
Resulta poco apropiado para un sistema distribuido.
Tambin sedebeprestar atencin al tamao de grano detodos los clculos:
Paralelismo de grano no:
Corresponde a trabajos con un gran nmero de pequeos clculos y mucha
interaccin con otrostrabajos, debidoaellorequieren muchacomunicacin que
puedeafectar el desempeo.
Paralelismo de grano grueso:
Corresponde a trabajos con grandes clculos, poca interaccin y pocos datos,
por lo tanto requieren poca comunicacin y no afectan la performance.
7.19. ESCALABILIDAD 241
7.19 Escalabilidad
La tendencia indica queel tamao delos sistemas distribuidos es haciacientos de miles y
aun decenas de millones de usuarios conectados [25, Tanenbaum].
Existen cuellos de botella potenciales que se debe intentar evitar en los sistemas dis-
tribuidos de gran escala:
Componentes centralizados:
Ej.: un solo servidor decorreo para todos los usuarios.
Tablas centralizadas:
Ej.: un nico directorio telefnico en lnea.
Algoritmos centralizados:
Ej.: realizacin deun ruteo con baseen la informacin completa.
Sedeben utilizar algoritmos descentralizados con las siguientes caractersticas:
Ninguna mquina tienela informacin completa acerca del estado del sistema.
Las mquinas toman decisiones solo en basea la informacin disponibledemanera
local.
El fallo deuna mquina no arruina el algoritmo.
No existeuna hiptesis implcita dela existencia deun reloj global.
242 CAPTULO 7. INTRODUCCIN A LOS SISTEMAS DISTRIBUIDOS
Captulo 8
Comunicacin en los Sistemas
Distribuidos
8.1 I ntroduccin a la Comunicacin en los Sistemas Distri-
buidos
La diferencia ms importante entre un sistema distribuido y un sistema de un nico pro-
cesador es la comunicacin entre procesos [25, Tanenbaum].
En un sistema de un solo procesador la comunicacin supone implcitamente la exis-
tencia dela memoria compartida:
Ej.: problema de los productores y los consumidores, donde un proceso escribe en
un buer compartido y otro proceso leedel.
Enunsistemadistribuidonoexistelamemoriacompartida ypor ellotodalanaturaleza
dela comunicacin entreprocesos debereplantearse.
Los procesos, para comunicarse, deben apegarsea reglas conocidas como protocolos.
Para los sistemas distribuidos en un rea amplia, estos protocolos toman frecuente-
mentela forma de varias capas y cada capa tienesus propias metas y reglas.
Losmensajesseintercambiandediversasformas, existiendomuchasopcionesdediseo
al respecto; una importanteopcin es la llamada a un procedimiento remoto.
Tambin es importante considerar las posibilidades de comunicacin entre grupos de
procesos, no solo entredos procesos.
8.2 Protocolos con Capas
Debido a la ausencia de memoria compartida, toda la comunicacin en los sistemas dis-
tribuidos sebasa en la transferencia de mensajes [25, Tanenbaum].
Cuando el proceso A quierecomunicarsecon el proceso B:
Construyeun mensaje en su propio espacio dedirecciones.
Ejecuta una llamada al sistema para que el S. O. busque el mensaje y lo enve a
travs dela red hacia B.
243
244 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
Para evitar el caos, A y B deben coincidir en el signicado de los bits que se
enven.
Los puntos de acuerdo necesarios incluyen lo siguiente:
Cuntos voltios hay queutilizar para un bit 0 y cuntos para un bit 1?.
Cmo sabeel receptor cul es el ltimo bit del mensaje?.
Cmo puededetectar si un mensajeha sido daado o perdido, y qudebehacer si
lo descubre?.
Qu longitud tienen los nmeros, cadenas y otros elementos de datos y cul es la
forma en queestn representados?.
LaI SO (OrganizacinInternacional deEstndares) desarrollun modelo dereferencia
que:
1
Identica en forma clara los distintos niveles.
Estandariza los nombres delos niveles.
Seala cul nivel deberealizar cul trabajo.
Estemodelo sedenomina modelo de referencia para interconexin desistemas abier-
tos (I SO OSI o modelo OSI ) [26, Tanenbaum].
El modelo OSI estdiseadoparapermitir lacomunicacin delos sistemas abiertos:
Son aquellos preparados para comunicarse con cualquier otro sistema abierto me-
diantereglas estndar:
Establecen el formato, contenido y signicado de los mensajes recibidos y en-
viados.
Constituyen los protocolos, que son acuerdos en la forma en que debe des-
arrollarse la comunicacin.
2
El modelo OSI distingueentredos tipos generales de protocolos:
Orientados hacia las conexiones:
Antes deintercambiar los datos, el emisor y el receptor:
Establecen en forma explcita una conexin.
Probablementenegocien el protocolo a utilizar.
Al nalizar, deben terminar la conexin.
El telfono es un sistema decomunicacin orientado hacia la conexin.
1
Ver Figura 8.1 dela pgina 246 [25, Tanenbaum].
2
Ver Figura 8.2 dela pgina 246 [25, Tanenbaum].
8.3. INTRODUCCIN AL MODELO CLIENTE - SERVIDOR (C - S) 245
Sin conexin:
No es necesaria una conguracin deantemano.
El emisor transmiteel primer mensajecuando est listo.
El depsito deuna carta en un buzn es una comunicacin sin conexin.
Cada capa proporciona una interfaz con la otra capa por encima de ella; la interfaz
consistedeun conjunto de operaciones para denir el servicio que la capa est preparada
para ofrecer a sus usuarios.
El protocolo de la capa n utiliza la informacin dela capa n.
Cada protocolo decapa sepuedecambiar independientementedelos dems:
Esto es defundamental importancia.
Coneregran exibilidad.
La coleccin deprotocolos utilizados en un sistema particular sellama una suite de
protocolo o pila de protocolo.
8.3 I ntroduccin al Modelo Cliente - Servidor (C - S)
El modelo de la OSI es una solucin elegante y realmente aplicable en muchos casos,
pero tieneun problema [25, Tanenbaum]:
La existencia delos encabezados genera un costo adicional detransmisin.
Cada envo deun mensajegenera:
Proceso en media docena decapas.
Preparacin y agregado deencabezados en el camino hacia abajo.
Eliminacin y examen deencabezados en el camino hacia arriba.
Con enlaces del orden dedecenas (o centenas) demiles debits / segundo y cpu pode-
rosas:
La carga deprocesamiento delos protocolos no es signicativa.
El factor limitantees la capacidad delas lneas.
Ej.: redes derea extendida (WAN).
Con enlaces del orden demillones debits / segundo y computadoras personales:
La carga deprocesamiento delos protocolos s es frecuentementesignicativa.
El factor limitanteno es la capacidad delas lneas.
Ej.: redes derea local (LAN).
246 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
PROCESO
A
MAQUINA 1
APLICACION
7
PRESENTACION
INTERFAZ
6
SESION
5
TRANSPORTE
INTERFAZ
4
RED
3
ENLACE DE DATOS
2
FISICO
1
PROCESO
B
MAQUINA 2
APLICACION
7
PRESENTACION
INTERFAZ
6
SESION 5
TRANSPORTE
INTERFAZ
4
RED 3
ENLACE DE DATOS 2
FISICO 1
RED
PROTOCOLO DE APLICACION
PROTOCOLO DE PRESENTACION
PROTOCOLO DE SESION
PROTOCOLO DE TRANSPORTE
PROTOCOLO DE RED
PROTOCOLO DE ENLACE DE DATOS
PROTOCOLO FISICO
Figura~8.1: Capas, interfaces y protocolos en el modelo OSI.
MENSAJE
ENCABEZADO DE LA CAPA DE ENLACE DE DATOS
ENCABEZADO DE LA CAPA DE RED
ENCABEZADO DE LA CAPA DE TRANSPORTE
ENCABEZADO DE LA CAPA DE SESION
ENCABEZADO DE LA CAPA DE PRESENTACION
ENCABEZADO DE LA CAPA DE APLICACION
EXTREMO FINAL
DE LA CAPA DE
ENLACE DE
DATOS
BITS QUE REALMENTE APARECEN EN LA RED
Figura~8.2: Un mensajetpico tal como apareceen la red.
8.4. DIRECCIONAMIENTO EN C - S 247
La mayora de los sistemas distribuidos basados en LAN no utilizan los protocolos de
capas completos, s utilizan un subconjunto detoda una pila deprotocolos.
El modelo OSI nodicenadaacercadelaforma deestructurar al sistemadistribuido.
El modelo cliente- servidor tienecomoideafundamental laestructuracin del S. O.
como:
Un grupo de procesos en cooperacin, llamados servidores, que ofrecen servicios a
los usuarios.
Un grupo deprocesos usuarios llamados clientes.
El modelo cliente - servidor sebasa en un protocolo solicitud / respuesta:
Es sencillo y sin conexin.
No es complejo y orientado a la conexin como OSI o TCP / IP.
El clienteenva un mensajedesolicitud al servidor pidiendo cierto servicio.
El servidor:
Ejecuta el requerimiento.
Regresa los datos solicitados o un cdigo deerror si no pudo ejecutarlo correc-
tamente.
No setienequeestablecer una conexin sino hasta questa seutilice.
La pila del protocolo es ms corta y por lo tanto ms eciente.
Si todaslasmquinasfuesenidnticassolosenecesitarantresnivelesdeprotocolos.
3
8.4 Direccionamiento en C - S
Para queun cliente pueda enviar un mensajea un servidor, debeconocer la direccin de
ste[25, Tanenbaum].
Un esquema dedireccionamiento sebasaen ladireccin dela mquina destinataria del
mensaje:
Es limitativo si en la mquina destinataria se ejecutan varios procesos, pues no se
sabra para cul deellos es el mensaje.
Otro esquema de direccionamiento sebasa en identicar los procesos destinatarios en
vez dea las mquinas:
Elimina la ambigedad acerca dequin es el receptor.
Presenta el problema decmo identicar los procesos:
3
Ver Figura 8.3 dela pgina 248 [25, Tanenbaum].
248 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
CLIENTE
NUCLEO
SERVIDOR
NUCLEO
RED
SOLICITUD
RESPUESTA
ESQUEMA DE LA SENCILLEZ DEL MODELO C - S
ENLACE DE DATOS
FISICA
CAPA
7
6
5
4
3
2
1
SOLICITUD / RESPUESTA
NIVELES DE PROTOCOLOS
NECESARIOS SI TODAS LAS
MAQUINAS FUESEN IDENTICAS
Figura~8.3: Modelo cliente- servidor.
Una solucin es una nomenclatura queincluya la identicacin de la mquina
y del proceso:
No senecesitan coordenadas globales.
Pueden repetirselos nombres delos procesos en distintas mquinas.
Una varianteutiliza machine.local-id en vez demachine.process:
local-id generalmentees un entero aleatorio de16o 32bits.
Un proceso servidor se inicia mediante una llamada al sistema para indicarle al
ncleo quedesea escuchar a local-id.
Cuandoseenvaunmensajedirigidoamachine.local-id el ncleosabeacul proceso
debedar el mensaje.
El direccionamientomachine.process presentael serioinconvenientedequenoestrans-
parente:
La transparencia es uno de los principales objetivos dela construccin de sistemas
distribuidos.
El usuario debeconocer la posicin del servidor.
Un cambio deservidor obliga a cambiar los programas.
Otro mtodo de direccionamiento consiste en asignarle a cada proceso una nica di-
reccin queno contenga un nmero demquina:
8.4. DIRECCIONAMIENTO EN C - S 249
Una forma es medianteun asignador centralizado de direcciones a los procesos que
mantenga un contador:
Al recibir una solicitud de direccin regresa el valor actual del contador y lo
incrementa en uno.
La desventaja es el elemento centralizado.
Tambin existeel mtodo de dejar que cada proceso elija su propio identicador:
En un espacio dedirecciones grandey disperso, por ej.: enteros binarios de64bits.
La probabilidad dequedos procesos elijan el mismo nmero es muy pequea.
Existeel problema, parael ncleoemisor, desaber aqumquinaenviar el mensaje:
En unaLAN, el emisor puedetransmitir un paqueteespecial delocalizacin con
la direccin del proceso destino.
Estepaquetedetransmisin ser recibido por todas las mquinas dela red.
Todoslosncleosverican si ladireccin eslasuya; si loes, regresaun mensaje
aqu estoy con su direccin en la red (nmero demquina).
El ncleo emisor utiliza esa direccin y la captura para evitar a posteriori una
nueva bsqueda del servidor.
Es un esquema transparente, pero la transmisin provoca una carga adicional en el
sistema:
Sepuedeevitar con una mquina adicional para la asociacin de:
Los nombres deservicios.
Las direcciones delas mquinas.
Al utilizar estesistema:
Se hace referencia a los procesos de los servidores mediante cadenas en ASCII que
son las queaparecen en los programas.
No sereferencian nmeros binarios demquinas o procesos.
Al ejecutar un clientequeintenteutilizar un servidor:
En su primer intento enva una solicitud a un servidor especial deasociaciones
(servidor denombres):
Le solicita el nmero de la mquina donde en ese momento se localiza el
servidor.
Conociendo la direccin del servidor, seleenva la solicitud del servicio reque-
rido.
250 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
Otro mtodo utiliza hardware especial:
Los procesos eligen su direccin en forma aleatoria.
Los chips de interfaz de la red se disean de modo que permitan a los procesos
almacenar direcciones deprocesos en ellos.
Los paquetes transmitidos utilizan direcciones de procesos en vez de direcciones de
mquinas.
Al recibir cadapaqueteel chipdeinterfaz delareddebeexaminarloparadeterminar
si el proceso destino seencuentra en esa mquina:
Lo acepta en caso armativo.
No lo acepta en caso negativo.
8.5 Primitivas de Bloqueo Vs. No Bloqueo en C - S
Las primitivas de transferencia de mensajes consideradas anteriormente se denominan
primitivas de bloqueo o primitivas sncronas [25, Tanenbaum]:
El proceso emisor sesuspende(sebloquea) mientras seenva el mensaje.
El proceso receptor sesuspendemientras serecibeel mensaje.
Una alternativa son las primitivas sin bloqueo o primitivas asncronas:
El proceso emisor:
No sesuspendemientras seenva el mensaje.
S puedecontinuar su cmputo paralelamentecon la transmisin del mensaje.
No puedemodicar el buer demensajes hasta queseenveel mensaje.
No tienecontrol sobrela terminacin dela transmisin y por lo tanto no sabe
cundo ser seguro reutilizar el buer.
Una solucin es:
Queel ncleo copieel mensajea un buer interno del ncleo.
Queentonces el ncleo permita al proceso continuar y reutilizar el buer.
La desventaja dela solucin es quecada mensajedesalida debe ser copiado desdeel
espacio del usuario al espacio del ncleo.
Otra solucin es:
Interrumpir al emisor cuando seenveel mensaje.
Informarlequeel buer nuevamenteest disponible.
8.6. PRIMITIVAS ALMACENADAS VS. NO ALMACENADAS 251
La desventaja radica en la dicultad de la programacin basada en interrupciones a
nivel usuario.
Generalmente se considera que las desventajas de las primitivas asncronas no com-
pensan las ventajas del mximo paralelismo que permiten lograr.
El criterio utilizado ha sido el siguiente:
La diferencia esencial entre una primitiva sncrona y una asncrona es si el emisor
puede volver a utilizar el buer de mensajes en forma inmediata y segura despus
derecuperar el control.
El momento en queel mensajellega al receptor es irrelevante.
Otro criterio establecelo siguiente:
Una primitiva sncrona es aquella en queel emisor sebloquea hasta queel receptor
ha aceptado el mensajey la conrmacin regresa al emisor.
Todo lo dems es asncrono con estecriterio.
Desdeel punto devista del S. O. generalmenteseconsiderael primer criterio; el inters
est centrado en el manejo delos buers y en la transmisin delos mensajes.
Desde el punto de vista de los lenguajes de programacin se tiende a considerar el
segundo criterio; el inters est centrado en el lenguajedeprogramacin y sus facilidades
deuso.
Generalmente a las primitivas de envo se las conocecomo send y a las de recepcin
como receive y ambas pueden ser con bloqueo o sin bloqueo.
Una recepcin sin bloqueo le indica al ncleo la localizacin del buer y regresa el
control:
El problema es saber quin hizo la llamada cuando sellev a cabo la operacin.
Las soluciones pueden ser:
Proporcionar una primitiva explcita wait quepermita al receptor bloquearse
cuando lo desee.
Proporcionar una primitiva test quepermita vericar el estado del ncleo.
8.6 Primitivas Almacenadas en Buer Vs. No Almacenadas
en C - S
Las primitivas consideradas hasta ahora son esencialmente primitivas no almacenadas
[25, Tanenbaum]:
Signica que una direccin se reere a un proceso especco.
Una llamada receive (addr, &m) le indica al ncleo de la mquina en donde se
ejecuta:
252 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
Queel proceso quehacela llamada escucha a la direccin addr.
Queest preparada para recibir el mensajeenviado a esa direccin.
Quesedisponedeun nico buer demensajes al queapunta mpara capturar
el mensajequellegar.
Quecuando el mensajellegueser copiado (por el ncleo receptor) al buer:
Seelimina entonces el bloqueo del proceso receptor.
Esteesquema funciona bien cuando el servidor llama a receive antes dequeel cliente
llamea send.
El problema sepresenta cuando el send selleva a cabo antes queel receive:
El ncleo del servidor:
No sabecul desus procesos utiliza la direccin en el mensajerecin llegado.
No sabedndecopiar el mensajerecibido.
Una solucin consisteen:
Descartar el mensaje.
Dejar queel clienteespere.
Conar en queel servidor llamea receive antesdequeel clientevuelvaatransmitir;
por ello el clientepodra tener queintentar varias veces.
Si dos o ms clientes utilizan un servidor con transferencia demensajes sin almacena-
miento en buers:
Luego dequeel servidor acept un mensajedeuno deellos:
Deja deescuchar a su direccin hasta quetermina su trabajo.
Regresa al principio del ciclo para volver a llamar a receive.
Si realizar el trabajo insumecierto tiempo, los dems clientes podran hacer varios
intentos deenvos sin xito.
Otra solucin consiste en hacer queel ncleo receptor mantenga pendientes los men-
sajes por un instante:
Para prevenir queun receive adecuado serealiceen un tiempo corto.
Cuando llega un mensajeno deseado, seinicializa el cronmetro:
Si el tiempo expira antes de que ocurra un receive apropiado, el mensaje se
descarta.
Sereducela probabilidad dequeun mensajesepierda.
8.6. PRIMITIVAS ALMACENADAS VS. NO ALMACENADAS 253
Sedebealmacenar y manejar los mensajes quellegan en forma prematura.
Senecesitan los buers y la administracin delos mismos.
Sepuedehacer medianteuna nueva estructura dedatos llamada buzn:
Un proceso interesado en recibir mensajes:
Leindica al ncleo quecreeun buzn para l.
Especica una direccin en la cual buscar los paquetes dela red.
Todos los mensajes quelleguen en esa direccin secolocan en el buzn.
Lallamadaareceiveeliminaunmensajedel buzn osebloquea(si seutilizanprimitivas
con bloqueo) si no hay un mensajepresente.
Esta tcnica sedenomina primitiva con almacenamiento en buers.
Los buzones tienen el problema dequeson nitos y pueden ocuparseen su totalidad:
Cuando llega un mensajea un buzn lleno, el ncleo debeelegir entre:
Mantener el mensajependientepor un momento esperando quealgn mensaje
sea retirado del buzn a tiempo.
Descartar el mensaje.
Esta es la misma situacin que se tiene cuando se trabaja sin almacenamiento en
buers:
Con buers se reduce la probabilidad de problemas, pero los problemas no se
eliminan ni cambia su naturaleza.
Otrasolucin utilizadaesnodejar queun procesoenveun mensajesi noexisteespacio
para su almacenamiento en el destino:
El emisor debebloquearsehasta queobtenga deregreso un reconocimiento:
Debeindicar queel mensajeha sido recibido.
Si el buzn est lleno, el emisor puede hacer un respaldo y suspendersede manera
retroactiva:
La suspensin debeoperar como si fuera justo antes dequeintentara enviar el
mensaje.
Cuandohayaespaciolibreenel buzn, seharqueel emisor intentenuevamen-
te.
254 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
8.7 Primitivas Conables Vs. No Conables en C - S
Hasta ac sehasupuesto quelos mensajes enviados siempre sern recibidos [25, Tanen-
baum], pero en la realidad, los mensajes se pueden perder por diversas causas.
Cuando un cliente enva un mensaje se le puede suspender hasta que el mensaje ha
sido enviado:
Cuando contina, no hay garanta de que el mensaje ha sido entregado, pues el
mensajepodra haberseperdido.
Un enfoque de este problema consiste en volver a denir la semntica de send para
hacerlo no conable [23, Tanenbaum]:
El sistema no garantiza la entrega delos mensajes.
La implantacin deuna comunicacin conablesedeja en manos delos usuarios.
Otro mtodo exige que el ncleo de la mquina receptora enve un reconocimiento al
ncleo de la mquina emisora:
Solo cuando reciba el reconocimiento, el ncleo emisor liberar al proceso usuario
(cliente).
La solicitud deun clientea un servidor es reconocida por el ncleo del servidor.
Larespuestadel servidor deregresoal clienteesreconocidapor el ncleodel cliente.
Una solicitud derespuesta consta decuatro mensajes.
Otra solucin aprovecha el hecho dequela comunicacin cliente - servidor se estruc-
tura:
Como una solicitud del clienteal servidor.
Seguida deuna respuesta del servidor al cliente.
El clientesebloquea despus deenviar un mensaje.
El ncleo del servidor no enva de regreso un reconocimiento sino que la misma
respuesta funciona como tal.
El emisor permanecebloqueado hasta queregresa la respuesta.
Si la respuesta no llega en cierto tiempo, el ncleo emisor puede volver a enviar la
solicitud; as seprotegecontra la posibilidad deuna prdida del mensaje.
En el esquema anterior la respuesta funciona como un reconocimiento a la solicitud:
4
No existeun reconocimiento por la respuesta:
4
Ver Figura 8.4 dela pgina 255 [25, Tanenbaum].
8.8. IMPLANTACIN DEL MODELO C - S 255
CLIENTE SERVIDOR
1
3
4
2
CLIENTE SERVIDOR
1
2
3
NUCLEO
1. SOLICITUD (DEL CLIENTE AL
SERVIDOR).
2. RECONOCIMIENTO (DE NUCLEO
A NUCLEO).
3. RESPUESTA (DEL SERVIDOR AL
CLIENTE).
4. RECONOCIMIENTO (DE NUCLEO
A NUCLEO).
1. SOLICITUD (DEL CLIENTE AL
SERVIDOR).
2. RESPUESTA (DEL SERVIDOR AL
CLIENTE).
3. RECONOCIMIENTO (DE NUCLEO A
NUCLEO) - NO SIEMPRE EXISTE, POR
ELLO APARECE COMO LINEA
DISCONTINUA.
Figura~8.4: Esquema de mensajes reconocidos en forma individual y esquema donde la
respuesta seutiliza como reconocimiento dela solicitud.
La seriedad deesta omisin dependedela naturaleza dela solicitud.
En algunos casos se utiliza un reconocimiento del ncleo del cliente al ncleo del
servidor:
Hasta no recibir este paquete, el send del servidor no termina y el servidor
permanecebloqueado (si seutilizan primitivas con bloqueo).
Otra posibilidad es la siguiente:
Al llegar una solicitud al ncleo del servidor, seinicia un cronmetro.
Si el servidor enva la respuesta antes de que termine el cronmetro, sta funciona
como el reconocimiento.
Si expira el tiempo del cronmetro, seenva un reconocimiento separado.
8.8 I mplantacin del Modelo C - S
Las principales opciones de diseo analizadas seresumen en [25, Tanenbaum]:
Direccionamiento:
Nmero demquina.
Direcciones ralas deprocesos.
Bsqueda denombres en ASCI I por medio del servidor.
Bloqueo:
256 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
Primitivas con bloqueo.
Sin bloqueo, con copia al ncleo.
Sin bloqueo, con interrupciones.
Almacenamiento en buers:
No usar el almacenamiento en buers, descartar los mensajes inesperados.
Sin almacenamiento en buers, mantenimiento temporal delos mensajes ines-
perados.
Buzones.
Conabilidad:
No conable.
Solicitud - reconocimiento - respuesta - reconocimiento.
Solicitud - respuesta - reconocimiento.
Existen 3
4
=81combinaciones, pero no todas son igual debuenas.
En el caso demensajes compuestos por varios paquetes, el reconocimiento puedeser:
Por paquete individual:
Antela prdida deun paquete, solo retransmitesepaquete.
Requierems paquetes en la red.
Por mensaje completo:
La recuperacin es compleja antela prdida deun paquete.
Requieremenos paquetes en la red.
Otro aspecto interesantedela implementacin es el protocolo subyacenteutilizado en
la comunicacin c - s.
Los principales tipos de paquetes son los siguientes:
Req:
Solicitud.
Declientea servidor.
El clientedesea servicio.
Rep:
Respuesta.
Deservidor a cliente.
Respuesta del servidor al cliente.
8.9. LLAMADA A UN PROCEDIMIENTO REMOTO (RPC) 257
Ack:
Reconocimiento.
Decualquiera deellos a algn otro.
El paqueteanterior queha llegado.
Aya:
Ests vivo?.
Declientea servidor.
Verica si el servidor seha descompuesto.
I aa:
Estoy vivo.
Deservidor a cliente.
El servidor no seha descompuesto.
Ta:
Intenta denuevo.
Deservidor a clientes.
El servidor no tieneespacio.
Au:
Direccin desconocida.
Deservidor a cliente.
Ningn proceso utiliza esta direccin.
Algunos ejemplos deintercambio depaquetes para la comunicacin cliente - servidor
pueden verseen la Figura 8.5dela pgina 258[25, Tanenbaum].
8.9 Llamada a un Procedimiento Remoto (RPC)
El modelo cliente- servidor es una formaconvenientedeestructurar un S. O. distribuido,
pero posee una falencia [25, Tanenbaum]:
El paradigma esencial en torno al queseconstruyela comunicacin es la entrada /
salida.
Los procedimientos send / receive estn reservados para la realizacin dee / s.
Una opcin distinta fueplanteada por Birrel y Nelson:
258 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
SOLICITUD / RESPUESTA DIRECTA, SIN RECONOCIMIENTOS
CLIENTE SERVIDOR
REQ
REP
RECONOCIMIENTO DE CADA MENSAJE INDIVIDUAL
CLIENTE SERVIDOR
REQ
REP
ACK
ACK
LA RESPUESTA ACTUA COMO RECONOCIMIENTO
CLIENTE SERVIDOR
REQ
REP
ACK
VERIFICACION DE UN CLIENTE RESPECTO DE SI EL SERVIDOR ESTA ACTIVO
CLIENTE
SERVIDOR
REQ
REP
ACK
ACK
AYA
IAA
Figura~8.5: Intercambio depaquetes en la comunicacin cliente- servidor.
8.10. OPERACIN BSICA DE RPC 259
Permitir a los programas quellamasen a procedimientos localizados en otras mqui-
nas.
Cuando un proceso en la mquina A llama a un procedimiento en la mquina
B:
El proceso querealiza la llamada sesuspende.
La ejecucin del procedimiento serealiza en B.
La informacin se puede transportar de un lado al otro mediante los parmetros y
puederegresar en el resultado del procedimiento.
El programador no sepreocupa deuna transferencia demensajes o dela e/ s.
A estemtodo selo denomina llamada a procedimiento remoto o RPC.
El procedimiento que hace la llamada y el que la recibe se ejecutan en mquinas
diferentes, es decir queutilizan espacios dedirecciones distintos.
8.10 Operacin Bsica de RPC
Una llamada convencional a un procedimiento, es decir en una sola mquina, funciona de
la siguientemanera [25, Tanenbaum]:
5
Sea count = read (fd, buf, nbytes); donde:
fd es un entero; buf es un arreglo decaracteres; nbytes es otro entero.
El programa llamador coloca los parmetros en la pila.
El procedimiento llamado desdeel programa llamador secarga en la memoria.
Despus dequeread termina su ejecucin:
Coloca el valor deregreso en un registro.
Elimina la direccin deregreso.
Transeredenuevo el control a quien hizo la llamada.
Quien hizo la llamada elimina los parmetros de la pila y regresa a su estado
original.
Los parmetros pueden llamarsepor valor o por referencia.
Un parmetro por valor:
Secopia a la pila.
Parael procedimientoquerecibelallamadaessolounavariablelocal yainicializada.
5
Ver Figura 8.6 dela pgina 260 [25, Tanenbaum].
260 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
VARIABLES
LOCALES DE
MAIN
VARIABLES
LOCALES DE
MAIN
VARIABLES
LOCALES DE
MAIN
SP
0 0 0
SP
NBYTES
BUF
FD
DIREC. RETORNO
VARIABLES
LOCALES DE
READ
SP
LA PILA ANTES DE LA
LLAMADA Aread
LA PILA MIENTRAS EL
PROCEDIMIENTO LLAMADO
ESTA ACTIVO
LA PILA DESPUES DEL
REGRESO A QUIEN HIZO
LA LLAMADA
Figura~8.6: Llamada a un procedimiento local.
El procedimientopodramodicarla, sinqueestoafecteel valor delavariableoriginal
en el procedimiento quehizo la llamada.
Un parmetro por referencia:
Es un apuntador a una variable(es decir, la direccin dela variable), no el valor de
la variable.
En el ej. anterior, vlido para C, el segundo parmetro es un parmetro por
referencia y es un arreglo.
Si el procedimiento querecibela llamada utiliza esteparmetro por referencia para
almacenar algo en el arreglo, modica el arreglo en el procedimiento que hizo la
llamada
Otro mecanismo para el paso de parmetros es la llamada por copiar / restaurar:
Quien recibela llamada copia la variableen la pila, como en la llamada por valor.
La copia denuevo despus dela llamada, escribiendo sobreel valor original.
La decisin de cul mecanismo utilizar para el paso de parmetros la toman los di-
seadores del sistema y es una propiedad ja del lenguaje.
La ida es queuna llamada a un procedimiento remoto (RPC) separezca lo ms posible
a una llamada local:
La RPC debeser transparente.
El procedimientoquehacelallamadanodebeser conscientedequeel procedimiento
llamado seejecuta en una mquina distinta, o viceversa.
8.10. OPERACIN BSICA DE RPC 261
Si read es un procedimiento remoto (ej.: se ejecuta en la mquina del servidor de
archivos) se coloca en la biblioteca una versin distinta de read llamada stub del
cliente:
No coloca los parmetros en registros y le pide al ncleo que le proporcione
datos.
Coloca los parmetros en un mensaje y le pidela ncleo que enve el mensaje
al servidor.
Despus de la llamada a send, el stub del cliente llama a receive y se bloquea
hasta queregresela respuesta.
Cuando el mensajellega al servidor:
El ncleo lo transerea un stubdel servidor.
Generalmente el stub del servidor ya habr llamado a receive y estar bloqueado
esperando quelelleguen mensajes.
El stubdel servidor:
desempaca los parmetros del mensaje.
Llama al procedimiento del servidor dela manera convencional.
Para el servidor es como si tuviera una llamada directa del cliente; lleva a cabo el
trabajo y regresa el resultado a quien hizo la llamada, dela forma usual.
El stubdel servidor recupera el control luego dela llamada y:
Empaca el resultado en un mensaje.
Llama a send para regresarlo al cliente.
Llama a receive y espera el siguientemensaje.
Cuando el mensajeregresa a la mquina cliente:
El ncleo vequeest dirigido al proceso cliente.
El mensajesecopia al buer en espera.
El proceso clienteelimina su bloqueo.
El stubdel cliente examinael mensaje, desempacael resultado, locopiaaquien hizo
la llamada y regresa dela manera usual.
Cuando el proceso que hizo la llamada obtieneel control luego dela llamada a read:
Disponedelos datos.
Ignora queel trabajo serealiz demanera remota.
262 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
Ha tenido acceso a servicios remotos mediante llamadas comunes a procedimientos
locales.
Resumiendo, se pueden indicar los siguientes pasos como una llamada a un procedi-
miento remoto:
6
El procedimiento cliente llama al stub del cliente dela manera usual.
El stub del cliente construyeun mensaje y haceun sealamiento al ncleo.
El ncleo enva el mensaje al ncleo remoto.
El ncleo remoto proporciona el mensaje al stub del servidor.
El stub del servidor desempaca los parmetros y llama al servidor.
El servidor realiza el trabajo y regresa el resultado al stub.
El stub del servidor empaca el resultado en un mensaje y hace un sealamiento al
ncleo.
El ncleo remoto enva el mensaje al ncleo del cliente.
El ncleo del clienteda el mensajeal stubdel cliente.
El stub desempaca el resultado y regresa al cliente.
Se ha convertido la llamada local del procedimiento cliente al stub del cliente, en una
llamada local al procedimiento servidor.
8.11 Transferencia de Parmetros en RPC
El empacamiento de parmetros en un mensaje se llama ordenamiento de parmetros
[25, Tanenbaum].
El mensaje tambin contiene el nombre o nmero del procedimiento por llamar; el
servidor podrasoportar varias llamadas y seel tienequeindicar cul deellas senecesita.
Cuando el mensaje llega al servidor:
El resguardo (stub) lo examina para ver cul procedimiento necesita.
Lleva a cabo la llamada apropiada.
La llamada real del resguardo al servidor es similar a la llamada original del cliente,
excepto en quelos parmetros son variables inicializadas a partir del mensajerecibido, en
vez deser constantes.
7
Los elementos del mensaje corresponden a:
Identicador del procedimiento.
6
Ver Figura 8.7 dela pgina 263 [25, Tanenbaum].
7
Ver Figura 8.8 dela pgina 263 [25, Tanenbaum].
8.11. TRANSFERENCIA DE PARMETROS EN RPC 263
MAQUINA CLIENTE
RESGUARDO
DEL CLIENTE
CLIENTE
PARAMETROS
EMPACADOS
RESULTADOS
DESEMPACADOS
NUCLEO NUCLEO
MAQUINA SERVIDOR
RESGUARDO
DEL SERVID.
SERVIDOR
PARAMETROS
DESEMPACADOS
RESULTADOS
EMPACADOS
LLAMADA
REGRESO
LLAMADA
REGRESO
TRANSPORTE DE UN MENSAJE SOBRE LA RED
Figura~8.7: Llamadas y mensajes en una RPC, donde cada elipse representa un solo
proceso queincluyeel resguardo.
NUCLEO
MAQUINA
CLIENTE
.
n = sum (4,7);
.
.
sum
4
7
NUCLEO
MAQUINA SERVIDORA
sum
4
7
sum (i,j)
int i,j;
{
return
(i+j);
}
STUBS
Figura~8.8: Ejemplo declculo remoto.
264 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
Parmetros.
Un mensaje que corresponda a un procedimiento remoto con n parmetros tendr
n + 1 campos:
Uno para identicar al procedimiento.
Uno para cada uno delos n parmetros.
Un aspecto importantees determinar cmo sedeberepresentar la informacin en los
mensajes:
Una forma es:
Disear un estndar dered o forma cannica para los enteros, caracteres, bo-
oleanos, nmero depunto otante, etc.
Pedir a todos los emisores que conviertan sus representaciones internas a esta
forma duranteel ordenamiento.
Es importantesaber la organizacin del mensaje y la identidad del cliente.
Tambin es importantedeterminar de dnde provienen los procedimientos resguardo:
En muchos sistemas segeneran automticamente.
Dada una especicacin del procedimiento servidor y las reglas de codicacin, el
formato del mensajequeda determinado demanera nica.
Es posibletener un compilador que:
Lea las especicaciones del servidor.
Genereun resguardodel clientequeempaquesusparmetrosen el formatoestndar
delos mensajes.
Genereun resguardo del servidor quelos desempaque.
Llameal servidor.
Un aspecto tambin muy importantees cmo se transeren los apuntadores, pues un
apuntador solo tiene sentido dentro del espacio de direcciones del proceso en el que se
utiliza.
Una solucin es copiar en el mensaje la estructura para la cual seutiliza el apuntador
y enviarloal servidor, ental casoloscambiosquerealiceel servidor medianteel apuntador
afectarn directamenteal buer demensajes en el resguardo del servidor.
8.12. CONEXIN DINMICA (DYNAMIC BINDING) EN RPC 265
8.12 Conexin Dinmica (Dynamic Binding) en RPC
Un tema fundamental es la forma en que el cliente localiza al servidor [25, Tanenbaum].
Un mtodoconsisteen integrar dentro del cdigo del cliente ladireccin (en lared) del
servidor:
El problema es queresulta demasiado rgido.
Si el servidor se desplaza, si se duplica o si cambia la interfaz, habra que localizar
y volver a compilar los numerosos programas.
Una solucin es la conexin dinmica para queconcuerden los clientes y los servi-
dores.
El punto deinicio dela conexin dinmicaes la especicacin formal del servidor, que
indica el nombredel servidor, el nmero deversin y una lista delos procedimientos que
proporciona.
Se tienen los tipos de parmetros para cada procedimiento y cada parmetro queda
determinado como parmetro in, out o in-out.
La direccin es relativa al servidor.
El principal uso dela especicacin formal es como entrada del generador de resguar-
dos:
Produceel resguardo del clientey el del servidor.
Ambos resguardos secolocan en las bibliotecas respectivas.
Cuando un programa (cliente) llama a cualquiera delos procedimientos denidos me-
dianteesaespecicacin, el correspondienteprocedimiento resguardo del clienteseligacon
su binario.
Si secompila un programa servidor, los resguardos del servidor seleligan tambin.
Cuando el servidor inicia su ejecucin:
Una llamada tipo initialize que se encuentra fuera del ciclo principal exporta la
interfaz del servidor:
El servidor enva un mensajea un programa conector para darlea conocer su
existencia.
Esto es el registro del servidor (registeringthe server).
El servidor proporciona al conector su nombre, nmero de versin y un nico
identicador.
El identicador generalmente tiene una longitud de 32 bits y un asa (handle)
queseutiliza para localizarlo.
El asa (handle) dependedel sistema y puedeser:
Una direccin ethernet, ip, x.500.
Un identicador ralo deprocesos, etc.
El asa tambin puedeproporcionar informacin relativa a la autenticacin.
266 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
Un servidor puede cancelar su registro con el conector si ya no est preparado para
prestar algn servicio.
El cliente localiza al servidor dela siguientemanera:
Cuando el clientellama a alguno delos procedimientos remotos por primera vez:
El resguardo del cliente:
Vequean no est conectado a un servidor.
Enva un mensajeal conector solicitando la importacin decierta versin
decierta interfaz.
El conector verica si uno o ms servidores ya han exportado una interfaz con
esenombrey versin.
Si ninguno delos servidores en ejecucin en esemomento soporta esa interfaz,
la llamada fracasa.
Si existe un servidor adecuado, el conector proporciona un asa e identicador
nico al resguardo del cliente, que utiliza el asa como la direccin a la cual
enviar el mensajesolicitado.
Es un esquema muy exible pero el conector puede ser un cuello de botella con altas
cargas detrabajo.
8.13 Semntica de RPC en Presencia de Fallos
El objetivo deRPC es ocultar la comunicacin al hacer quelas llamadas a procedimientos
remotos se parezcan a las llamadas locales [25, Tanenbaum].
El problema se presenta cuando aparecen los errores, ya que las diferencias entre las
llamadas locales y remotas no son tan fciles deencubrir.
Seconsideraran las siguientes situaciones:
El cliente no puede localizar al servidor.
Se pierde el mensaje de solicitud del cliente al servidor.
Se pierde el mensaje de respuesta del servidor al cliente.
El servidor falla antes de recibir una solicitud.
El cliente falla despus de enviar una solicitud.
8.13.1 El Cliente No Puede Localizar al Servidor
El servidor podra estar inactivo.
El servidor podraestar utilizandounanuevaversindelainterfazynuevosresguardos,
queno seran compatibles con la interfaz y los resguardos del cliente.
En el servidor, cada uno delos procedimientos regresa un valor:
Generalmenteel cdigo -1indica un fallo.
8.13. SEMNTICA DE RPC EN PRESENCIA DE FALLOS 267
Tambin se suele utilizar una variable global (UNIX) errno a la que se asigna un
valor queindica el tipo deerror.
Un tipo deerror sera no sepudo localizar al servidor.
Otra posibilidad para el tratamiento delos errores es mediante una excepcin provo-
cada por el error:
Secodican procedimientos especiales queson llamados anteerrores especcos.
El problema es que se puede destruir la transparencia deseada, ya que se diculta
mantener la similitud entreprocedimientos locales y remotos.
8.13.2 Prdida de Mensajes de Solicitud
El ncleo (kernel) debe inicializar un cronmetro al enviar la solicitud; si el tiempo se
termina antes dequeregreseuna respuesta o reconocimiento, el ncleo vuelve a enviar el
mensaje.
Si el mensaje realmente se perdi, el servidor no podr indicar la diferencia entre la
retransmisin y el original y todo funcionar bien.
Si el nmero demensajes perdidos supera cierto lmite, el ncleo puedeasumir queel
servidor est inactivo y seregresa a la situacin no sepudo localizar al servidor.
8.13.3 Prdida de Mensajes de Respuesta
La prdida derespuestas genera mayores problemas que la prdida de solicitudes.
Seutiliza un cronmetro:
Si nollegaunarespuestaenunperodorazonable, sedebevolver aenviar lasolicitud.
El problema es que el ncleo del cliente no est seguro de la razn por la que no
hubo respuesta.
Ciertas operaciones se pueden repetir con seguridad tantas veces como sea necesario
sin queocurran daos; una solicitud con esta propiedad es idempotente.
Otras operaciones no son idempotentes, por ej. la transferencia dedinero:
Seemiteuna solicitud a un servidor bancario para transferir cierta suma dedinero.
La solicitud llega y seefecta pero sepierdela respuesta.
El clienteconsidera quela solicitud seperdi y la emitenuevamente.
El servidor recibela nueva solicitud y la ejecuta al no saber quees un reenvo dela
anterior.
Una forma de resolver el problema consisteen lo siguiente:
El ncleo del clienteasigna a cada solicitud un nmero secuencial.
268 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
RECIBE
EJECUTA
RESPONDE
SERVIDOR REQ
REP
CASO NORMAL
RECIBE
EJECUTA
FALLO
SERVIDOR
FALLO ANTES
DE RESPONDER
REQ
NO
REP
RECIBE
FALLO
SERVIDOR
FALLO ANTES
DE EJECUTAR
REQ
NO
REP
Figura~8.9: Situaciones posibles defallos en el servidor.
El ncleo del servidor mantieneun registro del nmero secuencial derecepcin ms
recientedecada uno delos ncleos declientes quelo utilicen.
El ncleo del servidor podr indicar la diferencia entre una solicitud original y una
retransmisin y puederechazar larealizacin decualquier solicitud por segundavez.
Una proteccin adicional es tener un bit en el encabezado del mensajepara distinguir
las solicitudes delas retransmisiones.
8.13.4 Fallos del Servidor
Un fallo del servidor tambin se relaciona con la idempotencia pero no se puederesolver
con nmeros secuenciales.
8
El problemaesqueel ncleodel clientenopuededecidir si sehapresentadolasegunda
o la tercera situacin.
Las posibles soluciones son las siguientes:
Semntica al menos una:
Esperar hasta que el servidor vuelva a arrancar (o se reconecte a un nuevo
servidor) eintenterealizar denuevo la operacin.
Mantener el intento hasta recibir una respuesta para drsela al cliente.
Garantiza quela RPC seha realizado al menos una vez, pero es posiblequese
realicems veces.
Semntica a lo ms una:
No sereintenta y seinforma del fallo.
8
Ver Figura 8.9 dela pgina 268 [25, Tanenbaum].
8.13. SEMNTICA DE RPC EN PRESENCIA DE FALLOS 269
Garantiza que la RPC se realiza a lo ms una vez, pero es posible que no se
realiceni una sola vez.
Semntica de no garantizar nada:
Cuando un servidor falla, el clienteno obtieneayuda o alguna promesa.
La RPC sepuederealizar en cualquier lugar, un nmero deveces queva desde
0 hasta n.
Resulta fcil deimplantar.
Semntica de exactamente una:
Es la solucin deseable pero generalmente no existeforma degarantizar esto.
El procedimientoderecuperacindependetotalmentedel momentoenqueocu-
rreel fallo.
El clienteno tieneforma dedescubrir eseinstante.
La posibilidad de fallos del servidor distingue de manera clara los sistemas con un
nico procesador delos sistemas distribuidos:
Con un nico procesador el fallo de un servidor implica un fallo del cliente y la
recuperacin no es ni posibleni necesaria.
Con sistemas distribuidos es posibley necesario realizar cierta accin.
8.13.5 Fallos del Cliente
La cuestin es quocurre si un clienteenva una solicitud a un servidor y falla antes de
que el servidor responda.
Se genera una solicitud de trabajo o cmputo que al fallar el clienteya nadieespera;
sedicequesetieneun cmputo hurfano.
Los principales problemas generados por cmputos hurfanos son los siguientes:
Desperdicio deciclos decpu.
Posiblebloqueo dearchivos.
Apropiacin derecursos valiosos.
Posibleconfusin cuando:
El clienterearranca y efecta denuevo la RPC.
La respuesta del hurfano regresa inmediatamenteluego.
Las soluciones a los cmputos huerfanos son las siguientes [25, Tanenbaum]:
Exterminacin:
270 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
Se crea un registro que indica lo que va a hacer el resguardo del cliente antes
dequeemita la RPC.
El registro semantieneen disco.
Luegodel rearranquesevericael contenidodel registroyseeliminael hurfano
explcitamente.
Ladesventajaes lasobrecargaen e/ sgeneradapor lagrabacin previaacada
RPC.
Fallara si los hurfanos generan RPC, creando hurfanos de hurfanos:
Sera imposiblelocalizarlos.
Anteciertos fallos en la red sera imposibleeliminarlos aunqueselos loca-
lice.
Reencarnacin:
Resuelvelos problemas anteriores sin necesidad deescribir registros en disco.
Consisteen dividir el tiempo en pocas numeradas demanera secuencial.
Cuandoun clienterearrancaenvaun mensajeatodaslasmquinasdeclarando
el inicio deuna nueva poca.
Al recibirseestos mensajes seeliminan todos los cmputos remotos.
Si se divide la red mediante particiones por fallas, podran sobrevivir ciertos
hurfanos:
Cuandosereconecten y vuelvan areportarsesus respuestas contendrn un
nmero depoca obsoleto y selos podr detectar y eliminar.
Reencarnacin sutil:
Cuando llega un mensajedecierta poca:
Cada mquina verica si tienecmputos remotos:
En caso armativo intenta localizar a su poseedor.
Si no selocaliza al poseedor seelimina el cmputo.
Expiracin:
A cada RPC seleasignauna cantidad estndar detiempot para querealice
su trabajo.
Si el tiempo es insucientedebepedir explcitamenteotro quantum, pero esto
es un inconveniente.
Si luegodel falloel servidor espera t antesderearrancar, todosloshurfanos
habrn desaparecido.
El problemaeselegir unt razonable, yaquepuedenexistir RPC conrequisitos
diversos.
8.14. ASPECTOS DE LA IMPLANTACIN EN RPC 271
8.14 Aspectos de la I mplantacin en RPC
El desempeo o performance esfundamental en lossistemasdistribuidos[25, Tanenbaum].
El desempeo dependedemanera crtica dela velocidad de la comunicacin.
La velocidad dependeen gran medida dela implantacin.
8.14.1 Protocolos RPC
Sedebeelegir entreun protocolo orientado a la conexin o un protocolo sin conexin.
En los protocolos orientados a la conexin:
Seestableceuna conexin entreclientey servidor.
Todo el trco en ambas direcciones utiliza esa conexin.
Semaneja a un nivel inferior medianteel softwarequesoporta la conexin.
Es muy til para redes de rea amplia o extendida (WAN).
Es desventajoso en redes de rea local (LAN):
Por laprdida deperformancequesignicaraprocesar softwareadicional para
aprovechar la ventaja deno perder los paquetes; esto difcilmenteseprecisa en
las LAN.
Muchos sistemas distribuidos en reas geogrcas reducidas utilizan protocolos sin
conexin.
Los protocolos sin conexin tienen caractersticas opuestas a las indicadas precedente-
mente.
Otraopcin importanteesutilizar unprotocolo estndar depropsitogeneral oalguno
especco para RPC.
Lautilizacin del protocolo estndar I P (o UDP, integrado a IP) poseelas siguientes
ventajas:
El protocolo ya fuediseado, lo queahorra trabajo.
Sedisponedemuchas implantaciones, lo quetambin ahorra trabajo.
Los paquetes IP sepueden enviar y recibir por casi todos los sistemas UNIX.
Los paquetes IP y UDP sepueden transmitir en muchas delas redes existentes.
El problema con un protocolo estndar tipo IP es el desempeo o performance:
IP no sedise como un protocolo deusuario nal.
IP se dise como una base para que las conexiones conables TCP se pudiesen
establecer en las interredes.
272 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
IP soporta la fragmentacin de paquetes para adecuarlos a redes con un pequeo
tamao mximo depaquete.
Estacaractersticadefragmentacin nosenecesitaen un sistemadistribuidobasado
en una LAN, pero:
Los campos del encabezado del paquete IP relacionados con la fragmentacin
deben ser:
Llenados por el emisor.
Vericados por el receptor.
Los paquetes IP tienen 13campos deencabezado:
Son tiles solo 3:
Direccin fuente.
Direccin destino.
Longitud del paquete.
Los10camposrestantesincluyen unodesumadevericacin, cuyoclculo
consumecpu.
UDP tiene otra suma de vericacin, que tambin cubre los datos y con-
sumecpu.
La alternativa es utilizar un protocolo especializado en RPC, que debe ser inventado,
implantado, probado einsertado en los sistemas existentes:
Debeser dealto rendimiento.
Debeser aceptado masivamente.
Otro aspecto importanterelacionado con los protocolos es la longitud del paquete y el
mensaje:
La realizacin deuna RPC tieneun alto costo jo independientedela cantidad de
datos enviados.
El protocoloy la red deben permitir transmisiones largas paraminimizar el nmero
deRPC.
8.14.2 Reconocimientos
Cuando los RPC de gran tamao deben dividirseen muchos paquetes pequeos, surgela
cuestin del reconocimiento:
Los paquetes sern reconocidos grupalmente o individualmente.
Ej.: un cliente desea escribir un bloque de datos de 4k en un servidor de archivos,
pero el sistema no puedemanejar paquetes mayores de1k.
Una estrategia de reconocimiento es el protocolo detenerse y esperar (Stop-And-Wait
Protocol):
8.14. ASPECTOS DE LA IMPLANTACIN EN RPC 273
El clienteenva el paquete0con el primer 1k.
El clienteespera un reconocimiento del servidor.
El clienteenva el paquete1con el segundo 1k.
Etc.
La prdida de un paquete signica que no llegar su reconocimiento y habr que
retransmitirlo.
Otra estrategia es el protocolo de chorro (Blast Protocol):
El clienteenva todos los paquetes tan pronto como puede.
El servidor reconocetodo el mensajeal recibir todos los paquetes; no hay reconoci-
miento individual depaquetes.
La prdida deun paquetepuedesignicar:
La retransmisin detodo el mensaje.
La repeticin selectiva dela transmisin del paquetedaado o perdido.
Otra consideracin ms importante que el control de errores es el control del ujo:
Est relacionado con la capacidad nita de recepcin de paquetes adyacentes por
partedelos chips deinterfaz dered.
Cuando un paquetellegaaun receptor quenolopuedeaceptar sepresentaun error
de sobreejecucin (overrun error) y el paquetesepierde.
Con el protocolo detenerse y esperar no sepresentan los errores desobreejecucin.
Con el protocolo de chorro pueden ocurrir errores desobreejecucin.
Una solucin consisteen queel emisor inserteun retraso entrelos paquetes para darle
tiempo al receptor para:
Generar la interrupcin correspondienteal paquete.
Volver a estar listo para recepcin.
Si la sobreejecucin se debe a la capacidad nita del buer en el chip de la red, el
emisor puede:
Enviar n paquetes y luego hacer una pausa.
Solicitar una conrmacin o reconocimiento luego decada n paquetes.
Un problema adicional consisteen laposibleprdida depaquetes dereconocimiento del
cliente al servidor:
274 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
Para el cliente, que recibi la respuesta a su requerimiento, todo habr terminado
correctamente.
Para el servidor habr una respuesta no reconocida.
Una solucin es reconocer tambin a los paquetes dereconocimiento, lo cual agrega
complejidad y costo adicional.
Otra solucin es queel servidor inicialiceun cronmetro al enviar la respuesta:
La respuesta sedescartar cuando ocurra alguna delas siguientes situaciones:
Llegada del reconocimiento.
Expiracin del tiempo.
Llegada deun nuevo requerimiento del cliente.
8.14.3 Ruta Crtica
Es la serie de instrucciones que se ejecutan con cada RPC.
9
Es importantedeterminar en qu parte dela ruta crtica seocupa la mayor parte del
tiempo quedemanda la RPC:
Dependedel tipo deRPC y dela cantidad dedatos quesedeben transportar.
En RPC con transporte mnimo la mayor partedel tiempo seocupa en:
El cambio decontexto al resguardo del servidor al llegar un paquete.
La rutina deservicio deinterrupciones.
El movimiento del paquetea la interfaz dela red para su transmisin.
En RPC con transporte de 1k o ms la mayor partedel tiempo seocupa en:
El tiempo detransmisin.
El tiempo que tarda el desplazamiento del paquete hacia adentro y afuera de
la interfaz.
8.14.4 Copiado
Un aspecto quedomina frecuentementelos tiempos deejecucin en RPC es el copiado.
El nmerodevecesquesedebecopiar un mensaje varasegn el hardware, el software
y el tipo dellamada.
En el mejor de los casos el chip de la red puede utilizar el DMA (acceso directo a la
memoria) para:
Transferir el mensajedel espacio dedirecciones del resguardo del clientea la red.
9
Ver Figura 8.10 dela pgina 275 [25, Tanenbaum].
8.14. ASPECTOS DE LA IMPLANTACIN EN RPC 275
LLAMA AL PROCEDIMIENTO
RESGUARDO.
PREPARA EL BUFFER DE
MENSAJES.
ORDENA PARAMETROS
DENTRO DEL BUFFER.
LLENA LOS CAMPOS DE
ENCABEZADO DEL
MENSAJE.
SEALA AL NUCLEO.
MAQUINA CLIENTE
CAMBIO DE CONTEXTO
AL NUCLEO.
COPIA EL MENSAJE
AL NUCLEO.
DETERMINA LA DIRECCION
DE DESTINO.
PONE LA DIRECCION
EN EL ENCABEZADO
DEL MENSAJE.
ESTABLECE LA INTERFAZ
DE LA RED.
INICIALIZA EL
CRONOMETRO.
REALIZA EL SERVICIO.
LLAMA AL SERVIDOR.
ESTABLECE LOS
PARAMETROS EN LA PILA.
DESORDENA LOS
PARAMETROS.
CAMBIO DE CONTEXTO
DEL RESGUARDO
DEL SERVIDOR.
COPIA EL MENSAJE
AL RESGUARDO
DEL SERVIDOR.
VE SI EL RESGUARDO
ESTA ESPERANDO.
DECIDE A CUAL RESGUARDO
DARSELO.
VERIFICA LA VALIDEZ
DEL PAQUETE.
INTERRUPCION DEL
PROCESO.
MAQUINA SERVIDORA
1 6
2
5
3 4
1 - CLIENTE. 4 - NUCLEO.
2 - RESGUARDO DEL CLIENTE. 5 - RESGUARDO DEL SERVIDOR.
3 - NUCLEO. 6 - SERVIDOR.
Figura~8.10: Ruta crtica del clienteal servidor.
276 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
Depositarlo en la memoria del ncleo del servidor en tiempo real.
El ncleo:
Inspecciona el paquete.
Asocia la pgina quelo contieneen el espacio dedirecciones del servidor.
Si no puedeefectuar la asociacin, copia el paqueteal resguardo del servidor.
Generalmentelas copias efectuadas son las siguientes:
El ncleodel clientecopiael mensajedel resguardodel clienteenunbuer del ncleo
para su transmisin.
El ncleo copia el mensaje, en software, a un buer de hardware en la tarjeta de
interfaz dela red.
El paquetesedesplaza por la red hacia la tarjeta deinterfaz dela mquina destino.
Cuando la interrupcin correspondienteal paqueteapareceen la mquina del servi-
dor, el ncleo lo copia a un buer del ncleo.
El ncleo del servidor lo extraedel buer dehardware.
El mensaje, luego deser inspeccionado, secopia al resguardo del servidor.
Si la llamada transere como parmetro un arreglo de gran tamao se agregan las
siguientes copias:
A la pila del clientepara la llamada del resguardo.
Dela pila al buer demensajes duranteel ordenamiento dentro del resguardo
del cliente.
Del mensaje recibido en el resguardo del servidor a la pila del servidor que
antecedea la llamada al servidor.
El esquema precedenteincluye8copias:
Si el tiempo de copia de una palabra de 32 bits es de 500 nseg, con 8 copias, cada
palabra necesita 4microseg.
Limita la velocidad mxima detransmisin delos datos a 1 mbyte / seg, indepen-
dientementedela velocidad dela red.
Una caracterstica del hardware quedisminuyeel copiado es ladispersin - asociacin
(scatter - gather):
El chip de la red organiza un paquete concatenando 2 o ms buers de memoria
situados en distinto mbito del cliente: ncleo, resguardo del cliente, etc.
En el servidor ocurrealgo similar, pero con ms limitaciones.
8.14. ASPECTOS DE LA IMPLANTACIN EN RPC 277
En los S. O. con memoria virtual sepuedeevitar el copiado al resguardo medianteel
siguienteprocedimiento:
El ncleomodica el mapadela memoriaparaasociar el buer con el paqueteen el
espacio dedirecciones del servidor y enviar simultneamenteel buer del resguardo
del servidor al ncleo.
Los requisitos son los siguientes:
El buer del paqueteenel ncleoocupatodaunapginaapartir deunafrontera
depgina.
El buer receptor del resguardo del servidor tambin es de toda una pgina e
inicia en una frontera depgina.
8.14.5 Manejo del Cronmetro
La mayora delos protocolos inicializan un cronmetro cada vez queseenva un mensaje
y seespera una respuesta.
Si la respuesta no llega en el tiempo esperado sevuelvea transmitir el mensaje.
Esteproceso sepuederepetir hasta un mximo previsto.
El tiempo decpu destinado al manejo delos cronmetros puedeser considerable.
El establecimiento deun cronmetro requiereconstruir una estructura de datos que:
Especiqueel momento en queel cronmetro debedetenerse.
La accin a realizar cuando eso suceda.
La estructura dedatos deun cronmetro:
Seinsertaen una lista decronmetros pendientes cuandoseinicializael cronmetro.
Seretira dela lista cuando llega un reconocimiento antes dequetermineel tiempo
acordado.
Un valor delapso de expiracin muy pequeo har que:
Los cronmetros expiren con mucha frecuencia.
Serealicen muchas retransmisiones innecesarias.
Un valor delapso de expiracin muy grande har que:
Sedemoreen retransmitir un paqueterealmenteperdido.
Una alternativa al almacenamiento de los cronmetros en una tabla o lista ligada
ordenada consisteen:
Utilizar latabla deprocesos y cargar en ellaun campoparasu tiempodeexpiracin,
si es queexiste.
Rastrear peridicamente la tabla de procesos para comparar el valor de cada cro-
nmetro con el tiempo actual.
Estetipo dealgoritmos sedenominan algoritmos de barrido (sweep algorithms).
278 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
8.15 Areas de Problemas en RPC
La RPC mediante el modelo C - S se utiliza ampliamente como base de los S. O. distri-
buidos [25, Tanenbaum].
Lo ideal es quela RPC sea transparente:
El programador no debe poder decir si los procedimientos de biblioteca son locales
o remotos.
El programador debepoder escribir procedimientos sin importar si sern ejecutados
en forma local o remota.
La introduccin deRPC en un sistema queseejecutaba antes en una nica cpu no
debeir acompaada deuna seriedereglas que:
Prohiban construcciones antes vlidas.
Exijan construcciones queantes eran opcionales.
La mayora de los S. O. distribuidos no cumplen totalmente con estos criterios de
transparencia.
Uno delos problemas es el delas variables globales:
Ej.: en UNI X existeuna variableglobal errno:
Luego de una llamada incorrecta al sistema, contiene un cdigo que indica lo
queestuvo mal.
Su existenciaesinformacin pblica, yaqueel estndar ocial deUNIX, Posix,
exigequeseavisibleen unodelosarchivosdeencabezadoimperativos, errno.h.
No sepermitequeuna implantacin lo ocultedelos programadores.
Supongamosqueun programador escribedosprocedimientos quetienen acceso
directo a errno:
Uno seejecuta en forma local, el otro en forma remota.
Uno delos procedimientos tendr un acceso incorrecto.
El problema es queno sepuedeimplantar el permiso para el acceso irrestricto
delos procedimientos locales a las variables globales remotas y viceversa.
La prohibicin del acceso irrestricto mencionado viola el principio de transpa-
rencia:
Los programas no deben actuar demanera distinta segn RPC.
Otro problema son los lenguajes dbilmente tipicados, como por ejemplo, C:
En un lenguajefuertementetipicado, como Pascal:
El compilador y el procedimiento resguardo conocen todo lo relativo a todos
los parmetros.
8.16. COMUNICACIN EN GRUPO 279
El resguardo puede ordenar los parmetros sin dicultad.
Con C sepuedetrabajar con arreglos sin especicar su tamao:
El resguardo del cliente no puede ordenar los parmetros:
No puededeterminar su tamao.
Una solucin consisteen queel programador dena el tamao mximo cuando
escriba la denicin formal del servidor:
Resta exibilidad y puedegenerar problemas dememoria.
Un problema adicional consiste en que no siempre es posible deducir los tipos de
los parmetros:
Ni siquiera a partir deuna especicacin formal del propio cdigo, en especial con-
siderando C.
La exclusin deC cuando seutiliceRPC violara la transparencia.
Conclusin:
El modelo C - S se ajusta a muchos casos pero no es perfecto.
8.16 Comunicacin en Grupo
Una hiptesis subyacente e intrnseca de RPC es que la comunicacin solo es entre dos
partes: el cliente y el servidor [25, Tanenbaum].
A veces existen circunstancias en las que la comunicacin es entre varios procesos y
no solo dos:
10
Ej.: un grupo deservidores de archivo que cooperan para ofrecer un nico servicio
dearchivos tolerantea fallos:
Sera recomendablequeun clienteenveel mensajea todos los servidores para
garantizar la ejecucin dela solicitud aunquealguno falle.
RPC no puede controlar la comunicacin de un servidor con muchos receptores, a
menos querealiceRPC con cada uno en forma individual.
Un grupo es una coleccin de procesos que actan juntos en cierto sistema o alguna
forma determinada por el usuario.
La propiedad fundamental de todos los grupos es que cuando un mensaje se enva al
propio grupo, todos los miembros del grupo lo reciben.
Se trata de una comunicacin uno - muchos (un emisor, muchos receptores), que se
distinguedela comunicacin puntual o punto a punto (un emisor, un receptor).
Los grupos son dinmicos:
10
Ver Figura 8.11 dela pgina 281 [25, Tanenbaum].
280 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
Sepueden crear y destruir.
Un proceso sepuedeunir a un grupo o dejar a otro.
Un proceso puedeser miembro devarios grupos a la vez.
La implantacin de la comunicacin en grupo dependeen gran medida del hardware:
En ciertas redes es posiblecrear una direccin especial de red a la quepueden escu-
char varias mquinas:
Cuando seenva un mensajea una deesas direcciones selo entrega automti-
camentea todas las mquinas queescuchan a esa direccin.
Esta tcnica sedenomina multitransmisin.
Cada grupo debetener una direccin de multitransmisin distinta.
Las redes queno soportan multitransmisin operan con transmisin simple:
Signica quelos paquetes quetienen cierta direccin seentregan a todas las mqui-
nas.
Se puede utilizar para implantar los grupos, pero es menos eciente que la multi-
transmisin.
Cada mquina debevericar, mediantesu software, si el paqueteva dirigido a ella:
En caso negativo se descarta, pero para analizarlo se gener una interrupcin
y sededic ciclos decpu.
Otrasolucin esimplantar lacomunicacin en grupomediantelatransmisin por parte
del emisor de paquetes individuales a cada uno de los miembros del grupo:
En vez deun paqueteseprecisan n paquetes.
Es menos eciente quelas soluciones anteriores.
Es una solucin valida particularmentecon grupos pequeos.
El envo deun mensajedeun emisor a un nico receptor sellama unitransmisin.
8.17 Aspectos del Diseo de la Comunicacin en Grupo
En la comunicacin en grupo tambin se presentan posibilidades tales como [25, Tanen-
baum]:
Almacenamiento en buers vs. el no almacenamiento.
Bloqueo vs. no bloqueo.
Adems existen otras posibilidades queno sedan en la comunicacin entreun emisor
y un solo receptor.
8.17. ASPECTOS DEL DISEO DE LA COMUNICACIN EN GRUPO 281
S R S
R
R
R R
R
R R
R
Figura~8.11: Comunicacin punto a punto y comunicacin uno a muchos.
8.17.1 Grupos Cerrados Vs. Grupos Abiertos
En los grupos cerrados:
Solo los miembros del grupo pueden enviar hacia el grupo.
Los extraosnopueden enviar mensajesal grupocomoun todo, peor pueden enviar
mensajes a miembros del grupo en lo individual.
En los grupos abiertos:
Cualquier proceso del sistema puedeenviar a cualquier grupo.
Los grupos cerrados seutilizan generalmentepara el procesamiento paralelo:
Ej.: un conjunto de procesos que trabajan de manera conjunta, tienen su propio
objetivo y no interactan con el mundo exterior.
Cuando la idea degrupo pretendesoportar servidores duplicados:
Esimportantequelosprocesosquenosean miembros(clientes) puedan enviar hacia
el grupo.
Podraser necesarioquelosmiembrosdel grupoutilizaranlacomunicacinengrupo.
8.17.2 Grupos de Compaeros Vs. Grupos J errquicos
En algunos grupos todos los procesos son iguales:
No existedistincin dejerarquas.
Son los grupos de compaeros.
En otros grupos existecierto tipo dejerarqua:
282 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
Son los grupos jerrquicos.
Ej.: un proceso es el coordinador y todos los dems son los trabajadores.
Una solicitud de un trabajo que se genere en un cliente externo o en uno de los
procesos trabajadores:
Seenva al coordinador.
El coordinador decidecul delostrabajadores esel msadecuadoparallevarla
a cabo y sela enva.
Cada tipo degrupo tienesus ventajas y desventajas:
Respecto del grupo de compaeros:
Es simtrico y no tieneun punto defallo.
Si uno delos procesos falla, el grupo sereducepero puedecontinuar.
Paratomar decisionesgrupales seproducen retrasos debidos alacomunicacin
entrelos miembros del grupo.
Respecto del grupo jerrquico:
Laprdidadel coordinador llevaal grupo aun altototal, loqueesunadesven-
taja.
En condiciones normales, el coordinador funciona correctamente y toma deci-
siones sin molestar a los dems procesos.
Un ej. degrupo jerrquico podra ser un programa de ajedrez en paralelo:
El coordinador:
Toma el tablero actual.
Genera todos los movimientos vlidos a partir del.
Los enva a los trabajadores para su evaluacin.
Controla la estrategia debsqueda.
Desarrolla el rbol del juego.
Los trabajadores:
Al procesar las evaluaciones generan nuevos tableros.
Los tableros seenvan al coordinador.
Al quedar inactivos, solicitan al coordinador un nuevotableroen el cual traba-
jar.
8.17. ASPECTOS DEL DISEO DE LA COMUNICACIN EN GRUPO 283
8.17.3 Membresa del Grupo
La comunicacin en grupo requierecierto mtodo para:
Creacin y eliminacin degrupos.
Unin y separacin deprocesos a grupos.
Una posibilidad es tener un servidor de grupos al cual enviar todas las solicitudes:
Es un mtodo directo, ecientey fcil deimplementar.
La desventaja es el punto defallo que representa la administracin centralizada de
los grupos.
Otra posibilidad es la administracin distribuida delas membresas a grupos:
En un grupo abierto, un proceso extrao puedeenviar un mensajea los integrantes
del grupo para anunciar su presencia.
En un grupo cerrado seprecisa algo similar, ya quesedebecontemplar la admisin
denuevos miembros al grupo cerrado.
Al salir deun grupo, el proceso debecomunicarlo a los dems del grupo quedeja.
Un aspecto problemtico se presenta cuando un miembro falla, saliendo por lo tanto
del grupo:
No hay un anuncio apropiado deestehecho.
Los dems miembros del grupo lo deben descubrir deforma experimental; luego se
lo puedeeliminar del grupo.
Otro aspecto importantees quela entrada y salida al grupo debe sincronizarse con el
envo demensajes:
Un proceso queseuni a un grupo deberecibir todos los mensajes queseenven al
mismo.
Un proceso queha salido deun grupo:
No deberecibir ms mensajes del grupo.
El grupo no deberecibir ms mensajes del proceso.
Los otros miembros no deben recibir ms mensajes del proceso saliente.
Una forma degarantizar queuna entrada o salida seintegra al ujo demensajes en
el lugar correcto es convertir esta operacin en un mensaje a todo el grupo.
Un aspecto crtico resulta cuando fallan tantas mquinas que el grupo ya no puede
funcionar:
284 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
Senecesita cierto protocolo para reconstruir el grupo.
Alguno delos procesos deber tomar la iniciativa.
El protocolo deber resolver la situacin quesepresenta cuando dos o ms procesos
intentan al mismo tiempo reconstruir el grupo.
8.17.4 Direccionamiento al Grupo
Los grupos deben poder direccionarse, al igual que los procesos.
Unaformaesdarleacadagrupounadireccin nica, similar aunadireccindeproceso.
Si la red soporta multitransmisin:
La direccin del grupo sepuedeasociar con una direccin de multitransmisin.
Cada mensajeenviado a la direccin del grupo sepodr multitransmitir.
Si la red no soporta multitransmisin:
Setendr queutilizar transmisin simple.
Cada ncleo lo recibir y extraer la direccin del grupo.
Si ninguno de los procesos en la mquina es un miembro del grupo, se descarta la
transmisin.
En caso contrario setranserea todos los miembros del grupo.
Si la red no soporta multitransmisin ni transmisin simple:
Setendr queutilizar unitransmisin.
El ncleo de la mquina emisora deber contar con una lista de las mquinas que
tienen procesos pertenecientes al grupo.
Deber enviar a cada mquina un mensajepuntual.
Un segundo mtodo de direccionamiento de grupo consiste en pedirle al emisor una
lista explcita de todos los destinos:
Ej.: lista dedirecciones IP.
El parmetro de la llamada send que especica el destino es un apuntador a una
lista de direcciones.
La desventaja consiste en que los procesos del usuario (los miembros del grupo)
deben tener conocimiento dequin es miembro de cada grupo:
No es transparente.
Los procesos del usuario deben actualizar las listas demiembros.
8.17. ASPECTOS DEL DISEO DE LA COMUNICACIN EN GRUPO 285
Un tercer mtodo es el dedireccionamiento de predicados (predicate addressing):
El mensaje seenva a todos los miembros del grupo (o a todo el sistema) mediante
uno delos mtodos anteriores.
El mensajecontieneun predicado (expresin booleana) para ser evaluado.
El predicado puedeutilizar el nmerodemquina del receptor, sus variables locales
u otros factores.
Si el valor del predicado es verdadero se acepta el mensaje y se descarta si es
falso.
Permite enviar un mensaje solo a aquellas mquinas que tengan al menos x mb
dememoria librey sepuedan ocupar deun nuevo proceso.
8.17.5 Primitivas Send y Receive
El envo deun mensajea un grupo no se puede modelar como una llamada a un procedi-
miento.
Conlacomunicacinengrupoexistenenpotencian respuestasdiferentesynoresulta
aplicableel esquema deRPC.
Seutilizan llamadas explcitas para el envo y recepcin (modelo deun solo sentido).
Si seunican las primitivas puntuales y grupales para send:
Uno delos parmetros indica el destino:
Si es una direccin de un proceso, se enva un nico mensaje a ese proceso en
particular.
Si es una direccin de grupo (o un apuntador a una lista dedestinos), seenva
un mensajea todos los miembros del grupo.
Un segundo parmetro apunta al mensajepor enviar.
Si sefusionan las primitivas puntuales y grupales para receive:
La operacin concluyecuando llega un mensajepuntual o un mensajedegrupo.
Si es necesario quelas respuestas estn asociadas a solicitudes previas:
Seenva un mensaje.
Se efecta varias veces un proceso get_ reply para recolectar todas las respuestas,
una a la vez.
286 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
8.17.6 Atomicidad
La mayora delos sistemas de comunicacin en grupo estn diseados para que los men-
sajes enviados al grupo lleguen correctamente a todos los miembros o a ninguno de ellos:
Esta propiedad de todo o nada en la entrega se llama atomicidad o transmisin
atmica.
Facilita la programacin delos sistemas distribuidos.
Es de gran importancia para garantizar la consistencia de las bases de datos y de
los archivos distribuidos y duplicados.
La nica forma degarantizar quecada destino recibetodos sus mensajes es pedirleque
enve de regreso un reconocimiento despus de recibir el mensaje:
Esto funciona si las mquinas no fallan.
Si fallan:
Algunos miembros del grupo habrn recibido el mensaje y otros no; esto es
inaceptable.
Los miembros que no recibieron el mensaje ni siquiera saben que les falta al-
go, por lo que no pedirn una retransmisin; adems, si pudieran detectar el
faltantepero fallara el emisor, no podrn recibir el mensaje.
Una solucin puedellegar del algoritmo de J oseph y Birman:
Demuestra la posibilidad de la transmisin atmica.
El emisor comienza con el envo deun mensajea todos los miembros del grupo.
Los cronmetros seactivan y seenvan las retransmisiones en los casos necesarios.
Cuando un proceso recibeun mensaje:
Si no recibi ya estemensajeparticular:
Lo enva a todos los miembros del grupo:
Con cronmetros y retransmisiones en los casos necesarios.
Si ya recibi estemensajeparticular:
No seefectan envos y el mensajesedescarta.
Este algoritmo asegura que todos los procesos sobrevivientes obtendrn el mensaje,
independientementedel nmerodemquinasquefallen oel nmerodepaquetesperdidos.
8.17. ASPECTOS DEL DISEO DE LA COMUNICACIN EN GRUPO 287
8.17.7 Ordenamiento de Mensajes
El ordenamiento delos mensajes es un aspecto fundamental en la comunicacin en grupo.
Ej.: consideramos 5mquinas, cada una con un proceso:
Los procesos seidentican como 0, 1, 2, 3y 4.
Los procesos 0, 1, 3y 4pertenecen al mismo grupo.
Los procesos 0y 4desean enviar un mensajeal grupo simultneamente:
Supongamos queno sedisponedemultitransmisin ni detransmisin simple.
Cada proceso debeenviar 3mensajes independientes (unitransmisin).
El proceso 0enva a los procesos 1, 3y 4.
El proceso 4enva a los procesos 0, 1y 3.
Una posiblesecuencia deintercalacin delos mensajes es la siguiente:
0a 1; 4a 0; 4a 1; 4a 3; 0a 3; 0a 4.
El problema es que cuando dos procesos contienden por el acceso a una LAN, el orden
de envo de los mensajes no es determinista.
En el ejemploanterior, losprocesos1y 3reciben los mensajes delos procesos 0y 4en
distinto orden:
Si los procesos 0y 4intentan actualizar el mismo registro deuna basededatos, los
procesos 1y 3terminarn con distintos valores nales.
Un sistema debetener una semntica bien denida con respecto al orden deentrega de
los mensajes.
La mejor garanta es la entrega inmediata de todos los mensajes, en el orden en que
fueron enviados:
Todos los mensajes destinados a un grupo deben entregarse antes de comenzar a
entregar la siguienteseriedemensajes.
Todos los receptores reciben todos los mensajes en el mismo orden.
Es esquema sedenomina ordenamiento con respecto al tiempo global.
Una variante al esquema anterior es el ordenamiento consistente:
Si dos mensajes a y b seenvan muy cercanos en el tiempo, el sistema:
Eligeuno deellos como el primero.
Lo enva a todos los miembros del grupo.
Luego enva el otro mensaje.
Se garantiza que los mensajes lleguen a todos los miembros del grupo en el mismo
orden:
Dicho orden podra no ser aquel con el quefueron enviados.
288 CAPTULO 8. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS
8.17.8 Grupos Traslapados
Un proceso puedeser miembro devarios grupos a la vez, peroestopuedegenerar un nuevo
tipo de inconsistencia.
Ej.: supongamos que:
El grupo 1est formado por los procesos A, B y C.
El grupo 2est formado por los procesos B, C y D.
CadaunodelosprocesosA y D decidedemanerasimultneaenviar unmensaje
a sus grupos respectivos.
El sistema utiliza el ordenamiento con respecto al tiempo global dentro de cada
grupo.
Seutiliza la unitransmisin.
El orden delos mensajes es el siguiente:
A a B; D a B; D a C y A a C.
Seda la situacin dequedos procesos, B y C, reciben los mensajes en un
orden distinto.
El problema es el siguiente:
Existeun ordenamiento con respecto al tiempo global dentro decada grupo.
No existe coordinacin entrevarios grupos.
Resultamuycomplicadoimplantar el ordenconrespectoal tiempoentrelosdistintos
grupos, pero no siemprees necesario hacerlo.
8.17.9 Escalabilidad
Es necesario considerar cmo funcionarn los algoritmos cuando se tienen los siguientes
casos:
Grupos con centenas o miles demiembros.
Centenas o miles degrupos.
Utilizacin de varias LAN y compuertas (gateways) conectadas, es decir interred
(internetwork).
Diseminacin degrupos en varios continentes.
Las compuertas pueden afectar la multitransmisin y el hecho requerido por algunas
redes detener un solo paqueteen la red en un instantedado.
Captulo 9
Sincronizacin en Sistemas
Distribuidos
9.1 I ntroduccin a la Sincronizacin en Sistemas Distribui-
dos
Ademsdelacomunicacin, esfundamental laforma enquelosprocesos[25, Tanenbaum]:
Cooperan.
Sesincronizan entres.
Ejemplos:
Forma deimplantar las regiones crticas.
Forma deasignar recursos en un sistema distribuido.
Los problemas relativos a las regiones crticas, exclusin mutua y la sincronizacin:
Generalmente se resuelven en sistemas de una sola cpu con mtodos como los se-
mforos y los monitores:
Sebasan en la memoria compartida.
No son aplicables a sistemas distribuidos.
Otro problema de gran importancia es el tiempo y la forma de medirlo, ya que juega
un papel fundamental en algunos modelos desincronizacin.
9.2 Sincronizacin de Relojes
Generalmente los algoritmos distribuidos tienen las siguientes propiedades [25, Tanen-
baum]:
La informacin relevantesedistribuyeentrevarias mquinas.
289
290 CAPTULO 9. SINCRONIZACIN EN SISTEMAS DISTRIBUIDOS
Losprocesostomanlasdecisionessoloconbaseenlainformacindisponibleenforma
local.
Debeevitarseun nico punto defallo en el sistema.
No existeun reloj comn o alguna otra fuente precisa del tiempo global.
Los primeros tres puntos indican quees inaceptablereunir toda la informacin en un
solo lugar para su procesamiento, pero lograr la sincronizacin sin centralizacin requiere
hacer las cosas distintas al caso delos sistemas operativos tradicionales.
El ltimo punto tambin es crucial:
En un sistema centralizado el tiempo no es ambiguo.
En un sistema distribuido no es trivial poner deacuerdo a todas las mquinas en la
hora.
Se requiere un acuerdo global en el tiempo, pues la falta de sincronizacin en los
relojes puedeser drstica en procesos dependientes del tiempo.
La pregunta es si es posible sincronizar todos los relojes en un sistema distribuido.
9.3 Relojes Lgicos
Lascomputadorasposeenuncircuitoparael registrodel tiempoconocidocomodispositivo
reloj [25, Tanenbaum].
Es un cronmetro consistente en un cristal de cuarzo de precisin sometido a una
tensin elctrica que:
Oscila con una frecuencia bien denida quedependede:
Al forma en quesecorteel cristal.
El tipo decristal.
La magnitud dela tensin.
A cada cristal seleasocian dos registros:
Registro contador.
Registro mantenedor.
Cada oscilacin del cristal decrementa en 1 al contador.
Cuando el contador llega a 0:
Segenera una interrupcin.
El contador sevuelvea cargar medianteel registro mantenedor.
9.3. RELOJ ES LGICOS 291
Sepuedeprogramar un cronmetro para quegenereuna interrupcin x veces por
segundo.
Cada interrupcin sedenomina marca de reloj.
Para una computadora y un reloj:
No interesan pequeos desfasajes del reloj porque:
Todos los procesos de la mquina usan el mismo reloj y tendrn consistencia
interna.
Importan los tiempos relativos.
Para varias computadoras con sus respectivos relojes:
Es imposible garantizar que los cristales de computadoras distintas oscilen con la
misma frecuencia.
Habr una prdida de sincrona en los relojes (de software), es decir que tendrn
valores distintos al ser leidos.
Ladiferencia entrelos valores del tiempo sellamadistorsin del reloj y podragenerar
fallas en los programas dependientes del tiempo.
Lamport demostr que la sincronizacin de relojes es posible y present un algoritmo
para lograrlo.
Lamport seal quela sincronizacin de relojes no tiene que ser absoluta:
Si 2procesos no interactan no es necesario quesus relojes estn sincronizados.
Generalmenteloimportantenoesquelosprocesosestn deacuerdoen lahora, pero
s importa quecoincidan en el orden en que ocurren los eventos.
Para ciertos algoritmos lo queimporta es la consistencia interna de los relojes:
No interesa su cercana particular al tiempo real (ocial).
Los relojes sedenominan relojes lgicos.
Los relojes fsicos son relojes que:
Deben ser iguales (estar sincronizados).
No deben desviarsedel tiempo real ms all decierta magnitud.
Parasincronizar losrelojeslgicos, Lamport denilarelacinocurreantesde(happens-
before):
Si a y b son eventos en el mismo proceso y a ocurreantes de b, entonces
a > b es verdadero.
292 CAPTULO 9. SINCRONIZACIN EN SISTEMAS DISTRIBUIDOS
Ocurreantes de es una relacin transitiva:
Si a > b y b> c, entonces a > c.
Si doseventos x ey estn en procesos diferentes queno intercambian mensajes,
entonces x > y no es verdadero, pero tampoco lo es y > x:
Sedicequeson eventos concurrentes.
Necesitamos una forma de medir el tiempo tal que a cada evento a, le podamos
asociar un valor del tiempo C(a) en el que todos los procesos estn deacuerdo:
Sedebecumplir que:
Si a > b entonces C(a) < C(b).
El tiempo del reloj, C, siempre debe ir hacia adelante (creciente), y nunca
hacia atrs (decreciente).
El algoritmo de Lamport asigna tiempos a los eventos.
Consideramos tres procesos que se ejecutan en diferentes mquinas, cada una con su
propio reloj y velocidad:
1
El proceso 0 enva el mensaje a al proceso 1 cuando el reloj de 0 marca
6.
El proceso 1 recibeel mensajea cuando su reloj marca 16.
Si el mensajeacarrea el tiempo deinicio 6, el proceso 1 considerar quetard
10marcas dereloj en viajar.
El mensajeb de 1 a 2 tarda 16marcas dereloj.
El mensaje c de 2 a 1 sale en 60 y llega en 56, tardara un tiempo
negativo, lo cual es imposible.
El mensajed de1 a 0 saleen 64 y llega en 54.
Lamport utiliza la relacin ocurre antes de:
Si c saleen 60 debellegar en 61 o en un tiempo posterior.
Cada mensajeacarrea el tiempo deenvo, deacuerdo con el reloj del emisor.
Cuando un mensaje llega y el reloj del receptor muestra un valor anterior al
tiempo en queseenvi el mensaje:
El receptor adelanta su reloj paraquetengaunaunidad msqueel tiempo
deenvo.
1
Ver Figura 9.1 dela pgina 293 [25, Tanenbaum].
9.4. RELOJ ES FSICOS 293
0
6
12
18
24
60
54
48
42
36
30
0
0
8
16
24
32
80
72
64
56
48
40
0
10
20
30
40
100
90
80
70
60
50
1 2
A
B
C
D
0
6
12
18
24
76
70
48
42
36
30
0
0
8
16
24
32
85
77
69
61
48
40
0
10
20
30
40
100
90
80
70
60
50
1 2
A
B
C
D
Figura~9.1: Ejemplo de tres procesos cuyos relojes corren a diferentes velocidades - El
algoritmo deLamport corrigelos relojes.
Estealgoritmocumplenuestrasnecesidadesparael tiempoglobal, si sehaceel siguiente
agregado:
Entredos eventos cualesquiera, el reloj debemarcar al menos una vez.
Dos eventos no deben ocurrir exactamente al mismo tiempo.
Con este algoritmo se puede asignar un tiempo a todos los eventos en un sistema
distribuido, con las siguientes condiciones:
Si a ocurreantes deb en el mismo proceso, C(a) < C(b).
Si a y b son el envo y recepcin deun mensaje, C(a) < C(b).
Para todos los eventos a y b, C(a) es distinto deC(b).
9.4 Relojes Fsicos
El algoritmo de Lamport proporciona un orden de eventos sin ambigedades, pero [25,
Tanenbaum]:
Los valores de tiempo asignados a los eventos no tienen porqu ser cercanos a los
tiempos reales en los queocurren.
En ciertos sistemas (ej.: sistemas de tiempo real), es importante la hora real del
reloj:
294 CAPTULO 9. SINCRONIZACIN EN SISTEMAS DISTRIBUIDOS
Seprecisan relojes fsicos externos (ms deuno).
Sedeben sincronizar:
Con los relojes del mundo real.
Entres.
La medicin del tiempo real con alta precisin no es sencilla.
Desdeantiguo el tiempo seha medido astronmicamente.
Seconsidera el da solar al intervalo entredos trnsitos consecutivos del sol, dondeel
trnsito del sol es el evento en queel sol alcanza su punto aparentemente ms alto en el
cielo.
El segundo solar sedenecomo 1/ 86.400 de un da solar.
Como el perodo derotacin de la tierra no es constante, seconsidera el segundo solar
promedio deun gran nmero dedas.
Los fsicos denieron al segundo como el tiempo quetarda el tomo decesio 133para
hacer 9.192.631.770transiciones:
Se tom este nmero para que el segundo atmico coincida con el segundo solar
promedio de 1958.
La Ocina I nternacional de la Hora en Pars (BI H) recibe las indicaciones de
cercade50relojesatmicosenel mundoy calculael tiempo atmico internacional (TAI ).
Como consecuencia de que el da solar promedio (DSP) es cada vez mayor, un da
TAI es 3mseg menor queun DSP:
La BIH introducesegundos de salto para hacer las correcciones necesarias para que
permanezcan en fase:
El sistema detiempo basado en los segundos TAI.
El movimiento aparentedel sol.
Surgeel tiempo coordenado universal (UTC).
El I nstituto Nacional del Tiempo Estndar (NI ST) deEE. UU. ydeotrospases:
Operan estaciones deradio deonda corta o satlites decomunicaciones.
Transmiten pulsos UTC con cierta regularidad establecida (cada segundo, cada 0,5
mseg, etc.).
Sedeben conocer con precisin la posicin relativa del emisor y del receptor:
Sedebecompensar el retraso depropagacin dela seal.
Si la seal se recibe por mdemtambin se debe compensar por la ruta de la
seal y la velocidad del mdem.
Sediculta la obtencin del tiempo con una precisin extremadamentealta.
9.5. ALGORITMOS PARA LA SINCRONIZACIN DE RELOJ ES 295
9.5 Algoritmos Para la Sincronizacin de Relojes
Si una mquina tiene un receptor de UTC, todas las mquinas deben sincronizarse con
ella [25, Tanenbaum].
Si ninguna mquina tieneun receptor de UTC:
Cada mquina lleva el registro desu propio tiempo.
Sedebemantener el tiempo detodas las mquinas tan cercano como sea posible.
Se supone que cada mquina tiene un cronmetro que provoca una interrupcin h
veces por segundo.
Cuando el cronmetrosedetiene, el manejador deinterrupciones aade1 aun reloj
en software.
El reloj en software mantiene un registro del nmero de marcas (interrupciones) a
partir decierta fecha acordada antes; al valor deestereloj selo llama C.
Cuando el tiempo UTC es t, el valor del reloj en la mquina p es Cp(t):
Lo ideal sera queCp(t) = t para toda p y todo t:
dC/ dt debera ser 1.
Lo real esqueloscronmetrosnorealizan interrupciones exactamenteh vecespor
segundo:
Poseen un error relativo deaproximadamente10
5
.
El fabricanteespecicaunaconstante " llamadatasamxima dealejamiento
queacota el error.
El cronmetro funciona dentro desu especicacin si existeuna constante "
y secumple:
1- 5 dC / dt 5 1+.
Si dos relojes sealejan deUTC en la direccin opuesta:
En un instante t luego de la sincronizacin podran estar tan alejados como: 2
t.
Para garantizar queno dieran ms de:
Sedeben volver a sincronizar (en software) al menos cada / 2segundos.
9.5.1 Algoritmo de Cristian
Es adecuado para sistemas en los que:
Unamquinatieneun receptor UTC, por lo queselallamadespachador del tiempo.
El objetivo es sincronizar todas las mquinas con ella.
296 CAPTULO 9. SINCRONIZACIN EN SISTEMAS DISTRIBUIDOS
Cada mquina enva un mensajeal servidor para solicitar el tiempo actual, peridica-
mente, en un tiempo no mayor que/ 2segundos.
El despachador del tiemporespondeprontamenteconunmensajequecontieneel tiempo
actual C
UTC
".
Cuando el emisor obtienela respuesta puedehacer quesu tiempo sea C
UTC
".
Un gran problema es queel tiempo no puede correr hacia atrs:
C
UTC
" no puedeser menor queel tiempo actual C del emisor.
La atencin del requerimiento en el servidor de tiempos requiere un tiempo del
manejador deinterrupciones.
Tambin sedebeconsiderar el tiempo detransmisin.
El cambio del reloj sedebeintroducir demanera global:
Si el cronmetro genera 100interrupciones por segundo:
Cada interrupcin aade10mseg al tiempo.
Para atrasar solo agregara 9mseg.
Para adelantar agregara 11mseg.
La correccin por el tiempo del servidor y el tiempo detransmisin sehacemidiendo
en el emisor:
El tiempo inicial (envo) T
0
".
El tiempo nal (recepcin) T
1
".
Ambos tiempos semiden con el mismo reloj.
El tiempo de propagacin del mensaje ser (T
1
- T
0
) / 2.
Si el tiempo del servidor para manejar la interrupcin y procesar el mensajees I :
El tiempo de propagacin ser (T
1
- T
0
- I) / 2.
Para mejorar la precisin:
Setoman varias mediciones.
Sedescartan los valores extremos.
Sepromedia el resto.
El tiempo de propagacin se suma al tiempo del servidor para sincronizar al emisor
cuando sterecibela respuesta.
9.5. ALGORITMOS PARA LA SINCRONIZACIN DE RELOJ ES 297
9.5.2 Algoritmo de Berkeley
En el algoritmo de Cristian el servidor detiempo es pasivo.
En el algoritmo de Berkeley el servidor detiempo:
Es activo.
Realiza un muestreo peridico de todas las mquinas para preguntarles el tiempo.
Con las respuestas:
Calcula un tiempo promedio.
Indica a las dems mquinas que avancen su reloj o disminuyan la velocidad
del mismo hasta lograr la disminucin requerida.
Es adecuado cuando no se dispone de un receptor UTC.
9.5.3 Algoritmos con Promedio
Los anteriores son algoritmos centralizados.
Una clasedealgoritmos descentralizados divideel tiempo en intervalos de resincroni-
zacin delongitud ja:
El i -simo intervalo:
Inicia en T
0
+ i R y va hasta T
0
+ (i + 1) R.
T
0
es un momento ya acordado en el pasado.
R es un parmetro del sistema.
Al inicio decada intervalo cada mquina transmiteel tiempo actual segn su reloj.
Debido a la diferentevelocidad delos relojes las transmisiones no sern simultneas.
Luego de que una mquina transmite su hora, inicializa un cronmetro local para
reunir las dems transmisiones quelleguen en cierto intervalo S.
Cuandorecibetodaslastransmisionesseejecutaun algoritmoparacalcular unanueva
hora para los relojes.
Una variantees promediar los valores detodas las dems mquinas.
Otra variantees descartar los valores extremos antes de promediar (los m mayores
y los m menores).
Una mejora al algoritmo considera la correccin por tiempos de propagacin.
9.5.4 Varias Fuentes Externas de Tiempo
Los sistemas que requieren una sincronizacin muy precisa con UTC se pueden equipar
con varios receptores de UTC.
Lasdistintasfuentesdetiempogenerarandistintosrangos(intervalosdetiempo) donde
caern los respectivos UTC, por lo quees necesaria una sincronizacin.
Comolatransmisinnoesinstantneasegeneraunaciertaincertidumbreen el tiempo.
Cuando un procesador obtienetodos los rangos deUTC:
298 CAPTULO 9. SINCRONIZACIN EN SISTEMAS DISTRIBUIDOS
Vericasi algunodeellosesajenoalosdemsy deserlolodescartapor ser un valor
extremo.
Calcula la interseccin (en el tiempo) delos dems rangos.
La interseccin determina un intervalo cuyo punto medio ser el UTC y la hora del
reloj interno.
Sedeben compensar los retrasos detransmisin y las diferencias develocidades delos
relojes.
Sedebe asegurar queel tiempo no corra hacia atrs.
Sedeberesincronizar peridicamentedesdelas fuentes externas deUTC.
9.6 Exclusin Mutua
Cuando un proceso debe leer o actualizar ciertas estructuras de datos compartidas [25,
Tanenbaum]:
Primeroingresaaunaregin crtica paralograr laexclusin mutua y garantizar que
ningn otro proceso utilizar las estructuras dedatos al mismo tiempo.
En sistemas monoprocesadores las regiones crticas se protegen con semforos, moni-
tores y similares.
En sistemas distribuidos la cuestin es ms compleja.
9.6.1 Un Algoritmo Centralizado
La forma ms directa delograr la exclusin mutua en un sistema distribuido es simular a
la forma en queselleva a cabo en un sistema monoprocesador.
Seeligeun proceso coordinador.
Cuando un proceso desea ingresar a una regin crtica:
Enva un mensajedesolicitud al coordinador:
Indicando la regin crtica.
Solicitando permiso deacceso.
Si ningn otro proceso est en esemomento en esa regin crtica:
El coordinador enva una respuesta otorgando el permiso.
Cuando llega la respuesta el proceso solicitanteentra a la regin crtica.
Si un procesopidepermisoparaentrar a una regin crtica ya asignada a otro proceso:
El coordinador no otorga el permiso y encola el pedido.
Cuando un proceso sale de la regin crtica enva un mensaje al coordinador para
liberar su acceso exclusivo:
9.6. EXCLUSIN MUTUA 299
El coordinador extraeel primer elementodela coladesolicitudesdiferidasy envaa
eseprocesounmensajeotorgandoel permiso, con locual el procesoquedahabilitado
para acceder a la regin crtica solicitada.
Es un esquema sencillo, justo y con pocos mensajes decontrol.
La limitante es que el coordinador puede ser un cuello de botella y puede fallar y
bloquear a los procesos queesperan una respuesta dehabilitacin deacceso.
9.6.2 Un Algoritmo Distribuido
El objetivo es no tener un nico punto de fallo (el coordinador central).
Un ej. es el algoritmo de Lamport mejorado por Ricart y Agrawala.
Se requiere un orden total de todos los eventos en el sistema para saber cul ocurri
primero.
Cuando un proceso desea entrar a una regin crtica:
Construyeun mensajecon el nombredela regin crtica, su nmero deproceso y la
hora actual.
Enva el mensajea todos los dems procesos y demanera conceptual a l mismo.
Sesuponequecada mensajetieneun reconocimiento.
Si el receptor no est en la regin crtica y no desea entrar a ella, enva deregreso un
mensajeo.k. al emisor.
Si el receptor ya est en la regin crtica no respondey encola la solicitud.
Si el receptor desea entrar a la regin crtica pero an no lo logr, compara:
La marca detiempo del mensajerecibido con,
La marca contenida en el mensajequeenvi a cada uno.
La menor delas marcas gana.
Si el mensajerecibido es menor el receptor enva un o.k.
Si su propio mensaje tiene una marca menor el receptor no enva nada y encola el
pedido.
Luego deenviar las solicitudes un proceso:
Espera hasta quealguien ms obtieneel permiso.
Cuando llegan todos los permisos puedeentrar a la regin crtica.
Cuando un proceso sale de la regin crtica:
Enva mensajes o.k. a todos los procesos en su cola.
Elimina a todos los elementos dela cola.
300 CAPTULO 9. SINCRONIZACIN EN SISTEMAS DISTRIBUIDOS
La exclusin mutua queda garantizada sin bloqueo ni inanicin.
El nmero de mensajes necesarios por entrada es 2(n - 1), siendo n el nmero
total deprocesos en el sistema.
No existe un nico punto de fallo sino n:
Si cualquier proceso falla no responder a las solicitudes.
La falta derespuesta seinterpretar como negacin deacceso:
Sebloquearn los siguientes intentos delos dems procesos por entrar a todas
las regiones crticas.
Seincrementa la probabilidad de fallo en n veces y tambin el trco en la red.
Sepuedesolucionar el bloqueo si:
El emisor espera y sigueintentando hasta queregresa una respuesta o,
El emisor concluyequeel destinatario est fuera deservicio.
Otro problema es que:
Seutilizar una primitiva decomunicacin en grupo o,
Cadaprocesodebemantener lalistademiembrosdel grupo, incluyendolosprocesos
queingresan, los quesalen y los quefallan.
Secomplica para gran nmero deprocesos.
Un importanteproblema adicional es que:
Todos los procesos participan en todas las decisiones referentes a las entradas en las
regiones crticas.
Sesobrecarga el sistema.
Una mejora consiste en permitir que un proceso entre a una regin crtica con el
permiso de una mayora simple de los dems procesos (en vez detodos):
Luego de que un proceso otorg el permiso a otro para entrar a una regin crtica,
no puede otorgar el mismo permiso a otro proceso hasta que el primero libere su
permiso.
9.6.3 Un Algoritmo de Anillo de Fichas (Token Ring)
Los procesos seorganizan por softwareformando un anillo lgico asignndosea cada pro-
ceso una posicin en el anillo.
Cada proceso sabecul es el siguienteluego del.
Al inicializar el anillo seleda al proceso 0 una cha (token) quecircula en todo
el anillo, quesetranseredel proceso k al k + 1 en mensajes puntuales.
Cuandoun proceso obtienelachadesu vecinoverica si intenta entrar a una regin
crtica:
9.7. ALGORITMOS DE ELECCIN 301
En caso positivo:
El proceso entra a la regin crtica, haceel proceso necesario y saledeella.
Despus desalir pasa la cha a lo largo del anillo:
No sepuedeentrar a una segunda regin crtica con la misma cha (token
o permiso).
En caso negativo:
La vuelvea pasar.
En un instante dado solo un proceso puede estar en una regin crtica.
Si la cha se pierde debe ser regenerada, pero es difcil detectar su perdida:
La cantidad de tiempo entre las apariciones sucesivas de la cha en la red no est
acotada, por ello es difcil decidir si est perdida o demorada en algn proceso que
no la libera.
Lafalla deun proceso es detectada cuando su vecinointentasin xito pasarlelacha:
Selo debeeliminar del grupo y pasar la cha al siguienteproceso activo.
Todos los procesos deben mantener la conguracin actual del anillo.
9.7 Algoritmos de Eleccin
Son los algoritmos para la eleccin de un proceso coordinador, iniciador, secuenciador,
etc. [25, Tanenbaum].
El objetivo de un algoritmo de eleccin es garantizar que iniciada una eleccin s-
ta concluya con el acuerdo de todos los procesos con respecto a la identidad del nuevo
coordinador.
9.7.1 El Algoritmo del Granduln o de Garca-Molina
Un proceso P inicia una eleccin cuando observa que el coordinador ya no responde a
las solicitudes.
P realiza una eleccin dela siguientemanera:
Enva un mensajeeleccin a los dems procesos con un nmero mayor.
Si nadierespondeasumequeganalaeleccin y seconvierteen el nuevo coordinador.
Si un proceso con un nmero mayor responde, toma el control y el trabajo de P
termina.
Un proceso puederecibir en cualquier momento un mensajeeleccin deotrosprocesos
con un nmero menor:
302 CAPTULO 9. SINCRONIZACIN EN SISTEMAS DISTRIBUIDOS
Enva deregreso un mensajeo.k. al emisor para indicar queest vivo y quetomar
el control.
Realiza una eleccin salvo queya esthaciendo alguna.
Enciertomomentotodos losprocesoshandeclinadoanteunodeellos, queserel nuevo
coordinador, queenva un mensajecoordinador a todos los procesos para anunciarlo.
Si un proceso inactivo seactiva realiza una eleccin:
Si l tieneel nmero ms alto ser el nuevo coordinador:
Siempreganael procesoqueposeeel nmeromayor, deah el nombrealgoritmo
del granduln.
9.7.2 Un Algoritmo de Anillo
Sesuponequelos procesos tienen un orden fsico o lgico, esdecir quecadaprocesoconoce
a su sucesor.
Cuando algn proceso observa queel coordinador no funciona:
Construyeun mensajeeleccin con su propio nmero deproceso.
Enva el mensajea su sucesor.
Si el sucesor est inactivo:
El emisor va hacia el siguientenmero del anillo o al siguientedeste.
Contina hasta localizar un proceso en ejecucin.
En cada paso, al emisor aade su propio nmero de proceso a la lista en el
mensaje.
En cierto momento el mensajeregresa al proceso quelo inici:
El proceso lo reconoceal recibir un mensajecon su propio nmero deproceso.
El mensajedeeleccin setransformaen mensajecoordinador y circula nuevamente:
Informa a los dems procesos:
Quin es el coordinador, es decir, el miembro de la lista con el nmero
mayor.
Quines son los miembros del nuevo anillo.
Concluida la ronda de informacin el mensaje coordinador se elimina y continan
los procesos.
9.8. TRANSACCIONES ATMICAS 303
9.8 Transacciones Atmicas
Las tcnicas de sincronizacin ya vistas son debajo nivel [25, Tanenbaum]:
El programador debeenfrentarsedirectamentecon los detalles de:
La exclusin mutua.
El manejo delas regiones crticas.
La prevencin debloqueos.
La recuperacin defallas.
Seprecisan tcnicas de abstraccin de mayor nivel que:
Oculten estos aspectos tcnicos.
Permitan a los programadores concentrarse en los algoritmos y la forma en quelos
procesos trabajan juntos en paralelo.
Tal abstraccin la llamaremos transaccin atmica, transaccin o accin atmica.
La principal propiedad de la transaccin atmica es el todo o nada:
O sehacetodo lo quesetena quehacer como una unidad o no sehacenada.
Ejemplo:
Un clientellama al Banco medianteuna PC con un mdempara:
Retirar dinero deuna cuenta.
Depositar el dinero en otra cuenta.
La operacin tienedos etapas.
Si laconexintelefnicafallaluegodelaprimer etapaperoantesdelasegunda:
Habr un retiro pero no un depsito.
Lasolucinconsisteenagrupar lasdosoperacionesenunatransaccin atmica:
Las dos operaciones terminaran o no terminara ninguna.
Se debe regresar al estado inicial si la transaccin no puede concluir.
9.9 El Modelo de Transaccin
Supondremos que[25, Tanenbaum]:
El sistemaconstadevariosprocesosindependientes quepuedenfallar aleatoriamente.
El softwaresubyacentemaneja transparentemente los errores decomunicacin.
304 CAPTULO 9. SINCRONIZACIN EN SISTEMAS DISTRIBUIDOS
9.9.1 Almacenamiento Estable
Sepuedeimplantar con una pareja de discos comunes.
Cada bloque de la unidad 2 es una copia exacta (espejo) del bloque correspondiente
en la unidad 1.
Cuando seactualiza un bloque:
Primero seactualiza y verica el bloquedela unidad 1.
Luego seactualiza y verica el bloquedela unidad 2.
Si el sistema falla luego deactualizar la unidad 1y antes deactualizar la unidad 2:
Luego dela recuperacin sepueden comparar ambos discos bloquepor bloque:
Sepuedeactualizar la unidad 2en funcin dela 1.
Si sedetecta el deterioro espontneo deun bloque, selo regenerapartiendo del bloque
correspondienteen la otra unidad.
Un esquema de este tipo es adecuado para las aplicaciones que requieren de un alto
grado de tolerancia de fallos, por ej. las transacciones atmicas.
9.9.2 Primitivas de Transaccin
Deben ser proporcionadas por el sistema operativo o por el sistema detiempo deejecucin
del lenguaje.
Ejemplos:
Begin_ transaction: los comandos siguientes forman una transaccin.
End_ transaction: termina la transaccin y seintenta un compromiso.
Abort_ transaction: seelimina la transaccin; serecuperan los valores anteriores.
Read: seleen datos deun archivo (o algn otro objeto).
Write: seescriben datos en un archivo (o algn otro objeto).
Las operaciones entreBegin y End forman el cuerpo de la transaccin y deben ejecu-
tarse todas o ninguna deellas:
Pueden ser llamadas al sistema, procedimiento de biblioteca o enunciados en un
lenguaje.
9.10. IMPLANTACIN DEL MODELO DE TRANSACCIN 305
9.9.3 Propiedades de las Transacciones
Las propiedades fundamentales son:
Serializacin:
Las transacciones concurrentes no intereren entres.
Atomicidad:
Para el mundo exterior, la transaccin ocurredemanera indivisible.
Permanencia:
Una vez comprometida una transaccin, los cambios son permanentes.
Laserializacin garantizaquesi dosomstransaccionesseejecutanal mismotiempo:
El resultado nal aparece como si todas l as transacciones se ejecutasen de manera
secuencial en cierto orden:
Para cada una deellas y para los dems procesos.
La atomicidad garantiza que cada transaccin no ocurre o bien se realiza en su
totalidad:
Sepresenta como una accin indivisible e instantnea.
La permanencia sereerea queuna vez comprometida una transaccin:
Sigueadelantey los resultados son permanentes.
9.9.4 Transacciones Anidadas
Sepresentan cuando las transacciones pueden contener subtransacciones (procesos hijos)
que:
Seejecuten en paralelo entres en procesadores distintos.
Pueden originar nuevas subtransacciones.
9.10 I mplantacin del Modelo de Transaccin
Existen varios mtodos deimplantacin [25, Tanenbaum].
306 CAPTULO 9. SINCRONIZACIN EN SISTEMAS DISTRIBUIDOS
9.10.1 Espacio de Trabajo Particular
Consisteenquecuandounprocesoiniciaunatransaccin seleotorgaunespaciodetrabajo
particular:
Contienetodos los archivos (y otros objetos) a los cuales tieneacceso.
Las lecturas y escrituras irn a este espacio hasta que la transaccin se complete o
aborte:
El espacio real es el sistema de archivos normal.
Signicaaltoconsumoderecursospor lascopiasdelosobjetos al espacio detrabajo
particular.
Cuandounprocesoinicia unatransaccin, bastacrear unespaciodetrabajoparticular
para l que sea vaco excepto por un apuntador de regreso al espacio de trabajo de su
proceso padre.
Para una transaccin del nivel superior el espacio de trabajo del padre es el sistema
de archivos real.
Cuando el proceso abre un archivo para lectura, se siguen los apuntadores de regreso
hasta localizar el archivo en el espacio detrabajo del padre(o algn antecesor).
Cuando seabre un archivo para escritura:
Selo localiza demanera similar quepara lectura.
Secopia en primer lugar al espacio detrabajo particular:
Una optimizacin consisteen copiar solo el ndicedel archivo en el espacio de
trabajo particular:
El ndicees el bloquededatos asociadoa cada archivo eindica la localiza-
cin desus bloques en el disco.
Es el nodo-i correspondiente.
La lectura por medio del ndice particular (del espacio de trabajo particular) no es
problemtica, pues las direcciones en disco a las quereferencia son las originales.
La modicacin deun bloquedeun archivo requiere:
Hacer una copia del bloque.
Insertar en el ndicela direccin dela copia.
La modicacin sobrela copia no afecta al bloqueoriginal.
Un tratamiento similar se da al agregado de bloques; los nuevos bloques se llaman
bloques sombra (shadowblocks).
El proceso que ejecuta la transaccin ve el archivo modicado pero los dems procesos
ven el archivo original.
Si la transaccin aborta (termina anormalmente):
9.10. IMPLANTACIN DEL MODELO DE TRANSACCIN 307
El espacio detrabajo particular seelimina.
Losbloquesparticularesalosqueapuntasecolocannuevamenteenlalistadebloques
libres.
Si la transaccin se compromete (termina normalmente):
Los ndices particulares se desplazan al espacio de trabajo del padre de manera
atmica.
Los bloques queno son alcanzables secolocan en la lista debloques libres.
9.10.2 Bitcora de Escritura Anticipada
Estemtodo tambin sedenomina lista de intenciones.
Los archivos realmente se modican pero antes decambiar cualquier bloque:
Segraba un registro en la bitcora (log) deescritura anticipada en un espacio de
almacenamiento estable:
Seindicalatransaccin queproduceel cambio, el archivoy bloquemodicados
y los valores anterior y nuevo.
Si la transaccin tiene xito y se hace un compromiso:
Seescribeun registro del compromiso en la bitcora.
Las estructuras dedatos no tienen quemodicarse, puesto queya han sido actuali-
zadas.
Si la transaccin aborta:
Sepuedeutilizar la bitcora para respaldo del estado original:
A partir del nal y hacia atrs:
Seleecada registro dela bitcora.
Sedeshacecada cambio descripto en l.
Esta accin sedenomina retroalimentacin.
Por medio dela bitcora sepuede:
Ir hacia adelante(realizar la transaccin).
Ir hacia atrs (deshacer la transaccin).
308 CAPTULO 9. SINCRONIZACIN EN SISTEMAS DISTRIBUIDOS
9.10.3 Protocolo de Compromiso de Dos Fases (Two - Phase Commit)
Uno delos procesos queintervienen funciona como el coordinador.
El coordinador escribeuna entrada en la bitcora para indicar queinicia el protocolo.
El coordinador enva a cada uno delos procesos relacionados (subordinados) un men-
sajepara queestn preparados para el compromiso.
Cuando un subordinado recibeel mensaje:
Verica si est listo para comprometerse.
Escribeuna entrada en la bitcora.
Enva deregreso su decisin.
Cuandoel coordinador harecibido todas las respuestas sabesi debeestablecer el com-
promiso o abortar:
Si todos los procesos estn listos para comprometersecierra la transaccin.
Si algunodelosprocesosnosecompromete(onoresponde) latransaccinseaborta.
El coordinador:
Escribeuna entrada en la bitcora.
Enva un mensajea cada subordinado para informarledela decisin.
9.11 Control de Concurrencia en el Modelo de Transaccin
Los algoritmos de control de concurrencia son necesarios cuando se ejecutan varias tran-
sacciones de manera simultnea [25, Tanenbaum]:
En distintos procesos.
En distintos procesadores.
Los principales algoritmos son:
El de la cerradura.
El del control optimista de la concurrencia.
El de las marcas de tiempo.
9.11. CONTROL DE CONCURRENCIA EN EL MODELO DE TRANSACCIN 309
9.11.1 Cerradura (locking)
Cuando un proceso debeleer o escribir en un archivo (u otro objeto) como partedeuna
transaccin, primero cierra el archivo.
La cerradura sepuedehacer mediante:
Un nico manejador centralizado decerraduras.
Un manejador local decerraduras en cada mquina.
El manejador de cerraduras:
Mantieneuna lista delos archivos cerrados.
Rechaza todos los intentos por cerrar archivos ya cerrados por otros procesos.
El sistema de transacciones generalmente adquiere y libera las cerraduras sin accin
por partedel programador.
Una mejora consiste en distinguir las cerraduras para lectura de las cerraduras para
escritura.
Una cerradura para lectura no impideotras cerraduras para lectura:
Las cerraduras para lectura se comparten.
Una cerradura para escritura s impideotras cerraduras (delectura o deescritura):
Las cerraduras para escritura no se comparten, es decir quedeben ser exclusivas.
El elemento por cerrar puedeser un archivo, un registro, un campo, etc. y lo relativo
al tamao del elemento por cerrar sellama la granularidad de la cerradura.
Mientras ms na sea la granularidad:
Puedeser ms precisa la cerradura.
Sepuedelograr un mayor paralelismo en el acceso al recurso.
Serequiereun mayor nmero decerraduras.
Generalmenteseutiliza la cerradura de dos fases:
El proceso adquieretodas las cerraduras necesarias durantela fase de crecimiento.
El proceso las libera en la fase de reduccin.
Sedeben evitar situaciones deaborto en cascada:
Segraba en un archivo y luego selibera su cerradura.
Otra transaccin lo cierra, realiza su trabajo y luego estableceun compromiso.
La transaccin original aborta.
La segunda transaccin (ya comprometida) debe deshacerse, ya que sus resultados
sebasan en un archivo queno debera haber visto cuando lo hizo.
Las cerraduras comunes y dedos fases pueden provocar bloqueos cuando dos procesos
intentan adquirir la misma pareja de cerraduras pero en orden opuesto, por lo tanto se
debenutilizar tcnicasdeprevencin y dedeteccindebloqueosparasuperar el problema.
310 CAPTULO 9. SINCRONIZACIN EN SISTEMAS DISTRIBUIDOS
9.11.2 Control Optimista de la Concurrencia
La idea es muy sencilla:
Sesigueadelantey sehacetodo lo quesedeba hacer, sin prestar atencin a lo que
hacen los dems.
Seacta a posteriori si sepresenta algn problema.
Semantieneun registro de los archivos ledos o grabados.
En el momento del compromiso:
Severican todas las dems transacciones para ver si alguno delos archivos ha sido
modicado desdeel inicio dela transaccin:
Si esto ocurrela transaccin aborta.
Si esto no ocurreserealiza el compromiso.
Las principales ventajas son:
Ausencia debloqueos.
Paralelismo mximo ya queno seesperan cerraduras.
La principal desventaja es:
Re-ejecucin dela transaccin en caso defalla.
La probabilidad defallo puedecrecer si la carga detrabajo es muy alta.
9.11.3 Marcas de Tiempo
Seasocia a cada transaccin una marca de tiempo al iniciar (begin_ transaction).
Segarantiza quelas marcas son nicas medianteel algoritmo de Lamport.
Cada archivo del sistema tiene asociadas una marca de tiempo para la lectura y otra
para la escritura, queindican la ltima transaccin comprometida querealiz la lectura o
escritura.
Cuando un proceso intenteacceder a un archivo, lo lograr si las marcas detiempo de
lectura y escritura son menores (ms antiguas) quela marca dela transaccin activa.
Si la marca detiempodela transaccin activa es menor queladel archivoqueintenta
acceder:
Una transaccin iniciada posteriormente ha accedido al archivo y ha efectuado un
compromiso.
La transaccin activa seha realizado tardey seaborta.
En el mtododelasmarcasnopreocupaquelastransaccionesconcurrentesutilicenlos
mismos archivos, pero s importa quela transaccin con el nmero menor esten primer
lugar.
Las marcas detiempo tienen propiedades distintas a las de los bloqueos:
9.12. BLOQUEOS EN SISTEMAS DISTRIBUIDOS 311
Una transaccin aborta cuando encuentra una marca mayor (posterior).
En iguales circunstanciasy en un esquema decerraduras podra esperar ocontinuar
inmediatamente.
Las marcas de tiempo son libres de bloqueos, lo que es una gran ventaja.
9.11.4 Resumen
Los diferentes esquemas ofrecen distintas ventajas pero el problema principal es la gran
complejidad de su implantacin.
9.12 Bloqueos en Sistemas Distribuidos
Son peores que los bloqueos en sistemas monoprocesador [25, Tanenbaum]:
Son ms difciles deevitar, prevenir, detectar y solucionar.
Toda la informacin relevanteest dispersa en muchas mquinas.
Son especialmente crticos en sistemas debases de datos distribuidos.
Las estrategias usuales para el manejo delos bloqueos son:
Algoritmo del avestruz:
Ignorar el problema.
Deteccin:
Permitir queocurran los bloqueos, detectarlos eintentar recuperarsedeellos.
Prevencin:
Hacer quelos bloqueos sean imposibles desdeel punto devista estructural.
Evitarlos:
Evitar los bloqueos mediantela asignacin cuidadosa delos recursos.
El algoritmo del avestruz merecelas mismas consideraciones queen el caso demono-
procesador.
En los sistemas distribuidos resulta muy difcil implantar algoritmos para evitar los
bloqueos:
Se requiere saber de antemano la proporcin de cada recurso que necesitar cada
proceso.
Es muy difcil disponer deesta informacin en forma prctica.
312 CAPTULO 9. SINCRONIZACIN EN SISTEMAS DISTRIBUIDOS
Las tcnicas ms aplicables para el anlisis de los bloqueos en sistemas distribuidos
son:
Deteccin.
Prevencin.
9.13 Deteccin Distribuida de Bloqueos
Cuando sedetectaun bloqueo en un S. O. convencional seresuelveeliminando uno o ms
procesos [25, Tanenbaum].
Cuando se detecta un bloqueo en un sistema basado en transacciones atmicas se
resuelveabortando una o ms transacciones:
El sistema restaura el estado quetena antes deiniciar la transaccin.
La transaccin puedevolver a comenzar.
Las consecuencias de la eliminacin de un proceso son mucho menos severas si se
utilizan las transacciones queen caso dequeno seutilicen.
9.13.1 Deteccin Centralizada de Bloqueos
Cada mquina mantienela grca de recursos desus propios procesos y recursos.
Un coordinador central mantiene la grca de recursos de todo el sistema, que es la
unin detodas las grcas individuales.
Cuando el coordinador detecta un ciclo elimina uno de los procesos para romper el
bloqueo.
La informacin de control sedebetransmitir explcitamente, existiendo las siguientes
variantes:
Cada mquina informa cada actualizacin al coordinador.
Cada mquina informaperidicamentelas modicaciones desdela ltima actualiza-
cin.
El coordinador requierela informacin cuando la necesita.
La informacin decontrol incompleta o retrasada puedellevar a falsos bloqueos:
El coordinador interpretaerrneamentequeexisteun bloqueo y elimina un proceso.
Unaposiblesolucin es utilizar el algoritmo deLamport paradisponer deun tiempo
global.
9.13. DETECCIN DISTRIBUIDA DE BLOQUEOS 313
9.13.2 Deteccin Distribuida de Bloqueos
Un algoritmo tpico es el de Chandy-Misra-Haas.
Losprocesospuedensolicitar variosrecursos (por ejemplocerraduras) al mismotiempo,
en vez deuno cada vez.
Sepermiten las solicitudes simultneas devarios procesos:
Un proceso puedeesperar a uno o ms recursos simultneamente.
Los recursos queespera un proceso pueden ser locales o remotos (deotramquina).
Si el proceso 0 sebloquea debido al proceso 1:
Segeneraunmensajedeexploracin queseenvaal proceso(oprocesos) quedetienen
los recursos necesarios.
El mensajeconsta detres nmeros:
El proceso recin bloqueado, el proceso que enva el mensaje y el proceso al
cual seenva.
Al llegar el mensaje el receptor verica si l mismo espera a algunos procesos, en
cuyo caso:
El mensajeseactualiza:
Seconserva el primer campo.
Sereemplaza el segundo por su propio nmero deproceso y el tercero por
el nmero del proceso al cual espera.
El mensajeseenva al proceso debido al cual sebloquea:
Si se bloquea debido a varios procesos les enva mensajes (diferentes) a
todos ellos.
Si un mensaje recorre todo el camino y regresa a su emisor original (el proceso
enlistado en el primer campo), entonces:
Existeun ciclo y el sistema est bloqueado.
Una forma deromper el bloqueo es queel proceso queinici la exploracin se compro-
metaasuicidarsey, si variosprocesossebloqueanal mismotiempoeinicianexploraciones,
todos ellos sesuicidarn.
Una variante es eliminar solo al proceso del ciclo que tiene el nmero ms alto.
314 CAPTULO 9. SINCRONIZACIN EN SISTEMAS DISTRIBUIDOS
9.14 Prevencin Distribuida de Bloqueos
La prevencin consiste en el diseo cuidadoso del sistema para que los bloqueos sean im-
posibles estructuralmente [25, Tanenbaum].
Entrelas distintas tcnicas seincluye:
Permitir a los procesos quesolo conserven un recurso a la vez.
Exigir a los procesos quesoliciten todos sus recursos desdeun principio.
Hacer quetodos los procesos liberen todos sus recursos cuando soliciten uno nuevo.
En un sistema distribuido con tiempo global y transacciones atmicas:
Sepuedeasociar a cada transaccin una marca de tiempo global al momento desu
inicio.
No pueden haber parejas detransacciones con igual marca detiempo asociada.
La idea es quecuando un proceso est a punto debloquearseen espera deun recurso
queest utilizando otro proceso:
Severica cul deellos tienela marca detiempo mayor (es ms joven).
Se puede permitir la espera solo si el proceso en estado de espera tiene una marca
inferior (ms viejo) queel otro.
Al seguir cualquier cadena de procesos en espera:
Las marcas aparecen en forma creciente.
Los ciclos son imposibles.
Otra posibilidad es permitir la espera de procesos solo si el proceso que espera tiene
una marca mayor (es ms joven) que el otro proceso; las marcas aparecen en la cadena
en forma descendente.
Es ms sabio dar prioridad a los procesos ms viejos:
Seha invertido tiempo deproceso en ellos.
Probablementeconservan ms recursos.
Captulo 10
Procesos y Procesadores en
Sistemas Distribuidos
10.1 I ntroduccin a los Hilos (Threads)
Muchos S. O. distribuidos soportan mltiples hilos de control dentro de un proceso que
[25, Tanenbaum]:
Comparten un nico espacio de direcciones.
Seejecutan quasi - paralelamente como si fueran procesos independientes.
Ej.: servidor de archivos que debe bloquearse ocasionalmente en espera de acceso al
disco:
Si tienevarios hilos decontrol podra ejecutar un segundo hilo mientras el primero
espera:
El resultado sera mejor rendimiento y desempeo.
No selogra estocon procesosservidores independientespuestoquedeben com-
partir un buer cachcomn y deben estar en el mismo espacio dedirecciones.
En muchos sentidos los hilos son como miniprocesos:
Cada hilo:
Seejecuta en forma estrictamentesecuencial.
Tienesu propio contador deprograma y una pila para llevar un registro desu
posicin.
Los hilos comparten la cpu dela misma forma quelo hacen los procesos:
Secuencialmente, en tiempo compartido.
Solo en un multiprocesador sepueden ejecutar realmente en paralelo.
315
316CAPTULO10. PROCESOSY PROCESADORESEN SISTEMAS DISTRIBUIDOS
Los hilos pueden crear hilos hijos.
Mientras un hilo est bloqueado sepuedeejecutar otro hilo del mismo proceso.
Los distintos hilos deun proceso comparten un espacio dedirecciones, el conjunto de
archivos abiertos, los procesos hijos, cronmetros, seales, etc.
Los hilos pueden tener distintos estados: en ejecucin, bloqueado, listo, terminado.
10.2 Uso de Hilos
Los hilos permiten la combinacin del paralelismo con la ejecucin secuencial y el bloqueo
de las llamadas al sistema [25, Tanenbaum].
Consideramos el ejemplodel servidor dearchivos con sus posibles organizaciones para
muchos hilos deejecucin.
Iniciamos con el modelo servidor / trabajador:
Un hilo, el servidor, leelas solicitudes detrabajo en el buzn del sistema.
Eligeaunhilotrabajador inactivo(bloqueado) y leenvalasolicitud, despertndolo.
El hilotrabajador vericasi puedesatisfacer lasolicitud por mediodel bloquecach
compartido, al quetienen acceso todos los hilos.
Si no enva un mensajeal disco para obtener el bloquenecesario y seduermeespe-
rando el n dela operacin.
Sellama:
Al planicador y se inicializa otro hilo, que tal vez sea el servidor, para pedir
ms trabajo; o.
A otro trabajador listo para realizar un trabajo.
Los hilos ganan un desempeo considerable pero cada uno de ellos se programa en
forma secuencial.
Otro modelo es el de equipo:
Todos los hilos son iguales y cada uno obtieney procesa sus propias solicitudes.
No hay servidor.
Se utiliza una cola de trabajo que contiene todos los trabajos pendientes, que son
trabajos quelos hilos no han podido manejar.
Un hilo debe vericar primero la cola de trabajo antes de buscar en el buzn del
sistema.
Un tercer modelo es el de entubamiento:
El primer hilogeneraciertosdatosy lostransereal siguienteparasuprocesamiento.
10.3. ASPECTOS DEL DISEO DE UN PAQUETE DE HILOS 317
Los datospasan dehiloen hiloy en cadaetapasellevaacabociertoprocesamiento.
Un programa diseado adecuadamentey queutilicehilos debefuncionar bien:
En una nica cpu con hilos compartidos.
En un verdadero multiprocesador.
10.3 Aspectos del Diseo de un Paquete de Hilos
Un conjuntodeprimitivasrelacionadascon loshilos(ej.: llamadasabiblioteca) disponibles
para los usuarios se llama un paquete de hilos [25, Tanenbaum].
Respecto del manejo de los hilos setienen hilos estticos ehilos dinmicos.
En un diseo esttico:
Seeligeel nmero dehilos al escribir el programa o durantesu compilacin.
Cada uno deellos tieneasociada una pila ja.
Selogra simplicidad pero tambin inexibilidad.
En un diseo dinmico:
Sepermitela creacin y destruccin delos hilos durantela ejecucin.
La llamada para la creacin dehilos determina:
El programa principal del hilo.
Un tamao depila.
Una prioridad deplanicacin, etc.
La llamada generalmenteregresa un identicador dehilo:
Seusar en las posteriores llamadas relacionadas al hilo.
Un proceso:
Seinicia con un solo hilo.
Puedecrear el nmero necesario dehilos.
Los hilos pueden concluir:
Por su cuenta, al terminar su trabajo.
Por su eliminacin desdeel exterior.
Los hilos comparten una memoria comn:
Contienedatos quelos distintos hilos comparten.
El acceso generalmentesecontrola medianteregiones crticas.
318CAPTULO10. PROCESOSY PROCESADORESEN SISTEMAS DISTRIBUIDOS
10.4 I mplantacin de un Paquete de Hilos
Un paquetedehilos sepuedeimplantar en el espacio [25, Tanenbaum]:
Del usuario.
Del ncleo.
Implantacin del paquete de hilos en el espacio del usuario:
El ncleo no sabedesu existencia.
El ncleo maneja procesos con un nico hilo.
No requieresoportedehilos por partedel S. O.
Los hilos seejecutan en un sistema detiempo de ejecucin:
Es un grupo deprocedimientos quemanejan los hilos.
Cuandounhiloejecutaunallamadaal sistemaocualquier accinquepuedaprovocar
su suspensin:
Llama a un procedimiento del sistema detiempo deejecucin.
El procedimiento verica si hay quesuspender al hilo, en cuyo caso:
Almacena los registros del hilo en una tabla.
Busca un hilo no bloqueado para ejecutarlo.
Vuelve a cargar los registros de la mquina con los valores resguardados
del nuevo hilo.
Las principales ventajas son:
El intercambio de hilos es ms rpido que si seutilizaran los sealamientos al
ncleo.
Cada proceso puede tener su propio algoritmo adaptado de planicacin de
hilos.
Tienen una mejor escalabilidad para un nmero muy grande de hilos, ya que
no afectan al ncleo con tablas y bloques decontrol (pila).
Implantacin del paquete de hilos en el espacio del ncleo:
No senecesita un sistema detiempo deejecucin.
Para cada proceso el ncleo tiene una tabla con una entrada por cada hilo que
contiene:
Los registros, estados, prioridades y dems informacin relativa al hilo.
10.5. HILOS Y RPC 319
Todas las llamadas que pueden bloquear un hilo se implantan como llamadas al
sistema:
Signica un costo mayor (en recursos y tiempo).
Cuando un hilo sebloquea, el ncleo puedeejecutar:
Otro hilo listo del mismo proceso.
Un hilo deotro proceso:
Con loshilosanivel usuario el sistemadetiempodeejecucin mantieneen
ejecucin los hilos desu propio proceso hasta que:
El ncleo les retira la cpu, o.
No hay hilos listos.
Un problema fundamental delos paquetes dehilos a nivel usuario es el delasllamadas
al sistema con bloqueo:
No sepuedepermitir queel hilo realmenterealicela llamada al sistema:
Detendra a todos los hilos del proceso.
Un hilo bloqueado no debeafectar a los dems.
Una solucin es agregar cdigo junto a la llamada al sistema para vericar si la
misma no generara bloqueo:
Seefectuara la llamada al sistema solo si la vericacin da o.k.
El cdigo adicional suelellamarsejacket.
Otro problema de los paquetes de hilos a nivel usuario es que si un hilo comienza su
ejecucin no puede ejecutarse ningn otro hilo de ese proceso, salvo que el hilo entregue
voluntariamentela cpu.
Un problema adicional para los hilos a nivel usuario es que generalmente los progra-
madores desean los hilos en aplicaciones donde los hilos se bloquean a menudo:
Ej.: servidor dearchivos con varios hilos.
10.5 Hilos y RPC
Es comn que los sistemas distribuidos utilicen RPC e hilos [25, Tanenbaum].
Al iniciar un hiloservidor, S, steexporta su interfaz al informarledestaal ncleo;
la interfaz denelos procedimientos quepuedellamar, sus parmetros, etc.
Al iniciar un hilo cliente, C, ste importa la interfaz del ncleo:
Seleproporciona un identicador especial para utilizarlo en la llamada.
El ncleo sabequeC llamar posteriormentea S:
320CAPTULO10. PROCESOSY PROCESADORESEN SISTEMAS DISTRIBUIDOS
Crea estructuras dedatos especiales para prepararsepara la llamada.
Una de las estructuras es una pila de argumentos compartida por C y S, que se
asocia demanera lectura / escritura en ambos espacios dedirecciones.
Para llamar al servidor, C:
Coloca sus argumentos en la pila compartida medianteel procedimiento normal de
transferencia.
Haceun sealamiento al ncleo colocando un identicador especial en un registro.
El ncleo:
Detecta esto y deducequees una llamada local.
Modicael mapadememoriadel clienteparacolocar steenel espaciodedirecciones
del servidor.
Inicia el hilo cliente, al ejecutar el procedimiento del servidor.
La llamada seefecta detal forma que:
Los argumentos seencuentran ya en su lugar:
No es necesario su copiado u ordenamiento.
La RPC local sepuederealizar ms rpido deesta manera.
10.6 Modelos de Sistemas
En un sistema distribuido, con varios procesadores, un aspecto fundamental del diseo
es cmo se los utiliza [25, Tanenbaum].
Los procesadores distribuidos sepueden organizar devarias formas:
Modelo de estacin de trabajo.
Modelo de la pila de procesadores.
Modelo hbrido.
10.7 El Modelo de Estacin de Trabajo
El sistema consta de estaciones de trabajo (PC) dispersas conectadas entre s mediante
una red de rea local (LAN) [25, Tanenbaum].
Pueden contar o no con disco rgido en cada una deellas.
Los usuarios tienen:
Una cantidad ja depoder decmputo exclusiva.
Un alto grado deautonoma para asignar los recursos desu estacin detrabajo.
10.8. USO DE ESTACIONES DE TRABAJ O INACTIVAS 321
Uso delos discos en las estaciones detrabajo:
Sin disco:
Bajocosto, fcil mantenimiento del hardwarey del software, simetra y exibi-
lidad.
Gran uso dela red, los servidores dearchivos sepueden convertir en cuellos de
botella.
Disco para paginacin y archivos de tipo borrador:
Reducela carga dela red respecto del caso anterior.
Alto costo debido al gran nmero dediscos necesarios.
Disco para paginacin, archivos de tipo borrador y archivos binarios (ejecutables):
Reducean ms la carga sobrela red.
Alto costo y complejidad adicional para actualizar los binarios.
Disco para paginacin, borrador, binarios y ocultamiento de archivos:
Reducean ms la carga dered y delos servidores dearchivos.
Alto costo.
Problemas deconsistencia del cach.
Sistema local dearchivos completo:
Escasa carga en la red.
Elimina la necesidad delos servidores dearchivos.
Prdida detransparencia.
10.8 Uso de Estaciones de Trabajo I nactivas
La idea consisteen ordenar remotamentela ejecucin deprocesos en estaciones detrabajo
inactivas [25, Tanenbaum].
Los aspectos clave son:
Cmo encontrar una estacin detrabajo inactiva?.
Cmo lograr queun proceso remoto seejecutedeforma transparente?.
Quocurresi regresa el poseedor dela mquina?.
Generalmenteseconsidera queuna estacin detrabajo est inactiva cuando sedan
ambas condiciones:
322CAPTULO10. PROCESOSY PROCESADORESEN SISTEMAS DISTRIBUIDOS
Nadietoca el ratn o el teclado durantevarios minutos.
No seejecuta algn proceso iniciado por el usuario.
Los algoritmos para localizar las estaciones de trabajo inactivas se pueden dividir en
dos categoras:
Controlados por el servidor.
Controlados por el cliente.
Algoritmos controlados por el servidor:
Cuando una estacin detrabajo est inactiva:
Seconvierteen un servidor potencial.
Anuncia su disponibilidad:
Proporciona su nombre, direccin en la red y propiedades:
Grabndolos en un archivo, o.
Transmitindolos a las otras estaciones.
Sepueden dar situaciones decompetencia entredistintos usuarios para acceder a la
misma estacin inactiva al mismo tiempo:
Sedeben detectar al ingresar el requerimiento.
Solo progresa el primer requerimiento arribado.
Seelimina a la estacin dela lista deinactivas.
Quien hizo el llamado puedeenviar su ambienteeiniciar el proceso remoto.
Algoritmos controlados por el cliente:
El clientetransmiteuna solicitud indicando el programa quedesea ejecutar, la can-
tidad dememoria necesaria, si requiereun chip coprocesador, etc.
Al regresar la respuesta seeligeuna estacin y sela congura.
Para ejecutar el proceso en la estacin remota seleccionada sedebelograr:
El desplazamiento del cdigo.
La conguracin del proceso remoto demodo que:
Vea el mismoambientequetendra en el caso local, en la estacin de trabajo
de origen.
Ejecutedela misma forma queen el caso local.
10.9. EL MODELO DE LA PILA DE PROCESADORES 323
Se necesita la misma visin del sistema de archivos, el mismo directorio de trabajo,
etc.
Si setrabajasobreel servidor dearchivos seenvan lassolicitudesdediscoal servidor.
Si se trabaja con discos locales se envan las solicitudes a la mquina de origen para
su ejecucin.
Ciertas operaciones como la lectura del teclado y la escritura en la pantalla:
Nunca sepueden ejecutar en la mquina remota.
Deben regresar a la mquina deorigen.
Todas las llamadas al sistema que soliciten el estado de la mquina deben realizarse
en la mquina donde se ejecuta el proceso.
Las llamadas al sistema relacionadas con el tiempo son un serio problema debido alas
dicultades desincronizacin.
En caso dequeregrese el poseedor de la mquina:
Sepodra no hacer nada, contra la idea deestaciones detrabajo personales.
Sepodra eliminar el proceso intruso:
Abruptamente, perdindoseel trabajohecho y generando caos en el sistema de
archivos.
Ordenadamente, salvando el procesamiento ya hecho y preservando la integri-
dad del sistema dearchivos.
Sepodra emigrar el proceso a otra estacin.
10.9 El Modelo de la Pila de Procesadores
Se dispone de un conjunto de cpu que se pueden asignar dinmicamente a los usuarios
segn la demanda [25, Tanenbaum].
Los usuarios no disponen de estaciones de trabajo sino de terminales grcas de alto
rendimiento.
No existe el concepto de propiedad de los procesadores, los que pertenecen a todos y
seutilizan compartidamente.
El principal argumento para la centralizacin del poder de cmputo como una pila de
procesadores provienedela teora de colas:
Llamamos a la tasa de entradas totales de solicitudes por segundo detodos los
usuarios combinados.
Llamamos a la tasa de procesamiento de solicitudes por partedel servidor.
Para una operacin estable debedarseque > :
Se pueden permitir pequeos lapsos de tiempo en los que la tasa de entrada
exceda a la deservicio.
324CAPTULO10. PROCESOSY PROCESADORESEN SISTEMAS DISTRIBUIDOS
LlamamosT al promediodetiempoentrelaemisin deunasolicitudylaobtencin
de una respuesta completa:
T = 1 / ( - ).
Cuando tiendea 0, T no tiendea 0.
Supongamos que tenemos n multiprocesadores personales, cada uno con cierto
nmerodecpu y con su propiosistemadecolascon tasas y y tiempoT:
Si reunimos todaslas cpu y formamos una sola pila deprocesadores tendremos
un solo sistema de colas en vez de n colas ejecutndoseen paralelo.
La tasa de entrada ser n , la tasa de servicio ser n y el tiempo
promedio de respuesta ser:
T
1
= 1 / (n - n ) = 1 / n ( - ) = T / n.
Conclusin: si reemplazamos n pequeos recursos por uno grandeque sea
n veces ms poderoso:
Podemos reducir el tiempo promedio de respuesta n veces.
El modelo de pila es ms eciente que el modelo de bsqueda de estaciones inactivas.
Tambin existeel modelo hbrido queconsta deestaciones de trabajo y una pila de
procesadores.
10.10 Asignacin de Procesadores
Son necesarios algoritmos para decidir cul proceso hay que ejecutar y en qu mquina
[25, Tanenbaum].
Para el modelo de estaciones de trabajo:
Decidir cundo ejecutar el proceso de manera local y cundo buscar una estacin
inactiva.
Para el modelo de la pila de procesadores:
Decidir dndeejecutar cada nuevo proceso.
10.11 Modelos de Asignacin
Generalmenteseutilizan las siguientes hiptesis [25, Tanenbaum]:
Todas las mquinas son idnticas (o al menos compatibles en el cdigo); dieren a
lo sumo en la velocidad.
Cada procesador sepuedecomunicar con los dems.
Las estrategias de asignacin de procesadores sedividen en:
10.12. DISEO DE ALGORITMOS DE ASIGNACIN DE PROCESADORES 325
No migratorias:
Unavez colocadounprocesoenunamquinapermaneceah hastaquetermina.
Migratorias:
Un proceso sepuedetrasladar aunquehaya iniciado su ejecucin.
Permiten un mejor balancedela carga pero son ms complejas.
Los algoritmos de asignacin intentan optimizar algo:
Uso de las cpu:
Maximizar el nmero de ciclos de cpu que se ejecutan para trabajos de los
usuarios.
Minimizar el tiempo deinactividad delas cpu.
T iempo promedio de respuesta:
Minimizar no los tiempos individuales derespuesta sino los tiempos promedio
derespuesta.
Tasa de respuesta:
Minimizar latasaderespuesta, queesel tiemponecesarioparaejecutar unpro-
cesoen ciertamquinadivididopor el tiempoquetardaraen ciertoprocesador
dereferencia.
10.12 Aspectos del Diseo de Algoritmos de Asignacin de
Procesadores
Los principales aspectos son los siguientes [25, Tanenbaum]:
Algoritmos deterministas vs. heursticos.
Algoritmos centralizados vs. distribuidos.
Algoritmos ptimos vs. subptimos.
Algoritmos locales vs. globales.
Algoritmos iniciados por el emisor vs. iniciados por el receptor.
Losalgoritmosdeterministas sonadecuadoscuandosesabeanticipadamentetodo acer-
ca del comportamiento de los procesos, pero esto generalmente no se da, aunque puede
haber en ciertos casos aproximaciones estadsticas.
Los algoritmos heursticos son adecuados cuando la carga es impredecible.
326CAPTULO10. PROCESOSY PROCESADORESEN SISTEMAS DISTRIBUIDOS
Losdiseos centralizados permiten reunir todalainformacinenunlugar y tomar una
mejor decisin; la desventaja es que la mquina central se puede sobrecargar y sepierde
robustez antesu posiblefalla.
Generalmentelos algoritmos ptimos consumen ms recursos quelossubptimos, ade-
ms, en la mayora de los sistemas reales se buscan soluciones subptimas, heursticas y
distribuidas.
Cuando seva a crear un proceso sedebe decidir si se ejecutar en la mquina que lo
genera o en otra (poltica de transferencia):
Ladecisin sepuedetomar solo con informacin local ocon informacin global.
Los algoritmos locales son sencillos pero no ptimos.
Los algoritmos globales son mejores pero consumen muchos recursos.
Cuando una mquina sedeshacedeun proceso la poltica de localizacin debedecidir
dndeenviarlo:
Necesita informacin dela carga en todas partes, obtenindola de:
Un emisor sobrecargado quebusca una mquina inactiva.
Un receptor desocupado quebusca trabajo.
10.13 Aspectos de la I mplantacin de Algoritmos de Asig-
nacin de Procesadores
Casi todoslosalgoritmossuponen quelas mquinas conocen su propia carga y quepueden
informar su estado [25, Tanenbaum]:
La medicin de la carga no es tan sencilla.
Unmtodoconsisteencontar el nmerodeprocesos(hay queconsiderar losprocesos
latentes no activos).
Otro mtodo consisteen contar solo los procesos en ejecucin o listos.
Tambin sepuedemedir la fraccin detiempo quela cpu est ocupada.
Otro aspecto importante es el costo excesivo en consumo de recursos para recolectar
medidas y desplazar procesos, ya que se debera considerar el tiempo de cpu, el uso de
memoria y el ancho de banda de la red utilizada por el algoritmo para asignacin de
procesadores.
Sedebe considerar la complejidad del software en cuestin y sus implicancias para el
desempeo, la correctez y la robustez del sistema.
Si el uso de un algoritmo sencillo proporciona casi la misma ganancia que uno ms
caro y ms complejo, generalmenteser mejor utilizar el ms sencillo.
Sedebeotorgar gran importancia a la estabilidad del sistema:
10.14. EJ EMPLOS DE ALGORITMOS DE ASIGNACIN DE PROCESADORES 327
Lasmquinasejecutansusalgoritmosenformaasncronapor loqueel sistemanunca
seequilibra.
La mayora delos algoritmos queintercambian informacin:
Son correctos luego de intercambiar la informacin y de que todo se ha regis-
trado.
Son pococonablesmientraslastablascontinan su actualizacin, es decir que
sepresentan situaciones deno equilibrio.
10.14 Ejemplos de Algoritmos de Asignacin de Procesado-
res
10.14.1 Un Algoritmo Determinista Segn la Teora de Grcas
Es aplicablea sistemas dondese conoce [25, Tanenbaum]:
Requerimientos decpu y dememoria delos procesos.
Trco promedio entrecada par deprocesos.
Si el nmero deprocesos supera al nmero decpu:
Habr queasignar varios procesos a la misma cpu.
La asignacin deber minimizar el trco en la red.
El sistema sepuederepresentar en una grca con pesos:
Cada nodo es un proceso.
Cada arco es el ujo demensajes entredos procesos.
El problema es encontrar la forma departir la grca en subgrcas sujetas a restric-
ciones (ej.: decpu y dememoria):
1
Los arcos quevan deuna subgrca a la otra representan el trco en la red.
Cada subgrca es una unidad deasignacin.
El algoritmo debebuscar unidades de asignacin fuertemente acopladas:
Trco intenso dentro dela unidad deasignacin.
Trco escaso entreunidades deasignacin.
1
Ver Figura 10.1 dela pgina 328 y Figura 10.2 dela pgina 328 [25, Tanenbaum].
328CAPTULO10. PROCESOSY PROCESADORESEN SISTEMAS DISTRIBUIDOS
CPU 1 CPU 2 CPU 3
A B C D
E F
G H I
3 2 3
2
2
1
8 5
4
6
3
4
1
5
4 2
EL TRAFICO TOTAL EN LA RED ES LA
SUMA DE LAS UNIDADES DE TRAFICO
DE LOS ARCOS INTERSECTADOS POR
LAS LINEAS PUNTEADAS:
3 + 2 + 4 + 4 + 2 + 8 + 5 + 2 = 30 UNIDADES
Figura~10.1: Una forma deasignar 9procesos a 3procesadores.
CPU 1 CPU 2 CPU 3
A B C D
E F
G H I
3 2 3
2
2
1
8 5
4
6
3
4
1
5
4 2
EL TRAFICO TOTAL EN LA RED ES LA
SUMA DE LAS UNIDADES DE TRAFICO
DE LOS ARCOS INTERSECTADOS POR
LAS LINEAS PUNTEADAS:
3 + 2 + 4 + 4 + 3 + 5 + 5 + 2 = 28 UNIDADES
Figura~10.2: Otra forma deasignar 9procesos a 3procesadores.
10.14. EJ EMPLOS DE ALGORITMOS DE ASIGNACIN DE PROCESADORES 329
10.14.2 Un Algoritmo Centralizado
Es un algoritmo heurstico quea diferencia del anterior no precisa informacin anticipa-
damente [25, Tanenbaum].
Es un algoritmo arriba-abajo (Mutka y Livny) centralizado porque un coordinador
mantieneuna tabla de usos:
Contieneuna entrada por estacin detrabajo inicializada en 0.
Cuandoocurren eventossignicativosseenvanal coordinador mensajesparaactua-
lizar la tabla.
Las decisiones de asignacin sebasan en la tabla:
Se toman cuando ocurren eventos de planicacin, tales como: se realiza una
solicitud, selibera un procesador, el reloj produceuna marca detiempo.
No seintenta maximizar el uso dela cpu.
Seprocura otorgar a cada usuario una parte justa del poder decmputo.
Cuando la mquina donde se crea un proceso decide que se debe ejecutar en otra
parte:
Lepideal coordinador dela tabla deusos queleasigneun procesador:
Si existeuno disponibley nadiems lo desea, seotorga el permiso.
Si no, la solicitud seniega y seregistra.
Si un usuario ejecuta procesos en mquinas de otros usuarios acumula puntos de
penalizacin por segundo, lo queseregistra en la tabla deusos.
Si un usuario tiene solicitudes pendientes insatisfechas, serestan puntos de penali-
zacin.
Si noexisten solicitudespendientesy ningn procesador estenuso, laentradadela
tabla deusossedesplazaun cierto nmero depuntos hacia el 0, hasta alcanzarlo.
El movimiento depuntos hacia arriba y abajo da nombreal algoritmo.
Un puntajepositivo enunaentradadelatabla deusos indicaquelaestacin detrabajo
relacionada es un usuario de los recursos del sistema.
Un puntaje negativo signica queprecisa recursos.
Una puntuacin 0 es neutra.
La heurstica utilizada para la asignacin de procesadores es la siguiente:
Cuando un procesador se libera gana la solicitud pendiente cuyo poseedor tiene la
puntuacin menor.
Un usuario queno ocupeprocesadores y quetenga pendienteuna solicitud durante
mucho tiempo:
Siemprevencer a alguien queutilicemuchos procesadores.
Secumplecon el principio deasignar la capacidad demanera justa.
330CAPTULO10. PROCESOSY PROCESADORESEN SISTEMAS DISTRIBUIDOS
10.14.3 Un Algoritmo J errquico
El algoritmo anterior no seadapta bien a los sistemas de gran tamao [25, Tanenbaum],
pues el nodo central seconvierteen un cuello debotella y en un nico punto de fallo.
Una solucin son los algoritmos jerrquicos que:
Mantienen la sencillez delos centralizados.
Seescalan mejor quelos centralizados.
Unmtodoconsisteenorganizar alosprocesadoresen jerarquaslgicas independientes
dela estructura fsica:
Seestableceun rbol jerrquico con distintos niveles.
Para cada grupo demquinas hay una mquina administradora:
Mantieneun registro delas mquinas ocupadas y las inactivas.
Cadaprocesador secomunicaconunsuperior yunnmeroreducidodesubordinados:
El ujo deinformacin es controlable.
En caso defalla deun equipo con funciones jerrquicas:
Lo puedereemplazar un subordinado:
La eleccin la pueden hacer los subordinados, los pares jerrquicos del equipo
fallado o el superior jerrquico del mismo.
Paradisminuir lavulnerabilidad sepuedetener en la cimadel rbol jerrquico nouno
sino un grupo de equipos; si alguno del grupo falla los restantes eligen a un subordinado
para integrar el grupo superior.
Las tareas sepueden crear en cualquier partedela jerarqua y pueden requerir varios
procesos, es decir varios procesadores.
Cada administrador debemantener un registro de sus equipos dependientes que estn
disponibles.
Si el administrador querecibeuna solicitud determina queno tienesucientes proce-
sadoresdisponibles, transerelasolicitud haciaarribaasu superior, quien tambin podra
trasladarla hacia arriba nuevamente.
Si el administrador determina ques puedesatisfacer la solicitud:
Dividelasolicitud en partes y la distribuyealos administradores subordinados al.
Los subordinados repiten esta operacin hasta llegar al nivel inferior.
Losprocesadoressesealancomoocupados y el nmerodeprocesadoresasignados
seinforma hacia arriba.
10.14. EJ EMPLOS DE ALGORITMOS DE ASIGNACIN DE PROCESADORES 331
Un importante problema consiste en que podra haber varias solicitudes en distintas
etapas del algoritmo de asignacin:
Puedeconducir a estimaciones no actualizadas del nmero deprocesadores disponi-
bles (tambin pudieron salir deservicio algunos delos considerados disponibles).
Podran presentarsesituaciones decompetencia, bloqueo, etc. en el intento deasig-
nacin deprocesadores.
10.14.4 Un Algoritmo Distribuido Heurstico (Eager)
Al crearseun proceso [25, Tanenbaum]:
La mquina donde se origina enva mensajes de prueba a una mquina elegida al
azar; pregunta si su carga est por debajo decierto valor dereferencia.
Si la respuesta es positiva el proceso seenva a eselugar.
Si no, seeligeotra mquina para la prueba.
Luego de n pruebas negativas el algoritmo termina y el proceso se ejecuta en la
mquina deorigen.
10.14.5 Un Algoritmo de Remates
Utiliza un modelo econmico con [25, Tanenbaum]:
Compradores y vendedores deservicios.
Precios establecidos por la oferta y la demanda.
Los procesos deben comprar tiempo de cpu.
Cada procesador anuncia su precio mediante un archivo que todos pueden leer (es el
precio pagado por el ltimo cliente).
Los distintos procesadores pueden tener distintos precios segn sus caractersticas y
servicios.
Cuando un proceso desea iniciar un proceso hijo:
Verica si alguien ofreceel servicio quenecesita.
Determina el conjunto deprocesadores quepueden prestar sus servicios.
Selecciona el mejor candidato segn precio, rapidez, relacin precio / desempeo,
tipo deaplicacin, etc.
Genera una oferta y la enva a su primer opcin.
Los procesadores:
Renen las ofertas recibidas y eligen una.
Informan a los ganadores y perdedores.
Ejecutan los procesos.
Actualizan los precios.
332CAPTULO10. PROCESOSY PROCESADORESEN SISTEMAS DISTRIBUIDOS
10.15 Planicacin en Sistemas Distribuidos
Generalmente cada procesador hace su planicacin local (si tiene varios procesos en eje-
cucin) independientemente de lo que hacen los otros procesadores [25, Tanenbaum].
La planicacin independiente no es eciente cuando se ejecutan en distintos proce-
sadores un grupo de procesos:
Relacionados entres.
Con una gran interaccin entrelos procesos.
Se necesita una forma de garantizar que los procesos con comunicacin frecuente se
ejecuten de manera simultnea.
En muchos casos un grupo deprocesos relacionados entres iniciarn juntos.
La comunicacin dentro delos grupos debeprevalecer sobrela comunicacin entrelos
grupos.
Se debe disponer de un nmero de procesadores suciente para soportar al grupo de
mayor tamao.
Cada procesador semultiprograma con n espaciosparalosprocesos (multiprograma-
cin de nivel n).
El algoritmo de Ousterhout utiliza el concepto decoplanicacin:
Toma en cuenta los patrones de comunicacin entre los procesos durante la plani-
cacin.
Debegarantizar quetodos los miembros del grupo seejecuten al mismo tiempo.
Seemplea una matriz conceptual donde:
Las las son espacios detiempo.
Las columnas son las tablas deprocesos delos procesadores.
Cada procesador debeutilizar un algoritmo de planicacin Round Robin:
Todos los procesadores ejecutan el proceso en el espacio 0 duranteun cierto
perodo jo.
Todos los procesadores ejecutan el proceso en el espacio 1 duranteun cierto
perodo jo, etc.
Sedeben mantener sincronizados los intervalos detiempo.
Todos los miembros de un grupo se deben colocar en el mismo nmero de espacio
de tiempo pero en procesadores distintos.
Captulo 11
Sistemas Distribuidos de Archivos
11.1 I ntroduccin a los Sistemas Distribuidos de Archivos
Muchos aspectos son similares a los de los sistemas convencionales centralizados [25,
Tanenbaum].
En un sistema distribuido es importantedistinguir entre los conceptos de servicio de
archivos y el servidor de archivos.
El servicio de archivos:
Es la especicacin delos servicios queel sistema dearchivos ofrecea sus clientes.
Describe las primitivas disponibles, los parmetros que utilizan y las acciones que
llevan a cabo.
Dene precisamente el servicio con que pueden contar los clientes sin decir nada
respecto desu implantacin.
El despachador (servidor) de archivos:
Es un proceso que se ejecuta en alguna mquina y ayuda con la implantacin del
servicio dearchivos.
Puedehaber uno o varios en un sistema.
Losclientesnodeben ser conscientesdelaformadeimplantar el sistemadearchivos:
No precisan conocer el nmerodeservidores dearchivos, su posicin ofuncin.
Deberan ver al sistema distribuido de archivos como un sistema de archivos
normal deuniprocesador.
Generalmente un servidor de archivos es un proceso del usuario (a veces del ncleo)
queseejecuta en una mquina:
Un sistema puede contener varios servidores de archivos, cada uno con un servicio
distinto:
Ej.: un sistema con un servidor dearchivos en UNIX y otro en DOS.
Cada proceso usuario utilizara el servidor apropiado.
333
334 CAPTULO 11. SISTEMAS DISTRIBUIDOS DE ARCHIVOS
11.2 Diseo de los Sistemas Distribuidos de Archivos
Los componentes deun sistema distribuido dearchivos son [25, Tanenbaum]:
El verdadero servicio de archivos:
Realiza operaciones en los archivos individuales: lectura, escritura, adicin.
El servicio de directorios:
Crea y maneja directorios, aadey elimina archivos delos directorios, etc.
11.3 La I nterfaz del Servicio de Archivos
La proteccin en los sistemas distribuidos utiliza las mismas tcnicas delos sistemas con
uniprocesador [25, Tanenbaum]:
Posibilidades:
Cada usuario tiene un permiso o posibilidad para cada objeto al que tiene
acceso:
Determina los tipos de accesos permitidos.
Listas para control de acceso:
Seasocia a cada archivo una lista implcita o explcita de:
Los usuarios quepueden tener acceso al archivo.
Los tipos de acceso permitidos a cada uno deellos.
Los servicios de archivos sepueden clasicar en dos tipos:
Modelo carga / descarga:
Las principales operaciones son la lectura de un archivo y la escritura en un
archivo.
La lectura transere todo un archivo de uno de los servidores de archivos al
clientesolicitante.
La escritura transereen sentido contrario.
Los archivos sepueden almacenar en memoria o en un disco local.
Modelo de acceso remoto:
El sistema dearchivos seejecuta con todas las funciones en los servidores y no
en los clientes.
11.4. LA INTERFAZ DEL SERVIDOR DE DIRECTORIOS 335
A
B C
D E
Figura~11.1: Arbol dedirectorios contenido en una mquina.
11.4 La I nterfaz del Servidor de Directorios
Proporciona operaciones para crear y eliminar directorios, nombrar y cambiar el nombre
dearchivos y mover archivos deun directorio a otro [25, Tanenbaum].
Seutilizaun sistema jerrquico dearchivos, representado por un rbol dedirectorios.
1
En ciertos sistemas es posiblecrear enlaces o apuntadores a un directorio arbitrario:
Sepueden colocar en cualquier directorio.
Sepueden construir grcas dedirectorios.
En una jerarqua con estructura de rbol solo se puede eliminar un enlace con un
directorio si el directorio al cual seapunta est vaco.
En una grca sepermitela eliminacin deun enlacemientras exista al menos otro:
Seutiliza un contador dereferencias para determinar si el enlacepor eliminar es el
ltimo.
Sepuedearmar unagrcadedirectorioscomprendiendoa directorios dedoso ms
mquinas.
La eliminacin de enlaces puede llevar a directorios y archivos a la condicin de
hurfanos, es decir queno pueden ser alcanzados desdeel directorio raz.
2
Un aspecto fundamental de diseo en sistemas distribuidos es si todas las mquinas y
procesos tendrn exactamente la misma visin de la jerarqua de los directorios.
En los sistemas queutilizan varios servidores dearchivos medianteel montajeremoto
generalmente los diversos clientes tienen una visin diferente del sistema de archivos,
pero la desventaja es que el sistema no se comporta como un nico sistema de tiempo
compartido.
Unacuestinrelacionadaessi existeundirectorio raz global al quetodaslasmquinas
reconozcancomolaraz; unaposibilidad esquelaraz solocontengaunaentradapor cada
servidor.
1
Ver Figura 11.1 dela pgina 335 [25, Tanenbaum].
2
Ver Figura 11.2 dela pgina 336 [25, Tanenbaum].
336 CAPTULO 11. SISTEMAS DISTRIBUIDOS DE ARCHIVOS
A
B C
D E
MAQUINA 1
MAQUINA 2
0
2 1
1 1
N DE DIRECTORIOS QUE
APUNTAN A ESTE
DIRECTORIO
Figura~11.2: Grca dedirectorios dedos mquinas.
11.4.1 Transparencia de los Nombres
La transparencia con respecto a la posicin signica que el nombre de la ruta de acceso
no sugierela posicin del archivo:
Se individualiza al servidor pero no se indica dnde est, por ello puede moverse
dentro dela red sin necesidad decambiar la ruta.
Ej.: / servidor1/ dir1/ dir2/ x.
Si el primer componentedetodaslasrutasdeaccesoesel servidor, el sistemanopuede
desplazar el archivo a otro servidor en forma automtica porque cambiara el nombrede
la ruta deacceso.
Un sistema dondelos archivos sepueden desplazar sin que cambien sus nombres tiene
independenci a con respecto a la posicin.
Resumiendo, losmtodos usuales para nombrar los archivos ydirectorios enunsistema
distribuido son:
Nombremquina +ruta deacceso.
Montajedesistemas dearchivos remotos en la jerarqua local dearchivos.
Un nico espacio denombres quetenga la misma apariencia en todas las mquinas.
11.5 Semntica de los Archivos Compartidos
Cuandosecomparten archivos esnecesariodenir con precisin la semntica delalectura
y escritura.
En sistemas monoprocesador que permiten a los procesos compartir archivos (ej.:
UNIX) la semntica generalmente establece:
Si un read siguea un write, read deberegresar el valor recin escrito.
11.5. SEMNTICA DE LOS ARCHIVOS COMPARTIDOS 337
Si dos write se realizan en serie y luego se ejecuta un read, el valor que se debe
regresar es el almacenado en la ltima escritura.
Estemodelo sedenomina semntica de UNIX.
En un sistema distribuido la semntica de UNI X sepuedelograr fcilmentesi:
Solo existeun servidor dearchivos.
Los clientes no ocultan los archivos.
Un problema quesepuedepresentar sedebea los retrasos en la red:
Si un read ocurrido despus deun write llega primero al servidor obtendr el valor
previo al write.
Otro problema es el desempeo pobre de un sistema distribuido en donde todas las
solicitudes dearchivos deben pasar a un nico servidor:
Una solucin es permitir a los clientemantener copias locales delos archivos deuso
frecuenteen sus cachs particulares, lo queocasiona el siguienteproblema:
Un clientemodica localmenteun archivo en su cach.
Luego otro clienteleeel archivo del servidor.
El segundo clienteobtendr un archivo obsoleto.
Unasolucinserapropagar inmediatamentetodaslasmodicacionesdelosarchivos
en cachderegreso al despachador:
Resulta prcticamenteineciente.
Otra solucin es relajar la semntica de los archivos compartidos:
Loscambiosaunarchivoabiertosolopuedenser vistosenunprincipiopor el proceso
(o tal mquina) quemodico el archivo.
Los cambios sern visibles a los dems procesos (o mquinas) solo cuando secierre
el archivo y sea actualizado en el servidor.
Esta regla seconocecomo la semntica de sesin.
Un problema se presenta cuando dos o ms clientes ocultan y modican el mismo
archivo en forma simultnea:
Una solucin es queal cerrar cada archivo su valor seenva deregreso al servidor:
El resultado nal dependedequin lo cierrems rpido.
338 CAPTULO 11. SISTEMAS DISTRIBUIDOS DE ARCHIVOS
Otro problema consisteen queno se pueden compartir los apuntadores quepara cada
archivo indican en la semntica UNIX la posicin actual en el archivo.
Un mtodo distinto es quetodos los archivos sean inmutables:
No sepuedeabrir un archivo para escribir en l.
Solo sepermiten las operaciones create y read.
Los directorios s sepueden actualizar.
Sepuedecrear un archivo nuevo eintroducirlo en el directorio con el nombredeun
archivo ya existente:
Estesevuelveinaccesiblecon el mismo nombre.
Persisteel problemadecmotratar lasituacinpresentadacuandodosprocesos
intentan reemplazar el mismo archivo a la vez.
Otra va de solucin para el uso dearchivos compartidos en un sistema distribuido es
usar las transacciones atmicas:
Segarantiza quetodas las llamadas contenidas en la transaccin sellevarn a cabo
en orden.
No habr interferencias deotras transacciones concurrentes.
11.6 I mplantacin de un Sistema Distribuido de Archivos
La implantacin de un sistema distribuido de archivos incluye aspectos tales como [25,
Tanenbaum]:
El uso de los archivos.
La estructura del sistema.
El ocultamiento.
La duplicacin o rplica.
El control de la concurrencia.
11.7 Uso de Archivos
Antesdeimplantar unsistemadearchivosresultadeintersanalizar lospatrones deuso
dedichos archivos [25, Tanenbaum].
Para determinar los patrones de uso es necesario tomar mediciones quepueden ser:
Estticas:
Representan una toma instantnea del sistema en un momento dado.
11.8. ESTRUCTURA DEL SISTEMA 339
Comprenden la distribucin detamao delos archivos, la distribucin detipo
de archivos, la cantidad de espacio queocupan los archivos devarios tamaos
y tipos, etc.
Dinmicas:
Registran en una bitcora todas las operaciones que modican el sistema de
archivos.
Comprenden informacin sobre la frecuencia relativa de varias operaciones, el
nmero de archivos abiertos en un momento dado, la cantidad de archivos
compartidos, etc.
Las principales propiedades observadas son:
La mayora delos archivos son pequeos.
La lectura es ms comn quela escritura.
La mayora delos accesos es secuencial.
La mayora delos archivos son decorta vida.
Es poco usual compartir archivos.
Los procesos promedio utilizan pocos archivos.
Distintas clases dearchivos poseen propiedades distintas.
11.8 Estructura del Sistema
En ciertos sistemas no existedistincin entre un cliente y un servidor [25, Tanenbaum]:
Todas las mquinas ejecutan el mismo softwarebsico.
Una mquina quedeseedar servicio dearchivos lo puedehacer:
Debe exportar los nombres de los directorios seleccionados, para que otras
mquinas los puedan acceder.
En otros sistemas el servidor de archivos y el de directorios son solo programas del
usuario, y se puede congurar un sistema para que ejecute o no el software de cliente o
servidor en la misma mquina.
Los clientes y servidores tambin podran ser mquinas totalmentedistintas en trmi-
nos dehardwareo desoftware.
Un aspecto de implantacin en dondedieren los sistemas es la forma de estructurar
el servicio a directorios y archivos; las principales opciones son las siguientes:
Combinar el servicio a directorios y archivos en un nico servidor que administre
todas las llamadas a directorios y archivos.
340 CAPTULO 11. SISTEMAS DISTRIBUIDOS DE ARCHIVOS
Separar el servicio a directorios y archivos utilizando un servidor de directorios y
un servidor dearchivos.
Si seconsidera el caso deservidores de archivos y directorios independientes:
El clienteenva un nombresimblico al servidor dedirectorios.
El servidor dedirectorios regresael nombreen binario(ej.: mquina +nodo_ i ) que
comprendeel servidor dearchivos.
Es posiblequeuna jerarqua dedirectorios sereparta entrevarios servidores.
El servidor querecibeun nombrebinario quesereerea otro servidor puede:
Indicar al clienteel servidor quetieneel archivo buscado, paraqueel clientelo
busque.
Enviar la solicitud al siguienteservidor y no contestar.
Un aspecto estructural a considerar es si los servidores de archivos, directorios o de
otro tipo deben contener la informacin de estado de los clientes.
Una posibilidad es que los servidores no deben contener los estados, deben ser sin
estado:
Cuando un clienteenva una solicitud a un servidor:
El servidor la lleva a cabo, enva la respuesta y elimina de sus tablas internas
toda la informacin relativa a esa solicitud.
El servidor no guarda informacin relativa a los clientes entrelas solicitudes.
Otra posibilidad es quelos servidores conserven informacin de estado de los clientes
entrelas solicitudes.
Aclaracin:
Luegodeabrir un archivoel servidor debemantener lainformacin querelacionelos
clientes con los archivos abiertos por stos.
Al abrir un archivo el cliente recibe un descriptor de archivo que se utiliza en las
llamadas posteriores para identicacin del archivo.
Al recibir una solicitud el servidor utiliza el descriptor de archivo para determinar
el archivo necesario.
La tabla que asocia los descri ptores de archivo con los archi vos propiamente
dichos es informacin de estado.
En un servidor sin estado cada solicitud debeser autocontenida:
Debeincluir el nombredel archivo y toda la informacin paraqueel servidor realice
el trabajo.
11.9. OCULTAMIENTO 341
La longitud del mensajees mayor.
Si un servidor con estado falla y sus tablas sepierden:
Al volver a arrancar no tiene informacin sobre la relacin entre los clientes y los
archivos abiertos por stos.
La recuperacin queda a cargo delos clientes.
Los servidores sin estado tienden a ser ms tolerantes de los fallos que los servidores
con estados.
11.9 Ocultamiento
En un sistema cliente - servidor, cada uno con su memoria principal y un disco, existen
cuatro lugares dondesepueden almacenar los archivos o partes deellos [25, Tanenbaum]:
El disco del servidor.
La memoria principal del servidor.
El disco del cliente(si existe).
La memoria principal del cliente.
Si los archivos sealmacenan en el disco del servidor:
Disponen deabundanteespacio.
Seran accesibles a todos los clientes.
No habr problemas deconsistencia al existir solo una copia decada archivo.
Puedehaber problemas dedesempeo:
Antes dequeun clientepueda leer un archivo selo debetransferir:
Del disco del servidor a la memoria principal del servidor.
Dela memoria principal del servidor a la memoria principal del cliente, a
travs dela red.
Sepuedemejorar el desempeoocultando(conservando) losarchivosdemsreciente
uso en la memoria principal del servidor:
Un cliente que lea un archivo ya presente en el cach del servidor elimina la
transferencia del disco.
Senecesita un algoritmo para determinar los archivos o partes dearchivos que
deben permanecer en el cach.
El algoritmo deberesolver los siguientes problemas:
342 CAPTULO 11. SISTEMAS DISTRIBUIDOS DE ARCHIVOS
La unidad quemaneja el cach.
Quhacer si seutiliza toda la capacidad del cachy hay queeliminar a alguien.
Respecto dela unidad que maneja el cach:
Puedemanejar archivos completos o bloques del disco.
El ocultamientodearchivoscompletos quesepueden almacenar en formaadyacente
en el disco permiteun buen desempeo en general.
El ocultamiento de bloques de disco utiliza el cach y el espacio en disco ms e-
cientemente.
Respectodequhacer cuando seutiliza toda la capacidaddel cach y hay queeliminar
a alguien:
Sepuedeutilizar cualquier algoritmo de ocultamiento, por ej.: LRU mediantelistas
ligadas.
Cuando hay queeliminar a alguien dela memoria:
Seeligeal ms antiguo.
Si existeuna copia actualizada en el disco sedescarta la copia del cach.
Delo contrario primero seactualiza el disco.
El mantenimiento deun cach en la memoria principal del servidor es fcil delograr
y es totalmentetransparente a los clientes.
Si seutiliza ocultamiento en el lado del cliente:
Seelimina el acceso a la red para transferir del servidor al cliente.
El disco del clientegeneralmentees ms lento y demenor capacidad.
Generalmentees ms rpido y ms sencillo tener un cach en la memoria principal
del servidor queen el disco del cliente.
Si el cach se coloca en la memoria principal del cliente las principales opciones son:
Ocultar losarchivosdentrodel propioespaciodedireccionesdeunprocesodeusuario.
Colocar el cachen el ncleo.
Ocultar el cachen un procesomanejador del cach, independientey anivel usuario.
11.9. OCULTAMIENTO 343
11.9.1 Consistencia del Cach
El ocultamiento por parte del cliente introduce i nconsistencia en el sistema.
Si dos clientes leen un mismo archivo en forma simultnea y despus lo modican,
aparecen algunos problemas:
Cuando un tercer proceso lee el archivo del servidor obtendr la versin original y
no alguna delas nuevas:
Sepuedeevitar mediantela semntica de sesin:
No es aplicablecuando serequierela semntica de UNI X.
Cuando dos archivos seescriben denuevo al servidor, el ltimo deellos seescribir
sobreel otro.
Una solucin a la inconsistencia del cach es el algoritmo de escritura a travs del
cach:
Cuando semodica una entrada del cach(archivo o bloque), el nuevo valor:
Semantienedentro del.
Seenva deinmediato al servidor.
Los principales problemas dela escritura a travs del cach son los siguientes:
Posiblesuministro devalores obsoletos:
Un proceso clienteen la mquina A leeun archivo f y mantienea f en
su cach.
Un clienteen la mquina B leeel mismo archivo, lo modica y lo escribeen
el servidor.
Otro proceso clienteinicia en la mquina A abriendo y leyendo f, que se
toma del cach.
El valor def es obsoleto.
Unasolucin consisteen exigir al manejador del cachqueveriqueel servidor
antes deproporcionar al clienteun archivo del cach:
Generalmenteutilizar una RPC y poca informacin decontrol.
El trco en la red en el caso delas escrituras es igual queen el caso deno oculta-
miento:
Para mejorar sepuedeaplicar el siguienteprocedimientoderetraso en la escri-
tura:
En vez de ir hacia el servidor en el instante en quese realiza la escritura,
el cliente:
Haceuna noticacin dequeha actualizado un archivo.
344 CAPTULO 11. SISTEMAS DISTRIBUIDOS DE ARCHIVOS
Cada cierto intervalo (ej.: 30) todas las actualizaciones seagrupan y
envan la servidor al mismo tiempo (un bloque).
El retraso en la escritura obscurecela semntica:
Si otro proceso lee el archivo, el resultado depender de la sincronizacin
delos eventos.
Otroalgoritmoparamanejar el cachdearchivosdel clienteesel deescritura al cierre:
Seadopta la semntica desesin.
Solo seescribeun archivo nuevamenteen el servidor cuando el archivo secierra:
Sepodra esperar (ej.: 30) para ver si el archivo es eliminado en eselapso.
Un mtodo distinto a la consistencia es utilizar un algoritmo de control centralizado:
Al abrir un archivo la mquina enva un mensaje al servidor para anunciar este
hecho.
El servidor dearchivos tieneun registrodelos archivos abiertos, sus poseedores y si
estn abiertos para lectura, escritura o ambos procesos.
Si seabreun archivo para lectura otros procesos lo pueden abrir para lectura pero
no para escritura.
Si se abre un archivo para escritura se debe evitar abrirlo para lectura desde otro
proceso.
Al cerrar un archivo:
Sedebeinformar al servidor para queactualicesus tablas.
Sepuedeenviar el archivo modicado al servidor.
11.10 Rplica
Frecuentemente los sistemas distribuidos de archivos proporcionan la rplica de archivos
como un servicio [25, Tanenbaum]:
Existen varias copias dealgunos archivos.
Cada copia est en un servidor dearchivos independiente.
Las principales razones para la rplica son:
Aumentar la conabilidad al disponer derespaldos independientes decada archivo.
Permitir el acceso a archivos an cuando falleun servidor dearchivos.
Repartir la carga detrabajo entrevarios servidores.
11.10. RPLICA 345
Un sistema es transparente con respecto a la rplica si la misma se administra sin
intervencin del usuario.
Una forma dellevar a cabo la rplica consisteen queel programador controletodo el
proceso (rplica explcita):
Los archivos y las copias adicionales secrean en servidores especcos.
Las direcciones en la red detodas las copias seasocian con el nombredel archivo.
Un mtodo alternativo es la rplica retrasada:
Solo secrea una copia decada archivo en un servidor.
El servidor crea rplicas en otros servidores, a posteriori, automticamente y sin
intervencin del proceso deusuario.
Otro mtodo consisteen el uso dela comunicacin en grupo:
Todas las operaciones deescritura setransmiten simultneamentea todos los servi-
dores.
Las copias adicionales sehacen al mismo tiempo queel original.
11.10.1 Protocolos de Actualizacin
El principal problema es asegurar la sincroni zacin de las distintas copias.
Un algoritmo posiblees el derplica de la copia primaria:
Uno delos servidores sedenomina como primario.
Los dems servidores son secundarios.
La actualizacin seenva al servidor primario:
Realiza los cambios localmente.
Enva comandos a los servidores secundarios para ordenarles la misma modi-
cacin.
Las lecturas sepueden hacer decualquier copia.
Ladesventaja esquesi fallael primarionosepuedenllevar acabolasactualizaciones.
Otro posiblealgoritmo es el del voto o de Giord:
La idea fundamental es exigir a los clientes que soliciten y adquieran el permiso de
varios servidores antes deleer o escribir un archivo replicado.
Se utiliza el nmero de versin, que identica la versin del archivo y es la misma
para todos los archivos recin actualizados.
346 CAPTULO 11. SISTEMAS DISTRIBUIDOS DE ARCHIVOS
Para leer un archivo con N rplicas un cliente debe conformar un qurum de
lectura, es decir una coleccin arbitraria deN
r
servidores o ms.
Para modicar un archivo se necesita un qurum de escritura de al menos N
w

servidores.
Sedebecumplir queN
r
+ N
w
> N, por lo cual nunca sepodr obtener un
qurumdelectura y otro deescritura al mismo tiempo.
Generalmente N
r
es muy pequeo y N
w
muy cercano a N ya que general-
mentelas lecturas son ms frecuentes quelas escrituras.
Una variante es el algoritmo del voto con fantasma:
Crea un servidor fantasma para cada servidor real fallido:
Intervienesolo en el qurumdeescritura.
La escritura solo tienexito si al menos uno delos servidores es real.
11.11 Conclusiones I mportantes Respecto de la I mplanta-
cin de un Sistema Distribuido de Archivos
Los principios generalmente considerados fundamentales del diseo de un sistema distri-
buido de archivos son [25, Tanenbaum]:
Las estaciones de trabajo tienen ciclos quehay queutilizar:
Si setienela opcin dehacer algo en una estacin detrabajo o en un servidor:
Elegir la estacin detrabajo.
Losciclosdecpudelaestacindetrabajoson menoscostososquelosciclos
deun servidor.
Utilizar el cach el mximo posible:
Frecuentementeahorran considerable:
Tiempo decmputo.
Ancho debanda dela red.
Explotar las propiedades de uso:
Considerar la posibilidad de implantar tratamientos diferenciales para los ar-
chivos transitorios decorta vida y no compartidos.
Tener presentela dicultad dehabilitar diferentes vas para hacer lo mismo.
Considerar aspectos tales como eciencia y sencillez.
Minimizar el conocimiento y modicacin a lo largo del sistema:
11.12. TENDENCIAS EN LOS SISTEMAS DISTRIBUIDOS DE ARCHIVOS 347
Es importantepara lograr escalabilidad.
Generalmenteson tiles en estesentido los diseos jerrquicos.
Conar en el menor nmero posibledeentidades:
Setrata deun principio ya establecido en el mundo dela seguridad.
Crear lotes de trabajo mientras sea posible:
El uso del procesamiento por lotes puedecontribuir a un mejor desempeo.
11.12 Tendencias en los Sistemas Distribuidos de Archivos
Esprobablequeloscambiosen el hardwaretenganunefectomuyimportanteenlosfuturos
sistemas distribuidos dearchivos [25, Tanenbaum].
Tambin es probableel impacto del cambio en las expectativas del usuario.
11.13 Consideraciones Respecto del Hardware
El abaratamiento dela memoria principal permitir disponer deservidores con memorias
cada vez mayores [25, Tanenbaum]:
Se podra alojar directamente en memoria el sistema de archivos logrando mayor
sencillez y desempeo.
Se debera prever la obtencin de respaldos continuos o por incrementos ante la
posibilidad del corteen el suministro elctrico.
El respaldo podra hacerseen discos pticos regrabables quetengan una asociacin
uno a uno con la memoria:
El bytek dela memoria correspondera al bytek del disco.
La disponibilidad de redes de bra ptica de alta velocidad permitira esquemas tales
como:
Un servidor dearchivosen lamemoriaprincipal del servidor con respaldoen el disco
ptico.
Eliminacin del disco del servidor y del cachdel cliente.
Sesimplicara signicativamenteel software.
La posible construccin de interfaces de red especializadas que permitan resolver por
hardwareproblemas difciles desoportar por software:
Cadainterfaz dered tendraun mapadebitsconun bit por cadaarchivoenel cach.
Sepodran habilitar cerraduras por archivo.
Para modicar un archivo un procesador activarael bit correspondienteen la inter-
faz.
348 CAPTULO 11. SISTEMAS DISTRIBUIDOS DE ARCHIVOS
11.14 Escalabilidad
Una tendencia denida en los sistemas distribuidos es hacia los sistemas cada vez mas
grandes [25, Tanenbaum].
Lossistemasdistribuidosdearchivosqueoperanbienparacientosdemquinaspodran
fallar en algn aspecto trabajando con miles o decenas de miles de mquinas.
Generalmente los algoritmos centralizados no se escalan bien ya que el servidor cen-
tralizado podra convertirseen un cuello de botella; por ello sepodra separar el sistema
en unidades ms pequeas relativamenteindependientes entres.
Las transmisiones tambin son un rea problemtica:
Si cada mquina transmiteuna vez por segundo:
Con n mquinashabran transmisionesyn
2
interrupcionespor segundo.
Si n creceesto sepuedeconvertir en un problema.
En general los recursos y algoritmos no deben ser lineales con respecto al nmero de
usuarios.
11.15 Redes en un Area Amplia
Generalmentelossistemasdistribuidosseasocianconredesderea local (LAN), perocada
vez ser mayor la necesidad de conectarlos entre s cubriendo grandes reas (nacionales,
regionales, continentales, etc.) [25, Tanenbaum].
Los sistemas de archivos debern soportar estas necesidades teniendo presente la he-
terogeneidad delos equipos, cdigos derepresentacin (ASCI I, EBCDIC, etc.), formatos,
etc.
Deberatendersealos cambiosdetendencia en los requerimientos delas aplicaciones.
Un problema adicional einherenteen los sistemas distribuidos masivos es el ancho de
banda de la red, quepuederesultar insucientepara el desempeo esperado.
11.16 Usuarios Mviles
Los usuarios de equipos mviles (laptop, notebook, etc.) estn gran parte del tiempo
desconectados del sistema dearchivos desu organizacin [25, Tanenbaum]:
Requieren una solucin, quepodra usar ocultamiento:
Cuando est conectado el usuario carga al equipo mvil los archivos que cree
necesitar despus.
Los utiliza mientras est desconectado.
Al reconectarse, los archivos en el cachdeben fusionarsecon los existentes en
el rbol dedirectorios, logrando la sincronizacin.
Laconexinparalasincronizacinpuedeser problemticasi seutilizaunenlace
deancho debanda reducido.
11.17. TOLERANCIA DE FALLOS 349
Lodeseableseraun sistemadistribuidototalmentetransparenteparasuusosimultneo
por parte de millones de usuarios mviles que frecuentemente se desconecten.
11.17 Tolerancia de Fallos
La difusin delos sistemas distribuidos incrementa la demanda de sistemas que esencial-
mente nunca fallen [25, Tanenbaum].
Los sistemas tolerantes a fallos requerirn cada vez ms una considerableredundancia
en hardware, comunicaciones, software, datos, etc.
La rplica dearchivos sera un requisito esencial.
Tambin debera contemplarsela posibilidad dequelos sistemas funcionen an con la
carencia de parte de los datos.
Los tiempos de fallo aceptables por los usuarios sern cada vez menores.
350 CAPTULO 11. SISTEMAS DISTRIBUIDOS DE ARCHIVOS
Captulo 12
Rendimiento
12.1 I ntroduccin a la Medicin, Control y Evaluacin del
Rendimiento
Un sistema operativo es en primer lugar un administrador de recursos, por ello es impor-
tante poder determinar con qu efectividad administra sus recursos un sistema determi-
nado [7, Deitel].
Generalmente hay un gran potencial de mejora en el uso de los recursos existentes,
pero:
Muchas instalaciones realizan muy poco o ningn control y evaluacin.
Cuando se hacen controles especcos se generan grandes cantidades de datos que
muchas veces no sesabecmo interpretar.
Las instalaciones rara vez cuentan con personal versado en las tcnicas deanlisis de
rendimiento.
Durante los primeros aos del desarrollo de las computadoras el hardware represen-
taba el costo dominante de los sistemas y debido a ello los estudios de rendimiento se
concentraban en el hardware.
Actualmente y segn la tendencia apreciable:
El softwarerepresentaunaporcin cadavez mayor delospresupuestosinformticos.
El software incluye el S. O. de multiprogramacin / multiproceso, sistemas de co-
municaciones de datos, sistemas de administracin de bases de datos, sistemas de
apoyo a varias aplicaciones, etc.
El softwarefrecuentementeoculta el hardwareal usuario creando una mquina vir-
tual, queest denida por las caractersticas operativas del software.
Un softwaredecientey / o mal utilizado puedeser causa deun rendimiento pobredel
hardware, por lotantoesimportantecontrolar y evaluar el rendimiento del hardwarey del
software.
351
352 CAPTULO 12. RENDIMIENTO
12.2 Tendencias I mportantes queAfectan a los Aspectos del
Rendimiento
Con los avances en la tecnologa dehardware loscostosdel mismohan decrecido drstica-
mentey todo hacesuponer queesta tendencia continuar [7, Deitel].
Los costos detrabajo (personal) han ido aumentando:
Signican un porcentajeimportantedel costo delos sistemas informticos.
Sedebereformular el aspectodel rendimientodel hardwarebaseymedirlodemanera
ms adaptada a la productividad humana.
El advenimiento del microprocesador en la dcada de1.970:
Ha permitido bajar considerablementeel costo delos ciclos decpu.
Ha desplazado el foco de atencin de la evaluacin del rendimiento a otras reas
dondelos costos no disminuyeron proporcionalmente; ej.: utilizacin dedispositivos
deentrada / salida.
Tambin inuyen en los puntos devista sobrela evaluacin del rendimiento aspectos
tales como:
Construccin deredes.
Procesamiento distribuido.
Las conexiones sehacen con redes y no solo con computadoras especcas:
Sepuededisponer decientos o miles desistemas de computacin.
Sepuedeacceder a complejos sistemas de comunicaciones de datos [21, Stallings].
12.3 Necesidad del Control y de la Evaluacin del Rendi-
miento
Los objetivos corrientes en la evaluacin del rendimiento generalmenteson [7, Deitel]:
Evaluacin de seleccin:
El evaluador debe decidir si la adquisicin de un sistema de computacin es
apropiada.
Proyeccin del rendimiento:
El evaluador debeestimar el rendimiento deun:
Sistema inexistente.
Nuevo sistema.
12.4. MEDICIONES DEL RENDIMIENTO 353
Nuevo componentedehardwareo desoftware.
Control del rendimiento:
El evaluador acumula datos del rendimiento deun sistema o componenteexis-
tentepara:
Asegurar queel sistema cumplecon sus metas derendimiento.
Ayudar a estimar el impacto delos cambios planeados.
Proporcionar los datos necesarios para tomar decisiones estratgicas.
En las primeras fases del desarrollo deun nuevo sistema seintenta predecir:
La naturaleza delas aplicaciones quecorrern en el sistema.
Las cargas detrabajo quelas aplicaciones debern manejar.
Duranteel desarrollo e implementacin deun nuevo sistema seintenta determinar:
La mejor organizacin del hardware.
Las estrategias deadministracin derecursos quedebern implantarseen el S. O.
Si el sistema cumpleo no con sus objetivos derendimiento.
Frecuentementeson necesariosprocesos deconguracin delossistemasparaquepue-
dan servir a las necesidades.
Los procesos de sintonizacin del sistema tienden a mejorar el rendimiento en basea
ajustar el sistema a las caractersticas dela instalacin del usuario.
12.4 Mediciones del Rendimiento
El rendimiento expresa la manera o la eciencia con que un sistema de computacin
cumple sus metas [7, Deitel].
El rendimiento es una cantidad relativa ms que absoluta pero suele hablarse de me-
didas absolutas de rendimiento, ej.: nmero detrabajos atendidos por unidad detiempo.
Algunas mediciones son difciles de cuanticar, ej.: facilidad deuso.
Otras mediciones son fciles de cuanticar, ej.: accesos a un disco en la unidad de
tiempo.
Las mediciones de rendimiento pueden estar:
Orientadas hacia el usuario, ej.: tiempos derespuesta.
Orientadas hacia el sistema, ej.: utilizacin dela cpu.
Algunas mediciones del rendimiento comunes son:
Tiempo de regreso:
354 CAPTULO 12. RENDIMIENTO
Tiempo desdela entrega del trabajo hasta su regreso al usuario (para procesa-
miento por lotes).
Tiempo de respuesta:
Tiempo deregreso deun sistema interactivo.
Tiempo de reaccin del sistema:
Tiempodesdequeel usuariopresionaenter hastaquesedalaprimeraseccin
detiempo deservicio.
Las anteriores son cantidades probabilsticas y seconsideran como variables aleatorias
en los estudios de:
Simulacin.
Modelado desistemas.
Otras medidas del rendimiento utilizadas son:
Varianza de los tiempos de respuesta (o deotra delas variables aleatorias conside-
radas):
Es una medida dedispersin.
Si es pequea indica tiempos prximos a la media.
Si es grandeindica tiempos alejados dela media.
Es una medida dela predecibilidad.
Capacidad de ejecucin:
Es la medida dela ejecucin detrabajo por unidad detiempo.
Carga de trabajo:
Es la medida dela cantidad detrabajo que:
Ha sido introducida en el sistema.
El sistemadebeprocesar normalmenteparafuncionar demaneraaceptable.
Capacidad:
Es la medida de la capacidad de rendimiento mxima que un sistema puede
tener siempreque:
El sistema estlisto para aceptar ms trabajos.
Haya alguno inmediatamentedisponible.
Utilizacin:
12.5. TCNICAS DE EVALUACIN DEL RENDIMIENTO 355
Es la fraccin detiempo queun recurso est en uso.
Es deseableun gran porcentaje de utilizacin pero ste puedeser el resultado
deun uso ineciente.
Cuando seaplica a la cpu sedebedistinguir entre:
Uso en trabajos productivos deaplicacin.
Uso en sobrecarga del sistema.
12.5 Tcnicas de Evaluacin del Rendimiento
Tiempos
Lostiemposproporcionanlosmediospararealizar comparacionesrpidasdel hardware
[7, Deitel].
Una posibleunidad de medida es el mips: milln deinstrucciones por segundo.
Los tiempos se usan para comparaciones rpidas; se utilizan operaciones bsicas de
hardware.
Mezclas de instrucciones
Se usa un promedio ponderado devarios tiempos delas instrucciones ms apropiadas
para una aplicacin determinada; los equipos pueden ser comparados con mayor certeza
dela queproporcionan los tiempos por s solos.
Son tiles para comparaciones rpidas del hardware.
Programas del ncleo
Un programancleoesun programa tpico quepuedeser ejecutadoen unainstalacin.
Se utilizan los tiempos estimados que suministran los fabricantes para cada mquina
para calcular su tiempo deejecucin.
Se corre el programa tpico en las distintas mquinas para obtener su tiempo de eje-
cucin.
Pueden ser tiles para la evaluacin deciertos componentes del software, por ej. com-
piladores; pueden ayudar a determinar qucompilador genera el cdigo ms eciente.
Modelos analticos
Son representaciones matemticas de sistemas de computacin o de componentes de
sistemas decomputacin.
Generalmenteseutilizan los modelos de:
Teora de colas.
Procesos de Markov.
Requieren un gran nivel matemtico del evaluador y son conables solo en sistemas
sencillos, ya queen sistemas complejos los supuestos simplicadores pueden invalidar su
utilidad y aplicabilidad.
Puntos de referencia (o programas de comparacin del rendimiento)
Son programas reales queel evaluador ejecuta en la mquina queseest evaluando.
Generalmentees un programa de produccin:
Tpico demuchos trabajos dela instalacin.
356 CAPTULO 12. RENDIMIENTO
Queseejecuta con regularidad.
El programa completo seejecuta en la mquina real con datos reales.
Sedeben seleccionar cuidadosamentelos puntos dereferencia para quesean represen-
tativos delos trabajos dela instalacin.
Los efectos del softwarepueden experimentarsedirectamenteen vez deestimarse.
Programas sintticos
Combinan las tcnicas de los ncleos y los puntos de referencia.
Sonprogramasrealesdiseadosparaejercitar caractersticasespeccasdeunamqui-
na.
Simulacin
Esunatcnicacon lacual el evaluador desarrollaunmodelo computarizado del sistema
queseest evaluando.
Es posible preparar un modelo de un sistema inexistente y ejecutarlo para ver cmo
secomportara en ciertas circunstancias; sepuedeevitar la construccin desistemas mal
diseados.
Los simuladores son muy aplicados en las industrias espacial y detransportes.
Los simuladores pueden ser:
Manejados por eventos:
Soncontroladospor loseventosproducidosen el simulador segndistribuciones
probabilsticas.
Manejados por libreto:
Son controlados por datos obtenidos de forma emprica y manipulados cuida-
dosamentepara reejar el comportamiento anticipado del sistema simulado.
Control del rendimiento
Eslarecoleccin yanlisisdeinformacin relativaal rendimientodel sistemaexistente.
Permitelocalizar embotellamientos con rapidez.
Puedeayudar a decidir la forma demejorar el rendimiento.
Puede ser til para determinar la distribucin de trabajos de varios tipos; permitira
aconsejar el uso decompiladores optimizadores o compiladores rpidos y sucios.
El control del rendimiento puede hacerse por medio de tcnicas de hardware o de
software.
Los monitores de software:
Generalmenteson econmicos.
Pueden distorsionar laslecturasdel rendimientodebidoaqueconsumen recursosdel
sistema.
Los monitores de hardware:
Generalmenteson ms costosos.
12.6. EMBOTELLAMIENTOS Y SATURACIN 357
Su inuencia sobrela operacin del sistema es mnima.
Los monitores:
Producen grandes cantidades dedatos quedeben ser analizados manualmenteo por
sistema.
Indican con precisin cmo est funcionando un sistema.
Son de mucha ayuda para evaluar sistemas en desarrollo y tomar las decisiones de
diseo adecuadas.
Los rastreos de ejecucin de instrucciones (trace) o rastreos de ejecucin de mdulos
pueden revelar embotellamientos.
Un rastreo deejecucin de mdulos puedemostrar queseest ejecutando un pequeo
subconjunto demdulos durantegran partedel tiempo:
Los diseadores debern optimizarlos para mejorar en gran medida el rendimiento
del sistema.
Sepodra eliminar el costo deoptimizacin delos mdulos poco usados.
12.6 Embotellamientos y Saturacin
Los recursos administrados por los S. O. se acoplan e interactan demaneras complejas
para afectar al total dela operacin del sistema [7, Deitel].
Ciertosrecursos puedensufrir embotellamientos quelimitanel rendimientodel sistema:
No pueden realizar su partedel trabajo.
Otros recursos pueden estar con exceso decapacidad.
Un embotellamiento tiende a producirse en un recurso cuando el trco detrabajos o
procesos deeserecurso comienza a alcanzar su capacidad lmite:
El recurso seencuentra saturado.
Los procesos quecompiten por el recurso comienzan a interferirseunos a otros.
Ej.: problema dela hiperpaginacin:
Ocurrecuando el almacenamiento principal est lleno.
Los conjuntos detrabajo delos distintos procesos activos no pueden ser man-
tenidos simultneamenteen el almacenamiento principal.
Para detectar los embotellamientos se debe controlar cada cola de peticiones de los
recursos; cuandounacola crecerpidamentesignicaquelatasa dellegadas depeticiones
debesuperar a su tasa de servicio.
El aislamiento de los embotellamientos es una parte importante de la anacin de
la sintonizacin del sistema.
Los embotellamientos pueden eliminarse:
358 CAPTULO 12. RENDIMIENTO
Aumentando la capacidad delos recursos.
Aadiendo ms recursos desetipo en sepunto del sistema.
12.7 Ciclos de Retroalimentacin
El rendimiento deun S. O. puedeser sensibleal estado actual del sistema [7, Deitel].
Un ciclo de retroalimentacin es una situacin en la cual la informacin del estado
actual del sistema se pone a disposicin de las peticiones entrantes.
La ruta de las peticiones puede modicarse, si la retroalimentacin indica que puede
haber dicultad dedarles servicio.
Retroalimentacin negativa
La tasa dellegadas denuevas peticiones puededecrecer como resultado dela informa-
cin queseest retroalimentando.
Contribuyea la estabilidad delos sistemas decolas:
Impidequelas colas crezcan indenidamente.
Hacequela longitud delas colas semantenga cerca desus valores medios.
Retroalimentacin positiva
La informacin retroalimentada provoca un incremento en vez de un decremento de
algn parmetro.
Sedeben evitar situaciones similares a la siguiente:
El S. O. detecta capacidad disponibledecpu.
El S. O. informa al planicador de trabajos que admita ms trabajos en la mezcla
demultiprogramacin:
Con esto seincrementara el uso decpu.
Al incrementarsela mezcla demultiprogramacin:
Decrecela cantidad dememoria quesepuedeasignar a cada trabajo.
El nmero defallos depgina puedeincrementarse.
La utilizacin decpu puededecrecer.
Puedeproducir inestabilidades:
Debedisearsecon mucha prudencia.
Se deben controlar los efectos de cada cambio incremental para ver si resulta una
mejora anticipada.
Si un cambio incremental deteriora el rendimiento se podra estar operando en un
rango inestable.
Captulo 13
Modelado Analtico en Relacin al
Rendimiento
13.1 I ntroduccin al Modelado Analtico y Teora de Colas
Algunas delas tcnicas ms conocidas demodelado analtico son [7, Deitel]:
La teora decolas.
Los procesos deMarkov.
Los modelos analticos:
Son las representaciones matemticas delos sistemas.
Permitenal evaluador del rendimientosacar conclusionesacercadel comportamiento
del sistema.
Lasexpresiones teora decolas y teora delneas (o las) deespera deben considerarse
equivalentes [7, Deitel].
El trmino matemtico cola signica una lnea de espera.
Si no hubiera lneas deespera sepodra recibir servicio deinmediato:
Sera lo deseable.
El costo dedisponer dela sucientecapacidad deserviciopara no tener queesperar
sera muy elevado.
Seconsumecierta cantidad detiempo en lneas deespera por servicio pero:
El costo de ese servicio es menor debido a la mejor utilizacin de la instalacin de
servicio.
Si existeuna poblacin declientes quedemandan cierto servicio prestado por servido-
res:
359
360 CAPTULO 13. MODELADO ANALTICO EN RELACIN AL RENDIMIENTO
Algunos clientes ingresarn a la red de colas y esperarn que un servidor quede
disponible.
Algunas colas son:
Ilimitadas: pueden crecer tanto como sea necesario para contener a los clientes que
esperan.
Limitadas: solopueden contener un nmerojo declientes en esperay quizshasta
ninguno.
Sedeben tener en cuenta variables aleatorias quepueden ser descritaspor distribucio-
nes probabilsticas.
La variable aleatoria q representa el tiempo que emplea un cliente esperando en la
cola a ser servido.
La variable aleatoria s representa la cantidad de tiempo que emplea un cliente en
ser servido.
Lavariablealeatoriaw representael tiempo total queemplea un clienteen el sistema
de colas: w= q + s.
13.2 Fuente, Llegadas y Llegadas de Poisson
Fuente
Los clientes son proporcionados a un sistema decolas desdeuna fuente que puede ser
innita o nita [7, Deitel].
Con una fuente innita la cola deservicio puedellegar a ser arbitrariamente grande.
Para una fuente nita la cola deservicio es limitada, pero una fuentenita pero muy
grandesueleconsiderarsecomo innita.
Llegadas
Supondremos quelos clientes llegan a un sistema de colas en los tiempos:
t
0
<t
1
<t
2
<. . . <t
n
.
Los clientes llegan deuno en uno y nunca hay una colisin.
Lasvariablesaleatorias
k
midenlostiemposentrelasllegadassucesivas (arbitrario)
y sedenominan tiempos entre llegadas:
Son variables aleatorias independientes y estn idnticamente distribuidas:

k
=t
k
t
k 1
; con (k 1).
Llegadas de Poisson
Las llegadas pueden seguir distintos patrones arbitrarios pero suele suponerse que
forman un proceso de llegadas de Poisson:
Los tiempos entre llegadas estn distribuidos exponencialmente:
P( t) =1 e
t
:
13.3. SERVICIO, COLA Y SERVIDORES 361
La probabilidad de que lleguen exactamente n clientes en cualquier intervalo de
longitud t es:
( e
t
(t)
n
)=n!; con (n=0,1,2,. . . ).
es una tasa promedio de llegadas constante expresada en clientes por unidad de
tiempo.
El nmerodellegadas por unidaddetiempo sedicequetienedistribucin dePoisson
con una media .
13.3 Tiempos de Servicio, Capacidad de la Cola y Nmero
de Servidores en el Sistema
Tiempos de servicio
Sesuponequelos tiempos de servicio son aleatorios [7, Deitel].
s
k
es el tiempo deservicio queel k-simo cliente requieredel sistema.
Un tiempo deservicio arbitrario sedesigna por s.
La distribucin de los tiempos de servicio es:
W
s
(t) =P(s t).
Para un servicio aleatorio con una tasa promedio de servicio :
W
s
(t) =P(s t) =1 e
t
, con (t 0).
Capacidad de la cola
Las colas deben tener:
Capacidad innita:
Cada clientequelleguepuedeentrar en el sistema decolas y esperar, indepen-
dientementedecuntos clientes hay en espera [7, Deitel].
Capacidad cero (o sistemas de prdidas):
Losclientesquellegan cuandolainstalacindeservicioestocupadanopodrn
ser admitidos al sistema.
Capacidad positiva:
Los clientes quellegan solo esperan si hay lugar en la cola.
Nmero de servidores en el sistema
Los sistemas decolas sepueden categorizar segn el nmero deservidores en:
Sistemas de un solo servidor:
362 CAPTULO 13. MODELADO ANALTICO EN RELACIN AL RENDIMIENTO
Tienen un solo servidor y nada ms pueden darleservicio a un solo clientea la
vez.
Sistemas de servidores mltiples:
Tienen c servidorescon idnticacapacidad y pueden dar servicioac clien-
tes a la vez.
13.4 Disciplinas de Colas
Son las reglas usadas para elegir al siguienteclientedecolaqueva a ser servido [7, Deitel].
La ms conocida es la FCFS o primero en llegar, primero en ser servido.
Generalmenteseutilizan las siguientes notaciones:
Notacin Kendall.
Notacin Kendall abreviada.
Notacin Kendall (A/ B/ c/ K/ m/ Z):
A: distribucin detiempos entrellegadas.
B: distribucin detiempos deservicio.
c: nmero deservidores.
K: capacidad decola del sistema.
m: nmero declientes en la fuente.
Z: disciplina decola.
Notacin Kendall abreviada (A/ B/ c):
No hay lmiteen la longitud dela cola.
La fuentees innita.
La disciplina decola es FCFS.
A y B pueden ser:
GI: para tiempo entrellegadas general independiente.
G: para tiempo deservicio general.
E
k
: para las distribuciones detiempos entrellegadas o deservicio Erlang-k.
M: paralasdistribucionesdetiemposentrellegadasodeservicioexponenciales.
D: para las distribuciones detiempos entrellegadas o deservicio determinsti-
cos.
H
k
: para las distribuciones de tiempos entre llegadas o de servicio hiperexpo-
nenciales (con k estados).
13.5. INTENSIDAD DE TRFICO Y UTILIZACIN DEL SERVIDOR 363
13.5 I ntensidad de Trco y Utilizacin del Servidor
I ntensidad de trco
Es una medida de la capacidad del sistema para dar servicio efectivo a sus clientes
[7, Deitel].
Sedenecomolarazndelamedia del tiempodeservicio E(s) y lamedia del tiempo
entre llegadas E( ).
La intensidad de trco u es:
u =[E(s)]=[E()] =E(s) =(= ):
: tasa de llegadas.
: tasa de servicio.
Es til para determinar el nmero mnimo de servidores idnticos que necesitar un
sistema para dar servicio a sus clientes:
Sin quelas colas sehagan indenidamentelargas.
Sin tener querechazar clientes.
Ej.: si E(s) =17segundos y E( ) = 5segundos, u =17/ 5=3,4:
El sistema deber tener un mnimo de4servidores.
Sedebetener en cuenta que:
La tasa de llegadas delos clientes es un promedio:
Es posiblequeno llegueningn clienteduranteun largo tiempo.
Es posiblequelos clientes lleguen en rpida sucesin, excediendo la capacidad
fsica dela cola y ocasionando el rechazo declientes.
Si seutilizancolasdetamaojodebehaber capacidadsucienteparasoportar
excesos ocasionales dela tasa dellegadas.
Sepodran utilizar colas delongitud variablejunto con lista encadenada.
Utilizacin del servidor
Sedenecomo la intensidad de trco por servidor:
=u=c== c.
Es la probabilidad de que un servidor determinado se encuentre ocupado.
Segn laley delos grandes nmeros estaprobabilidad esaproximadamentela fraccin
de tiempo que cada servidor est en uso.
En sistemas deun solo servidor es igual a la intensidad de trco.
364 CAPTULO 13. MODELADO ANALTICO EN RELACIN AL RENDIMIENTO
13.6 Estado Estable en Funcin de Soluciones Transitorias
Los sistemas decolas quesehan asentado sedicequeestn operando en estado estable
[7, Deitel].
Generalmentelaoperacin inicial deun sistemanoesindicativadesucomportamiento
peridico.
Lossistemasdecolasdebenpasar por algnperodoinicial deoperacin antesdetener
un funcionamiento:
Uniforme.
Predecible.
La solucin y estudio de un sistema de colas se simplica mucho si se sabe que se
encuentra en estado estable:
Ciertos parmetros importantes permanecen jos.
Resulta relativamentefcil categorizar la operacin del sistema.
Las soluciones transitorias o dependientes del tiempo:
Son mucho ms complejas.
Estn fuera del alcancedeestecurso.
13.7 Resultado de Little
Es una de las mediciones ms sencillas y tiles del rendimiento de un sistema de colas
[7, Deitel].
Relaciona las siguientes cantidades:
W
q
: tiempo medio queemplea un cliente en una cola.
: tasa de llegadas.
L
q
: nmero declientes en la cola.
W: tiempo medio queemplea un cliente en el sistema.
L: nmero declientes en el sistema.
El resultado de Little seexpresa como:
L
q
=W
q
L =W
13.8. RESUMEN DEL PROCESO DE POISSON 365
13.8 Resumen del Proceso de Poisson
Se dene P(k,t) como la probabilidad de exactamente k llegadas en un intervalo de
tiempo de longitud t [7, Deitel].
Un proceso es de Poisson si y solo si:
Para intervalos apropiadamentepequeos t:
P(k,t) =
t para k =1( es la tasa promedio de llegadas).
1 t para k =0.
0para k >1.
Cualesquiera eventos denidos para tener lugar en intervalos de tiempo no super-
puestos son mutuamente independientes.
Un procesotambin esdePoisson si lostiemposentrellegadassucesivas(tiempos entre
llegadas de primer orden):
Son variables aleatorias exponenciales.
Idnticamentedistribuidas.
Si la variablealeatoria k indica el nmero dellegadas:
La probabilidad de, exactamente, k llegadas en un intervalo de longitud t es:
P(k;t) =[(t)
k
e
t
]=k!; t 0; k =0;1;2;:::
El valor esperado o valor medio dek es:
E(k) = t.
La varianza dek es:
(
k
)
2
=t.
La suma de dos variables de Poisson aleatorias independientes x e y tambin
describen un proceso de Poisson:
Los valores esperados son:
E(y) =
2
=
2
t.
E(x) =
1
=
1
t:
La probabilidad de k llegadas en el tiempo t es:
P(k;t) =[(
1
+
2
)
k
e
(1t+2t)
]=k!; t 0; k =0;1;2;:::
366 CAPTULO 13. MODELADO ANALTICO EN RELACIN AL RENDIMIENTO
P(k;t) =[(
1
+
2
)
k
e
(
1
+
2
)
]=k!:
P(k;t) =[(
s
k
e

s
]=k!;
s
=
1
+
2
:
P(k;t) =[(
s
t)
k
e
s t
]=k!;
s
=
1
+
2
La suma den procesos de Poisson independientes resulta en un proceso de Poisson
con una tasa de llegada:
=
P
n
i =1

i
Para un proceso de Poisson con una tasa de llegada se puede formar un nuevo
proceso de Poisson utilizando borradas aleatorias independientes:
Cada llegada al proceso original:
Seacepta al nuevo proceso con probabilidad P.
Serechaza con probabilidad 1 - P.
La tasa de llegada del nuevo proceso derivado es P [7, Deitel].
La generalizacin para la descomposicin de un proceso de Poisson en n procesos
derivados independientes, cada uno con una probabilidad asociada p
i
resulta:

n
=p
n
:
P
n
i =1
p
i
=1:
P
n
i =1

i
=
P
n
i =1
p
i
=
P
n
i =1
p
i
=:
En un proceso de Poisson:
La probabilidad de que no haya llegadas en un intervalo de longitud t es:
P(0;t) =[(t)
0
e
t
]=0! =e
t
:
La probabilidad de una o ms llegadas en un intervalo de longitud t es:
1 P(0;t) =1 e
t
:
La funcin de densidad de probabilidad para el tiempo entre llegadas de primer orden
(tiempo hasta la primer llegada) es:
f
t
(t) =e
t
; (t 0):
El valor esperado t es:
E(t) =1=:
La varianza es:
13.9. ANLISIS DE UN SISTEMA DE COLAS M/ M/ 1 367

2
t
=1=
2
:
Lafuncin de densidad deprobabilidad para el tiempo entrellegadas deorden r-simo
(tiempo hasta la r-sima llegada) es:
f
t
(t) =(
r
t
r 1
e
t
)=(r 1)!; (t 0; r =1;2;:::):
El valor esperado t es:
E(t) =r=:
La desviacin estndar es:

2
t
=r=
2
:
Las instalaciones deservicio pueden proporcionar tiempos de servicio exponenciales:
La probabilidad de que el tiempo de servicio sea menor o igual a t es:
P(S t) =1 e
t
; (t 0):
La tasa promedio de servicio es .
El tiempo promedio de servicio es 1 / .
La funcin de densidad de probabilidad para el tiempo de servicio t es:
f
t
(t) = e
t
; (t 0):
La media del tiempo de servicio es:
E(s) =1= :
La varianza es 1=
2
.
Un servidor queopera deesta manera sedenomina servidor exponencial.
13.9 Anlisis de un Sistema de Colas M/ M/ 1
Las frmulas de estado para el sistema de colas M/ M/ c son las siguientes [7, Deitel]:
I ntensidad de trco:
u == =E(s):
Utilizacin del servidor:
=u=c:
368 CAPTULO 13. MODELADO ANALTICO EN RELACIN AL RENDIMIENTO
Probabilidad dequetodos los servidores estn en uso, por lo queun clientequellega
debeesperar:
C(c; u) =

[(u
c
)=c!]
[(u
c
)=c!]+(1 )[
P
c 1
n=0
[u
n
=n!]]

Tiempo promedio en la cola:


W
q
=
C(c;u)E (s)
c(1 )
Tiempo promedio en el sistema:
W =W
q
+E(s):
Percentil 90 de tiempo de espera en la cola:

q
(90) =f [E(s)]=[c(c )]gf ln[10C(c;u)]g:
Las frmulas de estado para el sistema de colas M/ M/ 1 son las siguientes:
Sededucen delas anteriores:
C(c; u) ==E(s):
W
q
=[E(s)]=(1 ):
W =E(s)=(1 ):

q
(90) =W[ln(10)]:
Seguidamentesedetalla un ejemplo para el anlisis:
Los operadores deuna empresa precisan usar un equipo especial.
La empresa opera las 24hs. del da.
Los 48operadores (como promedio) necesitan usar el equipo una vez al da.
Los operadores llegan al equipo en forma aleatoria (llegadas dePoisson).
El tiempo quecada operador utilizael equipo esexponencial y comopromedioesde
20minutos.
Utilizando un sistema de colas m/ m/ 1 para modelar el uso del equipo especial del
ejemplo seobtiene:
Utilizacin del equipo:
u =E(s) =(48=24):(1=3) =2=3;=2=3; E(s) =20minutos.
Tiempo promedio de espera de un operador antes de usar el equipo:
W
q
=[E(s)]=(1 ) =[(2/ 3). 20] / (1/ 3) = 40minutos.
13.10. ANLISIS DE UN SISTEMA DE COLAS M/ M/ C 369
Tiempo total que un operador utiliza el equipo:
W =W
q
+ E(s) = 40min. + 20min. =60minutos.
Percentil 90 de tiempo de espera en la cola:

q
(90) =W[ln(10] =60ln (6,667) =113,826minutos:
Un 10 %de los operadores (unos 5 por da) sufre prolongadas esperas de
casi 2horas.
Segn el resultado de Little:
Tasa de llegada de operadores al equipo:
=48/ 24(60) = 1/ 30operadores por minuto.
Operadores en espera:
L
q
= (1/ 30) . 40=1,33operadores en espera.
Operadores en el sistema:
L =(1/ 30) . 60= 2operadores en el cuarto del equipo.
Conclusin:
Un solo equipo no es suciente para hacer frente a las necesidades delos operadores
sin provocar esperas excesivas.
13.10 Anlisis de un Sistema de Colas M/ M/ c
Seguidamente se detalla un ejemplo para el anlisis, que es el mismo del tema anterior
[7, Deitel]:
Si la decisin es adquirir ms equipos, los interrogantes son los siguientes:
Cuntos equipos adicionales debern adquirirsepara mantener el percentil 90
detiempo en espera por debajo de10minutos?.
Debern mantenerse todos los equipos en un lugar central, o debern distri-
buirsepor todo el edicio?:
(Nota: sedebeignorar el tiempoqueles lleva alos operadores llegar hasta
los equipos).
Colocando los equipos en diferentes lugares de la empresa:
Cada uno delos equipos sedebeanalizar como un sistema de colas M/ M/ 1.
370 CAPTULO 13. MODELADO ANALTICO EN RELACIN AL RENDIMIENTO
La carga detrabajo debedividirseen partes iguales entrelos equipos.
Colocando 1, 2, 3, 4 o 5 equipos en localidades separadas obtenemos los siguientes
valores:
Utilizacin del servidor:: 2/ 3; 1/ 3; 2/ 9; 1/ 6y 2/ 15.
Tiempo deespera deservicio: E(s): 20minutos en todos los casos.
Tiempo deespera en la cola: W
q
: 40; 10; 5,7; 4y 3,1minutos.
Tiempo deespera en el sistema: W: 60; 30; 25,7; 24y 23minutos.
Percentil 90detiempo deespera en la cola:
q
(90): 113,8; 36,1; 20,5; 12,3y 6,6
minutos.
Conclusiones:
Los tiempos deespera en la cola bajan muy rpido tan pronto como se aade
el segundo equipo M/ M/ 1.
El percentil 90 de tiempo de espera en la cola es superior a 10 minutos hasta
queseaadeel quinto equipo.
Colocando todos los equipos en un lugar central:
Seconsidera un sistema de colas M/ M/ 2 sencillo.
Utilizando las frmulas delos sistemas M/ M/ c seobtienen los siguientes valores:
Intensidad detrco: u: 2/ 3.
Utilizacin del servidor: : 1=3:
Probabilidad dequetodoslosservidoresseencuentren en estemomentoenuso,
por lo queun clientequellega debeesperar: C(c,u): 1/ 6.
Tiempo promedio en la cola: W
q
: 2,5minutos.
Tiempo promedio en el sistema: W: 22,5minutos.
Percentil 90detiempo deespera en la cola:
q
(90) : 7,66minutos.
Conclusiones:
El percentil 90detiempo deespera en la cola del sistema M/ M/ 2es inferior al
criterio de10minutos.
Con solo2equipos centralizados en unaposicin sepueden eliminar los proble-
mas deespera del sistema deun solo equipo.
Para asegurar un percentil 90 de tiempo de espera en la cola inferior a 10
minutos sern necesarios:
5equipos M/ M/ 1distribuidos, o.
2equipos en una conguracin M/ M/ 2central.
13.11. PROCESOS DE MARKOV 371
13.11 Procesos de Markov
UnprocesodeMarkovesun modeloadecuado paradescribir el comportamientodesistemas
donde el sistema est situado en uno de un conjunto de estados discretos mutuamente
excluyentes y colectivamente exhaustivos S
0
, S
1
, S
2
,...., S
n
[7, Deitel].
El estado presente del sistema y las probabilidades de transicin entre varios estados
del sistema, caracterizan el comportamiento futuro del sistema.
Dado que un proceso deMarkov se encuentra en un estado determinado, su compor-
tamiento futuro no depende de su historia anterior a su entrada a eseestado.
MuchosprocesosdeMarkov exhiben uncomportamiento deestado estable, esdecir que
lasprobabilidadesdequeel procesoseencuentreen un estadodeterminadoson constantes
en el tiempo.
Se dice que un estado S
j
es transitorio si desde un estado S
k
que puede ser
alcanzado desdeS
j
, el sistema no puederegresar a S
j
.
Sedicequeun estado S
j
es recurrente si desdecada estado S
k
alcanzabledesde
S
j
, el sistema puederegresar a S
k
.
Una cadena sencilla es unaseriedeestados recurrentes tal queel sistemapuedellegar
a cualquier estado dela cadena desdecualquier otro estado deesta.
Un cambio de estado en un proceso de Markov de transicin continua puedeproducir
cambios deestado en cualquier instantedeuna escala detiempo continua.
13.12 Procesos de Nacimiento y Muerte
Son un caso importantedelos procesos de Markov [7, Deitel].
Son particularmenteaplicables al modelado desistemas decomputacin.
Un proceso de Markov de nacimiento y muerte continuo tienela propiedad deque:

i j
= 0si j 6= i + 1 y j 6= i - 1.

i j
es la tasa a la cual ocurren las transiciones del estado S
i
al estado S
j
.

i (i +1)
= b
i
es la tasa promedio de nacimiento desdeel estado S
i
.

i (i 1)
= d
i
es la tasa promedio de muerte desdeel estado S
i
.
P
i
es la probabilidad deestado estable dequeel proceso seencuentreen el estado
S
i
.
En estado estable, en cualquier intervalo de tiempo aleatorio t, el proceso puede
realizar las siguientes transiciones con la misma probabilidad:
S
i
! S
i +1
con una probabilidad P
i
b
i
.
S
i +1
! S
i
con una probabilidad P
i +1
d
i +1
:
P
i
b
i
=P
i +1
d
i +1
.
La resolucin de un proceso de nacimiento y muerte continuo signica determinar los
diferentes P
i
usando las relaciones:
372 CAPTULO 13. MODELADO ANALTICO EN RELACIN AL RENDIMIENTO
P
i +1
= (b
i
/ d
i +1
) P
i
.
P
n
i =1
P
i
=1.
13.13 Anlisis del Rendimiento de un Subsistema de Disco
Sesuponela siguientesituacin [7, Deitel]:
Las peticiones de acceso a disco llegan como un proceso de Poisson con una tasa
promedio de " peticiones por minuto.
Si el disco est en uso, la peticin secoloca en una cola primero en llegar, primero
en ser servido.
Cuando el disco queda disponiblesesirvela primera peticin dela cola.
El tiempo deservicio es una variablealeatoria exponencialmentedistribuida con un
valor esperado de 1 / " minutos.
La tasa promedio de servicio es de " peticiones por minuto.
Sedebedeterminar, para cada uno delos casos:
El valor esperado para el nmero total depeticiones al disco pendientes (en la cola
o en servicio).
Las probabilidades del estado lmite.
Caso I :
El dispositivo dedisco contieneun solo brazo.
Solo puededar servicio a una peticin a la vez.
La tasa de servicio es .
Caso I I :
El dispositivo dedisco contienegran nmero debrazos mviles.
Cada brazo puededar servicio a una peticin dedisco a la misma tasa ".
Sesuponequeun nmero innito depeticiones pueden recibir servicio en paralelo.
Solucin al caso I
S
i
" es el estado del sistema cuando hay i peticiones de disco al dispositivo de
servicio dedisco.
La tasa de llegadas depeticiones es independientedel estado del sistema:
La probabilidad de la transicin S
i
" ! S
i +1
" en el siguienteintervalo detiempo
t es t.
13.13. ANLISIS DEL RENDIMIENTO DE UN SUBSISTEMA DE DISCO 373
Se considera al sistema como un proceso de nacimiento y muerte continuo de cadena
sencilla y estados innitos con:
d
i
=0 con i =0.
di = con i = 1, 2, 3, ...
bi = con i = 0, 1, 2, ...
Solo una peticin puedeser servida en un momento dado y sesirvea una tasa .
> :
Asegura que la longitud de la cola de peticiones en espera no crezca indeni-
damente.
Seutilizan las relaciones:
P
i +1
=(b
i
/ d
i +1
) P
i
; i =0, 1, 2, ...
P
i
P
i
=1.
P
1
= ( / ) P
0
.
P
2
= ( / ) P
1
=( / )
2
P
0
.
P
i
= ( / )
i
P
0
.
P
i
P
i
=1=
P
i
( / )
i
P
0
= 1/ [1- ( / )] P
0
.
P
0
=1- ( / ): probabilidad de que el sistema se encuentre ocioso.
P
i
= ( / )
i
P
0
= [1- ( / )] ( / )
i
. i = 0, 1, 2, ...
P
i
= [1- ( / )] ( / )
i
: probabilidad que hayan i peticiones pendientes.
El nmero promedio de peticiones pendientes es:
E(i) =
P
i
i P
i
=
P
i
i [1- ( / )] ( / )
i
=[1- ( / )]
P
i
i ( / )
i
=
E(i) = [1- ( / )] ( / )
P
i
i ( / )
i 1
=
E(i) = [1- ( / )] ( / ) {1/ [1- ( / )
2
]}=
E(i) =( / ) [1- ( / )
1
].
Solucin al caso I I
Con i peticiones siendo servidas:
La probabilidad de que una peticin en particular acabe siendo servida dentro del
siguiente t es t.
374 CAPTULO 13. MODELADO ANALTICO EN RELACIN AL RENDIMIENTO
Laprobabilidad dequeexactamenteuna peticin cualquiera acabe es i t (buena
aproximacin deprimer orden).
Cualquiera delas i peticiones puedeterminar y provocar un cambio de estado.
El sistema sevecomo un proceso denacimiento y muertecontinuo de cadena sencilla
y de estados innitos con:
b
i
= con i = 0, 1, 2, ...
d
i
= 0 con i = 0.
d
i
= i con i =1, 2, 3, ...
Ningn clientetienequeesperar ya quese suponen innitos servidores en paralelo.
Seutilizan las relaciones:
P
i +1
=(b
i
/ d
i +1
) P
i
; i = 0, 1, 2, ...
P
i
P
i
= 1.
P
1
=( / ) P
0
.
P
2
=( / 2 ) P
1
=(1/ 2) ( / )
2
P
0
.
P
3
=( / 3 ) P
2
=(1/ (3. 2)) ( / )
3
P
0
.
P
i
=(1/ i!) ( / )
i
P
0
.
P
i
P
i
= 1=
P
i
(1/ i!) ( / )
i
P
0
.
P
n
(x
n
/ n!) = e
x
.
P
i
P
i
= 1=
P
i
(1/ i!) ( / )
i
P
0
=e
=
P
0
.
P
0
= e
=
.
P
i
=( / )
i
[(e
=
) / i!].
E(i) =
P
i
iP
i
=
P
i
i ( / )
i
[(e
=
) / i!] = (e
=
)
P
i
i ( / )
i
(1/ i!) =
E(i) =(e
=
)
P
i
( / ) ( / )
i 1
[1/ (i - 1)!] =
E(i) =(e
=
) ( / )
P
i
[1/ (i - 1)!] ( / )
i 1
=
E(i) =(e
=
) ( / ) (e
=
) =
E(i) = ( / ).
Conclusiones:
En el sistema de un solo servidor, si una peticin que llega encuentra ocupado el
dispositivo dedisco, debeesperar.
13.13. ANLISIS DEL RENDIMIENTO DE UN SUBSISTEMA DE DISCO 375
En el sistema de servidores innitos, las peticiones que llegan siempre entran al
servicio deinmediato.
En el sistema deun solo servidor:
A medidaque tiendea laprobabilidaddequeel sistemaseencuentreocioso
decrecerpidamente:
Las peticiones quellegan esperan.
El nmero promedio depeticiones pendientes crececon rapidez.
En el sistema deservidores innitos:
El nmero promedio depeticiones pendientes tiendea 1.
376 CAPTULO 13. MODELADO ANALTICO EN RELACIN AL RENDIMIENTO
Captulo 14
Seguridad de los Sistemas
Operativos
14.1 I ntroduccin a la Seguridad delos Sistemas Operativos
Laevolucin delacomputacin y delas comunicacionesen lasltimasdcadas[7, Deitel]:
Ha hecho ms accesibles a los sistemas informticos.
Ha incrementado los riesgos vinculados a la seguridad.
La vulnerabilidad de las comunicaciones de datos es un aspecto clave de la seguridad
delos sistemas informticos; la importancia deesteaspecto es cada vez mayor en funcin
dela proliferacin delas redes de computadoras.
El nivel decriticidad y decondencialidad delos datos administradospor lossistemas
informticos es cada vez mayor:
Ej.: correo personal, transferencia defondos, control demanufactura, control desis-
temasdearmas, control detrcoareo, control deimplantes mdicos(marcapasos,
etc.).
Los sistemas deben funcionar ininterrumpidamentey sin problemas.
El sistema operativo, como administrador de los recursos del sistema:
Cumpleuna funcin muy importanteen la instrumentacin dela seguridad.
No engloba a todos los aspectos dela seguridad.
Debeser complementado con medidas externas al S. O.
La simple seguridad fsica resulta insuciente ante la posibilidad de acceso mediante
equipos remotos conectados.
La tendencia es quelos sistemas sean ms asequibles y fciles de usar, pero la favora-
bilidad hacia el usuario puedeimplicar un aumento de la vulnerabilidad.
Se deben identicar las amenazas potenciales, que pueden proceder de fuentes mali-
ciosas o no.
El nivel de seguridad a proporcionar depende del valor de los recursos que hay que
asegurar.
377
378 CAPTULO 14. SEGURIDAD DE LOS SISTEMAS OPERATIVOS
14.2 Requisitos de Seguridad
Los requisitos de seguridad deun sistema dado denen lo que signica la seguridad, para
esesistema [7, Deitel].
Los requisitos sirven debasepara determinar si el sistema implementado es seguro:
Sin una seriederequisitos precisos tienepoco sentido cuestionar la seguridad deun
sistema.
Si los requisitos estn dbilmente establecidos no dicen mucho sobre la verdadera
seguridad del sistema.
Algunos ejemplos de formulacin delos requisitos deseguridad son los siguientes:
Directiva DOD 5200.28 (EE. UU.):
Especica cmo debe manipularse la informacin clasicada en sistemas de
procesamiento dedatos.
Manual de Referencia de Tecnologa de Seguridad de la Computadora (EE. UU.):
Especica cmo evaluar la seguridad de los sistemas de computacin de la
Fuerza Area.
Ley de I ntimidad de 1974 (EE. UU.):
Requiere que las Agencias Federales aseguren la integridad y seguridad de la
informacin acerca de los individuos, especialmente en el contexto del amplio
uso delas computadoras.
14.3 Un Tratamiento Total de la Seguridad
Un tratamiento total incluyeaspectos dela seguridad del computador distintos a los dela
seguridad de los S. O. [7, Deitel].
La seguridad externa debe asegurar la instalacin computacional contra intrusos y
desastres como incendios einundaciones:
Concedido el acceso fsico el S. O. debe identicar al usuario antes de permitirle el
acceso a los recursos: seguridad de la interfaz del usuario.
La seguridad interna trata de los controles incorporados al hardware y al S. O. para
asegurar la conabilidad, operabilidad y la integridad delos programas y datos.
14.4. SEGURIDAD EXTERNA Y SEGURIDAD OPERACIONAL 379
14.4 Seguridad Externa y Seguridad Operacional
14.4.1 Seguridad Externa
La seguridad externa consisteen [7, Deitel]:
Seguridad fsica.
Seguridad operacional.
La seguridad fsica incluye:
Proteccin contra desastres.
Proteccin contra intrusos.
En la seguridad fsica son importantes los mecanismos de deteccin, algunos ejemplos
son:
Detectores dehumo.
Sensores decalor.
Detectores demovimiento.
La proteccin contra desastres puede ser costosa y frecuentemente no se analiza en
detalle; dependeen gran medida delas consecuencias dela prdida.
La seguridad fsica trata especialmentedeimpedir la entrada deintrusos:
Seutilizan sistemas deidenticacin fsica:
Tarjetas deidenticacin.
Sistemas dehuellas digitales.
Identicacin por medio dela voz.
14.4.2 Seguridad Operacional
Consisteen las diferentes polticas y procedimientos implementados por la administracin
dela instalacin computacional [7, Deitel].
La autorizacin determina quacceso sepermitey a quin.
La clasicacin divideel problema en subproblemas:
Los datos del sistema y los usuarios sedividen en clases:
A las clases seconceden diferentes derechos de acceso.
Un aspecto crtico es la seleccin y asignacin de personal:
La pregunta es si sepuedeconar en la gente.
380 CAPTULO 14. SEGURIDAD DE LOS SISTEMAS OPERATIVOS
El tratamiento quegeneralmenteseda al problema es la divisin de responsabilida-
des:
Seotorgan distintos conjuntos deresponsabilidades.
No es necesario que se conozca la totalidad del sistema para cumplir con esas
responsabilidades.
Para poder comprometer al sistema puede ser necesaria la cooperacin entre
muchas personas:
Sereducela probabilidad deviolar la seguridad.
Debeinstrumentarseun gran nmerodevericaciones y balances en el sistema
para ayudar a la deteccin debrechas en la seguridad.
El personal debeestar al tanto dequeel sistema disponedecontroles, pero:
Debedesconocer cules son esos controles:
Sereducela probabilidad depoder evitarlos.
Debeproducirseun efecto disuasivo respectodeposibles intentos deviolar
la seguridad.
Para disear medidas efectivas de seguridad sedebeprimero:
Enumerar y comprender las amenazas potenciales.
Denir qu grado de seguridad se desea (y cunto se est dispuesto a gastar en
seguridad).
Analizar las contramedidas disponibles.
14.5 Vigilancia, Vericacin de Amenazas y Amplicacin
14.5.1 Vigilancia
La vigilancia tienequever con [7, Deitel]:
La vericacin y la auditora del sistema.
La autenticacin delos usuarios.
Lossistemassosticadosdeautenticacin deusuarios resultan muy difcilesdeevitar
por partedelos intrusos.
Unproblemaexistenteseslaposibilidaddequeel sistemarechaceausuarioslegtimos:
Unsistemadereconocimientodevoz podrarechazar aunusuariolegtimoresfriado.
Un sistema dehuellas digitales podra rechazar a un usuario legtimo quetengauna
cortadura o una quemadura.
14.6. PROTECCIN POR CONTRASEA 381
14.5.2 Vericacin de Amenazas
Es una tcnica segn la cual los usuarios no pueden tener acceso directo a un recurso
[7, Deitel]:
Solo lo tienen las rutinas del S. O. llamadas programas de vigilancia.
El usuario solicita el acceso al S. O.
El S. O. niega o permiteel acceso.
El accesolohaceunprogramadevigilanciaqueluegopasalosresultadosal programa
del usuario.
Permite:
Detectar los intentos depenetracin en el momento en queseproducen.
Advertir en consecuencia.
14.5.3 Amplicacin
La amplicacin seproducecuando [7, Deitel]:
Un programa de vigilancia necesita para cumplir su cometido mayores derechos de
acceso delos quedisponen los usuarios:
Ej.: serequierecalcular un promedio paralo cual es necesarioleer un conjunto
deregistros a los queel usuario no tieneacceso individualmente.
14.6 Proteccin por Contrasea
Las clases de elementos de autenticacin para establecer la identidad de una persona
son [7, Deitel]:
Algo sobre la persona:
Ej.: huellas digitales, registro dela voz, fotografa, rma, etc.
Algo posedo por la persona:
Ej.: insignias especiales, tarjetas deidenticacin, llaves, etc.
Algo conocido por la persona:
Ej.: contraseas, combinaciones decerraduras, etc.
El esquema ms comn deautenticacin es la proteccin por contrasea:
El usuario elige una palabra clave, la memoriza, la teclea para ser admitido en el
sistema computarizado:
382 CAPTULO 14. SEGURIDAD DE LOS SISTEMAS OPERATIVOS
La claveno debedesplegarseen pantalla ni aparecer impresa.
La proteccin por contraseas tieneciertas desventajas si no seutilizan criterios ade-
cuados para:
Elegir las contraseas.
Comunicarlas fehacientementeen caso dequesea necesario.
Destruir las contraseas luego dequehan sido comunicadas.
Modicarlas luego dealgn tiempo.
Los usuarios tienden a elegir contraseas fciles de recordar:
Nombredeun amigo, pariente, perro, gato, etc.
Nmero dedocumento, domicilio, patentedel auto, etc.
Estos datos podran ser conocidos por quien intenteuna violacin a la seguridad me-
diante intentos repetidos, por lo tanto debe limitarse la cantidad de intentos fallidos de
acierto para el ingreso dela contrasea.
La contrasea no debeser muy corta para no facilitar la probabilidad deacierto.
Tampoco debe ser muy larga para que no se diculte su memorizacin, ya que los
usuarios la anotaran por miedo a no recordarla y ello incrementara los riesgos de que
trascienda.
14.7 Auditora y Controles de Acceso
14.7.1 Auditora
La auditora suelerealizarsea posteriori en sistemas manuales [7, Deitel], es decir quese
examinan lasrecientes transacciones deuna organizacin paradeterminar si huboilcitos.
La auditora en un sistema informtico puede implicar un procesamiento inmediato,
pues severican las transacciones queseacaban deproducir.
Un registro de auditora es un registro permanente de acontecimientos importantes
acaecidos en el sistema informtico:
Serealiza automticamentecada vez queocurretal evento.
Sealmacena en un rea altamenteprotegida del sistema.
Es un mecanismo importantededeteccin.
El registro deauditora debeser revisado cuidadosamentey con frecuencia:
Las revisiones deben hacerse:
Peridicamente:
Sepresta atencin regularmentea los problemas deseguridad.
Al azar:
Seintenta atrapar a los intrusos desprevenidos.
14.8. NCLEOS DE SEGURIDAD Y SEGURIDAD POR HARDWARE 383
14.7.2 Controles de Acceso
Lo fundamental para la seguridad interna es controlar el acceso a los datos almacenados
[7, Deitel].
Los derechos de acceso denen qu acceso tienen varios sujetos o varios objetos.
Los sujetos acceden a los objetos.
Los objetos son entidades quecontienen informacin.
Los objetos pueden ser:
Concretos:
Ej.: discos, cintas, procesadores, almacenamiento, etc.
Abstractos:
Ej.: estructuras dedatos, deprocesos, etc.
Los objetos estn protegidos contra los sujetos.
Las autorizaciones a un sistema seconceden a los sujetos.
Los sujetos pueden ser varios tipos deentidades:
Ej.: usuarios, procesos, programas, otras entidades, etc.
Los derechos de acceso ms comunes son:
Acceso delectura.
Acceso deescritura.
Acceso deejecucin.
Una forma deimplementacin es medianteuna matriz de control de acceso con:
Filas para los sujetos.
Columnas para los objetos.
Celdas dela matriz para los derechos deacceso queun usuario tienea un objeto.
Una matriz decontrol deacceso debeser muy celosamenteprotegida por el S. O.
14.8 Ncleos de Seguridad y Seguridad por Hardware
14.8.1 Ncleos de Seguridad
Es mucho ms fcil hacer un sistema ms seguro si la seguridad se ha incorporado desde
el principio al diseo del sistema [7, Deitel].
Las medidas de seguridad deben ser implementadas en todo el sistema informtico.
Un sistema dealta seguridad requierequeel ncleo del S. O. sea seguro.
384 CAPTULO 14. SEGURIDAD DE LOS SISTEMAS OPERATIVOS
Las medidas deseguridad ms decisivas seimplementan en el ncleo, quesemantiene
intencionalmentelo ms pequeo posible.
Generalmente seda que aislando las funciones quedeben ser aseguradas en un S. O.
depropsito general a gran escala, secrea un ncleo grande.
Laseguridaddel sistema dependeespecialmentedeasegurar las funcionesquerealizan:
El control deacceso.
La entrada al sistema.
La vericacin.
Laadministracindel almacenamientoreal, del almacenamientovirtual ydel sistema
dearchivos.
14.8.2 Seguridad por Hardware
Existeuna tendencia a incorporar al hardware funciones del S. O. [7, Deitel]:
Las funciones incorporadas al hardware:
Resultan mucho ms seguras quecuando son asequibles como instrucciones de
softwarequepueden ser modicadas.
Pueden operar mucho ms rpido queen el software:
Mejorando la performance.
Permitiendo controles ms frecuentes.
14.9 Sistemas Supervivientes
El diseo desistemas de alta seguridad debeasegurar [7, Deitel]:
Su operacin demanera continua y conable.
Su disponibilidad.
Un sistema decomputacin superviviente es aquel quecontina operando an despus
de que uno o ms de sus componentes falla:
Es una cuestin cada vez ms importante, especialmentepara sistemas en lnea.
Generalmente continan operando con una degradacin suave en los niveles de pres-
tacin.
Loscomponentes fallidosdeben poder reemplazarsesin interrumpir el funcionamiento
del sistema.
Una clavepara la capacidad desupervivencia es la redundancia:
Si un componentefalla, otro equivalentetoma su puesto.
14.10. CAPACIDADES Y SISTEMAS ORIENTADOS HACIA EL OBJ ETO 385
Sepuedeimplementar como:
Un conjunto derecursos idnticos quefuncionan en paralelo.
Unconjuntoseparadoderecursosredundantesqueseactivancuandoseproduce
un fallo.
Algunas caractersticas de supervivencia son:
Laincorporacindemecanismoscontrafallosen el hardwareenvezdeenel software.
El uso demultiprocesamiento transparente para permitir mejorar el rendimiento sin
modicar el software.
El uso desubsistemas mltiples deentrada / salida.
La incorporacin demecanismos de deteccin de fallos en el hardwarey en el soft-
ware.
14.10 Capacidades y Sistemas Orientados Hacia el Objeto
Un derecho deacceso permitea algn sujeto acceder a algn objeto deuna manera prees-
tablecida [7, Deitel].
Los sujetos son los usuarios de los sistemas de computacin o entidades que actan
en nombre:
Delos usuarios.
Del sistema.
Ej.: trabajos, procesos y procedimientos, etc.
Los objetos son los recursos del sistema:
Ej.: archivos, programas, semforos, directorios, terminales, canales, dispositivos,
pistas dediscos, bloques dealmacenamiento primario, etc.
Los sujetos se consideran tambin como objetos del sistema y un sujeto puede tener
derechos de acceder a otro.
Los sujetos son entidades activas y los objetos son pasivos.
Una capacidad es una seal:
La posesin de una capacidad por un sujeto le conere derechos de acceso a un
objeto.
Las capacidades no suelen ser modicadas pero suelen ser reproducidas.
Un dominio de proteccin dene los derechos de acceso que un sujeto tiene a los
distintos objetos del sistema:
Es el conjunto de capacidades quepertenecen al sujeto.
386 CAPTULO 14. SEGURIDAD DE LOS SISTEMAS OPERATIVOS
Una capacidad es un nombre protegido para un objeto del sistema:
El nombrees nico en todo el sistema.
Para tener acceso a un objeto determinado, un sujeto debe poseer una capacidad
para hacerlo.
La capacidad incluye una instruccin de los derechos de acceso determinados que la
capacidad lepermiteal sujeto respecto del objeto correspondiente.
La creacin de capacidades es una funcin de rutinas de los S. O. cuidadosamente
guardadas.
Lo normal es que las capacidades no pueden ser modicadas salvo para reducir los
derechos deacceso establecidos.
Un sujeto con una capacidad puedecopiarla o pasarla como un parmetro.
Luego dela creacin deun objeto secrea una capacidad para eseobjeto, queincluye
todos los derechos deacceso al nuevo objeto.
El sujeto quecrea la capacidad puedepasar copias dela capacidad a otros sujetos:
La pueden usar o copiarla a otros sujetos:
Sin variantes.
Reduciendo (nunca incrementando) los derechos deacceso establecidos.
Si sehanintegradocapacidadesen el hardwarededireccionamientodel almacenamiento
primario:
Selas utiliza en cada referencia al mismo.
Tenemos un direccionamiento basado en la capacidad.
En sistemas basados en capacidadessepuedepresentar el problema del objeto perdido:
Si sedestruyelaltima capacidad restantedeun objeto, steno podr ser usadode
ninguna manera.
El sistema debemantener siempreal menos una capacidad para cada objeto.
El control del copiado y movimiento de las capacidades es un problema difcil ; gene-
ralmenteel S. O. realiza la manipulacin decapacidades en nombredelos usuarios.
La revocacin de las capacidades pasadas a otro sujeto tambin puedecomplicarse:
La capacidad pudo haber sido copiada muchas veces.
Podra ser necesario revocar la capacidad:
Deun sujeto determinado.
Decualquier otro sujeto quehubiera recibido del esa capacidad.
Una tcnica para la revocacin selectiva de las capacidades es la siguiente:
Todas las capacidades creadas a partir deuna principal, apuntan al objeto a travs
dela capacidad principal.
14.11. CRIPTOGRAFA 387
14.11 Criptografa
El uso creciente de las redes de computadoras y la importancia del traco cursado hace
necesario proteger a los datos [7, Deitel].
LaOcinaNacional deEstndaresdeEE. UU. (NBS) haadoptadolanorma decifrado
de datos (DES) para la transmisin de informacin federal delicada.
La criptografa es el uso de la transformacin de datos para hacerlos incomprensibles
a todos, excepto a los usuarios a quienes estn destinados.
El problema dela intimidad trata decmo evitar la obtencin no autorizada deinfor-
macin deun canal decomunicaciones.
El problema de la autenticacin trata sobrecmo evitar queun oponente:
Modiqueuna transmisin.
Leintroduzca datos falsos.
El problema de la disputa trata sobre cmo proporcionar al receptor de un mensaje
pruebas legales dela identidad del remitente, queseran el equivalenteelectrnico deuna
rma escrita.
Un Sistema de I ntimidad Criptogrca
El remitente desea transmitir cierto mensaje no cifrado (texto simple) a un receptor
legtimo:
La transmisin seproducir a travs deun canal inseguro:
Sesuponequepodr ser vericado o conectado medianteun espa.
El remitente pasa el texto simple a una unidad de codicacin que lo transforma en
un texto cifrado o criptograma:
No es comprensiblepara el espa.
Setransmiteen forma segura por un canal inseguro.
El receptor pasael textocifradopor unaunidaddedescifrado pararegenerar el texto
simple.
Criptoanlisis
Es el proceso de intentar regenerar el texto simple a partir del texto cifrado, pero
desconociendo la clave de ciframiento:
Es la tarea del espa o criptoanalista:
Si no lo logra, el sistema criptogrco es seguro.
Sistemas de Clave Pblica
La distribucin de claves de un sistema criptogrco debe hacerse por canales muy
seguros.
Los sistemas de clave pblica rodean el problema dedistribucin declaves:
388 CAPTULO 14. SEGURIDAD DE LOS SISTEMAS OPERATIVOS
Las funciones de cifrado y descifrado estn separadas y utilizan distintas claves.
No es computacionalmente posible (en un tiempo razonable) determinar la clave
de desciframiento D a partir dela clave de ciframiento C.
C puede hacerse pblica sin comprometer la seguridad de D, que permanece
privada:
Sesimplica el problema dela distribucin declaves.
Firmas Digitales
Para queuna rma digital sea aceptada como sustituta deuna rma escrita debeser:
Fcil deautenticar (reconocer) por cualquiera.
Produciblenicamentepor su autor.
En los criptosistemas de clave pblica el procedimiento es:
El remitente usa la clave privada para crear un mensaje rmado.
El receptor:
Usa la clave pblica del remitentepara descifrar el mensaje.
Guarda el mensajermado para usarlo en caso dedisputas.
Para mayor seguridad sepodra actuar como sigue:
El remitente puede codicar el mensaje ya cifrado utilizando la clave pblica del
receptor.
La clave privada del receptor permiterecuperar el mensaje cifrado rmado.
La clave pblica del remitente permiterecuperar el texto simple original.
Aplicaciones
La criptografa es especialmente til en los sistemas multiusuario y en las redes de
computadoras.
Sedebeutilizar para proteger a las contraseas, almacenndolas cifradas.
Sepuedeutilizar tambin para proteger todos los datos almacenados en un sistema de
computacin; sedebeconsiderar el tiempo decifrado / descifrado.
Tambin es aplicableen los protocolos de redes de capas, queofrecen varios niveles de
cifrado.
En el cifrado deenlace lared asumelaresponsabilidad decifrado / descifradodecada
nodo:
Los datos setransmiten cifrados entrelos nodos.
Encadanodosedescifran, sedeterminaadndetransmitirlosy selosvuelveacifrar.
14.12. PENETRACIN AL SISTEMA OPERATIVO 389
En el cifrado punto a punto un mensajesecifraen su fuentey sedescifrasolounavez,
en su destino:
Existen ciertas limitaciones tales como la legibilidad de la direccin de destino en
cada nodo:
Debeser legiblepara el encaminamiento del mensaje.
Ej.: sistemas de conmutacin de paquetes de almacenamiento y reenvo con
cifradopuntoapunto; enestecasoladireccin dedestino asociadaaunpaquete
no puede ser cifrada.
14.12 Penetracin al Sistema Operativo
La penetracin denitiva puede consistir en cambiar el bit de estado de la mquina del
estado problema al estado supervisor; el intruso podr as ejecutar instrucciones privile-
giadas para obtener acceso a los recursos protegidos por el S. O. [7, Deitel].
Los estudios de penetracin estn diseados para:
Determinar si lasdefensas deun sistemacontraataquesdeusuarios noprivilegiados
son adecuadas.
Descubrir deciencias dediseo para corregirlas.
El control de entrada / salida es un rea favorita para intentar la penetracin a un
sistema, ya quelos canales deentrada / salida tienen acceso al almacenamiento primario
y por consiguientepueden modicar informacin importante.
Una delas metas delas pruebas depenetracin consisteen estimar el factor detrabajo
de penetracin:
Indicacin decunto esfuerzo y recursos son necesarios para conseguir un acceso no
autorizado a los recursos del sistema:
Debera ser tan grandequeresultedisuasivo.
14.12.1 Principales Fallos Genricos Funcionales de los Sistemas
Los principales fallos genricos funcionales delos sistemas son los siguientes [7, Deitel]:
Autenticacin:
Los usuarios no pueden determinar si el hardware y el software con que funcionan
son los quedeben ser.
Un intruso podra reemplazar un programa sin conocimiento del usuario.
Un usuario puede inadvertidamente teclear una contrasea en un programa de en-
trada falso.
Cifrado:
390 CAPTULO 14. SEGURIDAD DE LOS SISTEMAS OPERATIVOS
No sealmacena cifrada la lista maestra decontraseas.
Implementacin:
Implementacin improcedentedeun buen diseo deseguridad.
Conanza implcita:
Una rutina suponequeotra est funcionando correctamentecuando, de hecho, de-
bera examinar los parmetros suministrados por la otra rutina.
Compartimiento implcito:
El S. O. depositainadvertidamenteinformacinimportantedel sistemaenunespacio
dedirecciones del usuario.
Comunicacin entre procesos:
Usos inadecuados delos mecanismosdesend / receive quepueden ser aprovechados
por los intrusos.
Vericacin de la legalidad:
Validacin insucientedelos parmetros del usuario.
Desconexin de lnea:
Anteuna desconexin delnea el S. O. debera:
Dar debaja al usuario (o los usuarios) dela lnea.
Colocarlos en un estado tal que requieran la re - autorizacin para obtener
nuevamenteel control.
Descuido del operador:
Un intruso podra engaar a un operador y hacer que le habilite determinados re-
cursos.
Paso de parmetros por referencia en funcin de su valor:
Esmsseguropasar los parmetros directamenteen registrosquetener losregistros
apuntando a las reas quecontienen los parmetros.
El pasopor referenciapuedepermitir quelosparmetros, estandoan en el readel
usuario, puedan ser modicados antes deser usados por el sistema.
Contraseas:
No deben ser fcilmentededucibles u obtenibles medianteensayos repetidos.
14.12. PENETRACIN AL SISTEMA OPERATIVO 391
Entrampamiento al intruso:
Los S. O. deben tener mecanismos de entrampamiento para atraer al intruso inex-
perto.
Privilegio:
Cuando hay demasiados programas con demasiados privilegios se viola el principio
del menor privilegio.
Connamiento del programa:
Un programaprestado deotrousuariopuedeactuar comoun Caballo deTroya.
Prohibiciones:
Se advierte a los usuarios que no utilicen ciertas opciones porque los resultados
podran ser indeterminados, pero no sebloquea su uso, con lo quepuederobar o
alterar datos.
Residuos:
Un intrusopodraencontrar unalistadecontraseascon solobuscar en lugarestales
como una papelera:
Del sistema o fsica.
La informacin delicada debe ser sobrescrita o destruida antes de liberar o
descartar el medio queocupa.
Blindaje:
Los intrusos pueden conectarsea una lnea detransmisin sin hacer contacto fsico:
Utilizan el campo inducido por la circulacin decorrienteen un cable.
Seprevienecon un adecuado blindajeelctrico.
Valores de umbral:
Si no sedisponedevalores umbral, no habr:
Lmites al nmero deintentos fallidos deingreso.
Bloqueos a nuevos intentos.
Comunicaciones al supervisor o administrador del sistema.
392 CAPTULO 14. SEGURIDAD DE LOS SISTEMAS OPERATIVOS
14.12.2 Ataques Genricos a Sistemas Operativos
Los principales ataques genricos a los S. O. son los siguientes [7, Deitel]:
Asincronismo:
Setienen procesos mltiples queprogresan asincrnicamente.
Un proceso podra modicar los parmetros ya validados por otro proceso pero an
no utilizados.
Un proceso podra pasar valores malos a otro an cuando el segundo realice una
vericacin extensa.
Rastreo:
Un usuario revisa el sistema intentando localizar informacin privilegiada.
Entre lneas:
Seutilizaunalneadecomunicacionesmantenidapor un usuariohabilitadoqueest
inactivo.
Cdigo clandestino:
Se modica el S. O. bajo una presunta depuracin pero se incorpora cdigo que
permiteingresos no autorizados.
Prohibicin de acceso:
Un usuario escribe un programa que bloquea el acceso o servicio a los usuarios
legtimos mediante:
Cadas del sistema, ciclos innitos, monopolio derecursos, etc.
Procesos sincronizados interactivos:
Se utilizan las primitivas de sincronizacin del sistema para compartir y pasarse
informacin entres.
Desconexin de lnea:
El intruso intenta acceder al trabajo deun usuario desconectado:
Luego deuna desconexin delnea.
Antes dequeel sistema reconozca la desconexin.
Disfraz:
El intruso asume la identidad de un usuario legtimo luego de haber obtenido la
identicacin apropiada por medios clandestinos.
14.12. PENETRACIN AL SISTEMA OPERATIVO 393
Ataque nak:
Si el S. O. permitea un usuario:
Interrumpir un proceso en ejecucin mediante una tecla dereconocimiento
negativo.
Realizar otra operacin.
Reanudar el proceso interrumpido.
Un intruso podra encontrar al sistema en un estado no protegido y hacerse con
el control.
Engao al operador:
Con un engaosehacerealizar al operador unaaccin quecomprometalaseguridad
del sistema.
Parsito:
Medianteequipamiento especial el intruso:
Intercepta los mensajes entreun usuario habilitado y el procesador.
Los modica o reemplaza totalmente.
Caballo de Troya:
El intruso coloca un cdigo dentro del sistema que luego le permita accesos no
autorizados.
Puedepermanecer en el sistema.
Puedeborrar todo rastro des mismo luego dela penetracin.
Parmetros inesperados:
El intruso suministra valores inesperados a una llamada al ncleo.
Intenta aprovechar una debilidad de los mecanismos de vericacin de la legalidad
del S. O.
394 CAPTULO 14. SEGURIDAD DE LOS SISTEMAS OPERATIVOS
Parte I I I
Casos de Estudio
395
Captulo 15
Algoritmos de Planicacin del
Procesador con P.O.O.
15.1 I ntroduccin
Una de las muchas y muy variadas posibles aplicaciones de la P.O.O. (programacin
orientada a objetos) [2, J oyanes] est en el desarrollo de algoritmos que implementen
estrategias de administracin de recursos por partedel Sistema Operativo.
Como partedelas estrategias antes mencionadas, podemos considerar las deadminis-
tracin o asignacin del procesador, esdecir aqullassegn lascualeslosS. O. seleccionan
a cul de los procesos listos para ser ejecutados en ejecucin concurrente, leasignarn el
procesador en un momento dado, es decir, a qu proceso darn la posibilidad de utilizar
laCPU paraejecutar suspropias instrucciones; a esta decisin tambin sela conocecomo
despacho del proceso [23, Tanenbaum] y [7, Deitel].
15.2 Objetivo del Caso de Estudio
El objetivo del presente caso consisti en la realizacin de un programa en Turbo C++
[12, Borland](Procesos.cpp) que implementara las principales estrategias de asignacin
del procesador a procesos en ejecucin concurrente.
Asimismo tambin se estableci como objetivo del caso la inclusin en el programa
de la posibilidad de grabar un archivo de log histrico (Procesos.txt), que incorporara
para cadasimulacin efectuada, un resumen delasprincipalesconclusiones referidas alas
estrategias consideradas, lo quepermitesu anlisis y discusin posterior.
15.3 Descripcin del Problema Planteado
Una descripcin detallada del problema planteadopuedeconsultarseen el Captulo Pro-
cesos y Administracin del Procesador, siendo especialmentepertinentes los temas rela-
cionados con planicacin del procesador.
397
398 CAPTULO 15. PLANIFICACIN DEL PROCESADOR CON P.O.O.
15.4 Descripcin de los Algoritmos Utilizados
Al igual queenel apartadoanterior, unadescripcindetalladadelasestrategias deplani-
cacin ydelosalgoritmos paraimplementarlassepuedeconsultar enel CaptuloProcesos
y Administracin del Procesador.
15.5 Programa Desarrollado
El programa desarrollado (Procesos.cpp), codicado en Turbo C++ utilizando meto-
dologa de orientacin a objetos ( [2, J oyanes], [1, J oyanes], [3, J oyanes, Rodrquez y
Fernndez] y [15, J oyanes y Zahonero]), implementa cuatro estrategias de planicacin
del procesador, a saber:
FI FO: Primero en llegar, primero en ser despachado, es decir que los procesos son
atendidos segn su orden en la lista de procesos listos y una vez que reciben el
procesador lo utilizan hasta que nalizan o hasta que se presenta una peticin de
entrada / salida requerida por el propio programa.
RR: RoundRobin: Losprocesossonatendidossegnsuordenenlalistadeprocesos
listos, pero disponen deun tiempo limitado (cuantum) del procesador, es decir que
puedenser interrumpidospor requerimientospropiosdeentrada/ salidaopor haber
agotado su tiempo deprocesador; obviamente quela otra causa de interrupcin es
la nalizacin del proceso.
HRN: Los procesos son atendidos segn su prioridad en la lista de procesos listos;
la prioridad depende de la relacin de respuesta: (TE + TS) / TS, donde TE =
Tiempo de Espera y TS =Tiempo de Servicio; es decir queun proceso tienemayor
probabilidad de acceder a la cpu si ha hecho poco uso de ella; el tiempo de espera
ms el tiempo de servicio es el tiempo total que lleva el proceso en el sistema, es
decir la cantidad de ciclos de control que se han contabilizado en la simulacin,
en tanto que el tiempo de servicio es el nmero de ciclos de control que el proceso
ha utilizado; en este caso el proceso que dispone de la cpu puede ser interrumpido
porquenaliza o porquerequiereuna operacin deentrada / salida.
RNM: Los procesos son atendidos segn su nivel en la lista de procesos listos,
la cual se divide en subcolas, cada una de ellas asociada a un nivel determinado,
pero los procesos disponen deun tiempo limitado (cuantum) del procesador; si son
interrumpidos por entrada / salida permanecen en la subcola del nivel dondeestn,
pero si son interrumpidos por tiempo pasan a un nivel mayor, que tiene menor
preferencia, queesatendidocuandoyanohay procesoslistosenlosnivelesinferiores;
deall el nombredeRetroalimentacin deNiveles Mltiples; delo antes mencionado
se desprende que un proceso puede ser interrumpido porque naliza, porque agota
su tiempo de procesador o porque requiere una operacin de entrada / salida. En
la implementacin efectuada los niveles identicados con un nmero menor son los
que tienen de hecho mayor prioridad y los identicados con un nmero mayor son
los quereciben menor prioridad.
El cdigo del programa desarrollado es el siguiente:
15.5. PROGRAMA DESARROLLADO 399
/ * Simulacin deestrategias deasignacin del procesador */
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<iostream.h>
#include<io.h>
FILE *textle; / * Pointer al archivo usado */
/ / char regis[70]; / * Registro del archivo usado (para lectura) */
class Proc{
public:
/ * identif: identicacin del proceso */
char identif;
/ * n: estado denalizacin del proceso */
/ * 0: listo para ejecutar */
/ * 1: interrumpido p/ entrada / salida */
/ * 3: interrumpido p/ tiempo */
/ * 2: terminado */
int n;
/ * cuenta: total deciclos decontrol asignados al proceso */
int cuenta;
/ * pri: prioridad del proceso */
int pri;
/ * nivel: identicacin dela sub-cola dondeest el proceso */
int nivel;
Proc()
{identif =0; n = 0; cuenta = 0; pri = 0; nivel =0;}; / / Inicializacin devalores.
};
class procesos{
400 CAPTULO 15. PLANIFICACIN DEL PROCESADOR CON P.O.O.
public:
int cc; / / Nmero deciclos decontrol.
int np; / / Nmero deprocesos.
char auxiden; / / Variableauxiliar.
int auxn; / / Variableauxiliar.
int auxcuenta; / / Variableauxiliar.
int auxpri; / / Variableauxiliar.
int auxnivel; / / Variableauxiliar.
int cambio; / / Variableauxiliar.
Proc p[50]; / / Vector (lista) deprocesos.
void inicio(); / / Acciones iniciales.
void introducir_ datos(); / / Carga deidenticacin deprocesos.
void mostrar(); / / Mostrar lista deprocesos.
void fo(); / / Simulacin segn estrategia FIFO.
void rrobin(); / / Simulacin segn estrategia RR (Round Robin).
void hrn(); / / Simulacin segn estrategia HRN (Relacin deRespuesta Mxima).
void rnm(); / / Simulacin segn estrategia RNM (Retroalimentacin de Niveles Mlti-
ples).
void nal(); / / Acciones nales.
};
void procesos::inicio(){
cout << *****************************************************;
cout << nn;
cout << *Estrategias deasignacin del procesador a procesos*;
cout << nn;
cout << *en ejecucin concurrente. *;
cout << nn;
cout << *****************************************************;
cout << nn;
15.5. PROGRAMA DESARROLLADO 401
cout <<nn;
cout <<Introduzca el nmero deciclos decontrol dela simulacin.;
cout <<nn;
cout <<(Sesugiereentre30y 40por cada 10procesos): ;
cin >>cc;
cout <<nn;
cout <<Introduzca el nmero deprocesos dela simulacin.;
cout <<nn;
cout <<(El mximo permitido es 50): ;
cin >>np;
cout <<nn;
if (np > 50)
{np =50;
cout <<El nmero deprocesos seha limitado a 50. nn;
cout <<nn;
}
/ * Apertura del archivo usado para grabacin */
cout <<Apertura del archivo resumen PROCESOS.TXT para grabacin. nn;
cout <<(Carpeta BIN dela carpeta TC). nn;
cout <<nn;
if ((textle= fopen(procesos.txt, a)) ==NULL)
{printf(Error deapertura para grabacin en el archivo procesos.txtnn);
exit (0);
}
}
void procesos::introducir_ datos(){
char opc;
cout <<nnSi desea introducir manualmentela identicacin delos procesosnn;
402 CAPTULO 15. PLANIFICACIN DEL PROCESADOR CON P.O.O.
cout << tipee: s, delo contrario: n y el sistema asumir las identicaciones.nn;
cin >> opc;
if (opc ==s) {
for (register int i=0; i<np; i++)
{cout <<Introduzca la identicacin del proceso p[ <<i <<]: ;
cin >> p[i].identif;
}
}
else{
p[0].identif =a;
p[1].identif =b;
p[2].identif =c;
p[3].identif =d;
p[4].identif =e;
p[5].identif =f;
p[6].identif =g;
p[7].identif =h;
p[8].identif =i;
p[9].identif =j;
p[10].identif =k;
p[11].identif =l;
p[12].identif =m;
p[13].identif =n;
p[14].identif =o;
p[15].identif =p;
p[16].identif =q;
p[17].identif =r;
p[18].identif =s;
15.5. PROGRAMA DESARROLLADO 403
p[19].identif = t;
p[20].identif = u;
p[21].identif = v;
p[22].identif = w;
p[23].identif = x;
p[24].identif = y;
p[25].identif = z;
p[26].identif = 1;
p[27].identif = 2;
p[28].identif = 3;
p[29].identif = 4;
p[30].identif = 5;
p[31].identif = 6;
p[32].identif = 7;
p[33].identif = 8;
p[34].identif = 9;
p[35].identif = A;
p[36].identif = B;
p[37].identif = C;
p[38].identif = D;
p[39].identif = E;
p[40].identif = F;
p[41].identif = G;
p[42].identif = H;
p[43].identif = I;
p[44].identif = J ;
p[45].identif = K;
p[46].identif = L;
404 CAPTULO 15. PLANIFICACIN DEL PROCESADOR CON P.O.O.
p[47].identif =M;
p[48].identif =N;
p[49].identif =O;
}
for (register int i=0; i<np; i++)
{p[i].n =0;
p[i].cuenta =0;
p[i].pri = 0;
p[i].nivel = 0;
}
}
void procesos::mostrar(){
printf(nn);
cout << Listado deprocesos: <<nn;
cout << ******************** <<nn;
cout << Estado: 0-> Listo para ejecutar. <<nn;
cout << Estado: 1-> Interrumpido en espera deentrada / salida. <<nn;
cout << Estado: 2-> Proceso terminado. <<nn;
cout << Estado: 3 -> Interrumpido por tiempo (no aplicable en FIFO ni en HRN).
<<nn;
for (register int i=0; i<np; i++)
{cout << Proceso p[ <<i << ]: << p[i].identif<< Estado: << p[i].n<<
Ciclos decontrol utilizados: <<p[i].cuenta<< nn;
cout << Proceso p[ <<i << ]: << p[i].identif<< Prioridad: << p[i].pri<<
Nivel: <<p[i].nivel;
cout <<nn;
}
}
void procesos::fo(){
15.5. PROGRAMA DESARROLLADO 405
auxiden =0; auxn = 0; auxcuenta = 0; cambio =0;
/ * Grabacin en el archivo usado */
fprintf(textle, %snn, *****************************************************);
fprintf(textle, %s, Simulacin FIFO con );
fprintf(textle, %i, cc);
fprintf(textle, %snn, ciclos decontrol.);
cout <<nn;
cout <<Secuencia deseleccin deprocesos para su ejecucin segn FIFO:;
cout <<nn;
cout <<****************************************************************;
cout <<nn;
cout <<Los procesos son atendidos segn su orden en la lista deprocesos listos:;
cout <<nn <<nn;
for (register int j=0; j<cc; j++) / / ***Realiza cc ciclos decontrol***
{auxn =0;
for (register int m=0; m<np; m++)
{auxn =auxn +p[m].n;}
if (auxn ==(np * 2))
{
cout <<nn<<Todoslosprocesoshannalizadoen <<j << ciclosdecontrol.nn;
/ * Grabacin en el archivo usado */
fprintf(textle, %s, Todos los procesos han nalizado en );
fprintf(textle, %i, j);
fprintf(textle, %snn, ciclos decontrol.);
j = cc;
auxn =getch();
}
for (register int i=0; i<np; i++)
406 CAPTULO 15. PLANIFICACIN DEL PROCESADOR CON P.O.O.
{if (p[i].n ==0)
{
cout <<Procesador asignado al proceso: << p[i].identif;
cout <<nn;
p[i].cuenta =p[i].cuenta + 1;
p[i].n = int(random(3)); / / Determina prximo estado del proceso.
/ / cout <<nn <<p[i].identif <<p[i].n <<nn;
if (p[i].n ==1)
cout <<Proceso <<p[i].identif << interrumpido por entrada / salida. << nn;
else{if (p[i].n ==2)
cout <<Proceso <<p[i].identif << nalizado. <<nn;
}
if (p[i].n > 0)
{/ / Intercambio decontexto.
cambio =cambio +1;
auxiden = p[i].identif;
auxn = p[i].n;
auxcuenta =p[i].cuenta;
for (register int k=i; k<(np - 1); k++)
{p[k].identif =p[k+1].identif;
p[k].n = p[k+1].n;
p[k].cuenta =p[k+1].cuenta;
}
p[(np - 1)].identif = auxiden;
p[(np - 1)].n = auxn;
p[(np - 1)].cuenta = auxcuenta;
}
i = np;
15.5. PROGRAMA DESARROLLADO 407
auxn =getch();
}
for (register int k=0; k<np; k++) / / Determina si contina la espera por entrada /
salida.
{if (p[k].n == 1) p[k].n = int (random(2));
}
}
}
cout <<nn<<***Sehan producido <<cambio<< cambios decontexto.***<<
nn;
/ * Grabacin en el archivo usado */
fprintf(textle, %s, Sehan simulado );
fprintf(textle, %i, np);
fprintf(textle, %snn, procesos concurrentes.);
fprintf(textle, %s, Sehan producido );
fprintf(textle, %i, cambio);
fprintf(textle, %snn, cambios decontexto.);
auxn =getch();
}
void procesos::rrobin(){
auxiden =0; auxn = 0; auxcuenta = 0; cambio =0;
/ * Grabacin en el archivo usado */
fprintf(textle, %snn, **************************************************);
fprintf(textle, %s, Simulacin RR - Round Robin con );
fprintf(textle, %i, cc);
fprintf(textle, %snn, ciclos decontrol.);
cout <<nn;
cout <<SecuenciadeseleccindeprocesosparasuejecucinsegnRR - RoundRobin:;
cout <<nn;
408 CAPTULO 15. PLANIFICACIN DEL PROCESADOR CON P.O.O.
cout <<************************************************************;
cout <<nn;
cout <<Los procesos son atendidos segn su orden en la lista deprocesos listos,nn;
cout <<pero disponen deun tiempo limitado (cuantum) del procesador:;
cout <<nn <<nn;
for (register int j=0; j<cc; j++) / / ***Realiza cc ciclos decontrol***
{auxn = 0;
for (register int m=0; m<np; m++)
{if (p[m].n != 2)
{auxn = 1;
m=np;
}
}
if (auxn ==0)
{
cout <<nn<<Todoslosprocesoshan nalizadoen<<j << ciclosdecontrol.nn;
/ * Grabacin en el archivo usado */
fprintf(textle, %s, Todos los procesos han nalizado en );
fprintf(textle, %i, j);
fprintf(textle, %snn, ciclos decontrol.);
j =cc;
auxn = getch();
}
for (register int i=0; i<np; i++)
{if (p[i].n ==0)
{
cout <<Procesador asignado al proceso: << p[i].identif;
cout <<nn;
15.5. PROGRAMA DESARROLLADO 409
p[i].cuenta = p[i].cuenta +1;
p[i].n =int(random(4)); / / Determina prximo estado del proceso.
/ / cout <<nn <<p[i].identif <<p[i].n <<nn;
if (p[i].n == 0) p[i].n =3;
if (p[i].n == 1)
cout <<Proceso <<p[i].identif << interrumpido por entrada / salida. <<nn;
else{if (p[i].n == 2)
cout <<Proceso <<p[i].identif << nalizado. << nn;
else{if (p[i].n == 3)
cout <<Proceso <<p[i].identif << interrumpido por tiempo. <<nn;
}
}
if (p[i].n >= 0)
{/ / Intercambio decontexto.
cambio =cambio + 1;
auxiden =p[i].identif;
auxn =p[i].n;
auxcuenta = p[i].cuenta;
for (register int k=i; k<(np - 1); k++)
{p[k].identif = p[k+1].identif;
p[k].n = p[k+1].n;
p[k].cuenta =p[k+1].cuenta;
}
p[(np - 1)].identif =auxiden;
p[(np - 1)].n = auxn;
p[(np - 1)].cuenta =auxcuenta;
}
i = np;
410 CAPTULO 15. PLANIFICACIN DEL PROCESADOR CON P.O.O.
auxn = getch();
}
for (register int k=0; k<np; k++) / / Determina si contina la espera por entrada /
salida.
{if (p[k].n ==1) p[k].n =int (random(2));
}
for (register int l=0; l<np; l++) / / Determina si contina la espera por tiempo.
{if (p[l].n ==3)
{auxn = int (random(4));
if (auxn ==1) auxn =0;
else{if (auxn ==2) auxn = 3;}
p[l].n = auxn;
}
}
}
}
cout <<nn<<***Sehan producido <<cambio<< cambios decontexto.***<<
nn;
/ * Grabacin en el archivo usado */
fprintf(textle, %s, Sehan simulado );
fprintf(textle, %i, np);
fprintf(textle, %snn, procesos concurrentes.);
fprintf(textle, %s, Sehan producido );
fprintf(textle, %i, cambio);
fprintf(textle, %snn, cambios decontexto.);
auxn = getch();
}
void procesos::hrn(){
auxiden = 0; auxn =0; auxcuenta =0; auxpri =0; cambio =0;
15.5. PROGRAMA DESARROLLADO 411
/ * Grabacin en el archivo usado */
fprintf(textle, %snn, ****************************************************);
fprintf(textle, %s, Simulacin HRN con );
fprintf(textle, %i, cc);
fprintf(textle, %snn, ciclos decontrol.);
cout <<nn;
cout <<Secuencia deseleccin deprocesos para su ejecucin segn HRN:;
cout <<nn;
cout <<***************************************************************;
cout <<nn;
cout <<Losprocesosson atendidossegn su prioridad en lalistadeprocesoslistos;nn;
cout <<la prioridad dependedela relacin derespuesta: (TE +TS) / TS, dondenn;
cout <<TE =Tiempo deEspera y TS = Tiempo deServicio:;
cout <<nn <<nn;
for (register int j=0; j<cc; j++) / / ***Realiza cc ciclos decontrol***
{auxn =0;
for (register int m=0; m<np; m++)
{auxn =auxn +p[m].n;}
if (auxn ==(np * 2))
{
cout <<nn<<Todoslosprocesoshannalizadoen <<j << ciclosdecontrol.nn;
/ * Grabacin en el archivo usado */
fprintf(textle, %s, Todos los procesos han nalizado en );
fprintf(textle, %i, j);
fprintf(textle, %snn, ciclos decontrol.);
j = cc;
auxn =getch();
}
412 CAPTULO 15. PLANIFICACIN DEL PROCESADOR CON P.O.O.
if (j == 0)
{for (register int z=0; z<np; z++)
{p[z].cuenta =1;}
}
if (j < cc)
{
for (register int l=0; l<np; l++)
{p[l].pri =(j / p[l].cuenta);
}
}
if (auxpri == 1)
{
for (register int s=0; s<np; s++)
{for (register int t=s; t<(np - 1); t++)
{if (p[t+1].pri > p[t].pri)
{auxiden =p[t].identif;
auxn = p[t].n;
auxcuenta =p[t].cuenta;
auxpri = p[t].pri;
p[t].identif =p[t+1].identif;
p[t].n = p[t+1].n;
p[t].cuenta =p[t+1].cuenta;
p[t].pri = p[t+1].pri;
p[t+1].identif =auxiden;
p[t+1].n = auxn;
p[t+1].cuenta =auxcuenta;
p[t+1].pri = auxpri;
}
15.5. PROGRAMA DESARROLLADO 413
}
}
}
for (register int i=0; i<np; i++)
{if (p[i].n == 0)
{auxpri =0;
cout <<Procesador asignado al proceso: <<p[i].identif;
cout <<nn;
p[i].cuenta = p[i].cuenta +1;
p[i].n =int(random(3)); / / Determina prximo estado del proceso.
/ / cout <<nn <<p[i].identif <<p[i].n <<nn;
if (p[i].n == 1)
cout <<Proceso <<p[i].identif << interrumpido por entrada / salida. <<nn;
else{if (p[i].n == 2)
cout <<Proceso <<p[i].identif << nalizado. << nn;
}
if (p[i].n >0)
{/ / Intercambio decontexto.
cambio =cambio + 1;
auxiden =p[i].identif;
auxn =p[i].n;
auxcuenta = p[i].cuenta;
auxpri = p[i].pri;
for (register int k=i; k<(np - 1); k++)
{p[k].identif = p[k+1].identif;
p[k].n = p[k+1].n;
p[k].cuenta =p[k+1].cuenta;
p[k].pri = p[k+1].pri;
414 CAPTULO 15. PLANIFICACIN DEL PROCESADOR CON P.O.O.
}
p[(np - 1)].identif = auxiden;
p[(np - 1)].n = auxn;
p[(np - 1)].cuenta = auxcuenta;
p[(np - 1)].pri =auxpri;
auxpri = 1; / / Indica que hubo intercambio de contexto y debe reordenarse la lista de
procesos segn prioridades.
}
i = np;
auxn = getch();
}
for (register int k=0; k<np; k++) / / Determina si contina la espera por entrada /
salida.
{if (p[k].n ==1) p[k].n =int (random(2));
}
}
}
for (register int y=0; y<np; y++)
{p[y].cuenta =p[y].cuenta - 1;}
cout <<nn<<***Sehan producido <<cambio<< cambios decontexto.***<<
nn;
/ * Grabacin en el archivo usado */
fprintf(textle, %s, Sehan simulado );
fprintf(textle, %i, np);
fprintf(textle, %snn, procesos concurrentes.);
fprintf(textle, %s, Sehan producido );
fprintf(textle, %i, cambio);
fprintf(textle, %snn, cambios decontexto.);
auxn = getch();
15.5. PROGRAMA DESARROLLADO 415
}
void procesos::rnm(){
auxiden =0; auxn = 0; auxcuenta = 0; auxpri = 0; auxnivel =0; cambio =0;
/ * Grabacin en el archivo usado */
fprintf(textle, %snn, ***************************************************);
fprintf(textle, %s, Simulacin RNM con );
fprintf(textle, %i, cc);
fprintf(textle, %snn, ciclos decontrol.);
cout <<nn;
cout <<Secuencia deseleccin deprocesos para su ejecucin segn RNM:;
cout <<nn;
cout <<**************************************************************;
cout <<nn;
cout <<Los procesos son atendidos segn su nivel en la lista deprocesos listos;nn;
cout <<pero disponen deun tiempo limitado (cuantum) del procesador;nn;
cout <<si son interrumpidos por entrada / salida permanecen en la subcolann;
cout <<del nivel dondeestn, pero si son interrumpidos por tiempo pasan ann;
cout <<un nivel superior, quees atendido cuando ya no hay procesos listosnn;
cout <<en los niveles inferiores; deall el nombredenn;
cout <<Retroalimentacin deNiveles Mltiples:;
cout <<nn <<nn;
for (register int j=0; j<cc; j++) / / ***Realiza cc ciclos decontrol***
{auxn =0;
for (register int m=0; m<np; m++)
{if (p[m].n !=2)
{auxn =1;
m= np;
}
416 CAPTULO 15. PLANIFICACIN DEL PROCESADOR CON P.O.O.
}
if (auxn ==0)
{
cout <<nn<<Todoslosprocesoshan nalizadoen<<j << ciclosdecontrol.nn;
/ * Grabacin en el archivo usado */
fprintf(textle, %s, Todos los procesos han nalizado en );
fprintf(textle, %i, j);
fprintf(textle, %snn, ciclos decontrol.);
j =cc;
auxn = getch();
}
if (auxpri == 1)
{
for (register int s=0; s<np; s++)
{for (register int t=s; t<(np - 1); t++)
{if (p[t+1].nivel < p[t].nivel)
{auxiden =p[t].identif;
auxn = p[t].n;
auxcuenta =p[t].cuenta;
auxpri = p[t].pri;
auxnivel = p[t].nivel;
p[t].identif =p[t+1].identif;
p[t].n = p[t+1].n;
p[t].cuenta =p[t+1].cuenta;
p[t].pri = p[t+1].pri;
p[t].nivel = p[t+1].nivel;
p[t+1].identif =auxiden;
p[t+1].n = auxn;
15.5. PROGRAMA DESARROLLADO 417
p[t+1].cuenta = auxcuenta;
p[t+1].pri =auxpri;
p[t+1].nivel =auxnivel;
}
}
}
}
for (register int i=0; i<np; i++)
{if (p[i].n == 0)
{auxpri =0;
cout <<Procesador asignado al proceso: <<p[i].identif;
cout <<nn;
p[i].cuenta = p[i].cuenta +1;
p[i].n =int(random(4)); / / Determina prximo estado del proceso.
/ / cout <<nn <<p[i].identif <<p[i].n <<p[i].nivel <<nn;
if (p[i].n == 0) p[i].n =3;
if (p[i].n == 1)
cout <<Proceso <<p[i].identif << interrumpido por entrada / salida. <<nn;
else{if (p[i].n == 2)
cout <<Proceso <<p[i].identif << nalizado. << nn;
else{if (p[i].n == 3)
cout <<Proceso <<p[i].identif << interrumpido por tiempo. <<nn;
p[i].nivel =p[i].nivel + 1;
}
}
if (p[i].n >0)
{/ / Intercambio decontexto.
cambio =cambio + 1;
418 CAPTULO 15. PLANIFICACIN DEL PROCESADOR CON P.O.O.
auxiden = p[i].identif;
auxn = p[i].n;
auxcuenta =p[i].cuenta;
auxpri = p[i].pri;
auxnivel = p[i].nivel;
for (register int k=i; k<(np - 1); k++)
{p[k].identif =p[k+1].identif;
p[k].n = p[k+1].n;
p[k].cuenta =p[k+1].cuenta;
p[k].pri =p[k+1].pri;
p[k].nivel = p[k+1].nivel;
}
p[(np - 1)].identif = auxiden;
p[(np - 1)].n = auxn;
p[(np - 1)].cuenta = auxcuenta;
p[(np - 1)].pri =auxpri;
p[(np - 1)].nivel = auxnivel;
auxpri = 1; / / Indica que hubo intercambio de contexto y debe reordenarse la lista de
procesos segn prioridades.
}
i = np;
auxn = getch();
}
for (register int k=0; k<np; k++) / / Determina si contina la espera por entrada /
salida.
{if (p[k].n ==1) p[k].n =int (random(2));
}
for (register int l=0; l<np; l++) / / Determina si contina la espera por tiempo.
{if (p[l].n ==3)
15.5. PROGRAMA DESARROLLADO 419
{auxn =int (random(4));
if (auxn ==1) auxn = 0;
else{if (auxn == 2) auxn =3;}
p[l].n =auxn;
}
}
}
}
cout <<nn<<***Sehan producido <<cambio<< cambios decontexto.***<<
nn;
/ * Grabacin en el archivo usado */
fprintf(textle, %s, Sehan simulado );
fprintf(textle, %i, np);
fprintf(textle, %snn, procesos concurrentes.);
fprintf(textle, %s, Sehan producido );
fprintf(textle, %i, cambio);
fprintf(textle, %snn, cambios decontexto.);
auxn =getch();
}
void procesos::nal(){
/ * Cierredel archivo usado */
cout <<nnCierredel archivo resumen PROCESOS.TXT. nn;
cout <<Sesugierevisualizar su contenido con el Notepad.exedeWindows. nn;
fclose(textle);
}
void main(){
/ * Variables */
procesos p1;
/ * Cdigo */
420 CAPTULO 15. PLANIFICACIN DEL PROCESADOR CON P.O.O.
clrscr();
p1.inicio();
p1.introducir_ datos();
p1.mostrar();
p1.fo();
p1.mostrar();
p1.introducir_ datos();
p1.mostrar();
p1.rrobin();
p1.mostrar();
p1.introducir_ datos();
p1.mostrar();
p1.hrn();
p1.mostrar();
p1.introducir_ datos();
p1.mostrar();
p1.rnm();
p1.mostrar();
p1.nal();
getch();
}
15.6 Datos y Ejecuciones
Los datos esenciales para la simulacin de las distintas estrategias se introducen por te-
clado, siendo opcional el ingreso de la identicacin de los procesos, ya que la misma se
puedegenerar automticamente.
Losdatos esenciales antes mencionados son el nmero deciclos decontrol y el nmero
de procesos queintervendrn en la simulacin.
Los resultados detallados delas ejecuciones semuestran paso a paso en pantalla y un
resumen de los mismos se graba en un archivo de texto (Procesos.txt), que puede ser
visualizado con cualquier editor, por ejemplo el Notepad o el Wordpad deWindows.
El contenido del mencionado archivo luego de varias ejecuciones deevaluacin puede
consultarseen los Anexos; un detalleparcial es el siguiente:
15.6. DATOS Y EJ ECUCIONES 421
************************************************************
Simulacin FIFO con 3ciclos decontrol.
Sehan simulado 3procesos concurrentes.
Sehan producido 1cambios decontexto.
************************************************************
Simulacin RR - Round Robin con 3ciclos decontrol.
Sehan simulado 3procesos concurrentes.
Sehan producido 3cambios decontexto.
************************************************************
Simulacin HRN con 3ciclos decontrol.
Sehan simulado 3procesos concurrentes.
Sehan producido 2cambios decontexto.
************************************************************
Simulacin RNM con 3ciclos decontrol.
Sehan simulado 3procesos concurrentes.
Sehan producido 3cambios decontexto.
************************************************************
Simulacin FIFO con 100ciclos decontrol.
Todos los procesos han nalizado en 14ciclos decontrol.
Sehan simulado 5procesos concurrentes.
Sehan producido 10cambios decontexto.
************************************************************
Simulacin RR - Round Robin con 100ciclos decontrol.
Todos los procesos han nalizado en 11ciclos decontrol.
Sehan simulado 5procesos concurrentes.
Sehan producido 11cambios decontexto.
************************************************************
Simulacin HRN con 100ciclos decontrol.
422 CAPTULO 15. PLANIFICACIN DEL PROCESADOR CON P.O.O.
Todos los procesos han nalizado en 26ciclos decontrol.
Sehan simulado 5procesos concurrentes.
Sehan producido 15cambios decontexto.
************************************************************
Simulacin RNM con 100ciclos decontrol.
Todos los procesos han nalizado en 10ciclos decontrol.
Sehan simulado 5procesos concurrentes.
Sehan producido 10cambios decontexto.
************************************************************
15.7 Resultados y Conclusiones
La utilizacin de P.O.O. para la resolucin del problema planteado ha resultado muy
satisfactoria, destacndose las facilidades de la misma y del compilador utilizado (Turbo
C++).
Los resultados obtenidos ratican, como era de esperarse, las previsiones tericas en
cuanto a las diferencias en atencin a los procesos por parte de las distintas estrategias,
yaseaen cuantoalasecuenciadeasignacin del procesador comoen cuantoalacantidad
de tiempo (ciclos decontrol) asignados a los distintos procesos.
Las diferencias indicadas sehacen presentes independientemente desi sehatrabajado
con un nmero pequeo o grande, tanto deciclos de control como deprocesos.
Lamodalidadimplementadademostrar losresultadospasoapasopor pantallapermite
observar el comportamiento de cada algoritmo y facilita la comprensin de su funciona-
miento.
Como era deesperarse, seobserva quelos algoritmos quetienden a lograr una mayor
equitatividad en el uso del procesador son los que generan una mayor cantidad de cam-
bios de contexto (asignacin del procesador a otro proceso distinto del queestaba siendo
ejecutado y queseha interrumpido).
Asimismo y a modo ilustrativo sehan volcado en la Tabla 15.1dela pgina 423 y en
la Tabla 15.2 de la pgina 424 los datos del archivo resumen (Procesos.txt) como una
planilla condensada delos mismos.
15.7. RESULTADOS Y CONCLUSIONES 423
Estrategias Ciclos de Finaliz Ciclos de Procesos Cambios de
Control Todos los Control Concurrentes Contexto
Solicitados Procesos Utilizados
FIFO 3 N 3 3 1
RR 3 N 3 3 3
HRN 3 N 3 3 2
RNM 3 N 3 3 3
FIFO 100 S 14 5 10
RR 100 S 11 5 11
HRN 100 S 26 5 15
RNM 100 S 10 5 10
FIFO 90 S 10 3 7
RR 90 S 10 3 9
HRN 90 S 22 3 13
RNM 90 S 14 3 14
FIFO 90 S 15 6 11
RR 90 S 32 6 32
HRN 90 S 20 6 13
RNM 90 S 12 6 12
FIFO 70 S 14 5 10
RR 70 S 11 5 11
HRN 70 S 26 5 15
RNM 70 S 10 5 10
FIFO 80 S 10 3 7
RR 80 S 10 3 9
HRN 80 S 22 3 13
RNM 80 S 14 3 14
FIFO 5 N 5 20 3
RR 5 N 5 20 5
HRN 5 N 5 20 3
RNM 5 N 5 20 5
FIFO 3 N 3 10 1
RR 3 N 3 10 3
HRN 3 N 3 10 2
RNM 3 N 3 10 3
Tabla 15.1: Estrategias deasignacin del procesador en ejecucin concurrente.
424 CAPTULO 15. PLANIFICACIN DEL PROCESADOR CON P.O.O.
Estrategias Ciclos de Finaliz Ciclos de Procesos Cambios de
Control Todos los Control Concurrentes Contexto
Solicitados Procesos Utilizados
FIFO 6 N 6 5 4
RR 6 N 6 5 6
HRN 6 N 6 5 5
RNM 6 N 6 5 6
FIFO 10 N 10 3 7
RR 10 N 10 3 9
HRN 10 N 10 3 6
RNM 10 N 10 3 10
FIFO 30 S 15 6 11
RR 30 N 30 6 30
HRN 30 S 15 6 13
RNM 30 S 16 6 16
FIFO 200 S 167 50 113
RR 200 S 174 50 174
HRN 200 S 161 50 98
RNM 200 S 198 50 198
FIFO 30 S 25 10 19
RR 30 N 30 10 30
HRN 30 N 30 10 20
RNM 30 N 30 10 30
FIFO 50 S 47 15 33
RR 50 N 50 15 50
HRN 50 N 50 15 31
RNM 50 S 46 15 46
FIFO 60 S 17 8 13
RR 60 S 32 8 32
HRN 60 S 29 8 19
RNM 60 S 28 8 28
Tabla 15.2: Estrategias deasignacin del procesador en ejecucin concurrente(continua-
cin).
Captulo 16
Paginacin de Memoria Virtual
con Sistemas Expertos
16.1 I ntroduccin
UnadelasmuchasdenicionesdeSistema Experto(SE) expresaqueesun sistemainfor-
mtico que simula el proceso de aprendizaje, memorizacin, razonamiento, comunicacin
y accin de un experto humano en una determinada rama de la ciencia, suministrando,
de esta forma, un consultor que puede sustituirle con unas ciertas garantas de xito.
Otra denicin [9, Castillo, Gutirrez y Hadi] indica queun SE puededenirse como
un sistema informtico (hardware y software) que simula a los expertos humanos en un
rea de especializacin dada.
Los SE constituyen un rea dentro de un campo an mayor llamado I nteligencia
Articial (IA), que segn Barr y Feigenbaum es la parte de la ciencia que se ocupa
del diseo de sistemas de computacin inteligentes, es decir, sistemas que exhiben las
caractersticas queasociamos ala inteligencia en el comportamientohumano quesereere
ala comprensin del lenguaje, el aprendizaje, el razonamiento, la resolucin deproblemas,
etc.
La IA se propone combinar los mtodos de bsqueda con grandes bases de conoci-
mientos especializados, investigando cmoadquirir, representar, organizar y aplicar cono-
cimiento a una gran variedad de problemas [13, Kvitca], es decir que la IA es la ciencia
que estudia cmo realizar programas que utilicen cada vez ms tipos de conocimiento.
Laprofundizacinenel estudiodeestosconceptoslleva, entreotrasmuchascuestiones,
a la de considerar si los computadores pueden mostrar (o imitar) autntica inteligencia,
con todas las implicancias sociales y deotros tipos queello comprende[16, Penrose].
Los principales objetivos delos SE pueden resumirseen los siguientes:
Mejorar la calidad del conocimiento delos expertos humanos.
Conseguir la supervivencia del conocimiento y que no desaparezca con la muerte
fsica del experto humano.
Multiplicar el nmerodeexpertosypor lotanto, hacer msaccesibleel conocimiento
existente.
425
426 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Las principales funciones delos SE son las quea continuacin sedetallan:
Adquirir conocimiento.
Almacenar conocimiento.
Razonar einferir.
Demandar nueva informacin.
Aprender.
Propagar incertidumbre.
Asistir al experto a dar informacin coherente.
Las razones bsicas para utilizar un SE son, entre otras, las que se mencionan a
continuacin:
Posibilidad deutilizar personal no especializado pararesolver problemas querequie-
ren especialidad.
Obtencin desoluciones ms rpidas.
Obtencin desoluciones ms ables.
Reduccin decostos.
Eliminacin deoperaciones incmodas y montonas.
Escasez deexpertos humanos.
Acceso al conocimiento a poblaciones ms amplias.
Acceso a entornos dondela actuacin humana directa resulta imposible.
Uno delos posibles campos de aplicacin de los SE lo constituyen los Sistemas Ope-
rativos y el SoftwaredeBasey deAplicacin delos sistemas computacionales.
Endichosentido, sedebenconsiderar lasfunciones, especialmentedelosSistemasOpe-
rativos, como administradores delos recursos computacionales, tales como el procesador,
la memoria principal, la memoria auxiliar, los perifricos, las operaciones de entrada /
salida, etc., puesto quepara el cumplimiento dedichas funciones emplean distintas estra-
tegias que deben ser instrumentadas mediante mdulos desoftware, siendo precisamente
all dondecabra considerar la posibilidad deutilizar SE para instrumentar las mismas y
evaluar inteligentemente cul sera la ms convenienteen cada caso.
En estesentidoesprecisosealar quenosiemprelosSistemasOperativosactanfrente
a la administracin derecursos eligiendo la estrategia ms adecuada para cada caso, sino
quepor el contrario utilizan siemprela misma estrategia, queobviamenteno es en todos
los casos la ms adecuada.
16.2. OBJ ETIVO DEL CASO DE ESTUDIO 427
16.2 Objetivo del Caso de Estudio
Los principales objetivos del caso deestudio desarrollado fueron los siguientes:
Utilizacin de un software para SE, el Expert System Builder (ESB), bajado
deInternet, para generar un SE quepermita obtener, dado un perl (patrn) ideal
de pgina de memoria virtual para el desalojo (pageout), el grado cuanticado de
ajuste de las pginas cargadas a ese perl, es decir el nivel de acercamiento
a ese ideal planteado, con lo que se obtendra la pgina que ms se ajusta a los
criterios jadospara laoperacin deseleccin dela pginaquehabrdedesalojarse
dememoria principal (pageout).
Desarrollo de un SE sencillo utilizando el software Mathematica, que evaluando
una pgina de memoria virtual en particular, permita indicar bajo qu estrategias
de reposicin (desalojo) sera seleccionada dicha pgina para ser desalojada de la
memoria principal.
Un objetivo mucho ms ambicioso sera el de incorporar la utilizacin de SE en el
ncleo delos Sistemas Operativos para quedemanera ms inteligente quela habitual,
seleccionen en cada caso la mejor estrategia depaginacin (desalojo o reposicin depgi-
nas), lo que conlleva a la eleccin dela pgina ideal para ser desalojada en cada ocasin
en queesto sea requerido, optimizando as la utilizacin delos recursos computacionales,
incluyendo no solo a la memoria principal sino tambin a las operaciones de entrada /
salida quelas operaciones depaginacin implican y a los procesadores, quecon esquemas
inteligentes de paginacin podran dedicar mayor tiempo al cdigo de los programas
de aplicacin y menor tiempo al cdigo del Sistema Operativo, es decir a la gestin del
cambio decontexto, la gestin delas operaciones deentrada / salida, etc.
16.3 Descripcin del Problema Planteado
El problema planteado involucra la utilizacin de herramientas de SE para resolver pro-
blemas de administracin de la memoria en los computadores, ms concretamente, de
administracin del almacenamiento virtual, en lo referente a estrategias de reposicin
de pginas de la memoria real o principal.
A los efectos de un adecuado encuadre en el tema, se resumen a continuacin los
principales conceptos relacionados con la Administracin de la Memoria por parte de
losSistemasOperativos, pudiendoobtenersemsdetallesenel captulodel mismonombre.
El estudio dela administracin de la memoria comprendelo siguiente:
1. Almacenamiento real:
(a) Organizacin y administracin del almacenamiento.
(b) J erarqua dealmacenamiento.
(c) Estrategias deadministracin del almacenamiento.
(d) Multiprogramacin departicin ja.
(e) Multiprogramacin departicin variable.
428 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
(f) Multiprogramacin con intercambio dealmacenamiento.
2. Organizacin del almacenamiento virtual:
(a) Conceptos bsicos dealmacenamiento virtual.
(b) Organizacin del almacenamiento deniveles mltiples.
(c) Transformacin debloques.
(d) Conceptos bsicos depaginacin.
(e) Segmentacin.
(f) Sistemas depaginacin / segmentacin.
3. Administracin del almacenamiento virtual:
(a) Estrategias deadministracin del almacenamiento virtual.
(b) Localidad.
(c) Conjuntos detrabajo.
(d) Paginacin por demanda y paginacin anticipada.
(e) Liberacin depgina y tamao depgina.
(f) Comportamiento deun programa en la paginacin.
Un conjunto especialmenteimportantedeaspectos dela administracin del alma-
cenamiento virtual
1
lo constituyen las estrategias de administracin del almace-
namiento virtual.
Las diferentes organizaciones dealmacenamiento virtual generalmenteimplementadas
son:
Paginacin.
Segmentacin.
Combinacin desegmentacin y paginacin.
Real Sistemas deun solo usuario
Multiprogramacin En particin ja Absoluta
en Reubicable
memoria real En particin variable
Virtual Multiprogramacin Paginacin pura
en Segmentacin pura
memoria virtual Combinado
Tabla 16.1: Evolucin en las organizaciones del almacenamiento.
Las estrategias para la administracin de sistemas de almacenamiento virtual con-
dicionan la conducta de los sistemas de almacenamiento virtual que operan segn esas
estrategias [23, Tanenbaum], las quesepueden clasicar dela siguientemanera:
1
Ver Tabla 16.1 dela pgina 428 y Tabla 16.2 dela pgina 429.
16.3. DESCRIPCIN DEL PROBLEMA PLANTEADO 429
Estrategias debsqueda Por demanda
Anticipada
Estrategias decolocacin Mejor ajuste
Primer ajuste
Peor ajuste
Estrategias dereposicin Principio deoptimizacin
Al azar
FIFO
Pg. menos recientementeusada (LRU)
Pg. menos frecuentementeusada (LFU)
Pg. no usada recientemente(NUR)
Tabla 16.2: Estrategias deadministracin del almacenamiento virtual.
1. Estrategias de bsqueda:
Tratan delos casos en queuna pgina o segmento deben ser trados del alma-
cenamiento secundario al primario.
Las estrategias de bsqueda por demanda esperan a que se haga referencia
a una pgina o segmento por un proceso antes de traerlos al almacenamiento
primario.
Las estrategias debsqueda anticipada intentan determinar por adelantadoa
qupginas o segmentos har referencia un proceso para traerlos al almacena-
miento primario antes deser explcitamentereferenciados.
2. Estrategias de colocacin:
Tratan del lugar del almacenamiento primario donde se colocar una nueva
pgina o segmento.
Los sistemas toman las decisiones de colocacin de una forma trivial ya que
una nueva pgina puede ser colocada dentro de cualquier marco de pgina
disponible.
3. Estrategias de reposicin:
Tratan de la decisin de cul pgina o segmento desplazar para hacer sitio a
unanueva pgina osegmento cuando el almacenamiento primario estcomple-
tamentecomprometido.
En el conjunto de los distintos tipos de estrategias mencionadas se destacan las es-
trategias de reposicin de pgina por su impacto directo en la performance(desempeo)
delos procesos involucrados.
Las principales estrategias de reposicin de pgina [25, Tanenbaum] son:
El principio deoptimizacin.
430 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin depginas al azar.
Primero en entrar - primero en salir.
Menos recientementeusada.
Menos frecuentementeusada.
No usada recientemente.
Las ideas bsicas de las distintas estrategias de reposicin son las que se detallan
seguidamente:
El principio de optimizacin:
El principio de optimizacin indica que para obtener un rendimiento ptimo, la
pgina que se va a reponer es una que no se va a utilizar en el futuro durante el
perodo detiempo ms largo.
El problema es queno es factiblepredecir el futuro.
Reposicin de pgina al azar:
Consisteen escoger al azar la pgina queva a ser reemplazada.
Todas las pginas del almacenamiento principal deben tener la misma probabilidad
deser reemplazadas.
Debe poder seleccionar cualquier pgina, incluyendo la que va a ser referenciada a
continuacin (peor seleccin).
Esteesquema es raramenteusado.
Reposicin de pgina por el sistema de primero en entrar - primero en salir
(FI FO):
Seregistra el momento en quecada pgina ingresa al almacenamiento primario.
Para reemplazar una pgina, seselecciona aquella queha estado ms tiempo alma-
cenada.
Sepresenta el inconvenientedequesepueden reemplazar pginas muy usadas, que
sern llamadas denuevo al almacenamiento primario casi deinmediato.
Un comentario especial merecela llamada anomala FI FO:
Belady, Nelson y Shedler descubrieron quecon la reposicin FIFO, ciertos patrones
dereferenciasdepginascausan msfallosdepginascuandoseaumentael nmero
demarcos(celdas) depginasasignados aun proceso: en estoconsistelaanomala
FI FO.
Esta anomala contradicea la intuicin
2
.
16.3. DESCRIPCIN DEL PROBLEMA PLANTEADO 431
REFERENCIAS
DE PAGINAS
REPOSICION CON TRES
MARCOS DISPONIBLES
A - - A FALLO
B A - B FALLO
C FALLO C B A
D C B D FALLO
A D C A FALLO
B A D B FALLO
E B A E FALLO
E B A A NO FALLO
E B A B NO FALLO
C E B C FALLO
D C E D FALLO
D C E E NO FALLO
TRES NO FALLOS
REFERENCIAS
DE PAGINAS
REPOSICION CON CUATRO
MARCOS DISPONIBLES
A FALLO A - - -
B FALLO B A - -
C FALLO C B A -
D FALLO D C B A
A NO FALLO D C B A
B NO FALLO D C B A
E FALLO E D C B
A FALLO A E D C
B FALLO B A E D
C FALLO C B A E
D FALLO D C B A
E FALLO E D C B
DOS NO FALLOS
Figura~16.1: Ejemplo deanomala FIFO.
Reposicin de pgina menos - recientemente - usada (LRU):
Esta estrategia selecciona para ser reemplazada la pgina que no ha sido usada
duranteel mayor perodo detiempo.
Se basa en la heurstica de que el pasado reciente es un buen indicador del futuro
prximo.
Requierequecada pgina reciba un sello de tiempo cada vez quesereferencia:
Puedesignicar una sobrecarga adicional importante.
No seimplementa frecuentemente.
Lapginaseleccionadaparareemplazopodraser laprximaenser requerida, por lo
cual habra quepaginarla denuevo al almacenamiento principal casi deinmediato.
Reposicin de pgina menos - frecuentemente - usada (LFU):
Ac interesa la intensidad deuso quehaya tenido cada pgina.
La pgina queser reemplazada es aquella queha sido usada con menos frecuencia
o queha sido referida con menos intensidad.
El inconvenientees quesepuedeseleccionar fcilmentepara su reposicin la pgina
equivocada:
2
Ver Figura 16.1 dela pgina 431 [7, Deitel].
432 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Ejemplo: Lapginadeusomenosfrecuentepuedeser lapginadeentradams
reciente al almacenamiento principal, por lo que existe una alta probabilidad
dequesea usada deinmediato.
Reposicin de pgina no usada - recientemente (NUR):
Presuponequelas pginas queno han tenido uso recientetienen poca probabilidad
deser usadas en el futuro prximo y pueden ser reemplazadas por otras nuevas.
Es deseable reemplazar una pgina que no ha sido cambiada mientras estaba en el
almacenamiento primario.
La estrategia NUR seimplementa con la adicin dedos bits por pgina:
bit referenciado:
=0si la pgina no ha sido referenciada.
=1si la pgina ha sido referenciada.
bit modicado (tambin llamado bit sucio):
=0si la pgina no ha sido modicada.
=1si la pgina ha sido modicada.
La seleccin dela pgina queser reemplazada comienza buscando una pgina que
no ha sido referenciada, pero si no la encuentra, habr que reemplazar una pgina
queha sido referenciada.
Si una pgina no ha sido referenciada secomprueba si ha sido modicada o no:
Si nohasidomodicadaselareemplaza, yaquesu reposicin representamenos
sobrecarga que la de una pgina modicada, puesto que en tal caso debera
grabarsedenuevo en el almacenamiento secundario.
Si noseencuentraunapginaquenohasidomodicada, serreemplazadauna
pgina modicada.
Con el transcurso del tiempo la mayora delos bits referenciados sern activados
y como consecuencia:
Sepierdelacapacidad para distinguir las pginasmsdeseablesparaser reem-
plazadas.
Para evitarlo seajustan peridicamentetodos los bits referenciados a 0:
Selogra un nuevo inicio.
Sevuelvevulnerableal reemplazo an a las pginas activas, pero solo bre-
vemente, mientras sereajustan los bits.
Los bits modicados no seajustan peridicamentesegn esta estrategia.
16.4. DESCRIPCIN DEL SOFTWARE UTILIZADO 433
16.4 Descripcin del Software Utilizado
Como primer partedel caso deestudio sehautilizado un softwarepara generacin deSE,
el Expert System Builder (ESB), bajadodeInternet, paragenerar un SE quepermita
obtener, dado un perl (patrn) ideal de pgina de memoria virtual para el desalojo
(pageout), el grado cuanticado deajustedelas pginas cargadas a eseperl, es decir
el nivel de acercamiento a ese ideal planteado, con lo que se obtendra la pgina que
ms seajusta a los criterios jados para la operacin deseleccin dela pgina quehabr
dedesalojarsedememoria principal (pageout).
El producto utilizado (ESB) consta de tres partes bien diferenciadas:
Question Editor
3
:
El Editor de Cuestiones desarrolla las estructuras de las cuestiones pa-
ra el SE y permite que esas cuestiones sean descriptas utilizando expresiones
textuales o grcas.
K nowledge Acquisition
4
:
El Programa deAdquisicin del Conocimientopermiteal usuarioingresar
datosacercadecadaregistroqueel sistemarequiereconocer. Permitecargar
la base de conocimientos para el SE.
User I nterface
5
:
La I nterfase de Usuario intercala informacin del usuario y de la base
de conocimientos y determina la solucin ms aproximada para el problema
suministrado usando su motor de inferencia.
Asimismo el producto utilizado brinda un importante help en lnea que resulta de
mucha utilidad y la posibilidad de acceder a la Homepage correspondiente al producto
medianteun vnculo con Internet.
Ademssedebesealar queel productoconsideradoincluyevariosejemplosilustrativos
delas posibles utilizaciones del mismo, queresultan deinters conceptual y didctico.
Enotroordendecosassedebemencionar queel productopuedeser bajadodeInternet
sin cargo alguno.
Para la segunda partedel trabajo desarrollado seha utilizado el softwareMathema-
tica, poderosa herramienta para clculo simblico, que en esta ocasin se ha utilizado
teniendo presentes sus poderosas funciones deprocesamiento delistas.
16.5 Descripcin del Ejercicio Efectuado
Como ya se ha indicado anteriormente, en la primer parte del trabajo se ha utilizado el
softwareESB, para generar un SE quepermita obtener, dado un perl (patrn) ideal de
3
Ver Figura 16.2 dela pgina 434.
4
Ver Figura 16.3 dela pgina 434.
5
Ver Figura 16.4 dela pgina 435.
434 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Figura~16.2: ESB Question Editor.
Figura~16.3: ESB KnowledgeAcquisition.
16.5. DESCRIPCIN DEL EJ ERCICIO EFECTUADO 435
Figura~16.4: ESB User Interface.
pgina de memoria virtual para el desalojo (pageout), el grado cuanticado deajustede
laspginascargadasaeseperl, esdecir el nivel deacercamiento aeseideal planteado,
con loqueseobtendralapginaquemsseajustaaloscriteriosjadosparalaoperacin
deseleccin dela pgina quehabr dedesalojarsedememoria principal (pageout).
Primeramente y mediante la utilizacin del componente Question Editor, se han
denido las cuestiones deinters, es decir las estructuras con las quehabr detrabajar
el modelo; deesta forma seha generado el archivo Pageout.qst, queluego es ingresado
como entrada a los otros componentes del producto.
El contenido del archivo Pageout.qst utilizado es el siguiente:
Principio deoptimizacin
Single
Principio deoptimizacin - Tiempo estimado deno utilizacin mayor
Single
Menos de5.000miliseg.
Entre5.000y 10.000miliseg.
Entre10.001y 20.000miliseg.
Entre20.001y 40.000miliseg.
Ms de40.000miliseg.
436 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Null
Null
Null
Null
4
0
0
NoTxt
NoPic
1
Reposicin FIFO
Single
Reposicin FIFO - Tiempo ms prolongado en memoria principal
Single
Menos de1.000miliseg.
Entre1.000y 3.000miliseg.
Entre3.001y 6.000miliseg.
Entre6.001y 9.000miliseg.
Entre9.001y 30.000miliseg.
Ms de30.000miliseg.
Null
Null
Null
5
0
0
NoTxt
NoPic
16.5. DESCRIPCIN DEL EJ ERCICIO EFECTUADO 437
1
Reposicin pgina menos recientementeusada (LRU)
Single
Reposicin pgina menos recientementeusada (LRU) - Tiempo mayor deno uso
Single
Menos de5.000miliseg.
Entre5.000y 10.000miliseg.
Entre10.001y 15.000miliseg.
Entre15.001y 20.000miliseg.
Entre20.001y 25.000miliseg.
Entre25.001y 30.000miliseg.
Entre30.001y 35.000miliseg.
Entre35.001y 40.000miliseg.
Ms de40.000miliseg.
8
0
0
NoTxt
NoPic
2
Reposicin pgina menos frecuentementeusada (LFU)
Single
Reposicin pgina menos frecuentementeusada (LFU) - Menos frecuencia deuso
Single
Menos de50veces
Entre50y 100veces
Entre101y 200veces
Entre201y 300veces
438 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Ms de300veces
Null
Null
Null
Null
4
0
0
NoTxt
NoPic
1.5
Reposicin pgina no usada recientemente(NUR)
Single
Reposicin pgina no usada recientemente(NUR) - Referencia y/ o modicacin
Single
No referenciada
S referenciada y no modicada
S referenciada y s modicada
Null
Null
Null
Null
Null
Null
2
0
0
NoTxt
16.5. DESCRIPCIN DEL EJ ERCICIO EFECTUADO 439
NoPic
2
Seguidamentey empleandoel componenteK nowledge Acquisition sehacargadola
basedeconocimientos, queen estecasonoesmsqueladenicin delascaractersticas
delasdistintaspginasdememoriavirtual residentesenunmomentodadoenmemoriareal
(memoria principal) y queson factibles por lo tanto deser sometidas a una operacin de
reposicin odesalojo, esdecir quepueden ser retiradasdelamemoriaprincipal parahacer
lugar a otras pginas queserequierealojar en la misma en un momento dado. Es preciso
hacer notar quelas caractersticas propias decada pgina residenteen memoria principal
la hacen ms o menos apropiada para ser seleccionada para el desalojo por las distintas
estrategias dereposicin, por lo cual la seleccin depender dela estrategia utilizada.
Para esta segunda etapa se ingresa el archivo generado anteriormente, es decir el ar-
chivo Pageout.qst y segenera el archivo Pageout.dat, el cual junto con el anterior es
empleado por el motor de inferencia del modelo.
El contenido del archivo Pageout.dat utilizado es el siguiente:
Question 1=-10-1010-10-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=10-10-10-10-10-10-10-10-10
Question 4=-10-10-1010-10-10-10-10-10
Question 5=-1010-10-10-10-10-10-10-10
Question 1=-10-10-1010-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=-10-10-1010-10-10-10-10-10
Question 4=-1010-10-10-10-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
Question 1=000000000
Question 2=000000000
Question 3=000000000
Question 4=000000000
Question 5=000000000
Question 1=-10-10-1010-10-10-10-10-10
Question 2=-10-10-10-1010-10-10-10-10
Question 3=-10-1010-10-10-10-10-10-10
440 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Question 4=-10-10-1010-10-10-10-10-10
Question 5=-1010-10-10-10-10-10-10-10
Question 1=-1010-10-10-10-10-10-10-10
Question 2=-10-1010-10-10-10-10-10-10
Question 3=10-10-10-10-10-10-10-10-10
Question 4=10-10-10-10-10-10-10-10-10
Question 5=10-10-10-10-10-10-10-10-10
Question 1=-10-10-10-1010-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=-10-1010-10-10-10-10-10-10
Question 4=-1010-10-10-10-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
Question 1=-10-10-1010-10-10-10-10-10
Question 2=-10-10-1010-10-10-10-10-10
Question 3=-1010-10-10-10-10-10-10-10
Question 4=-1010-10-10-10-10-10-10-10
Question 5=-1010-10-10-10-10-10-10-10
Question 1=-1010-10-10-10-10-10-10-10
Question 2=000000000
Question 3=000000000
Question 4=000000000
Question 5=000000000
Question 1=-1010-10-10-10-10-10-10-10
Question 2=-10-10-10-1010-10-10-10-10
Question 3=10-10-10-10-10-10-10-10-10
Question 4=-1010-10-10-10-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
Question 1=-10-10-1010-10-10-10-10-10
16.5. DESCRIPCIN DEL EJ ERCICIO EFECTUADO 441
Question 2=-10-10-10-1010-10-10-10-10
Question 3=-1010-10-10-10-10-10-10-10
Question 4=10-10-10-10-10-10-10-10-10
Question 5=-1010-10-10-10-10-10-10-10
Question 1=-10-1010-10-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=-10-10-10-10-10-10-1010-10
Question 4=10-10-10-10-10-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
Question 1=-10-1010-10-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=-10-10-10-10-10-1010-10-10
Question 4=-1010-10-10-10-10-10-10-10
Question 5=-1010-10-10-10-10-10-10-10
Question 1=-10-1010-10-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=-10-10-10-10-10-1010-10-10
Question 4=-1010-10-10-10-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
Question 1=-10-10-1010-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=-10-10-10-10-10-1010-10-10
Question 4=-1010-10-10-10-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
Question 1=-10-10-1010-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=-10-10-10-10-1010-10-10-10
Question 4=-1010-10-10-10-10-10-10-10
442 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Question 5=-10-1010-10-10-10-10-10-10
Question 1=10-10-10-10-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=-1010-10-10-10-10-10-10-10
Question 4=-10-1010-10-10-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
Question 1=-1010-10-10-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=-1010-10-10-10-10-10-10-10
Question 4=-10-1010-10-10-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
Question 1=-1010-10-10-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=10-10-10-10-10-10-10-10-10
Question 4=10-10-10-10-10-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
Question 1=10-10-10-10-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=10-10-10-10-10-10-10-10-10
Question 4=10-10-10-10-10-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
Question 1=10-10-10-10-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=10-10-10-10-10-10-10-10-10
Question 4=-10-10-10-1010-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
Question 1=-10-10-1010-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
16.5. DESCRIPCIN DEL EJ ERCICIO EFECTUADO 443
Question 3=10-10-10-10-10-10-10-10-10
Question 4=-10-10-10-1010-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
Question 1=-10-10-10-1010-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=10-10-10-10-10-10-10-10-10
Question 4=-10-10-10-1010-10-10-10-10
Question 5=-1010-10-10-10-10-10-10-10
Question 1=-10-10-1010-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=10-10-10-10-10-10-10-10-10
Question 4=-10-10-10-1010-10-10-10-10
Question 5=-1010-10-10-10-10-10-10-10
Question 1=-10-1010-10-10-10-10-10-10
Question 2=-10-10-10-1010-10-10-10-10
Question 3=-10-1010-10-10-10-10-10-10
Question 4=-10-1010-10-10-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
Question 1=-1010-10-10-10-10-10-10-10
Question 2=-10-10-10-1010-10-10-10-10
Question 3=-10-1010-10-10-10-10-10-10
Question 4=-10-1010-10-10-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
Question 1=-10-1010-10-10-10-10-10-10
Question 2=-10-10-10-1010-10-10-10-10
Question 3=-10-1010-10-10-10-10-10-10
Question 4=-10-1010-10-10-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
444 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Question 1=-10-1010-10-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=-10-1010-10-10-10-10-10-10
Question 4=-10-1010-10-10-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
Question 1=-10-10-1010-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=-10-1010-10-10-10-10-10-10
Question 4=-10-1010-10-10-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
Question 1=-10-10-1010-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=-10-1010-10-10-10-10-10-10
Question 4=-10-1010-10-10-10-10-10-10
Question 5=-1010-10-10-10-10-10-10-10
Question 1=10-10-10-10-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=-10-1010-10-10-10-10-10-10
Question 4=-10-1010-10-10-10-10-10-10
Question 5=-1010-10-10-10-10-10-10-10
Question 1=-1010-10-10-10-10-10-10-10
Question 2=-10-10-10-10-1010-10-10-10
Question 3=-10-1010-10-10-10-10-10-10
Question 4=-10-1010-10-10-10-10-10-10
Question 5=-1010-10-10-10-10-10-10-10
Question 1=-1010-10-10-10-10-10-10-10
Question 2=-10-10-10-1010-10-10-10-10
Question 3=-10-1010-10-10-10-10-10-10
16.5. DESCRIPCIN DEL EJ ERCICIO EFECTUADO 445
Question 4=-10-10-1010-10-10-10-10-10
Question 5=-1010-10-10-10-10-10-10-10
Question 1=-1010-10-10-10-10-10-10-10
Question 2=-10-10-10-1010-10-10-10-10
Question 3=-10-1010-10-10-10-10-10-10
Question 4=-10-10-1010-10-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
Question 1=-10-10-1010-10-10-10-10-10
Question 2=-10-10-10-1010-10-10-10-10
Question 3=-10-1010-10-10-10-10-10-10
Question 4=-10-10-1010-10-10-10-10-10
Question 5=-10-1010-10-10-10-10-10-10
Question 1=-10-10-1010-10-10-10-10-10
Question 2=-10-10-10-1010-10-10-10-10
Question 3=-10-1010-10-10-10-10-10-10
Question 4=-10-10-1010-10-10-10-10-10
Question 5=-1010-10-10-10-10-10-10-10
Por ltimo y utilizando el componente User I nterface se especica el perl de
pginaquesetoma como ideal para ser sometidaaunaoperacin dedesalojoy el sistema
produce una lista de las pginas ordenada de mayor a menor respecto de su grado de
ajusteal perl ingresado; esto permite ingresar distintos perles de pginas ideales para
el desalojo, ya sea considerando las pautas de alguna de las estrategias de reposicin o
pautas mixtas, que no se ajusten estrechamente a ninguna estrategia y que tengan en
cuenta ms bien un conjunto de pautas, propias de las distintas estrategias, aunque sin
ajustarseestrictamentea ninguna deellas.
Losealadoprecedentementetieneun gran valor didcticoy un potencial muy amplio
de utilizacin en los Sistemas Operativos, para lo cual obviamente habr que insertar el
SE en el ncleo del Sistema Operativo, permitiendo queel mismo adecesu estrategia de
reposicin de manera dinmica y exible, atendiendo a situaciones externas ajenas a las
estrategias depaginacin.
Esta situacin deajustedinmico delas estrategias depaginacin en general y dere-
posicinenparticular puederesultar demuchointersdesdeel puntodevistadeoptimizar
losrecursoscomputacionaleslograndomayor performance(desempeo) permitiendoajus-
tar la estrategia de reposicin a niveles superiores de planicacin en el uso de recursos
446 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
por parte del Sistema Operativo, por ejemplo, cuando se pretende optimizar la plani-
cacin del procesador (o procesadores) mediante un esquema de planicacin de niveles
mltiples, es decir cuando para efectuar la asignacin del procesador a los distintos pro-
cesos o cuando sedebeseleccionar una pgina para reposicin, no setienesolo en cuenta
una estrategia pura de asignacin de procesador ni una estrategia pura de reposicin de
pginas, sino que por el contrario, ambas estrategias intercambian informacin y tratan
detomar decisiones teniendo en cuenta no solo la situacin propia del recurso quedeben
administrar demanera directa (procesador o memoria) sino tambin la situacin espec-
ca del otro recurso administrado por una estrategia deotro tipo, pero con el objetivo de
lograr decisiones de administracin de recursos que tengan una visin ms amplia y un
objetivo deoptimizacin global y no solo local decada recurso administrado.
16.6 Programas Desarrollados y Datos y Ejecuciones
Segn semencion anteriormente, en la segunda partedel caso deestudio seha desarro-
llado un SE sencillo utilizando el software Mathematica, que evaluando una pgina de
memoriavirtual enparticular, permiteindicar bajoquestrategiasdereposicin(desalojo)
sera seleccionada dicha pgina para ser desalojada dela memoria principal.
El programa desarrollado y algunas ejecuciones se encuentran en el archivo pagi-
nas.ma.
El contenido del archivo paginas.ma utilizado puedeconsultarse en los Anexos; un
detalleparcial es el siguiente:
(* Ejemplo deSistema Experto depaginacin en memoria virtual *)
Paginacion[Prior_ , Verosimilitudes_ , DatosPagina_ ] :=
Module[{Prior1=Prior, Posterior, i, j, aux, aux1,
n = Length[Prior], m=Length[DatosPagina]},
Print[********************************************];
Print[* Anlisis del encuadredela pgina *];
Print[* segn las estrategias depaginacin, *];
Print[* lo quedeterminar la posibilidad deser *];
Print[* desalojada dela memoria principal *];
Print[* segn las distintas estrategias. *];
Print[********************************************];
Do[
Posterior ={};
Do[AppendTo[Posterior, If[DatosPagina[[j]] > 0,
16.6. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 447
(Verosimilitudes[i, Abs[DatosPagina[[j]]]]) * Prior1[[i]],
(1.0- Verosimilitudes[[i, Abs[DatosPagina[[j]]]]])
* Prior1[[i]]]]
, {i, 1, n}];
aux = Sum[Posterior[[i]], {i, 1, n}];
Prior1= Posterior / aux;
aux1= Table[{Prior1[[i]], Estrategias[[i]]}, {i, 1, n}];
aux1= Sort[aux1];
Print[ ]; Print[ ];
Print[Resultados tras la consideracin dela pauta:];
Print[ , Pautas[[Abs[DatosPagina[[j]]]]]];
Print[ ];
Do[Print[aux1[[i, 2]], : , aux1[[i, 1]]]
, {i, n, 1, -1}];
, {j, 1, m}];
Print[ ]; Print[ ];
Print[****************************************************];
Print[Resultado nal:];
Print[ La pgina tienelas siguientes probabilidades];
Print[ deser removida dela memoria principal segn];
Print[ las estrategias consideradas:];
Print[ ];
Do[Print[aux1[[i, 2]], : , aux1[[i, 1]]]
, {i, n, 1, -1}];
Print[****************************************************];
]
Estrategias = {Tiempo estimado deno utilizacin mayor,
Reposicin FIFO - Tiempo mayor en memoria principal,
448 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin LRU - Pgina menos recientementeusada,
Reposicin LFU - Pgina menos frecuentementeusada,
Reposicin NUR - Pgina no usada recientemente};
Pautas ={Tiempo hasta la prxima utilizacin: - 5.000miliseg.,
Tiempo hasta la prxima utilizacin: 5.000- 10.000miliseg.,
Tiempo hasta la prxima utilizacin: 10.001- 20.000miliseg.,
Tiempo hasta la prxima utilizacin: 20.001- 40.000miliseg.,
Tiempo hasta la prxima utilizacin: +40.000miliseg.,
Tiempo en mem. ppal.: - 1.000miliseg.,
Tiempo en mem. ppal.: 1.000- 3.000miliseg.,
Tiempo en mem. ppal.: 3.001- 6.000miliseg.,
Tiempo en mem. ppal.: 6.001- 9.000miliseg.,
Tiempo en mem. ppal.: 9.001- 30.000miliseg.,
Tiempo en mem. ppal.: +30.000miliseg.,
Tiempo en mem. ppal. s/ uso: - 5.000miliseg.,
Tiempo en mem. ppal. s/ uso: 5.000- 10.000miliseg.,
Tiempo en mem. ppal. s/ uso: 10.001- 15.000miliseg.,
Tiempo en mem. ppal. s/ uso: 15.001- 20.000miliseg.,
Tiempo en mem. ppal. s/ uso: 20.001- 25.000miliseg.,
Tiempo en mem. ppal. s/ uso: 25.001- 30.000miliseg.,
Tiempo en mem. ppal. s/ uso: 30.001- 35.000miliseg.,
Tiempo en mem. ppal. s/ uso: 35.001- 40.000miliseg.,
Tiempo en mem. ppal. s/ uso: +40.000miliseg.,
Intensidad deutilizacin dela pgina: Menos de50veces,
Intensidad deutilizacin dela pgina: Entre50y 100veces,
Intensidad deutilizacin dela pgina: Entre101y 200veces,
Intensidad deutilizacin dela pgina: Entre201y 300veces,
Intensidad deutilizacin dela pgina: Ms de300veces,
16.6. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 449
Pgina no referenciada,
Pgina s referenciada y no modicada,
Pgina s referenciada y s modicada};
Prior = {0.1, 0.2, 0.25, 0.3, 0.5};
Verosimilitudes =
{{0.15, 0.25, 0.40, 0.60, 0.95,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01},
{0.01, 0.01, 0.01, 0.01, 0.01,
0.10, 0.20, 0.40, 0.60, 0.80, 1.00,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01},
{0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.85, 1.00,
0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01},
{0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
1.00, 0.70, 0.50, 0.25, 0.05,
0.01, 0.01, 0.01},
{0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
450 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
0.01, 0.01, 0.01, 0.01, 0.01,
1.00, 0.50, 0.05}};
(* Ejemplo depgina con mucho tiempo *)
(* estimado hasta la prxima utilizacin *)
DatosPagina =
{-1, -2, -3, -4, 5,
-6, -7, -8, -9, -10, -11,
-12, -13, -14, -15, -16, -17, -18, -19, -20,
-21, -22, -23, -24, -25,
-26, -27, -28};
Paginacion[Prior, Verosimilitudes, DatosPagina]
********************************************
* Anlisis del encuadredela pgina *
* segn las estrategias depaginacin, *
* lo quedeterminar la posibilidad deser *
* desalojada dela memoria principal *
* segn las distintas estrategias. *
********************************************
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: - 5.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.374291
Reposicin LFU - Pgina menos frecuentementeusada: 0.224575
Reposicin LRU - Pgina menos recientementeusada: 0.187146
Reposicin FIFO - Tiempo mayor en memoria principal: 0.149716
Tiempo estimado deno utilizacin mayor: 0.0642722
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 5.000- 10.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.380215
16.6. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 451
Reposicin LFU - Pgina menos frecuentementeusada: 0.228129
Reposicin LRU - Pgina menos recientementeusada: 0.190108
Reposicin FIFO - Tiempo mayor en memoria principal: 0.152086
Tiempo estimado deno utilizacin mayor: 0.0494617
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 10.001- 20.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.387771
Reposicin LFU - Pgina menos frecuentementeusada: 0.232663
Reposicin LRU - Pgina menos recientementeusada: 0.193885
Reposicin FIFO - Tiempo mayor en memoria principal: 0.155108
Tiempo estimado deno utilizacin mayor: 0.0305725
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 20.001- 40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.394967
Reposicin LFU - Pgina menos frecuentementeusada: 0.23698
Reposicin LRU - Pgina menos recientementeusada: 0.197484
Reposicin FIFO - Tiempo mayor en memoria principal: 0.157987
Tiempo estimado deno utilizacin mayor: 0.0125818
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: +40.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.547613
Reposicin NUR - Pgina no usada recientemente: 0.180955
Reposicin LFU - Pgina menos frecuentementeusada: 0.108573
Reposicin LRU - Pgina menos recientementeusada: 0.0904773
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0723819
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: - 1.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.551241
452 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin NUR - Pgina no usada recientemente: 0.182153
Reposicin LFU - Pgina menos frecuentementeusada: 0.109292
Reposicin LRU - Pgina menos recientementeusada: 0.0910766
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0662375
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 1.000- 3.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.558338
Reposicin NUR - Pgina no usada recientemente: 0.184499
Reposicin LFU - Pgina menos frecuentementeusada: 0.110699
Reposicin LRU - Pgina menos recientementeusada: 0.0922493
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0542145
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 3.001- 6.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.570523
Reposicin NUR - Pgina no usada recientemente: 0.188525
Reposicin LFU - Pgina menos frecuentementeusada: 0.113115
Reposicin LRU - Pgina menos recientementeusada: 0.0942625
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0335743
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 6.001- 9.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.582172
Reposicin NUR - Pgina no usada recientemente: 0.192374
Reposicin LFU - Pgina menos frecuentementeusada: 0.115425
Reposicin LRU - Pgina menos recientementeusada: 0.0961871
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0138424
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 9.001- 30.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.588674
16.6. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 453
Reposicin NUR - Pgina no usada recientemente: 0.194523
Reposicin LFU - Pgina menos frecuentementeusada: 0.116714
Reposicin LRU - Pgina menos recientementeusada: 0.0972615
Reposicin FIFO - Tiempo mayor en memoria principal: 0.00282767
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: +30.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.590344
Reposicin NUR - Pgina no usada recientemente: 0.195075
Reposicin LFU - Pgina menos frecuentementeusada: 0.117045
Reposicin LRU - Pgina menos recientementeusada: 0.0975373
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: - 5.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.595625
Reposicin NUR - Pgina no usada recientemente: 0.19682
Reposicin LFU - Pgina menos frecuentementeusada: 0.118092
Reposicin LRU - Pgina menos recientementeusada: 0.0894635
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 5.000- 10.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.60603
Reposicin NUR - Pgina no usada recientemente: 0.200258
Reposicin LFU - Pgina menos frecuentementeusada: 0.120155
Reposicin LRU - Pgina menos recientementeusada: 0.0735567
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 10.001- 15.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.619376
454 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin NUR - Pgina no usada recientemente: 0.204668
Reposicin LFU - Pgina menos frecuentementeusada: 0.122801
Reposicin LRU - Pgina menos recientementeusada: 0.0531551
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 15.001- 20.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.632623
Reposicin NUR - Pgina no usada recientemente: 0.209045
Reposicin LFU - Pgina menos frecuentementeusada: 0.125427
Reposicin LRU - Pgina menos recientementeusada: 0.0329042
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 20.001- 25.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.643096
Reposicin NUR - Pgina no usada recientemente: 0.212506
Reposicin LFU - Pgina menos frecuentementeusada: 0.127504
Reposicin LRU - Pgina menos recientementeusada: 0.0168934
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 25.001- 30.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.649637
Reposicin NUR - Pgina no usada recientemente: 0.214668
Reposicin LFU - Pgina menos frecuentementeusada: 0.128801
Reposicin LRU - Pgina menos recientementeusada: 0.00689504
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 30.001- 35.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.652774
16.6. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 455
Reposicin NUR - Pgina no usada recientemente: 0.215704
Reposicin LFU - Pgina menos frecuentementeusada: 0.129422
Reposicin LRU - Pgina menos recientementeusada: 0.0020995
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 35.001- 40.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.653939
Reposicin NUR - Pgina no usada recientemente: 0.216089
Reposicin LFU - Pgina menos frecuentementeusada: 0.129653
Reposicin LRU - Pgina menos recientementeusada: 0.000318673
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: +40.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.654147
Reposicin NUR - Pgina no usada recientemente: 0.216158
Reposicin LFU - Pgina menos frecuentementeusada: 0.129695
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Menos de50veces
Tiempo estimado deno utilizacin mayor: 0.75163
Reposicin NUR - Pgina no usada recientemente: 0.24837
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre50y 100veces
Tiempo estimado deno utilizacin mayor: 0.75163
456 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin NUR - Pgina no usada recientemente: 0.24837
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre101y 200veces
Tiempo estimado deno utilizacin mayor: 0.75163
Reposicin NUR - Pgina no usada recientemente: 0.24837
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre201y 300veces
Tiempo estimado deno utilizacin mayor: 0.75163
Reposicin NUR - Pgina no usada recientemente: 0.24837
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Ms de300veces
Tiempo estimado deno utilizacin mayor: 0.75163
Reposicin NUR - Pgina no usada recientemente: 0.24837
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina no referenciada
Tiempo estimado deno utilizacin mayor: 1.
16.6. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 457
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y no modicada
Tiempo estimado deno utilizacin mayor: 1.
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y s modicada
Tiempo estimado deno utilizacin mayor: 1.
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
****************************************************
Resultado nal:
La pgina tienelas siguientes probabilidades
deser removida dela memoria principal segn
las estrategias consideradas:
Tiempo estimado deno utilizacin mayor: 1.
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
458 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
****************************************************
Este programa ayuda a comprender las estrategias consideradas, ya que para una
pginacon un perl determinado, esdecir con determinadascaractersticas, indicabajo
questrategias es ms probablequedicha pgina sea seleccionada para el desalojo.
En este caso se tiene en cuenta para el anlisis la informacin propia de una pgina
en particular y se despliega en pantalla cmo evolucionan los clculos hasta concluir con
todo el anlisis de la informacin suministrada con cada pgina, teniendo en cuenta los
valores deprobabilidades asignados en el programa a priori.
Ademssehan efectuadoalgunasmodicacionesal programainicial paginas.ma pa-
ra permitirlerealizar el anlisis de un gran nmero de pginas generadas aleatoriamente
(simulando deesta manera situaciones reales depginas en un sistema decomputacin),
para realizar con los resultados obtenidos un sencillo grco denmero deveces quecada
una delas estrategias consideradas resulta la ms apropiada, segn cada pgina conside-
rada, para producir el desalojo de la misma. Este segundo programa y el resultado de
algunas ejecuciones seencuentran en el archivo paginas2.ma, cuyo contenido sedetalla
seguidamente:
(* Ejemplo deSistema Experto depaginacin en memoria virtual *)
Paginacion[Prior_ , Verosimilitudes_ , DatosPagina_ ] :=
Module[{Prior1=Prior, Posterior, i, j, aux, aux1,
n = Length[Prior], m=Length[DatosPagina]},
Do[
Posterior ={};
Do[AppendTo[Posterior, If[DatosPagina[[j]] > 0,
(Verosimilitudes[i, Abs[DatosPagina[[j]]]]) * Prior1[[i]],
(1.0- Verosimilitudes[[i, Abs[DatosPagina[[j]]]]])
* Prior1[[i]]]]
, {i, 1, n}];
aux =Sum[Posterior[[i]], {i, 1, n}];
Prior1= Posterior / aux;
aux1=Table[{Prior1[[i]], Estrategias[[i]]}, {i, 1, n}];
aux1=Sort[aux1];
, {j, 1, m}];
Do[
16.6. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 459
If[aux1[[n, 2]] ==Estrategias[[k1]],
Contador[[k1]] = Contador[[k1]] +1];
,{k1, 1, n}
];
]
Estrategias = {Tiempo estimado deno utilizacin mayor,
Reposicin FIFO - Tiempo mayor en memoria principal,
Reposicin LRU - Pgina menos recientementeusada,
Reposicin LFU - Pgina menos frecuentementeusada,
Reposicin NUR - Pgina no usada recientemente};
Contador = {0, 0, 0, 0, 0};
Pautas = {Tiempo hasta la prxima utilizacin: - 5.000miliseg.,
Tiempo hasta la prxima utilizacin: 5.000- 10.000miliseg.,
Tiempo hasta la prxima utilizacin: 10.001- 20.000miliseg.,
Tiempo hasta la prxima utilizacin: 20.001- 40.000miliseg.,
Tiempo hasta la prxima utilizacin: + 40.000miliseg.,
Tiempo en mem. ppal.: - 1.000miliseg.,
Tiempo en mem. ppal.: 1.000- 3.000miliseg.,
Tiempo en mem. ppal.: 3.001- 6.000miliseg.,
Tiempo en mem. ppal.: 6.001- 9.000miliseg.,
Tiempo en mem. ppal.: 9.001- 30.000miliseg.,
Tiempo en mem. ppal.: +30.000miliseg.,
Tiempo en mem. ppal. s/ uso: - 5.000miliseg.,
Tiempo en mem. ppal. s/ uso: 5.000- 10.000miliseg.,
Tiempo en mem. ppal. s/ uso: 10.001- 15.000miliseg.,
Tiempo en mem. ppal. s/ uso: 15.001- 20.000miliseg.,
Tiempo en mem. ppal. s/ uso: 20.001- 25.000miliseg.,
Tiempo en mem. ppal. s/ uso: 25.001- 30.000miliseg.,
460 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Tiempo en mem. ppal. s/ uso: 30.001- 35.000miliseg.,
Tiempo en mem. ppal. s/ uso: 35.001- 40.000miliseg.,
Tiempo en mem. ppal. s/ uso: +40.000miliseg.,
Intensidad deutilizacin dela pgina: Menos de50veces,
Intensidad deutilizacin dela pgina: Entre50y 100veces,
Intensidad deutilizacin dela pgina: Entre101y 200veces,
Intensidad deutilizacin dela pgina: Entre201y 300veces,
Intensidad deutilizacin dela pgina: Ms de300veces,
Pgina no referenciada,
Pgina s referenciada y no modicada,
Pgina s referenciada y s modicada};
Prior ={0.1, 0.2, 0.25, 0.3, 0.5};
Verosimilitudes =
{{0.15, 0.25, 0.40, 0.60, 0.95,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01},
{0.01, 0.01, 0.01, 0.01, 0.01,
0.10, 0.20, 0.40, 0.60, 0.80, 1.00,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01},
{0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.85, 1.00,
0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01},
16.6. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 461
{0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
1.00, 0.70, 0.50, 0.25, 0.05,
0.01, 0.01, 0.01},
{0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01,
1.00, 0.50, 0.05}};
(* Generacin deperles depginas *)
Print[********************************************];
Print[* Anlisis del encuadredela pgina *];
Print[* segn las estrategias depaginacin, *];
Print[* lo quedeterminar la posibilidad deser *];
Print[* desalojada dela memoria principal *];
Print[* segn las distintas estrategias. *];
Print[********************************************];
Print[ ];
Print[ Para las pginas consideradas, cuyo perl ];
Print[ segenera aleatoriamente, la mayor probabilidad ];
Print[ deser removidas dela memoria principal ];
Print[ correspondea las estrategias:];
Print[ ];
Contador = {0, 0, 0, 0, 0};
Do[
DatosPagina =
{-1, -2, -3, -4, -5,
462 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
-6, -7, -8, -9, -10, -11,
-12, -13, -14, -15, -16, -17, -18, -19, -20,
-21, -22, -23, -24, -25,
-26, -27, -28};
posinit=Random[Integer, {1, 5}];
DatosPagina[[posinit]] = DatosPagina[[posinit]] * (-1);
posinit=Random[Integer, {6, 11}];
DatosPagina[[posinit]] = DatosPagina[[posinit]] * (-1);
posi =posinit;
If[posi <10, posinit =12,
If[posi =10, posinit=Random[Integer, {13, 17}],
If[posi =11, posinit=Random[Integer, {18, 20}]
];
];
];
DatosPagina[[posinit]] = DatosPagina[[posinit]] * (-1);
posinit=Random[Integer, {21, 25}];
DatosPagina[[posinit]] = DatosPagina[[posinit]] * (-1);
posinit=Random[Integer, {26, 28}];
DatosPagina[[posinit]] = DatosPagina[[posinit]] * (-1);
Paginacion[Prior, Verosimilitudes, DatosPagina];
,{k, 1, 200}(* Sesimulan 200pginas *)
];
n = Length[Prior];
aux1=Table[{Contador[[i]], Estrategias[[i]]}, {i, 1, n}];
aux1=Sort[aux1];
Do[Print[aux1[[i, 2]], : , aux1[[i, 1]]]
, {i, n, 1, -1}
16.6. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 463
];
Print[ ];
Print[****************************************************];
Print[ ];
Print[Grco deOcurrencia deEstrategias];
Print[************************************];
Contador = Sort [Contador, Greater];
ListPlot[Contador,PlotStyle->
{RGBColor[1,0.6,0.3],PointSize[0.15]},
AxesLabel->{Estrategias,Ocurrencias},
AxesOrigin->{0,0}];
********************************************
* Anlisis del encuadredela pgina *
* segn las estrategias depaginacin, *
* lo quedeterminar la posibilidad deser *
* desalojada dela memoria principal *
* segn las distintas estrategias. *
********************************************
Para las pginas consideradas, cuyo perl
segenera aleatoriamente, la mayor probabilidad
deser removidas dela memoria principal
correspondea las estrategias:
Tiempo estimado deno utilizacin mayor: 111
Reposicin NUR - Pgina no usada recientemente: 66
Reposicin LFU - Pgina menos frecuentementeusada: 23
Reposicin LRU - Pgina menos recientementeusada: 0
Reposicin FIFO - Tiempo mayor en memoria principal: 0
****************************************************
464 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Figura~16.5: Nmero deocurrencias segn las estrategias depaginacin.
Grco deOcurrencia deEstrategias
************************************
Ver Figura 16.5dela pgina 464.
16.7 Resultados y Conclusiones
Los resultados obtenidos al operar tanto con el SE generado con el ESB como con el
SE generado con Mathematica, son muy ilustrativos y ayudan a la comprensin de los
conceptos involucrados, tanto de SE como de estrategias de reposicin en esquemas de
memoria virtual.
Asimismo tambin seobserva, como era deesperarse, queen todos los casos los resul-
tados son coherentes con los conceptos tericos y permiten reforzar el entendimiento de
los mismos.
Ademssehacenotar queel archivopaginas2.ma indicadoprecedentementecontiene
una simulacin para doscientas pginas, pero tambin es han efectuado distintas pruebas
concantidadesmayores, devariosmilesdepginas, obtenindoseresultadosdeocurrencias
similares.
Losresultadosobtenidos permiten tambin concluir loquelateora anticipaen el sen-
tido de que no es eciente desde este punto de vista un Sistema Operativo que siempre
utilicelamismaestrategiadereposicindepginas, puestoqueparadistintasconguracio-
nes (caractersticas) de pginas las distintas estrategias produciran selecciones distintas,
queobviamenterepercutiran demanera diferenteen la performanceo desempeo global
del sistema, puesto que las decisiones de reposicin afectan tambin a la planicacin de
las operaciones de entrada / salida y tambin, aunque indirectamente, a las operaciones
deplanicacin del procesador (o procesadores).
Por lo sealado anteriormente, sera convenientequelos Sistemas Operativos incorpo-
raran en susrespectivosncleosSE queefecten lasseleccionesdepginasparareposicin
demanera inteligente, con exibilidad y adaptatividad a cada situacin puntual y con-
creta, queadems es naturalmentedinmica, especialmenteen sistemas con multiprogra-
16.7. RESULTADOS Y CONCLUSIONES 465
macin, multitarea y multiprocesamiento, donde se dan la concurrencia y el paralelismo
en la ejecucin delos distintos procesos.
466 CAPTULO 16. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Captulo 17
Anlisis del Rendimiento de un
Subsistema de Disco de Una
Peticin a la Vez con Mathematica
17.1 I ntroduccin
Para el desarrollo del presentecaso deestudio seha utilizado el softwareMathematica,
unamuy poderosaherramientaparael clculo numrico y el especialmenteparael clculo
simblico [5, Castillo, Iglesias, Gutirrez, Alvarez y Cobo].
El softwaremencionado seha utilizado para la realizacin deun algoritmo que imple-
mente el anlisis de rendimiento de un subsistema de disco de una peticin a la vez,
utilizando Teora de Colas.
El estudio delas simulaciones efectuadas con el algoritmo sealado permiteevaluar el
comportamiento esperado de un subsistema de disco de una peticin a la vez cuando es
sometido a distintas cargas de trabajo, es decir a conjuntos de peticiones de operaciones
deacceso a los discos queconguran cantidades de trabajo distintas a ser atendidas.
Los aspectos tericos relacionados han sido desarrollados en los Captulos Entrada /
Salida y Modelado Analtico en Relacin al Rendimiento.
17.2 Objetivo del Caso de Estudio
El objetivo del presente caso consisti en la realizacin de un programa en Mathematica
(Colas1pn.m) que implementara el algoritmo de anlisis de rendimiento para el caso
sealado.
Asimismo tambin se estableci como objetivo del caso la inclusin en el programa
dela posibilidad degenerar informacin detallada respecto delos clculos efectuados con
las distintas simulaciones y un anlisis estadstico de los resultados logrados, como as
tambin un grco ilustrativo delos mismos, todo ello incluido en el archivo deejecucin
y deresultados (Colas1en.ma).
467
468 CAPTULO 17. SUBSISTEMA DE DISCO DE UNA PETICIN
17.3 Descripcin del Problema Planteado
Una descripcin detallada del problema planteado puedeconsultarseen el Captulo Mo-
delado Analtico en Relacin al Rendimiento, siendo especialmentepertinenteslostemas
relacionadosconProcesodePoisson y Anlisisdel Rendimientodeun SubsistemadeDisco
- Caso I .
17.4 Descripcin del Algoritmo Utilizado
Al igual queen el apartadoanterior, unadescripcin detalladadelosfundamentostericos
y de las frmulas matemticas resultantes y aplicables a este caso, puede consultarse
en el Captulo Modelado Analtico en Relacin al Rendimiento, siendo especialmente
pertinente el tema sobre Anlisis del Rendimiento de un Subsistema de Disco - Caso I,
cuyoplanteoresumidoy esquemanal defrmulasaplicables setranscribeacontinuacin
[7, Deitel]:
Caso I :
El dispositivo dedisco contieneun solo brazo.
Solo puededar servicio a una peticin a la vez.
La tasa de servicio es .
Solucin al caso I
S
i
" es el estado del sistema cuando hay i peticiones de disco al dispositivo de
servicio dedisco.
La tasa de llegadas depeticiones es independientedel estado del sistema:
La probabilidad de la transicin S
i
" ! S
i +1
" en el siguienteintervalo detiempo
t es t.
Seconsidera al sistema como un proceso de nacimiento y muerte continuo de cadena
sencilla y estados innitos con:
d
i
= 0 con i = 0.
d
i
= con i = 1, 2, 3, ...
b
i
= con i = 0, 1, 2, ...
Solo una peticin puedeser servida en un momento dado y sesirvea una tasa .
> :
Asegura que la longitud de la cola de peticiones en espera no crezca indeni-
damente.
Seutilizan las relaciones:
P
i +1
=(b
i
/ d
i +1
) P
i
; i = 0, 1, 2, ...
17.5. PROGRAMA DESARROLLADO 469
P
i
P
i
=1.
P
1
= ( / ) P
0
.
P
2
= ( / ) P
1
=( / )
2
P
0
.
P
i
= ( / )
i
P
0
.
P
i
P
i
=1=
P
i
( / )
i
P
0
= 1/ [1- ( / )] P
0
.
P
0
=1- ( / ): probabilidad de que el sistema se encuentre ocioso.
P
i
= ( / )
i
P
0
= [1- ( / )] ( / )
i
. i = 0, 1, 2, ...
P
i
= [1- ( / )] ( / )
i
: probabilidad que hayan i peticiones pendientes.
El nmero promedio de peticiones pendientes es:
E(i) =
P
i
i P
i
=
P
i
i [1- ( / )] ( / )
i
=[1- ( / )]
P
i
i ( / )
i
=
E(i) = [1- ( / )] ( / )
P
i
i ( / )
i 1
=
E(i) = [1- ( / )] ( / ) {1/ [1- ( / )
2
]}=
E(i) =( / ) [1- ( / )
1
].
17.5 Programa Desarrollado
El programa desarrollado (Colas1pn.m), codicado en Mathematica utilizando especial-
mentelasfacilidadesdeclculo numrico, anlisisestadstico y gracacin, implementael
ingreso interactivo de datos para la simulacin, el clculo de los resultados detallados y
nales y el desplieguey almacenamiento delos mismos deuna manera sencilla, guiada y
explicativa.
El cdigo del programa desarrollado es el siguiente:
(* Teora deColas *)
(* Anlisis del rendimiento deun subsistema dedisco *)
(* Caso 1: El subsistema dedisco solo puededar servicio a una peticin a la vez. *)
(* Referencias y aclaraciones:
mu: Tasa promedio deservicio para un servidor.
mu = 1/ Es(s)
Es(s): Tiempo deespera deservicio para un cliente.
lambda: Tasa promedio dellegadas declientes al sistema decolas.
lambda =1/ Es(tau)
470 CAPTULO 17. SUBSISTEMA DE DISCO DE UNA PETICIN
Es(tau): Tiempo deespera entrellegadas.
Es(tau) =1/ lambda
mu >lambda: Restriccin para quela longitud dela cola depeticiones no crezca inde-
nidamente.
tau: Intervalo entrellegadas.
Pn: Probabilidad dequehaya n clientes en el sistema decolas en estado estable.
P0: Probabilidad dequeel sistema seencuentreocioso.
P0=1-(lambda/ mu)
Pri: Probabilidad dequehayan i peticiones pendientes.
Pri = (1-(lambda/ mu))(lambda/ mu)^i
(i=0,1,2,3,..)
Es(i): N

promedio depeticiones pendientes.


Es(i) =(lambda/ mu)(1-(lambda/ mu))^(-1) *)
BeginPackage[Colas1pn]
<<StatisticsLinearRegression
Colas1pn::usage=
Colas1pn[mu,lambda,i]
Anlisis del rendimiento deun subsistema
dedisco quesolo puededar servicio a una
peticin a la vez.
Colocar los valores mximos para mu, lambda
y el nmero depeticiones pendientes.
Colas1pn[inmu_ ,inlambda_ ,ini_ ]:=
Colas1pnAux[inmu,inlambda,ini];
Colas1pnAux[inmu_ ,inlambda_ ,ini_ ]:=
Module[{coef, Pri, Es, listacoef, listapetpend,
result},
Caso1[mu_ ,lambda_ ,i_ ]:=
If[(N[lambda/ mu] >= 1.),
17.5. PROGRAMA DESARROLLADO 471
Print[Para quela cola no
crezca indenidamentedebe
ser Mu mayor queLambda.],
{coef=N[lambda/ mu,6],
Pri=N[(1.-lambda/ mu)*(lambda/ mu)^i,6],
Es=N[lambda/ mu*(1.-lambda/ mu)^(-1.),6],
Print[Anlisis del rendimiento deun]
Print[subsistema dedisco.]
Print[Resultados del Caso 1:]
Print[El subsistema dedisco solo]
Print[puededar servicio a una]
Print[peticin a la vez.]
Print[Los valores demu, lambda y el]
Print[coecienteson los siguientes:]
Print[N[{mu,lambda,coef}]]
Print[La cola no crecer]
Print[indenidamentedebido a que]
Print[Mu es mayor queLambda.]
Print[Las probabilidades detener]
Print[0,1,2,3,4,...peticiones]
Print[pendientes son las siguientes:]
Print[N[Pri]]
Print[El promedio depeticiones]
Print[pendientes es el siguiente:]
Print[N[Es]]
Print[******************************]
AppendTo[listacoef,coef]
AppendTo[listapetpend,Es]
472 CAPTULO 17. SUBSISTEMA DE DISCO DE UNA PETICIN
AppendTo[result,{coef,Es}]
}
];
Modelo1[mum_ ,lambdam_ ,im_ ]:=
If[(N[lambdam/ mum] >=1.),
Throw[Para quela cola no
crezca indenidamentedebe
ser Mu mayor queLambda.],
For[i=10, i<=mum, i+=10,
For[j=1, j<=lambdam, j+=2,
Caso1[i,j,{Range[0,im,1]}]
];
];
];
listacoef={};
listapetpend={};
result={};
(* Colocar los valores mximos para mu, lambda *)
(* y el nmero depeticiones pendientes. *)
Modelo1[inmu,inlambda,ini];
Print[ ];
Print[*****************************];
Print[******* Resmen nal *******];
Print[*****************************];
Print[Lista decoecientes lambda/ mu:];
Print[listacoef];
Print[Promedio depeticiones];
Print[pendientes para cada coeciente:];
17.6. DATOS Y EJ ECUCIONES 473
Print[listapetpend];
Print[Pares (coecientes,promedio):];
Print[result];
Print[Grco depromedio depeticiones];
Print[pendientes para cada coecientey];
Print[Anlisis deregresin lineal:];
ListPlot[result,PlotStyle->
{RGBColor[1,0.6,0.3],PointSize[0.023]},
AxesLabel->{Coecientes,Esperas},
AxesOrigin->{0,0}];
Regress[result,{1,x,x^2,x^3},x,
OutputList->{BestFit,
BestFitCoecients,ANOVATable,
CondenceIntervalTable,
CovarianceMatrix,CorrelationMatrix,
EstimatedVariance,FitResiduals,
ParameterTable,PredictedResponse,
RSquared,AdjustedRSquared}]
]
EndPackage[];
17.6 Datos y Ejecuciones
Los datos para la simulacin seintroducen por teclado, siendo ellos los valores de , y
el nmero depeticiones pendientes.
Los resultados detallados de las ejecuciones se muestran paso a paso en pantalla y
pueden ser grabados en el mismo archivo dedatos y ejecuciones, queen estecaso ha sido
el archivo Colas1en.ma.
El contenido del mencionado archivo luego de varias ejecuciones de evaluacin puede
consultarse en los Anexos; un detalle parcial es el siguiente, aclarndose que no se ha
incluido en el contenido mostrado el anlisis estadstico detallado:
<<ExamplesColas1pn
474 CAPTULO 17. SUBSISTEMA DE DISCO DE UNA PETICIN
? Colas1pn
Colas1pn[mu,lambda,i]
Anlisis del rendimiento de un subsistema de disco que solo puede dar servicio a una
peticin a la vez.
Colocar los valores mximos para mu, lambda y el nmero depeticiones pendientes.
Colas1pn[20,10,3]
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 1., 0.1}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.9, 0.09, 0.009, 0.0009}}
El promedio depeticiones pendientes es el siguiente:
0.111111
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 3., 0.3}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.7, 0.21, 0.063, 0.0189}}
El promedio depeticiones pendientes es el siguiente:
0.428571
******************************
Anlisis del rendimiento deun subsistema dedisco.
17.6. DATOS Y EJ ECUCIONES 475
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 5., 0.5}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.5, 0.25, 0.125, 0.0625}}
El promedio depeticiones pendientes es el siguiente:
1.
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 7., 0.7}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.3, 0.21, 0.147, 0.1029}}
El promedio depeticiones pendientes es el siguiente:
2.33333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 9., 0.9}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
476 CAPTULO 17. SUBSISTEMA DE DISCO DE UNA PETICIN
{{0.1, 0.09, 0.081, 0.0729}}
El promedio depeticiones pendientes es el siguiente:
9.
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 1., 0.05}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.95, 0.0475, 0.002375, 0.00011875}}
El promedio depeticiones pendientes es el siguiente:
0.0526316
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 3., 0.15}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.85, 0.1275, 0.019125, 0.00286875}}
El promedio depeticiones pendientes es el siguiente:
0.176471
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
17.6. DATOS Y EJ ECUCIONES 477
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 5., 0.25}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.75, 0.1875, 0.046875, 0.0117188}}
El promedio depeticiones pendientes es el siguiente:
0.333333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 7., 0.35}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.65, 0.2275, 0.079625, 0.0278688}}
El promedio depeticiones pendientes es el siguiente:
0.538462
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 9., 0.45}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.55, 0.2475, 0.111375, 0.0501187}}
478 CAPTULO 17. SUBSISTEMA DE DISCO DE UNA PETICIN
Figura~17.1: Promedio depeticiones pendientes.
El promedio depeticiones pendientes es el siguiente:
0.818182
******************************
*****************************
******* Resmen nal *******
*****************************
Lista decoecientes lambda/ mu:
{0.1, 0.3, 0.5, 0.7, 0.9, 0.05, 0.15, 0.25, 0.35, 0.45}
Promedio depeticiones pendientes para cada coeciente:
{0.111111, 0.428571, 1., 2.33333, 9., 0.0526316, 0.176471, 0.333333, 0.538462, 0.818182}
Pares (coecientes,promedio):
{{0.1, 0.111111}, {0.3, 0.428571}, {0.5, 1.}, {0.7, 2.33333}, {0.9, 9.}, {0.05, 0.0526316},
{0.15, 0.176471}, {0.25, 0.333333}, {0.35, 0.538462}, {0.45, 0.818182}}
GrcodepromediodepeticionespendientesparacadacoecienteyAnlisisderegresin
lineal:
{StatisticsLinearRegressionBestFit ->
17.7. RESULTADOS Y CONCLUSIONES 479
-0.706132+ 12.4786x - 41.07x
2
+43.3673x
3
,
StatisticsLinearRegressionBestFitCoecients ->
{-0.706132, 12.4786, -41.07, 43.3673}}
17.7 Resultados y Conclusiones
LautilizacindeMathematica paralaresolucindel problemaplanteadoharesultadomuy
satisfactoria, destacndoselas facilidades y potencia del producto.
Los resultados obtenidos ratican, como era de esperarse, las previsiones tericas en
cuanto a las diferencias en tiempos en cola deespera en disco delas distintas peticiones,
segn las distintas cargas de trabajo simuladas.
Lamodalidadimplementadademostrar losresultadospasoapasopor pantallapermite
observar el comportamiento del algoritmo y facilita la comprensin desu funcionamiento.
Como era deesperarse, seobserva queen todos los casos, la forma de la curva de los
grcos obtenidos essimilar, aprecindoseun muy buen ajustedelos valoresobtenidos (y
gracados) a un polinomio detercer orden.
Asimismoseobservaun fuerteimpacto en los tiempos deespera apartir deciertonivel
decarga de trabajo, expresada segn los coecientes considerados.
480 CAPTULO 17. SUBSISTEMA DE DISCO DE UNA PETICIN
Captulo 18
Anlisis del Rendimiento de un
Subsistema de Disco de Varias
Peticiones a la Vez con
Mathematica
18.1 I ntroduccin
Para el desarrollo del presentecaso deestudio seha utilizado el softwareMathematica,
unamuy poderosaherramientaparael clculo numrico y el especialmenteparael clculo
simblico [5, Castillo, Iglesias, Gutirrez, Alvarez y Cobo].
El softwaremencionado seha utilizado para la realizacin deun algoritmo que imple-
mente el anlisis de rendimiento de un subsistema de disco de varias peti ciones a la
vez, utilizando Teora de Colas.
El estudio delas simulaciones efectuadas con el algoritmo sealado permiteevaluar el
comportamiento esperado deun subsistema dedisco devarias peticiones a la vez cuando
essometido adistintas cargas detrabajo, es decir aconjuntosdepeticionesdeoperaciones
deacceso a los discos queconguran cantidades de trabajo distintas a ser atendidas.
La posibilidad de atender varias peticiones en paralelo requiere que el subsistema de
discodispongadeun nmeroelevadodebrazosdeacceso, queademsseanindependientes
en sus movimientos, detal manera quecada uno deellos pueda atender a un peticin.
Los aspectos tericos relacionados han sido desarrollados en los Captulos Entrada /
Salida y Modelado Analtico en Relacin al Rendimiento.
18.2 Objetivo del Caso de Estudio
El objetivo del presente caso consisti en la realizacin de un programa en Mathematica
(Colas2pn.m) que implementara el algoritmo de anlisis de rendimiento para el caso
sealado.
Asimismo tambin se estableci como objetivo del caso la inclusin en el programa
dela posibilidad degenerar informacin detallada respecto delos clculos efectuados con
las distintas simulaciones y un anlisis estadstico de los resultados logrados, como as
481
482 CAPTULO 18. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
tambin un grco ilustrativo delos mismos, todo ello incluido en el archivo deejecucin
y deresultados (Colas2en.ma).
18.3 Descripcin del Problema Planteado
Una descripcin detallada del problema planteado puedeconsultarseen el Captulo Mo-
delado Analtico en Relacin al Rendimiento, siendo especialmentepertinenteslostemas
relacionadosconProcesodePoisson y Anlisisdel Rendimientodeun SubsistemadeDisco
- Caso I I.
18.4 Descripcin del Algoritmo Utilizado
Al igual queen el apartadoanterior, unadescripcin detalladadelosfundamentostericos
y de las frmulas matemticas resultantes y aplicables a este caso, puede consultarse
en el Captulo Modelado Analtico en Relacin al Rendimiento, siendo especialmente
pertinenteel tema sobre Anlisis del Rendimiento de un Subsistema de Disco - Caso I I,
cuyoplanteoresumidoy esquemanal defrmulasaplicables setranscribeacontinuacin
[7, Deitel]:
Caso I I :
El dispositivo dedisco contienegran nmero debrazos mviles.
Cada brazo puededar servicio a una peticin dedisco a la misma tasa ".
Sesuponequeun nmero innito depeticiones pueden recibir servicio en paralelo.
Solucin al caso I I
Con i peticiones siendo servidas:
La probabilidad de que una peticin en particular acabe siendo servida dentro del
siguiente t es t.
Laprobabilidad dequeexactamenteuna peticin cualquiera acabe es i t (buena
aproximacin deprimer orden).
Cualquiera delas i peticiones puedeterminar y provocar un cambio de estado.
El sistema sevecomo un proceso denacimiento y muertecontinuo de cadena sencilla
y de estados innitos con:
b
i
= con i = 0, 1, 2, ...
d
i
= 0 con i = 0.
d
i
= i con i =1, 2, 3, ...
Ningn clientetienequeesperar ya quese suponen innitos servidores en paralelo.
Seutilizan las relaciones:
18.4. DESCRIPCIN DEL ALGORITMO UTILIZADO 483
P
i +1
=(b
i
/ d
i +1
) P
i
; i =0, 1, 2, ...
P
i
P
i
=1.
P
1
= ( / ) P
0
.
P
2
= ( / 2 ) P
1
= (1/ 2) ( / )
2
P
0
.
P
3
= ( / 3 ) P
2
= (1/ (3. 2)) ( / )
3
P
0
.
P
i
= (1/ i!) ( / )
i
P
0
.
P
i
P
i
=1=
P
i
(1/ i!) ( / )
i
P
0
.
P
n
(x
n
/ n!) =e
x
.
P
i
P
i
=1=
P
i
(1/ i!) ( / )
i
P
0
=e
=
P
0
.
P
0
=e
=
.
P
i
= ( / )
i
[(e
=
) / i!].
E(i) =
P
i
iP
i
=
P
i
i ( / )
i
[(e
=
) / i!] = (e
=
)
P
i
i ( / )
i
(1/ i!) =
E(i) = (e
=
)
P
i
( / ) ( / )
i 1
[1/ (i - 1)!] =
E(i) = (e
=
) ( / )
P
i
[1/ (i - 1)!] ( / )
i 1
=
E(i) = (e
=
) ( / ) (e
=
) =
E(i) =( / ).
Conclusiones:
En el sistema de un solo servidor, si una peticin que llega encuentra ocupado el
dispositivo dedisco, debeesperar.
En el sistema de servidores innitos, las peticiones que llegan siempre entran al
servicio deinmediato.
En el sistema deun solo servidor:
A medidaque tiendea laprobabilidaddequeel sistemaseencuentreocioso
decrecerpidamente:
Las peticiones quellegan esperan.
El nmero promedio depeticiones pendientes crececon rapidez.
En el sistema deservidores innitos:
El nmero promedio depeticiones pendientes tiendea 1.
484 CAPTULO 18. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
18.5 Programa Desarrollado
El programa desarrollado (Colas2pn.m), codicado en Mathematica utilizando especial-
mentelas facilidades declculonumrico, anlisis estadsticoy gracacin, implementa el
ingreso interactivo de datos para la simulacin, el clculo de los resultados detallados y
nales y el desplieguey almacenamiento delos mismos deuna manera sencilla, guiada y
explicativa.
El cdigo del programa desarrollado es el siguiente:
(* TEORIA DE COLAS *)
(* Anlisis del rendimiento deun subsistema dedisco *)
(* Caso 2: El subsistema dedisco, queposeevarios brazos mviles, puededar
servicio a una peticin mediantecada uno deellos a la vez. *)
(* Referencias y aclaraciones:
mu: Tasa promedio deservicio para c/ u delos brazos mviles.
mu =1/ Es(s)
Es(s): Tiempo deespera deservicio para un cliente.
lambda: Tasa promedio dellegadas declientes al sistema decolas.
lambda = 1/ Es(tau)
Es(tau): Tiempo deespera entrellegadas.
Es(tau) =1/ lambda
mu >lambda: Restriccin para quela longitud dela cola depeticiones no crezca inde-
nidamente.
tau: Intervalo entrellegadas.
Pn: Probabilidad dequehaya n clientes en el sistema decolas en estado estable.
P0: Probabilidad dequeel sistema seencuentreocioso.
P0=E^(-(lambda/ mu))
Pri: Probabilidad dequehayan i peticiones pendientes.
Pri = ((lambda/ mu)^i)(E^(-(lambda/ mu))/ Factorial[i])
(i=0,1,2,3,..)
Es(i): N

promedio depeticiones pendientes.


Es(i) =(lambda/ mu) *)
18.5. PROGRAMA DESARROLLADO 485
BeginPackage[Colas2pn]
<<StatisticsLinearRegression
Colas2pn::usage=
Colas2pn[mu,lambda,i]
Anlisis del rendimiento deun subsistema
dedisco quepuededar servicio a ms de
una peticin a la vez.
Colocar los valores mximos para mu, lambda
y el nmero depeticiones pendientes.
Colas2pn[inmu_ ,inlambda_ ,ini_ ]:=
Colas2pnAux[inmu,inlambda,ini];
Colas2pnAux[inmu_ ,inlambda_ ,ini_ ]:=
Module[{coef, Pri, Es, listacoef, listapetpend,
result},
Caso2[mu_ ,lambda_ ,i_ ]:=
If[(N[lambda/ mu] >=1.),
Print[Para quela cola no
crezca indenidamentedebe
ser Mu mayor queLambda.],
{coef=N[lambda/ mu,6],
Pri=N[((lambda/ mu)^i)*((E^(-(lambda/ mu)))/ (Factorial[i])),6],
Es=N[lambda/ mu,6],
Print[Anlisis del rendimiento deun]
Print[subsistema dedisco.]
Print[Resultados del Caso 2:]
Print[El subsistema dedisco ]
Print[puededar servicio a varias]
Print[peticiones a la vez.]
486 CAPTULO 18. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
Print[Los valores demu, lambda y el]
Print[coecienteson los siguientes:]
Print[N[{mu,lambda,coef}]]
Print[La cola no crecer]
Print[indenidamentedebido a que]
Print[Mu es mayor queLambda.]
Print[Las probabilidades detener]
Print[0,1,2,3,4,...peticiones]
Print[pendientes son las siguientes:]
Print[N[Pri]]
Print[El promedio depeticiones]
Print[pendientes es el siguiente:]
Print[N[Es]]
Print[******************************]
AppendTo[listacoef,coef]
AppendTo[listapetpend,Es]
AppendTo[result,{coef,Es}]
}
];
Modelo2[mum_ ,lambdam_ ,im_ ]:=
If[(N[lambdam/ mum] >=1.),
Throw[Para quela cola no
crezca indenidamentedebe
ser Mu mayor queLambda.],
For[i=10, i<=mum, i+=10,
For[j=1, j<=lambdam, j+=2,
Caso2[i,j,{Range[0,im,1]}]
];
18.5. PROGRAMA DESARROLLADO 487
];
];
listacoef={};
listapetpend={};
result={};
(* Colocar los valores mximos para mu, lambda *)
(* y el nmero depeticiones pendientes. *)
Modelo2[inmu,inlambda,ini];
Print[ ];
Print[*****************************];
Print[******* Resmen nal *******];
Print[*****************************];
Print[Lista decoecientes lambda/ mu:];
Print[listacoef];
Print[Promedio depeticiones];
Print[pendientes para cada coeciente:];
Print[listapetpend];
Print[Pares (coecientes,promedio):];
Print[result];
Print[Grco depromedio depeticiones];
Print[pendientes para cada coecientey];
Print[Anlisis deregresin lineal:];
ListPlot[result,PlotStyle->
{RGBColor[1,0.6,0.3],PointSize[0.023]},
AxesLabel->{Coecientes,Esperas},
AxesOrigin->{0,0}];
Regress[result,{1,x},x,
OutputList->{BestFit,
488 CAPTULO 18. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
BestFitCoecients,ANOVATable,
CondenceIntervalTable,
CovarianceMatrix,CorrelationMatrix,
EstimatedVariance,FitResiduals,
ParameterTable,PredictedResponse,
RSquared,AdjustedRSquared}]
]
EndPackage[];
18.6 Datos y Ejecuciones
Los datos para la simulacin seintroducen por teclado, siendo ellos los valores de , y
el nmero depeticiones pendientes.
Los resultados detallados de las ejecuciones se muestran paso a paso en pantalla y
pueden ser grabados en el mismo archivo dedatos y ejecuciones, queen estecaso ha sido
el archivo Colas2en.ma.
El contenido del mencionado archivo luego de varias ejecuciones deevaluacin puede
consultarse en los Anexos; un detalle parcial es el siguiente, aclarndose que no se ha
incluido en el contenido mostrado el anlisis estadstico detallado:
<<ExamplesColas2pn
? Colas2pn
Colas2pn[mu,lambda,i] Anlisisdel rendimientodeun subsistemadediscoquepuededar
servicio a ms deuna peticin a la vez.
Colocar los valores mximos para mu, lambda y el nmero depeticiones pendientes.
Colas2pn[20,10,3]
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 1., 0.1}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
18.6. DATOS Y EJ ECUCIONES 489
{{0.904837, 0.0904837, 0.00452419, 0.000150806}}
El promedio depeticiones pendientes es el siguiente:
0.1
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 3., 0.3}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.740818, 0.222245, 0.0333368, 0.00333368}}
El promedio depeticiones pendientes es el siguiente:
0.3
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 5., 0.5}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.606531, 0.303265, 0.0758163, 0.0126361}}
El promedio depeticiones pendientes es el siguiente:
0.5
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
490 CAPTULO 18. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 7., 0.7}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.496585, 0.34761, 0.121663, 0.0283881}}
El promedio depeticiones pendientes es el siguiente:
0.7
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 9., 0.9}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.40657, 0.365913, 0.164661, 0.0493982}}
El promedio depeticiones pendientes es el siguiente:
0.9
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 1., 0.05}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.951229, 0.0475615, 0.00118904, 0.0000198173}}
18.6. DATOS Y EJ ECUCIONES 491
El promedio depeticiones pendientes es el siguiente:
0.05
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 3., 0.15}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.860708, 0.129106, 0.00968296, 0.000484148}}
El promedio depeticiones pendientes es el siguiente:
0.15
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 5., 0.25}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.778801, 0.1947, 0.0243375, 0.00202813}}
El promedio depeticiones pendientes es el siguiente:
0.25
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
492 CAPTULO 18. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
Los valores demu, lambda y el coecienteson los siguientes:
{20., 7., 0.35}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.704688, 0.246641, 0.0431621, 0.00503558}}
El promedio depeticiones pendientes es el siguiente:
0.35
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 9., 0.45}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.637628, 0.286933, 0.0645599, 0.00968398}}
El promedio depeticiones pendientes es el siguiente:
0.45
******************************
*****************************
******* Resmen nal *******
*****************************
Lista decoecientes lambda/ mu:
{0.1, 0.3, 0.5, 0.7, 0.9, 0.05, 0.15, 0.25, 0.35, 0.45}
Promedio depeticiones pendientes para cada coeciente:
{0.1, 0.3, 0.5, 0.7, 0.9, 0.05, 0.15, 0.25, 0.35, 0.45}
Pares (coecientes,promedio):
{{0.1, 0.1}, {0.3, 0.3}, {0.5, 0.5}, {0.7, 0.7}, {0.9, 0.9}, {0.05, 0.05},
18.7. RESULTADOS Y CONCLUSIONES 493
Figura~18.1: Promedio depeticiones pendientes.
{0.15, 0.15}, {0.25, 0.25}, {0.35, 0.35}, {0.45, 0.45}}
Grcodepromediodepeticionespendientesparacadacoecientey Anlisisderegresin
lineal:
{StatisticsLinearRegressionBestFit ->
-2.3798210
17
+1. x,
StatisticsLinearRegressionBestFitCoecients ->
{-2.3798210
17
, 1.}}
18.7 Resultados y Conclusiones
LautilizacindeMathematica paralaresolucindel problemaplanteadoharesultadomuy
satisfactoria, destacndoselas facilidades y potencia del producto.
Los resultados obtenidos ratican, como era de esperarse, las previsiones tericas en
cuanto a las diferencias en tiempos en cola deespera en disco delas distintas peticiones,
segn las distintas cargas de trabajo simuladas.
Lamodalidadimplementadademostrar losresultadospasoapasopor pantallapermite
observar el comportamiento del algoritmo y facilita la comprensin desu funcionamiento.
494 CAPTULO 18. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
Como era deesperarse, seobserva queen todos los casos, la forma de la curva de los
grcos obtenidoses similar, aprecindoseun muy buen ajustedelosvalores obtenidos(y
gracados) a una recta.
Asimismo seobserva un leve impacto en los tiempos de espera anteincrementos dela
cargadetrabajo, expresadasegnloscoecientesconsiderados, obtenindosequeel nmero
promedio depeticiones pendientes tiendea 1.
Captulo 19
Optimizacin de Operaciones de
Bsqueda en Disco con Redes
Neuronales
19.1 I ntroduccin
Para el desarrollo del presentecaso deestudio seha utilizado el softwareMathematica,
unamuy poderosaherramientaparael clculo numrico y el especialmenteparael clculo
simblico [5, Castillo, Iglesias, Gutirrez, Alvarez y Cobo], como as tambin software
especcoderedes neuronales articiales, asaber: Nndt, Nnmodel y Qnet [10, Hilera
y Martnez].
Las operaciones de acceso a disco, consecuencia de los requerimientos de lectura y/ o
grabacin queefectan al Sistema Operativo los distintos procesos, son la causa de con-
siderables demoras en los tiempos derespuesta; dichas demoras son especialmentesigni-
cativas si consideramos quelas operaciones de procesador demandan tiempos deciclo del
orden del nanosegundo, en tanto que las operaciones de acceso a disco insumen tiempos
del orden del milisegundo, es decir quela diferencia es deseis rdenes demagnitud.
Asimismo, si consideramos cmo secomponeel tiempo deacceso a disco, encontramos
que el mismo est integrado por el tiempo de bsqueda (movimiento del mecanismo de
acceso que contiene el cabezal de lectura / grabacin hasta posicionarse en el cilindro
que contiene a la pista que aloja al registro que se debe acceder), el tiempo de demora
rotacional o latencia (tiempoquedemoralarotacin del discohastaqueel registroquese
pretende acceder queda bajo el cabezal de lectura / grabacin, previamente posicionado
en el cilindro quealoja a la pista correcta) y el tiempo de transferencia dela informacin
propiamentedicha (lectura o grabacin) [7, Deitel] y [23, Tanenbaum].
Ademsdeloindicadoprecedentementesedebesealar quedelostrestiemposmencio-
nados, el tiempodebsquedageneralmenteesel mayor enlageneralidaddelosdispositivos
dedisco, razn por la cual sehatratado dedisminuirlopermanentemente, habindoselle-
gado (con modicaciones de diseo y de tecnologa de fabricacin), en algunos modelos
dedisco, a aproximarlo al tiempo dedemora rotacional o latencia.
Otra va para mejorar los tiempos deacceso a disco y por endela performancedelos
procesos, consisteen optimizar los algoritmos debsqueda, teniendoen cuentaquecuando
495
496 CAPTULO 19. BSQUEDA EN DISCO CON REDES NEURONALES
existe un conjunto de requerimientos de acceso sobre disco, dichos requerimientos son
encoladospor el SistemaOperativoy atendidossegnunciertoalgoritmo deplanicacin,
el cual debe indicar el orden en que sern atendidas las distintas peticiones de acceso
previamenteencoladas.
Lo sealado precedentementelleva a la conclusin dequedependiendo del criterio de
optimizacin que se considere, el orden de atencin de las distintas peticiones de acceso
encoladas ser distinto; no obstante, generalmente el criterio aplicado es el de lograr
atender alaspeticionesencoladascon el mnimo demovimientos del mecanismodeacceso,
es decir con el mnimo desaltos deun cilindro a otro.
EstonosllevaalaconvenienciadequelosSistemasOperativospuedanelegir antecada
conjuntodepeticionesdeaccesoadisco, el algoritmo ms adecuado adichoconjunto, que
permitaatender todaslaspeticionesconel mnimodesaltosdeun cilindroaotrodel disco;
el problema es quelos Sistemas Operativos generalmenteutilizan un solo algoritmo para
cualquier conjunto posibledepeticiones deacceso y no seleccionan el ms adecuado para
cadaconjunto; unaformadesolucionar esteproblemaserainstrumentar unaRedNeuronal
Articial en el entorno del Sistema Operativo o de los controladores de disco, para que
con el criterio de minimizar el movimiento del mecanismo de acceso a disco, seleccione
para cada conjunto depeticiones el algoritmo debsqueda quesedebera utilizar.
Losaspectos tericos relacionadoscon los algoritmos debsqueda han sidodesarrolla-
dos en el Captulo Entrada / Salida.
19.2 Objetivo del Caso de Estudio
Conforme a lo antes indicado, el objetivo del caso de estudio desarrollado fue el de pro-
gramar un paquete con Mathematica (Colas3pn.m) que implementara los principales
algoritmos de bsqueda y quepermitiera generar archivos para entrenamiento y testeo de
redes neuronales (Colas3en.ma y Colas3fn.txt) y posteriormenteefectuar comparacio-
nes entrelos distintos modelos y herramientas deredes utilizados.
El paquetedesarrolladocon Mathematica permiteanalizar unconjuntoderequerimien-
toscontres algoritmos debsquedadistintos, calculandoparacadaunodeelloslacantidad
demovimientos del mecanismo deacceso (nmero decilindros del disco recorridos por el
mecanismo deacceso) y sealando en cada caso cul es el ms adecuado segn el criterio
indicado de minimizar los movimientos; adems de desplegar los datos y resultados en
pantalla, el paquete genera un archivo de texto que permite entrenar y testear las redes
neuronales, teniendo presentequesetrata deun problema de clasicacin.
19.3 Descripcin del Problema Planteado
Una descripcin detallada del problema planteado puedeconsultarseen el Captulo En-
trada / Salida, siendo especialmente pertinentes los temas relacionados con Algoritmos
de Programacin del Brazo del Disco y Optimizacin de la Bsqueda en Discos.
19.4. DESCRIPCIN DE LOS ALGORITMOS UTILIZADOS 497
19.4 Descripcin de los Algoritmos Utilizados
Al igual queen el apartadoanterior, unadescripcin detalladadelosalgoritmosaplicables
aestecaso, puedeconsultarseenel CaptuloEntrada/ Salida, siendoespecialmenteper-
tinenteslostemassobre Algoritmos deProgramacin del Brazo del Disco y Optimizacin
de la Bsqueda en Discos [7, Deitel].
Losalgoritmos mencionadosprecedentementepuedenresumirsedelasiguientemanera:
FCFS: Las operaciones requeridas se atienden segn el orden de llegada de los
requerimientos.
SSF: Las operaciones requeridas se atienden dando prioridad a las que signican
menos movimiento (salto decilindros) del mecanismo deacceso.
SCAN o del Elevador: Las operaciones requeridas se atienden dando prioridad
a las quesignican menos movimiento del mecanismo deacceso, pero respetando el
sentido del movimiento del mismo (desdelos cilindros (conjuntos depistas homni-
mas) dedireccin ms alta hacia los cilindros dedireccin ms baja, o viceversa).
En cuanto a las herramientas utilizadas para el entrenamiento y testeo de diferentes
redes, las mismas fueron las siguientes: Nndt, Nnmodel y Qnet.
Las etapas cumplidas en el desarrollo del caso fueron las siguientes:
Desarrollo del paquetedeMathematica para generar los archivos deentrenamiento
y testeo delas distintas redes.
Estudio y evaluacin con la herramienta Nndt.
Estudio y evaluacin con la herramienta Nnmodel.
Estudio y evaluacin con la herramienta Qnet.
Anlisis nal delos resultados y emisin delas conclusiones.
19.5 Programa Desarrollado
El paquetedeMathematica desarrollado seencuentra en el archivo Colas3pn.m y posee
las siguientes caractersticas:
Selopuedeinvocar utilizando, por ejemplo, el archivo Colas3en.ma querecibecomo
entradas los datos referidos a:
Nmero decilindros del dispositivo dedisco quesesimular.
Total de peticiones que se evaluarn en cada ciclo, es decir el nmero mximo de
peticiones quesepueden encolar para ser luego atendidas segn algn algoritmo de
bsqueda.
Nmerodeciclosqueseevaluarn, esdecir nmeroderegistrosquetendrel archivo
generado.
498 CAPTULO 19. BSQUEDA EN DISCO CON REDES NEURONALES
Esnecesariosealar ademsquelaspeticionesdeaccesoadeterminadaspistasdel disco
seexpresanpor el nmerodel cilindroal quepertenecelapista, siendoestosrequerimientos
generados(por el paquete) al azar, al igual queel nmeroquedeterminalaposicin inicial
del mecanismo deacceso antes deatender las peticiones decada ciclo.
Respecto del archivo generado, el mismo tendr un tamao variable segn los datos
quesehayan suministradoal paquetequeloproduce, siendoposibleefectuar lageneracin
del archivo en varias etapas, es decir en sucesivas ejecuciones del paquete, en cuyo caso
y por una simple cuestin deestructura delos datos, el nmero decilindros y el nmero
depeticiones por ciclo debern ser los mismos, ya quedelo contrario el archivo generado
no podr ser utilizadopara el entrenamiento y testeodelas redes directamentepor no ser
homogneo, sino quehabra quesegmentarlo con algn editor previamente.
El cdigo del programa desarrollado (Colas3pn.m) es el siguiente:
(* ALGORITMOS DE BUSQUEDA EN DISCO *)
(* Clculo del nmero decilindros del disco
recorridos por el mecanismo deacceso en las
operaciones debsqueda delos cilindros
requeridos segn las peticiones deentrada /
salida queprecisan los procesos; generacin
del archivo deresultados correspondiente*)
(* Caso 1: Algoritmo FCFS: Las operaciones requeridas
seatienden segn el orden dellegada delos
requerimientos. *)
(* Caso 2: Algoritmo SSF: Las operaciones requeridas
seatienden dando prioridad a las que
signican menos movimiento (salto de
cilindros) del mecanismo deacceso. *)
(* Caso 3: Algoritmo SCAN o del Elevador: Las operaciones
requeridas seatienden dando prioridad a las
quesignican menos movimiento del mecanismo
deacceso, pero respetando el sentido del
movimiento del mismo (desdelos cilindros
(conjuntos depistas homnimas) dedireccin
19.5. PROGRAMA DESARROLLADO 499
ms alta hacia los cilindros dedireccin
ms baja, o viceversa. *)
(* Referencias y aclaraciones:
cildisc: Total decilindros en el disco.
peticalea: Lista decilindros involucrados
en las peticiones, segn el orden
dellegada delas mismas.
totpetic: Total mximo depeticiones en
una lista depeticiones.
posinit: Posicin inicial del mecanismo deacceso.
numpetic: Nmero delistas depeticiones.
tfcfs: Total decilindros recorridos por
el mecanismo deacceso segn
planicacin FCFS.
tssf: Total decilindros recorridos por
el mecanismo deacceso segn
planicacin SSF.
tscan: Total decilindros recorridos por
el mecanismo deacceso segn
planicacin SCAN. *)
BeginPackage[Colas3pn]
Colas3pn::usage=
Colas3pn[cildisc,totpetic,numpetic] nn
Clculo del nmero decilindros del disco nn
recorridos por el mecanismo deacceso en las nn
operaciones debsqueda delos cilindros nn
requeridos segn las peticiones deentrada / nn
salida queprecisan los procesos; generacin nn
500 CAPTULO 19. BSQUEDA EN DISCO CON REDES NEURONALES
del archivo deresultados correspondiente. nn
Colocar los valores para cildisc, totpetic y nn
numpetic.
Colas3pn[incildisc_ ,intotpetic_ ,innumpetic_ ]:=
Colas3pnAux[incildisc,intotpetic,innumpetic];
Colas3pnAux[incildisc_ ,intotpetic_ ,innumpetic_ ]:=
Module[{tfcfs, tssf, tscan, fcfs, ssf, scan,
peticalea, posinit, result, resultclas,
peticiones, peticaux, movmin, indice,
posinitaux},
Caso3[cildisc_ ,totpetic_ ,numpetic_ ]:=
(posinit=Random[Integer, {1, cildisc}];
peticalea=Table[Random[Integer, {1, cildisc}],
{totpetic}];
tfcfs=0;
tssf=0;
tscan=0;
fcfs=0;
ssf=0;
scan=0;
indice=0;
(* Clculo para FCFS *)
tfcfs=Abs[peticalea[[1]]-posinit];
For[j=2, j<=totpetic, j+=1,
tfcfs=tfcfs+Abs[peticalea[[j]]-peticalea[[j-1]]];
];
(* Clculo para SSF *)
peticiones=peticalea;
19.5. PROGRAMA DESARROLLADO 501
posinitaux=posinit;
For[k=1, k<=totpetic, k+=1,
movmin=200000;
For[j=1, j<=totpetic, j+=1,
peticaux=Abs[posinitaux-peticiones];
If[peticaux[[j]]<movmin, movmin=peticaux[[j]];
indice=j];
];
tssf=tssf+movmin;
peticiones[[indice]]=10000;
posinitaux=peticalea[[indice]];
];
(* Clculo para SCAN *)
peticiones=peticalea;
For[j=1, j<=totpetic, j+=1,
If[peticiones[[j]]<=posinit, peticiones[[j]]=posinit;];
];
peticiones=Sort[peticiones];
tscan=Abs[peticiones[[1]]-posinit];
For[j=2, j<=totpetic, j+=1,
tscan=tscan+Abs[peticiones[[j]]-peticiones[[j-1]]];
];
posinitaux=peticiones[[totpetic]];
peticiones=peticalea;
For[j=1, j<=totpetic, j+=1,
If[peticiones[[j]]>=posinit, peticiones[[j]]=posinitaux;];
];
peticiones=Reverse[Sort[peticiones]];
502 CAPTULO 19. BSQUEDA EN DISCO CON REDES NEURONALES
tscan=tscan+Abs[peticiones[[1]]-posinitaux];
For[j=2, j<=totpetic, j+=1,
tscan=tscan+Abs[peticiones[[j]]-peticiones[[j-1]]];
];
result={tfcfs,tssf,tscan};
resultclas=Sort[result];
If[tfcfs==resultclas[[1]], fcfs=1,
If[tssf==resultclas[[1]], ssf=1,
If[tscan==resultclas[[1]], scan=1
];
];
];
Print[Clculo demovimientos del ];
Print[mecanismo deacceso segn tres ];
Print[algoritmos debsqueda.];
Print[Los valores decildisc, totpetic y ];
Print[numpetic son los siguientes:];
Print[{cildisc,totpetic,numpetic}];
Print[La posicin inicial del mecanismo ];
Print[deacceso es la siguiente:];
Print[posinit];
Print[La lista aleatoria depeticiones ];
Print[es la siguiente:];
Print[peticalea];
Print[El nmero demovimientos del ];
Print[mecanismo deacceso sera el ];
Print[siguientepara FCFS, SSF y SCAN:];
Print[result];
19.5. PROGRAMA DESARROLLADO 503
Print[El algoritmo ms ecientees:];
If[fcfs==1, Print[FCFS],
If[ssf==1, Print[SSF],
If[scan==1, Print[SCAN]
];
];
];
Print[Imagen del registro grabado: ];
Print[{posinit,peticalea,result,fcfs,ssf,scan}];
PutAppend[{posinit,peticalea,fcfs,ssf,scan},
D:nWnmath22nTrabajonColas3fn.txt];
Print[******************************];
);
Modelo3[cildiscm_ ,totpeticm_ ,numpeticm_ ]:=
For[i=1, i<=numpeticm, i+=1,
Caso3[cildiscm,totpeticm,i]
];
peticalea={};
peticiones={};
peticaux={};
result={};
resultclas={};
(* Colocar los valores para nmero decilindros, *)
(* total depeticiones queseevalan en cada ciclo y *)
(* nmero deciclos queseevaluarn, es decir *)
(* nmero deregistros quetendr el archivo generado. *)
Print[Sesugierequenumpetic sea al menos ];
Print[30veces mayor quetotpetic.];
504 CAPTULO 19. BSQUEDA EN DISCO CON REDES NEURONALES
Print[ ];
(* Put[{}, D:nWnmath22nTrabajonColas3fn.txt]; *)
Modelo3[incildisc,intotpetic,innumpetic];
Print[************************************************];
Print[** Archivo dedatos grabado como Colas3fn.txt **];
Print[************************************************];
]
EndPackage[];
19.6 Datos y Ejecuciones
Los resultados detallados delasejecuciones semuestran pasoa pasoen pantalla y pueden
ser grabadosen el mismoarchivodedatosy ejecuciones, queenestecasohasidoel archivo
Colas3en.ma, en tantoquelosdatosresumen parael entrenamientoy testeodelasredes
neuronales, como ya seindic, segraban en el archivo Colas3fn.txt.
El archivo generado (Colas3fn.txt), poseela siguienteestructura:
Nmero del cilindro quecorrespondea la posicin inicial del mecanismo deacceso.
Lista depeticiones atendidas en un ciclo, las queestn representadas por el nmero
del cilindro que aloja en cada caso a la pista que debe ser accedida (interesa el
cilindro y no la pista por cuanto acceder a una pista situada en el mismo cilindro
queotranosignicaun movimientodeposicionamientodel mecanismodeacceso, es
decir nosignica un saltodecilindro); adems sedebetener presentequeel nmero
de peticiones atendidas en un ciclo es un dato de entrada, en tanto que la lista de
peticiones decada ciclo segenera al azar.
Calicacin obtenida por el mtodo debsqueda (algoritmo) FCFS, dondecero (0)
signica no seleccionado y uno (1) signica seleccionado.
Calicacin obtenida por el mtodo de bsqueda (algoritmo) SSF, donde cero (0)
signica no seleccionado y uno (1) signica seleccionado.
Calicacin obtenida por el mtodo debsqueda (algoritmo) SCAN, dondecero (0)
signica no seleccionado y uno (1) signica seleccionado.
Atento a que el archivo generado por el paquete (Colas3fn.txt) incluye caracteres
(llaves) quelo hacen inadecuado para su utilizaci n directa en las herramientas deredes
neuronales, seha procedido a generar un archivo similar sin dichos caracteres conictivos
utilizando un editor (puede ser cualquier editor, incluso el del propio Mathematica); el
archivo mencionado precedentementees el Colas3fn.ma, quenalmentedio lugar al ar-
chivoColas3fn.dat. Estosignicaqueentodosloscasoslaconguracin dered utilizada
poseeseis (6) neuronas deentrada y tres (3) desalida.
19.6. DATOS Y EJ ECUCIONES 505
El contenidodel mencionadoarchivoColas3en.ma luegodeunadelasejecucionesde
evaluacin puedeconsultarseen los Anexos; un detalleparcial es el siguiente:
<<ExamplesColas3pn
? Colas3pn
Colas3pn[cildisc,totpetic,numpetic]
Clculo del nmero de cilindros del disco recorridos por el mecanismo de acceso en las
operaciones debsqueda delos cilindros requeridos segn las peticiones deentrada
/ salida que precisan los procesos; generacin del archivo de resultados correspon-
diente.
Colocar los valores para cildisc, totpetic y numpetic.
Colas3pn[40,5,100]
Sesugierequenumpetic sea al menos 30veces mayor quetotpetic.
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 1}
La posicin inicial del mecanismo deacceso es la siguiente:
23
La lista aleatoria depeticiones es la siguiente:
{16, 13, 9, 31, 39}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{44, 44, 46}
El algoritmo ms ecientees:
FCFS
Imagen del registro grabado:
{23, {16, 13, 9, 31, 39}, {44, 44, 46}, 1, 0, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 2}
506 CAPTULO 19. BSQUEDA EN DISCO CON REDES NEURONALES
La posicin inicial del mecanismo deacceso es la siguiente:
14
La lista aleatoria depeticiones es la siguiente:
{29, 13, 28, 26, 39}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{61, 27, 51}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{14, {29, 13, 28, 26, 39}, {61, 27, 51}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 3}
La posicin inicial del mecanismo deacceso es la siguiente:
21
La lista aleatoria depeticiones es la siguiente:
{6, 38, 23, 4, 31}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{108, 51, 51}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{21, {6, 38, 23, 4, 31}, {108, 51, 51}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
19.6. DATOS Y EJ ECUCIONES 507
{40, 5, 4}
La posicin inicial del mecanismo deacceso es la siguiente:
5
La lista aleatoria depeticiones es la siguiente:
{34, 13, 15, 20, 30}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{67, 29, 29}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{5, {34, 13, 15, 20, 30}, {67, 29, 29}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 5}
La posicin inicial del mecanismo deacceso es la siguiente:
32
La lista aleatoria depeticiones es la siguiente:
{21, 28, 33, 12, 31}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{63, 22, 22}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{32, {21, 28, 33, 12, 31}, {63, 22, 22}, 0, 1, 0}
******************************
************************************************
508 CAPTULO 19. BSQUEDA EN DISCO CON REDES NEURONALES
** Archivo dedatos grabado como Colas3fn.txt **
************************************************
El contenido del mencionadoarchivo Colas3fn.dat luegodeunadelasejecucionesde
evaluacin puedeconsultarseen los Anexos; un detalleparcial es el siguiente:
14, 15, 2, 20, 13, 7, 0, 0, 1
37, 9, 11, 23, 32, 36, 0, 1, 0
6, 30, 31, 15, 26, 11, 0, 1, 0
11, 25, 38, 34, 24, 26, 0, 1, 0
5, 24, 25, 27, 32, 9, 0, 1, 0
31, 18, 32, 4, 35, 20, 0, 1, 0
38, 20, 27, 4, 24, 22, 0, 1, 0
39, 27, 4, 30, 6, 27, 0, 1, 0
12, 28, 33, 2, 40, 17, 0, 1, 0
12, 24, 19, 12, 15, 19, 0, 1, 0
40, 4, 6, 24, 20, 24, 0, 1, 0
7, 7, 17, 32, 13, 25, 0, 1, 0
29, 16, 2, 38, 36, 5, 0, 1, 0
8, 1, 15, 11, 24, 23, 1, 0, 0
38, 17, 22, 40, 11, 39, 0, 1, 0
26, 4, 34, 2, 21, 4, 0, 0, 1
27, 30, 3, 22, 38, 35, 0, 1, 0
32, 13, 22, 2, 16, 4, 0, 1, 0
4, 16, 6, 16, 26, 19, 0, 1, 0
4, 18, 19, 2, 36, 34, 0, 1, 0
19.7. DESCRIPCIN DEL SOFTWARE DE RNA UTILIZADO 509
19.7 Descripcin del Software de RNA Utilizado
19.7.1 Breve I ntroduccin a las RNA
Las RNA o redes neuronales articiales constituyen un importanteparadigmaen el con-
texto de la inteligencia articial [17, Castillo, Cobo, Gutirrez y Pruneda], [9, Castillo,
Gutirrez y Hadi]. El elemento clave de este paradigma es una estructura computacio-
nal compuesta de un gran nmero de pequeos elementos procesadores interconectados
(neuronas) trabajando en paralelo.
LasRNA constituyenestructurasdecomputacinalternativas, creadasconel propsito
de reproducir las funciones del cerebro humano; frecuentemente se hace referencia a
dichas estructuras como computacin neuronal.
Las RNA estn formadas por un gran nmero deprocesadores, o neuronas, dispuestos
en varias capas einterconectados entres medianteconexiones con pesos. Estos procesa-
dores realizan clculos simples basados en la informacin quereciben delos procesadores
vecinosy utilizanun procesodeaprendizajepor analogadondelospesosdelasconexiones
son ajustados automticamente para reproducir un conjunto depatrones representativos
del problema a aprender.
Segn [17, Castillo, Cobo, Gutirrez y Pruneda] una neurona o unidad procesadora,
sobreun conjuntodenodosN, esunatripleta(X, f, Y), dondeX esun subconjuntodeN,
Y es un niconodo deN y f:IR ! I R es una funcin neuronal (tambin llamada funcin
deactivacin) quecalcula un valor desalidapara Y basado en una combinacin lineal de
los valores delas componentes deX, es decir, Y = f (
P
x
i
X
w
i
x
i
).
Los elementos X, Y y f sedenominan conjunto de nodos deentrada, nodo desalida
y funcin neuronal dela unidad neuronal, respectivamente.
Tambin segn [17, Castillo, Cobo, Gutirrez y Pruneda] una red neuronal articial
(RNA) esunpar (N, U), dondeN esunconjuntodenodosyU esunconjuntodeunidades
procesadoras sobreN quesatisfacela siguientecondicin: Cada nodo X
i
2 N tiene que
ser un nodo deentrada o desalida deal menos una unidad procesadora deU.
SegnKohonenlasredes neuronales articiales sonredes interconectadas masivamente
en paralelo deelementos simples (usualmenteadaptativos) y con organizacin jerrquica,
lascualesintentan interactuar con los objetos del mundo real del mismomodoquelohace
el sistema nervioso biolgico [10, Hilera y Martnez].
Las funciones de activacin ms utilizadas son las siguientes [17, Castillo, Cobo, Gu-
tirrez y Pruneda]:
Funciones lineales.
Funciones escaln.
Funciones sigmoidales.
Las neuronas se pueden organizar en capas conectadas por varios tipos de uniones, a
saber:
Conexiones hacia adelante.
Conexiones laterales.
510 CAPTULO 19. BSQUEDA EN DISCO CON REDES NEURONALES
Conexiones hacia atrs o recurrentes.
Una unidad se dice que est en la capa de entrada de una red neuronal (X, U), si es
la entrada deal menos una unidad procesadora deU y no es la salida deninguna unidad
procesadora deU.
Una unidad sedicequeest en la capa de salida deuna red neuronal (X, U), si es la
salida de al menos una unidad procesadora de U y no es la entrada de ninguna unidad
procesadora deU.
Una unidad se dice que est en la capa intermedia u oculta de una red neuronal (X,
U), si es la entrada de al menos una unidad procesadora deU y, al mismo tiempo, es la
salida deal menos una unidad procesadora deU.
Una de las principales propiedades de las RNA es su capacidad de aprender a partir
de unos datos. Una vez que ha sido elegida la arquitectura de red para un problema
particular, los pesos de las conexiones seajustan para codicar la informacin contenida
en un conjunto dedatos de entrenamiento.
Losprincipalesmtodos deaprendizajesonlossiguientes[17, Castillo, Cobo, Gutirrez
y Pruneda]:
Aprendizajesupervisado.
Aprendizajeno supervisado:
AprendizajeHebbiano.
Aprendizajecompetitivo.
Representacin decaractersticas (Featuremapping).
Finalizado el proceso de aprendizajede la red, con lo cual los pesos dela misma han
sidocalculados, sedebecomprobar lacalidaddel modeloresultante(validacin), midiendo
loserroresentrelosvaloresdesalidadeseadosy losobtenidospor lared neuronal; algunas
medidas estndard del error son:
SSE: Sumof SquareErrors: suma delos cuadrados delos errores.
RMSE: Root Mean SquareError: raz cuadrada del error cuadrtico medio.
Error mximo.
Las principales ventajas dela RNA son las siguientes [10, Hilera y Martnez]:
Aprendizajeadaptativo.
Autoorganizacin.
Tolerancia a fallos.
Operacin en tiempo real.
Fcil insercin dentro dela tecnologa existente.
19.7. DESCRIPCIN DEL SOFTWARE DE RNA UTILIZADO 511
Algunas delas posibles aplicaciones delas RNA estn en el mbito delas siguientes
disciplinas [10, Hilera y Martnez]:
Biologa.
Empresa.
Medio ambiente.
Finanzas.
Manufacturacin.
Medicina.
Militares.
Por ltimo y a los efectos desituar a las RNA dentro del mundo dela computacin
en general y frente a la I A (Inteligencia Articial) en particular, ver la Tabla 19.1 de la
pgina 511[10, Hilera y Martnez].
Computacin Computacin Computacin
Convencional Simblica Neuronal
Basado en: Arquitectura Lgica Neurobiologa
Von Neumann Cognitiva
Apropiada Algoritmos Heurstica Adaptacin
para: conocidos
No apropiada Condiciones Causalidad Clculos
para: difusas desconocida precisos
Memoria: Precisa, Bases de Distribuida
esttica conocimiento
Construida Diseo, Representacin del Conguracin
mediante: programacin conocimiento +motor y
y prueba deinferencia aprendizaje
Soporte: Ordenadores Mquinas Procesadores
secuenciales LISP paralelos
Tabla 19.1: Formas bsicas decomputacin.
19.7.2 Herramienta Nndt
El software Nndt (Neural Network Development Tool) es una facilidad para el entrena-
miento deredes neuronales articiales.
La interfacedeusuario fuedesarrollada con MS Visual Basic, Edicin Profesional.
Las rutinasDLL (escritas en C) son usadas paramuchasdelas funciones matemti-
cas.
Los algoritmos dered implementados son delos llamados detipo supervisado.
512 CAPTULO 19. BSQUEDA EN DISCO CON REDES NEURONALES
Figura~19.1: Ejemplo depantalla Nndt.
Adems, el productoincluyealgoritmospararedes perceptrn multicapa (MLP: multi-
layer perceptron) delos tipos feed-forward y recurrente.
La red MLP es entrenada con el mtodo Levenberg - Marquardt.
El entrenamiento requiere un grupo de seales de entrada y las correspondientes de
salida, almacenadas en un archivo referenciado como archivo de pattern. Estees el nico
archivo que el usuario debe suministrar. Opcionalmente, ciertos parmetros que denen
las columnas del archivo de pattern, el tamao de la red y la conguracin de la red,
pueden ser almacenados en un archivo referido como archivo de setup.
Nndt tambin incluye una rutina para presentacin grca de seales de salida, ac-
tivaciones de nodos, residuos y pesos durante la ejecucin. La interface adems provee
facilidades para el examen de activaciones de nodos y pesos as como modicacin de
pesos.
Asimismo se incluye un archivo de help (ayuda) que puede consultarse en cualquier
momento dela ejecucin deNndt presionando F1.
Algunas delas muchas pantallas del producto pueden observarseen la Figura 19.1de
la pgina 512y en la Figura 19.2dela pgina 513.
19.7. DESCRIPCIN DEL SOFTWARE DE RNA UTILIZADO 513
Figura~19.2: Ejemplo depantalla Nndt.
514 CAPTULO 19. BSQUEDA EN DISCO CON REDES NEURONALES
19.7.3 Herramienta Nnmodel
Nnmodel es una herramienta para el modelado del proceso de datos, estadsticas de
experimentos o bases dedatos histricas. Puedebuscar desde relaciones lineales simples
hastarelacionescomplejasno-linealesendatosempricos. Esfcil deusar porqueconstruye
automticamentemodelosmatemticosdirectamentedesdelosdatosdel usuario. Permite
crear modelos deprototipos rpida y fcilmente.
Nnmodel estdiseadopara ayudar a obtener el mximobenecio delas tcnicas de
modelado depoderosas redes neuronales sin requerir del usuario queaprenda un paquete
desoftwarecomplicado o un lenguajeestadstico.
Nnmodel contienemdulos para, entreotras, las siguientes principales funciones:
Disear un experimento estadstico:
Permitecrear una matriz dedatos basadaen un experimentodiseadoestads-
ticamente.
Ingreso dedatos por teclado, archivo o clipboard:
Soporta tres mtodos para el ingreso delos datos:
1. Ingresar los datos directamenteutilizando el editor dela matriz dedatos.
2. Importar una tabla ASCI I o archivo delimitado con blancos.
3. Pegar datos desdeel clipboard deWindows.
Ejecutar reportes estadsticos simples y correlaciones:
Permite generar un reporte con estadsticas bsicas, tales como nmero de
observaciones, mximo, mnimo, promedio, desviacin estndard y suma de
cuadrados.
Tambin permite generar reportes de correlacin conteniendo los coecientes
decorrelacin dePearson einformacin complementaria deinters.
Anlisis grco dedatos:
Permitevisualizar grcamentelosdatosutilizando unavariedad derutinasde
plotting queincluyen, entreotras posibilidades, las siguientes:
Grco detendencias por observacin.
XY.
Distribucin defrecuencias.
Visualizacin tridimensional.
Manejo dedatos histricos.
Modelado dedatos utilizando redes neuronales:
Permitequeun modelo pueda ser creado y entrenado en pocos minutos.
19.7. DESCRIPCIN DEL SOFTWARE DE RNA UTILIZADO 515
Interrogar al modelo interactivamente:
Luego de que el modelo ha sido entrenado es posible interrogar al modelo in-
mediatamente.
Analizar la performancedel modelo estadsticamente:
La performancedel modelo puedeser evaluada utilizando el estadstico estn-
dard R
2
.
Desplegar las predicciones del modelo grcamenteincluyendo grcos 3D:
Una variedad degrcos estn disponibles, entreotros, los siguientes:
Datos vs. predicciones.
Residuos.
Tendencias.
Distribucin defrecuencias.
XY.
Supercies 3D.
Testear el modelo con un grupo dedatos externos:
Unamatriz detesteopuedeser cargadadesdedatosnooriginalmenteutilizados
para generar el modelo.
Realizar anlisis desensitividad:
Esteanlisispuedemostrar cunsensitivaesunavariabledesalidasi seefectan
cambios en la entrada.
Exportar el modelo neuronal como un archivo ASCII transportable:
El modelo deentrenamiento puedeser exportado desdeNnmodel a otra plata-
forma dehardware.
DDE Interface:
Permite al usuario llamar a modelos pre-entrenados con cualquier programa
quepermiteDDE (Dynamic Data Exchange).
Algunas delas muchas pantallas del producto pueden observarseen la Figura 19.3de
la pgina 516, en la Figura 19.4 de la pgina 517, en la Figura 19.5 de la pgina 518, en
la Figura 19.6dela pgina 519y en la Figura 19.7dela pgina 520.
516 CAPTULO 19. BSQUEDA EN DISCO CON REDES NEURONALES
Figura~19.3: Ejemplo depantalla Nnmodel.
19.7.4 Herramienta Qnet
Qnet es un poderoso simulador de redes neuronales articiales, pero tambin fcil de
utilizar.
Qnet implementavariosdiferentesalgoritmosparaentrenar unaredneuronal estndar
feed-forward en un ambientegrco fcil deusar.
La versin shareware dierede la registrada en el nmero decapas ocultas, el nme-
ro de neuronas en las capas ocultas y el nmero de patterns por archivo de datos de
entrenamiento.
Algunas delas muchas pantallas del producto pueden observarseen la Figura 19.8de
la pgina 521, en la Figura 19.9dela pgina 522y en la Figura 19.10dela pgina 522.
19.8 Resultados y Conclusiones
LautilizacindeMathematica paralaresolucindel problemaplanteadoharesultadomuy
satisfactoria, destacndoselas facilidades y potencia del producto.
Los resultados obtenidos ratican, como era de esperarse, las previsiones tericas en
cuantoalasdiferencias entrelosdistintos algoritmosdebsquedarespectodel nmero de
movimientos del mecanismo de acceso requeridos para atender las mismas peticiones.
Lamodalidadimplementadademostrar losresultadospasoapasopor pantallapermite
observar el comportamientodelosalgoritmosyfacilitalacomprensindesufuncionamien-
to.
En lo referente a las herramientas de redes neuronales articiales puede indicarse lo
siguiente:
19.8. RESULTADOS Y CONCLUSIONES 517
Figura~19.4: Ejemplo depantalla Nnmodel.
518 CAPTULO 19. BSQUEDA EN DISCO CON REDES NEURONALES
Figura~19.5: Ejemplo depantalla Nnmodel.
19.8. RESULTADOS Y CONCLUSIONES 519
Figura~19.6: Ejemplo depantalla Nnmodel.
520 CAPTULO 19. BSQUEDA EN DISCO CON REDES NEURONALES
Figura~19.7: Ejemplo depantalla Nnmodel.
19.8. RESULTADOS Y CONCLUSIONES 521
Figura~19.8: Ejemplo depantalla Qnet.
522 CAPTULO 19. BSQUEDA EN DISCO CON REDES NEURONALES
Figura~19.9: Ejemplo depantalla Qnet.
Figura~19.10: Ejemplo depantalla Qnet.
19.8. RESULTADOS Y CONCLUSIONES 523
Estudio y evaluacin con la herramienta Nndt
Prueba Conguracin N

deNeuronas Archivo Archivo Archivo


N

deRed Ocultas del Modelo deLog deSalida


1 6:9:6:3 15 Nndt1.mlp Log1.dat Salida1.dat
2 6:6:3:3 9 Nndt2.mlp Log2.dat Salida2.dat
3 6:4:2:3 6 Nndt3.mlp Log3.dat Salida3.dat
4 06:00:03 0 Nndt4.mlp Log4.dat Salida4.dat
5 06:05:03 5 Nndt5.mlp Log5.dat Salida5.dat
6 6:5:4:3 9 Nndt6.mlp Log6.dat Salida6.dat
7 06:04:03 4 Nndt7.mlp Log7.dat Salida7.dat
Tabla 19.2: Utilizacin dela herramienta Nndt.
Prueba Datos de Datos N

deReg. de N

deReg. N

de
N

Entrenamiento deTest Entrenamiento deTest Iteraciones


1 Colas3fn.dat Colas3ft.dat 177 210 345
2 Colas3fn.dat Colas3ft.dat 177 210 274
3 Colas3fn.dat Colas3ft.dat 177 210 521
4 Colas3fn.dat Colas3ft.dat 177 210 4
5 Colas3fn.dat Colas3ft.dat 177 210 31
6 Colas3fn.dat Colas3ft.dat 177 210 338
7 Colas3fn.dat Colas3ft.dat 177 210 214
Promedios 177 210 247
Tabla 19.3: Utilizacin dela herramienta Nndt (continuacin).
LosresultadosobtenidosseresumenenlaTabla19.2delapgina523, en laTabla19.3
de la pgina 523 y en la Tabla 19.4 de la pgina 524, pudiendo extraerse de las mismas
las siguientes conclusiones:
Se efectuaron pruebas con distinto nmero de capas ocultas y distinto nmero de
neuronas por capa.
En todos los casos los archivos de datos de entrenamiento y de testeo fueron los
mismos.
El menor error (0,15679432) selogrcon laconguracin dered 6:6:3:3, es decir con
2capas ocultas de6y 3neuronas respectivamentey luego de274iteraciones.
Podra decirsequean el error mnimo obtenido es relativamentealto.
Estudio y evaluacin con la herramienta Nnmodel
LosresultadosobtenidosseresumenenlaTabla19.5delapgina524, en laTabla19.6
de la pgina 525 y en la Tabla 19.7 de la pgina 525, pudiendo extraerse de las mismas
las siguientes conclusiones:
524 CAPTULO 19. BSQUEDA EN DISCO CON REDES NEURONALES
Prueba Error
N

1 0,229280308
2 0,156794318
3 0,21210684
4 0,284308086
5 0,279096262
6 0,212079128
7 0,255048114
Promedios 0,232673294
Tabla 19.4: Utilizacin dela herramienta Nndt (continuacin).
Prueba Conguracin N

deNeuronas Archivo Reporte Reportede


N

deRed Ocultas del Modelo Estadstico Sensitividad


1 06:15:03 15 Nnmodel1.bep Nnrep1.rpt Nnrepo1.rpt
2 06:09:03 9 Nnmodel2.bep Nnrep2.rpt Nnrepo2.rpt
3 06:06:03 6 Nnmodel3.bep Nnrep3.rpt Nnrepo3.rpt
4 06:00:03 0 Nnmodel4.bep Nnrep4.rpt Nnrepo4.rpt
5 06:05:03 5 Nnmodel5.bep Nnrep5.rpt Nnrepo5.rpt
6 06:09:03 9 Nnmodel6.bep Nnrep6.rpt Nnrepo6.rpt
7 06:04:03 4 Nnmodel7.bep Nnrep7.rpt Nnrepo7.rpt
Tabla 19.5: Utilizacin dela herramienta Nnmodel.
Seefectuaron pruebas con distinto nmero deneuronas ocultas.
En todos los casos los archivos de datos fueron los mismos, pero utilizndose un
nmero variable de datos para entrenamiento y para testeo, seleccionando estos
ltimos dedistinta manera.
El menor error (0,015253) se logr con la conguracin de red 6:9:3, es decir con 1
capa oculta de9neuronas y luego de5000iteraciones.
Podra decirsequeel error mnimo obtenido es relativamenteaceptable.
En pruebas complementarias efectuadas variando otros parmetros tales como lear-
ningratey alpha, nosehanobtenidovariacionessignicativasrespectodeloserrores
indicados en el archivo mencionado.
Estudio y evaluacin con la herramienta Qnet
Losresultadosobtenidosseresumen en laTabla19.8delapgina526, enlaTabla19.9
dela pgina 526 y en la Tabla 19.10 dela pgina 527, pudiendo extraersedelas mismas
las siguientes conclusiones:
19.8. RESULTADOS Y CONCLUSIONES 525
Prueba Datos de Datos N

deReg. de N

deReg. N

de
N

Entrenamiento deTest Entrenamiento deTest Iteraciones


1 Colas3fn.txt 0 387 0 1000
2 Colas3fn.txt Random 311 76 1000
3 Colas3fn.txt Random 301 86 1000
4 Colas3fn.txt Secuencial 250 137 1000
5 Colas3fn.txt Secuencial 125 262 1000
6 Colas3fn.txt Secuencial 125 262 5000
7 Colas3fn.txt Random 309 78 5000
Promedios 258 129 2143
Tabla 19.6: Utilizacin dela herramienta Nnmodel (continuacin).
Prueba Error
N

1 0,066045
2 0,06085
3 0,061114
4 0,104912
5 0,057495
6 0,015253
7 0,063339
Promedios 0,061286857
Tabla 19.7: Utilizacin dela herramienta Nnmodel (continuacin).
Se efectuaron pruebas con distinto nmero de capas ocultas y distinto nmero de
neuronas por capa.
En todos los casos los archivos de datos fueron los mismos, pero utilizndose un
nmero variable de datos para entrenamiento y para testeo, seleccionando estos
ltimos dedistinta manera.
El menor error (0,159792) selogr con la conguracin dered 6:5:3, es decir con 1
capa oculta de5neuronas y luego de10000iteraciones.
Podra decirsequeel error mnimo obtenido es relativamenteaceptable.
En pruebascomplementariasefectuadas variandootros parmetrostalescomo learn
rateymomentum, nosehanobtenidovariacionessignicativasrespectodeloserrores
indicados en el archivo mencionado.
Resumen del estudio y evaluacin con las herramientas de RNA
Lacomparacindeloscasosenquesehaobtenidoel menor error paracadaherramienta
analizada se indica en la Tabla 19.11 de la pgina 527, pudiendo extraerse del mismo la
526 CAPTULO 19. BSQUEDA EN DISCO CON REDES NEURONALES
Prueba Conguracin N

deNeuronas Archivo Reporte Reporte


N

deRed Ocultas del Modelo deErrores deSalida


1 6:9:6:3 15 Qnet1.net Qnet1.err Qnet1.out
2 6:6:3:3 9 Qnet2.net Qnet2.err Qnet2.out
3 6:4:2:3 6 Qnet3.net Qnet3.err Qnet3.out
4 06:03:03 3 Qnet4.net Qnet4.err Qnet4.out
5 06:05:03 5 Qnet5.net Qnet5.err Qnet5.out
6 6:5:4:3 9 Qnet6.net Qnet6.err Qnet6.out
7 06:04:03 4 Qnet7.net Qnet7.err Qnet7.out
Tabla 19.8: Utilizacin dela herramienta Qnet.
Prueba Datos de Datos N

deReg. de N

deReg. N

de
N

Entrenamiento deTest Entrenamiento deTest Iteraciones


1 Colas3fn.txt Random 337 50 10000
2 Colas3fn.txt Random 287 100 5000
3 Colas3fn.txt Random 237 150 5000
4 Colas3fn.txt Fin 337 50 10000
5 Colas3fn.txt Fin 337 50 10000
6 Colas3fn.txt Random 317 70 10000
7 Colas3fn.txt Random 317 70 10000
Promedios 310 77 8571
Tabla 19.9: Utilizacin dela herramienta Qnet (continuacin).
conclusin nal de que para los datos analizados, las conguraciones de red empleadas,
las herramientasconsideradas y losparmetrosutilizados, el menor error correspondeala
herramienta Nnmodel.
Asimismo puedeconcluirsequela utilizacin detecnologa deredes neuronales arti-
ciales implantada en el rmwaredelos controladores de operaciones de entrada / salida
permitira de una manera muy rpida y a un muy bajo nivel, seleccionar cul sera el
algoritmo de planicacin de la bsqueda en disco ms adecuado para cada conjunto de
peticiones pendientesen un momento dado, sin la intervencin del sistema operativopara
la ejecucin del algoritmo de planicacin por software, teniendo adems en cuenta que
para cada conjunto de peticiones la RNA podra de hecho aplicar el algoritmo ms ade-
cuado, en vez desiempreel mismoalgoritmoejecutadoanivel del sistemaoperativo, como
frecuentementeocurre, liberando adems ciclos decpu.
Otra posibilidad sera considerar el desarrollo de un sistema experto que tomara las
decisionesqueacsedejan en el mbitodelaRNA, con loqueselograramayor precisin
en losresultados, esdecir queseramayor el nmerodeaciertosenseleccionar el algoritmo
ptimo para cada caso, pero posiblementeseperdera en performance debido a la mayor
cantidad y complejidad del cdigo quedebera ejecutar el sistema experto.
19.8. RESULTADOS Y CONCLUSIONES 527
Prueba Error RMS de Error RMS Correlacin de Correlacin
N

Entrenamiento deTesteo Entrenamiento deTesteo


1 0,129079 0,279679 0,92033 0,639145
2 0,195188 0,20041 0,806298 0,794543
3 0,201248 0,188811 0,792498 0,820302
4 0,178818 0,146925 0,840516 0,896298
5 0,159792 0,191637 0,876386 0,824044
6 0,197801 0,187039 0,800428 0,823899
7 0,168869 0,196328 0,859185 0,806494
Promedios 0,175827857 0,198689857 0,842234429 0,800675
Tabla 19.10: Utilizacin dela herramienta Qnet (continuacin).
Herramienta Conguracin N

de Error Error Promedio


deRed Iteraciones delas Pruebas
Nndt 6:6:3:3 274 0,15679432 0,23267329
Nnmodel 06:09:03 5000 0,015253 0,06128686
Qnet 6:9:6:3 10000 0,129079 0,17582786
Tabla 19.11: Resumen comparativo dela utilizacin deRNA.
528 CAPTULO 19. BSQUEDA EN DISCO CON REDES NEURONALES
Captulo 20
Concurrencia e Hilos con J ava
20.1 I ntroduccin
Para el desarrollo del presentecaso deestudio seha utilizado el lenguajeJ ava, una muy
poderosaherramientaparael desarrolloorientadoaobjetos, lautilizacinatravsdeInter-
net, el desarrollo multiplataforma y especialmentepara la explotacin dela concurrencia
a nivel deprograma, mediantelautilizacin dehilos deejecucin oprocesos ligeros, segn
selos designa en la bibliografa existente[25, Tanenbaum] y [20, Castillo, Cobo, Gmez y
Solares].
Los hilos o procesos ligeros son una parte de cdigo o miniprograma que puede ser
ejecutadaindependientemente, deformaqueunaaplicacinoun applet puedetener varios
hilosejecutndosesimultneamentey efectuandodistintastareas; estoshilosseencuentran
dentro deun programa y son partedel.
Los hilos, a veces tambin llamados contextos deejecucin, pueden ser utilizados para
la implementacin de algoritmos paralelos o procesos concurrentes, sin ser necesario dis-
poner de equipos con estructura de multiprocesador. En el caso de un solo procesador,
los procesos ligeros incorporan mecanismos para compartirlo, establecindoseprioridades
entreellos y tambin facilidades desincronizacin, cuando es necesario.
Los aspectos tericos relacionados con los hilos (threads) han sido desarrollados en el
Captulo Procesos y Procesadores en Sistemas Distribuidos.
20.2 Objetivo del Caso de Estudio
Conforme a lo antes indicado, el objetivo del caso de estudio desarrollado fue el de pro-
gramar una aplicacin con J ava (Hilos.java) queimplementara el problema deprocesos
productores y consumidores y que permitiera generar un archivo reutilizable de segui-
miento (Hilos.txt y su versin formateada Hilos.dat) y posteriormenteefectuar anlisis
dela forma en queseha desarrollado la ejecucin concurrentedelos hilos y la sincroniza-
cin delos mismos, quees el verdadero objetivo, ms all dela utilizacin como ejemplo
del problema deproductores y consumidores.
529
530 CAPTULO 20. CONCURRENCIA E HILOS CON J AVA
20.3 Descripcin del Problema Planteado
Una descripcin detallada del problema de los hilos de ejecucin puede consultarse en
el Captulo Procesos y Procesadores en Sistemas Distribuidos, siendo especialmente
pertinentes los temas relacionados con Introduccin a los Hilos, Uso de Hilos, Aspectos
del Diseo de un Paquete de Hilos e Implantacin de un Paquete de Hilos.
20.4 Descripcin de los Algoritmos Utilizados
Al igual queen el apartadoanterior, unadescripcin detalladadelosfundamentostericos
de los algoritmos aplicables a este caso, puede consultarse en el Captulo Procesos y
Procesadores en Sistemas Distribuidos, siendo especialmentepertinentes los temas sobre
Aspectos del Diseo de un Paquete de Hilos e I mplantacin de un Paquete de Hilos.
[25, Tanenbaum].
Respecto del algoritmo de productores y consumidores utilizado como base para el
desarrollo del programa del caso deestudio, puedeser consultado en los ejemplos sobreel
tema de[20, Castillo, Cobo, Gmez y Solares] y adems en [23, Tanenbaum].
Los principales aspectos del algoritmo desarrollado son los siguientes:
Losprocesos productores simulangenerar, esdecir grabar informacin enun grupo
debuers disponibles.
Los procesos consumidores simulan retirar, es decir leer informacin del grupo de
buers disponibles, quepreviamentedebiser cargado por los procesos producto-
res.
Los procesos consumidores solo pueden leer informacin previamente grabada
por los procesos productores.
Si cuando un proceso consumidor intenta leer no hay sucientes buers disponibles,
debeesperar a quealguno delos procesos productores grabelos buers.
Los procesos productores solo actan cuando el nivel de buers grabados est por
debajo decierto lmite, llamado lmitedereposicin, quees un dato variablequese
ingresa como parmetro deconguracin de la simulacin, al igual que la cantidad
debuers grabados en cada reposicin.
Los procesos consumidores pueden retirar (leer) buers en nmero variable pero
hasta cierto lmite, quetambin es un dato variablequeseingresa como parmetro
deconguracin dela simulacin.
Debido a que los procesos productores solo actan cuando el nmero de buers
disponibles est por debajo del nivel dereposicin y a quela cantidad dereposicin
es nita, seasegura queel nmero debuers del pool ser siemprenito.
El tiempo quedura la simulacin tambin es un parmetro deconguracin quese
ingresa como dato expresado en milisegundos.
20.5. PROGRAMA DESARROLLADO 531
20.5 Programa Desarrollado
El programa en J ava desarrollado se encuentra en el archivo Hilos.java y posee las si-
guientes caractersticas:
Se lo puede invocar mediante java Hilos y recibe como entradas por pantalla los
datos de conguracin dela simulacin referidos a:
Nmero inicial debuers ocupados.
Nmero mximo debuers leidos por vez.
Nmero mnimo debuers ocupados antes degrabar ms.
Nmero debuers grabados por vez.
Nmero demilisegundos dela ejecucin.
Respecto del archivo generado, el mismo tendr un tamao variable segn los datos
que se hayan suministrado a la ejecucin que lo produce, especialmente el tiempo de
ejecucin; es preciso sealar adems que el archivo es reutilizable, es decir que se borra
automticamenteal iniciar cada ejecucin.
El cdigo del programa desarrollado (Hilos.java) es el siguiente:
/ / Trabajo prctico partedela Tesis dela Maestra en Informtica y
/ / Computacin - 2000. David Luis la Red Martnez.
/ /
/ / Ejemplo deconcurrencia ehilos con J AVA.
/ /
/ / El ejemplo contempla el problema deproductores / consumidores:
/ / * Los hilos productores graban (y ocupan) buers en un pool debuers disponibles.
/ / * Los hilos consumidores leen (y liberan) buers del pool debuers disponibles.
/ /
import java.io.*;
import java.util.*;
import java.util.Date;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
532 CAPTULO 20. CONCURRENCIA E HILOS CON J AVA
import java.applet.*;
import java.applet.Applet;
import java.math.*;
import java.text.*;
import java.lang.String;
import java.lang.*;
public class Hilos extends Frame
implements ActionListener {
VentanaDialogCH ventana;
SimpleDialogCH dialog;
TextArea textArea;
Button boton1;
public Hilos() {
MenuBar barra;
Menu cargadatos, ayuda, acerca, salir;
MenuItemcardatos, ejecuc, listaeje, ayulis, acercade, n;
/ / Men principal.
barra = newMenuBar();
setMenuBar(barra);
/ / Agregado desubmen al principal.
cargadatos = newMenu(Conguracin y Ejecucin, true);
barra.add(cargadatos);
/ / Creacin deopciones del men.
cardatos =newMenuItem(Datos deConguracin);
cardatos.addActionListener(this);
cargadatos.add(cardatos);
ejecuc =newMenuItem(Ejecucin ConcurrenteeHilos);
ejecuc.addActionListener(this);
20.5. PROGRAMA DESARROLLADO 533
cargadatos.add(ejecuc);
listaeje= newMenuItem(Lista Resultados deEjecucin);
listaeje.addActionListener(this);
cargadatos.add(listaeje);
/ / Agregado del submen al principal.
ayuda = newMenu(Ayuda, true);
barra.add(ayuda);
/ / Creacin deopciones del men.
ayulis = newMenuItem(Listar Ayuda);
ayulis.addActionListener(this);
ayuda.add(ayulis);
/ / Agregado del submen al principal.
salir = newMenu(Salir, true);
barra.add(salir);
/ / Creacin deopciones del men.
n =newMenuItem(Salir del Sistema);
n.addActionListener(this);
salir.add(n);
/ / Agregado del submen al principal.
acerca = newMenu(Acerca de, true);
barra.add(acerca);
/ / Creacin deopciones del men.
acercade=newMenuItem(Acerca del Sistema);
acercade.addActionListener(this);
acerca.add(acercade);
/ / Habilitacin del cierredela ventana.
addWindowListener(newWindowAdapter() {
public void windowClosing(WindowEvent e) {
534 CAPTULO 20. CONCURRENCIA E HILOS CON J AVA
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent evt) {
MenuItemc = (MenuItem) evt.getSource();
String arg =c.getLabel();
if(arg.equals(Salir del Sistema)) {
System.exit(0);
}
elseif(arg.equals(Datos deConguracin)) {
/ / Para Datos deConguracin.
/ / Leedatos deentrada.
/ / Crea etiqueta para documento.
VentanaDialogCH ventana=newVentanaDialogCH();
ventana.setTitle(Carga deDatos deConguracin);
ventana.setVisible(true);
ventana.setBackground(Color.yellow);
ventana.setForeground(Color.red);
ventana.setSize(newDimension(600,400));
}
elseif(arg.equals(Ejecucin ConcurrenteeHilos)) {
/ / Para Ejecucin ConcurrenteeHilos.
/ / Leedatos deentrada.
/ / Crea etiqueta para documento.
VentanaDialogECH ventana=newVentanaDialogECH();
ventana.setTitle(Realiza Ejecucin ConcurrenteeHilos);
ventana.setVisible(true);
20.5. PROGRAMA DESARROLLADO 535
ventana.setBackground(Color.red);
ventana.setForeground(Color.yellow);
ventana.setSize(newDimension(600,400));
}
elseif(arg.equals(Lista Resultados deEjecucin)) {
/ / Para Lista Resultados deEjecucin.
/ / Leedatos deentrada.
/ / Crea etiqueta para documento.
VentanaDialogLCH ventana=newVentanaDialogLCH();
ventana.setTitle(Lista Resultados deEjecucin ConcurrenteeHilos);
ventana.setVisible(true);
ventana.setBackground(Color.green);
ventana.setForeground(Color.orange);
ventana.setSize(newDimension(600,400));
}
elseif(arg.equals(Listar Ayuda)) {
/ / Para Listar Ayuda.
/ / Leedatos deentrada.
/ / Crea etiqueta para Listar Ayuda.
VentanaDialogA ventana=newVentanaDialogA();
ventana.setTitle(Lista Ayuda);
ventana.setVisible(true);
ventana.setBackground(Color.cyan);
ventana.setForeground(Color.magenta);
ventana.setSize(newDimension(600,400));
}
elseif(arg.equals(Acerca del Sistema)) {
/ / Para Acerca del Sistema.
536 CAPTULO 20. CONCURRENCIA E HILOS CON J AVA
/ / Leedatos deentrada.
/ / Crea etiqueta para Acerca del Sistema.
VentanaDialogAS ventana=newVentanaDialogAS();
ventana.setTitle(Acerca del Sistema);
ventana.setVisible(true);
ventana.setBackground(Color.orange);
ventana.setForeground(Color.blue);
ventana.setSize(newDimension(600,400));
}
}
public static void main (String args[]) {
/ / Creacin del men principal.
Hilos menus = newHilos();
menus.setTitle(Ejecucin ConcurrenteeHilos con J AVA);
menus.setVisible(true);
menus.setBackground(Color.cyan);
menus.setSize(newDimension(850,650));
/ / Creacin dela imgen dinmica.
VImaCanvas imagen1=newVImaCanvas();
imagen1.setTitle(???????);
imagen1.setVisible(true);
imagen1.setBackground(Color.orange);
imagen1.setSize(newDimension(100,100));
}
}
class VentanaDialogCH extends Frameimplements ActionListener{
SimpleDialogCH dialog;
TextArea textArea;
20.5. PROGRAMA DESARROLLADO 537
Button boton1;
public VentanaDialogCH(){
textArea=newTextArea(5,40);
textArea.setEditable(false);
add(Center,textArea);
boton1=newButton(Dilogo p/ conguracin);
boton1.addActionListener(this);
Panel panel=newPanel();
panel.add(boton1);
add(South,panel);
panel.setBackground(Color.yellow);
addWindowListener(newWindowAdapter(){
public void windowClosing(WindowEvent e){
setVisible(false);
}});
}
public void actionPerformed(ActionEvent evt){
String str=evt.getActionCommand();
if(str.equals(Dilogo p/ conguracin)){
if(dialog==null)
dialog=newSimpleDialogCH(this,Conguracin);
dialog.show();
}
}
public void setText1(String stock){
try {
textArea.setFont(newFont(Times, 1, 11));
textArea.setForeground(Color.orange);
538 CAPTULO 20. CONCURRENCIA E HILOS CON J AVA
String asterisc = nn*************************************;
textArea.append(asterisc);
textArea.append(nnNmero inicial debuers ocupados: +stock +.);
}
catch (java.lang.Exception ex) {
/ / Atrapa excepciones y las despliega.
ex.printStackTrace();
}
try {
Filef0=newFile(Hilos.txt);
f0.delete();
RandomAccessFilef1=newRandomAccessFile(Hilos.txt, rw);
long longitud;
longitud =0;
f1.seek(longitud);
f1.writeUTF(stock);
f1.close();
}
catch (Exception e) {
System.out.println(Archivo Hilos: Salida en grabacin deparmetros: + e);
}
}
public void setText2(String maxcompra){
try {
textArea.append(nnNmero mximo debuers leidos por vez: +maxcompra +.);
}
catch (java.lang.Exception ex) {
/ / Atrapa excepciones y las despliega.
20.5. PROGRAMA DESARROLLADO 539
ex.printStackTrace();
}
try {
RandomAccessFilef1= newRandomAccessFile(Hilos.txt, rw);
long longitud;
longitud =f1.length();
f1.seek(longitud);
f1.writeUTF(maxcompra);
f1.close();
}
catch (Exception e) {
System.out.println(Archivo Hilos: Salida en grabacin deparmetros: +e);
}
}
public void setText3(String limitereponer){
try {
textArea.append(nnNmero mnimo de buers ocupados antes de grabar ms: +
limitereponer + .);
}
catch (java.lang.Exception ex) {
/ / Atrapa excepciones y las despliega.
ex.printStackTrace();
}
try {
RandomAccessFilef1= newRandomAccessFile(Hilos.txt, rw);
long longitud;
longitud =f1.length();
f1.seek(longitud);
f1.writeUTF(limitereponer);
540 CAPTULO 20. CONCURRENCIA E HILOS CON J AVA
f1.close();
}
catch (Exception e) {
System.out.println(Archivo Hilos: Salida en grabacin deparmetros: + e);
}
}
public void setText4(String cantidadreponer){
try {
textArea.append(nnNmero debuers grabados por vez: + cantidadreponer +.);
}
catch (java.lang.Exception ex) {
/ / Atrapa excepciones y las despliega.
ex.printStackTrace();
}
try {
RandomAccessFilef1=newRandomAccessFile(Hilos.txt, rw);
long longitud;
longitud =f1.length();
f1.seek(longitud);
f1.writeUTF(cantidadreponer);
f1.close();
}
catch (Exception e) {
System.out.println(Archivo Hilos: Salida en grabacin deparmetros: + e);
}
}
public void setText5(String tiempoapertura){
try {
20.5. PROGRAMA DESARROLLADO 541
String asterisc =nn*************************************;
textArea.append(nnNmero de milisegundos de la simulacin: + tiempoapertura +
.);
textArea.append(asterisc);
textArea.append(nn );
}
catch (java.lang.Exception ex) {
/ / Atrapa excepciones y las despliega.
ex.printStackTrace();
}
try {
RandomAccessFilef1= newRandomAccessFile(Hilos.txt, rw);
long longitud;
longitud =f1.length();
f1.seek(longitud);
f1.writeUTF(tiempoapertura);
f1.close();
}
catch (Exception e) {
System.out.println(Archivo Hilos: Salida en grabacin deparmetros: +e);
}
}
}
class SimpleDialogCH extends Dialog implements ActionListener{
TextField tstock, tmaxcompra, tlimitereponer, tcantidadreponer, ttiempoapertura;
VentanaDialogCH parent;
Button b1;
public String stock;
public String MAXCOMPRA;
542 CAPTULO 20. CONCURRENCIA E HILOS CON J AVA
public String LIMITEREPONER;
public String CANTIDADREPONER;
public String TIEMPOAPERTURA;
public SimpleDialogCH(Framefr,String titulo){
super(fr,titulo,true);
parent=(VentanaDialogCH)fr;
Panel p1=newPanel();
Label etiqueta1=newLabel(Nmero inicial debuers ocupados (0):);
p1.add(etiqueta1);
tstock=newTextField(0,4);
p1.add(tstock);
add(Center,p1);
Label etiqueta2=newLabel(Nmero mximo debuers leidos por vez (30):);
p1.add(etiqueta2);
tmaxcompra=newTextField(30,4);
p1.add(tmaxcompra);
add(Center,p1);
Label etiqueta3=new Label(Nmero mnimo debuers ocupados antes degrabar ms
(40):);
p1.add(etiqueta3);
tlimitereponer=newTextField(40,4);
p1.add(tlimitereponer);
add(Center,p1);
Label etiqueta4=newLabel(Nmero debuers grabados por vez (50):);
p1.add(etiqueta4);
tcantidadreponer=newTextField(50,4);
p1.add(tcantidadreponer);
add(Center,p1);
Label etiqueta5=newLabel(Nmero demilisegundos dela ejecucin (2000):);
20.5. PROGRAMA DESARROLLADO 543
p1.add(etiqueta5);
ttiempoapertura=newTextField(2000,4);
p1.add(ttiempoapertura);
add(Center,p1);
Panel p2=newPanel();
p2.setLayout(newFlowLayout(FlowLayout.RIGHT));
b1=newButton(Cancelar);
b1.addActionListener(this);
Button b2=newButton(Aceptar);
b2.addActionListener(this);
p2.add(b1);
p2.add(b2);
add(South,p2);
setSize(500,200);
}
public void actionPerformed(ActionEvent evt){
String str=evt.getActionCommand();
if(str.equals(Aceptar))
parent.setText1(tstock.getText());
stock =tstock.getText();
parent.setText2(tmaxcompra.getText());
MAXCOMPRA = tmaxcompra.getText();
parent.setText3(tlimitereponer.getText());
LIMITEREPONER = tlimitereponer.getText();
parent.setText4(tcantidadreponer.getText());
CANTIDADREPONER =tcantidadreponer.getText();
parent.setText5(ttiempoapertura.getText());
TIEMPOAPERTURA = ttiempoapertura.getText();
544 CAPTULO 20. CONCURRENCIA E HILOS CON J AVA
setVisible(false);
}
}
class VentanaDialogECH extends Frameimplements ActionListener{
TextArea textArea;
public VentanaDialogECH(){
textArea=newTextArea(5,40);
textArea.setEditable(false);
add(Center,textArea);
String stock, maxcompra, limitereponer, cantidadreponer, tiempoapertura;
stock = ; maxcompra = ; limitereponer = ;
cantidadreponer =; tiempoapertura =;
addWindowListener(newWindowAdapter(){
public void windowClosing(WindowEvent e){
setVisible(false);
}});
try {
RandomAccessFilef1=newRandomAccessFile(Hilos.txt, rw);
long longitud;
longitud =0;
f1.seek(longitud);
stock = f1.readUTF();
maxcompra =f1.readUTF();
limitereponer =f1.readUTF();
cantidadreponer =f1.readUTF();
tiempoapertura = f1.readUTF();
f1.close();
}
20.5. PROGRAMA DESARROLLADO 545
catch (Exception e) {
System.out.println(ArchivoHilos: Salidaluegodeleer parmetrosparaactualizar datos:
+ e);
}
try {
Almacen a = newAlmacen();
Productor p1= newProductor(a,1);
Productor p2= newProductor(a,2);
Consumidor c1=newConsumidor(a,1);
Consumidor c2=newConsumidor(a,2);
Consumidor c3=newConsumidor(a,3);
a.stock = Integer.parseInt(stock);
a.MAXCOMPRA =Integer.parseInt(maxcompra);
a.LIMITEREPONER = Integer.parseInt(limitereponer);
a.CANTIDADREPONER = Integer.parseInt(cantidadreponer);
a.TIEMPOAPERTURA =Integer.parseInt(tiempoapertura);
p1.start();
p2.start();
c1.start();
c2.start();
c3.start();
}
catch (java.lang.Exception ex) {
/ / Atrapa excepciones y las despliega.
ex.printStackTrace();
}
try {
RandomAccessFilef1= newRandomAccessFile(Hilos.txt, rw);
long longitud;
546 CAPTULO 20. CONCURRENCIA E HILOS CON J AVA
String c, d, asterisc;
longitud =0;
f1.seek(longitud);
asterisc =nn*************************************;
d = nn ;
textArea.setFont(newFont(Times, 1, 11));
textArea.setForeground(Color.red);
textArea.append(asterisc);
textArea.append(nnInicio dela ejecucin concurrentecon hilos.);
textArea.append(nnLos datos deconguracin son los siguientes: );
c = f1.readUTF();
textArea.append(nnNmero inicial debuers ocupados: +c +.);
c = f1.readUTF();
textArea.append(nnNmero mximo debuers leidos por vez: + c + .);
c = f1.readUTF();
textArea.append(nnNmero mnimo debuers ocupados antes degrabar ms: +c +
.);
c = f1.readUTF();
textArea.append(nnNmero debuers grabados por vez: + c + .);
c = f1.readUTF();
textArea.append(nnNmero demilisegundos dela ejecucin: + c + .);
textArea.append(asterisc);
textArea.append(d);
f1.close();
}
catch (Exception e) {
System.out.println(Archivo Hilos: Salida luego deleer parmetros para desplegarlos:
+e);
}
20.5. PROGRAMA DESARROLLADO 547
}
public void actionPerformed(ActionEvent evt){
String str=evt.getActionCommand();
}
}
class VentanaDialogLCH extends Frameimplements ActionListener{
TextArea textArea;
public VentanaDialogLCH(){
textArea=newTextArea(5,40);
textArea.setEditable(false);
add(Center,textArea);
addWindowListener(newWindowAdapter(){
public void windowClosing(WindowEvent e){
setVisible(false);
}});
try {
RandomAccessFilef1= newRandomAccessFile(Hilos.txt, rw);
long longitud;
String c, d, asterisc;
longitud =0;
f1.seek(longitud);
asterisc = nn*************************************;
d =nn ;
textArea.setFont(newFont(Times, 1, 11));
textArea.setForeground(Color.red);
textArea.append(asterisc);
textArea.append(nnInicio dela ejecucin concurrentecon hilos.);
textArea.append(nnLos datos deconguracin son los siguientes: );
548 CAPTULO 20. CONCURRENCIA E HILOS CON J AVA
c = f1.readUTF();
textArea.append(nnNmero inicial debuers ocupados: +c +.);
c = f1.readUTF();
textArea.append(nnNmero mximo debuers leidos por vez: + c + .);
c = f1.readUTF();
textArea.append(nnNmero mnimo debuers ocupados antes degrabar ms: +c +
.);
c = f1.readUTF();
textArea.append(nnNmero debuers grabados por vez: + c + .);
c = f1.readUTF();
textArea.append(nnNmero demilisegundos dela ejecucin: + c + .);
textArea.append(asterisc);
textArea.append(d);
while((c = f1.readUTF()) != null) {
textArea.append(c);
textArea.append(d);
}
f1.close();
}
catch (Exception e) {
System.out.println(Archivo Hilos: Salida luego deleer parmetros para desplegarlos:
+e);
}
}
public void actionPerformed(ActionEvent evt){
String str=evt.getActionCommand();
}
}
class VentanaDialogA extends Frameimplements ActionListener{
20.5. PROGRAMA DESARROLLADO 549
TextArea textArea;
public VentanaDialogA(){
textArea=newTextArea(5,40);
textArea.setEditable(false);
add(Center,textArea);
addWindowListener(newWindowAdapter(){
public void windowClosing(WindowEvent e){
setVisible(false);
}});
try {
String asterisc =nn *************************************************;
textArea.setFont(newFont(Times, 1, 11));
textArea.setForeground(Color.blue);
textArea.append(nn );
textArea.append(asterisc);
textArea.append(nn );
textArea.append(nn Ayuda para la ejecucin concurrenteehilos con J AVA.);
textArea.append(nn ******************************************************);
textArea.append(nn );
textArea.append(nn El ejemplo contempla el problema de productores / consumido-
res:);
textArea.append(nn * Los hilos productores graban (y ocupan) buers en un pool);
textArea.append(nn debuers disponibles.);
textArea.append(nn * Los hilos consumidores leen (y liberan) buers del pool);
textArea.append(nn debuers disponibles.);
textArea.append(nn );
textArea.append(nn Las opciones previstas contemplan lo siguiente:);
textArea.append(nn * Carga dedatos deconguracin dela ejecucin.);
textArea.append(nn * Ejecucin propiamentedicha.);
550 CAPTULO 20. CONCURRENCIA E HILOS CON J AVA
textArea.append(nn * Listado delos resultados por pantalla.);
textArea.append(nn );
textArea.append(nn Los datos secargan interactivamentepor pantalla, );
textArea.append(nn dondesesugieren valores dereferencia.);
textArea.append(nn );
textArea.append(nn Los resultados segraban en el archivo Hilos.txt,);
textArea.append(nn como registros delongitud variable.);
textArea.append(nn );
textArea.append(nn );
textArea.append(asterisc);
textArea.append(nn );
}
catch (java.lang.Exception ex) {
/ / Atrapa otro tipo deexcepciones y las despliega.
ex.printStackTrace();
}
}
public void actionPerformed(ActionEvent evt){
String str=evt.getActionCommand();
}
}
class VentanaDialogAS extends Frameimplements ActionListener{
TextArea textArea;
public VentanaDialogAS(){
textArea=newTextArea(5,40);
textArea.setEditable(false);
add(Center,textArea);
addWindowListener(newWindowAdapter(){
20.5. PROGRAMA DESARROLLADO 551
public void windowClosing(WindowEvent e){
setVisible(false);
}});
try {
String asterisc =nn *************************************************;
textArea.setFont(newFont(Times, 1, 11));
textArea.setForeground(Color.black);
textArea.append(nn );
textArea.append(asterisc);
textArea.append(nn );
textArea.append(nn Acerca del sistema deconcurrencia ehilos con J AVA.);
textArea.append(nn ****************************************************);
textArea.append(nn );
textArea.append(nn Trabajo prctico deSistemas Operativos.);
textArea.append(nn Licenciatura en Sistemas.);
textArea.append(nn Universidad Nacional del Nordeste(Argentina).);
textArea.append(nn );
textArea.append(nn );
textArea.append(asterisc);
textArea.append(nn );
}
catch (java.lang.Exception ex) {
/ / Atrapa otro tipo deexcepciones y las despliega.
ex.printStackTrace();
}
}
public void actionPerformed(ActionEvent evt){
String str=evt.getActionCommand();
552 CAPTULO 20. CONCURRENCIA E HILOS CON J AVA
}
}
class VImaCanvas extends Frame
implements AdjustmentListener {
Imageimagen1;
ImaCanvas imaani;
Panel panel;
public VImaCanvas(){
setLayout(newBorderLayout());
panel =newPanel();
/ / Agregado dela imagen animada.
imagen1=Toolkit.getDefaultToolkit().getImage(Ani0076.gif);
imaani =newImaCanvas(imagen1);
panel.add(imaani);
add(Center,imaani);
}
public void adjustmentValueChanged(AdjustmentEvent evt){
imaani.repaint();
}
}
class ImaCanvas extends Canvas{
Imageimg;
int x,y;
public ImaCanvas(Imageimagen1){
img=imagen1;
x=0;
y=0;
}
20.5. PROGRAMA DESARROLLADO 553
public void paint(Graphics g){
g.drawImage(img,0,0,this);
}
}
class Productor extends Thread {
privateAlmacen almacen;
privateint numero;
public Productor(Almacen a, int numero) {
almacen =a;
this.numero = numero;
}
public void run() {
while(!almacen.cerrado){
if(System.currentTimeMillis()
-almacen.hora>almacen.TIEMPOAPERTURA){
almacen.cerrado=true;
try {
RandomAccessFilef1= newRandomAccessFile(Hilos.txt, rw);
long longitud;
String c;
c =Fin dela ejecucin.;
longitud =f1.length();
f1.seek(longitud);
f1.writeUTF(c);
f1.close();
}
catch (Exception e) {
System.out.println(Archivo Hilos: Salida luego degrabar Fin dela ejecucin: + e);
554 CAPTULO 20. CONCURRENCIA E HILOS CON J AVA
}
}
almacen.reponer(numero);
try {
sleep((int)(Math.random() * 100));
}
catch (InterruptedException e) {
}
}
}
}
class Consumidor extends Thread {
privateAlmacen almacen;
privateint numero;
public Consumidor(Almacen a, int numero) {
almacen = a;
this.numero =numero;
}
public void run() {
int value;
while(!almacen.cerrado){
value=(int)(Math.random()*almacen.MAXCOMPRA);
almacen.comprar(numero,value);
}
}
}
class Almacen {
public int stock=0;
20.5. PROGRAMA DESARROLLADO 555
privateboolean necesitareponer;
public boolean cerrado=false;
public int MAXCOMPRA=0;
public int LIMITEREPONER=0;
public int CANTIDADREPONER=0;
public long TIEMPOAPERTURA=0;
long hora=System.currentTimeMillis();
public synchronized void comprar(int consumidor,
int cantidad) {
while(necesitareponer == true) {
try {wait();
}catch (InterruptedException e) {
}
}
if(!cerrado){
if(stock<cantidad){
cantidad=stock;
}
stock-=cantidad;
try {
RandomAccessFilef1= newRandomAccessFile(Hilos.txt, rw);
long longitud;
String c;
c = Quedan + stock + unidades. El Consumidor + consumidor + ha leido
+cantidad+ unidades.;
longitud =f1.length();
f1.seek(longitud);
f1.writeUTF(c);
f1.close();
556 CAPTULO 20. CONCURRENCIA E HILOS CON J AVA
}
catch (Exception e) {
System.out.println(Archivo Hilos: Salida luego degrabar Hilo Consumidor: + e);
}
if(stock<=LIMITEREPONER)
necesitareponer = true;
}
notify();
}
public synchronized void reponer(int productor) {
if (!cerrado){
while(necesitareponer ==false) {
try {wait();
}catch (InterruptedException e) {}
}
stock+=CANTIDADREPONER;
try {
RandomAccessFilef1=newRandomAccessFile(Hilos.txt, rw);
long longitud;
String c;
c =Quedan + stock + unidades. El Productor +productor + ha grabado +
CANTIDADREPONER + unidades.;
longitud =f1.length();
f1.seek(longitud);
f1.writeUTF(c);
f1.close();
}
catch (Exception e) {
System.out.println(Archivo Hilos: Salida luego degrabar Hilo Productor: + e);
20.6. DATOS Y EJ ECUCIONES 557
}
necesitareponer =false;
}
notify();
}
}
20.6 Datos y Ejecuciones
Los resultados detallados de las ejecuciones se muestran paso a paso en pantalla y son
grabadosenel archivodedatosyejecuciones, queenestecasohasidoel archivoHilos.txt,
que es un archivo con registros de longitud variable, cuyos datos formateados, para una
ejecucin tomada como referencia, seencuentran en el archivo Hilos.dat.
El archivo generado (Hilos.txt), poseela siguienteestructura:
Nmero inicial debuers ocupados.
Nmero mximo debuers leidos por vez.
Nmero mnimo debuers ocupados antes degrabar ms.
Nmero debuers grabados por vez.
Nmero demilisegundos dela ejecucin.
Un registro por cada intervencin de cada proceso productor y de cada proceso
consumidor, donde se indica el nmero actual de buers disponibles luego de la
intervencin del proceso correspondiente y el nmero de buers grabados o leidos,
segn corresponda.
Un registro nal den dela ejecucin.
El contenido del mencionado archivo Hilos.dat luego de una de las ejecuciones de
evaluacin puedeconsultarseen los Anexos; un detalleparcial es el siguiente:
0
30
40
50
2000
Quedan 0unidades. El Consumidor 1ha leido 0unidades.
558 CAPTULO 20. CONCURRENCIA E HILOS CON J AVA
Quedan 50unidades. El Productor 1ha grabado 50unidades.
Quedan 49unidades. El Consumidor 2ha leido 1unidades.
Quedan 31unidades. El Consumidor 2ha leido 18unidades.
Quedan 81unidades. El Productor 2ha grabado 50unidades.
Quedan 53unidades. El Consumidor 1ha leido 28unidades.
Quedan 42unidades. El Consumidor 1ha leido 11unidades.
Quedan 39unidades. El Consumidor 1ha leido 3unidades.
Quedan 89unidades. El Productor 1ha grabado 50unidades.
Quedan 85unidades. El Consumidor 2ha leido 4unidades.
Quedan 66unidades. El Consumidor 2ha leido 19unidades.
Quedan 66unidades. El Consumidor 2ha leido 0unidades.
Quedan 61unidades. El Consumidor 2ha leido 5unidades.
Quedan 33unidades. El Consumidor 2ha leido 28unidades.
Quedan 83unidades. El Productor 2ha grabado 50unidades.
Quedan 58unidades. El Consumidor 3ha leido 25unidades.
Quedan 46unidades. El Consumidor 3ha leido 12unidades.
Quedan 22unidades. El Consumidor 3ha leido 24unidades.
Quedan 72unidades. El Productor 1ha grabado 50unidades.
Quedan 50unidades. El Consumidor 1ha leido 22unidades.
20.7 Resultados y Conclusiones
La utilizacin deJ ava para la resolucin del problema planteado ha resultado muy satis-
factoria, destacndoselas facilidades y potencia del producto, en especial para el manejo
dehilos deejecucin y dela sincronizacin delos mismos.
Los resultados obtenidos ratican, como era de esperarse, las previsiones tericas en
cuanto a las facilidades de los hilos o procesos ligeros para resolver problemas de con-
currencia y de simultaneidad, en caso de disponer de multiprocesadores; esto los hace
especialmenteaplicables a un gran nmero deproblemas propios delos sistemas operati-
vos comoadministradoresderecursos compartidos, siendoel casodel problemaplanteado,
es decir el caso deprocesos productores y procesos consumidores solo un caso genrico de
la problemtica antes mencionada.
Captulo 21
Anomala de Belady con Matlab
21.1 I ntroduccin
Para el desarrollo del presente caso de estudio se ha utilizado el lenguaje Matlab, una
muy poderosaherramientaparael clculonumrico, aplicadaacalasimulacindereque-
rimientos depaginacin dememoria virtual y a evaluar si secuencias aleatorias dedichos
requerimientos podran llevar a situaciones del tipo dela llamada Anomala de Belady o
Anomala FI FO [7, Deitel].
Lo interesantedel presentecaso deestudio es quesepermiten simular requerimientos
depaginacin para secuencias grandes (decientos o demiles derequerimientos) como as
tambin para grupos muy numerosos deceldas depginas, lo quenos acerca asituaciones
reales.
Los aspectos tericos relacionados con los algoritmos depaginacin y con la anomala
mencionada, han sido desarrollados en el Captulo Administracin de la Memoria.
21.2 Objetivo del Caso de Estudio
Conformealoantesindicado, el objetivodel casodeestudiodesarrolladofueel decodicar
un programa en Matlab (Anomalia.m) queefectuara el testeo dela posibleAnomala de
Beladyparauna secuenciaaleatoria derequerimientos depginas en un sistemadepagina-
cin FI FO, visualizando en pantalla los datos obtenidos y grcamentelos principales re-
sultados y quepermitieragenerar un archivo acumulativo deseguimiento (Anomalia.txt
y su versin formateada Anomalia.dat).
21.3 Descripcin del Problema Planteado
Una descripcin detallada del problema de la Anomala de Belady o Anomala FI FO
puede consultarse en el Captulo Administracin de la Memoria, siendo especialmente
pertinente el tema relacionado con Estrategias de Administracin del Almacenamiento
Virtual.
559
560 CAPTULO 21. ANOMALA DE BELADY CON MATLAB
21.4 Descripcin del Algoritmo Utilizado
Al igual queen el apartadoanterior, unadescripcin detalladadelosfundamentostericos
del algoritmo aplicable a este caso, puede consultarse en el Captulo Administracin
de la Memoria, siendo especialmente pertinente el tema relacionado con Estrategias de
Administracin del Almacenamiento Virtual. [7, Deitel].
21.5 Programa Desarrollado
El programa en Matlab desarrollado seencuentra en el archivo Anomalia.m y poseelas
siguientes caractersticas:
Selopuedeinvocar desdeel entornodeMatlabmedianteAnomalia.m y recibecomo
entradas por pantalla los datos de conguracin dela simulacin referidos a:
Nmero deceldas depgina en la memoria real.
Nmero de elementos del vector de requerimientos depginas y nmero detesteos
queseharn en la simulacin.
Las salidas por pantalla incluyen:
Seguimientodel algoritmodepaginacinFIFO, conindicacindelosfallosdepgina
quesevan produciendo.
Nmero de fallos de pgina ocurridos y nmero de celdas de pgina de memoria
real disponibles para cada ciclo de la simulacin, teniendo presente que para cada
conjunto de datos de entrada, se efectan tres simulaciones, una con el 80% del
nmerosuministradocomonmerodeceldasdepginaen lamemoriareal, otracon
el 100%dedicho nmero y una tercera con el 120%del mismo.
Conclusin respecto desi seha producido o no la Anomala deBelady en cada una
delas simulaciones efectuadas.
Representacingrcadelosprincipalesresultadosobtenidos, indicndoseel nmero
de fallos de pginas respecto del nmero de celdas de pgina, para las distintas
simulaciones efectuadas.
Respecto del archivo generado, el mismo tendr un tamao variable segn los datos
que se hayan suministrado a las ejecuciones que lo producen; es preciso sealar adems
que el archivo es acumulativo, es decir que no se borra automticamente al iniciar cada
ejecucin.
El cdigo del programa desarrollado (Anomalia.m) es el siguiente:
%Maestra en Informtica y Computacin.
%TesteodelaposibleAnomaladeBeladyparaunasecuenciaaleatoriaderequerimientos
%depginas en un sistema depaginacin FIFO.
21.5. PROGRAMA DESARROLLADO 561
%n: Nmero deceldas depgina en la memoria real.
%M: Vector deceldas depgina en la memoria real.
%R: Matriz derequerimientos depginas por testeo.
%T: Vector derequerimientos depginas para un testeo.
%fallos: nmero defallos depgina.
clc
echo o
n =0;
M = 0;
R =0;
T = 0;
fallos =0;
i = 0;
j = 0;
r = 0;
s = 0;
p =0;
encontrada =0;
k = 0;
l = 0;
Fp(3) = 0;
Cp(3) =0;
Aux(2) =0;
disp( )
disp(Testeo dela posibleAnomala deBelady para una secuencia aleatoria de)
disp(requerimientos depginas en un sistema depaginacin FIFO.)
disp(***********************************************************************)
disp( )
562 CAPTULO 21. ANOMALA DE BELADY CON MATLAB
disp(Paraindicar el nmerodeceldasdepginaenlamemoriareal tipeen =N

ent;,)
disp(dondeN

ent es un nmero entero positivo.)


disp(Luego tipeereturn.)
disp( )
keyboard
disp(Para generar aleatoriamente la matriz de requerimientos de pginas tipee R =
rand(N

elem,N

test);,)
disp(dondeN

elem esel nmerodeelementosdel vector derequerimientos depginas


y)
disp(N

test es el nmero detesteos queseharn.)


disp(Luego tipeereturn.)
disp( )
keyboard
for i = 1:n,
M(i) = 0;
end
if R == 0
disp(No seha cargado la matriz derequerimientos depginas.)
keyboard
end
if n == 0
disp(No seha cargado el nmero deceldas depginas disponibles.)
keyboard
end
l = n;
r =size(R,1);
s =size(R,2);
for q = 1:s,
for i = 1:r,
21.5. PROGRAMA DESARROLLADO 563
T(i) = round(R(i,q) * 1000);
end
disp(**********************************************************)
disp(T: Vector derequerimientos depginas para la simulacin:)
disp(**********************************************************)
T
%Determinacin desi la pgina requerida est en memoria real.
n =round(l * 0.8);
for k =1:3,
for j =1:r,
for i =1:n,
if M(i) == T(j)
disp(Pgina encontrada en memoria real: )
disp(T(j))
encontrada =1;
i = n;
end
end
if encontrada ==0
disp(Fallo depgina; sedebecargar a memoria real la pgina: )
disp(T(j))
fallos =fallos + 1;
for i =1:(n-1),
M(i) = M(i+1);
end
M(n) =T(j);
end
encontrada =0;
564 CAPTULO 21. ANOMALA DE BELADY CON MATLAB
end
disp(**********************************************************)
disp(Nmero defallos depgina ocurridos: )
disp(fallos)
disp(Nmero deceldas depgina dememoria real: )
disp(n)
disp(**********************************************************)
Fp(k) = fallos;
Cp(k) = n;
fallos = 0;
if k ==1
n = l;
elseif k ==2
n = round(l * 1.2);
end
end
for i = 1:n,
M(i) = 0;
end
end
disp( )
disp(**********************************************************)
disp(Pares celdas depgina disponibles y fallos depginas ocurridos: )
rx =Vector derequerimientos depginas para la simulacin:;
tx =Pares celdas depgina disponibles y fallos depginas ocurridos: ;
bx = ;
%
%Colocar C: o D: segn el disco detrabajo.
21.5. PROGRAMA DESARROLLADO 565
%
d =fopen(D:nTesisMicnAnomalianAnomalia.txt,a);
fprintf(d,rx);
fprintf(d,nn);
for i =1:r,
vx = num2str(T(i));
fprintf(d,vx);
fprintf(d,nn);
end
fprintf(d,tx);
fprintf(d,nn);
for i =1:3,
Aux(1) =Cp(i);
x(i) = Cp(i);
Aux(2) =Fp(i);
y(i) = Fp(i);
disp(Aux)
nx1= num2str(Aux(1));
fprintf(d,nx1);
fprintf(d,bx);
nx2= num2str(Aux(2));
fprintf(d,nx2);
fprintf(d,nn);
end
disp(**********************************************************)
gure(q);
colormap(pink);
set(q,DefaultTextColor,cyan);
566 CAPTULO 21. ANOMALA DE BELADY CON MATLAB
plot(x,y,r-,x,y,g*);
title(BUSQUEDA DE ANOMALIA DE BELADY EN PAGINACION FIFO);
ylabel(N

deFallos dePginas);
xlabel(N

deCeldas dePgina);
disp(**********************************************************)
if Fp(3) >Fp(2) j Fp(2) > Fp(1)
disp(SI seha producido la Anomala deBelady en la simulacin efectuada.)
tx =SI seha producido la Anomala deBelady en la simulacin efectuada.;
fprintf(d,tx);
fprintf(d,nn);
else
disp(NO seha producido la Anomala deBelady en la simulacin efectuada.)
tx =NO seha producido la Anomala deBelady en la simulacin efectuada.;
fprintf(d,tx);
fprintf(d,nn);
end
end
disp(**********************************************************)
end
end
end
fclose(all);
21.6 Datos y Ejecuciones
Los resultados detallados de las ejecuciones se muestran paso a paso en pantalla y son
grabadosen el archivodedatosy ejecuciones, queen estecasohasidoel archivoAnoma-
lia.txt, queesunarchivoconregistrosdelongitudvariable, cuyosdatosformateados, para
algunasejecucionestomadascomoreferencia, seencuentran en el archivoAnomalia.dat.
El archivo generado (Anomalia.txt), poseela siguienteestructura:
Vector derequerimientos depginas para la simulacin.
21.6. DATOS Y EJ ECUCIONES 567
Pares celdas depgina disponibles y fallos depginas ocurridos.
Conclusin respectodelaocurrenciaonodelaAnomaladeBelady en lasimulacin
efectuada.
El contenidodel mencionadoarchivoAnomalia.dat luegodevariasdelasejecuciones
deevaluacin puedeconsultarseen los Anexos; un detalleparcial es el siguiente:
Vector derequerimientos depginas para la simulacin:
622 684 182 511 999 231233 655 611 501 3 281 558 359 421 446 12 985 980 847 11 866
957 967 224 990 516 267 982 487 924 629 308 803 134 573 175 802 399 982 871 11
492676 57817453985 7811000 389972228 770221956 498941155 457842976
3011240970054768886737949985621500623703765891577633535285360
178365848543264497447
Pares celdas depgina disponibles y fallos depginas ocurridos:
890
1090
1289
NO seha producido la Anomala deBelady en la simulacin efectuada.
Vector derequerimientos depginas para la simulacin:
471 590 792 692 95 212 714 16 192 330 16 255 483 891 675 736 874 893 584 552 3 811
238435 584240629 792506334 401419899 333801875 745932209 533278199
803788178353668611744997717494428060184312049234464557049648
148390856204604109754472741389325310458847016879449797104631
74255340516753664
Pares celdas depgina disponibles y fallos depginas ocurridos:
886
1086
1286
NO seha producido la Anomala deBelady en la simulacin efectuada.
Vector derequerimientos depginas para la simulacin:
44487697986497926827777286
Pares celdas depgina disponibles y fallos depginas ocurridos:
28
38
568 CAPTULO 21. ANOMALA DE BELADY CON MATLAB
Figura~21.1: Bsqueda deAnomala deBelady en paginacin FIFO.
48
NO seha producido la Anomala deBelady en la simulacin efectuada.
Vector derequerimientos depginas para la simulacin:
553865706923273591822483706
Pares celdas depgina disponibles y fallos depginas ocurridos:
29
39
49
NO seha producido la Anomala deBelady en la simulacin efectuada.
Uno de los grcos producidos para una de las ejecuciones de evaluacin se muestra
en la Figura 21.1dela pgina 568.
21.7. RESULTADOS Y CONCLUSIONES 569
21.7 Resultados y Conclusiones
La utilizacin de Matlab para la resolucin del problema planteado ha resultado muy
satisfactoria, destacndose las facilidades y potencia del producto, en especial para el
clculo numrico.
Los resultados obtenidos ratican, como era de esperarse, las previsiones tericas en
cuantoaqueel fenmenollamadoAnomaladeBelady oAnomalaFI FO esrealmenteuna
situacin muy especial queno seha observado en ninguna delas numerosas simulaciones
efectuadas; estehechoratica la intuicin en el sentido dequesi seaumenta el nmero de
celdas depgina disponibles debera disminuir el nmero defallos (carencias) depginas
en un esquema depaginacin FIFO.
Asimismo es necesario sealar que si bien no se ha presentado en ningn caso de los
simulados la mencionada Anomala, s se han observado casos cercanos a ella, es decir
casos en los queincrementando el nmero de celdas depgina disponibles, no se reduce el
nmero de fallos de pgina, sino que se mantiene igual, lo cual no llega a congurar un
caso anmalo, pero s un caso llamativo, pues no se produceuna disminucin de los
fallosdepginaregistrados(paraproducirselaanomalanoessucienteconqueel nmero
de fallos de pgina se mantenga, sino que ste debeaumentar al aumentar el nmero de
celdas de pgina disponibles en la memoria principal). Estos casos llamativos se han
observado en simulaciones con un nmero muy escaso de celdas de pgina, es decir en
casos alejados de situaciones reales, no habindoseobservado en casos ms cercanos a la
realidad, es decir en simulaciones con centenas o miles deceldas depgina disponibles.
570 CAPTULO 21. ANOMALA DE BELADY CON MATLAB
Parte I V
Anexos
571
Captulo 22
Algoritmos de Planicacin del
Procesador con P.O.O.
22.1 Datos y Ejecuciones
Contenido del archivo Procesos.txt:
************************************************************
Simulacin FIFO con 3ciclos decontrol.
Sehan simulado 3procesos concurrentes.
Sehan producido 1cambios decontexto.
************************************************************
Simulacin RR - Round Robin con 3ciclos decontrol.
Sehan simulado 3procesos concurrentes.
Sehan producido 3cambios decontexto.
************************************************************
Simulacin HRN con 3ciclos decontrol.
Sehan simulado 3procesos concurrentes.
Sehan producido 2cambios decontexto.
************************************************************
Simulacin RNM con 3ciclos decontrol.
Sehan simulado 3procesos concurrentes.
Sehan producido 3cambios decontexto.
573
574 CAPTULO 22. PLANIFICACIN DEL PROCESADOR CON P.O.O.
************************************************************
Simulacin FIFO con 100ciclos decontrol.
Todos los procesos han nalizado en 14ciclos decontrol.
Sehan simulado 5procesos concurrentes.
Sehan producido 10cambios decontexto.
************************************************************
Simulacin RR - Round Robin con 100ciclos decontrol.
Todos los procesos han nalizado en 11ciclos decontrol.
Sehan simulado 5procesos concurrentes.
Sehan producido 11cambios decontexto.
************************************************************
Simulacin HRN con 100ciclos decontrol.
Todos los procesos han nalizado en 26ciclos decontrol.
Sehan simulado 5procesos concurrentes.
Sehan producido 15cambios decontexto.
************************************************************
Simulacin RNM con 100ciclos decontrol.
Todos los procesos han nalizado en 10ciclos decontrol.
Sehan simulado 5procesos concurrentes.
Sehan producido 10cambios decontexto.
************************************************************
Simulacin FIFO con 90ciclos decontrol.
Todos los procesos han nalizado en 10ciclos decontrol.
Sehan simulado 3procesos concurrentes.
Sehan producido 7cambios decontexto.
************************************************************
Simulacin RR - Round Robin con 90ciclos decontrol.
Todos los procesos han nalizado en 10ciclos decontrol.
22.1. DATOS Y EJ ECUCIONES 575
Sehan simulado 3procesos concurrentes.
Sehan producido 9cambios decontexto.
************************************************************
Simulacin HRN con 90ciclos decontrol.
Todos los procesos han nalizado en 22ciclos decontrol.
Sehan simulado 3procesos concurrentes.
Sehan producido 13cambios decontexto.
************************************************************
Simulacin RNM con 90ciclos decontrol.
Todos los procesos han nalizado en 14ciclos decontrol.
Sehan simulado 3procesos concurrentes.
Sehan producido 14cambios decontexto.
************************************************************
Simulacin FIFO con 90ciclos decontrol.
Todos los procesos han nalizado en 15ciclos decontrol.
Sehan simulado 6procesos concurrentes.
Sehan producido 11cambios decontexto.
************************************************************
Simulacin RR - Round Robin con 90ciclos decontrol.
Todos los procesos han nalizado en 32ciclos decontrol.
Sehan simulado 6procesos concurrentes.
Sehan producido 32cambios decontexto.
************************************************************
Simulacin HRN con 90ciclos decontrol.
Todos los procesos han nalizado en 20ciclos decontrol.
Sehan simulado 6procesos concurrentes.
Sehan producido 13cambios decontexto.
************************************************************
576 CAPTULO 22. PLANIFICACIN DEL PROCESADOR CON P.O.O.
Simulacin RNM con 90ciclos decontrol.
Todos los procesos han nalizado en 12ciclos decontrol.
Sehan simulado 6procesos concurrentes.
Sehan producido 12cambios decontexto.
************************************************************
Simulacin FIFO con 70ciclos decontrol.
Todos los procesos han nalizado en 14ciclos decontrol.
Sehan simulado 5procesos concurrentes.
Sehan producido 10cambios decontexto.
************************************************************
Simulacin RR - Round Robin con 70ciclos decontrol.
Todos los procesos han nalizado en 11ciclos decontrol.
Sehan simulado 5procesos concurrentes.
Sehan producido 11cambios decontexto.
************************************************************
Simulacin HRN con 70ciclos decontrol.
Todos los procesos han nalizado en 26ciclos decontrol.
Sehan simulado 5procesos concurrentes.
Sehan producido 15cambios decontexto.
************************************************************
Simulacin RNM con 70ciclos decontrol.
Todos los procesos han nalizado en 10ciclos decontrol.
Sehan simulado 5procesos concurrentes.
Sehan producido 10cambios decontexto.
************************************************************
Simulacin FIFO con 80ciclos decontrol.
Todos los procesos han nalizado en 10ciclos decontrol.
Sehan simulado 3procesos concurrentes.
22.1. DATOS Y EJ ECUCIONES 577
Sehan producido 7cambios decontexto.
************************************************************
Simulacin RR - Round Robin con 80ciclos decontrol.
Todos los procesos han nalizado en 10ciclos decontrol.
Sehan simulado 3procesos concurrentes.
Sehan producido 9cambios decontexto.
************************************************************
Simulacin HRN con 80ciclos decontrol.
Todos los procesos han nalizado en 22ciclos decontrol.
Sehan simulado 3procesos concurrentes.
Sehan producido 13cambios decontexto.
************************************************************
Simulacin RNM con 80ciclos decontrol.
Todos los procesos han nalizado en 14ciclos decontrol.
Sehan simulado 3procesos concurrentes.
Sehan producido 14cambios decontexto.
************************************************************
Simulacin FIFO con 5ciclos decontrol.
Sehan simulado 20procesos concurrentes.
Sehan producido 3cambios decontexto.
************************************************************
Simulacin RR - Round Robin con 5ciclos decontrol.
Sehan simulado 20procesos concurrentes.
Sehan producido 5cambios decontexto.
************************************************************
Simulacin HRN con 5ciclos decontrol.
Sehan simulado 20procesos concurrentes.
Sehan producido 3cambios decontexto.
578 CAPTULO 22. PLANIFICACIN DEL PROCESADOR CON P.O.O.
************************************************************
Simulacin RNM con 5ciclos decontrol.
Sehan simulado 20procesos concurrentes.
Sehan producido 5cambios decontexto.
************************************************************
Simulacin FIFO con 3ciclos decontrol.
Sehan simulado 10procesos concurrentes.
Sehan producido 1cambios decontexto.
************************************************************
Simulacin RR - Round Robin con 3ciclos decontrol.
Sehan simulado 10procesos concurrentes.
Sehan producido 3cambios decontexto.
************************************************************
Simulacin HRN con 3ciclos decontrol.
Sehan simulado 10procesos concurrentes.
Sehan producido 2cambios decontexto.
************************************************************
Simulacin RNM con 3ciclos decontrol.
Sehan simulado 10procesos concurrentes.
Sehan producido 3cambios decontexto.
************************************************************
Simulacin FIFO con 6ciclos decontrol.
Sehan simulado 5procesos concurrentes.
Sehan producido 4cambios decontexto.
************************************************************
Simulacin RR - Round Robin con 6ciclos decontrol.
Sehan simulado 5procesos concurrentes.
Sehan producido 6cambios decontexto.
22.1. DATOS Y EJ ECUCIONES 579
************************************************************
Simulacin HRN con 6ciclos decontrol.
Sehan simulado 5procesos concurrentes.
Sehan producido 5cambios decontexto.
************************************************************
Simulacin RNM con 6ciclos decontrol.
Sehan simulado 5procesos concurrentes.
Sehan producido 6cambios decontexto.
************************************************************
Simulacin FIFO con 10ciclos decontrol.
Sehan simulado 3procesos concurrentes.
Sehan producido 7cambios decontexto.
************************************************************
Simulacin RR - Round Robin con 10ciclos decontrol.
Sehan simulado 3procesos concurrentes.
Sehan producido 9cambios decontexto.
************************************************************
Simulacin HRN con 10ciclos decontrol.
Sehan simulado 3procesos concurrentes.
Sehan producido 6cambios decontexto.
************************************************************
Simulacin RNM con 10ciclos decontrol.
Sehan simulado 3procesos concurrentes.
Sehan producido 10cambios decontexto.
************************************************************
Simulacin FIFO con 30ciclos decontrol.
Todos los procesos han nalizado en 15ciclos decontrol.
Sehan simulado 6procesos concurrentes.
580 CAPTULO 22. PLANIFICACIN DEL PROCESADOR CON P.O.O.
Sehan producido 11cambios decontexto.
************************************************************
Simulacin RR - Round Robin con 30ciclos decontrol.
Sehan simulado 6procesos concurrentes.
Sehan producido 30cambios decontexto.
************************************************************
Simulacin HRN con 30ciclos decontrol.
Todos los procesos han nalizado en 15ciclos decontrol.
Sehan simulado 6procesos concurrentes.
Sehan producido 13cambios decontexto.
************************************************************
Simulacin RNM con 30ciclos decontrol.
Todos los procesos han nalizado en 16ciclos decontrol.
Sehan simulado 6procesos concurrentes.
Sehan producido 16cambios decontexto.
************************************************************
Simulacin FIFO con 200ciclos decontrol.
Todos los procesos han nalizado en 167ciclos decontrol.
Sehan simulado 50procesos concurrentes.
Sehan producido 113cambios decontexto.
************************************************************
Simulacin RR - Round Robin con 200ciclos decontrol.
Todos los procesos han nalizado en 174ciclos decontrol.
Sehan simulado 50procesos concurrentes.
Sehan producido 174cambios decontexto.
************************************************************
Simulacin HRN con 200ciclos decontrol.
Todos los procesos han nalizado en 161ciclos decontrol.
22.1. DATOS Y EJ ECUCIONES 581
Sehan simulado 50procesos concurrentes.
Sehan producido 98cambios decontexto.
************************************************************
Simulacin RNM con 200ciclos decontrol.
Todos los procesos han nalizado en 198ciclos decontrol.
Sehan simulado 50procesos concurrentes.
Sehan producido 198cambios decontexto.
************************************************************
Simulacin FIFO con 30ciclos decontrol.
Todos los procesos han nalizado en 25ciclos decontrol.
Sehan simulado 10procesos concurrentes.
Sehan producido 19cambios decontexto.
************************************************************
Simulacin RR - Round Robin con 30ciclos decontrol.
Sehan simulado 10procesos concurrentes.
Sehan producido 30cambios decontexto.
************************************************************
Simulacin HRN con 30ciclos decontrol.
Sehan simulado 10procesos concurrentes.
Sehan producido 20cambios decontexto.
************************************************************
Simulacin RNM con 30ciclos decontrol.
Sehan simulado 10procesos concurrentes.
Sehan producido 30cambios decontexto.
************************************************************
Simulacin FIFO con 50ciclos decontrol.
Todos los procesos han nalizado en 47ciclos decontrol.
Sehan simulado 15procesos concurrentes.
582 CAPTULO 22. PLANIFICACIN DEL PROCESADOR CON P.O.O.
Sehan producido 33cambios decontexto.
************************************************************
Simulacin RR - Round Robin con 50ciclos decontrol.
Sehan simulado 15procesos concurrentes.
Sehan producido 50cambios decontexto.
************************************************************
Simulacin HRN con 50ciclos decontrol.
Sehan simulado 15procesos concurrentes.
Sehan producido 31cambios decontexto.
************************************************************
Simulacin RNM con 50ciclos decontrol.
Todos los procesos han nalizado en 46ciclos decontrol.
Sehan simulado 15procesos concurrentes.
Sehan producido 46cambios decontexto.
************************************************************
Simulacin FIFO con 60ciclos decontrol.
Todos los procesos han nalizado en 17ciclos decontrol.
Sehan simulado 8procesos concurrentes.
Sehan producido 13cambios decontexto.
************************************************************
Simulacin RR - Round Robin con 60ciclos decontrol.
Todos los procesos han nalizado en 32ciclos decontrol.
Sehan simulado 8procesos concurrentes.
Sehan producido 32cambios decontexto.
************************************************************
Simulacin HRN con 60ciclos decontrol.
Todos los procesos han nalizado en 29ciclos decontrol.
Sehan simulado 8procesos concurrentes.
22.1. DATOS Y EJ ECUCIONES 583
Sehan producido 19cambios decontexto.
************************************************************
Simulacin RNM con 60ciclos decontrol.
Todos los procesos han nalizado en 28ciclos decontrol.
Sehan simulado 8procesos concurrentes.
Sehan producido 28cambios decontexto.
584 CAPTULO 22. PLANIFICACIN DEL PROCESADOR CON P.O.O.
Captulo 23
Paginacin de Memoria Virtual
con Sistemas Expertos
23.1 Programas Desarrollados y Datos y Ejecuciones
Contenido del archivo paginas.ma:
(* Ejemplo deSistema Experto depaginacin en memoria virtual *)
Paginacion[Prior_ , Verosimilitudes_ , DatosPagina_ ] :=
Module[{Prior1= Prior, Posterior, i, j, aux, aux1,
n =Length[Prior], m=Length[DatosPagina]},
Print[********************************************];
Print[* Anlisis del encuadredela pgina *];
Print[* segn las estrategias depaginacin, *];
Print[* lo quedeterminar la posibilidad deser *];
Print[* desalojada dela memoria principal *];
Print[* segn las distintas estrategias. *];
Print[********************************************];
Do[
Posterior ={};
Do[AppendTo[Posterior, If[DatosPagina[[j]] > 0,
(Verosimilitudes[i, Abs[DatosPagina[[j]]]]) * Prior1[[i]],
(1.0- Verosimilitudes[[i, Abs[DatosPagina[[j]]]]])
585
586 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
* Prior1[[i]]]]
, {i, 1, n}];
aux =Sum[Posterior[[i]], {i, 1, n}];
Prior1= Posterior / aux;
aux1=Table[{Prior1[[i]], Estrategias[[i]]}, {i, 1, n}];
aux1=Sort[aux1];
Print[ ]; Print[ ];
Print[Resultados tras la consideracin dela pauta:];
Print[ , Pautas[[Abs[DatosPagina[[j]]]]]];
Print[ ];
Do[Print[aux1[[i, 2]], : , aux1[[i, 1]]]
, {i, n, 1, -1}];
, {j, 1, m}];
Print[ ]; Print[ ];
Print[****************************************************];
Print[Resultado nal:];
Print[ La pgina tienelas siguientes probabilidades];
Print[ deser removida dela memoria principal segn];
Print[ las estrategias consideradas:];
Print[ ];
Do[Print[aux1[[i, 2]], : , aux1[[i, 1]]]
, {i, n, 1, -1}];
Print[****************************************************];
]
Estrategias ={Tiempo estimado deno utilizacin mayor,
Reposicin FIFO - Tiempo mayor en memoria principal,
Reposicin LRU - Pgina menos recientementeusada,
Reposicin LFU - Pgina menos frecuentementeusada,
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 587
Reposicin NUR - Pgina no usada recientemente};
Pautas = {Tiempo hasta la prxima utilizacin: - 5.000miliseg.,
Tiempo hasta la prxima utilizacin: 5.000- 10.000miliseg.,
Tiempo hasta la prxima utilizacin: 10.001- 20.000miliseg.,
Tiempo hasta la prxima utilizacin: 20.001- 40.000miliseg.,
Tiempo hasta la prxima utilizacin: + 40.000miliseg.,
Tiempo en mem. ppal.: - 1.000miliseg.,
Tiempo en mem. ppal.: 1.000- 3.000miliseg.,
Tiempo en mem. ppal.: 3.001- 6.000miliseg.,
Tiempo en mem. ppal.: 6.001- 9.000miliseg.,
Tiempo en mem. ppal.: 9.001- 30.000miliseg.,
Tiempo en mem. ppal.: +30.000miliseg.,
Tiempo en mem. ppal. s/ uso: - 5.000miliseg.,
Tiempo en mem. ppal. s/ uso: 5.000- 10.000miliseg.,
Tiempo en mem. ppal. s/ uso: 10.001- 15.000miliseg.,
Tiempo en mem. ppal. s/ uso: 15.001- 20.000miliseg.,
Tiempo en mem. ppal. s/ uso: 20.001- 25.000miliseg.,
Tiempo en mem. ppal. s/ uso: 25.001- 30.000miliseg.,
Tiempo en mem. ppal. s/ uso: 30.001- 35.000miliseg.,
Tiempo en mem. ppal. s/ uso: 35.001- 40.000miliseg.,
Tiempo en mem. ppal. s/ uso: + 40.000miliseg.,
Intensidad deutilizacin dela pgina: Menos de50veces,
Intensidad deutilizacin dela pgina: Entre50y 100veces,
Intensidad deutilizacin dela pgina: Entre101y 200veces,
Intensidad deutilizacin dela pgina: Entre201y 300veces,
Intensidad deutilizacin dela pgina: Ms de300veces,
Pgina no referenciada,
Pgina s referenciada y no modicada,
588 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Pgina s referenciada y s modicada};
Prior ={0.1, 0.2, 0.25, 0.3, 0.5};
Verosimilitudes =
{{0.15, 0.25, 0.40, 0.60, 0.95,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01},
{0.01, 0.01, 0.01, 0.01, 0.01,
0.10, 0.20, 0.40, 0.60, 0.80, 1.00,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01},
{0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.85, 1.00,
0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01},
{0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
1.00, 0.70, 0.50, 0.25, 0.05,
0.01, 0.01, 0.01},
{0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.01, 0.01,
1.00, 0.50, 0.05}};
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 589
(* Ejemplo depgina con mucho tiempo *)
(* estimado hasta la prxima utilizacin *)
DatosPagina =
{-1, -2, -3, -4, 5,
-6, -7, -8, -9, -10, -11,
-12, -13, -14, -15, -16, -17, -18, -19, -20,
-21, -22, -23, -24, -25,
-26, -27, -28};
Paginacion[Prior, Verosimilitudes, DatosPagina]
********************************************
* Anlisis del encuadredela pgina *
* segn las estrategias depaginacin, *
* lo quedeterminar la posibilidad deser *
* desalojada dela memoria principal *
* segn las distintas estrategias. *
********************************************
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: - 5.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.374291
Reposicin LFU - Pgina menos frecuentementeusada: 0.224575
Reposicin LRU - Pgina menos recientementeusada: 0.187146
Reposicin FIFO - Tiempo mayor en memoria principal: 0.149716
Tiempo estimado deno utilizacin mayor: 0.0642722
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 5.000- 10.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.380215
Reposicin LFU - Pgina menos frecuentementeusada: 0.228129
Reposicin LRU - Pgina menos recientementeusada: 0.190108
590 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.152086
Tiempo estimado deno utilizacin mayor: 0.0494617
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 10.001- 20.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.387771
Reposicin LFU - Pgina menos frecuentementeusada: 0.232663
Reposicin LRU - Pgina menos recientementeusada: 0.193885
Reposicin FIFO - Tiempo mayor en memoria principal: 0.155108
Tiempo estimado deno utilizacin mayor: 0.0305725
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 20.001- 40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.394967
Reposicin LFU - Pgina menos frecuentementeusada: 0.23698
Reposicin LRU - Pgina menos recientementeusada: 0.197484
Reposicin FIFO - Tiempo mayor en memoria principal: 0.157987
Tiempo estimado deno utilizacin mayor: 0.0125818
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: +40.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.547613
Reposicin NUR - Pgina no usada recientemente: 0.180955
Reposicin LFU - Pgina menos frecuentementeusada: 0.108573
Reposicin LRU - Pgina menos recientementeusada: 0.0904773
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0723819
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: - 1.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.551241
Reposicin NUR - Pgina no usada recientemente: 0.182153
Reposicin LFU - Pgina menos frecuentementeusada: 0.109292
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 591
Reposicin LRU - Pgina menos recientementeusada: 0.0910766
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0662375
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 1.000- 3.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.558338
Reposicin NUR - Pgina no usada recientemente: 0.184499
Reposicin LFU - Pgina menos frecuentementeusada: 0.110699
Reposicin LRU - Pgina menos recientementeusada: 0.0922493
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0542145
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 3.001- 6.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.570523
Reposicin NUR - Pgina no usada recientemente: 0.188525
Reposicin LFU - Pgina menos frecuentementeusada: 0.113115
Reposicin LRU - Pgina menos recientementeusada: 0.0942625
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0335743
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 6.001- 9.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.582172
Reposicin NUR - Pgina no usada recientemente: 0.192374
Reposicin LFU - Pgina menos frecuentementeusada: 0.115425
Reposicin LRU - Pgina menos recientementeusada: 0.0961871
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0138424
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 9.001- 30.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.588674
Reposicin NUR - Pgina no usada recientemente: 0.194523
Reposicin LFU - Pgina menos frecuentementeusada: 0.116714
592 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin LRU - Pgina menos recientementeusada: 0.0972615
Reposicin FIFO - Tiempo mayor en memoria principal: 0.00282767
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: + 30.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.590344
Reposicin NUR - Pgina no usada recientemente: 0.195075
Reposicin LFU - Pgina menos frecuentementeusada: 0.117045
Reposicin LRU - Pgina menos recientementeusada: 0.0975373
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: - 5.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.595625
Reposicin NUR - Pgina no usada recientemente: 0.19682
Reposicin LFU - Pgina menos frecuentementeusada: 0.118092
Reposicin LRU - Pgina menos recientementeusada: 0.0894635
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 5.000- 10.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.60603
Reposicin NUR - Pgina no usada recientemente: 0.200258
Reposicin LFU - Pgina menos frecuentementeusada: 0.120155
Reposicin LRU - Pgina menos recientementeusada: 0.0735567
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 10.001- 15.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.619376
Reposicin NUR - Pgina no usada recientemente: 0.204668
Reposicin LFU - Pgina menos frecuentementeusada: 0.122801
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 593
Reposicin LRU - Pgina menos recientementeusada: 0.0531551
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 15.001- 20.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.632623
Reposicin NUR - Pgina no usada recientemente: 0.209045
Reposicin LFU - Pgina menos frecuentementeusada: 0.125427
Reposicin LRU - Pgina menos recientementeusada: 0.0329042
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 20.001- 25.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.643096
Reposicin NUR - Pgina no usada recientemente: 0.212506
Reposicin LFU - Pgina menos frecuentementeusada: 0.127504
Reposicin LRU - Pgina menos recientementeusada: 0.0168934
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 25.001- 30.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.649637
Reposicin NUR - Pgina no usada recientemente: 0.214668
Reposicin LFU - Pgina menos frecuentementeusada: 0.128801
Reposicin LRU - Pgina menos recientementeusada: 0.00689504
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 30.001- 35.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.652774
Reposicin NUR - Pgina no usada recientemente: 0.215704
Reposicin LFU - Pgina menos frecuentementeusada: 0.129422
594 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin LRU - Pgina menos recientementeusada: 0.0020995
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 35.001- 40.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.653939
Reposicin NUR - Pgina no usada recientemente: 0.216089
Reposicin LFU - Pgina menos frecuentementeusada: 0.129653
Reposicin LRU - Pgina menos recientementeusada: 0.000318673
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: + 40.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.654147
Reposicin NUR - Pgina no usada recientemente: 0.216158
Reposicin LFU - Pgina menos frecuentementeusada: 0.129695
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Menos de50veces
Tiempo estimado deno utilizacin mayor: 0.75163
Reposicin NUR - Pgina no usada recientemente: 0.24837
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre50y 100veces
Tiempo estimado deno utilizacin mayor: 0.75163
Reposicin NUR - Pgina no usada recientemente: 0.24837
Reposicin LRU - Pgina menos recientementeusada: 0.
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 595
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre101y 200veces
Tiempo estimado deno utilizacin mayor: 0.75163
Reposicin NUR - Pgina no usada recientemente: 0.24837
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre201y 300veces
Tiempo estimado deno utilizacin mayor: 0.75163
Reposicin NUR - Pgina no usada recientemente: 0.24837
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Ms de300veces
Tiempo estimado deno utilizacin mayor: 0.75163
Reposicin NUR - Pgina no usada recientemente: 0.24837
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina no referenciada
Tiempo estimado deno utilizacin mayor: 1.
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
596 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y no modicada
Tiempo estimado deno utilizacin mayor: 1.
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y s modicada
Tiempo estimado deno utilizacin mayor: 1.
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
****************************************************
Resultado nal:
La pgina tienelas siguientes probabilidades
deser removida dela memoria principal segn
las estrategias consideradas:
Tiempo estimado deno utilizacin mayor: 1.
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
****************************************************
(* Ejemplo depgina con mucho tiempo *)
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 597
(* depermanencia en memoria principal *)
DatosPagina =
{-1, -2, -3, -4, -5,
-6, -7, -8, -9, -10, 11,
-12, -13, -14, -15, -16, -17, -18, -19, -20,
-21, -22, -23, -24, -25,
-26, -27, -28};
Paginacion[Prior, Verosimilitudes, DatosPagina]
********************************************
* Anlisis del encuadredela pgina *
* segn las estrategias depaginacin, *
* lo quedeterminar la posibilidad deser *
* desalojada dela memoria principal *
* segn las distintas estrategias. *
********************************************
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: - 5.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.374291
Reposicin LFU - Pgina menos frecuentementeusada: 0.224575
Reposicin LRU - Pgina menos recientementeusada: 0.187146
Reposicin FIFO - Tiempo mayor en memoria principal: 0.149716
Tiempo estimado deno utilizacin mayor: 0.0642722
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 5.000- 10.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.380215
Reposicin LFU - Pgina menos frecuentementeusada: 0.228129
Reposicin LRU - Pgina menos recientementeusada: 0.190108
Reposicin FIFO - Tiempo mayor en memoria principal: 0.152086
598 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Tiempo estimado deno utilizacin mayor: 0.0494617
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 10.001- 20.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.387771
Reposicin LFU - Pgina menos frecuentementeusada: 0.232663
Reposicin LRU - Pgina menos recientementeusada: 0.193885
Reposicin FIFO - Tiempo mayor en memoria principal: 0.155108
Tiempo estimado deno utilizacin mayor: 0.0305725
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 20.001- 40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.394967
Reposicin LFU - Pgina menos frecuentementeusada: 0.23698
Reposicin LRU - Pgina menos recientementeusada: 0.197484
Reposicin FIFO - Tiempo mayor en memoria principal: 0.157987
Tiempo estimado deno utilizacin mayor: 0.0125818
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: +40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.399743
Reposicin LFU - Pgina menos frecuentementeusada: 0.239846
Reposicin LRU - Pgina menos recientementeusada: 0.199871
Reposicin FIFO - Tiempo mayor en memoria principal: 0.159897
Tiempo estimado deno utilizacin mayor: 0.000643126
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: - 1.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.405639
Reposicin LFU - Pgina menos frecuentementeusada: 0.243383
Reposicin LRU - Pgina menos recientementeusada: 0.20282
Reposicin FIFO - Tiempo mayor en memoria principal: 0.147505
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 599
Tiempo estimado deno utilizacin mayor: 0.000652612
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 1.000- 3.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.417457
Reposicin LFU - Pgina menos frecuentementeusada: 0.250474
Reposicin LRU - Pgina menos recientementeusada: 0.208728
Reposicin FIFO - Tiempo mayor en memoria principal: 0.122669
Tiempo estimado deno utilizacin mayor: 0.000671626
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 3.001- 6.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.438655
Reposicin LFU - Pgina menos frecuentementeusada: 0.263193
Reposicin LRU - Pgina menos recientementeusada: 0.219327
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0781197
Tiempo estimado deno utilizacin mayor: 0.000705729
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 6.001- 9.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.460074
Reposicin LFU - Pgina menos frecuentementeusada: 0.276044
Reposicin LRU - Pgina menos recientementeusada: 0.230037
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0331048
Tiempo estimado deno utilizacin mayor: 0.00074019
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 9.001- 30.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.472557
Reposicin LFU - Pgina menos frecuentementeusada: 0.283534
Reposicin LRU - Pgina menos recientementeusada: 0.236279
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0068693
600 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Tiempo estimado deno utilizacin mayor: 0.000760274
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: + 30.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.408872
Reposicin NUR - Pgina no usada recientemente: 0.281274
Reposicin LFU - Pgina menos frecuentementeusada: 0.168764
Reposicin LRU - Pgina menos recientementeusada: 0.140637
Tiempo estimado deno utilizacin mayor: 0.000452528
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: - 5.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.414167
Reposicin NUR - Pgina no usada recientemente: 0.284917
Reposicin LFU - Pgina menos frecuentementeusada: 0.17095
Reposicin LRU - Pgina menos recientementeusada: 0.129508
Tiempo estimado deno utilizacin mayor: 0.000458388
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 5.000- 10.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.424724
Reposicin NUR - Pgina no usada recientemente: 0.292179
Reposicin LFU - Pgina menos frecuentementeusada: 0.175307
Reposicin LRU - Pgina menos recientementeusada: 0.10732
Tiempo estimado deno utilizacin mayor: 0.000470072
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 10.001- 15.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.438509
Reposicin NUR - Pgina no usada recientemente: 0.301662
Reposicin LFU - Pgina menos frecuentementeusada: 0.180997
Reposicin LRU - Pgina menos recientementeusada: 0.0783458
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 601
Tiempo estimado deno utilizacin mayor: 0.000485329
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 15.001- 20.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.452474
Reposicin NUR - Pgina no usada recientemente: 0.311269
Reposicin LFU - Pgina menos frecuentementeusada: 0.186761
Reposicin LRU - Pgina menos recientementeusada: 0.0489945
Tiempo estimado deno utilizacin mayor: 0.000500785
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 20.001- 25.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.463719
Reposicin NUR - Pgina no usada recientemente: 0.319005
Reposicin LFU - Pgina menos frecuentementeusada: 0.191403
Reposicin LRU - Pgina menos recientementeusada: 0.0253596
Tiempo estimado deno utilizacin mayor: 0.000513231
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 25.001- 30.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.470835
Reposicin NUR - Pgina no usada recientemente: 0.3239
Reposicin LFU - Pgina menos frecuentementeusada: 0.19434
Reposicin LRU - Pgina menos recientementeusada: 0.0104036
Tiempo estimado deno utilizacin mayor: 0.000521107
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 30.001- 35.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.474274
Reposicin NUR - Pgina no usada recientemente: 0.326266
Reposicin LFU - Pgina menos frecuentementeusada: 0.19576
Reposicin LRU - Pgina menos recientementeusada: 0.00317562
602 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Tiempo estimado deno utilizacin mayor: 0.000524913
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 35.001- 40.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.475555
Reposicin NUR - Pgina no usada recientemente: 0.327147
Reposicin LFU - Pgina menos frecuentementeusada: 0.196288
Tiempo estimado deno utilizacin mayor: 0.000526331
Reposicin LRU - Pgina menos recientementeusada: 0.000482454
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: + 40.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.475785
Reposicin NUR - Pgina no usada recientemente: 0.327305
Reposicin LFU - Pgina menos frecuentementeusada: 0.196383
Tiempo estimado deno utilizacin mayor: 0.000526585
Reposicin LRU - Pgina menos recientementeusada: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Menos de50veces
Reposicin FIFO - Tiempo mayor en memoria principal: 0.592055
Reposicin NUR - Pgina no usada recientemente: 0.40729
Tiempo estimado deno utilizacin mayor: 0.000655269
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre50y 100veces
Reposicin FIFO - Tiempo mayor en memoria principal: 0.592055
Reposicin NUR - Pgina no usada recientemente: 0.40729
Tiempo estimado deno utilizacin mayor: 0.000655269
Reposicin LRU - Pgina menos recientementeusada: 0.
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 603
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre101y 200veces
Reposicin FIFO - Tiempo mayor en memoria principal: 0.592055
Reposicin NUR - Pgina no usada recientemente: 0.40729
Tiempo estimado deno utilizacin mayor: 0.000655269
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre201y 300veces
Reposicin FIFO - Tiempo mayor en memoria principal: 0.592055
Reposicin NUR - Pgina no usada recientemente: 0.40729
Tiempo estimado deno utilizacin mayor: 0.000655269
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Ms de300veces
Reposicin FIFO - Tiempo mayor en memoria principal: 0.592055
Reposicin NUR - Pgina no usada recientemente: 0.40729
Tiempo estimado deno utilizacin mayor: 0.000655269
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Resultados tras la consideracin dela pauta:
Pgina no referenciada
Reposicin FIFO - Tiempo mayor en memoria principal: 0.998894
Tiempo estimado deno utilizacin mayor: 0.00110555
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
604 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y no modicada
Reposicin FIFO - Tiempo mayor en memoria principal: 0.998894
Tiempo estimado deno utilizacin mayor: 0.00110555
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y s modicada
Reposicin FIFO - Tiempo mayor en memoria principal: 0.998894
Tiempo estimado deno utilizacin mayor: 0.00110555
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
****************************************************
Resultado nal:
La pgina tienelas siguientes probabilidades
deser removida dela memoria principal segn
las estrategias consideradas:
Reposicin FIFO - Tiempo mayor en memoria principal: 0.998894
Tiempo estimado deno utilizacin mayor: 0.00110555
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
****************************************************
(* Ejemplo depgina con mucho tiempo *)
(* depermanencia en memoria principal sin uso *)
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 605
DatosPagina =
{-1, -2, -3, -4, -5,
-6, -7, -8, -9, -10, -11,
-12, -13, -14, -15, -16, -17, -18, -19, 20,
-21, -22, -23, -24, -25,
-26, -27, -28};
Paginacion[Prior, Verosimilitudes, DatosPagina]
********************************************
* Anlisis del encuadredela pgina *
* segn las estrategias depaginacin, *
* lo quedeterminar la posibilidad deser *
* desalojada dela memoria principal *
* segn las distintas estrategias. *
********************************************
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: - 5.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.374291
Reposicin LFU - Pgina menos frecuentementeusada: 0.224575
Reposicin LRU - Pgina menos recientementeusada: 0.187146
Reposicin FIFO - Tiempo mayor en memoria principal: 0.149716
Tiempo estimado deno utilizacin mayor: 0.0642722
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 5.000- 10.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.380215
Reposicin LFU - Pgina menos frecuentementeusada: 0.228129
Reposicin LRU - Pgina menos recientementeusada: 0.190108
Reposicin FIFO - Tiempo mayor en memoria principal: 0.152086
Tiempo estimado deno utilizacin mayor: 0.0494617
606 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 10.001- 20.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.387771
Reposicin LFU - Pgina menos frecuentementeusada: 0.232663
Reposicin LRU - Pgina menos recientementeusada: 0.193885
Reposicin FIFO - Tiempo mayor en memoria principal: 0.155108
Tiempo estimado deno utilizacin mayor: 0.0305725
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 20.001- 40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.394967
Reposicin LFU - Pgina menos frecuentementeusada: 0.23698
Reposicin LRU - Pgina menos recientementeusada: 0.197484
Reposicin FIFO - Tiempo mayor en memoria principal: 0.157987
Tiempo estimado deno utilizacin mayor: 0.0125818
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: +40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.399743
Reposicin LFU - Pgina menos frecuentementeusada: 0.239846
Reposicin LRU - Pgina menos recientementeusada: 0.199871
Reposicin FIFO - Tiempo mayor en memoria principal: 0.159897
Tiempo estimado deno utilizacin mayor: 0.000643126
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: - 1.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.405639
Reposicin LFU - Pgina menos frecuentementeusada: 0.243383
Reposicin LRU - Pgina menos recientementeusada: 0.20282
Reposicin FIFO - Tiempo mayor en memoria principal: 0.147505
Tiempo estimado deno utilizacin mayor: 0.000652612
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 607
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 1.000- 3.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.417457
Reposicin LFU - Pgina menos frecuentementeusada: 0.250474
Reposicin LRU - Pgina menos recientementeusada: 0.208728
Reposicin FIFO - Tiempo mayor en memoria principal: 0.122669
Tiempo estimado deno utilizacin mayor: 0.000671626
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 3.001- 6.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.438655
Reposicin LFU - Pgina menos frecuentementeusada: 0.263193
Reposicin LRU - Pgina menos recientementeusada: 0.219327
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0781197
Tiempo estimado deno utilizacin mayor: 0.000705729
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 6.001- 9.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.460074
Reposicin LFU - Pgina menos frecuentementeusada: 0.276044
Reposicin LRU - Pgina menos recientementeusada: 0.230037
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0331048
Tiempo estimado deno utilizacin mayor: 0.00074019
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 9.001- 30.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.472557
Reposicin LFU - Pgina menos frecuentementeusada: 0.283534
Reposicin LRU - Pgina menos recientementeusada: 0.236279
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0068693
Tiempo estimado deno utilizacin mayor: 0.000760274
608 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: + 30.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.475826
Reposicin LFU - Pgina menos frecuentementeusada: 0.285496
Reposicin LRU - Pgina menos recientementeusada: 0.237913
Tiempo estimado deno utilizacin mayor: 0.000765532
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: - 5.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.486345
Reposicin LFU - Pgina menos frecuentementeusada: 0.291807
Reposicin LRU - Pgina menos recientementeusada: 0.221066
Tiempo estimado deno utilizacin mayor: 0.000782456
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 5.000- 10.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.507893
Reposicin LFU - Pgina menos frecuentementeusada: 0.304736
Reposicin LRU - Pgina menos recientementeusada: 0.186554
Tiempo estimado deno utilizacin mayor: 0.000817124
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 10.001- 15.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.537252
Reposicin LFU - Pgina menos frecuentementeusada: 0.322351
Reposicin LRU - Pgina menos recientementeusada: 0.139532
Tiempo estimado deno utilizacin mayor: 0.000864358
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 609
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 15.001- 20.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.568501
Reposicin LFU - Pgina menos frecuentementeusada: 0.341101
Reposicin LRU - Pgina menos recientementeusada: 0.0894834
Tiempo estimado deno utilizacin mayor: 0.000914633
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 20.001- 25.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.594847
Reposicin LFU - Pgina menos frecuentementeusada: 0.356908
Reposicin LRU - Pgina menos recientementeusada: 0.047288
Tiempo estimado deno utilizacin mayor: 0.000957019
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 25.001- 30.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.612097
Reposicin LFU - Pgina menos frecuentementeusada: 0.367258
Reposicin LRU - Pgina menos recientementeusada: 0.0196603
Tiempo estimado deno utilizacin mayor: 0.000984772
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 30.001- 35.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.620601
Reposicin LFU - Pgina menos frecuentementeusada: 0.37236
Reposicin LRU - Pgina menos recientementeusada: 0.00604044
Tiempo estimado deno utilizacin mayor: 0.000998453
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
610 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 35.001- 40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.623798
Reposicin LFU - Pgina menos frecuentementeusada: 0.374279
Tiempo estimado deno utilizacin mayor: 0.0010036
Reposicin LRU - Pgina menos recientementeusada: 0.000919934
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: + 40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.571729
Reposicin LFU - Pgina menos frecuentementeusada: 0.343037
Reposicin LRU - Pgina menos recientementeusada: 0.0843146
Tiempo estimado deno utilizacin mayor: 0.000919825
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Menos de50veces
Reposicin NUR - Pgina no usada recientemente: 0.87026
Reposicin LRU - Pgina menos recientementeusada: 0.12834
Tiempo estimado deno utilizacin mayor: 0.00140012
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre50y 100veces
Reposicin NUR - Pgina no usada recientemente: 0.87026
Reposicin LRU - Pgina menos recientementeusada: 0.12834
Tiempo estimado deno utilizacin mayor: 0.00140012
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 611
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre101y 200veces
Reposicin NUR - Pgina no usada recientemente: 0.87026
Reposicin LRU - Pgina menos recientementeusada: 0.12834
Tiempo estimado deno utilizacin mayor: 0.00140012
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre201y 300veces
Reposicin NUR - Pgina no usada recientemente: 0.87026
Reposicin LRU - Pgina menos recientementeusada: 0.12834
Tiempo estimado deno utilizacin mayor: 0.00140012
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Ms de300veces
Reposicin NUR - Pgina no usada recientemente: 0.87026
Reposicin LRU - Pgina menos recientementeusada: 0.12834
Tiempo estimado deno utilizacin mayor: 0.00140012
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina no referenciada
Reposicin LRU - Pgina menos recientementeusada: 0.989208
Tiempo estimado deno utilizacin mayor: 0.0107917
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
612 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y no modicada
Reposicin LRU - Pgina menos recientementeusada: 0.989208
Tiempo estimado deno utilizacin mayor: 0.0107917
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y s modicada
Reposicin LRU - Pgina menos recientementeusada: 0.989208
Tiempo estimado deno utilizacin mayor: 0.0107917
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
****************************************************
Resultado nal:
La pgina tienelas siguientes probabilidades
deser removida dela memoria principal segn
las estrategias consideradas:
Reposicin LRU - Pgina menos recientementeusada: 0.989208
Tiempo estimado deno utilizacin mayor: 0.0107917
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
****************************************************
(* Ejemplo depgina poco utilizada *)
DatosPagina =
{-1, -2, -3, -4, -5,
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 613
-6, -7, -8, -9, -10, -11,
-12, -13, -14, -15, -16, -17, -18, -19, -20,
21, -22, -23, -24, -25,
-26, -27, -28};
Paginacion[Prior, Verosimilitudes, DatosPagina]
********************************************
* Anlisis del encuadredela pgina *
* segn las estrategias depaginacin, *
* lo quedeterminar la posibilidad deser *
* desalojada dela memoria principal *
* segn las distintas estrategias. *
********************************************
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: - 5.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.374291
Reposicin LFU - Pgina menos frecuentementeusada: 0.224575
Reposicin LRU - Pgina menos recientementeusada: 0.187146
Reposicin FIFO - Tiempo mayor en memoria principal: 0.149716
Tiempo estimado deno utilizacin mayor: 0.0642722
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 5.000- 10.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.380215
Reposicin LFU - Pgina menos frecuentementeusada: 0.228129
Reposicin LRU - Pgina menos recientementeusada: 0.190108
Reposicin FIFO - Tiempo mayor en memoria principal: 0.152086
Tiempo estimado deno utilizacin mayor: 0.0494617
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 10.001- 20.000miliseg.
614 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin NUR - Pgina no usada recientemente: 0.387771
Reposicin LFU - Pgina menos frecuentementeusada: 0.232663
Reposicin LRU - Pgina menos recientementeusada: 0.193885
Reposicin FIFO - Tiempo mayor en memoria principal: 0.155108
Tiempo estimado deno utilizacin mayor: 0.0305725
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 20.001- 40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.394967
Reposicin LFU - Pgina menos frecuentementeusada: 0.23698
Reposicin LRU - Pgina menos recientementeusada: 0.197484
Reposicin FIFO - Tiempo mayor en memoria principal: 0.157987
Tiempo estimado deno utilizacin mayor: 0.0125818
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: +40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.399743
Reposicin LFU - Pgina menos frecuentementeusada: 0.239846
Reposicin LRU - Pgina menos recientementeusada: 0.199871
Reposicin FIFO - Tiempo mayor en memoria principal: 0.159897
Tiempo estimado deno utilizacin mayor: 0.000643126
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: - 1.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.405639
Reposicin LFU - Pgina menos frecuentementeusada: 0.243383
Reposicin LRU - Pgina menos recientementeusada: 0.20282
Reposicin FIFO - Tiempo mayor en memoria principal: 0.147505
Tiempo estimado deno utilizacin mayor: 0.000652612
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 1.000- 3.000miliseg.
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 615
Reposicin NUR - Pgina no usada recientemente: 0.417457
Reposicin LFU - Pgina menos frecuentementeusada: 0.250474
Reposicin LRU - Pgina menos recientementeusada: 0.208728
Reposicin FIFO - Tiempo mayor en memoria principal: 0.122669
Tiempo estimado deno utilizacin mayor: 0.000671626
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 3.001- 6.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.438655
Reposicin LFU - Pgina menos frecuentementeusada: 0.263193
Reposicin LRU - Pgina menos recientementeusada: 0.219327
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0781197
Tiempo estimado deno utilizacin mayor: 0.000705729
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 6.001- 9.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.460074
Reposicin LFU - Pgina menos frecuentementeusada: 0.276044
Reposicin LRU - Pgina menos recientementeusada: 0.230037
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0331048
Tiempo estimado deno utilizacin mayor: 0.00074019
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 9.001- 30.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.472557
Reposicin LFU - Pgina menos frecuentementeusada: 0.283534
Reposicin LRU - Pgina menos recientementeusada: 0.236279
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0068693
Tiempo estimado deno utilizacin mayor: 0.000760274
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: +30.000miliseg.
616 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin NUR - Pgina no usada recientemente: 0.475826
Reposicin LFU - Pgina menos frecuentementeusada: 0.285496
Reposicin LRU - Pgina menos recientementeusada: 0.237913
Tiempo estimado deno utilizacin mayor: 0.000765532
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: - 5.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.486345
Reposicin LFU - Pgina menos frecuentementeusada: 0.291807
Reposicin LRU - Pgina menos recientementeusada: 0.221066
Tiempo estimado deno utilizacin mayor: 0.000782456
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 5.000- 10.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.507893
Reposicin LFU - Pgina menos frecuentementeusada: 0.304736
Reposicin LRU - Pgina menos recientementeusada: 0.186554
Tiempo estimado deno utilizacin mayor: 0.000817124
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 10.001- 15.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.537252
Reposicin LFU - Pgina menos frecuentementeusada: 0.322351
Reposicin LRU - Pgina menos recientementeusada: 0.139532
Tiempo estimado deno utilizacin mayor: 0.000864358
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 15.001- 20.000miliseg.
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 617
Reposicin NUR - Pgina no usada recientemente: 0.568501
Reposicin LFU - Pgina menos frecuentementeusada: 0.341101
Reposicin LRU - Pgina menos recientementeusada: 0.0894834
Tiempo estimado deno utilizacin mayor: 0.000914633
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 20.001- 25.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.594847
Reposicin LFU - Pgina menos frecuentementeusada: 0.356908
Reposicin LRU - Pgina menos recientementeusada: 0.047288
Tiempo estimado deno utilizacin mayor: 0.000957019
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 25.001- 30.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.612097
Reposicin LFU - Pgina menos frecuentementeusada: 0.367258
Reposicin LRU - Pgina menos recientementeusada: 0.0196603
Tiempo estimado deno utilizacin mayor: 0.000984772
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 30.001- 35.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.620601
Reposicin LFU - Pgina menos frecuentementeusada: 0.37236
Reposicin LRU - Pgina menos recientementeusada: 0.00604044
Tiempo estimado deno utilizacin mayor: 0.000998453
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 35.001- 40.000miliseg.
618 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin NUR - Pgina no usada recientemente: 0.623798
Reposicin LFU - Pgina menos frecuentementeusada: 0.374279
Tiempo estimado deno utilizacin mayor: 0.0010036
Reposicin LRU - Pgina menos recientementeusada: 0.000919934
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: + 40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.624372
Reposicin LFU - Pgina menos frecuentementeusada: 0.374623
Tiempo estimado deno utilizacin mayor: 0.00100452
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Menos de50veces
Reposicin LFU - Pgina menos frecuentementeusada: 0.983581
Reposicin NUR - Pgina no usada recientemente: 0.016393
Tiempo estimado deno utilizacin mayor: 0.0000263739
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre50y 100veces
Reposicin LFU - Pgina menos frecuentementeusada: 0.947788
Reposicin NUR - Pgina no usada recientemente: 0.0521283
Tiempo estimado deno utilizacin mayor: 0.0000838666
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre101y 200veces
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 619
Reposicin LFU - Pgina menos frecuentementeusada: 0.901652
Reposicin NUR - Pgina no usada recientemente: 0.0981899
Tiempo estimado deno utilizacin mayor: 0.000157973
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre201y 300veces
Reposicin LFU - Pgina menos frecuentementeusada: 0.874142
Reposicin NUR - Pgina no usada recientemente: 0.125656
Tiempo estimado deno utilizacin mayor: 0.000202162
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Ms de300veces
Reposicin LFU - Pgina menos frecuentementeusada: 0.869534
Reposicin NUR - Pgina no usada recientemente: 0.130257
Tiempo estimado deno utilizacin mayor: 0.000209563
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina no referenciada
Reposicin LFU - Pgina menos frecuentementeusada: 0.999759
Tiempo estimado deno utilizacin mayor: 0.000240948
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y no modicada
620 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin LFU - Pgina menos frecuentementeusada: 0.999759
Tiempo estimado deno utilizacin mayor: 0.000240948
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y s modicada
Reposicin LFU - Pgina menos frecuentementeusada: 0.999759
Tiempo estimado deno utilizacin mayor: 0.000240948
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
****************************************************
Resultado nal:
La pgina tienelas siguientes probabilidades
deser removida dela memoria principal segn
las estrategias consideradas:
Reposicin LFU - Pgina menos frecuentementeusada: 0.999759
Tiempo estimado deno utilizacin mayor: 0.000240948
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
****************************************************
(* Ejemplo depgina no referenciada *)
DatosPagina =
{-1, -2, -3, -4, -5,
-6, -7, -8, -9, -10, -11,
-12, -13, -14, -15, -16, -17, -18, -19, -20,
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 621
-21, -22, -23, -24, -25,
26, -27, -28};
Paginacion[Prior, Verosimilitudes, DatosPagina]
********************************************
* Anlisis del encuadredela pgina *
* segn las estrategias depaginacin, *
* lo quedeterminar la posibilidad deser *
* desalojada dela memoria principal *
* segn las distintas estrategias. *
********************************************
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: - 5.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.374291
Reposicin LFU - Pgina menos frecuentementeusada: 0.224575
Reposicin LRU - Pgina menos recientementeusada: 0.187146
Reposicin FIFO - Tiempo mayor en memoria principal: 0.149716
Tiempo estimado deno utilizacin mayor: 0.0642722
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 5.000- 10.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.380215
Reposicin LFU - Pgina menos frecuentementeusada: 0.228129
Reposicin LRU - Pgina menos recientementeusada: 0.190108
Reposicin FIFO - Tiempo mayor en memoria principal: 0.152086
Tiempo estimado deno utilizacin mayor: 0.0494617
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 10.001- 20.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.387771
Reposicin LFU - Pgina menos frecuentementeusada: 0.232663
622 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin LRU - Pgina menos recientementeusada: 0.193885
Reposicin FIFO - Tiempo mayor en memoria principal: 0.155108
Tiempo estimado deno utilizacin mayor: 0.0305725
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 20.001- 40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.394967
Reposicin LFU - Pgina menos frecuentementeusada: 0.23698
Reposicin LRU - Pgina menos recientementeusada: 0.197484
Reposicin FIFO - Tiempo mayor en memoria principal: 0.157987
Tiempo estimado deno utilizacin mayor: 0.0125818
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: +40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.399743
Reposicin LFU - Pgina menos frecuentementeusada: 0.239846
Reposicin LRU - Pgina menos recientementeusada: 0.199871
Reposicin FIFO - Tiempo mayor en memoria principal: 0.159897
Tiempo estimado deno utilizacin mayor: 0.000643126
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: - 1.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.405639
Reposicin LFU - Pgina menos frecuentementeusada: 0.243383
Reposicin LRU - Pgina menos recientementeusada: 0.20282
Reposicin FIFO - Tiempo mayor en memoria principal: 0.147505
Tiempo estimado deno utilizacin mayor: 0.000652612
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 1.000- 3.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.417457
Reposicin LFU - Pgina menos frecuentementeusada: 0.250474
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 623
Reposicin LRU - Pgina menos recientementeusada: 0.208728
Reposicin FIFO - Tiempo mayor en memoria principal: 0.122669
Tiempo estimado deno utilizacin mayor: 0.000671626
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 3.001- 6.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.438655
Reposicin LFU - Pgina menos frecuentementeusada: 0.263193
Reposicin LRU - Pgina menos recientementeusada: 0.219327
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0781197
Tiempo estimado deno utilizacin mayor: 0.000705729
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 6.001- 9.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.460074
Reposicin LFU - Pgina menos frecuentementeusada: 0.276044
Reposicin LRU - Pgina menos recientementeusada: 0.230037
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0331048
Tiempo estimado deno utilizacin mayor: 0.00074019
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 9.001- 30.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.472557
Reposicin LFU - Pgina menos frecuentementeusada: 0.283534
Reposicin LRU - Pgina menos recientementeusada: 0.236279
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0068693
Tiempo estimado deno utilizacin mayor: 0.000760274
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: +30.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.475826
Reposicin LFU - Pgina menos frecuentementeusada: 0.285496
624 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin LRU - Pgina menos recientementeusada: 0.237913
Tiempo estimado deno utilizacin mayor: 0.000765532
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: - 5.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.486345
Reposicin LFU - Pgina menos frecuentementeusada: 0.291807
Reposicin LRU - Pgina menos recientementeusada: 0.221066
Tiempo estimado deno utilizacin mayor: 0.000782456
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 5.000- 10.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.507893
Reposicin LFU - Pgina menos frecuentementeusada: 0.304736
Reposicin LRU - Pgina menos recientementeusada: 0.186554
Tiempo estimado deno utilizacin mayor: 0.000817124
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 10.001- 15.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.537252
Reposicin LFU - Pgina menos frecuentementeusada: 0.322351
Reposicin LRU - Pgina menos recientementeusada: 0.139532
Tiempo estimado deno utilizacin mayor: 0.000864358
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 15.001- 20.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.568501
Reposicin LFU - Pgina menos frecuentementeusada: 0.341101
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 625
Reposicin LRU - Pgina menos recientementeusada: 0.0894834
Tiempo estimado deno utilizacin mayor: 0.000914633
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 20.001- 25.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.594847
Reposicin LFU - Pgina menos frecuentementeusada: 0.356908
Reposicin LRU - Pgina menos recientementeusada: 0.047288
Tiempo estimado deno utilizacin mayor: 0.000957019
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 25.001- 30.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.612097
Reposicin LFU - Pgina menos frecuentementeusada: 0.367258
Reposicin LRU - Pgina menos recientementeusada: 0.0196603
Tiempo estimado deno utilizacin mayor: 0.000984772
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 30.001- 35.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.620601
Reposicin LFU - Pgina menos frecuentementeusada: 0.37236
Reposicin LRU - Pgina menos recientementeusada: 0.00604044
Tiempo estimado deno utilizacin mayor: 0.000998453
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 35.001- 40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.623798
Reposicin LFU - Pgina menos frecuentementeusada: 0.374279
626 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Tiempo estimado deno utilizacin mayor: 0.0010036
Reposicin LRU - Pgina menos recientementeusada: 0.000919934
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: + 40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.624372
Reposicin LFU - Pgina menos frecuentementeusada: 0.374623
Tiempo estimado deno utilizacin mayor: 0.00100452
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Menos de50veces
Reposicin NUR - Pgina no usada recientemente: 0.998394
Tiempo estimado deno utilizacin mayor: 0.00160627
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre50y 100veces
Reposicin NUR - Pgina no usada recientemente: 0.998394
Tiempo estimado deno utilizacin mayor: 0.00160627
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre101y 200veces
Reposicin NUR - Pgina no usada recientemente: 0.998394
Tiempo estimado deno utilizacin mayor: 0.00160627
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 627
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre201y 300veces
Reposicin NUR - Pgina no usada recientemente: 0.998394
Tiempo estimado deno utilizacin mayor: 0.00160627
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Ms de300veces
Reposicin NUR - Pgina no usada recientemente: 0.998394
Tiempo estimado deno utilizacin mayor: 0.00160627
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina no referenciada
Reposicin NUR - Pgina no usada recientemente: 0.999984
Tiempo estimado deno utilizacin mayor: 0.0000160882
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y no modicada
Reposicin NUR - Pgina no usada recientemente: 0.999968
Tiempo estimado deno utilizacin mayor: 0.0000318542
628 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y s modicada
Reposicin NUR - Pgina no usada recientemente: 0.999967
Tiempo estimado deno utilizacin mayor: 0.0000331954
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
****************************************************
Resultado nal:
La pgina tienelas siguientes probabilidades
deser removida dela memoria principal segn
las estrategias consideradas:
Reposicin NUR - Pgina no usada recientemente: 0.999967
Tiempo estimado deno utilizacin mayor: 0.0000331954
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
****************************************************
(* Ejemplo depgina con:*)
(* -5.000miliseg. hasta el prximo uso *)
(* +30.000miliseg. en memoria principal *)
(* 10.001- 15.000miliseg. en mem. ppal. sin uso *)
(* 101- 200veces deutilizacin *)
(* s referenciada y s modicada *)
DatosPagina =
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 629
{1, -2, -3, -4, -5,
-6, -7, -8, -9, -10, 11,
-12, -13, 14, -15, -16, -17, -18, -19, -20,
-21, -22, 23, -24, -25,
-26, -27, 28};
Paginacion[Prior, Verosimilitudes, DatosPagina]
********************************************
* Anlisis del encuadredela pgina *
* segn las estrategias depaginacin, *
* lo quedeterminar la posibilidad deser *
* desalojada dela memoria principal *
* segn las distintas estrategias. *
********************************************
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: - 5.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.545455
Reposicin NUR - Pgina no usada recientemente: 0.181818
Reposicin LFU - Pgina menos frecuentementeusada: 0.109091
Reposicin LRU - Pgina menos recientementeusada: 0.0909091
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0727273
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 5.000- 10.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.47619
Reposicin NUR - Pgina no usada recientemente: 0.209524
Reposicin LFU - Pgina menos frecuentementeusada: 0.125714
Reposicin LRU - Pgina menos recientementeusada: 0.104762
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0838095
Resultados tras la consideracin dela pauta:
630 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Tiempo hasta la prxima utilizacin: 10.001- 20.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.35524
Reposicin NUR - Pgina no usada recientemente: 0.257904
Reposicin LFU - Pgina menos frecuentementeusada: 0.154742
Reposicin LRU - Pgina menos recientementeusada: 0.128952
Reposicin FIFO - Tiempo mayor en memoria principal: 0.103162
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 20.001- 40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.327168
Reposicin LFU - Pgina menos frecuentementeusada: 0.196301
Tiempo estimado deno utilizacin mayor: 0.182079
Reposicin LRU - Pgina menos recientementeusada: 0.163584
Reposicin FIFO - Tiempo mayor en memoria principal: 0.130867
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: +40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.395553
Reposicin LFU - Pgina menos frecuentementeusada: 0.237332
Reposicin LRU - Pgina menos recientementeusada: 0.197776
Reposicin FIFO - Tiempo mayor en memoria principal: 0.158221
Tiempo estimado deno utilizacin mayor: 0.011118
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: - 1.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.401325
Reposicin LFU - Pgina menos frecuentementeusada: 0.240795
Reposicin LRU - Pgina menos recientementeusada: 0.200663
Reposicin FIFO - Tiempo mayor en memoria principal: 0.145936
Tiempo estimado deno utilizacin mayor: 0.0112803
Resultados tras la consideracin dela pauta:
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 631
Tiempo en mem. ppal.: 1.000- 3.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.41289
Reposicin LFU - Pgina menos frecuentementeusada: 0.247734
Reposicin LRU - Pgina menos recientementeusada: 0.206445
Reposicin FIFO - Tiempo mayor en memoria principal: 0.121327
Tiempo estimado deno utilizacin mayor: 0.0116053
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 3.001- 6.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.433614
Reposicin LFU - Pgina menos frecuentementeusada: 0.260169
Reposicin LRU - Pgina menos recientementeusada: 0.216807
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0772221
Tiempo estimado deno utilizacin mayor: 0.0121878
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 6.001- 9.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.454532
Reposicin LFU - Pgina menos frecuentementeusada: 0.272719
Reposicin LRU - Pgina menos recientementeusada: 0.227266
Reposicin FIFO - Tiempo mayor en memoria principal: 0.032706
Tiempo estimado deno utilizacin mayor: 0.0127758
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 9.001- 30.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.466713
Reposicin LFU - Pgina menos frecuentementeusada: 0.280028
Reposicin LRU - Pgina menos recientementeusada: 0.233357
Tiempo estimado deno utilizacin mayor: 0.0131182
Reposicin FIFO - Tiempo mayor en memoria principal: 0.00678434
Resultados tras la consideracin dela pauta:
632 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Tiempo en mem. ppal.: + 30.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.405847
Reposicin NUR - Pgina no usada recientemente: 0.279193
Reposicin LFU - Pgina menos frecuentementeusada: 0.167516
Reposicin LRU - Pgina menos recientementeusada: 0.139597
Tiempo estimado deno utilizacin mayor: 0.00784743
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: - 5.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.411064
Reposicin NUR - Pgina no usada recientemente: 0.282782
Reposicin LFU - Pgina menos frecuentementeusada: 0.169669
Reposicin LRU - Pgina menos recientementeusada: 0.128537
Tiempo estimado deno utilizacin mayor: 0.0079483
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 5.000- 10.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.421461
Reposicin NUR - Pgina no usada recientemente: 0.289934
Reposicin LFU - Pgina menos frecuentementeusada: 0.17396
Reposicin LRU - Pgina menos recientementeusada: 0.106496
Tiempo estimado deno utilizacin mayor: 0.00814934
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 10.001- 15.000miliseg.
Reposicin LRU - Pgina menos recientementeusada: 0.781452
Reposicin FIFO - Tiempo mayor en memoria principal: 0.103088
Reposicin NUR - Pgina no usada recientemente: 0.0709168
Reposicin LFU - Pgina menos frecuentementeusada: 0.0425501
Tiempo estimado deno utilizacin mayor: 0.0019933
Resultados tras la consideracin dela pauta:
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 633
Tiempo en mem. ppal. s/ uso: 15.001- 20.000miliseg.
Reposicin LRU - Pgina menos recientementeusada: 0.68425
Reposicin FIFO - Tiempo mayor en memoria principal: 0.148937
Reposicin NUR - Pgina no usada recientemente: 0.102458
Reposicin LFU - Pgina menos frecuentementeusada: 0.0614748
Tiempo estimado deno utilizacin mayor: 0.00287984
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 20.001- 25.000miliseg.
Reposicin LRU - Pgina menos recientementeusada: 0.522554
Reposicin FIFO - Tiempo mayor en memoria principal: 0.225208
Reposicin NUR - Pgina no usada recientemente: 0.154927
Reposicin LFU - Pgina menos frecuentementeusada: 0.0929561
Tiempo estimado deno utilizacin mayor: 0.00435462
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 25.001- 30.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.327063
Reposicin LRU - Pgina menos recientementeusada: 0.306621
Reposicin NUR - Pgina no usada recientemente: 0.224995
Reposicin LFU - Pgina menos frecuentementeusada: 0.134997
Tiempo estimado deno utilizacin mayor: 0.00632406
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 30.001- 35.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.415954
Reposicin NUR - Pgina no usada recientemente: 0.286146
Reposicin LFU - Pgina menos frecuentementeusada: 0.171688
Reposicin LRU - Pgina menos recientementeusada: 0.118169
Tiempo estimado deno utilizacin mayor: 0.00804287
Resultados tras la consideracin dela pauta:
634 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Tiempo en mem. ppal. s/ uso: 35.001- 40.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.462307
Reposicin NUR - Pgina no usada recientemente: 0.318034
Reposicin LFU - Pgina menos frecuentementeusada: 0.19082
Reposicin LRU - Pgina menos recientementeusada: 0.0198996
Tiempo estimado deno utilizacin mayor: 0.00893915
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: + 40.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.471694
Reposicin NUR - Pgina no usada recientemente: 0.324491
Reposicin LFU - Pgina menos frecuentementeusada: 0.194695
Tiempo estimado deno utilizacin mayor: 0.00912064
Reposicin LRU - Pgina menos recientementeusada: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Menos de50veces
Reposicin FIFO - Tiempo mayor en memoria principal: 0.585733
Reposicin NUR - Pgina no usada recientemente: 0.402941
Tiempo estimado deno utilizacin mayor: 0.0113257
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre50y 100veces
Reposicin FIFO - Tiempo mayor en memoria principal: 0.585733
Reposicin NUR - Pgina no usada recientemente: 0.402941
Tiempo estimado deno utilizacin mayor: 0.0113257
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Resultados tras la consideracin dela pauta:
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 635
Intensidad deutilizacin dela pgina: Entre101y 200veces
Reposicin FIFO - Tiempo mayor en memoria principal: 0.585733
Reposicin NUR - Pgina no usada recientemente: 0.402941
Tiempo estimado deno utilizacin mayor: 0.0113257
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre201y 300veces
Reposicin FIFO - Tiempo mayor en memoria principal: 0.585733
Reposicin NUR - Pgina no usada recientemente: 0.402941
Tiempo estimado deno utilizacin mayor: 0.0113257
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Ms de300veces
Reposicin FIFO - Tiempo mayor en memoria principal: 0.585733
Reposicin NUR - Pgina no usada recientemente: 0.402941
Tiempo estimado deno utilizacin mayor: 0.0113257
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Resultados tras la consideracin dela pauta:
Pgina no referenciada
Reposicin FIFO - Tiempo mayor en memoria principal: 0.981031
Tiempo estimado deno utilizacin mayor: 0.0189692
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Resultados tras la consideracin dela pauta:
636 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Pgina s referenciada y no modicada
Reposicin FIFO - Tiempo mayor en memoria principal: 0.981031
Tiempo estimado deno utilizacin mayor: 0.0189692
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y s modicada
Reposicin FIFO - Tiempo mayor en memoria principal: 0.981031
Tiempo estimado deno utilizacin mayor: 0.0189692
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
****************************************************
Resultado nal:
La pgina tienelas siguientes probabilidades
deser removida dela memoria principal segn
las estrategias consideradas:
Reposicin FIFO - Tiempo mayor en memoria principal: 0.981031
Tiempo estimado deno utilizacin mayor: 0.0189692
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
****************************************************
(* Ejemplo depgina con:*)
(* 20.001- 40.000miliseg. hasta el prximo uso *)
(* 3.001- 6.000miliseg. en memoria principal *)
(* -5.000miliseg. en mem. ppal. sin uso *)
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 637
(* 101- 200veces deutilizacin *)
(* s referenciada y no modicada *)
DatosPagina =
{-1, -2, -3, 4, -5,
-6, -7, 8, -9, -10, -11,
12, -13, -14, -15, -16, -17, -18, -19, -20,
-21, -22, 23, -24, -25,
-26, 27, -28};
Paginacion[Prior, Verosimilitudes, DatosPagina]
********************************************
* Anlisis del encuadredela pgina *
* segn las estrategias depaginacin, *
* lo quedeterminar la posibilidad deser *
* desalojada dela memoria principal *
* segn las distintas estrategias. *
********************************************
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: - 5.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.374291
Reposicin LFU - Pgina menos frecuentementeusada: 0.224575
Reposicin LRU - Pgina menos recientementeusada: 0.187146
Reposicin FIFO - Tiempo mayor en memoria principal: 0.149716
Tiempo estimado deno utilizacin mayor: 0.0642722
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 5.000- 10.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.380215
Reposicin LFU - Pgina menos frecuentementeusada: 0.228129
Reposicin LRU - Pgina menos recientementeusada: 0.190108
638 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.152086
Tiempo estimado deno utilizacin mayor: 0.0494617
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 10.001- 20.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.387771
Reposicin LFU - Pgina menos frecuentementeusada: 0.232663
Reposicin LRU - Pgina menos recientementeusada: 0.193885
Reposicin FIFO - Tiempo mayor en memoria principal: 0.155108
Tiempo estimado deno utilizacin mayor: 0.0305725
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 20.001- 40.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.654242
Reposicin NUR - Pgina no usada recientemente: 0.138303
Reposicin LFU - Pgina menos frecuentementeusada: 0.0829818
Reposicin LRU - Pgina menos recientementeusada: 0.0691515
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0553212
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: +40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.365108
Reposicin LFU - Pgina menos frecuentementeusada: 0.219065
Reposicin LRU - Pgina menos recientementeusada: 0.182554
Reposicin FIFO - Tiempo mayor en memoria principal: 0.146043
Tiempo estimado deno utilizacin mayor: 0.0872295
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: - 1.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.370021
Reposicin LFU - Pgina menos frecuentementeusada: 0.222012
Reposicin LRU - Pgina menos recientementeusada: 0.18501
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 639
Reposicin FIFO - Tiempo mayor en memoria principal: 0.134553
Tiempo estimado deno utilizacin mayor: 0.0884032
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 1.000- 3.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.379829
Reposicin LFU - Pgina menos frecuentementeusada: 0.227898
Reposicin LRU - Pgina menos recientementeusada: 0.189915
Reposicin FIFO - Tiempo mayor en memoria principal: 0.111612
Tiempo estimado deno utilizacin mayor: 0.0907466
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 3.001- 6.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.834035
Reposicin NUR - Pgina no usada recientemente: 0.0709581
Reposicin LFU - Pgina menos frecuentementeusada: 0.0425749
Reposicin LRU - Pgina menos recientementeusada: 0.0354791
Tiempo estimado deno utilizacin mayor: 0.0169529
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 6.001- 9.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.670016
Reposicin NUR - Pgina no usada recientemente: 0.141084
Reposicin LFU - Pgina menos frecuentementeusada: 0.0846505
Reposicin LRU - Pgina menos recientementeusada: 0.0705421
Tiempo estimado deno utilizacin mayor: 0.033707
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 9.001- 30.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.303185
Reposicin FIFO - Tiempo mayor en memoria principal: 0.290877
Reposicin LFU - Pgina menos frecuentementeusada: 0.181911
640 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin LRU - Pgina menos recientementeusada: 0.151592
Tiempo estimado deno utilizacin mayor: 0.0724351
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: + 30.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.427549
Reposicin LFU - Pgina menos frecuentementeusada: 0.256529
Reposicin LRU - Pgina menos recientementeusada: 0.213774
Tiempo estimado deno utilizacin mayor: 0.102147
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: - 5.000miliseg.
Reposicin LRU - Pgina menos recientementeusada: 0.73111
Reposicin NUR - Pgina no usada recientemente: 0.146222
Reposicin LFU - Pgina menos frecuentementeusada: 0.0877332
Tiempo estimado deno utilizacin mayor: 0.0349345
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 5.000- 10.000miliseg.
Reposicin LRU - Pgina menos recientementeusada: 0.687223
Reposicin NUR - Pgina no usada recientemente: 0.170088
Reposicin LFU - Pgina menos frecuentementeusada: 0.102053
Tiempo estimado deno utilizacin mayor: 0.0406364
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 10.001- 15.000miliseg.
Reposicin LRU - Pgina menos recientementeusada: 0.608389
Reposicin NUR - Pgina no usada recientemente: 0.212958
Reposicin LFU - Pgina menos frecuentementeusada: 0.127775
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 641
Tiempo estimado deno utilizacin mayor: 0.0508786
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 15.001- 20.000miliseg.
Reposicin LRU - Pgina menos recientementeusada: 0.484947
Reposicin NUR - Pgina no usada recientemente: 0.280085
Reposicin LFU - Pgina menos frecuentementeusada: 0.168051
Tiempo estimado deno utilizacin mayor: 0.0669164
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 20.001- 25.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.368545
Reposicin LRU - Pgina menos recientementeusada: 0.322277
Reposicin LFU - Pgina menos frecuentementeusada: 0.221127
Tiempo estimado deno utilizacin mayor: 0.0880507
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 25.001- 30.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.456156
Reposicin LFU - Pgina menos frecuentementeusada: 0.273694
Reposicin LRU - Pgina menos recientementeusada: 0.161167
Tiempo estimado deno utilizacin mayor: 0.108982
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 30.001- 35.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.51388
Reposicin LFU - Pgina menos frecuentementeusada: 0.308328
Tiempo estimado deno utilizacin mayor: 0.122773
642 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin LRU - Pgina menos recientementeusada: 0.0550188
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 35.001- 40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.539044
Reposicin LFU - Pgina menos frecuentementeusada: 0.323426
Tiempo estimado deno utilizacin mayor: 0.128785
Reposicin LRU - Pgina menos recientementeusada: 0.00874439
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: + 40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.543799
Reposicin LFU - Pgina menos frecuentementeusada: 0.32628
Tiempo estimado deno utilizacin mayor: 0.129921
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Menos de50veces
Reposicin NUR - Pgina no usada recientemente: 0.807158
Tiempo estimado deno utilizacin mayor: 0.192842
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre50y 100veces
Reposicin NUR - Pgina no usada recientemente: 0.807158
Tiempo estimado deno utilizacin mayor: 0.192842
Reposicin LRU - Pgina menos recientementeusada: 0.
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 643
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre101y 200veces
Reposicin NUR - Pgina no usada recientemente: 0.807158
Tiempo estimado deno utilizacin mayor: 0.192842
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre201y 300veces
Reposicin NUR - Pgina no usada recientemente: 0.807158
Tiempo estimado deno utilizacin mayor: 0.192842
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Ms de300veces
Reposicin NUR - Pgina no usada recientemente: 0.807158
Tiempo estimado deno utilizacin mayor: 0.192842
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina no referenciada
Tiempo estimado deno utilizacin mayor: 1.
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
644 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y no modicada
Tiempo estimado deno utilizacin mayor: 1.
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y s modicada
Tiempo estimado deno utilizacin mayor: 1.
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
****************************************************
Resultado nal:
La pgina tienelas siguientes probabilidades
deser removida dela memoria principal segn
las estrategias consideradas:
Tiempo estimado deno utilizacin mayor: 1.
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
****************************************************
(* Ejemplo depgina con:*)
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 645
(* 20.001- 40.000miliseg. hasta el prximo uso *)
(* 3.001- 6.000miliseg. en memoria principal *)
(* -5.000miliseg. en mem. ppal. sin uso *)
(* 101- 200veces deutilizacin *)
(* no referenciada *)
DatosPagina =
{-1, -2, -3, 4, -5,
-6, -7, 8, -9, -10, -11,
12, -13, -14, -15, -16, -17, -18, -19, -20,
-21, -22, 23, -24, -25,
26, -27, -28};
Paginacion[Prior, Verosimilitudes, DatosPagina]
********************************************
* Anlisis del encuadredela pgina *
* segn las estrategias depaginacin, *
* lo quedeterminar la posibilidad deser *
* desalojada dela memoria principal *
* segn las distintas estrategias. *
********************************************
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: - 5.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.374291
Reposicin LFU - Pgina menos frecuentementeusada: 0.224575
Reposicin LRU - Pgina menos recientementeusada: 0.187146
Reposicin FIFO - Tiempo mayor en memoria principal: 0.149716
Tiempo estimado deno utilizacin mayor: 0.0642722
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 5.000- 10.000miliseg.
646 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin NUR - Pgina no usada recientemente: 0.380215
Reposicin LFU - Pgina menos frecuentementeusada: 0.228129
Reposicin LRU - Pgina menos recientementeusada: 0.190108
Reposicin FIFO - Tiempo mayor en memoria principal: 0.152086
Tiempo estimado deno utilizacin mayor: 0.0494617
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 10.001- 20.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.387771
Reposicin LFU - Pgina menos frecuentementeusada: 0.232663
Reposicin LRU - Pgina menos recientementeusada: 0.193885
Reposicin FIFO - Tiempo mayor en memoria principal: 0.155108
Tiempo estimado deno utilizacin mayor: 0.0305725
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 20.001- 40.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.654242
Reposicin NUR - Pgina no usada recientemente: 0.138303
Reposicin LFU - Pgina menos frecuentementeusada: 0.0829818
Reposicin LRU - Pgina menos recientementeusada: 0.0691515
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0553212
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: +40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.365108
Reposicin LFU - Pgina menos frecuentementeusada: 0.219065
Reposicin LRU - Pgina menos recientementeusada: 0.182554
Reposicin FIFO - Tiempo mayor en memoria principal: 0.146043
Tiempo estimado deno utilizacin mayor: 0.0872295
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: - 1.000miliseg.
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 647
Reposicin NUR - Pgina no usada recientemente: 0.370021
Reposicin LFU - Pgina menos frecuentementeusada: 0.222012
Reposicin LRU - Pgina menos recientementeusada: 0.18501
Reposicin FIFO - Tiempo mayor en memoria principal: 0.134553
Tiempo estimado deno utilizacin mayor: 0.0884032
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 1.000- 3.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.379829
Reposicin LFU - Pgina menos frecuentementeusada: 0.227898
Reposicin LRU - Pgina menos recientementeusada: 0.189915
Reposicin FIFO - Tiempo mayor en memoria principal: 0.111612
Tiempo estimado deno utilizacin mayor: 0.0907466
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 3.001- 6.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.834035
Reposicin NUR - Pgina no usada recientemente: 0.0709581
Reposicin LFU - Pgina menos frecuentementeusada: 0.0425749
Reposicin LRU - Pgina menos recientementeusada: 0.0354791
Tiempo estimado deno utilizacin mayor: 0.0169529
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 6.001- 9.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.670016
Reposicin NUR - Pgina no usada recientemente: 0.141084
Reposicin LFU - Pgina menos frecuentementeusada: 0.0846505
Reposicin LRU - Pgina menos recientementeusada: 0.0705421
Tiempo estimado deno utilizacin mayor: 0.033707
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 9.001- 30.000miliseg.
648 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin NUR - Pgina no usada recientemente: 0.303185
Reposicin FIFO - Tiempo mayor en memoria principal: 0.290877
Reposicin LFU - Pgina menos frecuentementeusada: 0.181911
Reposicin LRU - Pgina menos recientementeusada: 0.151592
Tiempo estimado deno utilizacin mayor: 0.0724351
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: + 30.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.427549
Reposicin LFU - Pgina menos frecuentementeusada: 0.256529
Reposicin LRU - Pgina menos recientementeusada: 0.213774
Tiempo estimado deno utilizacin mayor: 0.102147
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: - 5.000miliseg.
Reposicin LRU - Pgina menos recientementeusada: 0.73111
Reposicin NUR - Pgina no usada recientemente: 0.146222
Reposicin LFU - Pgina menos frecuentementeusada: 0.0877332
Tiempo estimado deno utilizacin mayor: 0.0349345
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 5.000- 10.000miliseg.
Reposicin LRU - Pgina menos recientementeusada: 0.687223
Reposicin NUR - Pgina no usada recientemente: 0.170088
Reposicin LFU - Pgina menos frecuentementeusada: 0.102053
Tiempo estimado deno utilizacin mayor: 0.0406364
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 10.001- 15.000miliseg.
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 649
Reposicin LRU - Pgina menos recientementeusada: 0.608389
Reposicin NUR - Pgina no usada recientemente: 0.212958
Reposicin LFU - Pgina menos frecuentementeusada: 0.127775
Tiempo estimado deno utilizacin mayor: 0.0508786
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 15.001- 20.000miliseg.
Reposicin LRU - Pgina menos recientementeusada: 0.484947
Reposicin NUR - Pgina no usada recientemente: 0.280085
Reposicin LFU - Pgina menos frecuentementeusada: 0.168051
Tiempo estimado deno utilizacin mayor: 0.0669164
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 20.001- 25.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.368545
Reposicin LRU - Pgina menos recientementeusada: 0.322277
Reposicin LFU - Pgina menos frecuentementeusada: 0.221127
Tiempo estimado deno utilizacin mayor: 0.0880507
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 25.001- 30.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.456156
Reposicin LFU - Pgina menos frecuentementeusada: 0.273694
Reposicin LRU - Pgina menos recientementeusada: 0.161167
Tiempo estimado deno utilizacin mayor: 0.108982
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 30.001- 35.000miliseg.
650 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin NUR - Pgina no usada recientemente: 0.51388
Reposicin LFU - Pgina menos frecuentementeusada: 0.308328
Tiempo estimado deno utilizacin mayor: 0.122773
Reposicin LRU - Pgina menos recientementeusada: 0.0550188
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 35.001- 40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.539044
Reposicin LFU - Pgina menos frecuentementeusada: 0.323426
Tiempo estimado deno utilizacin mayor: 0.128785
Reposicin LRU - Pgina menos recientementeusada: 0.00874439
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: + 40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.543799
Reposicin LFU - Pgina menos frecuentementeusada: 0.32628
Tiempo estimado deno utilizacin mayor: 0.129921
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Menos de50veces
Reposicin NUR - Pgina no usada recientemente: 0.807158
Tiempo estimado deno utilizacin mayor: 0.192842
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre50y 100veces
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 651
Reposicin NUR - Pgina no usada recientemente: 0.807158
Tiempo estimado deno utilizacin mayor: 0.192842
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre101y 200veces
Reposicin NUR - Pgina no usada recientemente: 0.807158
Tiempo estimado deno utilizacin mayor: 0.192842
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre201y 300veces
Reposicin NUR - Pgina no usada recientemente: 0.807158
Tiempo estimado deno utilizacin mayor: 0.192842
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Ms de300veces
Reposicin NUR - Pgina no usada recientemente: 0.807158
Tiempo estimado deno utilizacin mayor: 0.192842
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina no referenciada
652 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin NUR - Pgina no usada recientemente: 0.997617
Tiempo estimado deno utilizacin mayor: 0.00238345
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y no modicada
Reposicin NUR - Pgina no usada recientemente: 0.995292
Tiempo estimado deno utilizacin mayor: 0.00470823
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y s modicada
Reposicin NUR - Pgina no usada recientemente: 0.995095
Tiempo estimado deno utilizacin mayor: 0.0049055
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
****************************************************
Resultado nal:
La pgina tienelas siguientes probabilidades
deser removida dela memoria principal segn
las estrategias consideradas:
Reposicin NUR - Pgina no usada recientemente: 0.995095
Tiempo estimado deno utilizacin mayor: 0.0049055
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 653
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
****************************************************
(* Ejemplo depgina con:*)
(* 20.001- 40.000miliseg. hasta el prximo uso *)
(* 3.001- 6.000miliseg. en memoria principal *)
(* -5.000miliseg. en mem. ppal. sin uso *)
(* 101- 200veces deutilizacin *)
(* s referenciada y s modicada *)
DatosPagina =
{-1, -2, -3, 4, -5,
-6, -7, 8, -9, -10, -11,
12, -13, -14, -15, -16, -17, -18, -19, -20,
-21, -22, 23, -24, -25,
-26, -27, 28};
Paginacion[Prior, Verosimilitudes, DatosPagina]
********************************************
* Anlisis del encuadredela pgina *
* segn las estrategias depaginacin, *
* lo quedeterminar la posibilidad deser *
* desalojada dela memoria principal *
* segn las distintas estrategias. *
********************************************
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: - 5.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.374291
Reposicin LFU - Pgina menos frecuentementeusada: 0.224575
Reposicin LRU - Pgina menos recientementeusada: 0.187146
Reposicin FIFO - Tiempo mayor en memoria principal: 0.149716
654 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Tiempo estimado deno utilizacin mayor: 0.0642722
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 5.000- 10.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.380215
Reposicin LFU - Pgina menos frecuentementeusada: 0.228129
Reposicin LRU - Pgina menos recientementeusada: 0.190108
Reposicin FIFO - Tiempo mayor en memoria principal: 0.152086
Tiempo estimado deno utilizacin mayor: 0.0494617
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 10.001- 20.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.387771
Reposicin LFU - Pgina menos frecuentementeusada: 0.232663
Reposicin LRU - Pgina menos recientementeusada: 0.193885
Reposicin FIFO - Tiempo mayor en memoria principal: 0.155108
Tiempo estimado deno utilizacin mayor: 0.0305725
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: 20.001- 40.000miliseg.
Tiempo estimado deno utilizacin mayor: 0.654242
Reposicin NUR - Pgina no usada recientemente: 0.138303
Reposicin LFU - Pgina menos frecuentementeusada: 0.0829818
Reposicin LRU - Pgina menos recientementeusada: 0.0691515
Reposicin FIFO - Tiempo mayor en memoria principal: 0.0553212
Resultados tras la consideracin dela pauta:
Tiempo hasta la prxima utilizacin: +40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.365108
Reposicin LFU - Pgina menos frecuentementeusada: 0.219065
Reposicin LRU - Pgina menos recientementeusada: 0.182554
Reposicin FIFO - Tiempo mayor en memoria principal: 0.146043
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 655
Tiempo estimado deno utilizacin mayor: 0.0872295
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: - 1.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.370021
Reposicin LFU - Pgina menos frecuentementeusada: 0.222012
Reposicin LRU - Pgina menos recientementeusada: 0.18501
Reposicin FIFO - Tiempo mayor en memoria principal: 0.134553
Tiempo estimado deno utilizacin mayor: 0.0884032
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 1.000- 3.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.379829
Reposicin LFU - Pgina menos frecuentementeusada: 0.227898
Reposicin LRU - Pgina menos recientementeusada: 0.189915
Reposicin FIFO - Tiempo mayor en memoria principal: 0.111612
Tiempo estimado deno utilizacin mayor: 0.0907466
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 3.001- 6.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.834035
Reposicin NUR - Pgina no usada recientemente: 0.0709581
Reposicin LFU - Pgina menos frecuentementeusada: 0.0425749
Reposicin LRU - Pgina menos recientementeusada: 0.0354791
Tiempo estimado deno utilizacin mayor: 0.0169529
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 6.001- 9.000miliseg.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.670016
Reposicin NUR - Pgina no usada recientemente: 0.141084
Reposicin LFU - Pgina menos frecuentementeusada: 0.0846505
Reposicin LRU - Pgina menos recientementeusada: 0.0705421
656 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Tiempo estimado deno utilizacin mayor: 0.033707
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: 9.001- 30.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.303185
Reposicin FIFO - Tiempo mayor en memoria principal: 0.290877
Reposicin LFU - Pgina menos frecuentementeusada: 0.181911
Reposicin LRU - Pgina menos recientementeusada: 0.151592
Tiempo estimado deno utilizacin mayor: 0.0724351
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal.: + 30.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.427549
Reposicin LFU - Pgina menos frecuentementeusada: 0.256529
Reposicin LRU - Pgina menos recientementeusada: 0.213774
Tiempo estimado deno utilizacin mayor: 0.102147
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: - 5.000miliseg.
Reposicin LRU - Pgina menos recientementeusada: 0.73111
Reposicin NUR - Pgina no usada recientemente: 0.146222
Reposicin LFU - Pgina menos frecuentementeusada: 0.0877332
Tiempo estimado deno utilizacin mayor: 0.0349345
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 5.000- 10.000miliseg.
Reposicin LRU - Pgina menos recientementeusada: 0.687223
Reposicin NUR - Pgina no usada recientemente: 0.170088
Reposicin LFU - Pgina menos frecuentementeusada: 0.102053
Tiempo estimado deno utilizacin mayor: 0.0406364
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 657
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 10.001- 15.000miliseg.
Reposicin LRU - Pgina menos recientementeusada: 0.608389
Reposicin NUR - Pgina no usada recientemente: 0.212958
Reposicin LFU - Pgina menos frecuentementeusada: 0.127775
Tiempo estimado deno utilizacin mayor: 0.0508786
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 15.001- 20.000miliseg.
Reposicin LRU - Pgina menos recientementeusada: 0.484947
Reposicin NUR - Pgina no usada recientemente: 0.280085
Reposicin LFU - Pgina menos frecuentementeusada: 0.168051
Tiempo estimado deno utilizacin mayor: 0.0669164
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 20.001- 25.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.368545
Reposicin LRU - Pgina menos recientementeusada: 0.322277
Reposicin LFU - Pgina menos frecuentementeusada: 0.221127
Tiempo estimado deno utilizacin mayor: 0.0880507
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 25.001- 30.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.456156
Reposicin LFU - Pgina menos frecuentementeusada: 0.273694
Reposicin LRU - Pgina menos recientementeusada: 0.161167
Tiempo estimado deno utilizacin mayor: 0.108982
658 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 30.001- 35.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.51388
Reposicin LFU - Pgina menos frecuentementeusada: 0.308328
Tiempo estimado deno utilizacin mayor: 0.122773
Reposicin LRU - Pgina menos recientementeusada: 0.0550188
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: 35.001- 40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.539044
Reposicin LFU - Pgina menos frecuentementeusada: 0.323426
Tiempo estimado deno utilizacin mayor: 0.128785
Reposicin LRU - Pgina menos recientementeusada: 0.00874439
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Tiempo en mem. ppal. s/ uso: + 40.000miliseg.
Reposicin NUR - Pgina no usada recientemente: 0.543799
Reposicin LFU - Pgina menos frecuentementeusada: 0.32628
Tiempo estimado deno utilizacin mayor: 0.129921
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Menos de50veces
Reposicin NUR - Pgina no usada recientemente: 0.807158
Tiempo estimado deno utilizacin mayor: 0.192842
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 659
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre50y 100veces
Reposicin NUR - Pgina no usada recientemente: 0.807158
Tiempo estimado deno utilizacin mayor: 0.192842
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre101y 200veces
Reposicin NUR - Pgina no usada recientemente: 0.807158
Tiempo estimado deno utilizacin mayor: 0.192842
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Entre201y 300veces
Reposicin NUR - Pgina no usada recientemente: 0.807158
Tiempo estimado deno utilizacin mayor: 0.192842
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Intensidad deutilizacin dela pgina: Ms de300veces
Reposicin NUR - Pgina no usada recientemente: 0.807158
Tiempo estimado deno utilizacin mayor: 0.192842
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
660 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina no referenciada
Tiempo estimado deno utilizacin mayor: 1.
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y no modicada
Tiempo estimado deno utilizacin mayor: 1.
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
Resultados tras la consideracin dela pauta:
Pgina s referenciada y s modicada
Tiempo estimado deno utilizacin mayor: 1.
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
****************************************************
Resultado nal:
La pgina tienelas siguientes probabilidades
deser removida dela memoria principal segn
las estrategias consideradas:
Tiempo estimado deno utilizacin mayor: 1.
23.1. PROGRAMAS DESARROLLADOS Y DATOS Y EJ ECUCIONES 661
Reposicin NUR - Pgina no usada recientemente: 0.
Reposicin LRU - Pgina menos recientementeusada: 0.
Reposicin LFU - Pgina menos frecuentementeusada: 0.
Reposicin FIFO - Tiempo mayor en memoria principal: 0.
****************************************************
662 CAPTULO 23. PAGINACIN DE MEMORIA VIRTUAL CON S. E.
Captulo 24
Anlisis del Rendimiento de un
Subsistema de Disco de Una
Peticin a la Vez con Mathematica
24.1 Datos y Ejecuciones
Contenido del archivo Colas1en.ma:
<<ExamplesColas1pn
? Colas1pn
Colas1pn[mu,lambda,i]
Anlisis del rendimiento de un subsistema de disco que solo puede dar servicio a una
peticin a la vez.
Colocar los valores mximos para mu, lambda y el nmero depeticiones pendientes.
Colas1pn[20,10,3]
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 1., 0.1}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.9, 0.09, 0.009, 0.0009}}
El promedio depeticiones pendientes es el siguiente:
663
664 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
0.111111
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 3., 0.3}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.7, 0.21, 0.063, 0.0189}}
El promedio depeticiones pendientes es el siguiente:
0.428571
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 5., 0.5}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.5, 0.25, 0.125, 0.0625}}
El promedio depeticiones pendientes es el siguiente:
1.
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
24.1. DATOS Y EJ ECUCIONES 665
{10., 7., 0.7}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.3, 0.21, 0.147, 0.1029}}
El promedio depeticiones pendientes es el siguiente:
2.33333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 9., 0.9}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.1, 0.09, 0.081, 0.0729}}
El promedio depeticiones pendientes es el siguiente:
9.
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 1., 0.05}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.95, 0.0475, 0.002375, 0.00011875}}
El promedio depeticiones pendientes es el siguiente:
0.0526316
666 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 3., 0.15}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.85, 0.1275, 0.019125, 0.00286875}}
El promedio depeticiones pendientes es el siguiente:
0.176471
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 5., 0.25}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.75, 0.1875, 0.046875, 0.0117188}}
El promedio depeticiones pendientes es el siguiente:
0.333333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 7., 0.35}
24.1. DATOS Y EJ ECUCIONES 667
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.65, 0.2275, 0.079625, 0.0278688}}
El promedio depeticiones pendientes es el siguiente:
0.538462
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 9., 0.45}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.55, 0.2475, 0.111375, 0.0501187}}
El promedio depeticiones pendientes es el siguiente:
0.818182
******************************
*****************************
******* Resmen nal *******
*****************************
Lista decoecientes lambda/ mu:
{0.1, 0.3, 0.5, 0.7, 0.9, 0.05, 0.15, 0.25, 0.35, 0.45}
Promedio depeticiones pendientes para cada coeciente:
{0.111111, 0.428571, 1., 2.33333, 9., 0.0526316, 0.176471, 0.333333, 0.538462, 0.818182}
Pares (coecientes,promedio):
{{0.1, 0.111111}, {0.3, 0.428571}, {0.5, 1.}, {0.7, 2.33333}, {0.9, 9.}, {0.05, 0.0526316},
{0.15, 0.176471}, {0.25, 0.333333}, {0.35, 0.538462}, {0.45, 0.818182}}
Grcodepromediodepeticionespendientesparacadacoecientey Anlisisderegresin
lineal:
668 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
Figura~24.1: Promedio depeticiones pendientes.
{StatisticsLinearRegressionBestFit ->
-0.706132+12.4786x - 41.07x
2
+ 43.3673x
3
,
StatisticsLinearRegressionBestFitCoecients ->
{-0.706132, 12.4786, -41.07, 43.3673}}
Colas1pn[40,20,7]
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 1., 0.1}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.9, 0.09, 0.009, 0.0009, 0.00009, 9. 10
6
, 9. 10
7
, 9. 10
8
}}
El promedio depeticiones pendientes es el siguiente:
0.111111
24.1. DATOS Y EJ ECUCIONES 669
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 3., 0.3}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.7, 0.21, 0.063, 0.0189, 0.00567, 0.001701, 0.0005103, 0.00015309}}
El promedio depeticiones pendientes es el siguiente:
0.428571
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 5., 0.5}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.5, 0.25, 0.125, 0.0625, 0.03125, 0.015625, 0.0078125, 0.00390625}}
El promedio depeticiones pendientes es el siguiente:
1.
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 7., 0.7}
670 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.3, 0.21, 0.147, 0.1029, 0.07203, 0.050421, 0.0352947, 0.0247063}}
El promedio depeticiones pendientes es el siguiente:
2.33333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 9., 0.9}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.1, 0.09, 0.081, 0.0729, 0.06561, 0.059049, 0.0531441, 0.0478297}}
El promedio depeticiones pendientes es el siguiente:
9.
******************************
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 1., 0.05}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
24.1. DATOS Y EJ ECUCIONES 671
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.95, 0.0475, 0.002375, 0.00011875, 5.937510
6
, 2.9687510
7
, 1.4843710
8
, 7.42187
10
10
}}
El promedio depeticiones pendientes es el siguiente:
0.0526316
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 3., 0.15}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.85, 0.1275, 0.019125, 0.00286875, 0.000430312, 0.0000645469, 9.68203 10
6
, 1.4523
10
6
}}
El promedio depeticiones pendientes es el siguiente:
0.176471
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 5., 0.25}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.75, 0.1875, 0.046875, 0.0117188, 0.00292969, 0.000732422, 0.000183105, 0.0000457764}}
El promedio depeticiones pendientes es el siguiente:
0.333333
******************************
672 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 7., 0.35}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.65, 0.2275, 0.079625, 0.0278688, 0.00975406, 0.00341392, 0.00119487, 0.000418205}}
El promedio depeticiones pendientes es el siguiente:
0.538462
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 9., 0.45}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.55, 0.2475, 0.111375, 0.0501187, 0.0225534, 0.010149, 0.00456707, 0.00205518}}
El promedio depeticiones pendientes es el siguiente:
0.818182
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 11., 0.55}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
24.1. DATOS Y EJ ECUCIONES 673
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.45, 0.2475, 0.136125, 0.0748687, 0.0411778, 0.0226478, 0.0124563, 0.00685096}}
El promedio depeticiones pendientes es el siguiente:
1.22222
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 13., 0.65}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.35, 0.2275, 0.147875, 0.0961187, 0.0624772, 0.0406102, 0.0263966, 0.0171578}}
El promedio depeticiones pendientes es el siguiente:
1.85714
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 15., 0.75}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.25, 0.1875, 0.140625, 0.105469, 0.0791016, 0.0593262, 0.0444946, 0.033371}}
El promedio depeticiones pendientes es el siguiente:
3.
******************************
Anlisis del rendimiento deun subsistema dedisco.
674 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 17., 0.85}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.15, 0.1275, 0.108375, 0.0921188, 0.0783009, 0.0665558, 0.0565724, 0.0480866}}
El promedio depeticiones pendientes es el siguiente:
5.66667
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 19., 0.95}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.05, 0.0475, 0.045125, 0.0428688, 0.0407253, 0.038689, 0.0367546, 0.0349169}}
El promedio depeticiones pendientes es el siguiente:
19.
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 1., 0.0333333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
24.1. DATOS Y EJ ECUCIONES 675
{{0.966667, 0.0322222, 0.00107407, 0.0000358025, 1.1934210
6
, 3.9780510
8
, 1.32602
10
9
, 4.4200610
11
}}
El promedio depeticiones pendientes es el siguiente:
0.0344828
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 3., 0.1}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.9, 0.09, 0.009, 0.0009, 0.00009, 9. 10
6
, 9. 10
7
, 9. 10
8
}}
El promedio depeticiones pendientes es el siguiente:
0.111111
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 5., 0.166667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.833333, 0.138889, 0.0231481, 0.00385802, 0.000643004, 0.000107167, 0.0000178612,
2.9768710
6
}}
El promedio depeticiones pendientes es el siguiente:
0.2
******************************
Anlisis del rendimiento deun subsistema dedisco.
676 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 7., 0.233333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.766667, 0.178889, 0.0417407, 0.00973951, 0.00227255, 0.000530262, 0.000123728,
0.0000288698}}
El promedio depeticiones pendientes es el siguiente:
0.304348
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 9., 0.3}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.7, 0.21, 0.063, 0.0189, 0.00567, 0.001701, 0.0005103, 0.00015309}}
El promedio depeticiones pendientes es el siguiente:
0.428571
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 11., 0.366667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
24.1. DATOS Y EJ ECUCIONES 677
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.633333, 0.232222, 0.0851481, 0.031221, 0.0114477, 0.00419749, 0.00153908,
0.000564329}}
El promedio depeticiones pendientes es el siguiente:
0.578947
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 13., 0.433333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.566667, 0.245556, 0.106407, 0.0461099, 0.0199809, 0.00865841, 0.00375198,
0.00162586}}
El promedio depeticiones pendientes es el siguiente:
0.764706
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 15., 0.5}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.5, 0.25, 0.125, 0.0625, 0.03125, 0.015625, 0.0078125, 0.00390625}}
El promedio depeticiones pendientes es el siguiente:
1.
678 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 17., 0.566667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.433333, 0.245556, 0.139148, 0.0788506, 0.044682, 0.0253198, 0.0143479,
0.00813047}}
El promedio depeticiones pendientes es el siguiente:
1.30769
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 19., 0.633333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.366667, 0.232222, 0.147074, 0.0931469, 0.058993, 0.0373623, 0.0236628,
0.0149864}}
El promedio depeticiones pendientes es el siguiente:
1.72727
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
24.1. DATOS Y EJ ECUCIONES 679
Los valores demu, lambda y el coecienteson los siguientes:
{40., 1., 0.025}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.975, 0.024375, 0.000609375, 0.0000152344, 3.80859 10
7
, 9.52148 10
9
, 2.38037
10
10
, 5.9509310
12
}}
El promedio depeticiones pendientes es el siguiente:
0.025641
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 3., 0.075}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.925, 0.069375, 0.00520313, 0.000390234, 0.0000292676, 2.19507 10
6
, 1.6463 10
7
,
1.2347310
8
}}
El promedio depeticiones pendientes es el siguiente:
0.0810811
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 5., 0.125}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
680 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
{{0.875, 0.109375, 0.0136719, 0.00170898, 0.000213623, 0.0000267029, 3.33786 10
6
,
4.1723310
7
}}
El promedio depeticiones pendientes es el siguiente:
0.142857
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 7., 0.175}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.825, 0.144375, 0.0252656, 0.00442148, 0.00077376, 0.000135408, 0.0000236964, 4.14687
10
6
}}
El promedio depeticiones pendientes es el siguiente:
0.212121
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 9., 0.225}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.775, 0.174375, 0.0392344, 0.00882773, 0.00198624, 0.000446904, 0.000100553,
0.0000226245}}
El promedio depeticiones pendientes es el siguiente:
0.290323
******************************
24.1. DATOS Y EJ ECUCIONES 681
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 11., 0.275}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.725, 0.199375, 0.0548281, 0.0150777, 0.00414638, 0.00114025, 0.00031357,
0.0000862317}}
El promedio depeticiones pendientes es el siguiente:
0.37931
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 13., 0.325}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.675, 0.219375, 0.0712969, 0.0231715, 0.00753073, 0.00244749, 0.000795434,
0.000258516}}
El promedio depeticiones pendientes es el siguiente:
0.481481
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
682 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
{40., 15., 0.375}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.625, 0.234375, 0.0878906, 0.032959, 0.0123596, 0.00463486, 0.00173807,
0.000651777}}
El promedio depeticiones pendientes es el siguiente:
0.6
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 17., 0.425}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.575, 0.244375, 0.103859, 0.0441402, 0.0187596, 0.00797283, 0.00338845,
0.00144009}}
El promedio depeticiones pendientes es el siguiente:
0.73913
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 19., 0.475}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.525, 0.249375, 0.118453, 0.0562652, 0.026726, 0.0126948, 0.00603005, 0.00286427}}
24.1. DATOS Y EJ ECUCIONES 683
El promedio depeticiones pendientes es el siguiente:
0.904762
******************************
*****************************
******* Resmen nal *******
*****************************
Lista decoecientes lambda/ mu:
{0.1, 0.3, 0.5, 0.7, 0.9, 0.05, 0.15, 0.25, 0.35, 0.45, 0.55, 0.65, 0.75, 0.85, 0.95, 0.0333333,
0.1, 0.166667, 0.233333, 0.3, 0.366667, 0.433333, 0.5, 0.566667, 0.633333, 0.025,
0.075, 0.125, 0.175, 0.225, 0.275, 0.325, 0.375, 0.425, 0.475}
Promedio depeticiones pendientes para cada coeciente:
{0.111111, 0.428571, 1., 2.33333, 9., 0.0526316, 0.176471, 0.333333, 0.538462, 0.818182,
1.22222, 1.85714, 3., 5.66667, 19., 0.0344828, 0.111111, 0.2, 0.304348, 0.428571,
0.578947, 0.764706, 1., 1.30769, 1.72727, 0.025641, 0.0810811, 0.142857, 0.212121,
0.290323, 0.37931, 0.481481, 0.6, 0.73913, 0.904762}
Pares (coecientes,promedio):
{{0.1, 0.111111}, {0.3, 0.428571}, {0.5, 1.}, {0.7, 2.33333}, {0.9, 9.}, {0.05, 0.0526316},
{0.15, 0.176471}, {0.25, 0.333333}, {0.35, 0.538462}, {0.45, 0.818182},
{0.55, 1.22222}, {0.65, 1.85714}, {0.75, 3.}, {0.85, 5.66667}, {0.95, 19.},
{0.0333333, 0.0344828}, {0.1, 0.111111}, {0.166667, 0.2}, {0.233333, 0.304348},
{0.3, 0.428571}, {0.366667, 0.578947}, {0.433333, 0.764706}, {0.5, 1.},
{0.566667, 1.30769}, {0.633333, 1.72727}, {0.025, 0.025641}, {0.075, 0.0810811},
{0.125, 0.142857}, {0.175, 0.212121}, {0.225, 0.290323}, {0.275, 0.37931},
{0.325, 0.481481}, {0.375, 0.6}, {0.425, 0.73913}, {0.475, 0.904762}}
Grcodepromediodepeticionespendientesparacadacoecientey Anlisisderegresin
lineal:
{StatisticsLinearRegressionBestFit ->
-1.34974+23.4148x - 77.7456x
2
+ 75.0338x
3
,
StatisticsLinearRegressionBestFitCoecien ts ->
{-1.34974, 23.4148, -77.7456, 75.0338}}
684 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
Figura~24.2: Promedio depeticiones pendientes.
Colas1pn[90,20,5]
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 1., 0.1}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.9, 0.09, 0.009, 0.0009, 0.00009, 9. 10
6
}}
El promedio depeticiones pendientes es el siguiente:
0.111111
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
24.1. DATOS Y EJ ECUCIONES 685
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 3., 0.3}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.7, 0.21, 0.063, 0.0189, 0.00567, 0.001701}}
El promedio depeticiones pendientes es el siguiente:
0.428571
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 5., 0.5}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.5, 0.25, 0.125, 0.0625, 0.03125, 0.015625}}
El promedio depeticiones pendientes es el siguiente:
1.
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 7., 0.7}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.3, 0.21, 0.147, 0.1029, 0.07203, 0.050421}}
686 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
El promedio depeticiones pendientes es el siguiente:
2.33333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 9., 0.9}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.1, 0.09, 0.081, 0.0729, 0.06561, 0.059049}}
El promedio depeticiones pendientes es el siguiente:
9.
******************************
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 1., 0.05}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.95, 0.0475, 0.002375, 0.00011875, 5.937510
6
, 2.9687510
7
}}
El promedio depeticiones pendientes es el siguiente:
24.1. DATOS Y EJ ECUCIONES 687
0.0526316
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 3., 0.15}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.85, 0.1275, 0.019125, 0.00286875, 0.000430312, 0.0000645469}}
El promedio depeticiones pendientes es el siguiente:
0.176471
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 5., 0.25}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.75, 0.1875, 0.046875, 0.0117188, 0.00292969, 0.000732422}}
El promedio depeticiones pendientes es el siguiente:
0.333333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
688 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
{20., 7., 0.35}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.65, 0.2275, 0.079625, 0.0278688, 0.00975406, 0.00341392}}
El promedio depeticiones pendientes es el siguiente:
0.538462
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 9., 0.45}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.55, 0.2475, 0.111375, 0.0501187, 0.0225534, 0.010149}}
El promedio depeticiones pendientes es el siguiente:
0.818182
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 11., 0.55}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.45, 0.2475, 0.136125, 0.0748687, 0.0411778, 0.0226478}}
El promedio depeticiones pendientes es el siguiente:
1.22222
24.1. DATOS Y EJ ECUCIONES 689
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 13., 0.65}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.35, 0.2275, 0.147875, 0.0961187, 0.0624772, 0.0406102}}
El promedio depeticiones pendientes es el siguiente:
1.85714
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 15., 0.75}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.25, 0.1875, 0.140625, 0.105469, 0.0791016, 0.0593262}}
El promedio depeticiones pendientes es el siguiente:
3.
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 17., 0.85}
690 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.15, 0.1275, 0.108375, 0.0921188, 0.0783009, 0.0665558}}
El promedio depeticiones pendientes es el siguiente:
5.66667
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 19., 0.95}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.05, 0.0475, 0.045125, 0.0428688, 0.0407253, 0.038689}}
El promedio depeticiones pendientes es el siguiente:
19.
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 1., 0.0333333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.966667, 0.0322222, 0.00107407, 0.0000358025, 1.1934210
6
, 3.9780510
8
}}
El promedio depeticiones pendientes es el siguiente:
0.0344828
******************************
24.1. DATOS Y EJ ECUCIONES 691
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 3., 0.1}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.9, 0.09, 0.009, 0.0009, 0.00009, 9. 10
6
}}
El promedio depeticiones pendientes es el siguiente:
0.111111
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 5., 0.166667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.833333, 0.138889, 0.0231481, 0.00385802, 0.000643004, 0.000107167}}
El promedio depeticiones pendientes es el siguiente:
0.2
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 7., 0.233333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
692 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.766667, 0.178889, 0.0417407, 0.00973951, 0.00227255, 0.000530262}}
El promedio depeticiones pendientes es el siguiente:
0.304348
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 9., 0.3}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.7, 0.21, 0.063, 0.0189, 0.00567, 0.001701}}
El promedio depeticiones pendientes es el siguiente:
0.428571
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 11., 0.366667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.633333, 0.232222, 0.0851481, 0.031221, 0.0114477, 0.00419749}}
El promedio depeticiones pendientes es el siguiente:
0.578947
******************************
Anlisis del rendimiento deun subsistema dedisco.
24.1. DATOS Y EJ ECUCIONES 693
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 13., 0.433333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.566667, 0.245556, 0.106407, 0.0461099, 0.0199809, 0.00865841}}
El promedio depeticiones pendientes es el siguiente:
0.764706
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 15., 0.5}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.5, 0.25, 0.125, 0.0625, 0.03125, 0.015625}}
El promedio depeticiones pendientes es el siguiente:
1.
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 17., 0.566667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
694 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
{{0.433333, 0.245556, 0.139148, 0.0788506, 0.044682, 0.0253198}}
El promedio depeticiones pendientes es el siguiente:
1.30769
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 19., 0.633333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.366667, 0.232222, 0.147074, 0.0931469, 0.058993, 0.0373623}}
El promedio depeticiones pendientes es el siguiente:
1.72727
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 1., 0.025}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.975, 0.024375, 0.000609375, 0.0000152344, 3.8085910
7
, 9.5214810
9
}}
El promedio depeticiones pendientes es el siguiente:
0.025641
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
24.1. DATOS Y EJ ECUCIONES 695
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 3., 0.075}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.925, 0.069375, 0.00520313, 0.000390234, 0.0000292676, 2.1950710
6
}}
El promedio depeticiones pendientes es el siguiente:
0.0810811
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 5., 0.125}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.875, 0.109375, 0.0136719, 0.00170898, 0.000213623, 0.0000267029}}
El promedio depeticiones pendientes es el siguiente:
0.142857
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 7., 0.175}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.825, 0.144375, 0.0252656, 0.00442148, 0.00077376, 0.000135408}}
696 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
El promedio depeticiones pendientes es el siguiente:
0.212121
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 9., 0.225}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.775, 0.174375, 0.0392344, 0.00882773, 0.00198624, 0.000446904}}
El promedio depeticiones pendientes es el siguiente:
0.290323
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 11., 0.275}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.725, 0.199375, 0.0548281, 0.0150777, 0.00414638, 0.00114025}}
El promedio depeticiones pendientes es el siguiente:
0.37931
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
24.1. DATOS Y EJ ECUCIONES 697
Los valores demu, lambda y el coecienteson los siguientes:
{40., 13., 0.325}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.675, 0.219375, 0.0712969, 0.0231715, 0.00753073, 0.00244749}}
El promedio depeticiones pendientes es el siguiente:
0.481481
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 15., 0.375}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.625, 0.234375, 0.0878906, 0.032959, 0.0123596, 0.00463486}}
El promedio depeticiones pendientes es el siguiente:
0.6
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 17., 0.425}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.575, 0.244375, 0.103859, 0.0441402, 0.0187596, 0.00797283}}
El promedio depeticiones pendientes es el siguiente:
698 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
0.73913
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 19., 0.475}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.525, 0.249375, 0.118453, 0.0562652, 0.026726, 0.0126948}}
El promedio depeticiones pendientes es el siguiente:
0.904762
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 1., 0.02}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.98, 0.0196, 0.000392, 7.8410
6
, 1.56810
7
, 3.13610
9
}}
El promedio depeticiones pendientes es el siguiente:
0.0204082
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
24.1. DATOS Y EJ ECUCIONES 699
{50., 3., 0.06}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.94, 0.0564, 0.003384, 0.00020304, 0.0000121824, 7.3094410
7
}}
El promedio depeticiones pendientes es el siguiente:
0.0638298
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 5., 0.1}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.9, 0.09, 0.009, 0.0009, 0.00009, 9. 10
6
}}
El promedio depeticiones pendientes es el siguiente:
0.111111
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 7., 0.14}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.86, 0.1204, 0.016856, 0.00235984, 0.000330378, 0.0000462529}}
El promedio depeticiones pendientes es el siguiente:
0.162791
700 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 9., 0.18}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.82, 0.1476, 0.026568, 0.00478224, 0.000860803, 0.000154945}}
El promedio depeticiones pendientes es el siguiente:
0.219512
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 11., 0.22}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.78, 0.1716, 0.037752, 0.00830544, 0.0018272, 0.000401983}}
El promedio depeticiones pendientes es el siguiente:
0.282051
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 13., 0.26}
24.1. DATOS Y EJ ECUCIONES 701
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.74, 0.1924, 0.050024, 0.0130062, 0.00338162, 0.000879222}}
El promedio depeticiones pendientes es el siguiente:
0.351351
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 15., 0.3}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.7, 0.21, 0.063, 0.0189, 0.00567, 0.001701}}
El promedio depeticiones pendientes es el siguiente:
0.428571
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 17., 0.34}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.66, 0.2244, 0.076296, 0.0259406, 0.00881982, 0.00299874}}
El promedio depeticiones pendientes es el siguiente:
0.515152
******************************
702 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 19., 0.38}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.62, 0.2356, 0.089528, 0.0340206, 0.0129278, 0.00491258}}
El promedio depeticiones pendientes es el siguiente:
0.612903
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{60., 1., 0.0166667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.983333, 0.0163889, 0.000273148, 4.5524710
6
, 7.5874510
8
, 1.2645710
9
}}
El promedio depeticiones pendientes es el siguiente:
0.0169492
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{60., 3., 0.05}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
24.1. DATOS Y EJ ECUCIONES 703
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.95, 0.0475, 0.002375, 0.00011875, 5.937510
6
, 2.9687510
7
}}
El promedio depeticiones pendientes es el siguiente:
0.0526316
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{60., 5., 0.0833333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.916667, 0.0763889, 0.00636574, 0.000530478, 0.0000442065, 3.6838810
6
}}
El promedio depeticiones pendientes es el siguiente:
0.0909091
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{60., 7., 0.116667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.883333, 0.103056, 0.0120231, 0.0014027, 0.000163648, 0.0000190923}}
El promedio depeticiones pendientes es el siguiente:
0.132075
******************************
Anlisis del rendimiento deun subsistema dedisco.
704 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{60., 9., 0.15}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.85, 0.1275, 0.019125, 0.00286875, 0.000430312, 0.0000645469}}
El promedio depeticiones pendientes es el siguiente:
0.176471
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{60., 11., 0.183333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.816667, 0.149722, 0.0274491, 0.00503233, 0.000922594, 0.000169142}}
El promedio depeticiones pendientes es el siguiente:
0.22449
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{60., 13., 0.216667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
24.1. DATOS Y EJ ECUCIONES 705
{{0.783333, 0.169722, 0.0367731, 0.00796752, 0.0017263, 0.000374031}}
El promedio depeticiones pendientes es el siguiente:
0.276596
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{60., 15., 0.25}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.75, 0.1875, 0.046875, 0.0117188, 0.00292969, 0.000732422}}
El promedio depeticiones pendientes es el siguiente:
0.333333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{60., 17., 0.283333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.716667, 0.203056, 0.0575324, 0.0163008, 0.00461857, 0.0013086}}
El promedio depeticiones pendientes es el siguiente:
0.395349
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
706 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{60., 19., 0.316667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.683333, 0.216389, 0.0685231, 0.021699, 0.00687135, 0.00217593}}
El promedio depeticiones pendientes es el siguiente:
0.463415
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{70., 1., 0.0142857}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.985714, 0.0140816, 0.000201166, 2.873810
6
, 4.1054310
8
, 5.864910
10
}}
El promedio depeticiones pendientes es el siguiente:
0.0144928
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{70., 3., 0.0428571}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.957143, 0.0410204, 0.00175802, 0.0000753436, 3.2290110
6
, 1.3838610
7
}}
24.1. DATOS Y EJ ECUCIONES 707
El promedio depeticiones pendientes es el siguiente:
0.0447761
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{70., 5., 0.0714286}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.928571, 0.0663265, 0.00473761, 0.000338401, 0.0000241715, 1.7265310
6
}}
El promedio depeticiones pendientes es el siguiente:
0.0769231
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{70., 7., 0.1}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.9, 0.09, 0.009, 0.0009, 0.00009, 9. 10
6
}}
El promedio depeticiones pendientes es el siguiente:
0.111111
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
708 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
Los valores demu, lambda y el coecienteson los siguientes:
{70., 9., 0.128571}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.871429, 0.112041, 0.0144052, 0.0018521, 0.000238128, 0.0000306164}}
El promedio depeticiones pendientes es el siguiente:
0.147541
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{70., 11., 0.157143}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.842857, 0.132449, 0.0208134, 0.00327068, 0.000513964, 0.0000807657}}
El promedio depeticiones pendientes es el siguiente:
0.186441
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{70., 13., 0.185714}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.814286, 0.151224, 0.0280845, 0.0052157, 0.00096863, 0.000179888}}
El promedio depeticiones pendientes es el siguiente:
24.1. DATOS Y EJ ECUCIONES 709
0.22807
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{70., 15., 0.214286}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.785714, 0.168367, 0.0360787, 0.00773115, 0.00165668, 0.000355002}}
El promedio depeticiones pendientes es el siguiente:
0.272727
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{70., 17., 0.242857}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.757143, 0.183878, 0.044656, 0.010845, 0.00263379, 0.000639635}}
El promedio depeticiones pendientes es el siguiente:
0.320755
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
710 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
{70., 19., 0.271429}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.728571, 0.197755, 0.0536764, 0.0145693, 0.00395453, 0.00107337}}
El promedio depeticiones pendientes es el siguiente:
0.372549
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 1., 0.0125}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.9875, 0.0123438, 0.000154297, 1.9287110
6
, 2.4108910
8
, 3.0136110
10
}}
El promedio depeticiones pendientes es el siguiente:
0.0126582
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 3., 0.0375}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.9625, 0.0360938, 0.00135352, 0.0000507568, 1.9033810
6
, 7.1376810
8
}}
El promedio depeticiones pendientes es el siguiente:
0.038961
24.1. DATOS Y EJ ECUCIONES 711
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 5., 0.0625}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.9375, 0.0585937, 0.00366211, 0.000228882, 0.0000143051, 8.940710
7
}}
El promedio depeticiones pendientes es el siguiente:
0.0666667
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 7., 0.0875}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.9125, 0.0798437, 0.00698633, 0.000611304, 0.0000534891, 4.6802910
6
}}
El promedio depeticiones pendientes es el siguiente:
0.0958904
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 9., 0.1125}
712 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.8875, 0.0998437, 0.0112324, 0.00126365, 0.00014216, 0.000015993}}
El promedio depeticiones pendientes es el siguiente:
0.126761
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 11., 0.1375}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.8625, 0.118594, 0.0163066, 0.00224216, 0.000308297, 0.0000423909}}
El promedio depeticiones pendientes es el siguiente:
0.15942
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 13., 0.1625}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.8375, 0.136094, 0.0221152, 0.00359373, 0.00058398, 0.0000948968}}
El promedio depeticiones pendientes es el siguiente:
0.19403
******************************
24.1. DATOS Y EJ ECUCIONES 713
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 15., 0.1875}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.8125, 0.152344, 0.0285645, 0.00535583, 0.00100422, 0.000188291}}
El promedio depeticiones pendientes es el siguiente:
0.230769
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 17., 0.2125}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.7875, 0.167344, 0.0355605, 0.00755662, 0.00160578, 0.000341228}}
El promedio depeticiones pendientes es el siguiente:
0.269841
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 19., 0.2375}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
714 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.7625, 0.181094, 0.0430098, 0.0102148, 0.00242602, 0.00057618}}
El promedio depeticiones pendientes es el siguiente:
0.311475
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{90., 1., 0.0111111}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.988889, 0.0109877, 0.000122085, 1.356510
6
, 1.5072210
8
, 1.6746910
10
}}
El promedio depeticiones pendientes es el siguiente:
0.011236
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{90., 3., 0.0333333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.966667, 0.0322222, 0.00107407, 0.0000358025, 1.1934210
6
, 3.9780510
8
}}
El promedio depeticiones pendientes es el siguiente:
0.0344828
******************************
Anlisis del rendimiento deun subsistema dedisco.
24.1. DATOS Y EJ ECUCIONES 715
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{90., 5., 0.0555556}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.944444, 0.0524691, 0.00291495, 0.000161942, 8.9967710
6
, 4.998210
7
}}
El promedio depeticiones pendientes es el siguiente:
0.0588235
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{90., 7., 0.0777778}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.922222, 0.0717284, 0.00557888, 0.000433913, 0.0000337488, 2.624910
6
}}
El promedio depeticiones pendientes es el siguiente:
0.0843373
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{90., 9., 0.1}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
716 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
{{0.9, 0.09, 0.009, 0.0009, 0.00009, 9. 10
6
}}
El promedio depeticiones pendientes es el siguiente:
0.111111
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{90., 11., 0.122222}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.877778, 0.107284, 0.0131125, 0.00160264, 0.000195878, 0.0000239406}}
El promedio depeticiones pendientes es el siguiente:
0.139241
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{90., 13., 0.144444}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.855556, 0.12358, 0.0178505, 0.0025784, 0.000372436, 0.0000537963}}
El promedio depeticiones pendientes es el siguiente:
0.168831
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
24.1. DATOS Y EJ ECUCIONES 717
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{90., 15., 0.166667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.833333, 0.138889, 0.0231481, 0.00385802, 0.000643004, 0.000107167}}
El promedio depeticiones pendientes es el siguiente:
0.2
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{90., 17., 0.188889}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.811111, 0.15321, 0.0289396, 0.00546638, 0.00103254, 0.000195035}}
El promedio depeticiones pendientes es el siguiente:
0.232877
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 1:
El subsistema dedisco solo puededar servicio a una peticin a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{90., 19., 0.211111}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.788889, 0.166543, 0.0351591, 0.00742248, 0.00156697, 0.000330804}}
718 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
El promedio depeticiones pendientes es el siguiente:
0.267606
******************************
*****************************
******* Resmen nal *******
*****************************
Lista decoecientes lambda/ mu:
{0.1, 0.3, 0.5, 0.7, 0.9, 0.05, 0.15, 0.25, 0.35, 0.45, 0.55, 0.65, 0.75, 0.85, 0.95, 0.0333333,
0.1, 0.166667, 0.233333, 0.3, 0.366667, 0.433333, 0.5, 0.566667, 0.633333, 0.025,
0.075, 0.125, 0.175, 0.225, 0.275, 0.325, 0.375, 0.425, 0.475, 0.02, 0.06, 0.1, 0.14,
0.18, 0.22, 0.26, 0.3, 0.34, 0.38, 0.0166667, 0.05, 0.0833333, 0.116667, 0.15, 0.183333,
0.216667, 0.25, 0.283333, 0.316667, 0.0142857, 0.0428571, 0.0714286, 0.1, 0.128571,
0.157143, 0.185714, 0.214286, 0.242857, 0.271429, 0.0125, 0.0375, 0.0625, 0.0875,
0.1125, 0.1375, 0.1625, 0.1875, 0.2125, 0.2375, 0.0111111, 0.0333333, 0.0555556,
0.0777778, 0.1, 0.122222, 0.144444, 0.166667, 0.188889, 0.211111}
Promedio depeticiones pendientes para cada coeciente:
{0.111111, 0.428571, 1., 2.33333, 9., 0.0526316, 0.176471, 0.333333, 0.538462, 0.818182,
1.22222, 1.85714, 3., 5.66667, 19., 0.0344828, 0.111111, 0.2, 0.304348, 0.428571,
0.578947, 0.764706, 1., 1.30769, 1.72727, 0.025641, 0.0810811, 0.142857, 0.212121,
0.290323, 0.37931, 0.481481, 0.6, 0.73913, 0.904762, 0.0204082, 0.0638298, 0.111111,
0.162791, 0.219512, 0.282051, 0.351351, 0.428571, 0.515152, 0.612903, 0.0169492,
0.0526316, 0.0909091, 0.132075, 0.176471, 0.22449, 0.276596, 0.333333, 0.395349,
0.463415, 0.0144928, 0.0447761, 0.0769231, 0.111111, 0.147541, 0.186441, 0.22807,
0.272727, 0.320755, 0.372549, 0.0126582, 0.038961, 0.0666667, 0.0958904, 0.126761,
0.15942, 0.19403, 0.230769, 0.269841, 0.311475, 0.011236, 0.0344828, 0.0588235,
0.0843373, 0.111111, 0.139241, 0.168831, 0.2, 0.232877, 0.267606}
Pares (coecientes,promedio):
{{0.1, 0.111111}, {0.3, 0.428571}, {0.5, 1.}, {0.7, 2.33333}, {0.9, 9.}, {0.05, 0.0526316},
{0.15, 0.176471}, {0.25, 0.333333}, {0.35, 0.538462}, {0.45, 0.818182},
{0.55, 1.22222}, {0.65, 1.85714}, {0.75, 3.}, {0.85, 5.66667}, {0.95, 19.},
{0.0333333, 0.0344828}, {0.1, 0.111111}, {0.166667, 0.2}, {0.233333, 0.304348},
{0.3, 0.428571}, {0.366667, 0.578947}, {0.433333, 0.764706}, {0.5, 1.},
{0.566667, 1.30769}, {0.633333, 1.72727}, {0.025, 0.025641}, {0.075, 0.0810811},
{0.125, 0.142857}, {0.175, 0.212121}, {0.225, 0.290323}, {0.275, 0.37931},
24.1. DATOS Y EJ ECUCIONES 719
{0.325, 0.481481}, {0.375, 0.6}, {0.425, 0.73913}, {0.475, 0.904762},
{0.02, 0.0204082}, {0.06, 0.0638298}, {0.1, 0.111111}, {0.14, 0.162791},
{0.18, 0.219512}, {0.22, 0.282051}, {0.26, 0.351351}, {0.3, 0.428571},
{0.34, 0.515152}, {0.38, 0.612903}, {0.0166667, 0.0169492}, {0.05, 0.0526316},
{0.0833333, 0.0909091}, {0.116667, 0.132075}, {0.15, 0.176471}, {0.183333, 0.22449},
{0.216667, 0.276596}, {0.25, 0.333333}, {0.283333, 0.395349}, {0.316667, 0.463415},
{0.0142857, 0.0144928}, {0.0428571, 0.0447761}, {0.0714286, 0.0769231}, {0.1, 0.111111},
{0.128571, 0.147541}, {0.157143, 0.186441}, {0.185714, 0.22807}, {0.214286, 0.272727},
{0.242857, 0.320755}, {0.271429, 0.372549}, {0.0125, 0.0126582}, {0.0375, 0.038961},
{0.0625, 0.0666667}, {0.0875, 0.0958904}, {0.1125, 0.126761}, {0.1375, 0.15942},
{0.1625, 0.19403}, {0.1875, 0.230769}, {0.2125, 0.269841}, {0.2375, 0.311475},
{0.0111111, 0.011236}, {0.0333333, 0.0344828}, {0.0555556, 0.0588235},
{0.0777778, 0.0843373}, {0.1, 0.111111}, {0.122222, 0.139241},
{0.144444, 0.168831}, {0.166667, 0.2}, {0.188889, 0.232877},
{0.211111, 0.267606}}
Grcodepromediodepeticionespendientesparacadacoecientey Anlisisderegresin
lineal:
{StatisticsLinearRegressionBestFit ->
-0.639719+ 14.0473x - 53.7404x
2
+ 58.8354x
3
StatisticsLinearRegressionBestFitCoecien ts ->
{-0.639719, 14.0473, -53.7404, 58.8354}}
Colas1pn[10,20,3]
Throw[Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.]
Colas1pn[10,90,9]
Throw[Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.]
720 CAPTULO 24. SUBSISTEMA DE DISCO DE UNA PETICIN
Figura~24.3: Promedio depeticiones pendientes.
Captulo 25
Anlisis del Rendimiento de un
Subsistema de Disco de Varias
Peticiones a la Vez con
Mathematica
25.1 Datos y Ejecuciones
Contenido del archivo Colas2en.ma:
<<ExamplesColas2pn
? Colas2pn
Colas2pn[mu,lambda,i] Anlisisdel rendimientodeun subsistemadediscoquepuededar
servicio a ms deuna peticin a la vez.
Colocar los valores mximos para mu, lambda y el nmero depeticiones pendientes.
Colas2pn[20,10,3]
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 1., 0.1}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.904837, 0.0904837, 0.00452419, 0.000150806}}
721
722 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
El promedio depeticiones pendientes es el siguiente:
0.1
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 3., 0.3}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.740818, 0.222245, 0.0333368, 0.00333368}}
El promedio depeticiones pendientes es el siguiente:
0.3
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 5., 0.5}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.606531, 0.303265, 0.0758163, 0.0126361}}
El promedio depeticiones pendientes es el siguiente:
0.5
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
25.1. DATOS Y EJ ECUCIONES 723
Los valores demu, lambda y el coecienteson los siguientes:
{10., 7., 0.7}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.496585, 0.34761, 0.121663, 0.0283881}}
El promedio depeticiones pendientes es el siguiente:
0.7
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 9., 0.9}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.40657, 0.365913, 0.164661, 0.0493982}}
El promedio depeticiones pendientes es el siguiente:
0.9
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 1., 0.05}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.951229, 0.0475615, 0.00118904, 0.0000198173}}
El promedio depeticiones pendientes es el siguiente:
724 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
0.05
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 3., 0.15}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.860708, 0.129106, 0.00968296, 0.000484148}}
El promedio depeticiones pendientes es el siguiente:
0.15
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 5., 0.25}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.778801, 0.1947, 0.0243375, 0.00202813}}
El promedio depeticiones pendientes es el siguiente:
0.25
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
25.1. DATOS Y EJ ECUCIONES 725
{20., 7., 0.35}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.704688, 0.246641, 0.0431621, 0.00503558}}
El promedio depeticiones pendientes es el siguiente:
0.35
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 9., 0.45}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.637628, 0.286933, 0.0645599, 0.00968398}}
El promedio depeticiones pendientes es el siguiente:
0.45
******************************
*****************************
******* Resmen nal *******
*****************************
Lista decoecientes lambda/ mu:
{0.1, 0.3, 0.5, 0.7, 0.9, 0.05, 0.15, 0.25, 0.35, 0.45}
Promedio depeticiones pendientes para cada coeciente:
{0.1, 0.3, 0.5, 0.7, 0.9, 0.05, 0.15, 0.25, 0.35, 0.45}
Pares (coecientes,promedio):
{{0.1, 0.1}, {0.3, 0.3}, {0.5, 0.5}, {0.7, 0.7}, {0.9, 0.9}, {0.05, 0.05},
{0.15, 0.15}, {0.25, 0.25}, {0.35, 0.35}, {0.45, 0.45}}
726 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
Figura~25.1: Promedio depeticiones pendientes.
GrcodepromediodepeticionespendientesparacadacoecienteyAnlisisderegresin
lineal:
{StatisticsLinearRegressionBestFit ->
-2.3798210
17
+ 1. x,
StatisticsLinearRegressionBestFitCoecients ->
{-2.3798210
17
, 1.}}
Colas2pn[40,20,7]
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 1., 0.1}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
25.1. DATOS Y EJ ECUCIONES 727
{{0.904837, 0.0904837, 0.00452419, 0.000150806, 3.77016 10
6
, 7.54031 10
8
, 1.25672
10
9
, 1.7953110
11
}}
El promedio depeticiones pendientes es el siguiente:
0.1
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 3., 0.3}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.740818, 0.222245, 0.0333368, 0.00333368, 0.000250026, 0.0000150016, 7.5007810
7
,
3.2146210
8
}}
El promedio depeticiones pendientes es el siguiente:
0.3
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 5., 0.5}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.606531, 0.303265, 0.0758163, 0.0126361, 0.00157951, 0.000157951, 0.0000131626, 9.40183
10
7
}}
El promedio depeticiones pendientes es el siguiente:
0.5
******************************
728 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 7., 0.7}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.496585, 0.34761, 0.121663, 0.0283881, 0.00496792, 0.000695509, 0.0000811427, 8.11427
10
6
}}
El promedio depeticiones pendientes es el siguiente:
0.7
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 9., 0.9}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.40657, 0.365913, 0.164661, 0.0493982, 0.0111146, 0.00200063,
0.000300094, 0.0000385835}}
El promedio depeticiones pendientes es el siguiente:
0.9
******************************
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
25.1. DATOS Y EJ ECUCIONES 729
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 1., 0.05}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.951229, 0.0475615, 0.00118904, 0.0000198173, 2.47716 10
7
, 2.47716 10
9
, 2.0643
10
11
, 1.474510
13
}}
El promedio depeticiones pendientes es el siguiente:
0.05
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 3., 0.15}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.860708, 0.129106, 0.00968296, 0.000484148, 0.0000181556, 5.44667 10
7
, 1.36167
10
8
, 2.9178610
10
}}
El promedio depeticiones pendientes es el siguiente:
0.15
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 5., 0.25}
730 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.778801, 0.1947, 0.0243375, 0.00202813, 0.000126758, 6.3379 10
6
, 2.64079 10
7
,
9.4313910
9
}}
El promedio depeticiones pendientes es el siguiente:
0.25
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 7., 0.35}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.704688, 0.246641, 0.0431621, 0.00503558, 0.000440614, 0.0000308429, 1.7991710
6
,
8.9958610
8
}}
El promedio depeticiones pendientes es el siguiente:
0.35
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 9., 0.45}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.637628, 0.286933, 0.0645599, 0.00968398, 0.00108945, 0.0000980503, 7.35377 10
6
,
4.7274210
7
}}
El promedio depeticiones pendientes es el siguiente:
25.1. DATOS Y EJ ECUCIONES 731
0.45
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 11., 0.55}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.57695, 0.317322, 0.0872637, 0.0159983, 0.00219977, 0.000241975, 0.000022181, 1.7428
10
6
}}
El promedio depeticiones pendientes es el siguiente:
0.55
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 13., 0.65}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.522046, 0.33933, 0.110282, 0.0238945, 0.00388285, 0.000504771, 0.0000546835, 5.07775
10
6
}}
El promedio depeticiones pendientes es el siguiente:
0.65
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
732 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
Los valores demu, lambda y el coecienteson los siguientes:
{20., 15., 0.75}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.472367, 0.354275, 0.132853, 0.0332133, 0.00622749, 0.000934123,
0.000116765, 0.0000125106}}
El promedio depeticiones pendientes es el siguiente:
0.75
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 17., 0.85}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.427415, 0.363303, 0.154404, 0.0437477, 0.00929639, 0.00158039,
0.000223888, 0.0000271864}}
El promedio depeticiones pendientes es el siguiente:
0.85
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 19., 0.95}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
25.1. DATOS Y EJ ECUCIONES 733
{{0.386741, 0.367404, 0.174517, 0.0552637, 0.0131251, 0.00249377,
0.000394847, 0.0000535864}}
El promedio depeticiones pendientes es el siguiente:
0.95
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 1., 0.0333333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.967216, 0.0322405, 0.000537342, 5.9704710
6
, 4.9753910
8
, 3.3169310
10
, 1.84274
10
12
, 8.7749410
15
}}
El promedio depeticiones pendientes es el siguiente:
0.0333333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 3., 0.1}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.904837, 0.0904837, 0.00452419, 0.000150806, 3.77016 10
6
, 7.54031 10
8
, 1.25672
10
9
, 1.7953110
11
}}
El promedio depeticiones pendientes es el siguiente:
0.1
******************************
734 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 5., 0.166667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.846482, 0.14108, 0.0117567, 0.000653149, 0.0000272146, 9.0715210
7
, 2.5198710
8
, 5.9996810
10
}}
El promedio depeticiones pendientes es el siguiente:
0.166667
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 7., 0.233333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.79189, 0.184774, 0.021557, 0.00167666, 0.0000978049, 4.5642310
6
, 1.77498 10
7
,
5.9165910
9
}}
El promedio depeticiones pendientes es el siguiente:
0.233333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 9., 0.3}
25.1. DATOS Y EJ ECUCIONES 735
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.740818, 0.222245, 0.0333368, 0.00333368, 0.000250026, 0.0000150016, 7.5007810
7
,
3.2146210
8
}}
El promedio depeticiones pendientes es el siguiente:
0.3
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 11., 0.366667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.693041, 0.254115, 0.0465877, 0.00569406, 0.000521955, 0.0000382767, 2.3391310
6
,
1.2252610
7
}}
El promedio depeticiones pendientes es el siguiente:
0.366667
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 13., 0.433333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.648344, 0.280949, 0.0608723, 0.00879267, 0.000952539, 0.0000825534, 5.9621910
6
,
3.6908810
7
}}
El promedio depeticiones pendientes es el siguiente:
736 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
0.433333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 15., 0.5}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.606531, 0.303265, 0.0758163, 0.0126361, 0.00157951, 0.000157951, 0.0000131626, 9.40183
10
7
}}
El promedio depeticiones pendientes es el siguiente:
0.5
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 17., 0.566667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.567414, 0.321534, 0.0911014, 0.017208, 0.00243781, 0.000276285, 0.0000260936, 2.11234
10
6
}}
El promedio depeticiones pendientes es el siguiente:
0.566667
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
25.1. DATOS Y EJ ECUCIONES 737
Los valores demu, lambda y el coecienteson los siguientes:
{30., 19., 0.633333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.530819, 0.336186, 0.106459, 0.0224746, 0.00355848, 0.000450741, 0.0000475782, 4.3047
10
6
}}
El promedio depeticiones pendientes es el siguiente:
0.633333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 1., 0.025}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.97531, 0.0243827, 0.000304784, 2.5398710
6
, 1.5874210
8
, 7.9370910
11
, 3.30712
10
13
, 1.1811110
15
}}
El promedio depeticiones pendientes es el siguiente:
0.025
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 3., 0.075}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
738 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
{{0.927743, 0.0695808, 0.00260928, 0.000065232, 1.2231 10
6
, 1.83465 10
8
, 2.29331
10
10
, 2.4571210
12
}}
El promedio depeticiones pendientes es el siguiente:
0.075
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 5., 0.125}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.882497, 0.110312, 0.00689451, 0.000287271, 8.97722 10
6
, 2.24431 10
7
, 4.67564
10
9
, 8.3493510
11
}}
El promedio depeticiones pendientes es el siguiente:
0.125
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 7., 0.175}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.839457, 0.146905, 0.0128542, 0.000749827, 0.000032805, 1.1481710
6
, 3.3488410
8
, 8.372110
10
}}
El promedio depeticiones pendientes es el siguiente:
0.175
******************************
25.1. DATOS Y EJ ECUCIONES 739
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 9., 0.225}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.798516, 0.179666, 0.0202124, 0.00151593, 0.0000852712, 3.8372110
6
, 1.4389510
7
, 4.625210
9
}}
El promedio depeticiones pendientes es el siguiente:
0.225
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 11., 0.275}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.759572, 0.208882, 0.0287213, 0.00263279, 0.000181004, 9.95523 10
6
, 4.56281 10
7
, 1.7925310
8
}}
El promedio depeticiones pendientes es el siguiente:
0.275
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 13., 0.325}
740 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.722527, 0.234821, 0.0381585, 0.00413383, 0.000335874, 0.0000218318, 1.1825610
6
,
5.4904410
8
}}
El promedio depeticiones pendientes es el siguiente:
0.325
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 15., 0.375}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.687289, 0.257733, 0.048325, 0.00604063, 0.000566309, 0.0000424732, 2.65457 10
6
,
1.4220910
7
}}
El promedio depeticiones pendientes es el siguiente:
0.375
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 17., 0.425}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.65377, 0.277852, 0.0590436, 0.00836451, 0.000888729, 0.000075542, 5.35089 10
6
,
3.2487510
7
}}
El promedio depeticiones pendientes es el siguiente:
25.1. DATOS Y EJ ECUCIONES 741
0.425
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 19., 0.475}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.621885, 0.295395, 0.0701564, 0.0111081, 0.00131909, 0.000125313, 9.92063 10
6
,
6.7318610
7
}}
El promedio depeticiones pendientes es el siguiente:
0.475
******************************
*****************************
******* Resmen nal *******
*****************************
Lista decoecientes lambda/ mu:
{0.1, 0.3, 0.5, 0.7, 0.9, 0.05, 0.15, 0.25, 0.35, 0.45, 0.55, 0.65, 0.75, 0.85, 0.95, 0.0333333,
0.1, 0.166667, 0.233333, 0.3, 0.366667, 0.433333, 0.5, 0.566667, 0.633333, 0.025,
0.075, 0.125, 0.175, 0.225, 0.275, 0.325, 0.375, 0.425, 0.475}
Promedio depeticiones pendientes para cada coeciente:
{0.1, 0.3, 0.5, 0.7, 0.9, 0.05, 0.15, 0.25, 0.35, 0.45, 0.55, 0.65, 0.75, 0.85, 0.95, 0.0333333,
0.1, 0.166667, 0.233333, 0.3, 0.366667, 0.433333, 0.5, 0.566667, 0.633333, 0.025,
0.075, 0.125, 0.175, 0.225, 0.275, 0.325, 0.375, 0.425, 0.475}
Pares (coecientes,promedio):
{{0.1, 0.1}, {0.3, 0.3}, {0.5, 0.5}, {0.7, 0.7}, {0.9, 0.9}, {0.05, 0.05}, {0.15, 0.15},
{0.25, 0.25}, {0.35, 0.35}, {0.45, 0.45}, {0.55, 0.55}, {0.65, 0.65}, {0.75, 0.75},
{0.85, 0.85}, {0.95, 0.95}, {0.0333333, 0.0333333}, {0.1, 0.1},
{0.166667, 0.166667}, {0.233333, 0.233333}, {0.3, 0.3}, {0.366667, 0.366667},
742 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
Figura~25.2: Promedio depeticiones pendientes.
{0.433333, 0.433333}, {0.5, 0.5}, {0.566667, 0.566667}, {0.633333, 0.633333},
{0.025, 0.025}, {0.075, 0.075}, {0.125, 0.125}, {0.175, 0.175}, {0.225, 0.225},
{0.275, 0.275}, {0.325, 0.325}, {0.375, 0.375}, {0.425, 0.425}, {0.475, 0.475}}
GrcodepromediodepeticionespendientesparacadacoecienteyAnlisisderegresin
lineal:
{StatisticsLinearRegressionBestFit ->
-1.3392610
16
+ 1. x,
StatisticsLinearRegressionBestFitCoecients ->
{-1.3392610
16
, 1.}}
Colas2pn[90,20,5]
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
25.1. DATOS Y EJ ECUCIONES 743
{10., 1., 0.1}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.904837, 0.0904837, 0.00452419, 0.000150806, 3.7701610
6
, 7.5403110
8
}}
El promedio depeticiones pendientes es el siguiente:
0.1
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 3., 0.3}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.740818, 0.222245, 0.0333368, 0.00333368, 0.000250026, 0.0000150016}}
El promedio depeticiones pendientes es el siguiente:
0.3
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 5., 0.5}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.606531, 0.303265, 0.0758163, 0.0126361, 0.00157951, 0.000157951}}
El promedio depeticiones pendientes es el siguiente:
0.5
744 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 7., 0.7}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.496585, 0.34761, 0.121663, 0.0283881, 0.00496792, 0.000695509}}
El promedio depeticiones pendientes es el siguiente:
0.7
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{10., 9., 0.9}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.40657, 0.365913, 0.164661, 0.0493982, 0.0111146, 0.00200063}}
El promedio depeticiones pendientes es el siguiente:
0.9
******************************
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.
25.1. DATOS Y EJ ECUCIONES 745
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 1., 0.05}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.951229, 0.0475615, 0.00118904, 0.0000198173, 2.4771610
7
, 2.4771610
9
}}
El promedio depeticiones pendientes es el siguiente:
0.05
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 3., 0.15}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.860708, 0.129106, 0.00968296, 0.000484148, 0.0000181556, 5.4466710
7
}}
El promedio depeticiones pendientes es el siguiente:
0.15
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 5., 0.25}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
746 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.778801, 0.1947, 0.0243375, 0.00202813, 0.000126758, 6.337910
6
}}
El promedio depeticiones pendientes es el siguiente:
0.25
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 7., 0.35}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.704688, 0.246641, 0.0431621, 0.00503558, 0.000440614, 0.0000308429}}
El promedio depeticiones pendientes es el siguiente:
0.35
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 9., 0.45}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.637628, 0.286933, 0.0645599, 0.00968398, 0.00108945, 0.0000980503}}
El promedio depeticiones pendientes es el siguiente:
0.45
******************************
Anlisis del rendimiento deun subsistema dedisco.
25.1. DATOS Y EJ ECUCIONES 747
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 11., 0.55}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.57695, 0.317322, 0.0872637, 0.0159983, 0.00219977, 0.000241975}}
El promedio depeticiones pendientes es el siguiente:
0.55
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 13., 0.65}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.522046, 0.33933, 0.110282, 0.0238945, 0.00388285, 0.000504771}}
El promedio depeticiones pendientes es el siguiente:
0.65
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 15., 0.75}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
748 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
{{0.472367, 0.354275, 0.132853, 0.0332133, 0.00622749, 0.000934123}}
El promedio depeticiones pendientes es el siguiente:
0.75
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 17., 0.85}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.427415, 0.363303, 0.154404, 0.0437477, 0.00929639, 0.00158039}}
El promedio depeticiones pendientes es el siguiente:
0.85
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{20., 19., 0.95}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.386741, 0.367404, 0.174517, 0.0552637, 0.0131251, 0.00249377}}
El promedio depeticiones pendientes es el siguiente:
0.95
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
25.1. DATOS Y EJ ECUCIONES 749
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 1., 0.0333333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.967216, 0.0322405, 0.000537342, 5.9704710
6
, 4.9753910
8
, 3.3169310
10
}}
El promedio depeticiones pendientes es el siguiente:
0.0333333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 3., 0.1}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.904837, 0.0904837, 0.00452419, 0.000150806, 3.7701610
6
, 7.5403110
8
}}
El promedio depeticiones pendientes es el siguiente:
0.1
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 5., 0.166667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.846482, 0.14108, 0.0117567, 0.000653149, 0.0000272146, 9.0715210
7
}}
750 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
El promedio depeticiones pendientes es el siguiente:
0.166667
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 7., 0.233333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.79189, 0.184774, 0.021557, 0.00167666, 0.0000978049, 4.5642310
6
}}
El promedio depeticiones pendientes es el siguiente:
0.233333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 9., 0.3}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.740818, 0.222245, 0.0333368, 0.00333368, 0.000250026, 0.0000150016}}
El promedio depeticiones pendientes es el siguiente:
0.3
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
25.1. DATOS Y EJ ECUCIONES 751
Los valores demu, lambda y el coecienteson los siguientes:
{30., 11., 0.366667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.693041, 0.254115, 0.0465877, 0.00569406, 0.000521955, 0.0000382767}}
El promedio depeticiones pendientes es el siguiente:
0.366667
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 13., 0.433333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.648344, 0.280949, 0.0608723, 0.00879267, 0.000952539, 0.0000825534}}
El promedio depeticiones pendientes es el siguiente:
0.433333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 15., 0.5}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.606531, 0.303265, 0.0758163, 0.0126361, 0.00157951, 0.000157951}}
El promedio depeticiones pendientes es el siguiente:
752 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
0.5
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 17., 0.566667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.567414, 0.321534, 0.0911014, 0.017208, 0.00243781, 0.000276285}}
El promedio depeticiones pendientes es el siguiente:
0.566667
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{30., 19., 0.633333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.530819, 0.336186, 0.106459, 0.0224746, 0.00355848, 0.000450741}}
El promedio depeticiones pendientes es el siguiente:
0.633333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
25.1. DATOS Y EJ ECUCIONES 753
{40., 1., 0.025}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.97531, 0.0243827, 0.000304784, 2.5398710
6
, 1.5874210
8
, 7.9370910
11
}}
El promedio depeticiones pendientes es el siguiente:
0.025
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 3., 0.075}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.927743, 0.0695808, 0.00260928, 0.000065232, 1.223110
6
, 1.8346510
8
}}
El promedio depeticiones pendientes es el siguiente:
0.075
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 5., 0.125}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.882497, 0.110312, 0.00689451, 0.000287271, 8.9772210
6
, 2.2443110
7
}}
El promedio depeticiones pendientes es el siguiente:
0.125
754 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 7., 0.175}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.839457, 0.146905, 0.0128542, 0.000749827, 0.000032805, 1.1481710
6
}}
El promedio depeticiones pendientes es el siguiente:
0.175
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 9., 0.225}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.798516, 0.179666, 0.0202124, 0.00151593, 0.0000852712, 3.8372110
6
}}
El promedio depeticiones pendientes es el siguiente:
0.225
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 11., 0.275}
25.1. DATOS Y EJ ECUCIONES 755
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.759572, 0.208882, 0.0287213, 0.00263279, 0.000181004, 9.9552310
6
}}
El promedio depeticiones pendientes es el siguiente:
0.275
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 13., 0.325}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.722527, 0.234821, 0.0381585, 0.00413383, 0.000335874, 0.0000218318}}
El promedio depeticiones pendientes es el siguiente:
0.325
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 15., 0.375}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.687289, 0.257733, 0.048325, 0.00604063, 0.000566309, 0.0000424732}}
El promedio depeticiones pendientes es el siguiente:
0.375
******************************
756 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 17., 0.425}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.65377, 0.277852, 0.0590436, 0.00836451, 0.000888729, 0.000075542}}
El promedio depeticiones pendientes es el siguiente:
0.425
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{40., 19., 0.475}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.621885, 0.295395, 0.0701564, 0.0111081, 0.00131909, 0.000125313}}
El promedio depeticiones pendientes es el siguiente:
0.475
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 1., 0.02}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
25.1. DATOS Y EJ ECUCIONES 757
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.980199, 0.019604, 0.00019604, 1.3069310
6
, 6.5346610
9
, 2.6138610
11
}}
El promedio depeticiones pendientes es el siguiente:
0.02
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 3., 0.06}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.941765, 0.0565059, 0.00169518, 0.0000339035, 5.0855310
7
, 6.1026310
9
}}
El promedio depeticiones pendientes es el siguiente:
0.06
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 5., 0.1}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.904837, 0.0904837, 0.00452419, 0.000150806, 3.7701610
6
, 7.5403110
8
}}
El promedio depeticiones pendientes es el siguiente:
0.1
******************************
Anlisis del rendimiento deun subsistema dedisco.
758 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 7., 0.14}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.869358, 0.12171, 0.00851971, 0.000397586, 0.0000139155, 3.8963510
7
}}
El promedio depeticiones pendientes es el siguiente:
0.14
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 9., 0.18}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.83527, 0.150349, 0.0135314, 0.000811883, 0.0000365347, 1.3152510
6
}}
El promedio depeticiones pendientes es el siguiente:
0.18
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 11., 0.22}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
25.1. DATOS Y EJ ECUCIONES 759
{{0.802519, 0.176554, 0.019421, 0.0014242, 0.0000783312, 3.4465710
6
}}
El promedio depeticiones pendientes es el siguiente:
0.22
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 13., 0.26}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.771052, 0.200473, 0.0260615, 0.00225867, 0.000146813, 7.6342910
6
}}
El promedio depeticiones pendientes es el siguiente:
0.26
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 15., 0.3}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.740818, 0.222245, 0.0333368, 0.00333368, 0.000250026, 0.0000150016}}
El promedio depeticiones pendientes es el siguiente:
0.3
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
760 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 17., 0.34}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.71177, 0.242002, 0.0411403, 0.00466257, 0.000396318, 0.0000269497}}
El promedio depeticiones pendientes es el siguiente:
0.34
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{50., 19., 0.38}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.683861, 0.259867, 0.0493748, 0.00625414, 0.000594143, 0.0000451549}}
El promedio depeticiones pendientes es el siguiente:
0.38
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{60., 1., 0.0166667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.983471, 0.0163912, 0.000136593, 7.5885110
7
, 3.1618810
9
, 1.0539610
11
}}
25.1. DATOS Y EJ ECUCIONES 761
El promedio depeticiones pendientes es el siguiente:
0.0166667
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{60., 3., 0.05}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.951229, 0.0475615, 0.00118904, 0.0000198173, 2.4771610
7
, 2.4771610
9
}}
El promedio depeticiones pendientes es el siguiente:
0.05
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{60., 5., 0.0833333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.920044, 0.0766704, 0.0031946, 0.0000887389, 1.8487310
6
, 3.0812110
8
}}
El promedio depeticiones pendientes es el siguiente:
0.0833333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
762 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
Los valores demu, lambda y el coecienteson los siguientes:
{60., 7., 0.116667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.889882, 0.10382, 0.00605614, 0.000235517, 6.8692310
6
, 1.6028210
7
}}
El promedio depeticiones pendientes es el siguiente:
0.116667
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{60., 9., 0.15}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.860708, 0.129106, 0.00968296, 0.000484148, 0.0000181556, 5.4466710
7
}}
El promedio depeticiones pendientes es el siguiente:
0.15
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{60., 11., 0.183333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.832491, 0.152623, 0.0139905, 0.000854973, 0.0000391863, 1.4368310
6
}}
El promedio depeticiones pendientes es el siguiente:
25.1. DATOS Y EJ ECUCIONES 763
0.183333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{60., 13., 0.216667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.805198, 0.17446, 0.0188998, 0.00136499, 0.0000739367, 3.2039210
6
}}
El promedio depeticiones pendientes es el siguiente:
0.216667
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{60., 15., 0.25}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.778801, 0.1947, 0.0243375, 0.00202813, 0.000126758, 6.337910
6
}}
El promedio depeticiones pendientes es el siguiente:
0.25
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
764 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
{60., 17., 0.283333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.753269, 0.213426, 0.0302354, 0.00285556, 0.000202269, 0.0000114619}}
El promedio depeticiones pendientes es el siguiente:
0.283333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{60., 19., 0.316667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.728574, 0.230715, 0.0365299, 0.00385593, 0.000305261, 0.0000193332}}
El promedio depeticiones pendientes es el siguiente:
0.316667
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{70., 1., 0.0142857}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.985816, 0.0140831, 0.000100593, 4.7901610
7
, 1.7107710
9
, 4.8879210
12
}}
El promedio depeticiones pendientes es el siguiente:
0.0142857
25.1. DATOS Y EJ ECUCIONES 765
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{70., 3., 0.0428571}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.958048, 0.0410592, 0.00087984, 0.0000125691, 1.3466910
7
, 1.1543110
9
}}
El promedio depeticiones pendientes es el siguiente:
0.0428571
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{70., 5., 0.0714286}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.931063, 0.0665045, 0.00237516, 0.0000565514, 1.0098510
6
, 1.4426410
8
}}
El promedio depeticiones pendientes es el siguiente:
0.0714286
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{70., 7., 0.1}
766 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.904837, 0.0904837, 0.00452419, 0.000150806, 3.7701610
6
, 7.5403110
8
}}
El promedio depeticiones pendientes es el siguiente:
0.1
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{70., 9., 0.128571}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.879351, 0.113059, 0.0072681, 0.00031149, 0.0000100122, 2.5745610
7
}}
El promedio depeticiones pendientes es el siguiente:
0.128571
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{70., 11., 0.157143}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.854582, 0.134291, 0.0105515, 0.000552696, 0.0000217131, 6.8241110
7
}}
El promedio depeticiones pendientes es el siguiente:
0.157143
******************************
25.1. DATOS Y EJ ECUCIONES 767
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{70., 13., 0.185714}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.830511, 0.154238, 0.0143221, 0.000886605, 0.0000411638, 1.5289410
6
}}
El promedio depeticiones pendientes es el siguiente:
0.185714
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{70., 15., 0.214286}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.807118, 0.172954, 0.0185308, 0.00132363, 0.0000709085, 3.0389410
6
}}
El promedio depeticiones pendientes es el siguiente:
0.214286
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{70., 17., 0.242857}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
768 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.784384, 0.190493, 0.0231313, 0.00187253, 0.00011369, 5.5220710
6
}}
El promedio depeticiones pendientes es el siguiente:
0.242857
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{70., 19., 0.271429}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.76229, 0.206907, 0.0280803, 0.0025406, 0.000172398, 9.3587210
6
}}
El promedio depeticiones pendientes es el siguiente:
0.271429
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 1., 0.0125}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.987578, 0.0123447, 0.0000771545, 3.2147710
7
, 1.0046210
9
, 2.5115410
12
}}
El promedio depeticiones pendientes es el siguiente:
0.0125
******************************
Anlisis del rendimiento deun subsistema dedisco.
25.1. DATOS Y EJ ECUCIONES 769
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 3., 0.0375}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.963194, 0.0361198, 0.000677246, 8.4655810
6
, 7.9364810
8
, 5.9523610
10
}}
El promedio depeticiones pendientes es el siguiente:
0.0375
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 5., 0.0625}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.939413, 0.0587133, 0.00183479, 0.0000382248, 5.9726310
7
, 7.4657810
9
}}
El promedio depeticiones pendientes es el siguiente:
0.0625
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 7., 0.0875}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
770 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
{{0.916219, 0.0801692, 0.0035074, 0.000102299, 2.2377910
6
, 3.9161410
8
}}
El promedio depeticiones pendientes es el siguiente:
0.0875
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 9., 0.1125}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.893597, 0.10053, 0.0056548, 0.000212055, 5.9640410
6
, 1.3419110
7
}}
El promedio depeticiones pendientes es el siguiente:
0.1125
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 11., 0.1375}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.871534, 0.119836, 0.00823872, 0.000377608, 0.0000129803, 3.5695810
7
}}
El promedio depeticiones pendientes es el siguiente:
0.1375
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
25.1. DATOS Y EJ ECUCIONES 771
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 13., 0.1625}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.850016, 0.138128, 0.0112229, 0.000607905, 0.0000246962, 8.0262510
7
}}
El promedio depeticiones pendientes es el siguiente:
0.1625
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 15., 0.1875}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.829029, 0.155443, 0.0145728, 0.000910799, 0.0000426937, 1.6010110
6
}}
El promedio depeticiones pendientes es el siguiente:
0.1875
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 17., 0.2125}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.80856, 0.171819, 0.0182558, 0.00129312, 0.0000686969, 2.9196210
6
}}
772 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
El promedio depeticiones pendientes es el siguiente:
0.2125
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{80., 19., 0.2375}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.788597, 0.187292, 0.0222409, 0.00176074, 0.000104544, 4.9658310
6
}}
El promedio depeticiones pendientes es el siguiente:
0.2375
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{90., 1., 0.0111111}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.98895, 0.0109883, 0.0000610463, 2.2609710
7
, 6.2804910
10
, 1.3956610
12
}}
El promedio depeticiones pendientes es el siguiente:
0.0111111
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
25.1. DATOS Y EJ ECUCIONES 773
Los valores demu, lambda y el coecienteson los siguientes:
{90., 3., 0.0333333}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.967216, 0.0322405, 0.000537342, 5.9704710
6
, 4.9753910
8
, 3.3169310
10
}}
El promedio depeticiones pendientes es el siguiente:
0.0333333
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{90., 5., 0.0555556}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.945959, 0.0525533, 0.00145981, 0.0000270336, 3.7546710
7
, 4.1718510
9
}}
El promedio depeticiones pendientes es el siguiente:
0.0555556
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{90., 7., 0.0777778}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.92517, 0.0719577, 0.00279835, 0.0000725499, 1.4106910
6
, 2.1944110
8
}}
El promedio depeticiones pendientes es el siguiente:
774 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
0.0777778
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{90., 9., 0.1}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.904837, 0.0904837, 0.00452419, 0.000150806, 3.7701610
6
, 7.5403110
8
}}
El promedio depeticiones pendientes es el siguiente:
0.1
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{90., 11., 0.122222}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.884952, 0.108161, 0.00660982, 0.000269289, 8.2282810
6
, 2.0113610
7
}}
El promedio depeticiones pendientes es el siguiente:
0.122222
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
25.1. DATOS Y EJ ECUCIONES 775
{90., 13., 0.144444}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.865503, 0.125017, 0.00902901, 0.00043473, 0.0000156986, 4.5351510
7
}}
El promedio depeticiones pendientes es el siguiente:
0.144444
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{90., 15., 0.166667}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.846482, 0.14108, 0.0117567, 0.000653149, 0.0000272146, 9.0715210
7
}}
El promedio depeticiones pendientes es el siguiente:
0.166667
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{90., 17., 0.188889}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.827878, 0.156377, 0.0147689, 0.000929896, 0.0000439118, 1.6588910
6
}}
El promedio depeticiones pendientes es el siguiente:
0.188889
776 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
******************************
Anlisis del rendimiento deun subsistema dedisco.
Resultados del Caso 2:
El subsistema dedisco puededar servicio a varias peticiones a la vez.
Los valores demu, lambda y el coecienteson los siguientes:
{90., 19., 0.211111}
La cola no crecer indenidamentedebido a queMu es mayor queLambda.
Las probabilidades detener 0,1,2,3,4,...peticiones pendientes son las siguientes:
{{0.809684, 0.170933, 0.018043, 0.00126969, 0.0000670114, 2.8293710
6
}}
El promedio depeticiones pendientes es el siguiente:
0.211111
******************************
*****************************
******* Resmen nal *******
*****************************
Lista decoecientes lambda/ mu:
{0.1, 0.3, 0.5, 0.7, 0.9, 0.05, 0.15, 0.25, 0.35, 0.45, 0.55, 0.65, 0.75, 0.85, 0.95, 0.0333333,
0.1, 0.166667, 0.233333, 0.3, 0.366667, 0.433333, 0.5, 0.566667, 0.633333, 0.025,
0.075, 0.125, 0.175, 0.225, 0.275, 0.325, 0.375, 0.425, 0.475, 0.02, 0.06, 0.1, 0.14,
0.18, 0.22, 0.26, 0.3, 0.34, 0.38, 0.0166667, 0.05, 0.0833333, 0.116667, 0.15, 0.183333,
0.216667, 0.25, 0.283333, 0.316667, 0.0142857, 0.0428571, 0.0714286, 0.1, 0.128571,
0.157143, 0.185714, 0.214286, 0.242857, 0.271429, 0.0125, 0.0375, 0.0625, 0.0875,
0.1125, 0.1375, 0.1625, 0.1875, 0.2125, 0.2375, 0.0111111, 0.0333333, 0.0555556,
0.0777778, 0.1, 0.122222, 0.144444, 0.166667, 0.188889, 0.211111}
Promedio depeticiones pendientes para cada coeciente:
{0.1, 0.3, 0.5, 0.7, 0.9, 0.05, 0.15, 0.25, 0.35, 0.45, 0.55, 0.65, 0.75, 0.85, 0.95, 0.0333333,
0.1, 0.166667, 0.233333, 0.3, 0.366667, 0.433333, 0.5, 0.566667, 0.633333, 0.025,
0.075, 0.125, 0.175, 0.225, 0.275, 0.325, 0.375, 0.425, 0.475, 0.02, 0.06, 0.1, 0.14,
0.18, 0.22, 0.26, 0.3, 0.34, 0.38, 0.0166667, 0.05, 0.0833333, 0.116667, 0.15, 0.183333,
0.216667, 0.25, 0.283333, 0.316667, 0.0142857, 0.0428571, 0.0714286, 0.1, 0.128571,
0.157143, 0.185714, 0.214286, 0.242857, 0.271429, 0.0125, 0.0375, 0.0625, 0.0875,
0.1125, 0.1375, 0.1625, 0.1875, 0.2125, 0.2375, 0.0111111, 0.0333333, 0.0555556,
0.0777778, 0.1, 0.122222, 0.144444, 0.166667, 0.188889, 0.211111}
Pares (coecientes,promedio):
25.1. DATOS Y EJ ECUCIONES 777
{{0.1, 0.1}, {0.3, 0.3}, {0.5, 0.5}, {0.7, 0.7}, {0.9, 0.9}, {0.05, 0.05}, {0.15, 0.15},
{0.25, 0.25}, {0.35, 0.35}, {0.45, 0.45}, {0.55, 0.55}, {0.65, 0.65}, {0.75, 0.75},
{0.85, 0.85}, {0.95, 0.95}, {0.0333333, 0.0333333}, {0.1, 0.1},
{0.166667, 0.166667}, {0.233333, 0.233333}, {0.3, 0.3}, {0.366667, 0.366667},
{0.433333, 0.433333}, {0.5, 0.5}, {0.566667, 0.566667}, {0.633333, 0.633333},
{0.025, 0.025}, {0.075, 0.075}, {0.125, 0.125}, {0.175, 0.175}, {0.225, 0.225},
{0.275, 0.275}, {0.325, 0.325}, {0.375, 0.375}, {0.425, 0.425},
{0.475, 0.475}, {0.02, 0.02}, {0.06, 0.06}, {0.1, 0.1}, {0.14, 0.14}, {0.18, 0.18},
{0.22, 0.22}, {0.26, 0.26}, {0.3, 0.3}, {0.34, 0.34}, {0.38, 0.38},
{0.0166667, 0.0166667}, {0.05, 0.05}, {0.0833333, 0.0833333}, {0.116667, 0.116667},
{0.15, 0.15}, {0.183333, 0.183333}, {0.216667, 0.216667}, {0.25, 0.25},
{0.283333, 0.283333}, {0.316667, 0.316667}, {0.0142857, 0.0142857},
{0.0428571, 0.0428571}, {0.0714286, 0.0714286}, {0.1, 0.1}, {0.128571, 0.128571},
{0.157143, 0.157143}, {0.185714, 0.185714}, {0.214286, 0.214286},
{0.242857, 0.242857}, {0.271429, 0.271429}, {0.0125, 0.0125}, {0.0375, 0.0375},
{0.0625, 0.0625}, {0.0875, 0.0875}, {0.1125, 0.1125}, {0.1375, 0.1375},
{0.1625, 0.1625}, {0.1875, 0.1875}, {0.2125, 0.2125}, {0.2375, 0.2375},
{0.0111111, 0.0111111}, {0.0333333, 0.0333333}, {0.0555556, 0.0555556},
{0.0777778, 0.0777778}, {0.1, 0.1}, {0.122222, 0.122222}, {0.144444, 0.144444},
{0.166667, 0.166667}, {0.188889, 0.188889}, {0.211111, 0.211111}}
Grcodepromediodepeticionespendientesparacadacoecientey Anlisisderegresin
lineal:
{StatisticsLinearRegressionBestFit ->
-2.0702810
16
+1. x,
StatisticsLinearRegressionBestFitCoecients ->
{-2.0702810
16
, 1.}}
Colas2pn[10,20,3]
Throw[Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.]
Colas2pn[10,90,9]
Throw[Para quela cola no crezca indenidamentedebeser Mu mayor queLambda.]
778 CAPTULO 25. SUBSISTEMA DE DISCO DE VARIAS PETICIONES
Figura~25.3: Promedio depeticiones pendientes.
Captulo 26
Optimizacin de Operaciones de
Bsqueda en Disco con Redes
Neuronales
26.1 Datos y Ejecuciones
Contenido del archivo Colas3en.ma:
<<ExamplesColas3pn
? Colas3pn
Colas3pn[cildisc,totpetic,numpetic]
Clculo del nmero de cilindros del disco recorridos por el mecanismo de acceso en las
operaciones debsqueda delos cilindros requeridos segn las peticiones deentrada
/ salida que precisan los procesos; generacin del archivo de resultados correspon-
diente.
Colocar los valores para cildisc, totpetic y numpetic.
Colas3pn[40,5,100]
Sesugierequenumpetic sea al menos 30veces mayor quetotpetic.
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 1}
La posicin inicial del mecanismo deacceso es la siguiente:
23
La lista aleatoria depeticiones es la siguiente:
779
780 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
{16, 13, 9, 31, 39}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{44, 44, 46}
El algoritmo ms ecientees:
FCFS
Imagen del registro grabado:
{23, {16, 13, 9, 31, 39}, {44, 44, 46}, 1, 0, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 2}
La posicin inicial del mecanismo deacceso es la siguiente:
14
La lista aleatoria depeticiones es la siguiente:
{29, 13, 28, 26, 39}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{61, 27, 51}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{14, {29, 13, 28, 26, 39}, {61, 27, 51}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 3}
La posicin inicial del mecanismo deacceso es la siguiente:
21
26.1. DATOS Y EJ ECUCIONES 781
La lista aleatoria depeticiones es la siguiente:
{6, 38, 23, 4, 31}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{108, 51, 51}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{21, {6, 38, 23, 4, 31}, {108, 51, 51}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 4}
La posicin inicial del mecanismo deacceso es la siguiente:
5
La lista aleatoria depeticiones es la siguiente:
{34, 13, 15, 20, 30}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{67, 29, 29}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{5, {34, 13, 15, 20, 30}, {67, 29, 29}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 5}
La posicin inicial del mecanismo deacceso es la siguiente:
782 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
32
La lista aleatoria depeticiones es la siguiente:
{21, 28, 33, 12, 31}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{63, 22, 22}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{32, {21, 28, 33, 12, 31}, {63, 22, 22}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 6}
La posicin inicial del mecanismo deacceso es la siguiente:
20
La lista aleatoria depeticiones es la siguiente:
{40, 1, 20, 2, 34}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{128, 59, 59}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{20, {40, 1, 20, 2, 34}, {128, 59, 59}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 7}
26.1. DATOS Y EJ ECUCIONES 783
La posicin inicial del mecanismo deacceso es la siguiente:
24
La lista aleatoria depeticiones es la siguiente:
{23, 3, 7, 27, 27}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{45, 29, 27}
El algoritmo ms ecientees:
SCAN
Imagen del registro grabado:
{24, {23, 3, 7, 27, 27}, {45, 29, 27}, 0, 0, 1}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 8}
La posicin inicial del mecanismo deacceso es la siguiente:
10
La lista aleatoria depeticiones es la siguiente:
{23, 26, 8, 18, 32}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{58, 26, 46}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{10, {23, 26, 8, 18, 32}, {58, 26, 46}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
784 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
{40, 5, 9}
La posicin inicial del mecanismo deacceso es la siguiente:
23
La lista aleatoria depeticiones es la siguiente:
{3, 17, 33, 40, 3}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{94, 57, 54}
El algoritmo ms ecientees:
SCAN
Imagen del registro grabado:
{23, {3, 17, 33, 40, 3}, {94, 57, 54}, 0, 0, 1}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 10}
La posicin inicial del mecanismo deacceso es la siguiente:
11
La lista aleatoria depeticiones es la siguiente:
{30, 27, 2, 30, 7}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{98, 37, 47}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{11, {30, 27, 2, 30, 7}, {98, 37, 47}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
26.1. DATOS Y EJ ECUCIONES 785
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 11}
La posicin inicial del mecanismo deacceso es la siguiente:
6
La lista aleatoria depeticiones es la siguiente:
{13, 27, 3, 39, 10}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{110, 39, 69}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{6, {13, 27, 3, 39, 10}, {110, 39, 69}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 12}
La posicin inicial del mecanismo deacceso es la siguiente:
40
La lista aleatoria depeticiones es la siguiente:
{10, 31, 31, 11, 26}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{86, 30, 30}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{40, {10, 31, 31, 11, 26}, {86, 30, 30}, 0, 1, 0}
******************************
786 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 13}
La posicin inicial del mecanismo deacceso es la siguiente:
29
La lista aleatoria depeticiones es la siguiente:
{13, 15, 7, 8, 8}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{27, 22, 22}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{29, {13, 15, 7, 8, 8}, {27, 22, 22}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 14}
La posicin inicial del mecanismo deacceso es la siguiente:
3
La lista aleatoria depeticiones es la siguiente:
{9, 29, 3, 35, 35}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{84, 32, 32}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{3, {9, 29, 3, 35, 35}, {84, 32, 32}, 0, 1, 0}
26.1. DATOS Y EJ ECUCIONES 787
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 15}
La posicin inicial del mecanismo deacceso es la siguiente:
38
La lista aleatoria depeticiones es la siguiente:
{23, 31, 34, 2, 2}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{58, 36, 36}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{38, {23, 31, 34, 2, 2}, {58, 36, 36}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 16}
La posicin inicial del mecanismo deacceso es la siguiente:
23
La lista aleatoria depeticiones es la siguiente:
{21, 37, 21, 18, 25}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{44, 24, 33}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
788 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
{23, {21, 37, 21, 18, 25}, {44, 24, 33}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 17}
La posicin inicial del mecanismo deacceso es la siguiente:
4
La lista aleatoria depeticiones es la siguiente:
{7, 33, 26, 28, 1}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{65, 41, 61}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{4, {7, 33, 26, 28, 1}, {65, 41, 61}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 18}
La posicin inicial del mecanismo deacceso es la siguiente:
7
La lista aleatoria depeticiones es la siguiente:
{13, 13, 11, 2, 31}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{46, 46, 53}
El algoritmo ms ecientees:
FCFS
26.1. DATOS Y EJ ECUCIONES 789
Imagen del registro grabado:
{7, {13, 13, 11, 2, 31}, {46, 46, 53}, 1, 0, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 19}
La posicin inicial del mecanismo deacceso es la siguiente:
32
La lista aleatoria depeticiones es la siguiente:
{26, 5, 25, 1, 4}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{74, 31, 31}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{32, {26, 5, 25, 1, 4}, {74, 31, 31}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 20}
La posicin inicial del mecanismo deacceso es la siguiente:
18
La lista aleatoria depeticiones es la siguiente:
{12, 3, 40, 11, 40}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{110, 52, 59}
El algoritmo ms ecientees:
790 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
SSF
Imagen del registro grabado:
{18, {12, 3, 40, 11, 40}, {110, 52, 59}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 21}
La posicin inicial del mecanismo deacceso es la siguiente:
9
La lista aleatoria depeticiones es la siguiente:
{36, 28, 36, 3, 25}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{98, 39, 60}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{9, {36, 28, 36, 3, 25}, {98, 39, 60}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 22}
La posicin inicial del mecanismo deacceso es la siguiente:
36
La lista aleatoria depeticiones es la siguiente:
{14, 22, 34, 16, 9}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{67, 27, 27}
26.1. DATOS Y EJ ECUCIONES 791
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{36, {14, 22, 34, 16, 9}, {67, 27, 27}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 23}
La posicin inicial del mecanismo deacceso es la siguiente:
7
La lista aleatoria depeticiones es la siguiente:
{17, 7, 11, 23, 28}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{41, 21, 21}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{7, {17, 7, 11, 23, 28}, {41, 21, 21}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 24}
La posicin inicial del mecanismo deacceso es la siguiente:
5
La lista aleatoria depeticiones es la siguiente:
{9, 26, 40, 36, 30}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
792 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
{45, 35, 35}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{5, {9, 26, 40, 36, 30}, {45, 35, 35}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 25}
La posicin inicial del mecanismo deacceso es la siguiente:
29
La lista aleatoria depeticiones es la siguiente:
{18, 6, 17, 27, 9}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{62, 23, 23}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{29, {18, 6, 17, 27, 9}, {62, 23, 23}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 26}
La posicin inicial del mecanismo deacceso es la siguiente:
24
La lista aleatoria depeticiones es la siguiente:
{25, 4, 33, 6, 26}
26.1. DATOS Y EJ ECUCIONES 793
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{98, 38, 38}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{24, {25, 4, 33, 6, 26}, {98, 38, 38}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 27}
La posicin inicial del mecanismo deacceso es la siguiente:
40
La lista aleatoria depeticiones es la siguiente:
{27, 3, 3, 30, 11}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{83, 37, 37}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{40, {27, 3, 3, 30, 11}, {83, 37, 37}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 28}
La posicin inicial del mecanismo deacceso es la siguiente:
1
La lista aleatoria depeticiones es la siguiente:
794 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
{39, 36, 10, 28, 21}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{92, 38, 38}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{1, {39, 36, 10, 28, 21}, {92, 38, 38}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 29}
La posicin inicial del mecanismo deacceso es la siguiente:
15
La lista aleatoria depeticiones es la siguiente:
{6, 16, 19, 3, 22}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{57, 26, 26}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{15, {6, 16, 19, 3, 22}, {57, 26, 26}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 30}
La posicin inicial del mecanismo deacceso es la siguiente:
6
26.1. DATOS Y EJ ECUCIONES 795
La lista aleatoria depeticiones es la siguiente:
{4, 20, 11, 40, 9}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{87, 38, 70}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{6, {4, 20, 11, 40, 9}, {87, 38, 70}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 31}
La posicin inicial del mecanismo deacceso es la siguiente:
8
La lista aleatoria depeticiones es la siguiente:
{38, 40, 4, 40, 37}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{107, 40, 68}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{8, {38, 40, 4, 40, 37}, {107, 40, 68}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 32}
La posicin inicial del mecanismo deacceso es la siguiente:
796 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
5
La lista aleatoria depeticiones es la siguiente:
{32, 36, 29, 22, 19}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{48, 31, 31}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{5, {32, 36, 29, 22, 19}, {48, 31, 31}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 33}
La posicin inicial del mecanismo deacceso es la siguiente:
22
La lista aleatoria depeticiones es la siguiente:
{13, 34, 15, 11, 29}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{71, 34, 35}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{22, {13, 34, 15, 11, 29}, {71, 34, 35}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 34}
26.1. DATOS Y EJ ECUCIONES 797
La posicin inicial del mecanismo deacceso es la siguiente:
6
La lista aleatoria depeticiones es la siguiente:
{27, 16, 3, 18, 29}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{71, 29, 49}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{6, {27, 16, 3, 18, 29}, {71, 29, 49}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 35}
La posicin inicial del mecanismo deacceso es la siguiente:
3
La lista aleatoria depeticiones es la siguiente:
{3, 22, 29, 8, 37}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{76, 34, 34}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{3, {3, 22, 29, 8, 37}, {76, 34, 34}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
798 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
{40, 5, 36}
La posicin inicial del mecanismo deacceso es la siguiente:
27
La lista aleatoria depeticiones es la siguiente:
{12, 3, 11, 8, 16}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{43, 24, 24}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{27, {12, 3, 11, 8, 16}, {43, 24, 24}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 37}
La posicin inicial del mecanismo deacceso es la siguiente:
36
La lista aleatoria depeticiones es la siguiente:
{6, 12, 17, 9, 16}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{56, 30, 30}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{36, {6, 12, 17, 9, 16}, {56, 30, 30}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
26.1. DATOS Y EJ ECUCIONES 799
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 38}
La posicin inicial del mecanismo deacceso es la siguiente:
4
La lista aleatoria depeticiones es la siguiente:
{10, 18, 2, 26, 24}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{56, 26, 46}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{4, {10, 18, 2, 26, 24}, {56, 26, 46}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 39}
La posicin inicial del mecanismo deacceso es la siguiente:
2
La lista aleatoria depeticiones es la siguiente:
{16, 4, 29, 15, 39}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{89, 37, 37}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{2, {16, 4, 29, 15, 39}, {89, 37, 37}, 0, 1, 0}
******************************
800 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 40}
La posicin inicial del mecanismo deacceso es la siguiente:
10
La lista aleatoria depeticiones es la siguiente:
{6, 9, 23, 40, 17}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{61, 38, 64}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{10, {6, 9, 23, 40, 17}, {61, 38, 64}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 41}
La posicin inicial del mecanismo deacceso es la siguiente:
4
La lista aleatoria depeticiones es la siguiente:
{35, 36, 10, 27, 40}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{88, 36, 36}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{4, {35, 36, 10, 27, 40}, {88, 36, 36}, 0, 1, 0}
26.1. DATOS Y EJ ECUCIONES 801
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 42}
La posicin inicial del mecanismo deacceso es la siguiente:
33
La lista aleatoria depeticiones es la siguiente:
{6, 35, 26, 21, 19}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{72, 31, 31}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{33, {6, 35, 26, 21, 19}, {72, 31, 31}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 43}
La posicin inicial del mecanismo deacceso es la siguiente:
40
La lista aleatoria depeticiones es la siguiente:
{36, 10, 22, 15, 24}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{58, 30, 30}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
802 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
{40, {36, 10, 22, 15, 24}, {58, 30, 30}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 44}
La posicin inicial del mecanismo deacceso es la siguiente:
11
La lista aleatoria depeticiones es la siguiente:
{4, 15, 15, 19, 20}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{23, 25, 25}
El algoritmo ms ecientees:
FCFS
Imagen del registro grabado:
{11, {4, 15, 15, 19, 20}, {23, 25, 25}, 1, 0, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 45}
La posicin inicial del mecanismo deacceso es la siguiente:
38
La lista aleatoria depeticiones es la siguiente:
{14, 4, 19, 16, 26}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{62, 34, 34}
El algoritmo ms ecientees:
SSF
26.1. DATOS Y EJ ECUCIONES 803
Imagen del registro grabado:
{38, {14, 4, 19, 16, 26}, {62, 34, 34}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 46}
La posicin inicial del mecanismo deacceso es la siguiente:
21
La lista aleatoria depeticiones es la siguiente:
{38, 14, 35, 6, 32}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{117, 47, 49}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{21, {38, 14, 35, 6, 32}, {117, 47, 49}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 47}
La posicin inicial del mecanismo deacceso es la siguiente:
32
La lista aleatoria depeticiones es la siguiente:
{13, 37, 6, 1, 7}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{85, 41, 41}
El algoritmo ms ecientees:
804 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
SSF
Imagen del registro grabado:
{32, {13, 37, 6, 1, 7}, {85, 41, 41}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 48}
La posicin inicial del mecanismo deacceso es la siguiente:
8
La lista aleatoria depeticiones es la siguiente:
{8, 26, 31, 11, 20}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{52, 23, 23}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{8, {8, 26, 31, 11, 20}, {52, 23, 23}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 49}
La posicin inicial del mecanismo deacceso es la siguiente:
12
La lista aleatoria depeticiones es la siguiente:
{17, 18, 24, 7, 1}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{35, 35, 35}
26.1. DATOS Y EJ ECUCIONES 805
El algoritmo ms ecientees:
FCFS
Imagen del registro grabado:
{12, {17, 18, 24, 7, 1}, {35, 35, 35}, 1, 0, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 50}
La posicin inicial del mecanismo deacceso es la siguiente:
40
La lista aleatoria depeticiones es la siguiente:
{32, 28, 24, 3, 19}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{53, 37, 37}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{40, {32, 28, 24, 3, 19}, {53, 37, 37}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 51}
La posicin inicial del mecanismo deacceso es la siguiente:
18
La lista aleatoria depeticiones es la siguiente:
{34, 11, 12, 30, 24}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
806 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
{64, 30, 39}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{18, {34, 11, 12, 30, 24}, {64, 30, 39}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 52}
La posicin inicial del mecanismo deacceso es la siguiente:
1
La lista aleatoria depeticiones es la siguiente:
{39, 33, 17, 22, 9}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{78, 38, 38}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{1, {39, 33, 17, 22, 9}, {78, 38, 38}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 53}
La posicin inicial del mecanismo deacceso es la siguiente:
24
La lista aleatoria depeticiones es la siguiente:
{20, 1, 16, 2, 17}
26.1. DATOS Y EJ ECUCIONES 807
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{67, 23, 23}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{24, {20, 1, 16, 2, 17}, {67, 23, 23}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 54}
La posicin inicial del mecanismo deacceso es la siguiente:
36
La lista aleatoria depeticiones es la siguiente:
{11, 4, 36, 31, 12}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{88, 32, 32}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{36, {11, 4, 36, 31, 12}, {88, 32, 32}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 55}
La posicin inicial del mecanismo deacceso es la siguiente:
15
La lista aleatoria depeticiones es la siguiente:
808 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
{14, 26, 8, 33, 39}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{62, 38, 55}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{15, {14, 26, 8, 33, 39}, {62, 38, 55}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 56}
La posicin inicial del mecanismo deacceso es la siguiente:
3
La lista aleatoria depeticiones es la siguiente:
{19, 30, 6, 18, 4}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{77, 27, 27}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{3, {19, 30, 6, 18, 4}, {77, 27, 27}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 57}
La posicin inicial del mecanismo deacceso es la siguiente:
34
26.1. DATOS Y EJ ECUCIONES 809
La lista aleatoria depeticiones es la siguiente:
{21, 15, 4, 28, 7}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{75, 30, 30}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{34, {21, 15, 4, 28, 7}, {75, 30, 30}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 58}
La posicin inicial del mecanismo deacceso es la siguiente:
11
La lista aleatoria depeticiones es la siguiente:
{6, 37, 28, 14, 20}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{65, 57, 57}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{11, {6, 37, 28, 14, 20}, {65, 57, 57}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 59}
La posicin inicial del mecanismo deacceso es la siguiente:
810 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
16
La lista aleatoria depeticiones es la siguiente:
{30, 3, 9, 40, 30}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{88, 50, 61}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{16, {30, 3, 9, 40, 30}, {88, 50, 61}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 60}
La posicin inicial del mecanismo deacceso es la siguiente:
19
La lista aleatoria depeticiones es la siguiente:
{12, 23, 7, 15, 14}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{43, 20, 20}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{19, {12, 23, 7, 15, 14}, {43, 20, 20}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 61}
26.1. DATOS Y EJ ECUCIONES 811
La posicin inicial del mecanismo deacceso es la siguiente:
31
La lista aleatoria depeticiones es la siguiente:
{20, 32, 36, 9, 33}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{78, 32, 32}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{31, {20, 32, 36, 9, 33}, {78, 32, 32}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 62}
La posicin inicial del mecanismo deacceso es la siguiente:
33
La lista aleatoria depeticiones es la siguiente:
{9, 5, 1, 22, 38}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{69, 42, 42}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{33, {9, 5, 1, 22, 38}, {69, 42, 42}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
812 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
{40, 5, 63}
La posicin inicial del mecanismo deacceso es la siguiente:
14
La lista aleatoria depeticiones es la siguiente:
{27, 36, 9, 33, 25}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{81, 32, 49}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{14, {27, 36, 9, 33, 25}, {81, 32, 49}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 64}
La posicin inicial del mecanismo deacceso es la siguiente:
31
La lista aleatoria depeticiones es la siguiente:
{13, 12, 16, 32, 19}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{52, 21, 21}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{31, {13, 12, 16, 32, 19}, {52, 21, 21}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
26.1. DATOS Y EJ ECUCIONES 813
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 65}
La posicin inicial del mecanismo deacceso es la siguiente:
34
La lista aleatoria depeticiones es la siguiente:
{13, 38, 9, 17, 32}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{98, 37, 33}
El algoritmo ms ecientees:
SCAN
Imagen del registro grabado:
{34, {13, 38, 9, 17, 32}, {98, 37, 33}, 0, 0, 1}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 66}
La posicin inicial del mecanismo deacceso es la siguiente:
18
La lista aleatoria depeticiones es la siguiente:
{24, 8, 2, 11, 36}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{62, 52, 52}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{18, {24, 8, 2, 11, 36}, {62, 52, 52}, 0, 1, 0}
******************************
814 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 67}
La posicin inicial del mecanismo deacceso es la siguiente:
8
La lista aleatoria depeticiones es la siguiente:
{25, 13, 27, 8, 35}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{89, 27, 27}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{8, {25, 13, 27, 8, 35}, {89, 27, 27}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 68}
La posicin inicial del mecanismo deacceso es la siguiente:
13
La lista aleatoria depeticiones es la siguiente:
{13, 7, 31, 32, 31}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{32, 31, 44}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{13, {13, 7, 31, 32, 31}, {32, 31, 44}, 0, 1, 0}
26.1. DATOS Y EJ ECUCIONES 815
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 69}
La posicin inicial del mecanismo deacceso es la siguiente:
21
La lista aleatoria depeticiones es la siguiente:
{21, 7, 9, 12, 23}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{30, 18, 18}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{21, {21, 7, 9, 12, 23}, {30, 18, 18}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 70}
La posicin inicial del mecanismo deacceso es la siguiente:
15
La lista aleatoria depeticiones es la siguiente:
{10, 22, 12, 25, 23}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{42, 20, 25}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
816 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
{15, {10, 22, 12, 25, 23}, {42, 20, 25}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 71}
La posicin inicial del mecanismo deacceso es la siguiente:
3
La lista aleatoria depeticiones es la siguiente:
{29, 8, 19, 37, 12}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{101, 34, 34}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{3, {29, 8, 19, 37, 12}, {101, 34, 34}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 72}
La posicin inicial del mecanismo deacceso es la siguiente:
3
La lista aleatoria depeticiones es la siguiente:
{19, 3, 12, 5, 32}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{75, 29, 29}
El algoritmo ms ecientees:
SSF
26.1. DATOS Y EJ ECUCIONES 817
Imagen del registro grabado:
{3, {19, 3, 12, 5, 32}, {75, 29, 29}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 73}
La posicin inicial del mecanismo deacceso es la siguiente:
10
La lista aleatoria depeticiones es la siguiente:
{4, 21, 30, 3, 33}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{89, 37, 53}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{10, {4, 21, 30, 3, 33}, {89, 37, 53}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 74}
La posicin inicial del mecanismo deacceso es la siguiente:
22
La lista aleatoria depeticiones es la siguiente:
{38, 10, 20, 22, 24}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{58, 48, 44}
El algoritmo ms ecientees:
818 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
SCAN
Imagen del registro grabado:
{22, {38, 10, 20, 22, 24}, {58, 48, 44}, 0, 0, 1}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 75}
La posicin inicial del mecanismo deacceso es la siguiente:
29
La lista aleatoria depeticiones es la siguiente:
{39, 9, 26, 29, 19}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{70, 50, 40}
El algoritmo ms ecientees:
SCAN
Imagen del registro grabado:
{29, {39, 9, 26, 29, 19}, {70, 50, 40}, 0, 0, 1}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 76}
La posicin inicial del mecanismo deacceso es la siguiente:
23
La lista aleatoria depeticiones es la siguiente:
{3, 27, 8, 12, 34}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{89, 42, 42}
26.1. DATOS Y EJ ECUCIONES 819
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{23, {3, 27, 8, 12, 34}, {89, 42, 42}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 77}
La posicin inicial del mecanismo deacceso es la siguiente:
14
La lista aleatoria depeticiones es la siguiente:
{34, 38, 11, 40, 33}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{87, 32, 55}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{14, {34, 38, 11, 40, 33}, {87, 32, 55}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 78}
La posicin inicial del mecanismo deacceso es la siguiente:
26
La lista aleatoria depeticiones es la siguiente:
{19, 26, 35, 12, 25}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
820 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
{59, 37, 32}
El algoritmo ms ecientees:
SCAN
Imagen del registro grabado:
{26, {19, 26, 35, 12, 25}, {59, 37, 32}, 0, 0, 1}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 79}
La posicin inicial del mecanismo deacceso es la siguiente:
31
La lista aleatoria depeticiones es la siguiente:
{22, 8, 23, 13, 19}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{54, 23, 23}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{31, {22, 8, 23, 13, 19}, {54, 23, 23}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 80}
La posicin inicial del mecanismo deacceso es la siguiente:
33
La lista aleatoria depeticiones es la siguiente:
{8, 2, 39, 5, 36}
26.1. DATOS Y EJ ECUCIONES 821
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{133, 43, 43}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{33, {8, 2, 39, 5, 36}, {133, 43, 43}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 81}
La posicin inicial del mecanismo deacceso es la siguiente:
23
La lista aleatoria depeticiones es la siguiente:
{16, 34, 3, 39, 19}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{112, 56, 52}
El algoritmo ms ecientees:
SCAN
Imagen del registro grabado:
{23, {16, 34, 3, 39, 19}, {112, 56, 52}, 0, 0, 1}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 82}
La posicin inicial del mecanismo deacceso es la siguiente:
30
La lista aleatoria depeticiones es la siguiente:
822 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
{25, 18, 37, 1, 21}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{87, 65, 43}
El algoritmo ms ecientees:
SCAN
Imagen del registro grabado:
{30, {25, 18, 37, 1, 21}, {87, 65, 43}, 0, 0, 1}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 83}
La posicin inicial del mecanismo deacceso es la siguiente:
17
La lista aleatoria depeticiones es la siguiente:
{12, 21, 18, 27, 20}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{33, 25, 25}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{17, {12, 21, 18, 27, 20}, {33, 25, 25}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 84}
La posicin inicial del mecanismo deacceso es la siguiente:
9
26.1. DATOS Y EJ ECUCIONES 823
La lista aleatoria depeticiones es la siguiente:
{31, 2, 17, 38, 30}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{95, 43, 65}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{9, {31, 2, 17, 38, 30}, {95, 43, 65}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 85}
La posicin inicial del mecanismo deacceso es la siguiente:
10
La lista aleatoria depeticiones es la siguiente:
{21, 36, 40, 1, 6}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{74, 48, 69}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{10, {21, 36, 40, 1, 6}, {74, 48, 69}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 86}
La posicin inicial del mecanismo deacceso es la siguiente:
824 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
39
La lista aleatoria depeticiones es la siguiente:
{17, 30, 25, 18, 38}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{67, 22, 22}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{39, {17, 30, 25, 18, 38}, {67, 22, 22}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 87}
La posicin inicial del mecanismo deacceso es la siguiente:
32
La lista aleatoria depeticiones es la siguiente:
{37, 19, 18, 14, 28}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{42, 36, 28}
El algoritmo ms ecientees:
SCAN
Imagen del registro grabado:
{32, {37, 19, 18, 14, 28}, {42, 36, 28}, 0, 0, 1}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 88}
26.1. DATOS Y EJ ECUCIONES 825
La posicin inicial del mecanismo deacceso es la siguiente:
11
La lista aleatoria depeticiones es la siguiente:
{28, 21, 22, 35, 36}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{39, 25, 25}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{11, {28, 21, 22, 35, 36}, {39, 25, 25}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 89}
La posicin inicial del mecanismo deacceso es la siguiente:
21
La lista aleatoria depeticiones es la siguiente:
{23, 19, 28, 20, 10}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{33, 29, 25}
El algoritmo ms ecientees:
SCAN
Imagen del registro grabado:
{21, {23, 19, 28, 20, 10}, {33, 29, 25}, 0, 0, 1}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
826 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
{40, 5, 90}
La posicin inicial del mecanismo deacceso es la siguiente:
6
La lista aleatoria depeticiones es la siguiente:
{38, 24, 35, 26, 19}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{73, 32, 32}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{6, {38, 24, 35, 26, 19}, {73, 32, 32}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 91}
La posicin inicial del mecanismo deacceso es la siguiente:
12
La lista aleatoria depeticiones es la siguiente:
{14, 34, 35, 10, 11}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{49, 27, 48}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{12, {14, 34, 35, 10, 11}, {49, 27, 48}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
26.1. DATOS Y EJ ECUCIONES 827
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 92}
La posicin inicial del mecanismo deacceso es la siguiente:
20
La lista aleatoria depeticiones es la siguiente:
{10, 35, 28, 3, 36}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{100, 49, 49}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{20, {10, 35, 28, 3, 36}, {100, 49, 49}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 93}
La posicin inicial del mecanismo deacceso es la siguiente:
25
La lista aleatoria depeticiones es la siguiente:
{38, 35, 1, 2, 3}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{52, 50, 50}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{25, {38, 35, 1, 2, 3}, {52, 50, 50}, 0, 1, 0}
******************************
828 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 94}
La posicin inicial del mecanismo deacceso es la siguiente:
22
La lista aleatoria depeticiones es la siguiente:
{1, 2, 29, 12, 5}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{73, 35, 35}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{22, {1, 2, 29, 12, 5}, {73, 35, 35}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 95}
La posicin inicial del mecanismo deacceso es la siguiente:
36
La lista aleatoria depeticiones es la siguiente:
{17, 13, 34, 15, 39}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{87, 33, 29}
El algoritmo ms ecientees:
SCAN
Imagen del registro grabado:
{36, {17, 13, 34, 15, 39}, {87, 33, 29}, 0, 0, 1}
26.1. DATOS Y EJ ECUCIONES 829
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 96}
La posicin inicial del mecanismo deacceso es la siguiente:
38
La lista aleatoria depeticiones es la siguiente:
{10, 19, 18, 23, 37}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{57, 28, 28}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{38, {10, 19, 18, 23, 37}, {57, 28, 28}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 97}
La posicin inicial del mecanismo deacceso es la siguiente:
7
La lista aleatoria depeticiones es la siguiente:
{36, 37, 1, 17, 17}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{82, 42, 66}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
830 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
{7, {36, 37, 1, 17, 17}, {82, 42, 66}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 98}
La posicin inicial del mecanismo deacceso es la siguiente:
40
La lista aleatoria depeticiones es la siguiente:
{31, 28, 28, 17, 26}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{32, 23, 23}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{40, {31, 28, 28, 17, 26}, {32, 23, 23}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 99}
La posicin inicial del mecanismo deacceso es la siguiente:
36
La lista aleatoria depeticiones es la siguiente:
{34, 7, 24, 29, 17}
El nmero demovimientos del mecanismo deacceso sera el siguientepara FCFS, SSF y
SCAN:
{63, 29, 29}
El algoritmo ms ecientees:
SSF
26.1. DATOS Y EJ ECUCIONES 831
Imagen del registro grabado:
{36, {34, 7, 24, 29, 17}, {63, 29, 29}, 0, 1, 0}
******************************
Clculo demovimientos del mecanismo deacceso segn tres algoritmos debsqueda.
Los valores decildisc, totpetic y numpetic son los siguientes:
{40, 5, 100}
La posicin inicial del mecanismo deacceso es la siguiente:
34
La lista aleatoria depeticiones es la siguiente:
{35, 32, 14, 12, 28}
El nmero demovimientos del mecanismo deacceso serael siguientepara FCFS, SSF y
SCAN:
{40, 24, 24}
El algoritmo ms ecientees:
SSF
Imagen del registro grabado:
{34, {35, 32, 14, 12, 28}, {40, 24, 24}, 0, 1, 0}
******************************
************************************************
** Archivo dedatos grabado como Colas3fn.txt **
************************************************
Contenido del archivo Colas3fn.dat:
14, 15, 2, 20, 13, 7, 0, 0, 1
37, 9, 11, 23, 32, 36, 0, 1, 0
6, 30, 31, 15, 26, 11, 0, 1, 0
11, 25, 38, 34, 24, 26, 0, 1, 0
5, 24, 25, 27, 32, 9, 0, 1, 0
31, 18, 32, 4, 35, 20, 0, 1, 0
832 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
38, 20, 27, 4, 24, 22, 0, 1, 0
39, 27, 4, 30, 6, 27, 0, 1, 0
12, 28, 33, 2, 40, 17, 0, 1, 0
12, 24, 19, 12, 15, 19, 0, 1, 0
40, 4, 6, 24, 20, 24, 0, 1, 0
7, 7, 17, 32, 13, 25, 0, 1, 0
29, 16, 2, 38, 36, 5, 0, 1, 0
8, 1, 15, 11, 24, 23, 1, 0, 0
38, 17, 22, 40, 11, 39, 0, 1, 0
26, 4, 34, 2, 21, 4, 0, 0, 1
27, 30, 3, 22, 38, 35, 0, 1, 0
32, 13, 22, 2, 16, 4, 0, 1, 0
4, 16, 6, 16, 26, 19, 0, 1, 0
4, 18, 19, 2, 36, 34, 0, 1, 0
15, 40, 11, 20, 17, 25, 0, 1, 0
9, 9, 40, 17, 40, 30, 0, 1, 0
35, 4, 11, 24, 26, 16, 0, 1, 0
10, 31, 5, 18, 13, 24, 0, 1, 0
40, 23, 5, 12, 29, 20, 0, 1, 0
34, 20, 23, 28, 37, 10, 0, 1, 0
4, 17, 3, 39, 1, 30, 0, 1, 0
7, 2, 31, 26, 19, 14, 0, 1, 0
23, 21, 4, 16, 20, 8, 0, 1, 0
15, 27, 29, 37, 25, 26, 0, 1, 0
5, 35, 26, 13, 2, 23, 0, 1, 0
40, 6, 36, 15, 40, 34, 0, 1, 0
2, 40, 26, 16, 13, 20, 0, 1, 0
31, 40, 8, 26, 29, 21, 0, 0, 1
26.1. DATOS Y EJ ECUCIONES 833
13, 12, 20, 14, 36, 4, 0, 0, 1
18, 40, 31, 17, 19, 11, 0, 1, 0
27, 6, 17, 22, 35, 32, 0, 0, 1
19, 35, 9, 8, 13, 34, 0, 1, 0
27, 40, 5, 26, 30, 10, 0, 0, 1
19, 4, 36, 5, 22, 25, 0, 1, 0
10, 31, 1, 5, 35, 20, 0, 1, 0
22, 1, 11, 24, 38, 10, 0, 0, 1
19, 20, 38, 32, 32, 2, 1, 0, 0
26, 40, 22, 16, 16, 38, 0, 1, 0
16, 34, 36, 4, 18, 22, 0, 1, 0
6, 9, 8, 25, 3, 2, 0, 1, 0
37, 16, 37, 29, 21, 22, 0, 1, 0
32, 32, 40, 7, 18, 32, 0, 1, 0
38, 31, 33, 33, 2, 11, 0, 1, 0
12, 19, 33, 20, 24, 9, 0, 1, 0
20, 25, 40, 21, 21, 8, 1, 0, 0
3, 25, 11, 25, 14, 15, 0, 1, 0
1, 15, 11, 3, 5, 10, 0, 1, 0
19, 13, 17, 34, 30, 2, 0, 0, 1
40, 23, 25, 31, 9, 18, 0, 1, 0
15, 33, 28, 39, 29, 3, 0, 1, 0
31, 16, 13, 16, 12, 26, 0, 1, 0
16, 6, 1, 8, 7, 36, 0, 1, 0
14, 23, 9, 25, 2, 6, 0, 0, 1
12, 23, 31, 26, 1, 14, 0, 1, 0
22, 3, 2, 18, 40, 30, 0, 0, 1
34, 7, 38, 34, 6, 17, 0, 1, 0
834 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
16, 34, 20, 2, 39, 23, 0, 1, 0
35, 14, 39, 17, 30, 13, 0, 1, 0
7, 19, 29, 24, 2, 12, 0, 1, 0
23, 5, 18, 6, 14, 8, 0, 1, 0
12, 3, 6, 24, 16, 32, 0, 1, 0
10, 1, 29, 23, 24, 39, 0, 1, 0
10, 38, 1, 5, 7, 6, 0, 1, 0
10, 36, 36, 14, 20, 9, 0, 1, 0
11, 30, 19, 22, 34, 39, 0, 1, 0
36, 6, 17, 23, 14, 8, 0, 1, 0
24, 37, 9, 34, 27, 5, 0, 1, 0
14, 17, 13, 39, 40, 32, 0, 1, 0
14, 4, 6, 39, 40, 17, 0, 1, 0
16, 7, 13, 13, 39, 11, 0, 1, 0
31, 33, 33, 4, 28, 31, 0, 1, 0
5, 1, 32, 23, 7, 29, 0, 1, 0
12, 23, 18, 37, 25, 24, 0, 1, 0
6, 38, 19, 40, 30, 14, 0, 1, 0
25, 37, 1, 39, 27, 37, 0, 1, 0
18, 16, 5, 2, 17, 2, 0, 1, 0
3, 33, 10, 8, 2, 3, 0, 1, 0
24, 12, 14, 1, 10, 34, 0, 0, 1
3, 27, 5, 31, 37, 5, 0, 1, 0
12, 26, 9, 11, 36, 35, 0, 1, 0
9, 8, 9, 19, 33, 34, 1, 0, 0
32, 23, 38, 18, 7, 5, 0, 1, 0
23, 19, 7, 40, 28, 15, 0, 1, 0
32, 23, 28, 38, 34, 22, 0, 1, 0
26.1. DATOS Y EJ ECUCIONES 835
13, 39, 1, 29, 6, 11, 0, 1, 0
11, 8, 20, 18, 34, 5, 0, 1, 0
28, 31, 2, 30, 22, 16, 0, 1, 0
5, 37, 17, 39, 29, 3, 0, 1, 0
7, 1, 10, 38, 3, 34, 0, 1, 0
3, 3, 21, 36, 2, 16, 0, 1, 0
27, 38, 14, 36, 8, 34, 0, 1, 0
20, 18, 26, 24, 15, 37, 0, 1, 0
19, 24, 26, 34, 6, 28, 0, 1, 0
23, 21, 5, 25, 20, 38, 0, 0, 1
26, 1, 16, 22, 39, 26, 0, 0, 1
10, 28, 12, 10, 3, 6, 0, 1, 0
18, 14, 2, 9, 33, 32, 0, 0, 1
34, 26, 23, 34, 19, 8, 0, 1, 0
30, 3, 29, 22, 28, 27, 0, 1, 0
30, 29, 22, 20, 37, 8, 0, 0, 1
10, 4, 38, 11, 15, 16, 0, 1, 0
30, 34, 21, 11, 23, 20, 0, 1, 0
20, 30, 16, 28, 10, 10, 0, 1, 0
10, 37, 14, 25, 2, 1, 0, 1, 0
4, 24, 6, 31, 12, 23, 0, 1, 0
11, 14, 31, 13, 5, 1, 0, 1, 0
37, 38, 40, 20, 25, 31, 0, 1, 0
32, 11, 1, 12, 12, 18, 0, 1, 0
21, 32, 30, 4, 31, 30, 0, 1, 0
5, 28, 31, 36, 7, 27, 0, 1, 0
9, 2, 5, 14, 36, 6, 0, 1, 0
13, 7, 39, 18, 16, 28, 0, 1, 0
836 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
32, 30, 28, 31, 21, 36, 0, 0, 1
16, 38, 14, 9, 7, 33, 0, 1, 0
12, 26, 28, 24, 23, 40, 0, 1, 0
29, 14, 38, 32, 26, 33, 0, 1, 0
13, 24, 18, 29, 3, 22, 0, 1, 0
9, 17, 17, 9, 1, 3, 0, 1, 0
33, 38, 33, 16, 17, 5, 0, 1, 0
10, 34, 29, 16, 26, 16, 0, 1, 0
40, 14, 24, 1, 31, 21, 0, 1, 0
31, 27, 27, 7, 5, 22, 0, 1, 0
36, 28, 8, 24, 26, 19, 0, 1, 0
10, 10, 19, 34, 30, 33, 0, 1, 0
15, 24, 25, 39, 8, 14, 0, 1, 0
9, 18, 3, 21, 20, 35, 0, 1, 0
11, 38, 18, 18, 36, 1, 0, 1, 0
30, 32, 7, 34, 39, 6, 0, 1, 0
31, 8, 30, 36, 32, 34, 0, 0, 1
14, 8, 35, 24, 30, 29, 0, 1, 0
24, 20, 12, 22, 22, 9, 0, 1, 0
5, 18, 13, 12, 6, 29, 0, 1, 0
40, 21, 23, 17, 17, 15, 0, 1, 0
22, 34, 39, 12, 39, 26, 0, 1, 0
30, 21, 33, 39, 12, 3, 0, 1, 0
24, 26, 40, 19, 24, 5, 0, 0, 1
1, 9, 16, 15, 16, 24, 0, 1, 0
35, 31, 30, 1, 18, 12, 0, 1, 0
12, 17, 36, 3, 28, 15, 0, 1, 0
30, 15, 34, 40, 19, 10, 0, 1, 0
26.1. DATOS Y EJ ECUCIONES 837
20, 23, 37, 40, 23, 34, 0, 1, 0
17, 38, 35, 28, 14, 1, 0, 1, 0
10, 37, 27, 21, 9, 12, 0, 1, 0
40, 14, 16, 14, 29, 16, 0, 1, 0
33, 28, 27, 11, 20, 31, 0, 1, 0
16, 27, 36, 28, 31, 22, 0, 1, 0
10, 18, 3, 34, 37, 35, 0, 1, 0
2, 22, 24, 26, 22, 39, 0, 1, 0
34, 12, 17, 27, 36, 39, 0, 1, 0
21, 12, 29, 4, 12, 25, 0, 1, 0
8, 9, 40, 28, 28, 34, 0, 1, 0
8, 34, 9, 1, 7, 24, 0, 1, 0
18, 29, 38, 25, 28, 39, 0, 1, 0
7, 27, 31, 33, 34, 19, 0, 1, 0
8, 34, 19, 14, 26, 37, 0, 1, 0
2, 24, 15, 15, 21, 36, 0, 1, 0
20, 28, 35, 17, 19, 2, 0, 0, 1
1, 26, 11, 21, 3, 19, 0, 1, 0
32, 13, 23, 27, 1, 31, 0, 1, 0
17, 19, 32, 24, 11, 12, 0, 1, 0
26, 28, 9, 2, 38, 26, 0, 1, 0
24, 26, 16, 36, 24, 6, 0, 0, 1
40, 18, 10, 13, 28, 27, 0, 1, 0
14, 3, 13, 9, 2, 18, 0, 0, 1
34, 17, 22, 10, 36, 17, 0, 1, 0
33, 38, 22, 3, 32, 10, 0, 0, 1
1, 38, 10, 27, 11, 14, 0, 1, 0
21, 31, 39, 35, 7, 29, 0, 1, 0
838 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
25, 37, 6, 20, 34, 15, 0, 0, 1
6, 40, 29, 28, 24, 35, 0, 1, 0
22, 40, 37, 39, 39, 12, 0, 1, 0
30, 5, 15, 18, 31, 27, 0, 1, 0
22, 23, 20, 9, 27, 39, 1, 0, 0
1, 22, 13, 26, 24, 20, 0, 1, 0
34, 25, 6, 3, 18, 39, 0, 1, 0
24, 7, 19, 40, 6, 39, 0, 0, 1
16, 29, 31, 17, 5, 24, 0, 1, 0
15, 36, 24, 6, 26, 38, 0, 1, 0
29, 26, 35, 6, 39, 26, 0, 0, 1
13, 11, 11, 22, 26, 23, 0, 1, 0
13, 39, 11, 15, 37, 40, 0, 1, 0
13, 24, 16, 3, 36, 10, 0, 1, 0
35, 15, 8, 2, 26, 6, 0, 1, 0
21, 5, 35, 38, 36, 26, 0, 1, 0
3, 36, 7, 24, 9, 10, 0, 1, 0
26, 14, 16, 18, 26, 22, 0, 1, 0
20, 17, 34, 14, 6, 26, 0, 1, 0
35, 8, 36, 28, 11, 27, 0, 1, 0
31, 18, 14, 7, 39, 33, 0, 1, 0
3, 37, 15, 40, 22, 17, 0, 1, 0
15, 26, 6, 33, 23, 14, 0, 1, 0
11, 5, 23, 15, 37, 11, 0, 1, 0
25, 6, 14, 5, 16, 10, 0, 1, 0
21, 4, 40, 12, 25, 8, 0, 0, 1
15, 17, 36, 18, 19, 18, 0, 1, 0
27, 27, 2, 6, 7, 34, 0, 1, 0
26.1. DATOS Y EJ ECUCIONES 839
4, 20, 22, 14, 18, 40, 0, 1, 0
18, 12, 10, 8, 14, 22, 0, 0, 1
40, 20, 6, 35, 15, 40, 0, 1, 0
34, 17, 36, 36, 19, 4, 0, 1, 0
40, 34, 27, 30, 25, 5, 0, 1, 0
26, 24, 29, 2, 36, 28, 0, 0, 1
20, 21, 1, 5, 29, 32, 0, 1, 0
36, 26, 9, 1, 17, 23, 0, 1, 0
19, 16, 21, 4, 31, 36, 0, 0, 1
9, 31, 20, 31, 17, 15, 0, 1, 0
7, 4, 33, 25, 24, 30, 0, 1, 0
21, 39, 19, 33, 7, 26, 0, 0, 1
37, 22, 25, 3, 5, 5, 0, 1, 0
34, 17, 37, 27, 30, 26, 0, 1, 0
26, 9, 13, 13, 31, 24, 0, 0, 1
27, 23, 37, 10, 3, 32, 0, 0, 1
39, 35, 4, 11, 14, 9, 0, 1, 0
36, 39, 12, 32, 39, 20, 0, 1, 0
28, 28, 20, 17, 37, 19, 0, 0, 1
33, 31, 31, 4, 25, 4, 0, 1, 0
22, 8, 8, 20, 28, 3, 0, 0, 1
16, 30, 31, 33, 39, 28, 0, 1, 0
32, 5, 31, 38, 40, 32, 0, 0, 1
29, 4, 30, 18, 21, 28, 0, 1, 0
14, 13, 3, 8, 33, 7, 0, 1, 0
1, 6, 20, 14, 5, 29, 0, 1, 0
40, 21, 3, 11, 40, 17, 0, 1, 0
21, 32, 26, 13, 38, 31, 0, 1, 0
840 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
19, 15, 32, 39, 38, 8, 0, 1, 0
39, 18, 40, 6, 32, 7, 0, 1, 0
23, 19, 25, 13, 40, 36, 0, 1, 0
32, 6, 9, 19, 40, 35, 0, 1, 0
36, 27, 14, 19, 33, 39, 0, 0, 1
18, 32, 34, 1, 33, 36, 0, 1, 0
33, 8, 34, 24, 21, 1, 0, 1, 0
3, 28, 37, 10, 35, 12, 0, 1, 0
30, 2, 12, 7, 14, 9, 0, 1, 0
35, 19, 36, 40, 1, 23, 0, 1, 0
17, 15, 28, 17, 5, 40, 0, 1, 0
34, 36, 31, 2, 34, 19, 0, 1, 0
38, 17, 38, 29, 25, 7, 0, 1, 0
37, 7, 32, 23, 1, 3, 0, 1, 0
22, 37, 11, 10, 22, 2, 0, 0, 1
13, 40, 32, 26, 22, 26, 0, 1, 0
30, 25, 25, 12, 30, 24, 0, 1, 0
3, 29, 24, 13, 28, 1, 0, 1, 0
18, 7, 24, 29, 6, 11, 0, 1, 0
39, 17, 19, 8, 39, 17, 0, 1, 0
26, 35, 19, 20, 8, 33, 0, 0, 1
18, 37, 14, 7, 7, 7, 0, 1, 0
33, 33, 8, 1, 18, 33, 0, 1, 0
16, 39, 4, 4, 40, 40, 0, 1, 0
26, 30, 24, 16, 21, 27, 0, 1, 0
20, 23, 38, 23, 35, 12, 0, 1, 0
13, 22, 24, 21, 3, 13, 0, 1, 0
22, 28, 31, 5, 19, 38, 0, 0, 1
26.1. DATOS Y EJ ECUCIONES 841
25, 37, 9, 37, 39, 33, 0, 1, 0
9, 34, 14, 12, 36, 34, 0, 1, 0
28, 7, 33, 31, 5, 36, 0, 1, 0
1, 33, 9, 22, 19, 25, 0, 1, 0
27, 20, 15, 34, 2, 20, 0, 0, 1
36, 21, 33, 14, 10, 36, 0, 1, 0
38, 37, 11, 25, 37, 4, 0, 1, 0
2, 7, 33, 18, 31, 10, 0, 1, 0
5, 11, 6, 19, 9, 19, 0, 1, 0
34, 28, 39, 17, 17, 39, 0, 1, 0
12, 35, 8, 31, 26, 38, 0, 1, 0
28, 7, 29, 28, 36, 19, 0, 1, 0
35, 14, 13, 25, 38, 31, 0, 1, 0
7, 20, 4, 1, 11, 23, 0, 1, 0
15, 6, 32, 8, 7, 36, 0, 1, 0
28, 24, 24, 25, 18, 37, 0, 0, 1
1, 38, 8, 35, 35, 15, 0, 1, 0
1, 35, 21, 14, 1, 17, 0, 1, 0
31, 27, 30, 29, 1, 24, 0, 1, 0
22, 18, 26, 10, 12, 16, 0, 0, 1
17, 2, 4, 34, 23, 18, 0, 1, 0
1, 37, 19, 15, 34, 3, 0, 1, 0
18, 26, 24, 8, 34, 4, 0, 1, 0
16, 27, 1, 11, 22, 31, 0, 1, 0
13, 35, 7, 16, 14, 35, 0, 1, 0
7, 14, 15, 29, 11, 18, 0, 1, 0
1, 24, 29, 31, 5, 34, 0, 1, 0
12, 14, 20, 12, 12, 9, 0, 1, 0
842 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
11, 29, 30, 17, 4, 38, 0, 1, 0
19, 37, 37, 38, 8, 19, 0, 1, 0
40, 9, 17, 12, 21, 25, 0, 1, 0
31, 14, 9, 31, 29, 7, 0, 1, 0
34, 33, 9, 5, 36, 28, 0, 0, 1
22, 6, 36, 10, 29, 7, 0, 1, 0
6, 20, 4, 20, 35, 12, 0, 1, 0
25, 22, 39, 12, 32, 34, 0, 1, 0
26, 37, 14, 38, 15, 16, 0, 1, 0
12, 26, 18, 20, 31, 5, 0, 1, 0
3, 39, 10, 1, 14, 25, 0, 1, 0
22, 2, 27, 26, 40, 27, 0, 1, 0
34, 30, 35, 23, 20, 14, 0, 1, 0
3, 7, 22, 19, 38, 30, 0, 1, 0
6, 14, 17, 1, 12, 17, 0, 1, 0
16, 11, 37, 17, 38, 22, 0, 1, 0
34, 1, 13, 7, 5, 34, 0, 1, 0
26, 5, 7, 13, 34, 15, 0, 1, 0
34, 38, 28, 38, 39, 31, 0, 0, 1
34, 36, 29, 17, 8, 36, 0, 1, 0
40, 36, 26, 26, 14, 28, 0, 1, 0
7, 25, 22, 27, 15, 11, 0, 1, 0
25, 15, 10, 20, 6, 6, 0, 1, 0
13, 38, 9, 35, 34, 24, 0, 1, 0
34, 34, 29, 35, 26, 28, 0, 1, 0
8, 24, 33, 25, 1, 36, 0, 1, 0
39, 16, 21, 38, 30, 19, 0, 1, 0
37, 8, 8, 25, 3, 9, 0, 1, 0
26.1. DATOS Y EJ ECUCIONES 843
11, 19, 2, 18, 40, 30, 0, 1, 0
28, 32, 11, 28, 12, 28, 0, 1, 0
27, 40, 7, 8, 2, 17, 0, 0, 1
10, 35, 33, 3, 37, 26, 0, 1, 0
4, 2, 14, 31, 3, 11, 0, 1, 0
12, 25, 29, 21, 14, 32, 0, 1, 0
34, 22, 1, 21, 15, 3, 0, 1, 0
31, 28, 25, 20, 11, 38, 0, 0, 1
18, 11, 23, 37, 10, 8, 0, 0, 1
15, 1, 5, 33, 35, 17, 0, 1, 0
33, 36, 33, 28, 22, 36, 0, 1, 0
31, 12, 39, 23, 36, 12, 0, 1, 0
27, 9, 29, 39, 3, 10, 0, 1, 0
15, 7, 20, 37, 37, 10, 0, 1, 0
32, 39, 11, 8, 1, 39, 0, 1, 0
4, 36, 5, 30, 11, 2, 0, 1, 0
26, 17, 3, 17, 1, 14, 0, 1, 0
21, 20, 26, 10, 8, 28, 0, 0, 1
29, 27, 6, 32, 12, 29, 0, 0, 1
26, 12, 20, 26, 28, 21, 0, 1, 0
29, 31, 37, 22, 24, 23, 0, 1, 0
30, 17, 11, 22, 39, 14, 0, 0, 1
28, 35, 2, 10, 9, 32, 0, 1, 0
38, 6, 36, 14, 27, 15, 0, 1, 0
35, 26, 23, 15, 37, 35, 0, 1, 0
17, 40, 25, 8, 19, 5, 0, 1, 0
30, 8, 31, 32, 25, 27, 0, 1, 0
11, 32, 19, 4, 35, 30, 0, 1, 0
844 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
40, 22, 5, 28, 16, 16, 0, 1, 0
36, 19, 40, 5, 15, 18, 0, 1, 0
7, 21, 22, 23, 16, 32, 0, 1, 0
2, 20, 7, 23, 40, 20, 0, 1, 0
31, 34, 23, 13, 19, 37, 0, 1, 0
38, 25, 26, 4, 36, 34, 0, 1, 0
36, 32, 28, 6, 10, 24, 0, 1, 0
5, 1, 9, 29, 6, 40, 0, 1, 0
6, 34, 25, 9, 17, 13, 0, 1, 0
6, 39, 15, 10, 38, 2, 0, 1, 0
6, 20, 13, 18, 32, 19, 0, 1, 0
29, 29, 23, 9, 34, 30, 0, 1, 0
33, 6, 1, 14, 10, 27, 0, 1, 0
25, 5, 29, 27, 37, 23, 0, 0, 1
36, 15, 2, 8, 12, 6, 0, 1, 0
39, 7, 25, 30, 11, 3, 0, 1, 0
4, 25, 32, 6, 28, 31, 0, 1, 0
34, 26, 2, 19, 30, 27, 0, 1, 0
35, 40, 2, 25, 8, 22, 0, 1, 0
28, 32, 20, 35, 8, 39, 0, 1, 0
38, 5, 11, 5, 31, 20, 0, 1, 0
20, 15, 15, 21, 4, 40, 0, 1, 0
34, 39, 21, 29, 1, 29, 0, 1, 0
2, 9, 11, 24, 12, 30, 0, 1, 0
32, 15, 17, 30, 30, 1, 0, 1, 0
39, 6, 15, 35, 39, 24, 0, 1, 0
18, 13, 38, 37, 14, 19, 0, 1, 0
40, 12, 29, 13, 35, 25, 0, 1, 0
26.1. DATOS Y EJ ECUCIONES 845
33, 17, 9, 32, 8, 4, 0, 1, 0
40, 21, 29, 30, 32, 29, 0, 1, 0
18, 26, 38, 7, 9, 22, 0, 1, 0
22, 8, 22, 6, 1, 11, 0, 1, 0
13, 38, 17, 5, 4, 14, 0, 1, 0
22, 3, 12, 6, 26, 34, 0, 1, 0
36, 37, 7, 17, 23, 39, 0, 1, 0
22, 34, 24, 36, 14, 10, 0, 1, 0
26, 2, 28, 32, 15, 25, 0, 0, 1
32, 15, 30, 5, 32, 29, 0, 1, 0
7, 16, 9, 4, 5, 23, 0, 1, 0
13, 37, 13, 8, 11, 40, 0, 1, 0
5, 3, 8, 22, 14, 34, 0, 1, 0
1, 23, 7, 35, 28, 39, 0, 1, 0
21, 34, 21, 30, 18, 16, 0, 1, 0
28, 7, 33, 25, 2, 33, 0, 0, 1
38, 4, 19, 14, 31, 15, 0, 1, 0
846 CAPTULO 26. BSQUEDA EN DISCO CON REDES NEURONALES
Captulo 27
Concurrencia e Hilos con J ava
27.1 Datos y Ejecuciones
Contenido del archivo Hilos.dat:
0
30
40
50
2000
Quedan 0unidades. El Consumidor 1ha leido 0unidades.
Quedan 50unidades. El Productor 1ha grabado 50unidades.
Quedan 49unidades. El Consumidor 2ha leido 1unidades.
Quedan 31unidades. El Consumidor 2ha leido 18unidades.
Quedan 81unidades. El Productor 2ha grabado 50unidades.
Quedan 53unidades. El Consumidor 1ha leido 28unidades.
Quedan 42unidades. El Consumidor 1ha leido 11unidades.
Quedan 39unidades. El Consumidor 1ha leido 3unidades.
Quedan 89unidades. El Productor 1ha grabado 50unidades.
Quedan 85unidades. El Consumidor 2ha leido 4unidades.
Quedan 66unidades. El Consumidor 2ha leido 19unidades.
Quedan 66unidades. El Consumidor 2ha leido 0unidades.
Quedan 61unidades. El Consumidor 2ha leido 5unidades.
847
848 CAPTULO 27. CONCURRENCIA E HILOS CON J AVA
Quedan 33unidades. El Consumidor 2ha leido 28unidades.
Quedan 83unidades. El Productor 2ha grabado 50unidades.
Quedan 58unidades. El Consumidor 3ha leido 25unidades.
Quedan 46unidades. El Consumidor 3ha leido 12unidades.
Quedan 22unidades. El Consumidor 3ha leido 24unidades.
Quedan 72unidades. El Productor 1ha grabado 50unidades.
Quedan 50unidades. El Consumidor 1ha leido 22unidades.
Quedan 35unidades. El Consumidor 2ha leido 15unidades.
Quedan 85unidades. El Productor 2ha grabado 50unidades.
Quedan 77unidades. El Consumidor 3ha leido 8unidades.
Quedan 71unidades. El Consumidor 1ha leido 6unidades.
Quedan 54unidades. El Consumidor 1ha leido 17unidades.
Quedan 40unidades. El Consumidor 1ha leido 14unidades.
Quedan 90unidades. El Productor 1ha grabado 50unidades.
Quedan 74unidades. El Consumidor 3ha leido 16unidades.
Quedan 64unidades. El Consumidor 3ha leido 10unidades.
Quedan 53unidades. El Consumidor 1ha leido 11unidades.
Quedan 43unidades. El Consumidor 1ha leido 10unidades.
Quedan 23unidades. El Consumidor 1ha leido 20unidades.
Quedan 73unidades. El Productor 2ha grabado 50unidades.
Quedan 64unidades. El Consumidor 2ha leido 9unidades.
Quedan 62unidades. El Consumidor 2ha leido 2unidades.
Quedan 45unidades. El Consumidor 2ha leido 17unidades.
Quedan 24unidades. El Consumidor 2ha leido 21unidades.
Quedan 74unidades. El Productor 2ha grabado 50unidades.
Quedan 70unidades. El Consumidor 1ha leido 4unidades.
Quedan 68unidades. El Consumidor 1ha leido 2unidades.
Quedan 61unidades. El Consumidor 1ha leido 7unidades.
27.1. DATOS Y EJ ECUCIONES 849
Quedan 34unidades. El Consumidor 1ha leido 27unidades.
Quedan 84unidades. El Productor 1ha grabado 50unidades.
Quedan 60unidades. El Consumidor 2ha leido 24unidades.
Quedan 41unidades. El Consumidor 3ha leido 19unidades.
Quedan 35unidades. El Consumidor 3ha leido 6unidades.
Quedan 85unidades. El Productor 2ha grabado 50unidades.
Quedan 85unidades. El Consumidor 1ha leido 0unidades.
Quedan 81unidades. El Consumidor 1ha leido 4unidades.
Quedan 62unidades. El Consumidor 1ha leido 19unidades.
Quedan 62unidades. El Consumidor 2ha leido 0unidades.
Quedan 48unidades. El Consumidor 2ha leido 14unidades.
Quedan 47unidades. El Consumidor 2ha leido 1unidades.
Quedan 29unidades. El Consumidor 2ha leido 18unidades.
Quedan 79unidades. El Productor 1ha grabado 50unidades.
Quedan 52unidades. El Consumidor 3ha leido 27unidades.
Quedan 39unidades. El Consumidor 3ha leido 13unidades.
Quedan 89unidades. El Productor 2ha grabado 50unidades.
Quedan 69unidades. El Consumidor 2ha leido 20unidades.
Quedan 62unidades. El Consumidor 2ha leido 7unidades.
Quedan 49unidades. El Consumidor 2ha leido 13unidades.
Quedan 33unidades. El Consumidor 1ha leido 16unidades.
Quedan 83unidades. El Productor 1ha grabado 50unidades.
Quedan 60unidades. El Consumidor 3ha leido 23unidades.
Quedan 56unidades. El Consumidor 3ha leido 4unidades.
Quedan 43unidades. El Consumidor 2ha leido 13unidades.
Quedan 43unidades. El Consumidor 2ha leido 0unidades.
Quedan 42unidades. El Consumidor 2ha leido 1unidades.
Quedan 21unidades. El Consumidor 2ha leido 21unidades.
850 CAPTULO 27. CONCURRENCIA E HILOS CON J AVA
Quedan 71unidades. El Productor 2ha grabado 50unidades.
Quedan 62unidades. El Consumidor 1ha leido 9unidades.
Quedan 57unidades. El Consumidor 1ha leido 5unidades.
Quedan 52unidades. El Consumidor 1ha leido 5unidades.
Quedan 39unidades. El Consumidor 1ha leido 13unidades.
Quedan 89unidades. El Productor 1ha grabado 50unidades.
Quedan 66unidades. El Consumidor 3ha leido 23unidades.
Quedan 38unidades. El Consumidor 3ha leido 28unidades.
Quedan 88unidades. El Productor 1ha grabado 50unidades.
Quedan 69unidades. El Consumidor 2ha leido 19unidades.
Quedan 60unidades. El Consumidor 2ha leido 9unidades.
Quedan 60unidades. El Consumidor 3ha leido 0unidades.
Quedan 55unidades. El Consumidor 3ha leido 5unidades.
Quedan 45unidades. El Consumidor 3ha leido 10unidades.
Quedan 20unidades. El Consumidor 3ha leido 25unidades.
Quedan 70unidades. El Productor 2ha grabado 50unidades.
Quedan 65unidades. El Consumidor 1ha leido 5unidades.
Quedan 59unidades. El Consumidor 1ha leido 6unidades.
Quedan 56unidades. El Consumidor 1ha leido 3unidades.
Quedan 45unidades. El Consumidor 1ha leido 11unidades.
Quedan 39unidades. El Consumidor 1ha leido 6unidades.
Quedan 89unidades. El Productor 1ha grabado 50unidades.
Quedan 86unidades. El Consumidor 3ha leido 3unidades.
Quedan 73unidades. El Consumidor 3ha leido 13unidades.
Quedan 65unidades. El Consumidor 3ha leido 8unidades.
Quedan 52unidades. El Consumidor 3ha leido 13unidades.
Quedan 24unidades. El Consumidor 3ha leido 28unidades.
Quedan 74unidades. El Productor 2ha grabado 50unidades.
27.1. DATOS Y EJ ECUCIONES 851
Quedan 46unidades. El Consumidor 1ha leido 28unidades.
Quedan 29unidades. El Consumidor 1ha leido 17unidades.
Quedan 79unidades. El Productor 1ha grabado 50unidades.
Quedan 58unidades. El Consumidor 2ha leido 21unidades.
Quedan 57unidades. El Consumidor 2ha leido 1unidades.
Quedan 33unidades. El Consumidor 2ha leido 24unidades.
Quedan 83unidades. El Productor 2ha grabado 50unidades.
Quedan 73unidades. El Consumidor 3ha leido 10unidades.
Quedan 61unidades. El Consumidor 1ha leido 12unidades.
Quedan 32unidades. El Consumidor 1ha leido 29unidades.
Quedan 82unidades. El Productor 1ha grabado 50unidades.
Quedan 80unidades. El Consumidor 2ha leido 2unidades.
Quedan 72unidades. El Consumidor 3ha leido 8unidades.
Quedan 54unidades. El Consumidor 3ha leido 18unidades.
Quedan 30unidades. El Consumidor 3ha leido 24unidades.
Quedan 80unidades. El Productor 2ha grabado 50unidades.
Quedan 77unidades. El Consumidor 1ha leido 3unidades.
Quedan 70unidades. El Consumidor 1ha leido 7unidades.
Quedan 48unidades. El Consumidor 1ha leido 22unidades.
Quedan 27unidades. El Consumidor 1ha leido 21unidades.
Quedan 77unidades. El Productor 1ha grabado 50unidades.
Quedan 73unidades. El Consumidor 2ha leido 4unidades.
Quedan 49unidades. El Consumidor 2ha leido 24unidades.
Quedan 47unidades. El Consumidor 2ha leido 2unidades.
Quedan 34unidades. El Consumidor 1ha leido 13unidades.
Quedan 84unidades. El Productor 1ha grabado 50unidades.
Quedan 80unidades. El Consumidor 3ha leido 4unidades.
Quedan 63unidades. El Consumidor 3ha leido 17unidades.
852 CAPTULO 27. CONCURRENCIA E HILOS CON J AVA
Quedan 43unidades. El Consumidor 3ha leido 20unidades.
Quedan 22unidades. El Consumidor 2ha leido 21unidades.
Quedan 72unidades. El Productor 2ha grabado 50unidades.
Quedan 55unidades. El Consumidor 2ha leido 17unidades.
Quedan 33unidades. El Consumidor 2ha leido 22unidades.
Quedan 83unidades. El Productor 1ha grabado 50unidades.
Quedan 63unidades. El Consumidor 1ha leido 20unidades.
Quedan 51unidades. El Consumidor 1ha leido 12unidades.
Quedan 45unidades. El Consumidor 1ha leido 6unidades.
Quedan 26unidades. El Consumidor 1ha leido 19unidades.
Quedan 76unidades. El Productor 2ha grabado 50unidades.
Quedan 59unidades. El Consumidor 2ha leido 17unidades.
Quedan 44unidades. El Consumidor 2ha leido 15unidades.
Quedan 40unidades. El Consumidor 1ha leido 4unidades.
Quedan 90unidades. El Productor 1ha grabado 50unidades.
Quedan 79unidades. El Consumidor 3ha leido 11unidades.
Quedan 70unidades. El Consumidor 3ha leido 9unidades.
Quedan 48unidades. El Consumidor 3ha leido 22unidades.
Quedan 43unidades. El Consumidor 3ha leido 5unidades.
Quedan 16unidades. El Consumidor 3ha leido 27unidades.
Quedan 66unidades. El Productor 2ha grabado 50unidades.
Quedan 60unidades. El Consumidor 2ha leido 6unidades.
Quedan 42unidades. El Consumidor 2ha leido 18unidades.
Quedan 23unidades. El Consumidor 2ha leido 19unidades.
Quedan 73unidades. El Productor 1ha grabado 50unidades.
Quedan 45unidades. El Consumidor 3ha leido 28unidades.
Quedan 38unidades. El Consumidor 3ha leido 7unidades.
Quedan 88unidades. El Productor 2ha grabado 50unidades.
27.1. DATOS Y EJ ECUCIONES 853
Quedan 71unidades. El Consumidor 2ha leido 17unidades.
Quedan 71unidades. El Consumidor 2ha leido 0unidades.
Quedan 47unidades. El Consumidor 2ha leido 24unidades.
Quedan 24unidades. El Consumidor 3ha leido 23unidades.
Quedan 74unidades. El Productor 1ha grabado 50unidades.
Quedan 69unidades. El Consumidor 3ha leido 5unidades.
Quedan 42unidades. El Consumidor 3ha leido 27unidades.
Quedan 13unidades. El Consumidor 3ha leido 29unidades.
Quedan 63unidades. El Productor 2ha grabado 50unidades.
Quedan 58unidades. El Consumidor 2ha leido 5unidades.
Quedan 46unidades. El Consumidor 2ha leido 12unidades.
Quedan 46unidades. El Consumidor 1ha leido 0unidades.
Quedan 21unidades. El Consumidor 1ha leido 25unidades.
Quedan 71unidades. El Productor 2ha grabado 50unidades.
Quedan 64unidades. El Consumidor 3ha leido 7unidades.
Quedan 40unidades. El Consumidor 2ha leido 24unidades.
Quedan 90unidades. El Productor 1ha grabado 50unidades.
Quedan 89unidades. El Consumidor 1ha leido 1unidades.
Quedan 68unidades. El Consumidor 1ha leido 21unidades.
Quedan 45unidades. El Consumidor 1ha leido 23unidades.
Quedan 18unidades. El Consumidor 3ha leido 27unidades.
Quedan 68unidades. El Productor 2ha grabado 50unidades.
Quedan 65unidades. El Consumidor 2ha leido 3unidades.
Quedan 49unidades. El Consumidor 2ha leido 16unidades.
Quedan 24unidades. El Consumidor 2ha leido 25unidades.
Quedan 74unidades. El Productor 1ha grabado 50unidades.
Quedan 59unidades. El Consumidor 3ha leido 15unidades.
Quedan 44unidades. El Consumidor 3ha leido 15unidades.
854 CAPTULO 27. CONCURRENCIA E HILOS CON J AVA
Quedan 32unidades. El Consumidor 3ha leido 12unidades.
Quedan 82unidades. El Productor 1ha grabado 50unidades.
Quedan 77unidades. El Consumidor 1ha leido 5unidades.
Quedan 62unidades. El Consumidor 1ha leido 15unidades.
Quedan 44unidades. El Consumidor 1ha leido 18unidades.
Quedan 37unidades. El Consumidor 1ha leido 7unidades.
Quedan 87unidades. El Productor 2ha grabado 50unidades.
Quedan 64unidades. El Consumidor 3ha leido 23unidades.
Quedan 47unidades. El Consumidor 3ha leido 17unidades.
Quedan 44unidades. El Consumidor 2ha leido 3unidades.
Quedan 43unidades. El Consumidor 2ha leido 1unidades.
Quedan 18unidades. El Consumidor 2ha leido 25unidades.
Quedan 68unidades. El Productor 1ha grabado 50unidades.
Quedan 41unidades. El Consumidor 1ha leido 27unidades.
Quedan 24unidades. El Consumidor 1ha leido 17unidades.
Quedan 74unidades. El Productor 2ha grabado 50unidades.
Quedan 51unidades. El Consumidor 3ha leido 23unidades.
Quedan 42unidades. El Consumidor 1ha leido 9unidades.
Quedan 16unidades. El Consumidor 1ha leido 26unidades.
Quedan 66unidades. El Productor 2ha grabado 50unidades.
Quedan 50unidades. El Consumidor 2ha leido 16unidades.
Quedan 28unidades. El Consumidor 2ha leido 22unidades.
Quedan 78unidades. El Productor 1ha grabado 50unidades.
Quedan 74unidades. El Consumidor 1ha leido 4unidades.
Quedan 50unidades. El Consumidor 3ha leido 24unidades.
Quedan 35unidades. El Consumidor 3ha leido 15unidades.
Quedan 85unidades. El Productor 2ha grabado 50unidades.
Quedan 74unidades. El Consumidor 2ha leido 11unidades.
27.1. DATOS Y EJ ECUCIONES 855
Quedan 59unidades. El Consumidor 2ha leido 15unidades.
Quedan 59unidades. El Consumidor 1ha leido 0unidades.
Quedan 30unidades. El Consumidor 1ha leido 29unidades.
Quedan 80unidades. El Productor 1ha grabado 50unidades.
Quedan 53unidades. El Consumidor 3ha leido 27unidades.
Quedan 43unidades. El Consumidor 3ha leido 10unidades.
Quedan 19unidades. El Consumidor 3ha leido 24unidades.
Quedan 69unidades. El Productor 2ha grabado 50unidades.
Quedan 69unidades. El Consumidor 1ha leido 0unidades.
Quedan 45unidades. El Consumidor 1ha leido 24unidades.
Quedan 32unidades. El Consumidor 1ha leido 13unidades.
Quedan 82unidades. El Productor 1ha grabado 50unidades.
Quedan 78unidades. El Consumidor 2ha leido 4unidades.
Quedan 52unidades. El Consumidor 2ha leido 26unidades.
Quedan 32unidades. El Consumidor 2ha leido 20unidades.
Quedan 82unidades. El Productor 1ha grabado 50unidades.
Quedan 74unidades. El Consumidor 1ha leido 8unidades.
Quedan 74unidades. El Consumidor 1ha leido 0unidades.
Quedan 65unidades. El Consumidor 1ha leido 9unidades.
Quedan 56unidades. El Consumidor 1ha leido 9unidades.
Quedan 52unidades. El Consumidor 3ha leido 4unidades.
Quedan 44unidades. El Consumidor 3ha leido 8unidades.
Quedan 18unidades. El Consumidor 2ha leido 26unidades.
Quedan 68unidades. El Productor 2ha grabado 50unidades.
Quedan 48unidades. El Consumidor 2ha leido 20unidades.
Quedan 42unidades. El Consumidor 2ha leido 6unidades.
Quedan 27unidades. El Consumidor 1ha leido 15unidades.
Quedan 77unidades. El Productor 1ha grabado 50unidades.
856 CAPTULO 27. CONCURRENCIA E HILOS CON J AVA
Quedan 77unidades. El Consumidor 1ha leido 0unidades.
Quedan 62unidades. El Consumidor 1ha leido 15unidades.
Quedan 59unidades. El Consumidor 1ha leido 3unidades.
Quedan 55unidades. El Consumidor 1ha leido 4unidades.
Quedan 31unidades. El Consumidor 1ha leido 24unidades.
Quedan 81unidades. El Productor 1ha grabado 50unidades.
Quedan 71unidades. El Consumidor 3ha leido 10unidades.
Quedan 49unidades. El Consumidor 3ha leido 22unidades.
Quedan 24unidades. El Consumidor 3ha leido 25unidades.
Quedan 74unidades. El Productor 2ha grabado 50unidades.
Quedan 46unidades. El Consumidor 3ha leido 28unidades.
Quedan 22unidades. El Consumidor 3ha leido 24unidades.
Quedan 72unidades. El Productor 1ha grabado 50unidades.
Quedan 43unidades. El Consumidor 2ha leido 29unidades.
Quedan 27unidades. El Consumidor 2ha leido 16unidades.
Quedan 77unidades. El Productor 2ha grabado 50unidades.
Quedan 68unidades. El Consumidor 3ha leido 9unidades.
Quedan 43unidades. El Consumidor 3ha leido 25unidades.
Quedan 25unidades. El Consumidor 3ha leido 18unidades.
Quedan 75unidades. El Productor 1ha grabado 50unidades.
Quedan 73unidades. El Consumidor 2ha leido 2unidades.
Quedan 61unidades. El Consumidor 2ha leido 12unidades.
Quedan 39unidades. El Consumidor 2ha leido 22unidades.
Quedan 89unidades. El Productor 2ha grabado 50unidades.
Quedan 85unidades. El Consumidor 3ha leido 4unidades.
Quedan 68unidades. El Consumidor 3ha leido 17unidades.
Quedan 57unidades. El Consumidor 1ha leido 11unidades.
Quedan 41unidades. El Consumidor 1ha leido 16unidades.
27.1. DATOS Y EJ ECUCIONES 857
Quedan 25unidades. El Consumidor 1ha leido 16unidades.
Quedan 75unidades. El Productor 1ha grabado 50unidades.
Quedan 67unidades. El Consumidor 2ha leido 8unidades.
Quedan 67unidades. El Consumidor 3ha leido 0unidades.
Quedan 65unidades. El Consumidor 3ha leido 2unidades.
Quedan 46unidades. El Consumidor 3ha leido 19unidades.
Quedan 36unidades. El Consumidor 3ha leido 10unidades.
Quedan 86unidades. El Productor 1ha grabado 50unidades.
Quedan 82unidades. El Consumidor 2ha leido 4unidades.
Quedan 64unidades. El Consumidor 2ha leido 18unidades.
Quedan 48unidades. El Consumidor 2ha leido 16unidades.
Quedan 46unidades. El Consumidor 2ha leido 2unidades.
Quedan 42unidades. El Consumidor 2ha leido 4unidades.
Quedan 19unidades. El Consumidor 2ha leido 23unidades.
Fin dela ejecucin.
858 CAPTULO 27. CONCURRENCIA E HILOS CON J AVA
Captulo 28
Anomala de Belady con Matlab
28.1 Datos y Ejecuciones
Contenido del archivo Anomalia.dat:
Vector derequerimientos depginas para la simulacin:
622 684 182 511 999 231233 655 611 501 3 281 558 359 421 446 12 985 980 847 11 866
957 967 224 990 516 267 982 487 924 629 308 803 134 573 175 802 399 982 871 11
492676 57817453985 7811000 389972228 770221956 498941155 457842976
3011240970054768886737949985621500623703765891577633535285360
178365848543264497447
Pares celdas depgina disponibles y fallos depginas ocurridos:
890
1090
1289
NO seha producido la Anomala deBelady en la simulacin efectuada.
Vector derequerimientos depginas para la simulacin:
471 590 792 692 95 212 714 16 192 330 16 255 483 891 675 736 874 893 584 552 3 811
238435 584240629 792506334 401419899 333801875 745932209 533278199
803788178353668611744997717494428060184312049234464557049648
148390856204604109754472741389325310458847016879449797104631
74255340516753664
Pares celdas depgina disponibles y fallos depginas ocurridos:
886
1086
1286
859
860 CAPTULO 28. ANOMALA DE BELADY CON MATLAB
NO seha producido la Anomala deBelady en la simulacin efectuada.
Vector derequerimientos depginas para la simulacin:
44487697986497926827777286
Pares celdas depgina disponibles y fallos depginas ocurridos:
28
38
48
NO seha producido la Anomala deBelady en la simulacin efectuada.
Vector derequerimientos depginas para la simulacin:
553865706923273591822483706
Pares celdas depgina disponibles y fallos depginas ocurridos:
29
39
49
NO seha producido la Anomala deBelady en la simulacin efectuada.
Vector derequerimientos depginas para la simulacin:
223774721174115506678535496276673337353751684179443974772325115
599 726 781 586 799 99 934 867 930 448 935 651 633 726 130 444 353 909 869 791
3163403183225863965317189516966959376225539823161326952110591
951 87 923 602 35613412269312 533 547 0653160981182339376534448915
436886543203666331961733713551534784399070355364736423684690
776762499471600889748184966028871815511321139627865145747504
377923529 244717598 784129980 817394398927943577679784398998604
968 945 990 9 581 995 660 381 23 519 393 335 463 395 36 878 994 98 117 173 412
784345210447649294661616486582649814543556036784518764620665
519864281283881826190902957965918413397432994181771553179864
141636487783284781787415567817209553857861922587388654639858
516 113 955 757 817 366 118 584 415 637 648 290 45216355264 415 82 263 859 2
4518852068020371660756040208614842244583356674153883384620703
972 636 34 856 617 149 715 444 601 200 437 349 715 282 323 909 415 974 280 843
348 178 522 867 720 343 817 149 596 402 373 978 158 499 749 347 521 914 349 54
510 446 161 212 290 806 51 746 596 354 250 704 226 293 331 904 987 328 556 898
812 413 686 548 615 9658956437 750 250 109 490 109 443 494 1617275530723
844 238 418 214 141 889 974 6813 360 833 511 246 583 809 758 7190825893735
279 606 204 631 311 596 362 934 348 706 629 209 74985347651 731889185532
761 361 4362586842538941880 122 744 548 864 278 948 126 116 513 976 6649
28.1. DATOS Y EJ ECUCIONES 861
609459 364605368 808787651 965810627 851227243 279969269 388371585
674767859370570372929694489233758747147034186069450067812728
521289428902764923817111764184780651922491815169455373569719
278763888603451777980246876390121976383128364628547899791168
118192746731274793437135096718526449161682620556638477185561
5292484134255028345968366888792485525498341149712162515801241
890 980 968 218 482 592 868 472 592 705 256 68 780 672 462 990 347 286 465 870
454 153 732 663 693 615 622 976 250 125 40 620 578 819 887 901 718 467 279 745
724291844855158056363846058349581708322485094799422167685981
9685148587219635160727765171887343173477990792318987882266863
708 852 515 288 980 674 465 133 609 770 70 832 850 679 551 896 715 783 618 298
281 434 264 952 445 89 882 852 859 747 619 986 361 198 531 652 219 463 381 896
972 645 456 599 420 96 665 560 393 331 753 549 175 788 734 490 717 696 520 986
6512699884669909994137169732217334118176698187847953141918597
888679507867221419895210272965602874818775351352452115036430
988627264123422066579459945756434575181995640820848183962223
218627 952842753 950658570 231428994 840825881 579330333 796231646
2019933012363782982679815317693113318607568985313930477132946
7198745861548561364503481471812823572173920237132244290713362
4015071027675898178176537971818907696228425560169623847710845
1574155837012727158807144696637567459918517554526831252794108
698383873255602661371428422469584207248910884215811601923356
1787848843727340513596332720226288512996408777568938831309694
17172993682657
Pares celdas depgina disponibles y fallos depginas ocurridos:
240707
300669
360640
NO seha producido la Anomala deBelady en la simulacin efectuada.
Vector derequerimientos depginas para la simulacin:
1948204515807075942818021528119305945243685536740849641171672555
670 884 768 254 697 309 325 452 269 889 517 125 78 160 314 619 918 177 973 772
783168129981145198965541793539908871476850822249510448381894
762592886969637577767262713312959863096246163723183788710707
384989460839172192844325564634890517278026081027287671516883
292 24 234 872 522 628 927 300 900 652 301 170 888 553 966 204 347 805 474 598
708 650 906 999 847 577 771 837 784 400 938 769 633 102 429 982 603 29 707 849
526824 851333650 752180891 257983813 579882965 553459674 646445421
9908743431389867741899052876913530938463126346987247971837960
5363306795801357739515903489549885115622555816022399370707532
99533 200 703 632 9815655842720171171919992 73 921 632 447 279 399 180
862 CAPTULO 28. ANOMALA DE BELADY CON MATLAB
298 578 760 348 745 696 578 949 822 8 135 180 11 143 536 809 45243803446527
751 960 751 140 1872098657098957 470 761 447 53 827 277 58173638063239
832 59 3635276747242 538 754 578 91274548936756948965732490236606
2061588897920836864463746380318136416528152717935383136101677
7631283949716337346115844612409576849813485292221402170311222
458363703427324615279017501717129708545493332651290485767592
366 451 488 264 158 27 940 144 207 921 295 831 888 745 749 371 966 854 923 158
209 36 833 815 97384148919984 927 590 931 856 895 858 26 15263127451370
472 771 402 999 38 908 777 896 711 137 964 365 438 689 938 135 161 236 355 763
621 288 339 881 340 312 572 400 780 546 933 710 222 643 59 473 253 606 548 812
3609692595306484057299553948255975593046131561220189300533142
615 58 447 258 109 174 339 439 215 192 900 484 504 301 130 541 221 402 680 958
9681787404708676076162045109753064891528927193353243811451275
991 432 779 577 474 978 325 137 434 17 979 975 120 437 877 988 773 642 903 524
946570152340354867214693832695496664791954418743525945565559
256962661649876596329893692412658894556157522310785196946727
391201988 658596428 786360758 445112245185832149662652430899185
863761911467193236152395266817118342399262545394753307618126
875796810407162757166935395978340935089894194168961568901240
784 656 749 799 756 967 590 317 992 552 422 474 257 291 811 774 94 525 234 686
805309125 852233161 255573289 297827145878323517106943529810536
446 316 797 655 761 652 145 453 952 549 53 409 853 746 330 733 359 688 835 242
587 499 43 420 28819839684378 699 91 522 290 745 310 522 86269482509853
4955526057431843045551217026471486834178753970710989731547985
4997308132353013793894934546784198797334281268661174468925551
783 779 41 383 3956079467071252877 18408142353584700191104468379
316 130 417 554 187 671 879 43 125 465 183 363 766 415 370 157 104 814 538 292
467698640758370748885903516666401466670542876479951418396618
806 247 674 161 570 957 52 355 621 820 969 846 743 441 776 700 976 353 545 485
733318295370805832826368295732459738924132971679758960184232
48879629348258228432682578915553634138417531759147978394566
517531470737119472973711363785927125108492848865446479856727
98956174948495167685813276475
Pares celdas depgina disponibles y fallos depginas ocurridos:
240702
300666
360636
NO seha producido la Anomala deBelady en la simulacin efectuada.
Vector derequerimientos depginas para la simulacin:
415 703 646 137 984 445 705 811 119 593673197536367743438148870417171277
9011941354142151045792497974659573887920863398310149199706810
28.1. DATOS Y EJ ECUCIONES 863
479598427704959853213704322582451408376929967074335313326236
30827327312056719 428 136 739 882 7611934422388 81 609 706 813 745 963
451406379493152514767860653549432167585293620264417830298920
310 434 257 992 467 102 418 601 518 188 768 68 715 936 604 314 387 640 289 110
104 182 912 716 216 148 89 519 643 115 938 827 182 304 547 321 840 54 591 409
689891 526409218 138115117 215280482 379704342 587325717 639125345
398 207 647 146 992 369 347 653 335 753 106 295 153 65 509 231 863 902 995 438
607639329710579896130807217685617519769419910173762428982126
820 266 368 573 81 336 752 431 691 486 740 936 253 190 403 350 342 215 621 431
33 147 592 92 117 799 537 198 532 579 828 168 348 233 940 257 340 101 838 370
645 323 401 952 73 941 63 694 634 612 770 464 110 762 296 516 292 616 821 710
920 183 382 733 526 306 848 808 720 323 720 161 72 727 792 137 638 187 619 169
397 203 263 565 946 133 618 170 772 738 65 701 699 269 585 614 29 146 722 226
799 637 938 949 194 788 385 222 531 918 299 693 383 313 34 533 161 186 55 277
68739758772434965 735 246 535 661 734507457886066 755 855 329 687 502
11697120254080 325 438 469 541 743 743 3062072483845466 518 692 418 84
935 868 922 400 28 568 229 14 227 423 471 3 889 271 929 727 55 208 360 352 331
990 326 325 93 518 576 830 575 432 620 864 108 158 641 133 509 200 425 405 519
82947387568070922 83 362 996 3609629267 256 853 831 461 719 472 195 111
886352445029235381011843475168048488453399239758823556546787
491122509551289807844267012781020075312493584218631911917161
69 655 193 535 221 288 182 987 802 546 651 781 613 182 599 891 734 127 826 642
600941476246691717477778086214001126599944853588117823673205
134539981768358704661105152156183331242349728899743317296282
617891570864118761196229479964015978257711926587286621455516
4512943386127521166422183668839735103823775797111392197200948
676731 818433473 204803813 310197437 811449621 905453795 932696881
724 259 685 293 338 731 565 666 294 342 695 824 456 599 208 783 686 93 947 262
463 144 743 408 667 987 419 60 306 514 170 192 352 904 560 210 657 165 690 666
134445 915826667 618209969 930637123 311177764 397802113 787849863
253 899 857 660 932 705 862 508 653 894 221 336 497 667 118 907 27 888 584 580
862744331511174822136976206896165229414181994204563406010241
120 671 732 711 608 996 449 889 342 276 53 655 943 129 226 766 772 388 874 562
579242 324465441 172241336 607806155 206550117 944677220 627592269
801577847929198908880417499 235 500 898 459 11664545079823423358
596175605211275530646396327 668 846 991 289 961 164 830 657 46542611
887 883 895 667 760 777 340 437 148 487 300 864 296 506 568 986 752 162 475 24
368764857723952705694051316257068213955678215709204132191318
336625839507460669578860985160864854069675365221738314387677
680 407 773 195 539 994 576 808 963 635 611 445 77 165 457 107 503 400 948 469
841631935626203231311282998446982828770571863491138957191419
311160838677344206490422617550378892924514245353
Pares celdas depgina disponibles y fallos depginas ocurridos:
240711
864 CAPTULO 28. ANOMALA DE BELADY CON MATLAB
300666
360646
NO seha producido la Anomala deBelady en la simulacin efectuada.
Vector derequerimientos depginas para la simulacin:
5636231423149918696404412846588149855932531306781944384362355266
416 375 529 267 160 284 927 363 581 955 445 128 587 449 52 374 795 500 341 910
945 813 133 394 490 141 260 420 295 715 331 850 259 330 241 11 218 876 196 668
3439087694226625562261969935563387537078225211535257535536476
727 219 311 155 732 514 27 751 144 771 189 859 150 340 600 456 190 794 976 893
454814284620396358376530689774924922874450018553856916778612
87588383894604901529891516936535379251024895639752237237929
199140698503955882134591439373293874984966022814016758136736
595602986859227339579964734354232484532364854578564627521349
243130898889861429161444440598141923388496410635244015979391
990963505838423677212419056022441322732048165749939390670227
551784743706637704639858824731835483477166302782107360788731
658 97 193 578 2495771956082215 490 747 199 885 721 585 88205750899987
693123169656077153371752498151726816873108829111820937606598
95 871 71 786 61 24 216 314 284 108 791 783 42 306 237 356 319 325 373 728 822
35351934680735492938965785946892645864772790885576568177178
128799996604651852688311047454827214828951552681292304328523
828 625 664 631 109 631 212 914 73 994 900 794 459 992 649 430 972 973 544 257
3119914534405544811135021427513434945779757280140779689462739
700 294 903 102 847 721 231 512 670 993 858 820 470 79 160 860 341 186 885 171
204 987 165 839 376 792 146 829 64 658 141 824 435 444 295 935 602 875 951 292
294 18 509 570 80284878824999 751 908 124 34 460 168 292 70063275171374
932 92 598 718 415 839 369 245 850 891 652 204 584 322 332 320 130 246 761 395
1762387411302084317974365129990653554304736908714866424950342
362772963309609042481019978131868175843629531656184873854195
565 287 911 178 903 120 116 477 985 535 51 775 491 293 900 908 182 948 924 890
699770390659138498717835837315807434685456359292958370442685
457344681207232131085530482885955293285925941111888247757243
116 684 692 821 276 425 967 249 930 361 542 150 645 871 848 650 783 22 872 416
859 596 376 783 790 446 441 894 226 923 110 104 383 925 167 363 589 604 20 771
26797627120383666966196435278733312096234637043936675168341
791918458581945415452126878424202492454597587888672458491967
6731782955646801791635948046963097466437999484622288499504458
323678681 169114955 351164430 915414448501225591364290491395458
663 929 813 178 759 617 85 210 774 358 136 144 886 515 616 288 252 401 488 327
570 584 703 83 172 357 473 621 881 356 988 860 960 554 437 795 422 913 271 556
851555573 663311368 783828307 796535318599413701320247582264859
781 531 43 60749283363887687 500 241 524 337 4585766148441349708973
365690918 590284714 676917227 159563123175274160915198722325888
28.1. DATOS Y EJ ECUCIONES 865
69736 458 623 686 571 953 758 732 177578476 489 155 798 425 404 968 460 230
375 350 199 275 56 584 540 636 191 368 120 829 307 678 804 989 599 300 671 738
121 708 661 272 159 936 919 759 768 484 820 941 52 882 957 128 465 398 110 965
708741 867763690 645591260 707827271 682378989 967641957 413621894
451966685474457902911540688
Pares celdas depgina disponibles y fallos depginas ocurridos:
240703
300679
360651
NO seha producido la Anomala deBelady en la simulacin efectuada.
Vector derequerimientos depginas para la simulacin:
8302661285593538647834568508606048212401157099254175241391874848
51592418847442065964113384 930 276 276 392804256638832799217 600
454 151 809 387 682 888 825 267 670 822 883 128 469 707 573 305 65 208 245 895
696 265 429 647 126 647 916 786 961 766 585 472 656 671 521 727 740 75 521 111
528 70 564 167 762 48 562 170 82 779 142 314 902 704 54 117 300 973 914 973 47
437 805 870 207 833 975 924 543 27 799 158 414 780 916 289 366 447 114 524 859
1394482131826152613068486215825434038253542231471115517793680
7338701669850936182318361230270656912615678795047542591724853
661 566 907 661 679 581 383 919 276 967 74 308 318 336 973 296 677 293 808 826
9442337637641546698841656278759146671596505885568890249136617
28 218 209 88 135 116 498 511 418 947 856 340 9 867 983 604 14 747 147 411 952
60182889189338852842458075685271947184466504496479243283819
69737802127965093965664706187997739377483771681173748778849
684765572545698486764658358946449214728748627151891828135625
129 611 802 845 518 256 790 534 243 741 611 309 80 568 814 196 943 188 286 388
642183247249399778185186280248950199811474230571186313562538
701230 485665429 636381299 472780347 222673361 826537393 925514143
751336324490714226266275346177394618179936426215718640205150
655 766 46 556 856 166 278 78 75 742 792 713 750 836 86 29 982 808 415 930 435
74141344 68 181 103 403 169 125 47978337361096 649 743 509 565 98 200 715
8586559207683857142286949703257615612417998421116915495999411
9244585361717338718487591195163776029398471379747613279121620
8363337965159242592677627722671410226455155531329721195421878
2298808055235407926674963612035790079077367860693098896395923
876334523122384570600433899228397894203405801018086524411534
12415316686 602 675 44 490 644 10578961974536 534 414 292 33 162 324 675
8204247103213279428815667576393250147625392679450383181822309
785 450 355 878 114 193 441 146 721 814 588 568 861 654 32 153 657 328 695 724
8102268358986687034374887893446842281590848481987978990627383
197752 890956621 691942969 456407391 243502106 983419173 906351383
866 CAPTULO 28. ANOMALA DE BELADY CON MATLAB
363 429 655 636 945 66984113715899173820169435802311 638 76 4037738
466826374534423622461299336467909302636211586206664755565940
132993924684084511303878863163521547352393766445257259739382
582113879681177150719853907905028151719133336936281311768860
9812528895282946123417117345447366299032069358469668779908339
927289590259923165021507934844122885623531125383274142362490
434116485867649979633353155739956839606123784932313949505977
839 317 825 382 7525739555864 704 969 760 127 210 109 887 154 903 5494950
726 156 890 789 362 112 406 524 9 587 647 77 797 843 59464281749933236178
795341245 577278850 476882426 826407189396384333114306552876667
4168078836583671602406530531739526223467630158953857916866763
58 953881479066355898 627 486176802731900239394895277659726874
633 241 565 352 619 319 378 304 617 458 936 897 511 743 156 610 394 29 890 912
960186784
Pares celdas depgina disponibles y fallos depginas ocurridos:
240703
300674
360646
NO seha producido la Anomala deBelady en la simulacin efectuada.
Vector derequerimientos depginas para la simulacin:
526 304 594 255 721 775 610 652 144 499762754362864863626743625110253322
345660849966743581537291966769593639242366533837124278579612
729 979 142 86 92 23 630 621 860 19 766 805 939 715 781 547 22 348 937 195 343
2137778346718066802922024263781234879866370211370279728769753
968 347 972 911 302 67 846 108 15 311 130 860 488 713 739 787 41 686 877 88 93
178102644 219909588 647143426 802764402813437214333281803263780
9232659125667376588816199116965653457924649540782898276511733
531 600 709 65 4018284755 534 939 81392288549831610377578148620922
121695658843347569073312928807849803137495658919712658702315
112 411 363 241 114 863 866 578 145 538 819 532 328 993 343 735 188 236 975 72
894 925 991 829 948 476 758 384 1512783751 284 664 372 10 42094693190415
1733192272465015867334573886391723248137872620174993829658395
289 614 678 266 836 990 96 537 517 272 581 482 111 866 341 159 972 346 711 984
645307569492832651241931835440730996831798991433351623220963
513 184 144 887 792 529 895 172 700 939 458 559 39 200 533 647 627 527 638 760
651 257 386 848 53 292 323 989 940 676 851 760 369 791 454 24 141 829 63 5 224
2453638869715076564731548140990414753621336825287031825820402
341756224475196190423128422844995384344029068938479278953673
934158528671973391110046248592723538784897290612860125243771
6329391249382827129785979968320370340250738182109154997765147
112 359 291 906 732 103 774 852 894 250 771 129 471 181 434 299 764 242 24 289
28.1. DATOS Y EJ ECUCIONES 867
557 693 581 221 135 953 927 533 496 757 72 609 617 221 195 426 282 533 111 133
9191827640334693623130546988478593496849627129225291185983329
929 726 806 571 113 117 257 874 164 617 709 126 328 580 97 780 873 631 607 642
399 817 260 456 681 482 566 397 302 781 401 194 189 967 181 572 348 611 52 948
339941844958916300659135587305164881328211953918957324855695
733491651982530997205465991775194809854461871069706710437945
16258072433 996 154 24 381 919 7237748516595732269 268 315 776 350 239
642615454177754053017397097707427954253195507939518160608657
5646585679191710219819376317102808135211379706689725784366579
283717 522178721 576910474 970911325 367984343 538340906 610379944
990 324 782 772 182 159 904 777 588 615 969 558 414 390 797 176 36 993 478 549
4227815498493458247917309373338289324460484621895960540706265
610688242339781352819473417692836655727331548463992532849546
14792995589026833210280826 8811769961546 266 555 147 841 30 486 790
200604772161863803966249845179798938630523839374791568729273
731862 254278812 335242576 774244951 155164701 358645381 396854995
464 199 197 833 174 125 892 506 288 934 285 838 511 954 721 36 741 208 644 53
145709461660769788937278914103262309731359710632580516253562
121947138317825942544842122474222791875779293045959775096470
997 264 929 333 121 568 531 490 269 756 886 14 329 303 103 831 319 519 907 294
29233343 406 892 130 598 467 312 641 124 870 671 878 417 7835689569112 77
403996391023236455602091728917246577722745440869410366149161
394957600287392874136115
Pares celdas depgina disponibles y fallos depginas ocurridos:
160767
200741
240719
NO seha producido la Anomala deBelady en la simulacin efectuada.
Vector derequerimientos depginas para la simulacin:
280111624597358333335 725 158 400 823 165 877 326 311 373 848 451 834 412 802
69615 643 464 250 572 692 246 765 221933262 567 275 785 974 162 739 944 159
2468504 500 6880353 975 146 217 218 463 748 855 847 674 307 645 906 539 940
707449 934855811 619580908 193558978 683181885 833803127 823580842
854065858057416012726525173991842998599580811987140258219272
149 658 755 5 417 688 827 31 74 454 912 905 578 122 823 810 55 933 800 709 634
877756187688166539233419718753115368472744724042540186387512
711931829416521988947415841526958271584511249478695946772808
953649631719757798012992136347411650554513700698641896125180
3831671546843307169446256207784545204859014841438621794723780
3607845122067442758295482711967220248820903697643557854177878
37715316117887766522622785 676 640 680 425 487 568 679163487956021
868 CAPTULO 28. ANOMALA DE BELADY CON MATLAB
857218771 701763915 668463385 571985160636579744456721473529995
506 500 568 732 686 316 680 20 831 703 911 431 610 647 242 330 738 161 155 254
599 828 372 632 890 249 691 357 64 125 229 472 659 820 748 897 777 430 967 966
8771949889439905749517213619144612077767433778248560964762410
7797045561517552210044634274651499338662774175898073391156129
9194804512206156864929669467600753593455256996971988935346720
126 320 583 592 985 170 580 279 317 166 840 591 798 586 624 30 430 157 191 948
185 727 417 911 427 951 763 829 851 218 268 612 72119459546150 678255434
406 147 182 416 322 150 575 558 982 792 918 346 798 509 202 658 645 34 492 255
490232569 490850368 611366438 479909917815972888941785954473401
5455433636688499425480012661183117381565472604287408251265821
300107516 130103531 621151786 494580727564902601584709740622697
776286378 959216875 466231978 872216358262252757205394252736163
3831592726025427439823645296412407703332172375390906481489888
225190323 550625848 214300223 439103788419357319296807986749951
362 438 722 419 482 898 602 660 8 60 583 584 557 311 632 198 231 961 817 28 14
577415495 484199278 815169558 351677999338691122411618195368224
521481152788976777793049899519060826302998819254754216586850
608 244 669 64 795 8 835 19 407 225 279 897 42 108 1000 856 782 286 56 599 939
837 934 4626450841998945963 937 657 592 38 175 200 672 88812760845697
163 508 830 317 184 1124912666 62 496 634 94143534451607255833502815
591559257 545321236 662429162 952756494427419233684371142192327
518 303 511 693 284 8770595139 7745113824163526765168917292907958
817443174 201675835 165488291 911616263826196298318273609836691
419978612849431435742309674931825999090084730932476578123116
869 334 495 351 970 873 257 966 969 621 295 95 152 604 669 365 913 376 690 476
223643940 660703955 424120205 352395424688495776159669216615960
198525863575633875891762594605916984977391410256814443866382
97 367 213 910 22 331 223 941 134 110 166 124 353 27 551 27 350 22 711 292 364
930265494 366568650 421292494 506225454145603403440379352601247
214 127 568 400 893 996 311 220 651 681 909 648 412 608 226 439 561 260 70 854
29758427833263757545803837464233562995395
Pares celdas depgina disponibles y fallos depginas ocurridos:
160772
200749
240722
NO seha producido la Anomala deBelady en la simulacin efectuada.
Vector derequerimientos depginas para la simulacin:
7493599947067795457797945485607521808367911132388942968451459499
458859526365856916236468754287371623857552624135995369741801
338 642 202 232 358 787 402 958 6251412248437126183 97 38840323757317
28.1. DATOS Y EJ ECUCIONES 869
314660 520262928 666383209 702997204 503193216 835451144 263285558
561731493241596241532654571437341121175558047875916479299666
34520336 939 388 507 837 530 70 6492956148606517 364 261 220 251 297 509
4470 3784724494 801 183 849 504 331 373 142 391 999 507 295 348 484 854 235
584508928184148121239333143392752493837833690647237946780555
598 769 777 588 279 67 347 316 290 671 430 562 626 128 785 740 475 451 645 911
959168 690374121 213196221 182945560 367706550 892619328 529369277
437883 929722905 604629994 220205794 898445144 321997805 481889963
625193563988483546627321830775494119278418879328913275377160
940285688651277158471384177 59 568 714 801 8593318418464768613 22
700 432 236 860 90 882 556 157 864 204 359 784 534 537 353 547 687 886 839 775
3163497992285328082220371947143974655027377695210618466168519
691657331665216917835927107503629919266558820937966622512140
1361487557835691944835038429437613125390147791361231348782848
109627 989837827 951116315 966957512 970619832 837604631 124217111
5979356581987935501173596989212024981665368865444210643915655
834982 195450566 682314289 993392675 476631166 698505131 630792435
382137 844659552 518848305 182887733 576650212 185972262 263360143
43 599 716 518 297 716 578 501 853 216 122 992 980 201 251 445 612 510 365 576
9751548038859396186974330527286977580643721288752595930884690
7949511756666976273295427934032936179622453676330393946135569
399474 228257917 300570203 781609216 204988377 324565478 679688401
4456062299141737033224398494085252817644814144773439870147263
932 302 294 963 501 321 506 955 877 722 182 518 169 676 468 924 549 559 488 56
868704567388143495624913751432206987661882766861685217948823
334 45 185 59 263 72 115 909 26 677 655 740 453 794 2 598 64 532 71 565 584 188
640710915470554297203497167434784852211631592415748621771608
105363 413513947 145530870 530200927 266119470 379971516 167296247
281 350 282 870 833 696 133 625 717 67 676 477 156 257 771 687 738 194 835 563
706 574 691 491 837 496 314 286 763 759 443 208 791 737 133 332 85 615 611 331
95896 74 385 360 111 703 548 413 27433237982955 683 374 295 46 532 465 944
893 682 801 90 867 643 552 525 397 243 501 859 279 935 886 100 858 894 244 459
360 619 187 440 568 18 186 849 318 136 891 792 889 340 739 407 624 570 420 656
312 494 519 387 487 422 261 357 433 423 839 244 270 990 91 277 556 598 861 989
445340 710511247 890757278 406795444 618213185 281497354 450528874
528380 905399271 724326753 600212731 610431449 998571560 160757894
2457265658430845273750585131566192316389454937558175311233585
6279149448706916945963313295874474908428987550688225111927470
2104497317140429494578247420533581410252983876916353162498744
765974 540452744 558210412 124337456 762505305 971702700 934240752
2076281259051445929429864655708614591
Pares celdas depgina disponibles y fallos depginas ocurridos:
160763
200736
870 CAPTULO 28. ANOMALA DE BELADY CON MATLAB
240709
NO seha producido la Anomala deBelady en la simulacin efectuada.
Vector derequerimientos depginas para la simulacin:
336 335 308 711 205 808 146 984 834 111795975484936207534844937449609717
213 179 239 793 595 114 530 577 475 204 126 837 40 833 677 348 264 828 404 514
92 488 766 957 16025315889939 478 188 552 654 165 234 94 10513623401538
45651362679996506204229400338531283961093235730243897572850
186 529 237 791 402 63 808 580 859 884 790 457 353 272 316 463 143 841 854 841
352288345359969557164293769967196876652735239374499409942011
551 593 942 38 40246864241556878442 153 795 810 861 589 947 161 480 1676
245843536 561110856 654499361 761483283391266291792326602707784
437878057959471571419472326763288957622480279148942510144680
673627385 370784488 488169139 756714595255209186606260711428402
981 667 959 496 781 15 855 824 680 626 8 861 865 22 850 153 636 929 415 44 961
310461633 140788846 227580783 695658186892354237321508460200270
385 142 358 333 72 859 432 529 974 482 988 369 375 276 779 858 931 573 524 562
743108428 317902726 515251256 546238514699191914605997787949417
941 434 706 136 368 956 756 107 370 946 439 482 236 775 77 269 152 210 792 190
626950498394983621657489293932352986464358290558244610362539
2111813538961658265580337927842245156915380449128673658092814
1239194444285481237401352766505497661520217064926393536513540
223 992 53 171 255 363 228 261 119 572 410 502 888 431 502 988 590 870 255 440
763 40 927 824 919 977 569 306 881 365 440 197 835 826 873 219 968 826 598 187
75 375 672 111 63080858084943099380010969 889 667 661 0771765639728
169 742 397 545 229 113 195 331 81459149696969444262979990402961182
2591745582511128459651413817825353834913930700426763618578580
199 183 629 482 738 577 312 745 557 749 613 357 337 678 616 954 94 731 337 526
9783129381625048389013528291957671547321959825359173156697392
403 327 786 37 423 783 113 955 245 873 552 920 740 756 746 277 528 218 766 775
503 913 577 899 906 897 749 772 250 674 51 716 472 566 630 759 522 648 107 215
737 669 799 908 796 268 65 309 652 900 211 351 397 547 775 417 180 227 954 403
968 920 538 220 492 629 658 774 913 807 650 212 767 377 418 178 95 821 384 114
945151865734170326775477115799532482983728394087842450200571
170 946 653 213 896 265 542 181 281 11 983 999 668 427 245 867 854 338 309 820
340 607 171 921 268 494 606 694 398 967 698 286 779 725 58 265 343 525 422 121
847668528972554629699152245198786863974194941636114411482777
610 648 903 414 544 462 776 842 607 274 600 683 521 787 832 310 404 112 10 680
89 546 339 239 719 73 300 529 370 475 80 542 670 473 546 327 80 433 149 370 20
590 885 348 895 526 811 899 766 621 898 912 615 139 420 562 255 988 15 637 982
791 753 721 895 899 553 711 180 837 451 205 471 370 88 380 488 923 359 508 531
716 912 202 166 225 612 269 634 331 296 333 919 64 686 505 503 976 931 582 426
194 506 955 969 784 580 876 69 802 498 622 60 1 191 428 335 62 123 516 278 757
8391411667467565985899821569366756324882591464832471702781797
711 17 402 853 966 91 593 730 65 71 565 23 893 618 578 840 136 958 185 561 407
28.1. DATOS Y EJ ECUCIONES 871
52829765147026342854 507 994 965 555 1945901 94 918 886 939 262 677 843
349458356462388561467983285389222783561245916514645630443055
15374150841999594372770476319525278111846387871107
Pares celdas depgina disponibles y fallos depginas ocurridos:
160769
200750
240730
NO seha producido la Anomala deBelady en la simulacin efectuada.
Vector derequerimientos depginas para la simulacin:
658 983 823 502 827 213 287 329 36 699 963 536 157 598 217 885 452 436 392 903 334
378226 374498546 279246458 384689413 423581137 451806878 910127808
703165402922796512895144683812926269918802348260247231890883
4355436628723069834254135234720933453572579127868830715275562
369 736 146 111 592 884 82 552 225 733 507 186 500 676 673 553 938 438 998 172
499839 775587618 241783518 264144779 606804520 792675457 536993765
6097273795428983374160377376249080291611152717617656729482838
4461481655287742013963164132142135325196327226625539804217612
7229572276022513534601016898437890067853519522866526970573879
2214995174801476991506608588943633912298947141044223168462119
179826606801613322975093708855254547035996881963837915328693
5512234474273536788122321983399848790137154212926461881932516
331 780 671 856 289 863 769 704 771 72 505 995 712 551 772 936 633 714 714 117
466854 470596130 281337551 664690392 715130793 931739439 309331540
461332 889818802 573785967 992735550 981228652 359431199 204986967
196 717 52 394 188 340 208 703 896 270 218 603 496 397 301 422 286 876 141 852
2983602317278889821232419394752878846582062378424937627633307
453 229 157 931 142 521 439 677 872 112 175 134 918 50 953 334 310 190 593 458
819 989 412 729 98 237 205 714 228 992 314 589 736 280 620 197 621 960 119 618
449 587 308 512 841 618 215 779 5 122 472 36 900 416 183 204 766 5 815 817 386
64113 236 569 190 230 70 899 276 10274394487443298570 42 334 935 327 831
235251304898780051469908291431911308403502588405992181388285
4131803 398 598 213 893 37604221974189866896 74 846 505 728 443 572 750
5259842495525833153324465431361919374328291531915237935527243
373647518299405734317735393495340128484389240457464883398166
586 925 403 551 404 18 975 807 781 321 424 475 372 305 265 946 916 737 637 920
432097155733267194778071027415429872311167623162320322885531
565217858977233657117146737569411315981672721061871349791960
765653784148778697145854171790922316971243264672291311712977
3143226571346390418913327132986424794448702861478380343169609
773433454220835363734342816560549645427223323190092048486485
570 761 599 819 651 750 173 430 691 412 504 911 556 768 20 599 746 677 358 523
872 CAPTULO 28. ANOMALA DE BELADY CON MATLAB
5244046433209376634767364151558970655468968497260841857477380
214 314 773 304 900 270 632 430 384 888 846 24 773 291 744 912 660 816 646 122
192 264 157 332 636 433052672 670 109 12809378645162951365801194330
935967741478351314856577804694386746230585926489584320316899
499 509 53 898 9927458369424 270 697 78873627775290526748356454399
426729133 282950635 261230695 608229747446500635395395146876822
142451938523776227677484804141371441156965367907504418442361
407715954 491746675 945108106 223679608673239662307280527105165
938289742 500148830 162341953 826625286988567224862575421979961
812482942 930989556 617737734 255634531604464198406485832149400
633434691967545111442182554525712670783536438265992760926752
9897641370788633352136894531924383580
Pares celdas depgina disponibles y fallos depginas ocurridos:
160777
200745
240713
NO seha producido la Anomala deBelady en la simulacin efectuada.
Vector derequerimientos depginas para la simulacin:
314492019049606078482182105908294821427794264112611232770819439
213 377 105 355 224 41 798 746 943 129 873 244 537 732 965 243 184 362 476 861
772761195866874594734913956594264278180988237304938990390865
596 107 550 403 322 672 706 879 427 202 315 594 572 324 954 594 45 665 127 635
3672126933216194679584963222114733755437660315548321924744413
763356477 704802238 241107702 671790430176412844653673914782187
8337683022351952572825512944430696981140516457565378893747153
931 614 558 116 212 917 655 658 445 861 860 977 776 601 893 241 243 214 109 58
970 768 536 752 762 450 414 603 916 737892064193 338 686 68883269796436
850265832282945948388282865442134388185067245441115697678769
706638651284542516169667122909693168309856595376280274356629
5063945971859619497079997388618360682633175540536024915086283
603 357 148 674 842 570 137 943 675 185 321 118 734 949 426 956 323 34 410 978
165 519 735 879 47 813 506 637 709 350 365 562 383 462 645 810 968 504 588 503
320 184 584 64 66634237952255 806 91 888 814 304 94794744104708168703
683 752 480 332 175 440 281 63 971 590 337 434 744 496 201 439 422 601 456 496
4886535862982388225279504707494350467265922607209885511933753
7025145324254563207232036562066190441349140546259100558492170
5207701975836666743464956817532629169990723860101136715113649
2239992034960861462635248234678646027267677907593658961585777
28 324 744 860 833 931 317 778 809 579 774 290 536 406 503 213 312 178 784 625
2557156084719295138757882637109651515184462287300888347384117
5954621617392857395726268184649396228303002567075254959210844
28.1. DATOS Y EJ ECUCIONES 873
558610324273187774809146480648823293358714105478817658155103
29341051325 913 20 174 421 992 63892287521616820657 143 664 99 874 288
994 188 938 424 271 623 719 697 727 180 674 969 800 837 313 354 622 28 710 492
334263031962520698470310488956253220467775818256861816787114
306 900 773 678 796 201 70 832 913 24 748 478 470 713 838 9 280 23 686 165 941
346893382020412557417410680549958193944757799641817254321975
881 616 404 441 255 882 688 434 720 348 432 919 75 533 454 174 282 198 726 103
908702788931373345831528334761579322926895959644329412244288
30685740 987 694 828 924 537 18 8214 324 303 552 913 131 606 532 141 666 492
876 843 352 510 618 403 602 401 63 442 470 524 152 197 372 966 927 464 911 945
441904105991915477669001256227117198560348515454846100986516
992872 934765199 193589311 413988891 292643864 240791951 274188513
90846990719769874709351018817417678211474187147667249078755
649168065479886770473653528555894455104687382649461259416838
58 701 437 531 244 409 306 992 6 171 864 3 322 241 410 596 481 177 148 538 964
582 694 580 571 115 185 958 665 151 328 894 952 265 666 424 309 93 585 454 834
226811 565768810 356111380 459255220 559933575 955981324 905697961
193851 523581899 780828132 302555110 627763851 718124478 207374981
703226976337287202716834593191895186129680871648271396751917
3946312950210546390043260160563399156910139946366425505301992
229776644405962219
Pares celdas depgina disponibles y fallos depginas ocurridos:
80830
100813
120801
NO seha producido la Anomala deBelady en la simulacin efectuada.
874 CAPTULO 28. ANOMALA DE BELADY CON MATLAB
Bibliografa
[1] L. J oyanes Aguilar. Fundamentos de Programacin - Algoritmos y Estructura de
Datos - Segunda Edicin. Mc GrawHill/ Interamericana deEspaa, S.A.U., Espaa,
1996.
[2] L. J oyanesAguilar. Programacin Orientada a Objetos - Segunda Edicin. Mc Graw
Hill/ Interamericana deEspaa, S.A.U., Espaa, 1998.
[3] L. J oyanes Aguilar; L. Rodrguez Baena; M. Fernndez Azuela. Fundamentos de
Programacin - LibrodeProblemas. McGrawHill/ InteramericanadeEspaa, S.A.U.,
Espaa, 1996.
[4] J . Boria. Construccin de Sistemas Operativos. Kapelusz, Bs.As.-Argentina, 1987.
[5] E. Castillo; A. Iglesias; J . M. Gutirrez; E. Alvarez; A. Cobo. Mathematica. Paraninfo,
Espaa, 1996.
[6] E. Castillo; M. Reyes Ruiz Cobo. Preparacin de Documentos con Latex. Maestra
en Informtica y Computacin - FACENA - UNNE, Argentina, 1998.
[7] H. M. Deitel. Introduccin a los Sistemas Operativos. Addison-Wesley Iberoamerica-
na, Mxico, 1987.
[8] W. H. Press; S. A. Teukolsky; W. T. Vetterling; B. P. Flannery. Numerical Recipes
in C, second Edition. CambridgeUniversity Press, Cambridge, 1992.
[9] E. Castillo; J . M. Gutirrez; A. S. Hadi. Sistemas Expertos y Modelos de Redes
Probabilsticas. Academia deIngeniera, Espaa, 1996.
[10] J . R. Hilera Gonzlez; V. J . Martnez Hernando. Redes Neuronales Articiales -
Fundamentos, Modelos y Aplicaciones. Addison-Wesley Iberoamericana, Delaware-
USA, 1995.
[11] A. Iglesias. Curso Avanzado de Mtodos Numricos. Corrientes, Argentina, 1998.
[12] Borland International. Turbo C++ - Getting Started. Borland International, USA,
1990.
[13] A. Kvitca. Resolucin de Problemas con I nteligencia Articial. EBAI, Brasil, 1988.
[14] G. D. Pino; L. A. Marrone. Arquitecturas RISC. Kapelusz, Bs.As.-Argentina, 1987.
875
876 BIBLIOGRAFA
[15] L. J oyanes Aguilar; I. Zahonero Martnez. Estructura de Datos - Algoritmos, Abs-
traccin y Objetos. Mc GrawHill/ Interamericana deEspaa, S.A.U., Espaa, 1998.
[16] R. Penrose. La Nueva Mentedel Emperador. Mondadori EspaaS. A., Espaa, 1991.
[17] E. Castillo; A. Cobo; J . M. Gutirrez; R. E. Pruneda. I ntroduccin a las Redes
Funcionales con Aplicaciones - Un Nuevo Paradigma Neuronal. Paraninfo, Espaa,
1999.
[18] A. C. Shaw. TheLogical Design Of OperatingSystems. PrenticeHall, NJ -USA, 1974.
[19] J . L. Peterson; A. Silberschatz. Operating Systems Concepts. Addison-Wesley, MA-
USA, 1991.
[20] E. Castillo; A. Cobo; P. Gmez; C. Solares. J AVA - Un Lenguaje de Programacin
Multiplataforma para I nternet. Paraninfo, Espaa, 1997.
[21] W. Stallings. Data and Computer Communications - Fifth Edition. Prentice Hall,
NJ -USA, 1997.
[22] A. S. Tanenbaum. Operating Systems: Design And Implementation. Prentice Hall,
NJ -USA, 1987.
[23] A. S. Tanenbaum. Sistemas Operativos Modernos. PrenticeHall Hispanoamericana,
S.A., Mxico, 1993.
[24] A. S. Tanenbaum. Organizacin de Computadoras - Un EnfoqueEstructurado - Ter-
cera Edicin. PrenticeHall Hispanoamericana S. A., Mxico, 1996.
[25] A. S. Tanenbaum. SistemasOperativosDistribuidos. PrenticeHall Hispanoamericana,
S.A., Mxico, 1996.
[26] A. S. Tanenbaum. Redes de Computadoras. Prentice Hall Hispanoamericana S. A.,
Mxico, 1997.
[27] M. L. J ames; G. M. Smith; J . C. Wolford. Mtodos Numricos Aplicados a la Com-
putacin Digital. Departamento de Ingeniera Mecnica, Universidad de Nebraska,
Representaciones y Servicios de Ingeniera, S.A., International Textbook Company,
Mxico, 1973.
ndice de Materias
rbol, 120
rbol deprocesos, 9
acceso
controles de, 383
derecho de, 385
derechos de, 383
exclusivo, 181
matriz decontrol de, 383
prohibicin de, 392
ruta de, 161
acceso a archivos
tipos de, 120
accin
atmica, 303
administracin
del almacenamiento virtual, 428
administracin dela memoria
memoria principal
memoria, 427
algoritmo
centralizado, 329
deanillo, 302
debarrido, 277
deBerkeley, 297
deChandy-Misra-Haas, 313
decontrol centralizado, 344
deCristian, 295
deescritura a travs del cach, 343
deGiord, 345
deJ oseph y Birman, 286
dela cerradura, 309
deLamport, 292, 310, 312
deocultamiento, 342
deOstrich, 189
deOusterhout, 332
deplanicacin, 28
deplanicacin, 496
derplica dela copia primaria, 345
deremates, 331
del avestrz, 189
del grandulnodeGarca-Molina, 301
del voto, 345
del voto con fantasma, 346
determinista segn la teora degr-
cas, 327
distribuido heurstico, 331
jerrquico, 330
algoritmo del banquero
asignacin derecursos por el, 204
debilidades del, 205
para solo un recurso, 202
para varios recursos, 203
algoritmos
con promedio, 297
deasignacin deprocesadores, 325
debsqueda en disco, 495
deeleccin, 301
de planicacin del procesador, 397,
398, 573
intruduccin, 397
algoritmos debsqueda en disco
algoritmo del elevador, 168
primeroenllegar primeroenser aten-
dido, 167
primero la bsqueda ms corta, 167
almacenamiento
administracin del, 66
asociativo, 87, 90
auxiliar, 81
claves deproteccin del, 94
compactacin de, 74
compaginacin del, 16
conexin de, 55
estable, 304, 307
877
878 NDICE DE MATERIAS
estrategiasdeadministracin del, 66,
67
estrategias decolocacin del, 77
fragmentacin de, 73
jerarqua de, 20, 66
multiprogramacinconintercambiode,
77
organizacin del, 65
primario, 105
proteccin del, 17
real, 80, 94, 99
virtual, 19, 98, 99, 101
almacenamiento deniveles mltiples
organizacin del, 80
almacenamiento real, 427
introduccin al, 65
almacenamiento virtual, 16, 78
conceptos bsicos, 79
estrategiasdeadministracindel, 101
organizacin del, 78
organizaciones de, 101
alternancia
dedominio, 149
alumnos
destinatarios, xi
amenazas
vericacin de, 381
amplicacin, 381
anlisisdel rendimientodeun subsistema
dedisco
de una peticin a la vez con Mathe-
matica, 467, 663
intruduccin, 467
devariaspeticionesalavez con Mat-
hematica, 481, 721
introduccin, 481
anexos, 571
anillos
deproteccin, 149
anomaladeBelady con Matlab, 559, 859
introduccin, 559
anomala FIFO, 106, 430
anomalia.dat, 559, 566, 567
anomalia.m, 559, 560
anomalia.txt, 559, 566
aprendizaje, 509
apuntadores, 264
rbol
reduccin dela altura del, 52
archivo, 118, 310
acceso a un, 120
asa de, 228
atributos de, 121
estructura deun, 119
extensin de, 119
tipo link, 135
archivos, 8, 117, 119, 161
cerradura de, 309
compartidos, 133, 228
semntica delos, 336
descriptor de, 143
despachador (servidor) de, 333
enlacede, 133
implantacin de, 127
mapeados a memoria, 122
nombredelos, 119
nombres uniformes de, 161
operaciones con, 122
patrones deuso de, 338
servicio de, 333
sistema jerrquico de, 335
sistemas de, 117
sistemas distribuidos de, 333
tcnicas deorganizacin de, 175
tipos de, 120
uso de, 338
Arpanet, 213
asa, 265
asignacin
contigua, 74
dealmacenamiento
contigua, 127
encadenada orientada hacia el sec-
tor, 128
no contigua, 128
por bloques, 128
por encadenamientodebloques, 128
por encadenamiento de bloques de
ndices, 129
por transformacindearchivosorien-
tada hacia bloques, 130
asignacin del almacenamiento
NDICE DE MATERIAS 879
contigua, 68
no contigua, 68
asincronismo, 392
ataque
nak, 393
atomicidad, 286, 305
auditora, 382
autenticacin, 380, 381, 389
automontaje, 229
autorizacin, 379, 383
actual, 146
bsqueda, 170
anticipada, 68, 105, 429
estrategias de, 68
por demanda, 68, 105, 429
bsquedas
traslapadas, 165, 169
basedeconocimientos, 425, 433
batch, 7, 38
Belady, 430
anomala de, 559
BIH, 294
Birrel, 257
bit
deresidencia, 97
modicado, 107, 432
referenciado, 107, 432
sucio, 432
sucio o modicado, 107
bitcora, 308
deescritura anticipada, 307
bits
deparidad, 170
deproteccin, 98
blindaje, 391
bloque
defectuoso, 176
salto de, 160
bloquededisco
tiempo delectura deun, 136
bloqueo, 189
condiciones necesarias para el, 184
criterio deorden general para el, 189
deteccin del, 188
evitacin del, 188
prevencin del, 188
recuperacin del, 188
tendencias del tratamiento del, 209
bloqueos, 181
cundo buscarlos, 197
deteccin centralizada de, 312
deteccin con un recurso de cada ti-
po, 190
deteccin con varios recursos decada
tipo, 194
deteccin de, 189
deteccin distribuida de, 312, 313
evasin de, 199
falsos, 312
investigacin de, 188
modelacin de, 185
prevencin de, 205, 303
prevencin distribuida de, 314
recuperacin de, 197
recuperacinmediantelaapropiacin,
198
recuperacin mediantelaeliminacin
deprocesos, 199
recuperacin medianterollback, 198
sin recursos, 208
bloques
deinformacin dememoria, 81
sombra, 306
tabla demapa de, 83
transformacin de, 81
bloques defectuosos
archivo con, 139
lista de, 138
bloques libres
registro delos, 137
brazo del disco
algoritmos deprogramacin del, 167
buer
biestable, 17
doble, 17
simple, 17
utilizacin del, 17
bus, 217
comn, 54, 218
buzn, 253
880 NDICE DE MATERIAS
C - SCAN, 173
clculo
numrico, 559
cdigo
clandestino, 392
Hamming, 170
reentrante, 184
reutilizableen serie, 184
cmputo
hurfano, 269
caballo deTroya, 391, 393
ataquedel, 145
cabezas delectura - escritura, 165
cach, 66, 90, 96, 143, 342
bloqueo buer, 142
consistencia del, 343
deescritura, 143, 219
delectura, 219
deuna pista a la vez, 176
monitor, 219
tasa deencuentros, 219
caching, 231
cambios
decontexto, 422
caminos electromagnticos, 63
campo
clave, 120
canalizacin, 20
capacidad, 354, 385
deejecucin, 354
carga
detrabajo, 354
ligera, 171
media o pesada, 171
cargadores, 23
cargas
detrabajo, 467, 479, 481, 493
cargas pesadas, 38
casos deestudio, 395
cerradura
dedos fases, 208, 309
granularidad dela, 309
para escritura, 309
para lectura, 309
ciclo
robo de, 18
ciclos
decontrol, 398, 420, 422
deretroalimentacin, 358
distribucin de, 51
distribucin de, 51
cifrado, 389
deenlace, 388
punto a punto, 389
clases, 379
clases deprioridad, 45
clasicacin, 379
clave
deciframiento, 388
dedesciframiento, 388
pblica, 388
privada, 388
cliente, 279, 322
fallos del, 269
clientes, 226
CMS, 13
Coman, 185
condiciones de, 205
cola
capacidad dela, 361
decapacidad cero, 361
decapacidad innita, 361
decapacidad positiva, 361
deejecucin, 234
colas
capacidad delas, 361
disciplinas de, 362
ilimitadas, 360
limitadas, 360
sistema de, 360
teora de, 359
colas1en.ma, 467
colas1pn.m, 467
colas2en.ma, 482
colas2pn.m, 481
colas3en.ma, 496, 497, 505
colas3fn.dat, 504, 508
colas3fn.ma, 504
colas3fn.txt, 496, 504
colas3pn.m, 496, 497
compartir
recursos, 215
NDICE DE MATERIAS 881
compilador, 49, 264
compiladores, 21, 22, 72
comportamiento implcito, 390
compuertas, 288
computacin
centralizada, 213
computadores
personalizados, 25
comunicacin, 271
en grupo, 279
aspectos del diseno, 280
entreprocesos, 390
punto a punto, 279
uno - muchos, 279
concurrencia, 16, 465
a nivel deprograma, 529
control optimista dela, 310
concurrencia ehilos con J ava, 529, 847
introduccin, 529
condensacin, 127
conabilidad, 49, 63, 214
delos componentes, 238
global terica, 238
prctica, 239
conanza implcita, 390
connamiento
del programa, 391
conjuntos detrabajo, 39, 109
conmutacin
etapas de, 220
conmutador, 217
decruceta, 219
consistencia
interna, 291
contador, 290
contexto
cambio de, 32
intercambio de, 25
contextos
deejecucin, 529
contiguidad
articial, 80
contrasenas, 147, 388, 390
salar el archivo de, 148
control
deerrore, 273
deujo, 273
control deacceso
listas para, 150, 334
por clases deusuarios, 152
posibilidades en, 150
controlador
deentrada / salida, 157
devideo, 179
controlador del dispositivo
adaptador, 156
controladores, 158, 165
dedisco, 175
copias
deseguridad, 139
coplanicacin, 332
costo
del hardware, 352
del trabajo, 352
costos
reduccin de, 63
cpu, 7, 27, 30, 33, 3840, 43, 45, 69, 71,
94, 110, 157, 161, 174, 176, 177,
179, 183, 197, 214, 216, 218220,
222, 224, 234, 235, 277, 289, 315,
317, 319, 323326, 329, 331, 352,
358, 397, 398, 526
tiempo de, 158
crecimiento
incremental, 214
criptoanalista, 387
criptografa, 387
aplicaciones dela, 388
criptograma, 387
criptosistemas
declavepblica, 388
cronmetro, 277, 290, 295
da solar, 294
promedio, 294
da TAI, 294
datos, 66, 68, 94, 377
compartir, 215
norma decifrado de, 387
proteccin de, 388
proteger a los, 387
datos y ejecuciones
882 NDICE DE MATERIAS
del caso deestudio
algoritmosdeplanicacin del pro-
cesador, 420, 573
anlisis del rendimientodeun sub-
sistema dedisco deuna peticin
a la vez, 473, 663
anlisis del rendimientodeun sub-
sistema de disco de varias peti-
ciones a la vez, 488, 721
anomala Belady con Matlab, 566,
859
concurrencia ehilos con J ava, 557,
847
optimizacindeoperacionesdebs-
queda en disco con redes neuro-
nales, 504, 779
DBMS, 46, 175
deadlock, 181
derecho
deacceso, 149
derechos
amplicacin de, 152
deacceso, 379
DES, 387
desalojo, 458
desbordamiento desegmento
fallo de, 98
descripcin delos algoritmos
del caso deestudio
algoritmosdeplanicacin del pro-
cesador, 398
concurrencia ehilos con J ava, 530
optimizacindeoperacionesdebs-
queda en disco con redes neuro-
nales, 497
descripcin del algoritmo
del caso deestudio
anlisis del rendimientodeun sub-
sistema dedisco deuna peticin
a la vez, 468
anlisis del rendimientodeun sub-
sistema de disco de varias peti-
ciones a la vez, 482
anomaladeBeladyconMatlab, 560
descripcin del ejercicio
del caso deestudio
paginacindememoriavirtual, 433
descripcin del problema
del caso deestudio
algoritmosdeplanicacindel pro-
cesador, 397
anlisis del rendimiento deun sub-
sistema dedisco deuna peticin
a la vez, 468
anlisis del rendimiento deun sub-
sistema de disco de varias peti-
ciones a la vez, 482
anomaladeBeladyconMatlab, 559
concurrencia ehilos con J ava, 530
optimizacindeoperacionesdebs-
queda en disco con redes neuro-
nales, 496
paginacindememoriavirtual, 427
descripcin del softwaredeRNA
del caso deestudio
optimizacindeoperacionesdebs-
queda en disco con redes neuro-
nales, 509
descripcin del softwareutilizado
del caso deestudio
paginacindememoriavirtual, 433
desempeo, 271
desempeno
mtricas del, 240
despachador
deprocesos, 30
del tiempo, 295
despacho
deprocesos, 30
deteccin
mecanismos de, 379
direccin
real, 83, 91
virtual, 83, 86, 87, 90, 91, 94, 97, 100
direccionamiento, 19
depredicados, 285
direcciones
reales, 19, 79
traduccin de, 79
traduccin dinmica de, 84, 99
virtuales, 19, 78, 79
direcciones reales
NDICE DE MATERIAS 883
espacio de, 79
direcciones virtuales
espacio de, 79, 80
directorio, 9
deusuarios, 119
raz, 119
directorios, 123
rbol de, 335
implantacin de, 133
operaciones con, 126
sistemas jerrquicos de, 123
disco, 496
bloquedefectuoso
manejo deun, 138
como recurso limitador, 174
disk quotas, 137
espacio en el, 136
manejador del, 167
mecanismo deacceso, 496
operaciones deacceso a, 495
planicacin de, 170
rendimientodeunsubsistemade, 468,
482
tamano del bloquede, 136
disco decabeza mvil
operacindealmacenamientoen, 165
discos, 165
caractersticasdeseablesdelaspolti-
cas deplanicacin de, 171
consideracionessobrelossistemas, 174
en RAM, 177
falla de
bloquefaltante, 140
hardwarepara, 165
mltiples, 174
manejo deerrores en, 175
mejoras tecnolgicas delos, 169
necesidad dela planicacin de, 170
ocultamientodeunapistaalavez en,
176
optimizacin dela bsqueda en, 171
optimizacin rotacional en, 173
RAID, 170
disfraz, 392
dispersin - asociacin, 276
dispositivo
independencia del, 155, 161
reloj, 290
dispositivos
compartidos, 162
controladores de, 156
debloque, 156
decaracter, 156
deuso exclusivo, 162
manejadores de, 162
DMA, 159, 176, 274
acceso directo a memoria, 20, 158
dominio
deproteccin, 385
DOS, 333
DSP, 294
Eager, 331
editores deenlace, 23
ejecucin
concurrente, 397
real, 39
embotellamiento, 174
embotellamiento y saturacin, 357
emulacin, 24
ensambladores, 21, 72
entrada / salida, 35, 43, 45, 54, 57, 60,
155, 238, 257, 389, 398, 526
canales de, 18
dispositivos de, 61, 156
hardwarede, 155
interrupciones de, 31
introduccin a la, 155
manejo deerrores de, 161
operaciones de, 38
requerimientos de, 61
sistemas decontrol de
IOCS, 22
softwarede, 160
unidades de, 156
entrampamiento
al intruso, 391
entrelneas, 392
envejecimiento
deprocesos, 183
equipo
depenetracin, 145
884 NDICE DE MATERIAS
tigre, 145
equipos
acoplamiento entre, 217
equitatividad
en el uso del procesador, 422
error
desobreejecucin, 273
errores
dedisco, 175
recuperacin de, 60
ESB, 464
escalabilidad, 288
escritura
al cierre, 344
retraso en la, 343
escrutinio, 17
espacio
detrabajo particular, 306
real, 306
espacio en disco
administracin del, 136
espera
circular, 182
espera ocupada, 235
esquemas declasicacin
para sistemas decmputos, 216
estacin
detrabajo, 225, 346
estaciones
detrabajo, 320
estaciones detrabajo inactivas
uso de, 321
estado
actual, 201
cambio de, 371
deno acceso, 146
deproblema, 19
estableen funcindesolucionestran-
sitorias, 364
recurrente, 371
seguro, 203
supervisor, 19
transitorio, 371
estados
deejecucin, 19
seguros, 199
seguros einseguros, 201
estrategias, 426, 458
deadministracin del almacenamien-
to virtual, 428
deasignacin deprocesadores, 324
debsqueda, 105, 429
decolocacin, 68, 105, 429
deplanicacin del procesador, 398
dereposicin, 68, 105, 429, 445
estructuras dedatos
compartidas, 298
eventos
concurrentes, 292
dependientes del tiempo, 40
exclusin mutua, 289, 298, 303
algoritmo centralizado, 298
algoritmo deanillo dechas, 300
algoritmo distribuido, 299
regla de, 200
Expert SystemBuilder
ESB, 427, 433
exportacin
dedirectorios, 227
factor
deseparacin, 160
fallas
recuperacin de, 303
FCFS, 167, 171, 172, 362, 497
FIFO, 208, 398
anomala, 559
lehandle, 228
rmas
digitales, 388
exibilidad, 215
Flynn
clasicacin de, 217
taxonoma de, 216
forma cannica, 264
fragmentacin
del espacio en disco, 127
fuente, llegadasyllegadasdePoisson, 360
funcin
deactivacin, 509
neuronal, 509
funciones delos SE, 426
NDICE DE MATERIAS 885
gateways, 288
Giord, 345
grca
derecursos, 191
dirigida, 190
Grosch, Herb, 213
grupo
direccionamiento al, 284
membresa del, 283
grupos
cerrados vs. abiertos, 281
decompaneros vs. jerrquicos, 281
traslapados, 288
gusano deInternet
ataques del, 145
handle, 265
happens-before, 291
hardware, 16, 225, 384, 385
conceptos de, 216
reconguracin del, 174
Havender, 206, 209
enunciado de, 205
heurstica, 431
hilos, 558
deejecucin, 529
dinmicos, 317
diseno deun paquetede, 317
estticos, 317
implantacin deun paquetede, 318
introduccin a los, 315
uso de, 316
y RPC, 319
hilos.dat, 529, 557
hilos.java, 529, 531
hilos.txt, 529, 557
hiptesis
deVaswani y Zahorjan, 235
hiperpaginacin, 109, 111, 357
Holt, 185
hora real, 293
HRN, 398
IA, 511
idempotencia, 268
idempotente, 267
identicacin
fsica, 148
implementacin, 390
inanicin, 208
incoherencia dela memoria
problema dela, 219
inconsistencia, 343
independencia dedispositivo, 7, 9
informacin
acceso concurrentea la, 117
deestado, 340
ingeniera
desoftware, 189
instrucciones, 4
ampliadas, 8
mezclas de, 355
privilegiadas, 19
inteligencia, 425
articial, 509
inteligencia articial
IA, 425
inteligentemente, 426
interbloqueo, 181
detrco, 182
deun recurso simple, 182
en sistemas despool, 182
intercambio
dealmacenamiento, 77
tiempo de, 78
interconexin
multiple, 55
interfaz, 5
mapeada a memoria, 178
RS-232, 178
Internet, 427, 433, 529
internetwork, 288
interpretadores, 22
interred, 288
interrupcin
reloj de, 40
interrupciones, 17
manipuladores de, 32
procesamiento de, 31
interruptores, 55
intervalos
deresincronizacin, 297
886 NDICE DE MATERIAS
temporizador de, 18
intrusos, 144
IOCS, 68
IP, 271, 284
ISO, 244
ISO OSI, 244
jacket, 319
J ava, 529, 531, 558
J oseph y Birman
algoritmo de, 286
KnowledgeAcquisition, 439
ESB, 433
lmites
registros de, 73
lnea
desconexin de, 390, 392
Lamport, 291, 299
algoritmo de, 292, 293
LAN, 213, 223, 225, 227, 245, 249, 271,
272, 287, 288, 320, 348
latencia, 170, 495
lectores
recomendaciones, xi
lectura adelantada, 231
lenguajedecontrol detrabajos, 7, 70
lenguajedemquina, 4
programacin en, 21
lenguajes, 22
ley
deGrosch, 213
delos grandes nmeros, 363
lista
debloques libres, 130
decronmetros pendientes, 277
deencadenamiento doble, 129
deespacio libre, 128
deintenciones, 307
encadenada, 128
Little
resultado de, 364
llamada
a un procedimiento remoto, 257
al ncleo, 10
llamadas
al sistema, 8, 323
localidad
concepto de, 108
en el espacio, 109
temporal, 108
locking, 309
log, 307
lotes
detrabajo, 347
LRU, 342
mquina
antriona, 24
NUMA, 222
mquina virtual, 3, 8, 12
mquinas virtuales, 16
mtodo
Levenberg - Marquardt, 512
macroinstruccin, 21
macroprocesadores, 21
mainframe, 214
manejador
decerraduras, 309
dedisco, 163
manejadores
deinterrupciones, 162
mantenedor, 290
mapa
del archivo, 130
mapa asociativo
completo, 90
parcial, 90
mapa depginas
tabla de, 86, 101
mapa desegmentos, 96
tabla de, 94
mapas dememoria, 81
marcas detiempo, 310
Markov, 355
procesos de, 359
Mathematica, 427, 433, 446, 464, 467,
469, 479, 481, 484, 493, 495, 497,
516
Matlab, 559, 560, 569
mecanismos
deproteccin dearchivos, 144
NDICE DE MATERIAS 887
media
del tiempo deservicio, 363
del tiempo entrellegadas, 363
medidas
preventivas, 149
memoria, 219, 220, 446
acceso directo a, 158
aceso directo a, 20
administracin dela, 65
administrador dela, 65
agujeros de, 74
compartida, 243
dealta velocidad, 66
ja, 23
global compartida, 234
imgenes de, 78
local, 222, 234
principal, 65, 71, 183
propiedad dela coherencia, 218
real, 91, 97, 98, 100
secundaria, 65
virtual, 277
memoria principal
desperdicio de, 74
memoria, 427, 446
memoria real
memoria principal, 439
memoria virtual
paginacin de, 425, 585
mensaje, 264, 267, 272, 274, 277, 283
mensajes, 287
ordenamiento de, 287
transferencia de, 243
microcdigo, 24
asistencia de, 25
funciones en el, 24
microdiagnsticos, 24
microinstrucciones, 24
microncleo, 237
microprocesador, 352
microprocesadores, 213
microprograma
microcdigo, 4
microprogramacin, 23, 25
microprogramas, 23
MIMD, 216
miniprocesos, 315
mips, 355
MISD, 216
MLP, 512
modelado analtico y teora decolas
introduccin, 359
modelo
cliente- servidor, 279
deacceso remoto, 334
decarga / descarga, 334
deentubamiento, 316
deequipo, 316
deestacin detrabajo, 320
dela pila deprocesadores, 323
hbrido, 324
OSI, 244
servidor / trabajador, 316
modelo cliente- servidor, 13
direccionamiento en, 247
implantacin del, 255
introduccin al, 245
opciones dediseno para implementa-
cin, 255
primitivas almacenadas en buer vs.
no almacenadas, 251
primitivas conables vs. no cona-
bles en, 254
primitivas debloqueo vs. nobloqueo
en, 250
modelos
analticos, 355
deasignacin, 324
desistemas, 320
modo interactivo
conversacional, 7
modo ncleo
modo supervisor, 10
modo usuario, 10, 14
monitores, 357
dehardware, 356
desoftware, 356
montaje
dedirectorios, 227
esttico, 229
motor deinferencia, 433
multicomputadora, 233
888 NDICE DE MATERIAS
multicomputadoras, 217
con baseen buses, 222
con conmutador, 223
Multics, 12
multiplataforma
desarrollo, 529
multiprocesador, 315, 317
organizacin del hardwaredel, 54
multiprocesadores, 49, 217, 234, 324
con baseen buses, 218
con conmutador, 219
sistema operativo de, 57
tendencias delos, 61
multiprocesamiento, 7, 14, 20, 48, 49, 385,
465
grados deacoplamiento en, 55
metas, 50
rendimiento del sistema de, 60
simtrico, 61
multiprogramacin, 50
sistemas de, 27
multiprogramacin, 7, 70, 80, 174, 332,
465
departicin ja, 70
proteccin en, 73
multitarea, 465
multitransmisin, 280, 284, 288
Mutka y Livny, 329
ncleo monoltico, 237
NBS, 387
Nelson, 257, 430
NFS, 227, 229, 232
implantacin de, 230
la arquitectura de, 227
protocolos de, 228
NIS, 230
NIST, 294
niveles mltiples
colas deretroalimentacin de, 45
Nndt, 495, 497, 511, 523
Nnmodel, 495, 497, 514, 523
nodo-i, 163, 181, 228
nodo-v, 230
nodos ndices, 130
notacin
Kendall, 362
Kendall abreviada, 362
objetivo
del caso deestudio
algoritmosdeplanicacindel pro-
cesador, 397
anlisis del rendimiento deun sub-
sistema dedisco deuna peticin
a la vez, 467
anlisis del rendimiento deun sub-
sistema de disco de varias peti-
ciones a la vez, 481
anomaladeBeladyconMatlab, 559
concurrencia ehilos con J ava, 529
optimizacindeoperacionesdebs-
queda en disco con redes neuro-
nales, 496
paginacindememoriavirtual, 427
objetivos delos SE, 425
objeto
capacidadesysistemasorientadosha-
cia el, 385
objetos
desarrollo orientado a, 529
objetos del software, 8
ocultamiento, 142, 231, 341
ocurreantes de, 291
operacin
debsqueda, 166
estable, 323
operador
descuido del, 390
engano al, 393
optimizacin
debsqueda, 173
rotacional, 173
optimizacin deoperaciones debsqueda
en disco
con redes neuronales, 495, 779
introduccin, 495
ordenamiento
con respecto al tiempo global, 287
consistente, 287
organizacin
del almacenamiento virtual, 428
NDICE DE MATERIAS 889
interna, 10
orientacin a objetos
metodologa de, 398
OSI, 247
modelo dela, 245
overrun error, 273
pgina
fallos de, 38
pgina, 445
estrategias dereposicin de, 105
fallo deprdida de, 100
liberacin y tamano de, 112
marco de, 100
pgina dememoria
pgina, 427, 433, 435
pginas
marcos de, 84
tablas de, 113
pginas dememoria virtual
pginas, 439
prdida dedatos
causas ms comunes, 144
prdida desegmento
fallo de, 98
paginacin, 19, 78, 83, 427, 428
anticipada, 112
comportamiento de un programa en
la, 114
conceptos, 84
dememoria virtual
introduccin, 425
por demanda, 111
paginacin / segmentacin
compartimiento en, 101
sistemas de, 99
traduccin dinmica de direcciones,
99
pantallas
mapeadas a caracteres, 179
paquete, 272
paquetes
tipos de, 256
parmetro
por copiar / restaurar, 260
por referencia, 260
por valor, 259
parmetros
inesperados, 393
ordenamiento de, 262
paso de, 390
parsito, 393
paralelismo, 27, 63, 71, 316, 465
degrano no, 240
degrano grueso, 240
deteccin automtica, 50
explcito, 50
explotacin del, 49
implcito, 50
masivo, 49
particin, 73
particin ja
fragmentacin en la, 73
traduccin y carga absolutas, 71
traduccin y carga relocalizables, 72
particiones, 66
paticin variable
multiprogramacin de, 74
PC, 215, 320
computadoras personales, 8
penetracin
estudios de, 389
factor detrabajo de, 389
perl depgina
perl, 445, 458
performance, 271
desempeo, 445
perifricos, 17
deentrada / salida, 70
permanencia, 305
peticiones no uniformes
distribucin de, 175
pistas
derepuesto, 176
defectuosas, 176
pixeles, 179
planicacin
a plazo jo, 42
apropiativa, 35
criterios de, 38
dedos niveles, 46
del procesador, 35
890 NDICE DE MATERIAS
disciplinas de, 39
FIFO, 42
garantizada, 42
HRN, 44
mecanismo de, 38, 46
mecanismos de, 35
no apropiativa, 35
objetivos dela, 37
poltica de, 46
polticas de, 35
por prioridad, 45
RR, 43
SJ F, 43
SRT, 44
tipos de, 42
planicacin
algoritmo de, 171
apropiativa, 39
del procesador, 446
no apropiativa, 40
planicacin dedisco
C - SCAN, 173
conclusiones, 173
Eschenbach, 173
FCFS, 172
SCAN, 172
SCAN deN pasos, 172
SSTF, 172
planicador
dedos niveles, 48
Poisson, 468, 482
llegadas de, 360
proceso de, 372
poltica
delocalizacin de, 326
detransferencia deprocesos, 326
poliprocesadores, 63
POO, 397, 422
posibilidad, 150
posibilidades, 334
listas de, 151
posicin
rotacional, 173, 174
postergacin
indenida, 183
predecibilidad, 354
predicateaddressing, 285
prevencin dela condicin de
espera circular, 206
espera por, 206
exclusin mutua, 205
no apropiacin, 206
primitivas
asncronas, 250
con almacenamiento en buer, 253
debloqueo, 250
detransferencia demensajes, 250
no almacenadas, 251
sncronas, 250
sin bloqueo, 250
primitivas send y receive, 285
principio deoptimizacin, 105, 430
prioridades, 41
adquiridas, 41
dinmicas, 41
estticas, 41
privaca, 145
privilegio, 391
mnimo, 147
principio del menor, 391
probabilidades, 458
problema
dela autenticacin, 387
dela disputa, 387
dela intimidad, 387
procedimiento
llamada convencional a un, 259
procedimiento remoto
llamada a un, 243
procedimientos
reentrantes, 91
procesador, 28, 332, 397, 398, 446, 464
niveles deplanicacin del, 35
administracin del, 27
ejecutante, 61
ejecutivo, 60
maestro, 57
operaciones de, 495
planicacin del, 35
planicacin del, 397
propietario, 61
satlite, 57
NDICE DE MATERIAS 891
procesadores, 330
algoritmos deasignacin de, 327
asignacin delos, 27
asignacin de, 324
disenodealgoritmosdeasignacinde,
325
implantacin de algoritmos de asig-
nacin de, 326
pila de, 324
procesamiento
paralelo, 281
por lotes, 69
proceso, 27, 28, 43, 46, 199, 206, 234, 247,
299, 300, 306, 309, 310, 315
bloquedecontrol de, 27, 30
coordinador, 282, 298, 301, 302, 308
creacin deun, 30
despacho del, 397
destruccin deun, 31
emisor, 250
estados del, 28
hijo, 31
padre, 31
reanudar un, 31
receptor, 250
suspendido, 31
proceso cliente, 13
proceso deinterrupcin
apropiativo, 33
no apropiativo, 33
proceso dePoisson
resumen del, 365
proceso servidor, 13
procesos, 8, 197, 198, 202, 205, 287, 289,
292, 300, 302, 314, 321, 330, 331,
398, 420, 422
algoritmo deplanicacin de, 34
clientes, 247
comportamiento deseablede, 38
comunicacin entre, 243
consumidores, 530
deMarkov, 371
denacimiento y muerte, 371
del usuario, 284
en cooperacin, 247
envejecimiento de, 37
estados de, 30
estructura jerrquica de, 31
jerarquas de, 28
ligeros, 529
lista debloqueados, 30
lista delistos, 30
planicacin de, 34
planicador de, 34
prioridad delos, 37
productores, 530
servidores, 247
sincronizados interactivos, 392
tabla de, 31
trabajadores, 282
transiciones entreestados, 28
usuarios, 247
procesos hijo, 9
procesos.cpp, 397
procesos.txt, 397
producto
espacio - tiempo, 112
programa, 66, 68, 94, 111
conector, 265
palabra deestado de, 32
programa desarrollado
del caso deestudio
anlisis del rendimientodeun sub-
sistema dedisco deuna peticin
a la vez, 469
anlisis del rendimientodeun sub-
sistema de disco de varias peti-
ciones a la vez, 484
anomaladeBeladyconMatlab, 560
concurrencia ehilos con J ava, 531
estrategiasdeplanicacindel pro-
cesador, 398
optimizacindeoperacionesdebs-
queda en disco con redes neuro-
nales, 497
programacin
orientada a objetos, 397
programas, 66
del ncleo, 355
sintticos, 356
programas deaplicacin, 3
programas desistema, 3
892 NDICE DE MATERIAS
programas desarrollados y datos y ejecu-
ciones
del caso deestudio
paginacin de la memoria virtual,
446, 585
prohibiciones, 391
proteccin
bits de, 100
comandos de, 152
dominios de, 149
mtodos de, 151
matrices de, 150
matriz de, 150, 152
mecanismos de, 147, 149
modelos de, 152
por contrasena, 381
proteccin desegmento
fallo de, 98
protocolo, 228
dechorro, 273
decompromiso dedos fases, 308
dela capa n, 245
deNFS, 228, 229
detenersey esperar, 272
especializado en RPC, 272
orientado a la conexin, 271
sin conexin, 271
solicitud / respuesta, 247
protocolos, 243, 244
cliente- servidor, 228
con capas, 243
deactualizacin, 345
orientados hacia las conexiones, 244
sin conexin, 245
punto
devericacin, 198
puntos
dereferencia, 355, 356
Qnet, 495, 497, 516, 524
quantum
tamao del, 43
Question Editor, 435
ESB, 433
quorum
deescritura, 346
delectura, 346
rplica, 344
explcita, 345
retrasada, 345
RAID
discos RAID, 170
rastreo, 392
deejecucin deinstrucciones, 357
deejecucin demdulos, 357
razones delos SE, 426
read ahead, 231
receive, 251
recoleccin deresiduos, 74, 127
reconocimiento
por mensajecompleto, 256
por paqueteindividual, 256
recubrimiento, 68
recurso
naturaleza del, 198
recursos, 202, 313, 357, 397
apropiativos, 183
compartidos, 181, 183
compartimiento con paginacin, 91
computacionales, 426
conceptos de, 183
dedicados, 183
disponibles, 194
existentes, 194
grca de, 191
grcas deasignacin de, 190
no apropiativos, 183
recursos computacionales, 427
reduccin de grcas de asignacin
de, 190
trayectorias de, 199
recursos administrados, 5
recursos claves
retencin de, 38
recursos computacionales
recursos
computacionales, 445
red
neuronal, 496
omega, 220
red deinterconexin
NDICE DE MATERIAS 893
arquitectura dela, 217
redes
derea local, 213
decomputadoras, 387
decomunicaciones, 216
neuronales, 495
neuronales articiales, 509, 516, 526
perceptrn multicapa, 512
redes desistemas, 16
redundancia, 384
regin, 73
crtica, 298, 299
regiones
crticas, 289, 303
registro
deauditora, 382
delmites, 69
relocalizacin, 77
cargador de, 23
cargadores de, 72
registro de, 16
reloj
distorsin del, 291
en software, 295
horario, 18
marca de, 291
marcas del, 178
programable, 178
relojes, 177, 298
algoritmos para la sincronizacin de,
295
fsicos, 291, 293
lgicos, 290, 291
sincronizacin de, 291
rendimiento, 174, 351
control del, 356
global, 171
introduccin, 351
mediciones de, 353
mediciones del, 353
modeladoanalticoenrelacinal, 359
necesidad del control y de la evalua-
cin del, 352
tcnicas deevaluacin del, 355
tendencias, 352
reposicin
desalojo, 439
reposicin depgina
al azar, 106, 430
FIFO, 106, 430
LFU, 106, 431
LRU, 106, 431
NUR, 107, 432
reposicin depginas
reposicin, 427
residuos, 391
respaldo
incremental, 139, 153
respaldo y recuperacin, 153
respaldos, 153
respuesta
prdida demensajes de, 267
tasa de, 325
tiempo promedio de, 325
resultados y conclusiones
del caso deestudio
algoritmosdeplanicacin del pro-
cesador, 422
anlisis del rendimientodeun sub-
sistema dedisco deuna peticin
a la vez, 479
anlisis del rendimientodeun sub-
sistema de disco de varias peti-
ciones a la vez, 493
anomaladeBeladyconMatlab, 569
concurrencia ehilos con J ava, 558
optimizacindeoperacionesdebs-
queda en disco con redes neuro-
nales, 516
paginacin de la memoria virtual,
464
retraso
rotacional, 173
retraso o demora
rotacional, 167
retroalimentacin
negativa, 358
positiva, 358
reubicacin, 77
RFS, 229
Ricart y Agrawala, 299
RMSE, 510
894 NDICE DE MATERIAS
RNA, 511
breveintroduccin a las, 509
Redes neuronales articiales, 525
RNM, 398
rollback, 198
RPC, 257, 260, 268, 285, 320, 343
reas deproblemas en, 278
conexin dinmica, 265
copiado en, 274
implantacin en, 271
manejo del cronmetro en, 277
operacin bsica de, 259
protocolos, 271
reconocimientos en, 272
ruta crtica en, 274
semntica en presencia defallos, 266
transferencia deparmetros en, 262
RPS, 174, 176
RR, 398
ruta deacceso, 9
rutas deacceso
nombredelas, 124
SCAN, 172, 173, 497
scatter - gather, 276
search
tiempo dedemora rotacional, 169
secuencia
debytes, 119
deregistros, 120
seek
tiempo debsqueda, 169
segmentacin, 19, 78, 83, 94, 428
compartimiento en un sistema de, 98
control deacceso en, 94
segmento
fallo dedesbordamiento de, 100
fallo deprdida de, 100
fallo deproteccin de, 100
segmentos
tabla de, 100
segundo atmico, 294
segundo solar, 294
promedio, 294
seguridad, 8, 384
diseno para la, 146
externa, 379
fsica, 379
ncleos de, 383
operacional, 379
por hardware, 384
requisitos de, 378
un tratamiento total dela, 378
seguridad dearchivos
el ambientede, 144
sello detiempo, 431
semntica
desesin, 337, 343
deUNIX, 337, 343
send, 251
sensibilidad
rotacional, 176
serializacin, 305
servicio
dearchivos, 334
dedirectorios, 334
servicio dearchivos
interfaz del, 334
servidor, 265, 279, 322, 346, 374, 375, 483
dearchivos, 323, 339
dedirectorios, 339
degrupos, 283
detiempos, 296
el cliento no puedelocalizar al, 266
exponencial, 367
fallos del, 268
fantasma, 346
registro del, 265
utilizacin del, 363
servidor dedirectorios
interfaz del, 335
servidores
con estado, 340
dearchivos, 226
duplicados, 281
nmero de, 361
sin estado, 229, 340
seudoparalelismo, 27
shadowblocks, 306
Shedler, 430
SIMD, 216
simulacin, 356, 420
NDICE DE MATERIAS 895
simuladores, 356
simultaneidad
ilusin de, 71
sincronizacin, 289, 297
derelojes, 289
SISD, 216
sistema
nico
imagen de, 236
cliente- servidor, 341
dearchivos, 226, 323
compartido, 232
declavepblica, 387
decolas M/ M/ 1, 367
decolas M/ M/ c, 369
deintimidad criptogrca, 387
demultiprogramacin, 164
despool, 182
despooling, 164
detiempo compartido, 233
distribuido, 233, 314
imagen deun nico, 233, 234
llamadas al, 230
nmero deservidores en el, 361
sistema dearchivos, 118, 144, 226, 306
conabilidad del, 138
consistencia del, 139
desempeno del, 142
funciones del, 118
global compartido, 226
implantacin del, 127
jerrquico, 226
locales, 226
remotos, 229
seguridad del, 144
virtual, 230
sistema distribuido dearchivos
conclusionesdelaimplantacindeun,
346
estructura del, 339
implantacin deun, 338
tendencias
respecto dela escalabilidad, 348
respecto de redes de rea amplia,
348
respectodetoleranciadefallos, 349
respecto deusuarios mviles, 348
respecto del hardware, 347
tendencias en los, 347
sistema experto, 526
SE, 425, 445
sistema operativo, xi, 28, 30, 34, 40, 49,
54, 59, 65, 69, 73, 151, 155, 162,
181, 183, 198200, 202205, 215,
225, 228, 232, 234, 238, 247, 251,
277, 278, 304, 318, 351, 357, 358,
377, 378, 381, 383, 384, 386, 390,
397, 427, 464, 495, 526, 558
caractersticas, 4
dered, 8, 227
denicin, 3
despachador del, 35
distribuido, 8
funciones del, 4
funciones del ncleo, 33
ncleo del, 33
objetivo primario, 3
penetracin al, 389
sistema uniprocesador, 32
sistemas
abiertos
interconexin de, 244
centralizados, 213
dbilmenteacoplados, 217
demultiprocesador
con tiempo compartido, 234
deservidores mltiples, 362
detiempo compartido, 174
detiempo real, 293
deun solo servidor, 361
distribuidos, 213, 214
fallosgenricosfuncionalesdelos, 389
fuertementeacoplados, 217
paralelos, 214
realmentedistribuidos, 232
supervivientes, 384
sistemas con capas, 10
sistemas dearchivos, 117
sistemas debases dedatos, 8
sistemas detiempo real, 7
sistemas distribuidos
aspectos del diseno de, 235
896 NDICE DE MATERIAS
bloqueos en, 311
comunicacin en, 243
conabilidad en, 238
desempeno en, 239
desventajas delos, 215
disponibilidad en, 239
escalabilidad en, 241
estructura delos, 237
exibilidad en, 237
introduccin a la sincronizacin en,
289
introduccin a los, 213
planicacin en, 332
procesos y procesadores en, 315
redundancia en, 239
seguridad en, 239
sincronizacin en, 289
tolerancia a falla en, 239
transparencia en, 236, 248
ventajas respecto a las PC indepen-
dientes, 215
ventajas respecto de los centraliza-
dos, 213
sistemas distribuidos dearchivos
diseno delos, 334
introduccin a los, 333
sistemas expertos
SE, 425427, 433, 464
sistemas monolticos, 10
sistemas operativos, 209, 426, 427, 445
acoplados
dbilmente, 225
fuertemente, 225
ataques genricos a, 392
conceptos, 8
convencionales, 1
deredes, 225
distribuidos, 211, 235, 315
estructura, 10
generaciones, 5
historia, 5
introduccin, 3
introduccin a la seguridad de los,
377
seguridad delos, 377
tendencias, 14
SLTF, 173
software, 21, 215
conceptos de, 225
softwaredeentrada / salida
en el espacio del usuario, 164
independientedel dispositivo, 163
objetivos del, 161
solicitud
prdida demensajes de, 267
SPOOL, 22
spooling, 7
SSE, 510
SSF, 167, 497
SSTF, 172
stub, 262
del cliente, 261
del servidor, 261
subconjuntos favorecidos, 109
subsistema dedisco
anlisis del rendimiento deun, 372
suma
devericacin, 175
sweep algorithms, 277
tabla
deprocesos, 277
desolicitudes pendientes, 167, 169
tabla demapa depginas
registro origen dela, 86
tabla deprocesos, 9
tablas
fragmentacin de, 113
TAI, 294
tarea, 27
tasa
deentradas desolicitudes, 323
dellegadas, 357, 363
deprocesamiento desolicitudes, 323
deservicio, 357, 363
mxima dealejamiento, 295
TCP, 271
TCP / IP, 247
temporizador, 232
teora
decolas, 355, 467, 481
terminal
NDICE DE MATERIAS 897
manejador dela, 178
terminales, 178
mapeadas a bits, 179
test, 251
THE, 10
threads, 315, 529
tiempo, 289
actual, 296, 297
atmico internacional, 294
compartido, 91, 315
coordenado universal, 294
deacceso a disco, 495
debsqueda, 166, 167, 495
dedemora rotacional, 495
dedescarga, 69
deespera, 398
deinstalacin, 69
delatencia, 166
deproceso, 110
depropagacin, 297
depropagacin del mensaje, 296
dereaccin, 354
deregreso, 353
derespuesta, 354
deservicio, 361, 398
detransferencia, 167, 495
detransmisin, 166
del servidor, 296
entrefallos depgina, 114
global, 290, 312, 314
real, 291
relativo, 291
sello de, 106
total deacceso, 166
varias fuentes externas de, 297
tiempos, 355, 360
deservicio, 361
entrellegadas, 360
timer, 232
timesharing
tiempo compartido, 7
topologa de
hipercubo, 223
retcula, 223
trco
intensidad de, 363
trco por servidor
intensidad de, 363
trace, 357
traduccin dedirecciones depaginacin
combinacin de transformacin aso-
ciativa / directa, 90
transformacin asociativa, 87
transformacin directa, 86
traduccindedireccionesdesegmentacin
transformacin directa, 96
transaccin, 303, 306
atmica, 303
control deconcurrencia en el modelo
de, 308
el modelo de, 303
implantacin del modelo de, 305
primitivas de, 304
transacciones
anidadas, 305
atmicas, 303, 304, 314
propiedades delas, 305
transferencias
asncronas, 161
sncronas, 161
transicin
detrabajo a trabajo, 69
transmisin
atmica, 286
simple, 280, 284
transparencia
deconcurrencia, 237
delocalizacin, 237
delos nombres, 336
demigracin, 237
deparalelismo, 237
derplica, 237
transporte, 274
trap, 9
Turbo C++, 398, 422
two - phasecommit, 308
UDP, 271
umbral
valores de, 391
unidad
decodicacin, 387
898 NDICE DE MATERIAS
dedescifrado, 387
uniprocesador
virtual, 233
unitransmisin, 280, 284
UNIX, 227, 271, 278, 333, 336
esquema deproteccin de, 230
semntica de, 337
User Interface, 445
ESB, 433
usuario
autenticacin del, 147
imgenes de, 78
UTC, 294, 297
repector de, 295
utilizacin, 354
valor didctico, 445
variables
globales, 278
varianza
delos tiempos derespuesta, 354
vericacin
delegalidad, 390
VFS, 230
video
RAM, 179
vigilancia, 380
programas de, 381
virus, 146
VM/ 370, 13
wait, 251
WAN, 227, 245, 271
working sets, 109

También podría gustarte