SISTEMAS OPERATIVOS MODERNOS
- 2DA EDICIÓN
- MÉXICO, NAUCALPAN GUILLERMO TRUJANO MENDOZA 2003
- 976 PAGINAS 18.5 X 23.5 CM
CONTENIDO PREFACIO xxii
1 INTRODUCCIÓN 1.1 ¿QUÉ ES UN SISTEMA OPERATIVO? 3 1.1.1 El sistema operativo como máquina extendida 3 1.1.2 El sistema operativo como administrador de recursos 5 1.2 HISTORIA DE LOS SISTEMAS OPERATIVOS 6 1.2.1 La primera generación (1945-1955): tubos de vacío y tableros 6 1.2.2 La segunda generación (1955-1965): transistores y sistemas por lotes 7 1.2.3 La tercera generación (1965-1980): circuitos integrados y multiprogramación 9 1.2.4 La cuarta generación (de 1980 al presente): computadoras personales 13 1.2.5 La ontogenia recapitula la filogenia 16 1.3 LA VARIEDAD DE SISTEMAS OPERATIVOS 18 1.3.1 Sistemas operativos de mainframe 18 1.3.2 Sistemas operativos de servidor 19 CONTENIDO
1.3.3 Sistemas operativos multiprocesador 19 1.3.4 Sistemas operativos de computadora personal 19 1.3.5 Sistemas operativos de tiempo real 19 1.3.6 Sistemas operativos integrados 20 1.3.7 Sistemas operativos de tarjeta inteligente 20
1.4 REPASO DE HARDWARE DE CÓMPUTO 1.4.1 Procesadores 21 1.4.2 Memoria 23 1.4.3 Dispositivos de E/S 28 1.4.4 Buses 31
1.5 CONCEPTOS DE LOS SISTEMAS OPERATIVOS 34 1.5.1 Procesos 34 1.5.2 Bloqueos irreversibles 36 1.5.3 Administración de memoria 37 1.5.4 Entrada/salida 38 1.5.5 Archivos 38 1.5.6 Seguridad 41 1.5.7 El shell 41 1.5.8 Reciclaje de conceptos 43
1.6 LLAMADAS AL SISTEMA 44 1.6.1 Llamadas al sistema para administración de procesos 48 1.6.2 Llamadas al sistema para administración de archivos 50 1.6.3 Llamadas al sistema para administración de directorios 51 1.6.4 Diversas llamadas al sistema 53 1.6.5 La API Win32 de Windows 53
1.7 ESTRUCTURA DEL SISTEMA OPERATIVO 56 1.7.1 Sistemas monolíticos 56 1.7.2 Sistemas en capas 57 1.7.3 Máquinas virtuales 59 1.7.4 Exokernels 61 1.7.5 Modelo cliente-servidor 61
1.8 INVESTIGACIÓN SOBRE SISTEMAS OPERATIVOS 63 1.9 BOSQUEJO DEL RESTO DEL LIBRO 65 1.10 UNIDADES MÉTRICAS 66 1.11 RESUMEN 67 CONTENIDO 2 PROCESOS Y SUBPROCESOS 71 2.1 PROCESOS 71 2.1.1 El modelo de procesos 72 2.1.2 Creación de procesos 73 2.1.3 Terminación de procesos 75 2.1.4 Jerarquías de procesos 76 2.1.5 Estados de procesos 77 2.1.6 Implementación de procesos 79 2.2 SUBPROCESOS 81 2.2.1 El modelo de subprocesos 81 2.2.2 Uso de subprocesos 85 2.2.3 Implementación de subprocesos en espacio de usuario 90 2.2.4 Implementación de subprocesos en el kernel 93 2.2.5 Implementaciones híbridas 93 2.2.6 Activaciones del calendarizador 94 2.2.7 Subprocesos emergentes 96 2.2.8 Cómo convertir en código con múltiples subprocesos el de un solo subproceso 97 2.3 COMUNICACIÓN ENTRE PROCESOS 100 2.3.1 Condiciones de competencia 100 2.3.2 Regiones críticas 102 2.3.3 Exclusión mutua con espera activa 103 2.3.4 Activar y desactivar 108 2.3.5 Semáforos 110 2.3.6 Mutexes 113 2.3.7 Monitores 115 2.3.8 Transferencia de mensajes 119 2.3.9 Barreras 123 2.4 PROBLEMAS CLÁSICOS DE COMUNICACIÓN ENTRE PROCESOS 124 2.4.1 El problema de la cena de los filósofos 125 2.4.2 El problema de los lectores y escritores 128 2.4.3 El problema del barbero dormilón 129 2.5 CALENDARIZACIÓN 132 2.5.1 Introducción a la calendarización 132 2.5.2 Calendarización en sistemas por lotes 138 2.5.3 Calendarización en sistemas interactivos 142 2.5.4 Calendarización en sistemas en tiempo real 148 2.5.5 Política en comparación con mecanismo 149 2.5.6 Calendarización de subprocesos 150 CONTENIDO CONTE x
2.6 INVESTIGACIONES SOBRE PROCESOS Y SUBPROCESOS 151
2.7 RESUMEN 152
3 BLOQUEOS IRREVERSIBLES 159
3.1 RECURSOS 160 3.1.1 Recursos expropiables y no expropiables 160 3.1.2 Adquisición de recursos 161
3.2 INTRODUCCIÓN A LOS BLOQUEOS IRREVERSIBLES 163 3.2.1 Condiciones para el bloqueo irreversible 164 3.2.2 Modelado de bloqueos irreversibles 164
3.3 EL ALGORITMO DEL AVESTRUZ 167
3.4 DETECCIÓN DE BLOQUEOS IRREVERSIBLES Y RECUPERACIÓN POSTERIOR 168 3.4.1 Detección de bloqueos irreversibles con un recurso de cada tipo 168 3.4.2 Detección de bloqueos irreversibles con múltiples recursos de cada tipo 171 3.4.3 Cómo recuperarse de un bloqueo irreversible 173
3.5 CÓMO EVITAR LOS BLOQUEOS IRREVERSIBLES 175 3.5.1 Trayectorias de recursos 175 3.5.2 Estados seguros e inseguros 176 3.5.3 El algoritmo del banquero para un solo recurso 178 3.5.4 El algoritmo del banquero para múltiples recursos 179
3.6 PREVENCIÓN DE BLOQUEOS IRREVERSIBLES 180 3.6.1 Cómo atacar la condición de exclusión mutua 181 3.6.2 Cómo atacar la condición de retener y esperar 181 3.6.3 Cómo atacar la condición de no expropiación 182 3.6.4 Cómo atacar la condición de espera circular 182
3.7 OTROS ASPECTOS 183 3.7.1 Bloqueos de dos fases 183 3.7.2 Bloqueos irreversibles que no son por recursos 184 3.7.3 Inanición 184
3.8 INVESTIGACIÓN SOBRE BLOQUEOS IRREVERSIBLES 185
3.9 RESUMEN 185 CONTENIDO 4 ADMINISTRACIÓN DE MEMORIA xi 189 4.1 ADMINISTRACIÓN DE MEMORIA BÁSICA 190 4.1.1 Monoprogramación sin intercambio ni paginación 190 4.1.2 Multiprogramación con particiones fijas 191 4.1.3 Modelado de la multiprogramación 192 4.1.4 Análisis del desempeño de un sistema multiprogramado 194 4.1.5 Reubicación y protección 194 4.2 INTERCAMBIO 196 4.2.1 Administración de memoria con mapas de bits 199 4.2.2 Administración de memoria con listas enlazadas 200 4.3 MEMORIA VIRTUAL 202 4.3.1 Paginación 202 4.3.2 Tablas de páginas 205 4.3.3 Búferes de consulta para traducción 211 4.3.4 Tablas de páginas invertidas 213 214 4.4 ALGORITMOS PARA REEMPLAZO DE PÁGINAS 4.4.1 El algoritmo óptimo de reemplazo de páginas 215 4.4.2 El algoritmo de reemplazo de páginas no usadas recientemente 216 4.4.3 El algoritmo de reemplazo de páginas de primero en entrar, primero en salir 217 4.4.4 El algoritmo de reemplazo de páginas de segunda oportunidad 217 4.4.5 El algoritmo de reemplazo de páginas tipo reloj 218 4.4.6 El algoritmo de reemplazo de página menos recientemente usada 218 4.4.7 Simulación de LRU en software 220 4.4.8 El algoritmo de reemplazo de páginas de conjunto de trabajo 222 4.4.9 El algoritmo de reemplazo de páginas WSClock 225 4.4.10 Resumen de algoritmos de reemplazo de páginas 227 4.5 MODELADO DE ALGORITMOS DE REEMPLAZO DE PÁGINAS 228 4.5.1 Anomalía de Belady 229 4.5.2 Algoritmos de pila 229 4.5.3 La cadena de distancias 232 4.5.4 Predicción de tasas de fallos de página 233 4.6 ASPECTOS DE DISEÑO DE LOS SISTEMAS CON PAGINACIÓN 234 4.6.1 Políticas de asignación local y global 234 4.6.2 Control de carga 236 4.6.3 Tamaño de página 237 4.6.4 Espacios de instrucciones y de datos separados 239 4.6.5 Páginas compartidas 239 4.6.6 Política de aseo 241 4.6.7 Interfaz de memoria virtual 241 CONTENIDO
4.7 ASPECTOS DE IMPLEMENTACIÓN 242 4.7.1 Intervención del sistema operativo en la paginación 242 4.7.2 Manejo de fallos de página 243 4.7.3 Retroceso de instrucciones 244 4.7.4 Fijación de páginas en la memoria 246 4.7.5 Almacén de respaldo 246 4.7.6 Separación de política y mecanismo 247 4.8 SEGMENTACIÓN 249 4.8.1 Implementación de la segmentación pura 253 4.8.2 Segmentación con paginación: MULTICS 254 4.8.3 Segmentación con paginación: Pentium de Intel 257 4.9 INVESTIGACIONES SOBRE ADMINISTRACIÓN DE MEMORIA 262 4.10 RESUMEN 262
5 ENTRADA/SALIDA 269 5.1 PRINCIPIOS DEL HARDWARE DE E/S 269 5.1.1 Dispositivos de E/S 270 5.1.2 Controladoras de dispositivos 271 5.1.3 E/S con correspondencia en memoria 272 5.1.4 Acceso directo a memoria 276 5.1.5 Repaso de interrupciones 279 5.2 PRINCIPIOS DEL SOFTWARE DE E/S 282 5.2.1 Metas del software de E/S 283 5.2.2 E/S programada 284 5.2.3 E/S controlada por interrupciones 286 5.2.4 E/S con DMA 287 5.3 CAPAS DEL SOFTWARE DE E/S 287 5.3.1 Manejadores de interrupciones 287 5.3.2 Controladores de dispositivos 289 5.3.3 Software de E/S independiente del dispositivo 292 5.3.4 Software de E/S en espacio de usuario 298 5.4 DISCOS 300 5.4.1 Hardware de disco 300 5.4.2 Formateo de discos 315 5.4.3 Algoritmos para calendarizar el brazo del disco 318 5.4.4 Manejo de errores 322 5.4.5 Almacenamiento estable 324 5.5 RELOJES 327 5.5.1 Hardware de reloj 328 5.5.2 Software de reloj 329 5.5.3 Temporizadores de software 332 5.6 TERMINALES ORIENTADAS A CARACTERES 333 5.6.1 Hardware de terminal RS-232 334 5.6.2 Software de entrada 336 5.6.3 Software de salida 341 5.7 INTERFACES GRÁFICAS DE USUARIO 342 5.7.1 Hardware de teclado, ratón y pantalla para computadora personal 343 5.7.2 Software de entrada 347 5.7.3 Software de salida para Windows 347 5.8 TERMINALES DE RED 355 5.8.1 El sistema X Window 356 5.8.2 La terminal de red SLIM 360 5.9 ADMINISTRACIÓN DE ENERGÍA 363 5.9.1 Aspectos de hardware 364 5.9.2 Aspectos del sistema operativo 365 5.9.3 Merma en el funcionamiento 370 5.10 INVESTIGACIONES SOBRE ENTRADA/SALIDA 371 5.11 RESUMEN 372 6 SISTEMAS DE ARCHIVOS 379 6.1 ARCHIVOS 380 6.1.1 Nombres de archivo 380 6.1.2 Estructura de archivos 382 6.1.3 Tipos de archivos 383 6.1.4 Acceso a archivos 385 6.1.5 Atributos de archivos 386 6.1.6 Operaciones con archivos 387
Bloq Mayús 6.1.7 Ejemplo de programa que usa llamadas al sistema de archivos 389 6.1.8 Archivos con correspondencia en memoria 391 6.2 DIRECTORIOS 393 6.2.1 Sistemas de directorios de un solo nivel 393 6.2.2 Sistemas de directorios de dos niveles 394 6.2.3 Sistemas de directorios jerárquicos 395 6.2.4 Nombres de ruta 395 6.2.5 Operaciones con directorios 398 6.3 IMPLEMENTACIÓN DE SISTEMAS DE ARCHIVOS 399 6.3.1 Organización del sistema de archivos 399 6.3.2 Implementación de archivos 400 6.3.3 Implementación de directorios 405 6.3.4 Archivos compartidos 408 6.3.5 Administración de espacio en disco 410 6.3.6 Confiabilidad del sistema de archivos 416 6.3.7 Desempeño del sistema de archivos 424 6.3.8 Sistemas de archivos con estructura de registro 428 6.4 EJEMPLOS DE SISTEMAS DE ARCHIVOS 430 6.4.1 Sistemas de archivos de CD-ROM 430 6.4.2 El sistema de archivos de CP/M 435 6.4.3 El sistema de archivos de MS-DOS 438 6.4.4 El sistema de archivos de Windows 98 442 6.4.5 El sistema de archivos de UNIX V7 445 6.5 INVESTIGACIÓN SOBRE SISTEMAS DE ARCHIVOS 448 6.6 RESUMEN 449 7 SISTEMAS OPERATIVOS MULTIMEDIA 453 7.1 INTRODUCCIÓN A MULTIMEDIA 454 7.2 ARCHIVOS MULTIMEDIA 458 7.2.1 Codificación de audio 459 7.2.2 Codificación de vídeo 461 7.3 COMPRESIÓN DE VÍDEO 463 7.3.1 El estándar JPEG 464 7.3.2 El estándar MPEG 467 CONTENIDO XV 7.4 CALENDARIZACIÓN DE PROCESOS MULTIMEDIA 469 7.4.1 Calendarización de procesos homogéneos 469 7.4.2 Calendarización general en tiempo real 470 7.4.3 Calendarización de tasa monotónica 472 7.4.4 Calendarización de plazo más cercano primero 473 7.5 PARADIGMAS DE SISTEMAS DE ARCHIVOS MULTIMEDIA 475 7.5.1 Funciones de control de videograbadora 476 7.5.2 Vídeo por demanda aproximado 478 7.5.3 Vídeo por demanda aproximado con funciones de videograbadora 479 7.6 COLOCACIÓN DE ARCHIVOS 481 7.6.1 Colocación de un archivo en un solo disco 481 7.6.2 Dos estrategias alternas de organización de archivos 482 7.6.3 Colocación de archivos para vídeo por demanda aproximado 486 7.6.4 Colocación de múltiples archivos en un solo disco 487 7.6.5 Colocación de archivos en múltiples discos 490 7.7 USO DE CACHÉS 492 7.7.1 Colocación de bloques en caché 492 7.7.2 Colocación de archivos en caché 494 7.8 CALENDARIZACIÓN DE DISCO PARA MULTIMEDIA 494 7.8.1 Calendarización estática de disco 495 7.8.2 Calendarización dinámica de disco 496 7.9 INVESTIGACIÓN SOBRE MULTIMEDIA 498 7.10 RESUMEN 499 8 SISTEMAS CON MÚLTIPLES PROCESADORES 503 8.1 MULTIPROCESADORES 506 8.1.1 Hardware de multiprocesador 506 8.1.3 Sincronización de multiprocesadores 516 8.1.2 Tipos de sistemas operativos para multiprocesador 513 8.1.4 Calendarización de multiprocesadores 521 8.2 MULTICOMPUTADORAS 526 8.2.1 Hardware de multicomputadora 527 ..........
SEGUNDA EDICIÓN SISTEMAS OPERATIVOS MODERNOS Andrew S. Tanenbaum La esperada actualización de esta obra, tan vendida en todo el mundo, incorpora los últimos avances en tecnologías de sistemas operativos. Se han añadido cientos de páginas de material nuevo sobre un sinnúmero de temas. Esta referencia definitiva, basada en ejemplos, ofrece información práctica para construir y entender los sistemas operativos modernos. Esta segunda edición contiene conceptos “panorámicos”, presentados en el estilo claro y ameno que sólo Andrew S. Tanenbaum puede ofrecer. La larga experiencia de Tanenbaum como diseñador o codiseñador de tres sistemas operativos aporta un grado de conocimiento del tema y una abundancia de detalles prácticos que casi ningún otro libro puede igualar. CARACTERÍSTICAS • Capítulos nuevos sobre seguridad de computadoras, sistemas operativos multimedia y sistemas con múltiples procesadores. • Amplia cobertura de Linux, UNIX y Windows 2000™ como ejemplos. • Un capítulo exclusivo sobre el diseño de sistemas operativos que no se halla en otros libros. • Ahora incluye cobertura de interfaces gráficas de usuario, sistemas operativos para multiprocesadores, sistemas de confianza, virus, terminales de red, sistemas de archivos de CD-ROM, administración de energía en laptops, RAID, temporizadores en software, almacenamiento estable, calendarización por porción equitativa, calendarización de tres niveles y nuevos algoritmos de paginación. • Casi todos los capítulos tienen una nueva sección sobre las investigaciones actuales relacionadas con el tema del capítulo. • Centrado en los sistemas de computación de uniprocesador, Pearson Educación también ofrece un interesante título para un curso subsiguiente sobre sistemas distribuidos. • Más de 200 referencias a libros y artículos publicados desde la primera edición. • El sitio Web para este libro contiene diapositivas de PowerPoint, simuladores, figuras en diversos formatos y otras ayudas para la enseñanza.