Sunteți pe pagina 1din 15

Sistemas operativos

Aspectos internos y principios de diseo

Sistemas operativos
Aspectos internos y principios de diseo

Quinta Edicin

WILLIAM STALLINGS

Traduccin y revisin tcnica


Jos Mara Pea Snchez Fernando Prez Costoya Mara de los Santos Prez Hernndez Vctor Robles Forcada Francisco Javier Rosales Garca Departamento de Arquitectura y Tecnologa de Sistemas Informticos Facultad de Informtica Universidad Politcnica de Madrid

Madrid Mxico Santaf de Bogot Buenos Aires Caracas Lima Montevideo San Juan San Jos Santiago So Paulo White Plains

Datos de catalogacin bibliogrfica

SISTEMAS OPERATIVOS William Stallings Pearson Educacin, S.A., Madrid, 2005 ISBN: 978-84-2055796-0 Materia: Informtica 681.3 Formato: 195 x 250 mm. Pginas: 872

Todos los derechos reservados. Queda prohibida, salvo excepcin prevista en la Ley, cualquier forma de reproduccin, distribucin, comunicacin pblica y transformacin de esta obra sin contar con autorizacin de los titulares de propiedad intelectual. La infraccin de los derechos mencionados puede ser constitutiva de delito contra la propiedad intelectual (arts. 270 y sgts. Cdigo Penal). DERECHOS RESERVADOS 2005 respecto a la primera edicin en castellano por: PEARSON EDUCACIN, S.A. C/ Ribera del Loira, 28 28042 Madrid (Espaa) SISTEMAS OPERATIVOS William Stallings ISBN: 84-205-4462-0 Depsito Legal: PEARSON PRENTICE HALL es un sello editorial autorizado de PEARSON EDUCACIN S.A. Authorized translation from the English language edition, entitled OPERATING SYSTEMS, 5th Edition by STALLINGS, WILLIAM, published by Peason Education, Inc, publishing as Prentice Hall, Copyright 2005. ISBN: 0-13-147954-7 All rights reserved. No part of this book may be reproduced or transmitted in any from or by any means, elecronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc.

Equipo editorial Editor: Miguel Martn-Romo Tcnico editorial: Marta Caicoya Equipo de produccin Director: Jos A. Clares Tcnico: Isabel Muoz Diseo de cubierta Equipo de diseo de Pearson Educacin, S.A. Impreso por IMPRESO EN ESPAA - PRINTED IN SPAIN
Este libro ha sido impreso con papel y tintas ecolgicos

Como siempre, a mi amada y genial esposa A. y a su leal compaero Geoffroi

vi

Contenido

PGINA WEB PARA SISTEMAS OPERATIVOS: ASPECTOS INTERNOS Y PRINCIPIOS DE DISEO, QUINTA EDICIN
La pgina web en WilliamStallings.com/OS/OS5e.html proporciona apoyo a profesores y estudiantes que utilicen este libro. Incluye los siguientes elementos.

MATERIAL PARA APOYO DE CURSOS

El material para apoyo de los cursos incluye: Copia de las figuras del libro en formato PDF. Copia de las tablas del libro en formato PDF. Un conjunto de transparencias PowerPoint para utilizarlas como ayuda en clase. Notas de clase en HTML que pueden servir como material de ayuda para el estudio. Pgina de Recursos del Estudiante de Informtica (Computer Science Student Resource Site): contienen gran nmero de enlaces y documentos que los estudiantes pueden encontrar tiles para su formacin en informtica. Esta pgina incluye una revisin de las matemticas bsicas relacionadas; consejos para la bsqueda de informacin, redaccin, y realizacin de problemas en casa; enlaces a repositorios de informacin de informtica, tales como informes y bibliografas; y otros enlaces de inters. Una hoja de erratas del libro, actualizada casi mensualmente.

DOCUMENTOS COMPLEMENTARIOS

Los documentos complementarios incluyen: Una copia en PDF de todos los algoritmos del libro en un pseudo-cdigo de tipo Pascal de fcil lectura. Material del libro relativo a Windows, UNIX, y Linux; reproducido en tres documentos PDF de fcil referencia. Varios documentos que amplan lo tratado en el libro. Incluye aspectos relativos a la complejidad de los algoritmos, estndares de Internet y Sockets.

CURSOS DE SISTEMAS OPERATIVOS

La pgina web de OS5e incluye enlaces a otras pginas de cursos impartidos usando este libro. Estas pginas pueden proporcionar guas tiles sobre cmo planificar y ordenar los temas tratados, as como un gran nmero de anotaciones y material diverso.

Contenido

vii

PGINAS WEB TILES

