Sistemas Operativos Unlock

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