sistemas operativos - … · problemática de los sistemas distribuidos, será necesario avanzar en...

926
SISTEMAS OPERATIVOS MAGISTER DAVID LUIS LA RED MARTINEZ

Upload: lamkhuong

Post on 20-Sep-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • SISTEMAS OPERATIVOS

    MAGISTER DAVID LUIS LA RED MARTINEZ

  • 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

  • A mi familia.

    A mis profesores.

    A mis alumnos.

  • 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 laexperiencia 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.

  • 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, Orientacina 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.

  • ndice General

    I Sistemas Operativos Convencionales 1

    1 Introduccin 31.1 Qu es un Sistema Operativo . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Historia de los Sistemas Operativos - Generaciones . . . . . . . . . . . . . . 51.3 Conceptos de los Sistemas Operativos . . . . . . . . . . . . . . . . . . . . . 81.4 Estructura de los Sistemas Operativos . . . . . . . . . . . . . . . . . . . . . 101.5 Tendencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.6 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.7 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.8 Memoria Fija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    2 Procesos y Administracin del Procesador 272.1 Introduccin y Definiciones Sobre Procesos . . . . . . . . . . . . . . . . . . 272.2 Estados de Procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.3 Procesamiento de Interrupciones . . . . . . . . . . . . . . . . . . . . . . . . 312.4 El Ncleo del Sistema Operativo . . . . . . . . . . . . . . . . . . . . . . . . 332.5 Planificacin de Procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.6 Niveles de Planificacin del Procesador . . . . . . . . . . . . . . . . . . . . . 352.7 Objetivos de la Planificacin . . . . . . . . . . . . . . . . . . . . . . . . . . 372.8 Criterios de Planificacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382.9 Planificacin Apropiativa Versus No Apropiativa . . . . . . . . . . . . . . . 392.10 Temporizador de Intervalos o Reloj de Interrupcin . . . . . . . . . . . . . . 402.11 Prioridades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412.12 Tipos de Planificacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    2.12.1 Planificacin a Plazo Fijo . . . . . . . . . . . . . . . . . . . . . . . . 422.12.2 Planificacin Garantizada . . . . . . . . . . . . . . . . . . . . . . . . 422.12.3 Planificacin del Primero en Entrar Primero en Salir (FIFO) . . . . 422.12.4 Planificacin de Asignacin en Rueda (RR: Round Robin) . . . . . . 432.12.5 Tamao del Cuanto o Quantum . . . . . . . . . . . . . . . . . . . . . 432.12.6 Planificacin del Trabajo Ms Corto Primero (SJF) . . . . . . . . . 432.12.7 Planificacin del Tiempo Restante Ms Corto (SRT) . . . . . . . . . 442.12.8 Planificacin el Siguiente con Relacin de Respuesta Mxima (HRN) 442.12.9 Planificacin por Prioridad . . . . . . . . . . . . . . . . . . . . . . . 452.12.10Colas de Retroalimentacin de Niveles Mltiples . . . . . . . . . . . 452.12.11Poltica Versus Mecanismo de Planificacin . . . . . . . . . . . . . . 46

    xi

  • xii NDICE GENERAL

    2.12.12Planificacin de Dos Niveles . . . . . . . . . . . . . . . . . . . . . . . 462.13 Multiprocesamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    2.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) . . . . . . 542.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) . . . . . . . . . . . . . . . . . . . . . . 612.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 . . . . . . . . . 783.9 Conceptos Bsicos de Almacenamiento Virtual . . . . . . . . . . . . . . . . 79

  • NDICE GENERAL xiii

    3.10 Organizacin del Almacenamiento de Niveles Mltiples . . . . . . . . . . . . 803.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 Segmentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . 1063.15.4 Reposicin de Pgina por el Sistema de Primero en Entrar - Primero

    en Salir (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 Localidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1123.19.2 Tamao de Pgina . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

    3.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204.4.4 Acceso a un Archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

  • xiv NDICE GENERAL

    4.4.5 Atributos de Archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . 1214.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 . . . . . . . . . . . . . . . . . . 1364.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1655.4.2 Hardware Para Discos . . . . . . . . . . . . . . . . . . . . . . . . . . 165

  • NDICE GENERAL xv

    5.5 Operacin de Almacenamiento de Disco de Cabeza Mvil . . . . . . . . . . 1655.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1836.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1976.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2056.10.1 Prevencin de la Condicin de Exclusin Mutua . . . . . . . . . . . 205

  • xvi NDICE GENERAL

    6.10.2 Prevencin de la Condicin detenerse y esperar o espera por . . 2066.10.3 Prevencin de la Condicin de no apropiacin . . . . . . . . . . . 2066.10.4 Prevencin de la Condicin de espera circular . . . . . . . . . . . . 206

    6.11 Otros Aspectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2076.11.1 Cerradura de Dos Fases . . . . . . . . . . . . . . . . . . . . . . . . . 2086.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 . . . . . . . . . . . . . . . . . . 2157.4 Desventajas de los Sistemas Distribuidos . . . . . . . . . . . . . . . . . . . . 2157.5 Conceptos de Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167.6 Multiprocesadores con Base en Buses . . . . . . . . . . . . . . . . . . . . . . 2187.7 Multiprocesadores con Conmutador . . . . . . . . . . . . . . . . . . . . . . . 2197.8 Multicomputadoras con Base en Buses . . . . . . . . . . . . . . . . . . . . . 2227.9 Multicomputadoras con Conmutador . . . . . . . . . . . . . . . . . . . . . . 2237.10 Conceptos de Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2257.11 Sistemas Operativos de Redes . . . . . . . . . . . . . . . . . . . . . . . . . . 225

    7.11.1 NFS: Network File System . . . . . . . . . . . . . . . . . . . . . . . 2277.12 Sistemas Realmente Distribuidos . . . . . . . . . . . . . . . . . . . . . . . . 2327.13 Sistemas de Multiprocesador con Tiempo Compartido . . . . . . . . . . . . 2347.14 Aspectos del Diseo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2357.15 Transparencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2367.16 Flexibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377.17 Confiabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2387.18 Desempeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2397.19 Escalabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

    8 Comunicacin en los Sistemas Distribuidos 2438.1 Introduccin a la Comunicacin en los Sistemas Distribuidos . . . . . . . . 2438.2 Protocolos con Capas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2438.3 Introduccin al Modelo Cliente - Servidor (C - S) . . . . . . . . . . . . . . . 2458.4 Direccionamiento en C - S . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478.5 Primitivas de Bloqueo Vs. No Bloqueo en C - S . . . . . . . . . . . . . . . . 2508.6 Primitivas Almacenadas Vs. No Almacenadas . . . . . . . . . . . . . . . . . 2518.7 Primitivas Confiables Vs. No Confiables en C - S . . . . . . . . . . . . . . . 2548.8 Implantacin del Modelo C - S . . . . . . . . . . . . . . . . . . . . . . . . . 2558.9 Llamada a un Procedimiento Remoto (RPC) . . . . . . . . . . . . . . . . . 2578.10 Operacin Bsica de RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2598.11 Transferencia de Parmetros en RPC . . . . . . . . . . . . . . . . . . . . . . 262

  • NDICE GENERAL xvii

    8.12 Conexin Dinmica (Dynamic Binding) en RPC . . . . . . . . . . . . . . . 2658.13 Semntica de RPC en Presencia de Fallos . . . . . . . . . . . . . . . . . . . 266

    8.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2748.14.5 Manejo del Cronmetro . . . . . . . . . . . . . . . . . . . . . . . . . 277

    8.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 Atomicidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2868.17.7 Ordenamiento de Mensajes . . . . . . . . . . . . . . . . . . . . . . . 2878.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 Relojes Lgicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2909.4 Relojes Fsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2939.5 Algoritmos Para la Sincronizacin de Relojes . . . . . . . . . . . . . . . . . 295

    9.5.1 Algoritmo de Cristian . . . . . . . . . . . . . . . . . . . . . . . . . . 2959.5.2 Algoritmo de Berkeley . . . . . . . . . . . . . . . . . . . . . . . . . . 2979.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

  • xviii NDICE GENERAL

    9.9.2 Primitivas de Transaccin . . . . . . . . . . . . . . . . . . . . . . . . 3049.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 . . . . . . . . . . . . . . . . . . . . 3079.10.3 Protocolo de Compromiso de Dos Fases (Two - Phase Commit) . . . 308

    9.11 Control de Concurrencia en el Modelo de Transaccin . . . . . . . . . . . . 3089.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 . . . . . . . . . . . . . . . . . . 31710.4 Implantacin de un Paquete de Hilos . . . . . . . . . . . . . . . . . . . . . . 31810.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . 32410.11Modelos de Asignacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32410.12Diseo de Algoritmos de Asignacin de Procesadores . . . . . . . . . . . . . 32510.13Aspectos de la Implantacin de Algoritmos de Asignacin de Procesadores . 32610.14Ejemplos de Algoritmos de Asignacin de Procesadores . . . . . . . . . . . 327

    10.14.1Un Algoritmo Determinista Segn la Teora de Grficas . . . . . . . 32710.14.2Un Algoritmo Centralizado . . . . . . . . . . . . . . . . . . . . . . . 32910.14.3Un Algoritmo Jerrquico . . . . . . . . . . . . . . . . . . . . . . . . 33010.14.4Un 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

  • NDICE GENERAL xix

    11.5 Semntica de los Archivos Compartidos . . . . . . . . . . . . . . . . . . . . 33611.6 Implantacin de un Sistema Distribuido de Archivos . . . . . . . . . . . . . 33811.7 Uso de Archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33811.8 Estructura del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33911.9 Ocultamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34611.12Tendencias en los Sistemas Distribuidos de Archivos . . . . . . . . . . . . . 34711.13Consideraciones Respecto del Hardware . . . . . . . . . . . . . . . . . . . . 34711.14Escalabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34811.15Redes en un Area Amplia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34811.16Usuarios Mviles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34811.17Tolerancia de Fallos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

    12 Rendimiento 35112.1 Introduccin a la Medicin, Control y Evaluacin del Rendimiento . . . . . 35112.2 Tendencias Importantes que Afectan a los Aspectos del Rendimiento . . . . 35212.3 Necesidad del Control y de la Evaluacin del Rendimiento . . . . . . . . . . 35212.4 Mediciones del Rendimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . 35312.5 Tcnicas de Evaluacin del Rendimiento . . . . . . . . . . . . . . . . . . . . 35512.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 . . . . . . . . . . . . 35913.2 Fuente, Llegadas y Llegadas de Poisson . . . . . . . . . . . . . . . . . . . . 36013.3 Servicio, Cola y Servidores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36113.4 Disciplinas de Colas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36213.5 Intensidad de Trfico y Utilizacin del Servidor . . . . . . . . . . . . . . . . 36313.6 Estado Estable en Funcin de Soluciones Transitorias . . . . . . . . . . . . 36413.7 Resultado de Little . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36413.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 . . . . . . . . . . . . . . . . . . . . 36913.11Procesos de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37113.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37814.3 Un Tratamiento Total de la Seguridad . . . . . . . . . . . . . . . . . . . . . 37814.4 Seguridad Externa y Seguridad Operacional . . . . . . . . . . . . . . . . . . 379

  • xx NDICE GENERAL

    14.4.1 Seguridad Externa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37914.4.2 Seguridad Operacional . . . . . . . . . . . . . . . . . . . . . . . . . . 379

    14.5 Vigilancia, Verificacin de Amenazas y Amplificacin . . . . . . . . . . . . . 38014.5.1 Vigilancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38014.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38214.7.2 Controles de Acceso . . . . . . . . . . . . . . . . . . . . . . . . . . . 383

    14.8 Ncleos de Seguridad y Seguridad por Hardware . . . . . . . . . . . . . . . 38314.8.1 Ncleos de Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . 38314.8.2 Seguridad por Hardware . . . . . . . . . . . . . . . . . . . . . . . . . 384

    14.9 Sistemas Supervivientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38414.10Capacidades y Sistemas Orientados Hacia el Objeto . . . . . . . . . . . . . 38514.11Criptografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38714.12Penetracin al Sistema Operativo . . . . . . . . . . . . . . . . . . . . . . . . 389

    14.12.1Principales Fallos Genricos Funcionales de los Sistemas . . . . . . . 38914.12.2Ataques 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 . . . . . . . . . . . . . . . . . . . . . . . . . . 39715.3 Descripcin del Problema Planteado . . . . . . . . . . . . . . . . . . . . . . 39715.4 Descripcin de los Algoritmos Utilizados . . . . . . . . . . . . . . . . . . . . 39815.5 Programa Desarrollado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39815.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 . . . . . . . . . . . . . . . . . . . . . . . 43316.5 Descripcin del Ejercicio Efectuado . . . . . . . . . . . . . . . . . . . . . . . 43316.6 Programas Desarrollados y Datos y Ejecuciones . . . . . . . . . . . . . . . . 44616.7 Resultados y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464

    17 Subsistema de Disco de Una Peticin 46717.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46717.2 Objetivo del Caso de Estudio . . . . . . . . . . . . . . . . . . . . . . . . . . 46717.3 Descripcin del Problema Planteado . . . . . . . . . . . . . . . . . . . . . . 46817.4 Descripcin del Algoritmo Utilizado . . . . . . . . . . . . . . . . . . . . . . 468

  • NDICE GENERAL xxi

    17.5 Programa Desarrollado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46917.6 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47317.7 Resultados y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479

    18 Subsistema de Disco de Varias Peticiones 48118.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48118.2 Objetivo del Caso de Estudio . . . . . . . . . . . . . . . . . . . . . . . . . . 48118.3 Descripcin del Problema Planteado . . . . . . . . . . . . . . . . . . . . . . 48218.4 Descripcin del Algoritmo Utilizado . . . . . . . . . . . . . . . . . . . . . . 48218.5 Programa Desarrollado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48418.6 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48818.7 Resultados y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493

    19 Bsqueda en Disco con Redes Neuronales 49519.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49519.2 Objetivo del Caso de Estudio . . . . . . . . . . . . . . . . . . . . . . . . . . 49619.3 Descripcin del Problema Planteado . . . . . . . . . . . . . . . . . . . . . . 49619.4 Descripcin de los Algoritmos Utilizados . . . . . . . . . . . . . . . . . . . . 49719.5 Programa Desarrollado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49719.6 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50419.7 Descripcin del Software de RNA Utilizado . . . . . . . . . . . . . . . . . . 509

    19.7.1 Breve Introduccin a las RNA . . . . . . . . . . . . . . . . . . . . . 50919.7.2 Herramienta Nndt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51119.7.3 Herramienta Nnmodel . . . . . . . . . . . . . . . . . . . . . . . . . . 51419.7.4 Herramienta Qnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516

    19.8 Resultados y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516

    20 Concurrencia e Hilos con Java 52920.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52920.2 Objetivo del Caso de Estudio . . . . . . . . . . . . . . . . . . . . . . . . . . 52920.3 Descripcin del Problema Planteado . . . . . . . . . . . . . . . . . . . . . . 53020.4 Descripcin de los Algoritmos Utilizados . . . . . . . . . . . . . . . . . . . . 53020.5 Programa Desarrollado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53120.6 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55720.7 Resultados y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558

    21 Anomala de Belady con Matlab 55921.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55921.2 Objetivo del Caso de Estudio . . . . . . . . . . . . . . . . . . . . . . . . . . 55921.3 Descripcin del Problema Planteado . . . . . . . . . . . . . . . . . . . . . . 55921.4 Descripcin del Algoritmo Utilizado . . . . . . . . . . . . . . . . . . . . . . 56021.5 Programa Desarrollado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56021.6 Datos y Ejecuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56621.7 Resultados y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569

  • 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

  • ndice de Figuras

    1.1 Recursos administrados por el S. O. . . . . . . . . . . . . . . . . . . . . . . 61.2 Modelo de estructura simple para un sistema monoltico. . . . . . . . . . . . 111.3 Forma de llamada al sistema en un sistema monoltico. . . . . . . . . . . . . 111.4 La estructura de VM/370 con CMS. . . . . . . . . . . . . . . . . . . . . . . 141.5 El modelo cliente - servidor. . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.6 El modelo cliente - servidor en un sistema distribuido. . . . . . . . . . . . . 15

    2.1 Multiprogramacin de cuatro programas. . . . . . . . . . . . . . . . . . . . 292.2 Solo un programa est activo en un momento dado. . . . . . . . . . . . . . 292.3 Un proceso puede estar en ejecucin, bloqueado o listo. . . . . . . . . . . . 292.4 Niveles de planificacin del procesador. . . . . . . . . . . . . . . . . . . . . . 362.5 Tipos de planificacin del procesador. . . . . . . . . . . . . . . . . . . . . . 472.6 Idea simplificada de la organizacin de un multiprocesador. . . . . . . . . . 522.7 Reduccin de la altura del rbol por asociatividad. . . . . . . . . . . . . . . 522.8 Reduccin de la altura del rbol por conmutatividad. . . . . . . . . . . . . . 532.9 Reduccin de la altura del rbol por distributividad. . . . . . . . . . . . . . 532.10 Organizacin de multiprocesador de tiempo compartido de bus comn. . . . 552.11 Organizacin del multiprocesador por matriz de barras cruzadas e interrup-

    tores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562.12 Organizacin de multiprocesador por sistema de memoria de interconexin

    mltiple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562.13 Organizacin de multiprocesador por sistema de memoria de interconexin

    mltiple con memorias privadas. . . . . . . . . . . . . . . . . . . . . . . . . 572.14 Multiprocesamiento ligeramente acoplado. . . . . . . . . . . . . . . . . . . . 582.15 Multiprocesamiento rgidamente acoplado. . . . . . . . . . . . . . . . . . . . 592.16 Ejemplo de implementacin de multiprocesamiento simtrico. . . . . . . . . 62

    3.1 Organizacin jerrquica del almacenamiento. . . . . . . . . . . . . . . . . . 673.2 Asignacin contigua de almacenamiento de un solo usuario. . . . . . . . . . 693.3 Estructura de recubrimiento tpica. . . . . . . . . . . . . . . . . . . . . . . . 703.4 Utilizacin de la cpu en un sistema de un solo usuario. . . . . . . . . . . . . 713.5 Multiprogramacin de particin fija con traduccin y carga absolutas. . . . 723.6 Multiprogramacin de particin fija con traduccin y carga relocalizables. . 723.7 Proteccin del almacenamiento con asignacin contigua de un solo proceso

    de usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

    xxiii

  • xxiv NDICE DE FIGURAS

    3.8 Proteccin del almacenamiento con asignacin contigua en sistemas de mul-tiprogramacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

    3.9 Asignacin de particiones iniciales en la multiprogramacin de particinvariable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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. . . . . . . . . . . . . . . . . . . . . . . . . . . 763.12 Compresin (compactacin) del almacenamiento en la multiprogramacin

    de particin variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.13 Transformacin de tems del espacio de direcciones virtuales al espacio de

    direcciones reales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803.14 Contigidad artificial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813.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. . . . . . 863.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. . . 903.24 Traduccin de direcciones de paginacin por combinacin de transformacin

    asociativa / directa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923.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. . . . . . . . . . . . . . . . . . . . . 983.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. . . . . 1023.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.1113.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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244.3 Un rbol arbitrario por usuario. . . . . . . . . . . . . . . . . . . . . . . . . . 125

  • NDICE DE FIGURAS xxv

    4.4 Encadenamiento de bloques o lista ligada de bloques. . . . . . . . . . . . . . 1294.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. . . . . . . . . . . . . . . . . . . . . . 1665.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. . . . . . . . . . . . . . . . . . . 2688.10 Ruta crtica del cliente al servidor. . . . . . . . . . . . . . . . . . . . . . . . 275

  • 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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43416.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. . . . . . . . . . . . . . . . . . . . . . . . . . 51719.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. . . . . . . . . . . . . . . . . . . . . . . . 68424.3 Promedio de peticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 720

    25.1 Promedio de peticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 72625.2 Promedio de peticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 74225.3 Promedio de peticiones pendientes. . . . . . . . . . . . . . . . . . . . . . . . 778

  • ndice de Tablas

    1.1 Estructura del S.O. en capas THE. . . . . . . . . . . . . . . . . . . . . . . 12

    2.1 Tipos de interrupciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.2 Criterios de un buen algoritmo de planificacin. . . . . . . . . . . . . . . . . 342.3 Disciplinas de planificacin del procesador. . . . . . . . . . . . . . . . . . . . 392.4 Tipos de prioridades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412.5 Grados de acoplamiento en multiprocesamiento. . . . . . . . . . . . . . . . . 58

    3.1 Ejemplo de combinacin de accesos. . . . . . . . . . . . . . . . . . . . . . . 973.2 Ejemplo de aplicaciones de la combinacin de accesos. . . . . . . . . . . . . 97

    5.1 Controladores de e / s, direcciones de e / s y vector de interrupciones. . . . 158

    6.1 Ejemplo de estado seguro en (a). . . . . . . . . . . . . . . . . . . . . . . . . 2026.2 Ejemplo de estado inseguro. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2026.3 Ejemplo de una transicin de estado seguro a estado inseguro. . . . . . . . . 2036.4 El algoritmo del banquero con varios recursos. . . . . . . . . . . . . . . . . . 2046.5 Resumen de los mtodos para prevenir el bloqueo. . . . . . . . . . . . . . . 207

    7.1 Conmutador de cruceta versus red omega. . . . . . . . . . . . . . . . . . . . 2217.2 Comparacin de tres formas distintas de organizar n cpu. . . . . . . . . . 236

    15.1 Estrategias de asignacin del procesador en ejecucin concurrente. . . . . . 42315.2 Estrategias de asignacin del procesador en ejecucin concurrente (conti-

    nuacin). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424

    16.1 Evolucin en las organizaciones del almacenamiento. . . . . . . . . . . . . . 42816.2 Estrategias de administracin del almacenamiento virtual. . . . . . . . . . . 429

    19.1 Formas bsicas de computacin. . . . . . . . . . . . . . . . . . . . . . . . . . 51119.2 Utilizacin de la herramienta Nndt. . . . . . . . . . . . . . . . . . . . . . . . 52319.3 Utilizacin de la herramienta Nndt (continuacin). . . . . . . . . . . . . . . 52319.4 Utilizacin de la herramienta Nndt (continuacin). . . . . . . . . . . . . . . 52419.5 Utilizacin de la herramienta Nnmodel. . . . . . . . . . . . . . . . . . . . . 52419.6 Utilizacin de la herramienta Nnmodel (continuacin). . . . . . . . . . . . . 52519.7 Utilizacin de la herramienta Nnmodel (continuacin). . . . . . . . . . . . . 52519.8 Utilizacin de la herramienta Qnet. . . . . . . . . . . . . . . . . . . . . . . . 52619.9 Utilizacin de la herramienta Qnet (continuacin). . . . . . . . . . . . . . . 526

    xxvii

  • xxviii NDICE DE TABLAS

    19.10Utilizacin de la herramienta Qnet (continuacin). . . . . . . . . . . . . . . 52719.11Resumen comparativo de la utilizacin de RNA. . . . . . . . . . . . . . . . 527

  • Parte I

    Sistemas OperativosConvencionales

    1

  • 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

  • 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 desplazardatos, 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.1Ver Figura 1.1 de la pgina 6.

  • 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 unamquina extendida omqui-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.

  • 6 CAPTULO 1. INTRODUCCIN

    Figura 1.1: Recursos administrados por el S. O.

  • 1.2. HISTORIA DE LOS SISTEMAS OPERATIVOS - GENERACIONES 7

    En los aos cincuenta comienzan como transicin entre trabajos, haciendo lamisma 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 unade 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 maslentos.

    Son sistemas de modos mltiples, es decir que deben soportar sistemasde 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 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 decomunicacin.

    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:

  • 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 valoresadicionales.

  • 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.

    2Ver Figura 1.2 de la pgina 11 [23, Tanenbaum].3Ver Figura 1.3 de la pgina 11 [23, Tanenbaum].4Ver Tabla 1.1 de la pgina 12 [23, Tanenbaum].

  • 1.4. ESTRUCTURA DE LOS SISTEMAS OPERATIVOS 11

    PROGRAMA 2 DEL USUARIO

    PROGRAMA 1 DEL USUARIOLLAMADA AL NUCLEO

    PROC. DE SERVICIO

    3

    4

    2

    1

    M E M O R I APRINCIPAL

    PROG. DELUSUARIOEN MODOUSUARIO

    SIST. OPER.EN MODON UC L E O

    Figura 1.2: Modelo de estructura simple para un sistema monoltico.

    PROCED. PRINCIPAL

    PROC. DESERVICIO

    PROCED.UTILITARIO

    Figura 1.3: Forma de llamada al sistema en un sistema monoltico.

  • 12 CAPTULO 1. INTRODUCCIN

    5 - Operador4 - Programas del Usuario

    3 - Control de Entrada / Salida2 - Comunicaciones Operador - Proceso

    1 - Administracin de la Memoria y del Disco0 - 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 deinformacin 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.

  • 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 generalas 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) segnel 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.

    5Ver Figura 1.4 de la pgina 14 [23, Tanenbaum].6Ver Figura 1.5 de la pgina 15 [23, Tanenbaum].

  • 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.7Ver Figura 1.6 de la pgina 15 [23, Tanenbaum].

  • 1.5. TENDENCIAS 15

    PROCESOCLIENTE

    PROCESOCLIENTE

    SERVIDOR DEL PROC.

    SERVIDORDE LA TERM . . .

    SERVIDORDE ARCHIV.

    SERVIDORDE 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. DE ARCHIVOS

    NUCLEO

    SER. DEPROCESOS

    NUCLEO

    SERV. DETERMINALES

    NUCLEO... ...MAQUINA 1 MAQUINA 2 MAQUINA 3 MAQUINA 4

    RED

    MENSAJE DEL CLIENTE AL SERVIDOR

    Figura 1.6: El modelo cliente - servidor en un sistema distribuido.

  • 16 CAPTULO 1. INTRODUCCIN

    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 Hardware

    Los principales aspectos del hardware, de importancia para los S. O., son los siguientes[7, Deitel]:

    Compaginacin del almacenamiento:

    Objetivo: acelerar el acceso al almacenamiento primario (bancos 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.

  • 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 procesarlos:

    Afecta la performance. Esquema de entradas de buffer doble:

    Permite la sobreposicin de operaciones de e / s con el procesamiento: Mejora la performance.

    Mientras el canal deposita datos en un buffer el procesador puede estarprocesando los datos del otro buffer. Cuando el procesador concluye el proceso de los datos del primer buffer,puede continuar con los datos del segundo, mientras el canal deposita nue-vos datos en el primer buffer: Es la tcnica de buffer biestable ( o en flip flop).

    Dispositivos perifricos:

    Permiten el almacenamiento de grandes cantidades de informacin fuera delalmacenamiento principal.

    Existen dispositivos secuenciales y de acceso directo.

    Las caractersticas y prestaciones son muy variadas.

    Proteccin del almacenamiento:

  • 18 CAPTULO 1. INTRODUCCIN

    Limita el nmero de direcciones que un programa puede referenciar.

    Es esencial en los sistemas multiusuario.

    Se implementa mediante los registros de lmites, que definen las direccionessuperior e inferior del bloque de almacenamiento afectado a un determinadoprograma.

    Tambin se pueden utilizar claves de proteccin del almacenamiento anexasa reas de almacenamiento primario:

    Un programa solo puede acceder a localidades de almacenamiento cuyasclaves de proteccin concuerdan con las del programa.

    Temporizadores y relojes:

    Temporizador de intervalos: previene que un solo usuario monopolice el pro-cesador en sistemas multiusuario.

    El temporizador genera una interrupcin al procesador cuando expira el inter-valo asignado a un usuario.

    Reloj horario: permite al computador hacer un seguimiento de la hora delreloj de pared, con una exactitud de millonsimas de segundo o mayor.

    Operaciones en lnea y fuera de lnea; procesadores satlite:

    Operacin en lnea: los perifricos utilizados estn conectados al procesador.

    Operacin fuera de lnea: los perifricos utilizados estn conectados a unida-des de control que no estn conectadas al sistema central o principal.

    Canales de entrada / salida:

    Son sistemas computacionales de propsito especial, dedicados al manejo de lae / s con independencia del procesador principal.

    Tienen acceso directo al almacenamiento principal para almacenar o recuperarinformacin.

    Evitan al procesador la mayor parte de la carga de manejar la e / s, incremen-tando la concurrencia.

    Los principales tipos de canales son los siguientes:

    Selectores. Multiplexores de bytes. Multiplexores de bloques.

    Robo de ciclo:

    Significa que en la competencia entre el procesador y los canales para accedera un determinado banco de almacenamiento primario (memoria principal), seda prioridad a los canales:

  • 1.6. HARDWARE 19

    Se optimiza el uso de los dispositivos de e / s.

    Direccionamiento de base ms desplazamiento:

    Todas las direcciones son aadidas al contenido de un registro de base.

    Los programas son independientes de la localizacin:

    Especialmente importante en ambientes multiusuario.

    Estado de problema, estado supervisor, instrucciones privilegiadas:

    Corresponde a distintos estados de ejecucin.

    Estado de problema o de usuario: estado en que corren los programas deusuario:

    Tiene acceso a un subconjunto de instrucciones del conjunto de instruccio-nes de la mquina.

    Estado supervisor o de ncleo: generalmente el S. O. corre as con la categorade usuario de mayor confianza o nivel:

    Tiene acceso a todas las instrucciones del conjunto de instrucciones de lamquina.

    Si el sistema soporta ms de dos estados:

    Se puede instrumentar una granulacin de proteccin ms fina. Permite conceder accesos por medio del principio de menos privilegio:

    Se debe garantizar a cada usuario en particular la menor cantidad deprivilegio y acceso que necesite para cumplir sus tareas.

    Instrucciones privilegiadas: son aquellas a las que no se tiene acceso en estadode problema.

    Almacenamiento virtual:

    Los sistemas de almacenamiento virtual permiten a los programas referenciardirecciones que no necesitan corresponder con las direcciones reales disponiblesen el almacenamiento primario.

    Las direcciones virtuales desarrolladas por los programas en ejecucin sontraducidas dinmicamente por el hardware a las direcciones reales de ins-trucciones y datos del almacenamiento principal.

    Los programas pueden referenciar espacios de direcciones mucho mayores quelos espacios de direcciones disponibles en el almacenamiento primario.

    Se utilizan tcnicas de:

    Paginacin: bloques de datos de tamao fijo van o vienen entre el alma-cenamiento primario y el secundario. Segmentacin: identifica las unidades lgicas de los programas y datospara facilitar el control de acceso y participacin.

  • 20 CAPTULO 1. INTRODUCCIN

    Multiprocesamiento:

    Varios procesadores comparten un almacenamiento primario comn y un soloS. O.

    Es necesario secuencializar el acceso a una localizacin (direccin) de alma-cenamiento compartido para que dos o ms procesadores no intenten:

    Modificarla al mismo tiempo. Modificarla uno(s) mientras otro(s) intenta(n) leerla.

    Acceso directo a la memoria (DMA):

    Requiere una sola interrupcin al procesador por cada bloque de caracterestransferidos durante la operacin de e / s, lo cual mejora significativamente laperformance (rendimiento).

    Es como si el procesador, en vez de interrumpido fuera retrasado.

    Resulta muy til para altos requerimientos de e / s.

    Canal DMA: es el hardware responsable del robo de ciclos y de la operacinde los dispositivos de e / s.

    Canalizacin:

    Tcnica de hardware utilizada para explotar ciertos tipos de paralelismo duranteel procesamiento de instrucciones.

    Varias instrucciones pueden estar simultneamente en diferentes estados de eje-cucin.

    Jerarqua de almacenamiento:

    Los niveles de almacenamiento incluyen:

    Almacenamiento primario: memoria principal. Almacenamiento secundario: discos, cintas, etc. Almacenamiento cach: memoria muy veloz diseada para aumentar lavelocidad de ejecucin de los programas:

    Aloja la parte (instrucciones y datos) en ejecucin de un programa. Los niveles de almacenamiento crean jerarquas de almacenamiento: cach,almacenamiento primario, almacenamiento secundario.

    Al bajar en la jerarqua:

    Descienden el costo y la velocidad. Aumenta la capacidad.

    Espacio de direcciones: conjunto de todas las direcciones disponibles para unprograma.

  • 1.7. SOFTWAR