La pgina web de OS5e incluye tambin enlaces a otras pginas de inters. Los enlaces cubren un amplio espectro de temas y permitirn a los estudiantes explorar aspectos concretos con gran profundidad.
LISTA DE CORREO ELECTRNICO

Se mantiene una lista de correo para que los profesores que utilicen este libro puedan intercambiar informacin, sugerencias, y preguntas entre ellos y con el autor. La informacin de suscripcin se proporciona en la pgina web del libro.
PROYECTOS DE SISTEMAS OPERATIVOS

La pgina web incluye enlaces a las pginas de Nachos y BACI, que son dos paquetes software que sirven como entornos para implementacin de proyectos. Cada pgina incluye software para descargar con informacin de apoyo. Vase el Apndice C para ms informacin.

Contenido

ix

Contenido
Prlogo Captulo 0 0.1 0.2 0.3 xvii Gua del lector 1

Organizacin del libro 2 Orden de presentacin de los temas 3 Recursos en Internet y en la Web 4
7

PRIMERA PARTE: ANTECECENTES

Captulo 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9

Introduccin a los computadores

Elementos bsicos 10 Registros del procesador 11 Ejecucin de instrucciones 14 Interrupciones 17 La jerarqua de memoria 27 Memoria cache 30 Tcnicas de comunicacin de E/S 34 Lecturas y sitios web recomendados 37 Trminos clave, cuestiones de repaso y problemas 38 Apndice 1A Caractersticas de rendimiento de las memorias de dos niveles Apndice 1B Control de procedimientos 48 Introduccin a los sistemas operativos 53

41

Captulo 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10

Objetivos y funciones de los sistemas operativos 54 La evolucin de los sistemas operativos 58 Principales logros 67 Desarrollos que han llevado a los sistemas operativos modernos Descripcin global de Microsoft Windows 82 Sistemas UNIX tradicionales 91 Sistemas UNIX modernos 94 Linux 95 Lecturas y sitios web recomendados 101 Trminos clave, cuestiones de repaso y problemas 103

79

Contenido

SEGUNDA PARTE: PROCESOS

105

Captulo 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8

Descripcin y control de procesos

107

Qu es un proceso? 108 Estados de procesos 110 Descripcin de los procesos 126 Control de procesos 135 Gestin de procesos en UNIX SVR4 143 Resumen 149 Lecturas recomendadas 149 Trminos clave, cuestiones de repaso y problemas

150 154

Proyecto de programacin uno. Desarrollo de un intrprete de mandatos Captulo 4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 Captulo 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 Captulo 6 6.1 6.2 Hilos, SMP y microncleos 157

Procesos e hilos 158 Multiprocesamiento simtrico 172 Microncleos 176 Gestin de hilos y SMP en Windows 181 Gestin de hilos y SMP en Solaris 187 Gestin de procesos e hilos en Linux 193 Resumen 196 Lecturas recomendadas 196 Trminos clave, cuestiones de repaso y problemas Concurrencia. Exclusin mutua y sincronizacin Principios de la concurrencia 203 Exclusin mutua: soporte hardware 212 Semforos 215 Monitores 229 Paso de mensajes 235 El problema de los Lectores/Escritores 241 Resumen 245 Lecturas recomendadas 247 Trminos clave, cuestiones de repaso y problemas Concurrencia. Interbloqueo e inanicin Fundamentos del interbloqueo 258 Prevencin del interbloqueo 267 257

197 201

248

Contenido

xi

6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13

Prediccin del interbloqueo 269 Deteccin del interbloqueo 273 Una estrategia integrada de tratamiento del interbloqueo 277 El problema de los filsofos comensales 277 Mecanismos de concurrencia de UNIX 280 Mecanismos de concurrencia del ncleo de Linux 284 Funciones de sincronizacin de hilos de Solaris 291 Mecanismos de concurrencia de Windows 294 Resumen 296 Lecturas recomendadas 297 Trminos clave, cuestiones de repaso y problemas 297
305

TERCERA PARTE: MEMORIA

Captulo 7 7.1 7.2 7.3 7.4 7.5 7.6 7.7

Gestin de memoria

307

Requisitos de gestin de memoria 308 Particionamiento de la memoria 311 Paginacin 321 Segmentacin 325 Resumen 327 Lecturas recomendadas 327 Trminos clave, cuestiones de repaso y problemas Apndice 7A Carga y enlace 331 Memoria virtual 339

328

Captulo 8 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8

Hardware y estructuras de control 340 Software del sistema operativo 358 Gestin de memoria de UNIX y Solaris 378 Gestin de memoria en Linux 384 Gestin de memoria en Windows 386 Resumen 388 Lectura recomendada y pginas web 389 Trminos clave, cuestiones de repaso y problemas Apndice 8A Tablas Hash 395
399

390

CUARTA PARTE: PLANIFICACIN

