SISTEMAS OPERATIVOS MODERNOS
TANENBAUM, ANDREW S.
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.
9702603153
QA7676063T3618 / 63T3618
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.
9702603153
QA7676063T3618 / 63T3618


















