Catálogo de libros sobre la esencia y principios de diseño de los sistemas operativos.
Índice de la versión china
Nota del editor
Prefacio del traductor
Prólogo
Capítulo 0 Guía del lector 1
0.1 Descripción general del libro 1
0.2 Hoja de ruta de aprendizaje para lectores y profesores 1
0.3 Internet y recursos web 2
Parte del capítulo del fondo
Capítulo 1 Descripción general del sistema informático 6
1.1 Estructura básica 6
1.2 Registro del procesador 6
1.2.1 Visible para el usuario registro 7
1.2.2 Registro de control y estado 8
1.3 Ejecución de instrucciones 9
1.3.1 Obtención y ejecución de instrucciones 9
1.3.2 Función de E/S 11
1.4 Interrupción 11
1.4.1 Interrupción y ciclo de instrucción 12
1.4.2 Procesamiento de interrupción 14
1.4.3 Interrupciones múltiples 15
1.4.4 Multiprogramación 17
1.5 Jerarquía de memoria 17
1.6 Almacenamiento en caché de alta velocidad 20
1.6.1 Motivación 20
1.6.2 Principios de caché 20
1.6.3 Diseño de caché 21
1.7 Tecnología de comunicación de E/S 22
1.7.1 E/S programables 22
1.7.2 E/S controladas por interrupción 22
1.7.3 Acceso directo a memoria 24
1.8 Lecturas y sitios web recomendados 24
1.9 Términos clave, preguntas de repaso y ejercicios 25
Apéndice 1A Características de rendimiento de la memoria de dos niveles 27
p>Apéndice 1B Control de procesos 30
Capítulo 2 Descripción general de los sistemas operativos 33
2.1 Objetivos y funciones de los sistemas operativos 33
2.1.1 Como interfaz usuario/computadora
2.1.1 Sistema operativo 33
2.1.2 Operación como administrador de recursos
2.1.1 Sistema 34
2.1.3 Fácil escalabilidad del sistema operativo sistemas 35
2.2 Desarrollo de sistemas operativos 35
2.2.1 Procesamiento en serie 35
2.2.2 Sistema de procesamiento por lotes simple 36
2.2.3 Sistema de procesamiento por lotes multiprogramación 38
2.2.4 Sistema de tiempo compartido 40
2.3 Principales logros 42
2.3.1 Proceso 42 p>
2.3.2 Gestión de la memoria 44
2.3.3 Protección y seguridad de la información 46
2.3.4 Programación y gestión de recursos 46
2.3. 5 Estructura del sistema 47
2.4 Características de los sistemas operativos modernos 49
2.5 Descripción general de Microsoft Windows 51
2.5.1 Historia 51
2.5.2 Multitarea de un solo usuario 53
2.5.3 Arquitectura 53
2.5.4 Modelo Cliente/Servidor 56
2.5.5 Hilos y SMP 57
2.5.6 Objetos de Windows 57
2.6 Sistemas UNIX tradicionales 58
2.6.1 Historia 58
2.6.2 Descripción 59 p>
2.7 Sistemas UNIX modernos 60
2.7.1 System V versión 4 (SVR4) 60
2.7.2 BSD
61
2.7.3 Solaris 10 61
2.8 Sistema operativo Linux 61
2.8.1 Historia 62
2.8.2 Estructura del módulo 63
2.8.3 Componentes del kernel 64
2.9 Lecturas y sitios web recomendados 67
2.10 Términos clave, preguntas de revisión y ejercicios 68
Parte 2 Proceso
Capítulo 3 Descripción y control del proceso73
3.1 Qué es un proceso73
3.1.1 Antecedentes73
3.1.2 Proceso y bloque de control de procesos 74
3.2 Estado del proceso 75
3.2.1 Modelo de proceso de dos estados 76
3.2.2 Creación y terminación del proceso 77 p>
3.2.3 Modelo de cinco estados 78
3.2.4 Proceso suspendido 81
3.3 Descripción del proceso 84
3.3 .1 Control del sistema operativo estructura 85
3.3.2 Estructura de control de procesos 86
3.4 Control de procesos 90
3.4.1 Modo de ejecución 90
3.4.2 Creación de procesos 91
3.4.3 Cambio de procesos 92
3.5 Ejecución del sistema operativo 93
3.5.1 Kernel sin procesos 94
3.5.2 Ejecución en el proceso del usuario 94
3.5.3 Sistema operativo basado en procesos 95
3.6 Problemas de seguridad 95
3.6.1 Amenazas de acceso al sistema 96
3.6.2 Contramedidas 96
3.7 Gestión de procesos UNIX SVR4 98
3.7.1 Estado del proceso 98
3.7.2 Descripción del proceso 99
3.7.3 Control de procesos 101
3.8 Resumen 102
3.9 Lectura recomendada 102
3.10 Términos clave, preguntas de repaso y ejercicios 102
Proyecto de programación 1: Desarrollo de un programa Shell 105
Capítulo 4 Hilos, multiprocesamiento simétrico (SMP)
Capítulo 4 y microkernel 107
4.1 Procesos y subprocesos 107
4.1.1 Multiproceso 107
4.1.2 Características funcionales de los subprocesos 109
4.1.3 Ejemplo: Adobe PageMaker 111
4.1.4 Hilos a nivel de usuario y a nivel de kernel 112
4.1.5 Otras soluciones 115
4.2 Multiprocesamiento Symmetry 116
4.2.1 Arquitectura SMP 116
4.2.2 Estructura organizativa del sistema SMP 117
4.2.3 Sistema operativo multiprocesador
4.2.3 Design Thinking 118
4.3 Microkernel 119
4.3.1 Arquitectura del Microkernel 119
4.3.2 Ventajas del Microkernel de la estructura organizacional 120
4.3.3 Rendimiento del Microkernel 121
4.3.4 Diseño de microkernel 121
4.4 Hilos de Windows y gestión de SMP 122
4.4.1 Objeto de proceso y objeto de hilo 123
4.4.2 Subprocesos múltiples 125
4.4.3 Estado del subproceso 125
4.4.4 Soporte del subsistema del sistema operativo derecho 126
4.4.5 Soporte de multiprocesamiento simétrico 126
4.5 Gestión de subprocesos y SMP de Solaris 127
4.5.1 Arquitectura multiproceso 127
4.5.2 Motivación 127
4.5. 3 Estructura del proceso 128
4.5.4 Ejecución de subprocesos 129
4.5.5 Tratar las interrupciones como subprocesos 129
4.6 Gestión de procesos y subprocesos de Linux 130
4.6.1 Tareas de Linux 130
4.6.2 Hilos de Linux 131
4.7 Resumen 132
4.8 Lectura recomendada 133
4.9 Términos clave, preguntas de repaso y ejercicios 133
Capítulo 5 Concurrencia: exclusión mutua y sincronización 138
5.1 Principios de concurrencia 139
5.1 .1 Un ejemplo simple 139
5.1.2 Condiciones de carrera 141
5.1.3 Preocupaciones del sistema operativo 141
5.1.4 Interacción del proceso 141
5.1. 5 Requisitos de exclusión mutua 144
5.2 Exclusión mutua: soporte de hardware 144
5.2.1 Desactivación de interrupciones 144
5.2.2 Instrucciones de máquina especializadas 145
5.3 Semáforos 147
5.3.1 Exclusión mutua 150
5.3.2 Cuestiones productor/consumidor 151
p>5.3.3 Implementación de semáforo 154
5.4 Pipe 155
5.4.1 Pipe usando señales 155
5.4.2 Monitores usando notificaciones y transmisiones 158
5.5 Transmisión de mensajes 159
5.5.1 Sincronización 160
5.5.2 Direccionamiento 161
5.5.3 Formato del mensaje 162
5.5.4 Principio de cola 162
5.5.5 Exclusión mutua 162
5.6 Problema lector-escritor 163
5.6.1 Los lectores primero 164
5.6.2 Los escritores primero 164
5.7 Resumen 166
5.8 Lecturas recomendadas 167
5.9 Términos clave, preguntas de repaso y ejercicios 167
Capítulo 6 Concurrencia: punto muerto y hambre 178
6.1 Principios de punto muerto 178
6.1.1 Recursos reutilizables 180
6.1.2 Recursos consumibles 181
6.1.3 Diagrama de asignación de recursos 182
6.1.4 Condiciones de interbloqueo 183 p>
6.2 Prevención de interbloqueo 184
6.2.1 Exclusión mutua 184
6.2.2 Posesión y espera 184
6.2.3 No preferencia 184
6.2.4 Espera en bucle184
6.3 Evitación de punto muerto 185
6.3.1 Rechazo de inicio de proceso 185
6.3.2 Rechazo de asignación de recursos 186
6.4 Detección de interbloqueo 189
6.4.1 Algoritmo de detección de interbloqueo 189
6.4.2 Recuperación 190
6.5 Una estrategia integral de punto muerto 190
6.6 El problema del filósofo del comedor 191
6.6.1 Uso de una solución de semáforo 191
6.6.2 Uso de una solución de monitor 192
6.7 Mecanismo de concurrencia de UNIX 192
6.7.1 Tubería 1
92
6.7.2 Mensaje 193
6.7.3 Memoria compartida 193
6.7.4 Semáforo 194
6.7 .5 Señales 194
6.8 Mecanismo de concurrencia del kernel de Linux 195
6.8.1 Operaciones atómicas 195
6.8.2 Bloqueos de giro 196
6.8.3 Semáforos 197
6.8.4 Barreras 199
6.9 Primitivas de sincronización de subprocesos de Solaris 199
6.9.1 Bloqueos Mutex 200
6.9.2 Semáforo 200
6.9.3 Bloqueo de lector múltiple/escritor único 201
6.9.4 Variable de condición 201
6.10 Mecanismo de concurrencia de Windows 201
6.10.1 Función de espera 201
6.10.2 Objeto Dispatcher 202
6.10.3 Sección crítica 203
6.10.4 Bloqueos ligeros de lectura y escritura y variables de condición 203
6.11 Resumen 204
6.12 Lectura recomendada 204
6.13 Términos clave, preguntas de repaso y ejercicios 205
Parte 3 Memoria p>
Capítulo 7 Gestión de la memoria 210
7.1 Requisitos para la gestión de la memoria 210
7.1.1 Reubicación 210
7.1.2 Protección 211
7.1.3 Disfrutar 211
7.1.4 Organización lógica 211
7.1.5 Organización física 211
7.2 Partición de memoria 212
7.2.1 Partición fija 212
7.2.2 Partición dinámica 214
7.2.3 Sistema asociado 216
7.2.4 Reubicación 218
7.3 Paginación 219
7.4 Segmentación 222
7.5 Problemas de seguridad 222 p>
7.5.1 Ataque de desbordamiento de búfer 222
7.5 .2 Prevención del desbordamiento del búfer 225
7.6 Resumen 225
7.7 Lectura recomendada 225
7.8 Términos clave, preguntas de repaso y ejercicios 225
Apéndice 7A Carga y vinculación 228
Capítulo 8 Memoria virtual 232
8.1 Hardware y estructuras de control 232
8.1.1 Localidad y memoria virtual 233
8.1.2 Paginación 235
8.1.3 Segmentación 242
8.1.4 Paginación de segmento 243
8.1.5 Protección y disfrute 244
8.2 Software del sistema operativo 244
8.2.1 Estrategia de lectura 245
8.2.2 Estrategia de ubicación 246
8.2.3 Estrategia de reemplazo 246 p>
8.2.4 Gestión de conjuntos residentes 251
8.2.5 Estrategia de limpieza 255
8.2.6 Control de carga 255
8.3 Memoria UNIX y Solaris gestión 257
8.3.1 Sistema de paginación 257
8.3.2 Asignador de memoria del kernel 259
8.4 Gestión de memoria de Linux 260
8.4. 1 Memoria virtual de Linux 260
8.4.2 Asignación de memoria del kernel 261
8.5 Administración de memoria de Windows
262
8.5.1 Asignación de direcciones virtuales de Windows 263
8.5.2 Paginación de Windows 263
8.6 Resumen 264
8.7 Lecturas recomendadas y Sitio web 264
8.8 Términos clave, preguntas de repaso y ejercicios 265
Apéndice 8A Tabla hash 268
Parte 4 Programación
Parte 9 Capítulo Programación de procesador único 272
9.1 Tipos de programación de procesador 272
9.1.1 Programación de largo alcance 273
9.1.2 Programación de rango medio 274
9.1.3 Programación de corta distancia 274
9.2 Algoritmo de programación 274
9.2.1 Criterio de programación de corta distancia 274
9.2.2 Uso de prioridad 275
9.2.3 Seleccionar estrategia de programación 276
9.2.4 Comparación de desempeño 284
9.2.5 Programación compartida justa *** 287
9.3 Programación tradicional de UNIX 289
9.4 Resumen 290
9.5 Lectura recomendada 291
9.6 Términos clave, preguntas de repaso y ejercicios 291
Apéndice 9A Tiempo de respuesta 294
Apéndice 9B Sistema de colas 296
Proyecto de programación 2: Programa Shell de programación del host 299
Capítulo 10 Multiprocesador y tiempo real Programación 304
10.1 Programación multiprocesador 304
10.1.1 Granularidad 304
10.1.2 Problemas de diseño 307
10.1.3 Programación de procesos 308
10.1.4 Programación de subprocesos 309
10.2 Programación en tiempo real 312
10.2.1 Fondo 312
10.2.2 Real Características de operación en tiempo del sistema 313
10.2.3 Programación en tiempo real 315
10.2.4 Programación de plazos 316
10.2.5 Programación de tarifas monótonas 319
10.2.6 Inversión de prioridad 321
10.3 Programación de Linux 322
10.3.1 Programación en tiempo real 322
10.3.2 No -programación en tiempo real 323
10.4 Programación UNIX SVR4 325
10.5 Programación de Windows 326
10.5.1 Prioridad de procesos y subprocesos 326
10.5.2 Programación multiprocesador 328
10.6 Resumen 328
10.7 Lecturas recomendadas 328
10.8 Términos clave, preguntas de repaso y ejercicios 329
Parte 5 E/S y archivos
Capítulo 11 Administración de E/S y programación de discos 334
11.1 Dispositivos de E/S 334
11.2 Organización de E/S Funciones O 335
11.2.1 Desarrollo de funciones de E/S 335
11.2.2 Acceso directo a memoria 336
11.3 Problemas de diseño del sistema operativo 337
11.3.1 Objetivos de diseño 337
11.3.2 Estructura lógica de la función de E/S 338
11.4 Almacenamiento en búfer de E/S 339
11.4. 1 Búfer único 340
11.4.2 Búfer doble 341
11.4.3 Búfer circular 341
11.4.4 La función del almacenamiento en búfer 34
1
11.5 Programación de disco 342
11.5.1 Parámetros de rendimiento del disco 342
11.5.2 Política de programación de disco 344
11.6 RAID 347
11.6.1 Nivel RAID 0 349
11.6.2 Nivel RAID 1 350
11.6.3 Nivel RAID 2 351
11.6 .4 Nivel RAID 3 351
11.6.5 Nivel RAID 4 352
11.6.6 Nivel RAID 5 353
11.6.7 Nivel RAID 6 353 p> p>
11.7 Caché de disco 353
11.7.1 Consideraciones de diseño 353
11.7.2 Consideraciones de rendimiento 355
11.8 E/S UNIX SVR4 355
11.8.1 Caché de búfer 356
11.8.2 Cola de caracteres 356
11.8.3 E/S sin búfer 357
11.8 .4 Dispositivo UNIX 357
11.9 E/S de Linux 357
11.9.1 Programación de disco 358
11.9.2 Caché de páginas de Linux 360
11.10 Windows I/O 360
11.10.1 Mecanismo de E/S básico 360
11.10.2 E/S asíncrona y E/S síncrona 361
11.10.3 Software RAID 361
11.10.4 Instantánea de volumen 361
11.10.5 Cifrado de volumen 362
11.11 Resumen 362
11.12 Lecturas recomendadas 362
11.13 Términos clave, preguntas de repaso y ejercicios 363
Apéndice 11A Dispositivos de almacenamiento en disco 365
Capítulo 12 Administración de archivos 371
12.1 Descripción general 371
12.1.1 Archivos y sistemas de archivos 371
12.1.2 Estructura de archivos 371
12.1.3 Sistema de gestión de archivos 373 p>
12.2 Organización y acceso a archivos 375
12.2.1 Heap 376
12.2.2 Archivos secuenciales 376
12.2.3 Índice de archivos secuenciales 377
12.2.4 Archivos de índice 377
12.2.5 Archivos directos o archivos hash 378
12.3 Directorios de archivos 378
12.3.1 Contenido 378
12.3.2 Estructura 379
12.3.3 Nombramiento 380
12.4 Compartir archivos 381
12.4.1 Derechos de acceso 381
12.4.2 Acceso simultáneo 381
12.5 Bloqueo de registros 382
12.6 Gestión de almacenamiento secundario 383
12.6.1 Asignación de archivos 383
12.6.2 Gestión del espacio libre 387
12.6.3 Volumen 388
12.6.4 Fiabilidad 388
p>12.7 Sistema de archivos seguridad 389
12.8 Gestión de archivos UNIX 390
12.8.1 Nodo de índice 391
12.8.2 Asignación de archivos 392 p>
12.8.3 Tabla de contenido
393
12.8.4 Estructura del volumen 393
12.8.5 Acceso a archivos UNIX tradicional
6.10.4 Control 393
12.8. Lista de control de acceso en UNIX 394
12.9 Sistema de archivos virtual Linux 395
12.9.1 Objeto de superbloque 397
12.9.2 Objeto de nodo de índice 397
12.9.3 Objeto de entrada de directorio 398
12.9.4 Objeto de archivo 398
12.10 Sistema de archivos de Windows 398
12.10.1 NTFS Funciones importantes 398
12.10.2 Volumen NTFS y estructura de archivos 399
12.10.3 Recuperabilidad 401
12.11 Resumen 402
12.12 Lectura recomendada 402
12.13 Términos clave, preguntas de repaso y ejercicios 403
Parte 6 Sistemas integrados
Capítulo 13 Sistemas operativos integrados 406
p>13.1 Integrados sistemas 406
13.2 Características de los sistemas operativos integrados 407
13.2.1 Migración de sistemas operativos comerciales existentes 408
13.2.2 Integrados diseñados específicamente
6.10.4 Sistema operativo 408
13.3 eCos 409
13.3.1 Configurabilidad 409
13.3.2 Componente eCos 411
13.3.3 Programador eCos 414
13.3.4 Sincronización de subprocesos eCos 415
13.4 TinyOS 419 p>
13.4.1 Red de sensores inalámbricos 420
13.4.2 Objetivos de TinyOS 420
13.4.3 Componentes de TinyOS 421
13.4.4 Programador de TinyOS 423
13.4.5 Ejemplo de configuración 423
13.4.6 Interfaz de recursos de TinyOS 425
13.5 Lecturas y sitio web recomendados 426
13.6 Términos clave, preguntas de repaso y ejercicios 426
Parte 7 Seguridad
Capítulo 14 Amenazas a la seguridad informática 430
14.1 Conceptos de seguridad informática 430
14.2 Amenazas, ataques y activos 431
14.2 .1 Amenazas y ataques 431
14.2.2 Amenazas y activos 432
14.3 Intrusos 434
14.3.1 Patrones de comportamiento de intrusos 435
14.3.2 Técnicas de intrusión 437
14.4 Descripción general del malware 437
14.4.1 Puerta trasera 437
14.4.2 Bomba lógica 438
14.4.3 Caballo de Troya 438
14.4.4 Código móvil 438
14.4.5 Malware multiamenaza 439
14.5 Virus, gusanos y zombies 440 p>
14.5.1 Virus 440
14.5.2 Gusanos 443
14.5.3 Zombis 445
14.6 rootkits 447
14.6.1 Instalación de Rootkit 447
14.6.2 Ataques de llamadas a nivel de sistema 447
p>
14.7 Lecturas y sitios web recomendados 448
14.8 Términos clave, preguntas de repaso y ejercicios 448
Capítulo 15 Tecnología de seguridad informática 451
15.1 Autenticación de identidad 451
15.1.1 Métodos de autenticación 451
15.1.2 Autenticación basada en contraseña 451
15.1.3 Autenticación basada en token 453
15.1.4 Autenticación biométrica 454
15.2 Control de acceso 455
15.2.1 Control de acceso discrecional 456
15.2.2 Control de acceso basado en roles 458 p>
15.3 Detección de intrusiones 460
15.3.1 Principios básicos 460
15.3.2 Tecnología de detección de intrusiones basada en host 461
15.3.3 Auditoría registros 462
15.4 Defensa contra malware 463
15.4.1 Métodos antivirus 463
15.4.2 Contramedidas contra gusanos 465 p>
15.4. 3 Contramedidas para agentes automatizados 466
15.4.4 Contramedidas de rootkit 466
15.5 Manejo de ataques de desbordamiento de búfer 467
15.5 1 Defensa en tiempo de compilación 467
15.5.2 Defensa en tiempo de ejecución 469
15.6 Seguridad de Windows Vista 470
15.6.1 Esquema de control de acceso 470
15.6.2 Token de acceso 471
15.6.3 Descriptor de seguridad 471
15.7 Lectura recomendada y sitio web 474
15.8 Términos clave, preguntas de revisión y ejercicio 475
Parte 8 Sistemas distribuidos
Capítulo 16 Procesamiento distribuido, cliente/servidor y
Capítulo 16 Clúster 481
16.1 Modelo informático cliente/servidor 481
16.1.1 Qué es Cliente/Servidor
16.1.1 Modelo de Computación 481
16.1.2 Cliente/Aplicación del modelo de servidor 482
16.1.3 Middleware 486
16.2 Mensajería distribuida 487
16.2.1 Fiabilidad y falta de fiabilidad 488 p>
16.2.2 Bloqueo y no bloqueo 488
16.3 Llamada a procedimiento remoto 489
16.3.1 Paso de parámetros 490
16.3.2 Representación de parámetros 490
16.3.3 Enlace cliente/servidor 490
16.3.4 Sincronización y asincronía 490
16.3.5 Mecanismo orientado a objetos 491
16.4 Clúster 491
16.4.1 Configuración del clúster 491 p>
16.4.2 Problemas de diseño del sistema operativo 493
16.4.3 Arquitectura de la computadora del clúster 494
16.4.4 Comparación entre el clúster y SMP 495
16.5 Servidor de clúster de Windows 495
16.6 Clúster de Sun 496
16.6.1 Soporte de comunicación y objetos 497
16.6.2 Gestión de procesos 497
16.6.3 Conexión de red 497
16.6.4 Sistema de archivos global 498
16.7 Beowulf y Linux Cluster 498
16
.7.1 Características de Beowulf 498
16.7.2 Software Beowulf 499
16.8 Resumen 500
16.9 Lecturas y sitios web recomendados 500
16.10 Clave Terminología, preguntas de repaso y ejercicios 501
Apéndice A Temas de concurrencia 503
Apéndice B Diseño orientado a objetos 516
Apéndice C Programación y proyectos de sistemas operativos 523
Glosario 528
Referencias 536
Índice de contenidos de la versión en inglés
Capítulo 1 Descripción general del sistema informático 1
1.1 Elementos Básicos 1
1.2 Registros del Procesador 2
1.3 Ejecución de Instrucciones 5
1.4 Interrupciones 8
1.5 La Jerarquía de la Memoria 19
1.6 Memoria caché 22
1.7 Técnicas de comunicación de E/S 26
1.8 Lecturas y sitios web recomendados 29
1.9 Términos clave, preguntas de revisión y Problemas 30
Apéndice 1A Características de rendimiento de la memoria de dos niveles 32
Apéndice 1B Control de procedimientos 39
Capítulo 2 Descripción general del sistema operativo 43
2.1 Objetivos y funciones del sistema operativo 43
2.2 La evolución de los sistemas operativos 47
2.3 Principales logros 56
2.4 Desarrollos que conducen a los sistemas operativos modernos 69 p>
2.5 Descripción general de Microsoft Windows 72
2.6 Sistemas UNIX tradicionales 82
2.7 Sistemas UNIX modernos 85
2.8 Linux 86
2.9 Lecturas y sitios web recomendados 93
2.10Términos clave, preguntas de revisión y problemas 95
Capítulo 3 Descripción y control del proceso 97
3.1 ¿Qué es un ¿Proceso? 97
3.2 Estados del proceso 100
3.3 Descripción del proceso 115
3.4 Control del proceso 124
3.5 Ejecución del sistema operativo 129 p> p>
3.6 Sí
Problemas de seguridad 132
3.7 Gestión de procesos UNIX SVR4 136
3.8 Resumen 141
3.9 Lectura recomendada 142
3.10Términos clave, preguntas de revisión, y problemas 142
Programación del proyecto uno Desarrollo de un Shell 146
Capítulo 4 Subprocesos, SMP y micronúcleos 149
4.1 Procesos y subprocesos 149
4.2 Multiprocesamiento simétrico (SMP) 163
4.3 Microkernels 167
4.4 Gestión de subprocesos y SMP de WindowsVista 173
4.5 Gestión de subprocesos y SMP de Solaris 178
4.6 Gestión de procesos y subprocesos de Linux 183
4.7 Resumen 186
4.8 Lectura recomendada 187
4.9 Términos clave, preguntas de revisión y problemas 188
Capítulo 5 Concurrencia: exclusión mutua y sincronización 193
5.1 Principios de concurrencia 194
5.2 Exclusión mutua: soporte de hardware 203
5.3 Semáforos 206 p> p>
5.4 Monitores 219
5.5 Transmisión de mensajes 226
5.6 Problema de lectores/escritores 232
5.7 Resumen 236
5.8 Lectura recomendada 237
5.9 Términos clave, preguntas de repaso y problemas 238
Capítulo 6 Concurrencia: punto muerto y hambre 249
6.1 Principios del punto muerto 249
6.2 Prevención de interbloqueos 258
6.3 Prevención de interbloqueos 259
6.4 Detección de interbloqueos 265
6.5 Una estrategia integrada de interbloqueos 267
6.6 Problema de Dining Philosophers 268
6.7 Mecanismos de concurrencia de UNIX 272
6.8 Mecanismo de concurrencia del kernel de Linux
s 275
6.9 Primitivas de sincronización de subprocesos de Solaris 281
6.10 Mecanismos de concurrencia de Windows Vista 284
6.11Resumen 288
6.12Lectura recomendada 288
6.13Términos clave, preguntas de revisión y problemas 289
Capítulo 7 Administración de la memoria 295
7.1 Requisitos de administración de la memoria 295
7.2 Partición de la memoria 298
7.3 Paginación 309
7.4 Segmentación 313
7.5 Problemas de seguridad 314
7.6 Resumen 318
7.7 Lectura recomendada 318
7.8 Términos clave, preguntas de repaso y problemas 319
Apéndice 7A Carga y vinculación 321
Capítulo 8 Memoria virtual 328
8.1 Estructuras de hardware y control 328
8.2 Software del sistema operativo 347
8.3 Administración de memoria de UNIX y Solaris 365
8.4 Administración de memoria de Linux 371
8.5 Administración de memoria de WindowsVista 373
8.6 Resumen 376
8.7 Lecturas y sitios web recomendados 377
8.8 Términos clave, preguntas de revisión y problemas 378
Apéndice 8A Tablas hash 382
Capítulo 9 Programación monoprocesador 386
9.1 Tipos de programación 386
9.2 Algoritmos de programación 390
9.3 Programación tradicional de UNIX 412
9.4 Resumen 414
9.5 Lectura recomendada 414
9.6 Términos clave, preguntas de repaso y problemas 415
Apéndice 9A Tiempo de respuesta 418
Apéndice 9B Sistemas de colas 420
Proyecto de programación dos The HOST Dispatcher Shell 427
Capítulo
er 10 Programación multiprocesador y en tiempo real 432
10.1 Programación multiprocesador 432
10.2 Programación en tiempo real 445
10.3 Programación en Linux 460
10.4 Programación UNIX FreeBSD 464
10.5Programación Windows Vista 466
10.6 Resumen 469
10.7 Lectura recomendada 469
10.8 Términos clave, Preguntas de revisión y problemas 470
Capítulo 11 Administración de E/S y programación de discos 473
11.1 Dispositivos de E/S 473
11.2 Organización de E/S Función 474
11.3 Problemas de diseño del sistema operativo 478
11.4 Almacenamiento en búfer de E/S 481
11.5 Programación de disco 484
11.6 RAID 491
11.7 Caché de disco 500
11.8 E/S de UNIX FreeBSD 503
11.9 E/S de Linux 506
11.10 E/S de WindowsVista 510
11.11Resumen 513
11.12 Lectura recomendada 513
11.13Términos clave, preguntas de revisión y problemas 515
Apéndice 11A Dispositivos de almacenamiento en disco 517
Capítulo 12 Administración de archivos 528
12.1 Descripción general 528
12.2 Organización y acceso a archivos 534
12.3 Directorios de archivos 538
12.4 Compartir archivos 543
12.5Bloqueo de registros 544
12.6Administración de almacenamiento secundario 546
12.7Seguridad del sistema de archivos 554
12.8 Administración de archivos UNIX 556
12.9 Administración de archivos Linux 563
12.10Sistema de archivos WindowsVista 567
12.11Resumen 573
12.12 Lectura recomendada 573
12.13Términos clave, preguntas de repaso y problemas 574
Glosario 5
77
Referencias 587