Captulo 9 9.1 9.2

Planificacin uniprocesador

401 402

Tipos de planificacin del procesador Algoritmos de planificacin 406

xii

Contenido

9.3 9.4 9.5 9.6

Planificacin UNIX tradicional 427 Resumen 429 Lecturas recomendadas 431 Trminos clave, cuestiones de repaso y problemas Apndice 9A Tiempo de respuesta 436 Apndice 9B Sistemas de colas 438 444

431

Proyecto de programacin dos. El planificador de HOST Captulo 10 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8

Planificacin multiprocesador y de tiempo real Planificacin multiprocesador 452 Planificacin de tiempo real 463 Planificacin en Linux 477 Planificacin en UNIX SVR4 480 Planificacin en Windows 482 Resumen 484 Lecturas recomendadas 485 Trminos clave, cuestiones de repaso y problemas
489

451

485

QUINTA PARTE: ENTRADA/SALIDA Y FICHEROS

Captulo 11 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 11.10 11.11 11.12 11.13

Gestin de la E/S y planificacin del disco

491

Dispositivos de E/S 492 Organizacin del sistema de E/S 493 Aspectos de diseo del sistema operativo 496 Utilizacin de buffers de E/S 500 Planificacin del disco 503 RAID 511 Cache de disco 520 E/S de UNIX SVR4 522 E/S de Linux 527 E/S de Windows 530 Resumen 532 Lecturas y sitios web recomendados 532 Trminos clave, cuestiones de repaso y problemas 534 Apndice 11A Dispositivos de almacenamiento en disco Gestin de ficheros 547 553

537

Captulo 12 12.1 12.2

Descripcin bsica 548 Organizacin y acceso a los ficheros

Contenido

xiii

12.3 12.4 12.5 12.6 12.7 12.8 12.9 12.10 12.11 12.12

Directorios 559 Comparticin de ficheros 563 Bloques y registros 564 Gestin de almacenamiento secundario 566 Gestin de ficheros de UNIX 574 Sistema de ficheros virtual Linux 578 Sistema de ficheros de Windows 582 Resumen 587 Lecturas recomendadas 588 Trminos clave, cuestiones de repaso y problemas
591

589

SEXTA PARTE: SISTEMAS DISTRIBUIDOS Y SECURIDAD

Captulo 13 13.1 13.2 13.3 13.4 13.5 13.6 13.7

Redes

595

La necesidad de una arquitectura de protocolos 597 La arquitectura de protocolos TCP/IP 599 Sockets 605 Redes en Linux 609 Resumen 611 Lecturas y sitios web recomendados 611 Trminos clave, cuestiones de repaso y problemas 612 Apndice 13A El Protocolo simple de transferencia de ficheros Procesamiento distribuido, cliente/servidor y clusters Computacin cliente/servidor 620 Paso de mensajes distribuido 630 Llamadas a procedimiento remoto 633 Clusters 636 Servidor Cluster de Windows 642 Sun Cluster 643 Clusters de Beowulf y Linux 646 Resumen 648 Lecturas recomendadas y sitios web 648 Trminos clave, cuestiones de repaso y problemas Gestin de procesos distribuidos Migracin de procesos 654 Estados globales distribuidos 660 Exclusin mutua distribuida 665 653 619

614

Captulo 14 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 14.10 Captulo 15 15.1 15.2 15.3

650

xiv

Contenido

15.4 15.5 15.6 15.7 Captulo 16 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9

Interbloqueo distribuido 675 Resumen 685 Lecturas recomendadas 685 Trminos clave, cuestiones de repaso y problemas Seguridad 689

686

Amenazas de seguridad 690 Proteccin 695 Intrusos 701 Software malicioso 713 Sistemas confiables 722 Seguridad en Windows 725 Resumen 731 Lecturas recomendadas y sitios web 732 Trminos clave, cuestiones de repaso y problemas Apndice 16A Cifrado 736
743

733

APNDICES

Apndice A A.1 A.2 A.3 A.4 Apndice B B.1 B.2 B.3 B.4 B.5 Apndice C C.1 C.2 C.3 C.4 C.5

Temas de concurrencia

743

Exclusin mutua. Tcnicas de software 744 Condiciones de carrera y semforos 748 El problema de la barbera 758 Problemas 763 Diseo orientado a objetos 765

Motivacin 766 Conceptos de orientacin a objetos 767 Beneficios del diseo orientado a objetos 771 CORBA 772 Lecturas y sitios web recomendados 775 Proyectos de programacin y de sistemas operativos Proyectos para la enseanza de sistemas operativos NACHOS 779 Proyectos de investigacin 780 Proyectos de programacin 780 Tareas de lectura y de anlisis 781 778 777

S-ar putea să vă placă și