Title | Sistemas operativos moderno 3ed Tanenbaum |
---|---|
Author | Alejandro Garcia |
Pages | 1,107 |
File Size | 23.3 MB |
File Type | |
Total Downloads | 136 |
Total Views | 945 |
SISTEMAS TANENBAUM OPERATIVOS MODERNOS 3ª edición ANDREW S. TANENBAUM La nueva edición de este best-seller incorpora los más recientes desarrollos en las tecnologías de los sistemas operativos; se le agregaron cientos de páginas de material nuevo y se eliminó el contenido obsoleto: en definiti- va c...
Accelerat ing t he world's research.
Sistemas operativos moderno 3ed Tanenbaum Alejandro Garcia
Related papers SO 5ed-st alli karin U TANENBAUM TANENBAUM Iván Plaza Sist emas Operat ivos UADE - Windows 7 mat ias samblancat
Download a PDF Pack of t he best relat ed papers
SISTEMAS OPERATIVOS MODERNOS
TANENBAUM
3ª edición
ANDREW S. TANENBAUM La nueva edición de este best-seller incorpora los más recientes desarrollos en las tecnologías de los sistemas operativos; se le agregaron cientos de páginas de material nuevo y se eliminó el contenido obsoleto: en definitiva cubre los principios y la práctica de los sistemas operativos modernos, concentrándose en Linux, Windows Vista® y los sistemas multimedia, embebidos y de tiempo real.
LO NUEVO DE ESTA EDICIÓN: •
La más reciente cobertura sobre Windows Vista y los sistemas operativos Linux/Unix.
•
Un caso de estudio, que abarca todo un capítulo, sobre el sistema operativo Symbian, para dispositivos móviles.
•
Un análisis bastante actualizado y mejorado sobre la seguridad.
•
Una reorganización completa del libro, de manera que los temas clave se presenten con oportunidad.
•
Una presentación de las investigaciones más recientes que probablemente devengan en los sistemas operativos del futuro.
•
Ejercicios de programación totalmente actualizados y adicionales en cada capítulo.
•
Experimentos con sistemas operativos en línea mediante el uso de herramientas populares de Windows y de código fuente abierto.
•
Ejercicios de simulación de sistemas operativos.
SISTEMAS OPERATIVOS MODERNOS
Andrew S. Tanenbaum plasma su estilo claro y entretenido en los conceptos importantes que todo diseñador de sistemas operativos debe dominar. Con base en su extensa trayectoria como diseñador o co-diseñador de tres sistemas operativos, transmite mediante esta obra sus profundos conocimientos y gran experiencia práctica de un modo que pocos libros pueden igualar. Algunos de los diversos temas que el autor trata con detalle son procesos, hilos, administración de memoria, sistemas de archivos, E/S, interbloqueos, diseño de interfaces, multimedia, mejoras en el rendimiento y las tendencias más recientes en el diseño de sistemas operativos.
Para mayor información visite la página Web:
www.pearsoneducacion.net/tanenbaum
3ª edición ISBN 978-607-442-046-3
www.FreeLibros.me
www.FreeLibros.me
SISTEMAS OPERATIVOS MODERNOS TERCERA EDICIÓN
Principios y Paradigmas Segunda edición
www.FreeLibros.me
www.FreeLibros.me
SISTEMAS OPERATIVOS MODERNOS TERCERA EDICIÓN
ANDREW S. TANENBAUM Vrije Universiteit Amsterdam, Holanda
TRADUCCIÓN
Alfonso Vidal Romero Elizondo Ingeniero en Sistemas Computacionales Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Monterrey
REVISIÓN TÉCNICA
José Ramón Ríos Sánchez Departamento Académico de Computación Instituto Tecnológico Autónomo de México Aarón Jiménez Govea Catedrático del Departamento de Ciencias Computacionales Universidad de Guadalajara, México
www.FreeLibros.me
Datos de catalogación bibliográfica TANENBAUM, ANDREW S. y MAARTEN VAN STEEN Sistemas operativos modernos. Tercera edición PEARSON EDUCACIÓN, México, 2009 ISBN: 978-607-442-046-3 Área: Computación Formato: 18.5 × 23.5 cm
Páginas: 1104
Authorized translation from the English language edition, entitled Modern operating systems, 3rd edition, by Andrew S. Tanenbaum published by Pearson Education, Inc., publishing as PRENTICE HALL, INC., Copyright © 2008. All rights reserved. ISBN 9780136006633 Traducción autorizada de la edición en idioma inglés, titulada Modern operating systems, 3ª. edición por Andrew S. Tanenbaum, publicada por Pearson Education, Inc., publicada como PRENTICE HALL, INC., Copyright © 2008. Todos los derechos reservados. Esta edición en español es la única autorizada. Edición en español Editor: Luis Miguel Cruz Castillo e-mail:[email protected] Editor de desarrollo: Bernardino Gutiérrez Hernández Supervisor de producción: José D. Hernández Garduño Edición en inglés Editorial Director, Computer Science, Engineering, and Advanced Mathematics: Marcia J. Horton Executive Editor: Tracy Dunkelberger Editorial Assistant: Melinda Haggerty Associtate Editor: ReeAnne Davis Senior Managing Editor: Scott Disanno Production Editor: Irwin Zucker Cover Concept: Andrews S. Tanenbaum and Tracy Dunkelberger Cover Design: Tamara Newman
Cover Illustrator: Steve Lefkowitz Interior design: Andrew S. Tanenbaum Typesetting: Andrew S. Tanenbaum Art Director: Kenny Beck Art Editor: Gregory Dulles Media Editor: David Alick Manufacturing Manager: Alan Fischer Manufacturing Buyer: Lisa McDowell Marketing Manager: Mack Patterson
TERCERA EDICIÓN, 2009 D.R. © 2009 por Pearson Educación de México, S.A. de C.V. Atlacomulco 500-5o. piso Col. Industrial Atoto 53519, Naucalpan de Juárez, Estado de México Cámara Nacional de la Industria Editorial Mexicana. Reg. Núm. 1031. Prentice Hall es una marca registrada de Pearson Educación de México, S.A. de C.V. Reservados todos los derechos. Ni la totalidad ni parte de esta publicación pueden reproducirse, registrarse o transmitirse, por un sistema de recuperación de información, en ninguna forma ni por ningún medio, sea electrónico, mecánico, fotoquímico, magnético o electroóptico, por fotocopia, grabación o cualquier otro, sin permiso previo por escrito del editor. El préstamo, alquiler o cualquier otra forma de cesión de uso de este ejemplar requirirá también la autorización del editor o de sus representantes. ISBN: 978-607-442-046-3 Impreso en México. Printed in Mexico. 1 2 3 4 5 6 7 8 9 0
09 10 11 12
www.FreeLibros.me
Para Suzanne, Barbara, Marvin y a la memoria de Bram y Sweetie
www.FreeLibros.me
www.FreeLibros.me
CONTENIDO
PREFACIO
1
xxiv
INTRODUCCIÓN
1
1.1
¿QUÉ ES UN SISTEMA OPERATIVO? 3 1.1.1 El sistema operativo como una máquina extendida 4 1.1.2 El sistema operativo como administrador de recursos 6
1.2
HISTORIA DE LOS SISTEMAS OPERATIVOS 7 1.2.1 La primera generación (1945 a 1955): tubos al vacío 7 1.2.2 La segunda generación (1955 a 1965): transistores y sistemas de procesamiento por lotes 8 1.2.3 La tercera generación (1965 a 1980): circuitos integrados y multiprogramación 10 1.2.4 La cuarta generación (1980 a la fecha): las computadoras personales 15
1.3
REVISIÓN DEL HARDWARE DE COMPUTADORA 1.3.1 Procesadores 19 1.3.2 Memoria 23 1.3.3 Discos 26 1.3.4 Cintas 27 1.3.5 Dispositivos de E/S 27 1.3.6 Buses 30 1.3.7 Arranque de la computadora 33
vii
www.FreeLibros.me
19
viii
CONTENIDO
1.4
LOS TIPOS DE SISTEMAS OPERATIVOS 33 1.4.1 Sistemas operativos de mainframe 34 1.4.2 Sistemas operativos de servidores 34 1.4.3 Sistemas operativos de multiprocesadores 34 1.4.4 Sistemas operativos de computadoras personales 1.4.5 Sistemas operativos de computadoras de bolsillo 1.4.6 Sistemas operativos integrados 35 1.4.7 Sistemas operativos de nodos sensores 36 1.4.8 Sistemas operativos en tiempo real 36 1.4.9 Sistemas operativos de tarjetas inteligentes 37
35 35
1.5
CONCEPTOS DE LOS SISTEMAS OPERATIVOS 1.5.1 Procesos 38 1.5.2 Espacios de direcciones 40 1.5.3 Archivos 40 1.5.4 Entrada/salida 43 1.5.5 Protección 44 1.5.6 El shell 44 1.5.7 La ontogenia recapitula la filogenia 46
1.6
LLAMADAS AL SISTEMA 49 1.6.1 Llamadas al sistema para la administración de procesos 52 1.6.2 Llamadas al sistema para la administración de archivos 56 1.6.3 Llamadas al sistema para la administración de directorios 57 1.6.4 Miscelánea de llamadas al sistema 58 1.6.5 La API Win32 de Windows 59
1.7
ESTRUCTURA DE UN SISTEMA OPERATIVO 1.7.1 Sistemas monolíticos 62 1.7.2 Sistemas de capas 63 1.7.3 Microkernels 64 1.7.4 Modelo cliente-servidor 67 1.7.5 Máquinas virtuales 67 1.7.6 Exokernels 71
1.8
EL MUNDO SEGÚN C 72 1.8.1 El lenguaje C 72 1.8.2 Archivos de encabezado 73 1.8.3 Proyectos de programación extensos 74 1.8.4 El modelo del tiempo de ejecución 75
1.9
INVESTIGACIÓN ACERCA DE LOS SISTEMAS OPERATIVOS
76
1.10
DESCRIPCIÓN GENERAL SOBRE EL RESTO DE ESTE LIBRO
77
www.FreeLibros.me
37
62
ix
CONTENIDO
2
1.11
UNIDADES MÉTRICAS
1.12
RESUMEN
78
79
PROCESOS E HILOS
83
2.1
PROCESOS 83 2.1.1 El modelo del proceso 84 2.1.2 Creación de un proceso 86 2.1.3 Terminación de procesos 88 2.1.4 Jerarquías de procesos 89 2.1.5 Estados de un proceso 90 2.1.6 Implementación de los procesos 91 2.1.7 Modelación de la multiprogramación 93
2.2
HILOS 95 2.2.1 Uso de hilos 95 2.2.2 El modelo clásico de hilo 100 2.2.3 Hilos en POSIX 104 2.2.4 Implementación de hilos en el espacio de usuario 106 2.2.5 Implementación de hilos en el kernel 109 2.2.6 Implementaciones híbridas 110 2.2.7 Activaciones del planificador 111 2.2.8 Hilos emergentes 112 2.2.9 Conversión de código de hilado simple a multihilado 114
2.3
COMUNICACIÓN ENTRE PROCESOS 117 2.3.1 Condiciones de carrera 117 2.3.2 Regiones críticas 119 2.3.3 Exclusión mutua con espera ocupada 120 2.3.4 Dormir y despertar 125 2.3.5 Semáforos 128 2.3.6 Mutexes 130 2.3.7 Monitores 134 2.3.8 Pasaje (transmisión) de mensajes 140 2.3.9 Barreras 144
2.4
PLANIFICACIÓN 145 2.4.1 Introducción a la planificación 145 2.4.2 Planificación en sistemas de procesamiento por lotes 2.4.3 Planificación en sistemas interactivos 154 2.4.4 Planificación en sistemas de tiempo real 160
www.FreeLibros.me
152
x
CONTENIDO
2.4.5 Política contra mecanismo 161 2.4.6 Planificación de hilos 162
3
2.5
PROBLEMAS CLÁSICOS DE COMUNICACIÓN ENTRE PROCESOS (IPC) 163 2.5.1 El problema de los filósofos comelones 164 2.5.2 El problema de los lectores y escritores 167
2.6
INVESTIGACIÓN ACERCA DE LOS PROCESOS E HILOS
2.7
RESUMEN
168
169
ADMINISTRACIÓN DE MEMORIA 3.1
SIN ABSTRACCIÓN DE MEMORIA
3.2
UNA ABSTRACCIÓN DE MEMORIA: ESPACIOS DE DIRECCIONES 179 3.2.1 La noción de un espacio de direcciones 3.2.2 Intercambio 181 3.2.3 Administración de memoria libre 184
3.3
3.4
175
176
MEMORIA VIRTUAL 188 3.3.1 Paginación 189 3.3.2 Tablas de páginas 193 3.3.3 Aceleración de la paginación 194 3.3.4 Tablas de páginas para memorias extensas
180
198
ALGORITMOS DE REEMPLAZO DE PÁGINAS 201 3.4.1 El algoritmo de reemplazo de páginas óptimo 202 3.4.2 El algoritmo de reemplazo de páginas: no usadas recientemente 203 3.4.3 El algoritmo de reemplazo de páginas: Primera en entrar, primera en salir (FIFO) 204 3.4.4 El algoritmo de reemplazo de páginas: segunda oportunidad 204 3.4.5 El algoritmo de reemplazo de páginas: reloj 205 3.4.6 El algoritmo de reemplazo de páginas: menos usadas recientemente (LRU) 206 3.4.7 Simulación de LRU en software 207 3.4.8 El algoritmo de reemplazo de páginas: conjunto de trabajo 209 3.4.9 El algoritmo de reemplazo de páginas WSClock 213 3.4.10 Resumen de los algoritmos de reemplazo de páginas 215
www.FreeLibros.me
xi
CONTENIDO
3.5
3.6
4
CUESTIONES DE DISEÑO PARA LOS SISTEMAS DE PAGINACIÓN 216 3.5.1 Políticas de asignación local contra las de asignación global 3.5.2 Control de carga 218 3.5.3 Tamaño de página 219 3.5.4 Espacios separados de instrucciones y de datos 221 3.5.5 Páginas compartidas 221 3.5.6 Bibliotecas compartidas 223 3.5.7 Archivos asociados 225 3.5.8 Política de limpieza 226 3.5.9 Interfaz de memoria virtual 226 CUESTIONES DE IMPLEMENTACIÓN 227 3.6.1 Participación del sistema operativo en la paginación 3.6.2 Manejo de fallos de página 228 3.6.3 Respaldo de instrucción 229 3.6.4 Bloqueo de páginas en memoria 230 3.6.5 Almacén de respaldo 231 3.6.6 Separación de política y mecanismo 233
3.7
SEGMENTACIÓN 234 3.7.1 Implementación de segmentación pura 237 3.7.2 Segmentación con paginación: MULTICS 238 3.7.3 Segmentación con paginación: Intel Pentium 242
3.8
INVESTIGACIÓN ACERCA DE LA ADMINISTRACIÓN DE MEMORIA 247
3.9
RESUMEN
227
248
SISTEMAS DE ARCHIVOS 4.1
216
ARCHIVOS 257 4.1.1 Nomenclatura de archivos 257 4.1.2 Estructura de archivos 259 4.1.3 Tipos de archivos 260 4.1.4 Acceso a archivos 262 4.1.5 Atributos de archivos 263 4.1.6 Operaciones de archivos 264 4.1.7 Un programa de ejemplo que utiliza llamadas al sistema de archivos 265
www.FreeLibros.me
255
xii
5
CONTENIDO
4.2
DIRECTORIOS 268 4.2.1 Sistemas de directorios de un solo nivel 268 4.2.2 Sistemas de directorios jerárquicos 268 4.2.3 Nombres de rutas 269 4.2.4 Operaciones de directorios 272
4.3
IMPLEMENTACIÓN DE SISTEMAS DE ARCHIVOS 273 4.3.1 Distribución del sistema de archivos 273 4.3.2 Implementación de archivos 274 4.3.3 Implementación de directorios 280 4.3.4 Archivos compartidos 283 4.3.5 Sistemas de archivos estructurados por registro 285 4.3.6 Sistemas de archivos por bitácora 287 4.3.7 Sistemas de archivos virtuales 288
4.4
ADMINISTRACIÓN Y OPTIMIZACIÓN DE SISTEMAS DE ARCHIVOS 292 4.4.1 Administración del espacio en disco 292 4.4.2 Respaldos del sistema de archivos 298 4.4.3 Consistencia del sistema de archivos 304 4.4.4 Rendimiento del sistema de archivos 307 4.4.5 Desfragmentación de discos 311
4.5
EJEMPLOS DE SISTEMAS DE ARCHIVOS 312 4.5.1 Sistemas de archivos de CD-ROM 312 4.5.2 El sistema de archivos MS-DOS 318 4.5.3 El sistema de archivos V7 de UNIX 321
4.6
INVESTIGACIÓN ACERCA DE LOS SISTEMAS DE ARCHIVOS 324
4.7
RESUMEN
324
ENTRADA/SALIDA 5.1
PRINCIPIOS DEL HARDWARE DE E/S 329 5.1.1 Dispositivos de E/S 330 5.1.2 Controladores de dispositivos 331 5.1.3 E/S por asignación de memoria 332 5.1.4 Acceso directo a memoria (DMA) 336 5.1.5 Repaso de las interrupciones 339
www.FreeLibros.me
329
xiii
CONTENIDO
5.2
FUNDAMENTOS DEL SOFTWARE DE E/S 5.2.1 Objetivos del software de E/S 343 5.2.2 E/S programada 344 5.2.3 E/S controlada por interrupciones 346 5.2.4 E/S mediante el uso de DMA 347
5.3
CAPAS DEL SOFTWARE DE E/S 348 5.3.1 Manejadores de interrupciones 348 5.3.2 Drivers de dispositivos 349 5.3.3 Software de E/S independiente del dispositivo 5.3.4 Software de E/S en espacio de usuario 359
5.4
5.5
DISCOS 360 5.4.1 Hardware de disco 361 5.4.2 Formato de disco 376 5.4.3 Algoritmos de programación del brazo del disco 5.4.4 Manejo de errores 382 5.4.5 Almacenamiento estable 385 RELOJES 388 5.5.1 Hardware de reloj 388 5.5.2 Software de reloj 390 5.5.3 Temporizadores de software
INTERFACES DE USUARIO: TECLADO, RATÓN, MONITOR 394 5.6.1 Software de entrada 394 5.6.2 Software de salida 399
5.7
CLIENTES DELGADOS
5.8
ADMINISTRACIÓN DE ENERGÍA 417 5.8.1 Cuestiones de hardware 418 5.8.2 Cuestiones del sistema operativo 419 5.8.3 Cuestiones de los programas de aplicaciones
5.10
RECURSOS
424
425
426
INTERBLOQUEOS 6.1
379
415
INVESTIGACIÓN ACERCA DE LA E/S RESUMEN
353
393
5.6
5.9
6
343
433
434
www.FreeLibros.me
xiv
CONTENIDO
6.1.1 Recursos apropiativos y no apropiativos 6.1.2 Adquisición de recursos 435
7
434
6.2
INTRODUCCIÓN A LOS INTERBLOQUEOS 437 6.2.1 Condiciones para los interbloqueos de recursos 438 6.2.2 Modelado de interbloqueos 438
6.3
EL ALGORITMO DE LA AVESTRUZ
6.4
DETECCIÓN Y RECUPERACIÓN DE UN INTERBLOQUEO 442 6.4.1 Detección de interbloqueos con un recurso de cada tipo 442 6.4.2 Detección del interbloqueo con varios recursos de cada tipo 444 6.4.3 Recuperación de un interbloqueo 447
6.5
CÓMO EVITAR INTERBLOQUEOS 448 6.5.1 Trayectorias de los recursos 449 6.5.2 Estados seguros e inseguros 450 6.5.3 El algoritmo del banquero para un solo recurso 6.5.4 El algoritmo del banquero para varios recursos
441
451 452
6.6
CÓMO PREVENIR INTERBLOQUEOS 454 6.6.1 Cómo atacar la condición de exclusión mutua 454 6.6.2 Cómo atacar la condición de contención y espera 455 6.6.3 Cómo atacar la condición no apropiativa 455 6.6.4 Cómo atacar la condición de espera circular 456
6.7
OTRAS CUESTIONES 457 6.7.1 Bloqueo de dos fases 457 6.7.2 Interbloqueos de comunicaciones 6.7.3 Bloqueo activo 459 6.7.4 Inanición 461
458
6.8
INVESTIGACIÓN SOBRE LOS INTERBLOQUEOS
6.9
RESUMEN
461
462
SISTEMAS OPERATIVOS MULTIMEDIA 7.1
INTRODUCCIÓN A MULTIMEDIA
7.2
ARCHIVOS DE MULTIMEDIA 472 7.2.1 Codificación de video 473
468
www.FreeLibros.me
467
xv
CONTENIDO
7.2.2 Codificación de audio
8
476
7.3
COMPRESIÓN DE VIDEO 478 7.3.1 El estándar JPEG 478 7.3.2 El estándar MPEG 481
7.4
COMPRESIÓN DE AUDIO
7.5
PROGRAMACIÓN DE PROCESOS MULTIMEDIA 487 7.5.1 Procesos de programación homogéneos 488 7.5.2 Programación general en tiempo real 488 7.5.3 Programación monotónica en frecuencia 490 7.5.4 Programación del menor tiempo de respuesta primero 491
7.6
PARADIGMAS DE LOS SISTEMAS DE ARCHIVOS MULTIMEDIA 7.6.1 Funciones de control de VCR 494 7.6.2 Video casi bajo demanda 496 7.6.3 Video casi bajo demanda con funciones de VCR 498
7.7
COLOCACIÓN DE LOS ARCHIVOS 499 7.7.1 Colocación de un archivo en un solo disco 500 7.7.2 Dos estrategias alternativas de organización de archivos 7.7.3 Colocación de archivos para el video casi bajo demanda 7.7.4 Colocación de varios archivos en un solo disco 506 7.7.5 Colocación de archivos en varios discos 508
484
7.8
USO DE CACHÉ 510 7.8.1 Caché de bloque 511 7.8.2 Caché de archivo 512
7.9
PROGRAMACIÓN DE DISCOS PARA MULTIMEDIA 7.9.1 Programación de discos estática 513 7.9.2 Programación de disco dinámica 515
7.10
INVESTIGACIÓN SOBRE MULTIMEDIA
7.11
RESUMEN
501 504
513
516
517
SISTEMAS DE MÚLTIPLES PROCESADORES 8.1
493
MULTIPROCESADORES 526 8.1.1 Hardware de multiprocesador
526
...