Upload
ratondac90
View
225
Download
0
Embed Size (px)
Citation preview
8/8/2019 Sistemas Operativos Unlock
1/924
SISTEMAS OPERATIVOS
MAGISTER DAVID LUIS LA RED MARTINEZ
8/8/2019 Sistemas Operativos Unlock
2/924
8/8/2019 Sistemas Operativos Unlock
3/924
SISTEMAS
OPERATIVOS
Magister David Luis la Red Martnez
PROFESOR TITULAR POR CONCURSO DE
SISTEMAS OPERATIVOS
Licenciatura en Sistemas de Informacin
Departamento de Informtica
UNIVERSIDAD NACIONAL DEL NORDESTE
U.N.N.E. - ARGENTINA
8/8/2019 Sistemas Operativos Unlock
4/924
8/8/2019 Sistemas Operativos Unlock
5/924
A mi familia.
A mis profesores.
A mis alumnos.
8/8/2019 Sistemas Operativos Unlock
6/924
8/8/2019 Sistemas Operativos Unlock
7/924
Prlogo
Es para mi una gran satisfaccin prologar este libro del Profesor La Red Martnezsobre el aprendizaje de los Sistemas Operativos. El libro no es ms que una muestra yun testimonio escrito de un largo proceso de formacin del profesorado y de renovacinen las formas docentes, que ha tenido lugar en la Universidad Nacional del Nordeste enCorrientes en el Departamento de Informtica, con motivo de la Maestra en Informticay Computacin, y en el que el Profesor La Red ha colaborado de una forma destacada,pudiendo decirse que no hubiera sido posible sin su participacin.
El tema de los sistemas operativos es complejo e implica muchos conceptos nuevospara el alumno, algunos de ellos difciles de comprender. Con este libro el aprendizajese 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, porotro, de la incorporacin de las nuevas tecnologas a la enseanza. Ello se nota en el estilodel libro, en la seleccin de los ejemplos y problemas que se incluyen, en los contenidos, yen la forma de comunicarlo al lector.
La incorporacin de los recursos y herramientas informticas de trabajo es uno de susmuchos aciertos. Sorprende la lista de ellas que han sido utilizadas. El poder accedera multitud de programas de clculo y diseo, dibujo, tratamiento de textos, correo elec-trnico, Internet, etc., desde el propio libro, en su versin electrnica, brindan al alumnola posibilidad de un aprendizaje mucho ms profundo y prctico. Permiten tambin laauto-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, sabiendoque muchos, en cualquier parte del mundo, se beneficiarn de este trabajo. Esto podrcomprobarlo cuando empiece a recibir agradecimientos y consultas de los lugares ms insos-pechados. Aunque, en la inmensa mayora de los casos, no recibir ni siquiera las gracias,conviene que sepa que muchos le agradecern, en silencio, su esfuerzo y generosidad.
Por ello, mediante este libro, el Profesor La Red pasa de ser un profesor universitarioa un profesor universal.
Dr. Enrique Castillo Ron.Acadmico de Nmero de la
Academia de Ingeniera de Espaa.
Santander (Espaa); Noviembre de 2001.
8/8/2019 Sistemas Operativos Unlock
8/924
8/8/2019 Sistemas Operativos Unlock
9/924
Prefacio
Este libro trata sobre los aspectos fundamentales referidos a los Sistemas Operativosy divide el estudio de los mismos en tres partes:
Sistemas Operativos Convencionales.
Sistemas Operativos Distribuidos.
Casos de Estudio.
Para aquellos lectores que solo deseen adquirir o refrescar conocimientos relacionadoscon los Sistemas Operativos en general, ser suficiente con la lectura de la Primer Parte,
en tanto que para aquellos que deseen un conocimiento ms profundo, teniendo presente laproblemtica de los Sistemas Distribuidos, ser necesario avanzar en la lectura del primergrupo de temas de la Segunda Parte; asimismo, si adems se desea incursionar en aspectoscomplementarios pero importantes, se sugiere tambin la lectura del segundo grupo detemas de la mencionada Segunda Parte, la que se recomienda leer aunque no se tengainters en los Sistemas Distribuidos, ya que es un buen complemento de la Primer Partede esta obra.
En cuanto a la Tercer Parte, corresponde aclarar que resultara de inters para quie-nes deseen profundizar en el estudio terico - prctico de un conjunto de problemticasrelacionadas con los Sistemas Operativos, con el auxilio de herramientas de avanzada ta-les como Mathematica, Matlab, Java, Redes Neuronales, Sistemas Expertos, Orientacin
a Objetos, etc., siendo un buen complemento de las dos partes anteriores, que permiteincrementar el conocimiento de los temas considerados.
Es preciso sealar adems que este libro est destinado a los alumnos de una Carrerade Grado en Informtica que deban hacer un Curso de Sistemas Operativos, pudiendo serde utilidad, segn la profundidad del curso, la Primer Parte, la Segunda Parte o las tresque componen este trabajo.
Master David Luis la Red Martnez.Prof. Titular de la UNNE.
Corrientes (Argentina); Noviembre de 2001.
8/8/2019 Sistemas Operativos Unlock
10/924
8/8/2019 Sistemas Operativos Unlock
11/924
ndice General
I Sistemas Operativos Convencionales 1
1 Introduccin 31.1 Qu es un Sistema Operativo . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Historia de los Sistemas Operativos - Generaciones . . . . . . . . . . . . . . 5
1.3 Conceptos de los Sistemas Operativos . . . . . . . . . . . . . . . . . . . . . 8
1.4 Estructura de los 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 Defi
niciones Sobre Procesos . . . . . . . . . . . . . . . . . . 272.2 Estados de Procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3 Procesamiento de Interrupciones . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4 El Ncleo del Sistema Operativo . . . . . . . . . . . . . . . . . . . . . . . . 33
2.5 Planificacin de Procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.6 Niveles de Planificacin del Procesador . . . . . . . . . . . . . . . . . . . . . 352.7 Objetivos de la Planificacin . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.8 Criterios de Planificacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.9 Planificacin Apropiativa Versus No Apropiativa . . . . . . . . . . . . . . . 39
2.10 Temporizador de Intervalos o Reloj de Interrupcin . . . . . . . . . . . . . . 402.11 Prioridades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.12 Tipos de Planificacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422.12.1 Planificacin a Plazo Fijo . . . . . . . . . . . . . . . . . . . . . . . . 42
2.12.2 Planificacin Garantizada . . . . . . . . . . . . . . . . . . . . . . . . 42
2.12.3 Planificacin del Primero en Entrar Primero en Salir (FIFO) . . . . 42
2.12.4 Planificacin de Asignacin en Rueda (RR: Round Robin) . . . . . . 43
2.12.5 Tamao del Cuanto o Quantum . . . . . . . . . . . . . . . . . . . . . 43
2.12.6 Planificacin del Trabajo Ms Corto Primero (SJF) . . . . . . . . . 43
2.12.7 Planificacin del Tiempo Restante Ms Corto (SRT) . . . . . . . . . 44
2.12.8 Planificacin el Siguiente con Relacin de Respuesta Mxima (HRN) 44
2.12.9 Planificacin por Prioridad . . . . . . . . . . . . . . . . . . . . . . . 452.12.10 Colas de Retroalimentacin de Niveles Mltiples . . . . . . . . . . . 45
2.12.11Poltica Versus Mecanismo de Planificacin . . . . . . . . . . . . . . 46
xi
8/8/2019 Sistemas Operativos Unlock
12/924
xii NDICE GENERAL
2.12.12Planificacin de Dos Niveles . . . . . . . . . . . . . . . . . . . . . . . 46
2.13 Multiprocesamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.13.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.13.2 Confiabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.13.3 Explotacin del Paralelismo . . . . . . . . . . . . . . . . . . . . . . . 492.13.4 Paralelismo Masivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.13.5 Metas de los Sistemas de Multiprocesamiento . . . . . . . . . . . . . 502.13.6 Deteccin Automtica del Paralelismo . . . . . . . . . . . . . . . . . 502.13.7 Distribucin de Ciclos . . . . . . . . . . . . . . . . . . . . . . . . . . 512.13.8 Reduccin de la Altura del Arbol . . . . . . . . . . . . . . . . . . . . 52
2.14 Organizacin del Hardware del Multiprocesador . . . . . . . . . . . . . . . . 542.14.1 Tiempo Compartido o Bus Comn (o Conductor Comn) . . . . . . 54
2.14.2 Matriz de Barras Cruzadas e Interruptores . . . . . . . . . . . . . . 552.14.3 Almacenamiento de Interconexin Mltiple . . . . . . . . . . . . . . 55
2.15 Grados de Acoplamiento en Multiprocesamiento . . . . . . . . . . . . . . . 552.15.1 Organizacin Maestro / Satlite . . . . . . . . . . . . . . . . . . . . 57
2.16 Sistema Operativo de Multiprocesadores . . . . . . . . . . . . . . . . . . . . 572.16.1 Maestro / Satlite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592.16.2 Ejecutivos Separados . . . . . . . . . . . . . . . . . . . . . . . . . . . 592.16.3 Tratamiento Simtrico . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.17 Rendimiento del Sistema de Multiprocesamiento . . . . . . . . . . . . . . . 602.18 Recuperacin de Errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602.19 Multiprocesamiento Simtrico (MPS) . . . . . . . . . . . . . . . . . . . . . . 61
2.20 Tendencias de los Multiprocesadores . . . . . . . . . . . . . . . . . . . . . . 61
3 Administracin de la Memoria 653.1 Introduccin al Almacenamiento Real . . . . . . . . . . . . . . . . . . . . . 653.2 Organizacin y Administracin del Almacenamiento . . . . . . . . . . . . . 65
3.2.1 Organizacin del Almacenamiento . . . . . . . . . . . . . . . . . . . 653.2.2 Administracin del Almacenamiento . . . . . . . . . . . . . . . . . . 66
3.3 Jerarqua de Almacenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . 663.4 Estrategias de Administracin del Almacenamiento . . . . . . . . . . . . . . 67
3.4.1 Asignacin Contigua de Almacenamiento Versus No Contigua . . . . 683.4.2 Asignacin Contigua de Almacenamiento de Un Solo Usuario . . . . 68
3.5 Multiprogramacin de Particin Fija . . . . . . . . . . . . . . . . . . . . . . 703.5.1 Multiprogramacin de Particin Fija: Traduccin y Carga Absolutas 713.5.2 Multiprogramacin de Particin Fija: Traduccin y Carga Relocali-
zables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723.5.3 Proteccin en los Sistemas de Multiprogramacin . . . . . . . . . . . 733.5.4 Fragmentacin en la Multiprogramacin de Particin Fija . . . . . . 73
3.6 Multiprogramacin de Particin Variable . . . . . . . . . . . . . . . . . . . . 743.6.1 Compresin o Compactacin de Almacenamiento . . . . . . . . . . . 743.6.2 Estrategias de Colocacin del Almacenamiento . . . . . . . . . . . . 77
3.7 Multiprogramacin con Intercambio de Almacenamiento . . . . . . . . . . . 773.8 Introduccin a la Organizacin del Almacenamiento Virtual . . . . . . . . . 78
3.9 Conceptos Bsicos de Almacenamiento Virtual . . . . . . . . . . . . . . . . 79
8/8/2019 Sistemas Operativos Unlock
13/924
NDICE GENERAL xiii
3.10 Organizacin del Almacenamiento de Niveles Mltiples . . . . . . . . . . . . 80
3.11 Transformacin de Bloques . . . . . . . . . . . . . . . . . . . . . . . . . . . 813.12 Conceptos Bsicos de Paginacin . . . . . . . . . . . . . . . . . . . . . . . . 84
3.12.1 Traduccin de Direcciones de Paginacin por Transformacin Directa 863.12.2 Traduccin de Direcciones de Paginacin por Transformacin Aso-
ciativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873.12.3 Traduccin de Direcciones de Paginacin por Combinacin de Trans-
formacin Asociativa / Directa . . . . . . . . . . . . . . . . . . . . . 903.12.4 Compartimiento de Recursos en un Sistema de Paginacin . . . . . . 91
3.13 S egmentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943.13.1 Control de Acceso en Sistemas de Segmentacin . . . . . . . . . . . 943.13.2 Traduccin de Direcciones de Segmentacin por Transformacin Di-
recta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963.13.3 Compartimiento en un Sistema de Segmentacin . . . . . . . . . . . 98
3.14 Sistemas de Paginacin / Segmentacin . . . . . . . . . . . . . . . . . . . . 993.14.1 Traduccin Dinmica de Direcciones en Sistemas de Paginacin /
Segmentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993.14.2 Compartimiento en un Sistema de Paginacin / Segmentacin . . . . 101
3.15 Administracin del Almacenamiento Virtual . . . . . . . . . . . . . . . . . . 1013.15.1 Estrategias de Reposicin de Pgina . . . . . . . . . . . . . . . . . . 1053.15.2 El Principio de Optimizacin . . . . . . . . . . . . . . . . . . . . . . 1053.15.3 Reposicin de Pgina al Azar . . . . . . . . . . . . . . . . . . . . . . 106
3.15.4 Reposicin de Pgina por el Sistema de Primero en Entrar - Primero
en S alir (FIFO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063.15.5 Reposicin de Pgina Menos - Recientemente - Usada (LRU) . . . . 1063.15.6 Reposicin de Pgina Menos - Frecuentemente - Usada (LFU) . . . . 1063.15.7 Reposicin de Pgina No Usada - Recientemente (NUR) . . . . . . . 107
3.16 L ocalidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1083.17 Conjuntos de Trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1093.18 Paginacin por Demanda y Paginacin Anticipada . . . . . . . . . . . . . . 111
3.18.1 Paginacin por Demanda . . . . . . . . . . . . . . . . . . . . . . . . 1113.18.2 Paginacin Anticipada . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.19 Liberacin de Pgina y Tamao de Pgina . . . . . . . . . . . . . . . . . . . 1123.19.1 Liberacin de Pgina . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.19.2 Tamao de Pgina . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1133.20 Comportamiento de un Programa en la Paginacin . . . . . . . . . . . . . . 114
4 Sistemas de Archivos 1174.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174.2 Funciones del Sistema de Archivos . . . . . . . . . . . . . . . . . . . . . . . 1184.3 El Sistema de Archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1184.4 Archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.4.1 Nombre de los Archivos . . . . . . . . . . . . . . . . . . . . . . . . . 1194.4.2 Estructura de un Archivo . . . . . . . . . . . . . . . . . . . . . . . . 1194.4.3 Tipos de Archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.4.4 Acceso a un Archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8/8/2019 Sistemas Operativos Unlock
14/924
xiv NDICE GENERAL
4.4.5 Atributos de Archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.4.6 Operaciones con Archivos . . . . . . . . . . . . . . . . . . . . . . . . 1224.4.7 Archivos Mapeados a Memoria . . . . . . . . . . . . . . . . . . . . . 122
4.5 Directorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234.5.1 Sistemas Jerrquicos de Directorios . . . . . . . . . . . . . . . . . . . 1234.5.2 Nombre de las Rutas de Acceso . . . . . . . . . . . . . . . . . . . . . 1244.5.3 Operaciones con Directorios . . . . . . . . . . . . . . . . . . . . . . . 126
4.6 Implantacin del Sistema de Archivos . . . . . . . . . . . . . . . . . . . . . 1274.6.1 Implantacin de Archivos . . . . . . . . . . . . . . . . . . . . . . . . 1274.6.2 Implantacin de Directorios . . . . . . . . . . . . . . . . . . . . . . . 1334.6.3 Archivos Compartidos . . . . . . . . . . . . . . . . . . . . . . . . . . 1334.6.4 Administracin del Espacio en Disco . . . . . . . . . . . . . . . . . . 136
4.6.5 Confiabilidad del Sistema de Archivos . . . . . . . . . . . . . . . . . 1384.6.6 Desempeo del Sistema de Archivos . . . . . . . . . . . . . . . . . . 142
4.7 Descriptor de Archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1434.8 Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.8.1 El Ambiente de Seguridad. . . . . . . . . . . . . . . . . . . . . . . . 1444.8.2 Virus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1464.8.3 Principios del Diseo Para la Seguridad . . . . . . . . . . . . . . . . 1464.8.4 Autentificacin del Usuario . . . . . . . . . . . . . . . . . . . . . . . 1474.8.5 Contraseas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1474.8.6 Identificacin Fsica . . . . . . . . . . . . . . . . . . . . . . . . . . . 1484.8.7 Medidas Preventivas . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
4.9 Mecanismos de Proteccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1494.9.1 Dominios de Proteccin . . . . . . . . . . . . . . . . . . . . . . . . . 1494.9.2 Listas Para Control de Acceso . . . . . . . . . . . . . . . . . . . . . 1504.9.3 Posibilidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1504.9.4 Modelos de Proteccin . . . . . . . . . . . . . . . . . . . . . . . . . . 1524.9.5 Control de Acceso Por Clases de Usuarios . . . . . . . . . . . . . . . 152
4.10 Respaldo y Recuperacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
5 Entrada / Salida 1555.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1555.2 Principios del Hardware de E / S . . . . . . . . . . . . . . . . . . . . . . . . 155
5.2.1 Dispositivos de E / S . . . . . . . . . . . . . . . . . . . . . . . . . . . 1565.2.2 Controladores de Dispositivos . . . . . . . . . . . . . . . . . . . . . . 1565.2.3 Acceso Directo a Memoria (DMA) . . . . . . . . . . . . . . . . . . . 158
5.3 Principios del Software de E / S . . . . . . . . . . . . . . . . . . . . . . . . 1605.3.1 Objetivos del Software de E / S . . . . . . . . . . . . . . . . . . . . . 1615.3.2 Manejadores de Interrupciones . . . . . . . . . . . . . . . . . . . . . 1625.3.3 Manejadores de Dispositivos . . . . . . . . . . . . . . . . . . . . . . . 1625.3.4 Software de E / S Independiente del Dispositivo . . . . . . . . . . . 1635.3.5 Software de E / S en el Espacio del Usuario . . . . . . . . . . . . . . 164
5.4 Discos - Hardware Para Discos . . . . . . . . . . . . . . . . . . . . . . . . . 1655.4.1 Discos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
5.4.2 Hardware Para Discos . . . . . . . . . . . . . . . . . . . . . . . . . . 165
8/8/2019 Sistemas Operativos Unlock
15/924
NDICE GENERAL xv
5.5 Operacin de Almacenamiento de Disco de Cabeza Mvil . . . . . . . . . . 165
5.6 Algoritmos de Programacin del Brazo del Disco . . . . . . . . . . . . . . . 1675.7 Porqu es Necesaria la Planificacin de Discos . . . . . . . . . . . . . . . . . 1705.8 Caractersticas Deseables de la Planificacin . . . . . . . . . . . . . . . . . . 1715.9 Optimizacin de la Bsqueda en Discos . . . . . . . . . . . . . . . . . . . . 171
5.9.1 Planificacin FCFS (Primero en Llegar, Primero en Ser Servido) . . 1725.9.2 Planificacin SSTF (Menor Tiempo de Bsqueda Primero) . . . . . 1725.9.3 Planificacin SCAN . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725.9.4 Planificacin SCAN de N - Pasos . . . . . . . . . . . . . . . . . . . . 1725.9.5 Planificacin C - SCAN (Bsqueda Circular) . . . . . . . . . . . . . 1735.9.6 Esquema Eschenbach . . . . . . . . . . . . . . . . . . . . . . . . . . . 1735.9.7 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
5.10 Optimizacin Rotacional en Discos . . . . . . . . . . . . . . . . . . . . . . . 1735.11 Consideraciones de los Discos Sobre los Sistemas . . . . . . . . . . . . . . . 1745.12 Manejo de Errores en Discos . . . . . . . . . . . . . . . . . . . . . . . . . . . 1755.13 Ocultamiento de Una Pista a la Vez en Discos . . . . . . . . . . . . . . . . . 1765.14 Discos en RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1775.15 Relojes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1775.16 Terminales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
6 Bloqueos 1816.1 Introduccin y Ejemplos de Bloqueo (o Interbloqueo) . . . . . . . . . . . . . 1816.2 Conceptos de Recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
6.3 Bloqueos y Condiciones Necesarias Para el Bloqueo . . . . . . . . . . . . . . 1846.4 Modelacin de Bloqueos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856.5 Areas Principales en la Investigacin de Bloqueos . . . . . . . . . . . . . . . 1886.6 El Algoritmo del Avestrz o de Ostrich . . . . . . . . . . . . . . . . . . . . 1896.7 Deteccin de Bloqueos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
6.7.1 Grficas de Asignacin de Recursos . . . . . . . . . . . . . . . . . . . 1906.7.2 Reduccin de Grficas de Asignacin de Recursos . . . . . . . . . . . 1906.7.3 Deteccin de Bloqueos de Forma Un Recurso de Cada Tipo . . . . 1906.7.4 Deteccin de Bloqueos de Forma Varios Recursos de Cada Tipo . 1946.7.5 Cundo Buscar los Bloqueos . . . . . . . . . . . . . . . . . . . . . . 197
6.8 Recuperacin de Bloqueos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
6.8.1 Recuperacin Mediante la Apropiacin . . . . . . . . . . . . . . . . . 1986.8.2 Recuperacin Mediante Rollback . . . . . . . . . . . . . . . . . . . . 1986.8.3 Recuperacin Mediante la Eliminacin de Procesos . . . . . . . . . . 199
6.9 Evasin de Bloqueos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1996.9.1 Trayectorias de Recursos . . . . . . . . . . . . . . . . . . . . . . . . . 1996.9.2 Estados Seguros e Inseguros . . . . . . . . . . . . . . . . . . . . . . . 2016.9.3 El Algoritmo del Banquero (de Dijkstra) Para Solo Un Recurso . . . 2026.9.4 El Algoritmo del Banquero (de Dijkstra) Para Varios Recursos . . . 2036.9.5 Asignacin de Recursos por el Algoritmo del Banquero . . . . . . . . 2046.9.6 Debilidades del Algoritmo del Banquero . . . . . . . . . . . . . . . . 205
6.10 Prevencin de Bloqueos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
6.10.1 Prevencin de la Condicin de Exclusin Mutua . . . . . . . . . . . 205
8/8/2019 Sistemas Operativos Unlock
16/924
xvi NDICE GENERAL
6.10.2 Prevencin de la Condicin detenerse y esperar o espera por . . 206
6.10.3 Prevencin de la Condicin de no apropiacin . . . . . . . . . . . 2066.10.4 Prevencin de la Condicin de espera circular . . . . . . . . . . . . 206
6.11 Otros Asp ectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
6.11.1 Cerradura de Dos Fases . . . . . . . . . . . . . . . . . . . . . . . . . 208
6.11.2 Bloqueos Sin Recursos . . . . . . . . . . . . . . . . . . . . . . . . . . 2086.11.3 Inanicin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
6.12 Tendencias del Tratamiento del Bloqueo . . . . . . . . . . . . . . . . . . . . 209
II Sistemas Operativos Distribuidos 211
7 Introduccin a los Sistemas Distribuidos 2137.1 Introduccin a los Sistemas Distribuidos . . . . . . . . . . . . . . . . . . . . 2137.2 Ventajas de los Sistemas Distribuidos con Respecto a los Centralizados . . . 2137.3 Ventajas Respecto a las PC Independientes . . . . . . . . . . . . . . . . . . 215
7.4 Desventajas de los Sistemas Distribuidos . . . . . . . . . . . . . . . . . . . . 215
7.5 Conceptos de Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167.6 Multiprocesadores con Base en Buses . . . . . . . . . . . . . . . . . . . . . . 218
7.7 Multiprocesadores con Conmutador . . . . . . . . . . . . . . . . . . . . . . . 2197.8 Multicomputadoras con Base en Buses . . . . . . . . . . . . . . . . . . . . . 222
7.9 Multicomputadoras con Conmutador . . . . . . . . . . . . . . . . . . . . . . 223
7.10 Conceptos de Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
7.11 Sistemas Operativos de Redes . . . . . . . . . . . . . . . . . . . . . . . . . . 2257.11.1 NFS: Network File System . . . . . . . . . . . . . . . . . . . . . . . 227
7.12 Sistemas Realmente Distribuidos . . . . . . . . . . . . . . . . . . . . . . . . 232
7.13 Sistemas de Multiprocesador con Tiempo Compartido . . . . . . . . . . . . 234
7.14 Aspectos del Diseo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2357.15 T ran sp aren cia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
7.16 Flexibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377.17 Confiabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
7.18 D esempeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
7.19 Escalabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
8 Comunicacin en los Sistemas Distribuidos 2438.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) . . . . . . . . . . . . . . . 2458.4 Direccionamiento en C - S . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
8.5 Primitivas de Bloqueo Vs. No Bloqueo en C - S . . . . . . . . . . . . . . . . 2508.6 Primitivas Almacenadas Vs. No Almacenadas . . . . . . . . . . . . . . . . . 251
8.7 Primitivas Confiables Vs. No Confiables en C - S . . . . . . . . . . . . . . . 254
8.8 Implantacin del Modelo C - S . . . . . . . . . . . . . . . . . . . . . . . . . 2558.9 Llamada a un Procedimiento Remoto (RPC) . . . . . . . . . . . . . . . . . 257
8.10 Operacin Bsica de RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
8.11 Transferencia de Parmetros en RPC . . . . . . . . . . . . . . . . . . . . . . 262
8/8/2019 Sistemas Operativos Unlock
17/924
NDICE GENERAL xvii
8.12 Conexin Dinmica (Dynamic Binding) en RPC . . . . . . . . . . . . . . . 265
8.13 Semntica de RPC en Presencia de Fallos . . . . . . . . . . . . . . . . . . . 2668.13.1 El Cliente No Puede Localizar al Servidor . . . . . . . . . . . . . . . 2668.13.2 Prdida de Mensajes de Solicitud . . . . . . . . . . . . . . . . . . . . 2678.13.3 Prdida de Mensajes de Respuesta . . . . . . . . . . . . . . . . . . . 2678.13.4 Fallos del Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2688.13.5 Fallos del Cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
8.14 Aspectos de la Implantacin en RPC . . . . . . . . . . . . . . . . . . . . . . 2718.14.1 Protocolos RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2718.14.2 Reconocimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2728.14.3 Ruta Crtica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2748.14.4 Copiado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
8.14.5 Manejo del Cronmetro . . . . . . . . . . . . . . . . . . . . . . . . . 2778.15 Areas de Problemas en RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 2788.16 Comunicacin en Grupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2798.17 Aspectos del Diseo de la Comunicacin en Grupo . . . . . . . . . . . . . . 280
8.17.1 Grupos Cerrados Vs. Grupos Abiertos . . . . . . . . . . . . . . . . . 2818.17.2 Grupos de Compaeros Vs. Grupos Jerrquicos . . . . . . . . . . . . 2818.17.3 Membresa del Grupo . . . . . . . . . . . . . . . . . . . . . . . . . . 2838.17.4 Direccionamiento al Grupo . . . . . . . . . . . . . . . . . . . . . . . 2848.17.5 Primitivas Send y Receive . . . . . . . . . . . . . . . . . . . . . . . . 2858.17.6 Atomicid ad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2868.17.7 Ordenamiento de Mensajes . . . . . . . . . . . . . . . . . . . . . . . 287
8.17.8 Grupos Traslapados . . . . . . . . . . . . . . . . . . . . . . . . . . . 2888.17.9 Escalabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
9 Sincronizacin en Sistemas Distribuidos 2899.1 Introduccin a la Sincronizacin en Sistemas Distribuidos . . . . . . . . . . 2899.2 Sincronizacin de Relojes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2899.3 Relo jes Lgicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2909.4 Relo jes Fsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2939.5 Algoritmos Para la Sincronizacin de Relojes . . . . . . . . . . . . . . . . . 295
9.5.1 Algoritmo de Cristian . . . . . . . . . . . . . . . . . . . . . . . . . . 2959.5.2 Algoritmo de Berkeley . . . . . . . . . . . . . . . . . . . . . . . . . . 297
9.5.3 Algoritmos con Promedio . . . . . . . . . . . . . . . . . . . . . . . . 2979.5.4 Varias Fuentes Externas de Tiempo . . . . . . . . . . . . . . . . . . 297
9.6 Exclusin Mutua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2989.6.1 Un Algoritmo Centralizado . . . . . . . . . . . . . . . . . . . . . . . 2989.6.2 Un Algoritmo Distribuido . . . . . . . . . . . . . . . . . . . . . . . . 2999.6.3 Un Algoritmo de Anillo de Fichas (Token Ring) . . . . . . . . . . . . 300
9.7 Algoritmos de Eleccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3019.7.1 El Algoritmo del Granduln o de Garca-Molina . . . . . . . . . . . 3019.7.2 Un Algoritmo de Anillo . . . . . . . . . . . . . . . . . . . . . . . . . 302
9.8 Transacciones Atmicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3039.9 El Modelo de Transaccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
9.9.1 Almacenamiento Estable . . . . . . . . . . . . . . . . . . . . . . . . . 304
8/8/2019 Sistemas Operativos Unlock
18/924
xviii NDICE GENERAL
9.9.2 Primitivas de Transaccin . . . . . . . . . . . . . . . . . . . . . . . . 304
9.9.3 Propiedades de las Transacciones . . . . . . . . . . . . . . . . . . . . 3059.9.4 Transacciones Anidadas . . . . . . . . . . . . . . . . . . . . . . . . . 305
9.10 Implantacin del Modelo de Transaccin . . . . . . . . . . . . . . . . . . . . 3059.10.1 Espacio de Trabajo Particular . . . . . . . . . . . . . . . . . . . . . . 3069.10.2 Bitcora de Escritura Anticipada . . . . . . . . . . . . . . . . . . . . 307
9.10.3 Protocolo de Compromiso de Dos Fases (Two - Phase Commit) . . . 3089.11 Control de Concurrencia en el Modelo de Transaccin . . . . . . . . . . . . 308
9.11.1 Cerradura (locking) . . . . . . . . . . . . . . . . . . . . . . . . . . . 3099.11.2 Control Optimista de la Concurrencia . . . . . . . . . . . . . . . . . 3109.11.3 Marcas de Tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3109.11.4 Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
9.12 Bloqueos en Sistemas Distribuidos . . . . . . . . . . . . . . . . . . . . . . . 3119.13 Deteccin Distribuida de Bloqueos . . . . . . . . . . . . . . . . . . . . . . . 312
9.13.1 Deteccin Centralizada de Bloqueos . . . . . . . . . . . . . . . . . . 3129.13.2 Deteccin Distribuida de Bloqueos . . . . . . . . . . . . . . . . . . . 313
9.14 Prevencin Distribuida de Bloqueos . . . . . . . . . . . . . . . . . . . . . . 314
10 Procesos y Procesadores en Sistemas Distribuidos 31510.1 Introduccin a los Hilos (Threads) . . . . . . . . . . . . . . . . . . . . . . . 31510.2 Uso de Hilos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31610.3 Aspectos del Diseo de un Paquete de Hilos . . . . . . . . . . . . . . . . . . 317
10.4 Implantacin de un Paquete de Hilos . . . . . . . . . . . . . . . . . . . . . . 318
10.5 Hilos y RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31910.6 Modelos de Sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32010.7 El Modelo de Estacin de Trabajo . . . . . . . . . . . . . . . . . . . . . . . 32010.8 Uso de Estaciones de Trabajo Inactivas . . . . . . . . . . . . . . . . . . . . 32110.9 El Modelo de la Pila de Procesadores . . . . . . . . . . . . . . . . . . . . . . 32310.10Asignacin de Procesadores . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
10.11Modelos de Asignacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32410.12Diseo de Algoritmos de Asignacin de Procesadores . . . . . . . . . . . . . 32510.13Aspectos de la Implantacin de Algoritmos de Asignacin de Procesadores . 326
10.14Ejemplos de Algoritmos de Asignacin de Procesadores . . . . . . . . . . . 32710.14.1Un Algoritmo Determinista Segn la Teora de Grficas . . . . . . . 327
10.14.2Un Algoritmo Centralizado . . . . . . . . . . . . . . . . . . . . . . . 32910.14.3Un Algoritmo Jerrquico . . . . . . . . . . . . . . . . . . . . . . . . 33010.14.4 Un Algoritmo Distribuido Heurstico (Eager) . . . . . . . . . . . . . 33110.14.5Un Algoritmo de Remates . . . . . . . . . . . . . . . . . . . . . . . . 331
10.15Planificacin en Sistemas Distribuidos . . . . . . . . . . . . . . . . . . . . . 332
11 Sistemas Distribuidos de Archivos 33311.1 Introduccin a los Sistemas Distribuidos de Archivos . . . . . . . . . . . . . 33311.2 Diseo de los Sistemas Distribuidos de Archivos . . . . . . . . . . . . . . . . 33411.3 La Interfaz del Servicio de Archivos . . . . . . . . . . . . . . . . . . . . . . . 33411.4 La Interfaz del Servidor de Directorios . . . . . . . . . . . . . . . . . . . . . 335
11.4.1 Transparencia de los Nombres . . . . . . . . . . . . . . . . . . . . . . 336
8/8/2019 Sistemas Operativos Unlock
19/924
NDICE GENERAL xix
11.5 Semntica de los Archivos Compartidos . . . . . . . . . . . . . . . . . . . . 336
11.6 Implantacin de un Sistema Distribuido de Archivos . . . . . . . . . . . . . 33811.7 Uso de Archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33811.8 Estructura del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
11.9 Ocu ltamien to . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
11.9.1 Consistencia del Cach . . . . . . . . . . . . . . . . . . . . . . . . . . 34311.10Rplica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
11.10.1Protocolos de Actualizacin . . . . . . . . . . . . . . . . . . . . . . . 34511.11Conclusiones Importantes Respecto de la Implantacin de un Sistema Dis-
tribuido de Archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
11.12Tendencias en los Sistemas Distribuidos de Archivos . . . . . . . . . . . . . 34711.13Consideraciones Respecto del Hardware . . . . . . . . . . . . . . . . . . . . 347
11.14Escalabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34811.15Redes en un Area Amplia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34811.16Usuarios Mviles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
11.17Tolerancia de Fallos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
12 Rendimiento 35112.1 Introduccin a la Medicin, Control y Evaluacin del Rendimiento . . . . . 351
12.2 Tendencias Importantes que Afectan a los Aspectos del Rendimiento . . . . 35212.3 Necesidad del Control y de la Evaluacin del Rendimiento . . . . . . . . . . 352
12.4 Mediciones del Rendimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
12.5 Tcnicas de Evaluacin del Rendimiento . . . . . . . . . . . . . . . . . . . . 355
12.6 Embotellamientos y Saturacin . . . . . . . . . . . . . . . . . . . . . . . . . 35712.7 Ciclos de Retroalimentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
13 Modelado Analtico en Relacin al Rendimiento 35913.1 Introduccin al Modelado Analtico y Teora de Colas . . . . . . . . . . . . 359
13.2 Fuente, Llegadas y Llegadas de Poisson . . . . . . . . . . . . . . . . . . . . 36013.3 Servicio, Cola y Servidores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
13.4 Disciplinas de Colas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36213.5 Intensidad de Trfico y Utilizacin del Servidor . . . . . . . . . . . . . . . . 363
13.6 Estado Estable en Funcin de Soluciones Transitorias . . . . . . . . . . . . 364
13.7 Resultado de Little . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
13.8 Resumen del Proceso de Poisson . . . . . . . . . . . . . . . . . . . . . . . . 36513.9 Anlisis de un Sistema de Colas M/M/1 . . . . . . . . . . . . . . . . . . . . 36713.10Anlisis de un Sistema de Colas M/M/c . . . . . . . . . . . . . . . . . . . . 369
13.11Procesos de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
13.12Procesos de Nacimiento y Muerte . . . . . . . . . . . . . . . . . . . . . . . . 37113.13Anlisis del Rendimiento de un Subsistema de Disco . . . . . . . . . . . . . 372
14 Seguridad de los Sistemas Operativos 37714.1 Introduccin a la Seguridad de los Sistemas Operativos . . . . . . . . . . . . 37714.2 Requisitos de Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
14.3 Un Tratamiento Total de la Seguridad . . . . . . . . . . . . . . . . . . . . . 378
14.4 Seguridad Externa y Seguridad Operacional . . . . . . . . . . . . . . . . . . 379
8/8/2019 Sistemas Operativos Unlock
20/924
xx NDICE GENERAL
14.4.1 Seguridad Externa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
14.4.2 Seguridad Operacional . . . . . . . . . . . . . . . . . . . . . . . . . . 37914.5 Vigilancia, Verificacin de Amenazas y Amplificacin . . . . . . . . . . . . . 380
14.5.1 Vigilan cia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
14.5.2 Verificacin de Amenazas . . . . . . . . . . . . . . . . . . . . . . . . 38114.5.3 Amplificacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
14.6 Proteccin por Contrasea . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38114.7 Auditora y Controles de Acceso . . . . . . . . . . . . . . . . . . . . . . . . 382
14.7.1 Auditora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
14.7.2 Controles de Acceso . . . . . . . . . . . . . . . . . . . . . . . . . . . 38314.8 Ncleos de Seguridad y Seguridad por Hardware . . . . . . . . . . . . . . . 383
14.8.1 Ncleos de Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . 383
14.8.2 Seguridad por Hardware . . . . . . . . . . . . . . . . . . . . . . . . . 38414.9 Sistemas Supervivientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38414.10Capacidades y Sistemas Orientados Hacia el Objeto . . . . . . . . . . . . . 385
14.11C rip tograf a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38714.12Penetracin al Sistema Operativo . . . . . . . . . . . . . . . . . . . . . . . . 389
14.12.1 Principales Fallos Genricos Funcionales de los Sistemas . . . . . . . 389
14.12.2 Ataques Genricos a Sistemas Operativos . . . . . . . . . . . . . . . 392
III Casos de Estudio 395
15 Planificacin del Procesador con P.O.O. 39715.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39715.2 Objetivo del Caso de Estudio . . . . . . . . . . . . . . . . . . . . . . . . . . 397
15.3 Descripcin del Problema Planteado . . . . . . . . . . . . . . . . . . . . . . 39715.4 Descripcin de los Algoritmos Utilizados . . . . . . . . . . . . . . . . . . . . 398
15.5 Programa Desarrollado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
15.6 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42015.7 Resultados y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
16 Paginacin de Memoria Virtual con S. E. 42516.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
16.2 Objetivo del Caso de Estudio . . . . . . . . . . . . . . . . . . . . . . . . . . 42716.3 Descripcin del Problema Planteado . . . . . . . . . . . . . . . . . . . . . . 42716.4 Descripcin del Software Utilizado . . . . . . . . . . . . . . . . . . . . . . . 433
16.5 Descripcin del Ejercicio Efectuado . . . . . . . . . . . . . . . . . . . . . . . 433
16.6 Programas Desarrollados y Datos y Ejecuciones . . . . . . . . . . . . . . . . 44616.7 Resultados y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
17 Subsistema de Disco de Una Peticin 46717.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
17.2 Objetivo del Caso de Estudio . . . . . . . . . . . . . . . . . . . . . . . . . . 46717.3 Descripcin del Problema Planteado . . . . . . . . . . . . . . . . . . . . . . 468
17.4 Descripcin del Algoritmo Utilizado . . . . . . . . . . . . . . . . . . . . . . 468
8/8/2019 Sistemas Operativos Unlock
21/924
NDICE GENERAL xxi
17.5 Programa Desarrollado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
17.6 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47317.7 Resultados y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
18 Subsistema de Disco de Varias Peticiones 48118.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
18.2 Objetivo del Caso de Estudio . . . . . . . . . . . . . . . . . . . . . . . . . . 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 49519.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
19.2 Objetivo del Caso de Estudio . . . . . . . . . . . . . . . . . . . . . . . . . . 496
19.3 Descripcin del Problema Planteado . . . . . . . . . . . . . . . . . . . . . . 496
19.4 Descripcin de los Algoritmos Utilizados . . . . . . . . . . . . . . . . . . . . 497
19.5 Programa Desarrollado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
19.6 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
19.7 Descripcin del Software de RNA Utilizado . . . . . . . . . . . . . . . . . . 509
19.7.1 Breve Introduccin a las RNA . . . . . . . . . . . . . . . . . . . . . 509
19.7.2 Herramienta Nndt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51119.7.3 Herramienta Nnmodel . . . . . . . . . . . . . . . . . . . . . . . . . . 514
19.7.4 Herramienta Qnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
19.8 Resultados y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
20 Concurrencia e Hilos con Java 52920.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
20.2 Objetivo del Caso de Estudio . . . . . . . . . . . . . . . . . . . . . . . . . . 529
20.3 Descripcin del Problema Planteado . . . . . . . . . . . . . . . . . . . . . . 530
20.4 Descripcin de los Algoritmos Utilizados . . . . . . . . . . . . . . . . . . . . 530
20.5 Programa Desarrollado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53120.6 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
20.7 Resultados y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
21 Anomala de Belady con Matlab 55921.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
21.2 Objetivo del Caso de Estudio . . . . . . . . . . . . . . . . . . . . . . . . . . 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
8/8/2019 Sistemas Operativos Unlock
22/924
xxii NDICE GENERAL
IV Anexos 571
22 Planificacin del Procesador con P.O.O. 57322.1 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
23 Paginacin de Memoria Virtual con S. E. 58523.1 Programas Desarrollados y Datos y Ejecuciones . . . . . . . . . . . . . . . . 585
24 Subsistema de Disco de Una Peticin 66324.1 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
25 Subsistema de Disco de Varias Peticiones 72125.1 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
26 Bsqueda en Disco con Redes Neuronales 77926.1 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
27 Concurrencia e Hilos con Java 84727.1 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847
28 Anomala de Belady con Matlab 85928.1 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
Bibliografa 875
ndice de Materias 877
8/8/2019 Sistemas Operativos Unlock
23/924
8/8/2019 Sistemas Operativos Unlock
24/924
xxiv NDICE DE FIGURAS
3.8 Proteccin del almacenamiento con asignacin contigua en sistemas de mul-
tiprogramacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733.9 Asignacin de particiones iniciales en la multiprogramacin de particin
variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.10 Agujeros del almacenamiento en la multiprogramacin de particin variable. 753.11 Combinacin de agujeros adyacentes de almacenamiento en la multiprogra-
macin de particin variable. . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.12 Compresin (compactacin) del almacenamiento en la multiprogramacinde particin variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.13 Transformacin de tems del espacio de direcciones virtuales al espacio dedirecciones reales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.14 Contigidad artificial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.15 Almacenamiento de dos niveles. . . . . . . . . . . . . . . . . . . . . . . . . . 823.16 Formato de la direccin virtual dentro de un sistema de transformacin de
bloques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843.17 Traduccin de direcciones virtuales con transformacin de bloques. . . . . . 853.18 Formato de la direccin virtual en un sistema de paginacin pura. . . . . . 86
3.19 Almacenamiento real dividido en marcos de pginas. . . . . . . . . . . . . . 863.20 Una entrada en la tabla de mapa de pginas. . . . . . . . . . . . . . . . . . 873.21 Correspondencia entre las direcciones de almacenamiento virtual y las di-
recciones de almacenamiento real en un sistema de paginacin. . . . . . . . 883.22 Traduccin de direcciones de pgina por transformacin directa. . . . . . . 893.23 Traduccin de direcciones de pgina por transformacin asociativa pura. . . 90
3.24 Traduccin de direcciones de paginacin por combinacin de transformacinasociativa / directa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
3.25 Compartimiento en un sistema de paginacin pura. . . . . . . . . . . . . . . 933.26 Asignacin no contigua de almacenamiento. . . . . . . . . . . . . . . . . . . 953.27 Proteccin del almacenamiento con claves en sistemas de multiprogramacin
de asignacin no contigua de almacenamiento. . . . . . . . . . . . . . . . . . 953.28 Traduccin de direcciones virtuales en un sistema de segmentacin pura. . . 963.29 Entrada de tabla de mapa de segmentos. . . . . . . . . . . . . . . . . . . . . 98
3.30 Compartimiento en un sistema de segmentacin pura. . . . . . . . . . . . . 993.31 Traduccin de direcciones virtuales con combinacin de transformacin aso-
ciativa / directa dentro de un sistema de paginacin y segmentacin. . . . . 102
3.32 Estructura de tablas para un sistema de paginacin y segmentacin. . . . . 1033.33 Dos procesos compartiendo un sistema de paginacin y segmentacin. . . . 1043.34 Ejemplo de anomala FIFO. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1073.35 Fenmeno de localidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1103.36 Una definicin del conjunto de trabajo de pginas de un proceso. . . . . . . 1103.37 Tamao del conjunto de trabajo como una funcin del tamao de la ventana.111
3.38 Producto espacio - tiempo con paginacin por demanda. . . . . . . . . . . . 1123.39 Comportamiento de un programa en la paginacin. . . . . . . . . . . . . . . 115
4.1 Un solo directorio compartido por todos los usuarios. . . . . . . . . . . . . . 1244.2 Un directorio por usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
4.3 Un rbol arbitrario por usuario. . . . . . . . . . . . . . . . . . . . . . . . . . 125
8/8/2019 Sistemas Operativos Unlock
25/924
NDICE DE FIGURAS xxv
4.4 Encadenamiento de bloques o lista ligada de bloques. . . . . . . . . . . . . . 129
4.5 Encadenamiento de bloques de ndices. . . . . . . . . . . . . . . . . . . . . . 1314.6 Transformacin de archivos orientada hacia bloques. . . . . . . . . . . . . . 1324.7 Esquema de un nodo-i. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1344.8 Representacin de la velocidad de lectura y del uso del espacio en disco en
funcin del tamao de bloque. . . . . . . . . . . . . . . . . . . . . . . . . . . 137
5.1 Un controlador realiza completamente una transferencia DMA. . . . . . . . 1595.2 Factores de separacin: sin separacin, separacin simple y separacin doble.1605.3 Capas del sistema de entrada / salida y las principales funciones de cada
capa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1615.4 Esquema de un disco de cabeza mvil. . . . . . . . . . . . . . . . . . . . . . 166
5.5 Componentes del acceso a un disco. . . . . . . . . . . . . . . . . . . . . . . . 167
6.1 Un interbloqueo simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826.2 Grficas de asignacin de recursos. . . . . . . . . . . . . . . . . . . . . . . . 1866.3 Ejemplo de ocurrencia de un bloqueo y la forma de evitarlo. . . . . . . . . . 1866.4 Ejemplo de ocurrencia de un bloqueo y la forma de evitarlo (continuacin). 1876.5 Grfica de asignacin y peticin de recursos. . . . . . . . . . . . . . . . . . . 1916.6 Reducciones de grficas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1926.7 Grfica de recursos y procesos. . . . . . . . . . . . . . . . . . . . . . . . . . 1926.8 Un ejemplo del algoritmo de deteccin de bloqueos. . . . . . . . . . . . . . . 1966.9 Trayectorias de recursos de dos procesos. . . . . . . . . . . . . . . . . . . . . 200
7.1 Multiprocesadores con base en un bus. . . . . . . . . . . . . . . . . . . . . . 2187.2 Conmutador de cruceta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2207.3 Red omega de conmutacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2217.4 Conmutador de cruceta versus red omega. . . . . . . . . . . . . . . . . . . . 2227.5 Multicomputadora que consta de estaciones de trabajo en una LAN. . . . . 2237.6 Retcula. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2247.7 Hipercubo de dimensin 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2247.8 Estructura de capas de NFS. . . . . . . . . . . . . . . . . . . . . . . . . . . 2337.9 Un multiprocesador con una sola cola de ejecucin. . . . . . . . . . . . . . . 2357.10 Esquema de ncleo monoltico y de microncleo. . . . . . . . . . . . . . . . 239
8.1 Capas, interfaces y protocolos en el modelo OSI. . . . . . . . . . . . . . . . 2468.2 Un mensaje tpico tal como aparece en la red. . . . . . . . . . . . . . . . . . 2468.3 Modelo cliente - servidor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2488.4 Esquema de mensajes reconocidos en forma individual y esquema donde la
respuesta se utiliza como reconocimiento de la solicitud. . . . . . . . . . . . 2558.5 Intercambio de paquetes en la comunicacin cliente - servidor. . . . . . . . . 2588.6 Llamada a un procedimiento local. . . . . . . . . . . . . . . . . . . . . . . . 2608.7 Llamadas y mensajes en una RPC, donde cada elipse representa un solo
proceso que incluye el resguardo. . . . . . . . . . . . . . . . . . . . . . . . . 2638.8 Ejemplo de clculo remoto. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2638.9 Situaciones posibles de fallos en el servidor. . . . . . . . . . . . . . . . . . . 268
8.10 Ruta crtica del cliente al servidor. . . . . . . . . . . . . . . . . . . . . . . . 275
8/8/2019 Sistemas Operativos Unlock
26/924
xxvi NDICE DE FIGURAS
8.11 Comunicacin punto a punto y comunicacin uno a muchos. . . . . . . . . . 281
9.1 Ejemplo de tres procesos cuyos relojes corren a diferentes velocidades - Elalgoritmo de Lamport corrige los relojes. . . . . . . . . . . . . . . . . . . . . 293
10.1 Una forma de asignar 9 procesos a 3 procesadores. . . . . . . . . . . . . . . 32810.2 Otra forma de asignar 9 procesos a 3 procesadores. . . . . . . . . . . . . . . 328
11.1 Arbol de directorios contenido en una mquina. . . . . . . . . . . . . . . . . 33511.2 Grfica de directorios de dos mquinas. . . . . . . . . . . . . . . . . . . . . 336
16.1 Ejemplo de anomala FIFO. . . . . . . . . . . . . . . . . . . . . . . . . . . . 43116.2 ESB Question Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
16.3 ESB Knowledge Acquisition. . . . . . . . . . . . . . . . . . . . . . . . . . . 43416.4 ESB User Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43516.5 Nmero de ocurrencias segn las estrategias de paginacin. . . . . . . . . . 464
17.1 Promedio de peticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 478
18.1 Promedio de peticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 493
19.1 Ejemplo de pantalla Nndt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51219.2 Ejemplo de pantalla Nndt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51319.3 Ejemplo de pantalla Nnmodel. . . . . . . . . . . . . . . . . . . . . . . . . . 51619.4 Ejemplo de pantalla Nnmodel. . . . . . . . . . . . . . . . . . . . . . . . . . 517
19.5 Ejemplo de pantalla Nnmodel. . . . . . . . . . . . . . . . . . . . . . . . . . 51819.6 Ejemplo de pantalla Nnmodel. . . . . . . . . . . . . . . . . . . . . . . . . . 51919.7 Ejemplo de pantalla Nnmodel. . . . . . . . . . . . . . . . . . . . . . . . . . 52019.8 Ejemplo de pantalla Qnet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52119.9 Ejemplo de pantalla Qnet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52219.10Ejemplo de pantalla Qnet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
21.1 Bsqueda de Anomala de Belady en paginacin FIFO. . . . . . . . . . . . . 568
24.1 Promedio de peticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 66824.2 Promedio de peticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 684
24.3 Promedio de peticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 72025.1 Promedio de peticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 72625.2 Promedio de peticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 74225.3 Promedio de peticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 778
8/8/2019 Sistemas Operativos Unlock
27/924
8/8/2019 Sistemas Operativos Unlock
28/924
xxviii NDICE DE TABLAS
19.10Utilizacin de la herramienta Qnet (continuacin). . . . . . . . . . . . . . . 527
19.11Resumen comparativo de la utilizacin de RNA. . . . . . . . . . . . . . . . 527
8/8/2019 Sistemas Operativos Unlock
29/924
Parte I
Sistemas OperativosConvencionales
1
8/8/2019 Sistemas Operativos Unlock
30/924
8/8/2019 Sistemas Operativos Unlock
31/924
Captulo 1
Introduccin
1.1 Qu es un Sistema Operativo
Una de las definiciones ms comnmente aceptadas expresa:
Un S. O. es un grupo de programas de proceso con las rutinas de controlnecesarias para mantener continuamente operativos dichos programas.
El objetivo primario de un 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 clasificar a este de la siguiente manera:
Programas de sistema:
Controlan la operacin de la computadora en s.
Programas de aplicacin:
Resuelven problemas para los usuarios.
En este contexto, el Sistema Operativo es el programa fundamental de todos los pro-gramas de sistema.
El S. O. protege y libera a los programadores de la complejidad del hardware, colo-cndose un nivel de software por sobre el hardware para:
Controlar todas las partes del sistema.
Presentar al usuario una interfaz o mquina virtual.
El esquema tpico de un sistema de cmputos incluye:
Programas de aplicacin:
3
8/8/2019 Sistemas Operativos Unlock
32/924
4 CAPTULO 1. INTRODUCCIN
Sistema bancario, reservaciones en una lnea area, juegos, etc.
Programas de sistema:
Compiladores, editores, intrpretes de comandos.
Sistema Operativo.
Hardware:
Lenguaje de mquina.
Microprogramacin.
Dispositivos fsicos
Las principales caractersticas del microprograma son:
Se trata de software que generalmente se localiza en la memoria de solo lectura.
Busca las instrucciones de lenguaje de mquina para ejecutarlas como una serie depequeos pasos.
El conjunto de instrucciones que interpreta define al lenguaje de mquina.
En ciertas mquinas se implanta en el hardware y no es en realidad una capa distinta.
Respecto del lenguaje de mquina es preciso sealar que: Generalmente posee entre 50 y 300 instrucciones, sirviendo la mayora para desplazar
datos, hacer operaciones aritmticas y comparar valores.
Los dispositivos de e / s (entrada / salida) se controlan al cargar valores en registrosdel dispositivo especiales.
Una de las principales funciones del S. O. es ocultar toda esta complejidad ybrindar al programador un conjunto mas conveniente de instrucciones para trabajar.
El S. O. se ejecuta en modo central o modo de supervisin, con mxima prioridad ygeneralmente con proteccin por hardware.
Los compiladores, editores y dems programas se ejecutan en modo usuario.El S. O. es la serie de programas, dispuestos ya sea en el software o en la memoria fija
(microcdigo), que hacen al hardware utilizable.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 recursoprimario el hardware del sistema.1
Las principales caractersticas de los S. O. son:
Definir la Interfaz del Usuario.
1 Ver Figura 1.1 de la pgina 6.
8/8/2019 Sistemas Operativos Unlock
33/924
1.2. HISTORIA DE LOS SISTEMAS OPERATIVOS - GENERACIONES 5
Compartir el hardware entre usuarios.
Permitir a los usuarios compartir los datos entre ellos.
Planificar recursos entre usuarios.
Facilitar la entrada / salida.
Recuperarse de los errores.
Los principales recursos administrados por los S. O. son:
Procesadores.
Almacenamiento.
Dispositivos de e / s.
Datos.
Los S. O. son una interfaz con:
Operadores.
Programadores de aplicaciones.
Programadores de sistemas (administradores del S. O.).
Programas.
Hardware.
Usuarios.
El S. O. debe presentar al usuario el equivalente de una mquina extendida o mqui-na virtual que sea mas fcil de programar que el hardware subyacente.
1.2 Historia de los Sistemas Operativos - Generaciones
Los S. O. han estado relacionados histricamente con la arquitectura de las computadorasen las cuales se ejecutan, razn por la cual su historia puede analizarse segn las siguientesgeneraciones y sus principales caractersticas [7, Deitel]:
Generacin Cero (dcada de 1940):
Carencia total de S. O.
Completo acceso al lenguaje de mquina.
Primera generacin (1945-1955): bulbos y conexiones:
Carencia de S. O.
8/8/2019 Sistemas Operativos Unlock
34/924
8/8/2019 Sistemas Operativos Unlock
35/924
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 de procesamiento por lotes(batch):
En los aos sesenta aparecen los S. O. para sistemas compartidos con:
Multiprogramacin: varios programas de usuarios se encuentran al mis-mo tiempo en el almacenamiento principal, cambiando el procesador rpi-damente de un trabajo a otro.
Multiprocesamiento: varios procesadores se utilizan en un mismo siste-ma para incrementar el poder de procesamiento.
Posteriormente aparece la independencia de dispositivo:
El programa del usuario especifica las caractersticas de los dispositivos querequieren los archivos.
El S. O. asigna los dispositivos correspondientes segn los requerimientosy las disponibilidades.
Tercera generacin (1965-1980): circuitos integrados y multiprogramacin:
Difusin de la multiprogramacin:
Particin de la memoria en porciones, con trabajos distintos en cada una
de ellas.
Aprovechamiento del tiempo de espera consecuencia de operaciones de e /s, para utilizar la CPU para otros procesos.
Proteccin por hardware del contenido de cada particin de memoria.
Aparicin de tcnicas de spooling:
Simultaneous Peripheral Operation On Line: operacin simultnea y enlnea de perifricos.
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 entre el usuario y el hardware.
Aparecen los lenguajes de control de trabajos, necesarios para especificarel trabajo y los recursos requeridos.
Soportan timesharing (tiempo compartido), variante de la multiprogra-macin con usuarios conectados mediante terminales en lnea, permitiendo laoperacin en modo interactivo o conversacional.
Aparecen los sistemas de tiempo real, que requieren tiempos de respuestamuy exigentes, especialmente para usos industriales o militares.
8/8/2019 Sistemas Operativos Unlock
36/924
8 CAPTULO 1. INTRODUCCIN
Se difunden las computadoras de rango medio.
Cuarta generacin (1980-1990): computadoras personales:
Aparicin de software amigable con el usuario, destinado a usuarios noprofesionales y con una interfase grfica muy desarrollada.
Desarrollo de sistemas operativos de red y sistemas operativos distri-buidos.
Sistemas operativos de red:
Los usuarios estn conscientes de la existencia de varias computadoras co-nectadas.
Cada mquina ejecuta su propio S. O. local. Son similares a los S. O. de un solo procesador pero con el agregado de:
Controlador de interfaz de la red y su software de bajo nivel.
Software para conexin y acceso a archivos remotos, etc.
Sistemas operativos distribuidos:
Aparece ante los usuarios como un S. O. de un solo procesador, an cuandode soporte a varios procesadores.
Los usuarios no son conscientes del lugar donde se ejecutan sus programaso donde se encuentran sus archivos, ya que lo debe administrar el S. O.automticamente.
Deben permitir que un programa se ejecute mediante varios procesadoresa la vez, maximizando el paralelismo.
Aparicin de emuladores de terminal para el acceso a equipos remotos desdecomputadoras personales (PC).
Gran nfasis en la seguridad, en especial por el desarrollo de los sistemas decomunicaciones de datos.
El S. O. crea un ambiente de trabajo segn el concepto de mquina virtual,que lo asla del funcionamiento interno de la mquina.
Proliferacin de sistemas de bases de datos, accesibles mediante redes de
comunicacin.
1.3 Conceptos de los Sistemas Operativos
La interfaz entre el S. O. y los programas del usuario se define como el conjunto de ins-trucciones ampliadas [23, Tanenbaum] que proporciona el S. O. y son las llamadasal sistema:
Crean, eliminan y utilizan objetos del software controlados por el S. O.:
Los mas importantes son procesos y archivos.
Procesos:
8/8/2019 Sistemas Operativos Unlock
37/924
1.3. CONCEPTOS DE LOS SISTEMAS OPERATIVOS 9
Es el concepto central de todos los S. O.
Es bsicamente un programa en ejecucin.
Consta del programa ejecutable, sus datos y pila, contador y otros registros,adems de la informacin necesaria para ejecutar el programa.
La informacin de control relacionada con los procesos se almacena en la tablade procesos:
Es administrada por el S. O.
Posee un arreglo de estructuras, una por cada proceso existente en esemomento.
Un proceso (suspendido) consta de:
Un espacio de direccin.
Los datos pertinentes de la tabla de procesos.
Un proceso puede crear procesos hijo y estos nuevos procesos hijo, confor-mando un rbol de procesos.
Archivos:
Una de las funciones principales del S. O. es brindar independencia de dis-positivo.
Muchos S. O. soportan el concepto de directorio como una forma de agrupararchivos.
Los directorios se estructuran jerrquicamente, por lo que a cada archivo lecorresponde una ruta de acceso.
Existen distintos esquemas de seguridad de archivos en los distintos S. O.
Llamadas al sistema:
Permiten a los programas comunicarse con el S. O. y solicitarle servicios.
A cada llamada le corresponde un procedimiento:
Pone los parmetros de la llamada en un lugar especfico para luego ejecutaruna instruccin tipo trap de llamada a procedimiento protegido parainiciar el S. O.
Luego de trap el S. O. recupera el control , examina los parmetros y sison vlidos ejecuta el trabajo solicitado.
Luego de terminar, el S. O. coloca un cdigo de estado en un registroindicando si tuvo xito o fracaso y ejecuta una instruccin del tipo returnfrom trap para regresar el control al procedimiento.
El procedimiento regresa al programa llamador con un cdigo de estadocomo un valor de funcin; dentro de los parmetros pueden regresar valores
adicionales.
8/8/2019 Sistemas Operativos Unlock
38/924
10 CAPTULO 1. INTRODUCCIN
1.4 Estructura de los Sistemas Operativos
Se considera la organizacin interna de los S. O. y conforme a ella se los clasifica de lasiguiente manera, destacndose sus principales caractersticas:
Sistemas monolticos:
Es muy comn: no existe estructura propiamente dicha o es mnima.
El S. O. es una coleccin de procedimientos que se pueden llamar entre s.2
Cada procedimiento tiene una interfaz bien definida en trminos de parmetrosy resultados.
Para ejecutar los servicios del S. O. (llamadas al sistema):3
Se solicitan colocando los parmetros en lugares bien definidos (registros opilas).
Se ejecuta una instruccin especial de trampa: llamada al ncleo o lla-mada al supervisor.
La instruccin cambia la mquina del modo usuario al modo ncleo (omodo supervisor). [23, Tanenbaum]
Se transfiere el control al S. O.
El S. O. examina los parmetros de la llamada para determinar cul deellas se desea realizar.
El S. O. analiza una tabla que contiene en la entrada k un apuntador alprocedimiento que realiza la k-sima llamada al sistema:
Identifica al procedimiento de servicio llamado.
La llamada al sistema termina y el control regresa al programa del usuario.
Sistemas con capas:
Es una generalizacin del modelo de estructura simple para un sistema mono-ltico.
Consiste en organizar el s. o. como una jerarqua de capas, cada una construidasobre la inmediata inferior.
El primer sistema con este esquema fue el THE (Holanda - Dijkstra -1968):4
THE: Technische Hogeschool Eindhoven.
Capa 0:
Trabaja con la asignacin del procesador.
Alterna entre los procesos cuando ocurren las interrupciones o expiranlos cronmetros.
2 Ver Figura 1.2 de la pgina 11 [23, Tanenbaum].3 Ver Figura 1.3 de la pgina 11 [23, Tanenbaum].4 Ver Tabla 1.1 de la pgina 12 [23, Tanenbaum].
8/8/2019 Sistemas Operativos Unlock
39/924
8/8/2019 Sistemas Operativos Unlock
40/924
12 CAPTULO 1. INTRODUCCIN
5 - Operador
4 - Programas del Usuario3 - Control de Entrada / Salida
2 - Comunicaciones Operador - Proceso
1 - Administracin de la 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 que las pginas (porciones de memoria) requeridas de los pro-cesos lleguen a memoria cuando fueran necesarias.
Capa 2:
Administra la comunicacin entre cada proceso y la consola del opera-dor.
Por sobre esta capa, cada proceso tiene su propia consola de operador.
Capa 3:
Controla los dispositivos de e / s y almacena en buffers los flujos de
informacin entre ellos. Por sobre la capa 3 cada proceso puede trabajar con dispositivos abs-
tractos de e / s en vez de con dispositivos reales.
Capa 4:
Aloja los programas del usuario.
Los programas. del usuario no tienen que preocuparse por el proceso,memoria, consola o control de e / s.
Capa 5:
Localiza el proceso operador del sistema.
Una generalizacin mas avanzada del concepto de capas se presento con Mul-tics (MIT, Bell Labs y General Electric):
Multics: multiplexed information and computing service.
Presenta una estructura en anillos concntricos, siendo los interiores losprivilegiados.
Un procedimiento de un anillo exterior, para llamar a un procedimiento deun anillo interior, debe hacer el equivalente a una llamada al sistema.
Mquinas virtuales:
Se separan totalmente las funciones de multiprogramacin y de mquina exten-dida.
8/8/2019 Sistemas Operativos Unlock
41/924
1.4. ESTRUCTURA DE LOS SISTEMAS OPERATIVOS 13
Existe un elemento central llamado monitor de la mquina virtual que:
Se ejecuta en el hardware.
Realiza la multiprogramacin.
Proporciona varias mquinas virtuales a la capa superior.
Las mquinas virtuales instrumentan copias exactas del hardware simple, consu modo ncleo / usuario, e / s, interrupciones y todo lo dems que posee unamquina real.
Pueden ejecutar cualquier S. O. que se ejecute en forma directa sobre el hard-ware.
Las distintas mquinas virtuales pueden ejecutar distintos S. O. y en general
as lo hacen. Soportan perifricos virtuales.
Ejemplo de S. O. representativo de esta estructura: VM/370 de IBM:5
Las m. v. generalmente utilizaran, entre otros, 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 pasadirectamente al VM/370.
CMS proporciona las instrucciones de e / s en hardware para lalectura del disco virtual o lo necesario para efectuar la llamada.
VM/370 atrapa estas instrucciones de e / s y las ejecuta sobre elhardware verdadero.
Modelo cliente - servidor:
Una tendencia en los S. O. modernos es la de explotar la idea de mover elcdigo a capas superiores y mantener un ncleo mnimo, de manera similaral VM/370.
Implantar la mayora de las funciones del S. O. en los procesos del usuario.
Para solicitar un servicio (por ej.: lectura de un bloque de cierto archivo) segn
el modelo cliente - servidor:6
El proceso del usuario (proceso cliente) enva la solicitud a un procesoservidor:
Realiza el trabajo y regresa la respuesta.
El ncleo controla la comunicacin entre los clientes y los servidores.
Se fracciona el S. O. en partes, cada una controlando una faceta:
Servicio a archivos, a procesos, a terminales, a memoria, etc., cada partepequea y ms fcilmente controlable.
5 Ver Figura 1.4 de la pgina 14 [23, Tanenbaum].6 Ver Figura 1.5 de la pgina 15 [23, Tanenbaum].
8/8/2019 Sistemas Operativos Unlock
42/924
14 CAPTULO 1. INTRODUCCIN
CMS CMS CMS
VM / 370
370 HARDWARE SIMPLE
MAQUINAS 370 VIRTUALES
LLAMADA ALSISTEMA AQUI
TRAMPA AQUI
INSTRUC.DE E / SAQUI
TRAMPASAQUI
Figura 1.4: La estructura de VM/370 con CMS.
Los servidores se ejecutan como procesos en modo usuario:
No tienen acceso directo al hardware.
Se aslan y acotan ms fcilmente los problemas.
Se adapta para su uso en los sistemas distribuidos:7
Si un cliente se comunica con un servidor mediante mensajes:
No necesita saber si el mensaje se atiende localmente o mediante unservidor remoto, situado en otra mquina conectada.
Enva una solicitud y obtiene una respuesta.
Algunas funciones del S. O., por ej. el cargado de comandos en los registrosfsicos del dispositivo de e / s, presentan problemas especiales y distintas solu-ciones:
Ejecucin en modo ncleo, con acceso total al hardware y comunicacincon los dems procesos mediante el mecanismo normal de mensajes.
Construccin de un mnimo de mecanismos dentro del ncleo mantenien-do las decisiones de poltica relativas a los usuarios dentro del espacio delusuario.
1.5 Tendencias
Las principales tendencias en S. O. son las siguientes [7, Deitel]:
Soporte generalizado para multiprocesamiento.
Migracin hacia el microcdigo de funciones de los S. O. realizadas por software.
Distribucin del control entre procesadores localizados.
Mejora de la eficiencia en el soporte de la ejecucin concurrente de programas.
7 Ver Figura 1.6 de la pgina 15 [23, Tanenbaum].
8/8/2019 Sistemas Operativos Unlock
43/924
1.5. TENDENCIAS 15
PROCESOCLIENTE
PROCESOCLIENTE
SERVIDORDEL PROC.
SERVIDORDE LA TERM
. . .SERVIDOR
DE ARCHIV.SERVIDOR
DE MEMOR.
NUCLEO
M O D OUSUARIO
M O D ONUCLEO
LOS CLIENTES OBTIENEN EL SERVICIO ALENVIAR MENSAJES A LOS PROC. SERVIDORES
Figura 1.5: El modelo cliente - servidor.
CLIENTE
NUCLEO
SERV. DEARCHIVOS
NUCLEO
SER. DEPROCESOS
NUCLEO
SERV. DETERMINALES
NUCLEO... ...
MAQUINA 1 MAQUINA 2 MAQUINA 3 MAQUINA 4
RE D
MENSAJE DEL CLIENTE AL SERVIDOR
Figura 1.6: El modelo cliente - servidor en un sistema distribuido.
8/8/2019 Sistemas Operativos Unlock
44/924
16 CAPTULO 1. INTRODUCCIN
Soporte del paralelismo masivo con altsimo grado de concurrencia.
Profundizacin de los esquemas de mquinas virtuales.
Continuacin del esquema de familias de S. O. para familias de computadoras, viendolas aplicaciones mquinas virtuales.
Compatibilidad con nuevas generaciones de computadoras.
Desarrollos en la ingeniera de software para brindar S. O. ms preservables, confia-bles y comprensibles.
Proliferacin de redes de sistemas, distribuyendo tareas en equipos sobre los que elusuario puede no tener conocimiento ni control con nfasis en la importancia de laperspectiva de las mquinas virtuales.
Permanencia del concepto de almacenamiento virtual.
Permanencia de la perspectiva del S. O. como administrador de recursos, teniendopresente que los datos sern considerados cada vez ms como un recurso para seradministrado.
Profundizacin del desarrollo de S. O. con funciones distribuidas entre varios proce-sadores a travs de grandes redes de sistemas [26, Tanenbaum].
1.6 HardwareLos 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 de memoria).
Generalmente, mientras cualquiera de las localidades de un banco de alma-cenamiento primario, est siendo accedida, ninguna otra referencia puedeestar en curso.
La compaginacin del almacenamiento coloca localidades de memoria adyacen-tes en diferentes bancos de almacenamiento, para permitir varias referencias almismo tiempo.
Registro de relocalizacin:
Permite relocalizar de forma dinmica los programas.
La direccin base de un programa en la memoria principal se sita en el registrode relocalizacin.
El contenido del registro de relocalizacin se aade a cada direccin desarrolladapor un programa en ejecucin.
8/8/2019 Sistemas Operativos Unlock
45/924
1.6. HARDWARE 17
Permite al programa residir en localizaciones diferentes a aquellas para las cua-
les fue traducido.
Interrupciones y escrutinio:
Interrupciones: permiten a una unidad obtener la inmediata atencin de otra,de manera que la primera pueda informar de un cambio de estado:
Permite salvar el estado de la unidad interrumpida antes de procesar lainterrupcin.
Escrutinio : tcnica que permite que una unidad verifique el estado de otraunidad de funcionamiento independiente.
Utilizacin del buffer:
Un buffer es un rea de almacenamiento primario destinada a contener datosdurante transferencias de e / s.
Cuando concluye la transferencia los datos pueden ser accedidos por el proce-sador.
Esquema de entradas de buffer simple:
El canal deposita datos en el buffer.
El procesador procesa estos datos.
El canal deposita nuevos datos, etc.
No puede haber simultaneidad entre operaciones de colocar datos en elbuffer y pro