Andrew s. Tanenbaum



Descargar 4,35 Mb.
Ver original pdf
Página1/134
Fecha de conversión12.11.2019
Tamaño4,35 Mb.
  1   2   3   4   5   6   7   8   9   ...   134

ANDREW S. TANENBAUM

ANDREW S. TANENBAUM

TANENBAUM

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 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.

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ácti-

ca 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.

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 disposi-

tivos 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 oportu-

nidad.

• 

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.



Para mayor información visite la página Web:

www.pearsoneducacion.net/tanenbaum 

3ª edición

SISTEMAS

OPERATIVOS 

MODERNOS

3ª edición

SISTEMAS

OPERATIVOS 

MODERNOS

SISTEMAS

OPERATIVOS 

MODERNOS

SISTEMAS

OPERATIVOS 

MODERNOS

3ª edición

ISBN 978-607-442-046-3



SISTEMAS OPERATIVOS

MODERNOS

TERCERA EDICIÓN

Principios y Paradigmas

Segunda edición



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

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:luis.cruz@pearsoned.com

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,

Cover Illustrator: Steve Lefkowitz

and Advanced Mathematics: Marcia J. Horton

Interior design: Andrew S. Tanenbaum

Executive Editor: Tracy Dunkelberger

Typesetting: Andrew S. Tanenbaum

Editorial Assistant: Melinda Haggerty

Art Director: Kenny Beck

Associtate Editor: ReeAnne Davis

Art Editor: Gregory Dulles

Senior Managing Editor: Scott Disanno

Media Editor: David Alick

Production Editor: Irwin Zucker

Manufacturing Manager: Alan Fischer

Cover Concept: Andrews S. Tanenbaum and Tracy Dunkelberger

Manufacturing Buyer: Lisa McDowell

Cover Design: Tamara Newman

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, foto-

quí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

Datos de catalogación bibliográfica



TANENBAUM, ANDREW S. 



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


Para Suzanne, Barbara, Marvin y a la memoria de Bram y Sweetie 




CONTENIDO

PREFACIO

xxiv

1

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

19

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

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

35

1.4.5 Sistemas operativos de computadoras de bolsillo



35

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

1.5


CONCEPTOS DE LOS SISTEMAS OPERATIVOS

37

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

62

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

viii



CONTENIDO

CONTENIDO

ix

1.11


UNIDADES MÉTRICAS

78

1.12



RESUMEN

79

2



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

152

2.4.3  Planificación en sistemas interactivos



154

2.4.4  Planificación en sistemas de tiempo real

160


2.4.5  Política contra mecanismo

161


2.4.6  Planificación de hilos

162


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

168

2.7


RESUMEN

169


3

ADMINISTRACIÓN DE MEMORIA

175

3.1


SIN ABSTRACCIÓN DE MEMORIA

176


3.2

UNA ABSTRACCIÓN DE MEMORIA: 

ESPACIOS DE DIRECCIONES

179


3.2.1  La noción de un espacio de direcciones

180


3.2.2  Intercambio

181


3.2.3 Administración de memoria libre

184


3.3

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

198

3.4


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

x

CONTENIDO


CONTENIDO

xi

3.5


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



216

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

3.6


CUESTIONES DE IMPLEMENTACIÓN

227


3.6.1 Participación del sistema operativo en la paginación

227


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

248


4

SISTEMAS DE ARCHIVOS

255

4.1


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


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


5

ENTRADA/SALIDA

329

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


xii

CONTENIDO

CONTENIDO

xiii

5.2


FUNDAMENTOS DEL SOFTWARE DE E/S

343


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



353

5.3.4  Software de E/S en espacio de usuario

359

5.4


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

379


5.4.4 Manejo de errores

382


5.4.5  Almacenamiento estable

385


5.5

RELOJES


388

5.5.1  Hardware de reloj

388

5.5.2  Software de reloj



390

5.5.3  Temporizadores de software

393

5.6


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 

415


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



424

5.9


INVESTIGACIÓN ACERCA DE LA E/S

425


5.10

RESUMEN


426

6

INTERBLOQUEOS

433

6.1


RECURSOS

434


6.1.1 Recursos apropiativos y no apropiativos

434


6.1.2  Adquisición de recursos

435


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

441


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

451


6.5.4  El algoritmo del banquero para varios recursos

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

458


6.7.3  Bloqueo activo

459


6.7.4  Inanición

461


6.8

INVESTIGACIÓN SOBRE LOS INTERBLOQUEOS

461

6.9


RESUMEN

462


7

SISTEMAS OPERATIVOS MULTIMEDIA

467

7.1


INTRODUCCIÓN A MULTIMEDIA

468


7.2

ARCHIVOS DE MULTIMEDIA

472

7.2.1  Codificación de video



473

xiv

CONTENIDO

CONTENIDO



Compartir con tus amigos:
  1   2   3   4   5   6   7   8   9   ...   134


La base de datos está protegida por derechos de autor ©absta.info 2019
enviar mensaje

    Página principal