SISTEMAS
SISTEMAS
OPERATIVOS
OPERATIVOS
MODERNOS
MODERNOS
3ª edición
3ª edición
TANENBAUM
TANENBAUM
ANDREW S. TANENBAUM
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 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
M
M
O
O
D
D
E
E
R
R
N
N
O
O
S
S
O
O
P
P
E
E
R
R
A
A
T
T
I
I
V
V
O
O
S
S
S
S
I
I
S
S
T
T
E
E
M
M
A
A
S
S
ISBN 978-607-442-046-3
3ª edición
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
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
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
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
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
Para Suzanne, Barbara, Marvin y a la memoria de Bram y Sweetie
CONTENIDO
PREFACIO
1 INTRODUCCIÓN
xxiv
1
1.1
1.2
1.3
¿QUÉ ES UN SISTEMA OPERATIVO?
1.1.1 El sistema operativo como una máquina extendida
1.1.2 El sistema operativo como administrador de recursos
3
4
HISTORIA DE LOS SISTEMAS OPERATIVOS
1.2.1 La primera generación (1945 a 1955): tubos al vacío
1.2.2 La segunda generación (1955 a 1965): transistores
7
y sistemas de procesamiento por lotes
8
6
7
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
19
19
23
REVISIÓN DEL HARDWARE DE COMPUTADORA
1.3.1 Procesadores
1.3.2 Memoria
1.3.3 Discos
1.3.4 Cintas
1.3.5 Dispositivos de E/S
1.3.6 Buses
1.3.7 Arranque de la computadora
26
27
30
27
33
vii
viii
1.4
1.5
1.6
1.7
1.8
CONTENIDO
35
35
37
33
LOS TIPOS DE SISTEMAS OPERATIVOS
34
1.4.1 Sistemas operativos de mainframe
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
1.4.8 Sistemas operativos en tiempo real
1.4.9 Sistemas operativos de tarjetas inteligentes
36
36
37
38
CONCEPTOS DE LOS SISTEMAS OPERATIVOS
1.5.1 Procesos
1.5.2 Espacios de direcciones
1.5.3 Archivos
40
1.5.4 Entrada/salida
1.5.5 Protección
1.5.6 El shell
1.5.7 La ontogenia recapitula la filogenia
43
40
44
44
46
49
LLAMADAS AL SISTEMA
1.6.1 Llamadas al sistema para la administración de procesos
1.6.2 Llamadas al sistema para la administración de archivos
1.6.3 Llamadas al sistema para la administración de directorios
1.6.4 Miscelánea de llamadas al sistema
59
1.6.5 La API Win32 de Windows
58
52
56
57
62
62
ESTRUCTURA DE UN SISTEMA OPERATIVO
1.7.1 Sistemas monolíticos
1.7.2 Sistemas de capas
1.7.3 Microkernels
1.7.4 Modelo cliente-servidor
1.7.5 Máquinas virtuales
67
1.7.6 Exokernels
63
67
71
64
72
EL MUNDO SEGÚN C
1.8.1 El lenguaje C
72
1.8.2 Archivos de encabezado
1.8.3 Proyectos de programación extensos
1.8.4 El modelo del tiempo de ejecución
73
74
75
1.9
INVESTIGACIÓN ACERCA DE LOS SISTEMAS OPERATIVOS
76
1.10
DESCRIPCIÓN GENERAL SOBRE EL RESTO DE ESTE LIBRO
77
CONTENIDO
1.11
UNIDADES MÉTRICAS
78
1.12
RESUMEN
79
2 PROCESOS E HILOS
ix
83
2.1
2.2
2.3
2.4
83
PROCESOS
2.1.1 El modelo del proceso
2.1.2 Creación de un proceso
2.1.3 Terminación de procesos
2.1.4 Jerarquías de procesos
2.1.5 Estados de un proceso
2.1.6 Implementación de los procesos
91
2.1.7 Modelación de la multiprogramación
84
86
88
89
90
93
95
95
104
100
HILOS
2.2.1 Uso de hilos
2.2.2 El modelo clásico de hilo
2.2.3 Hilos en POSIX
2.2.4 Implementación de hilos en el espacio de usuario
2.2.5 Implementación de hilos en el kernel
2.2.6 Implementaciones híbridas
2.2.7 Activaciones del planificador
2.2.8 Hilos emergentes
2.2.9 Conversión de código de hilado simple a multihilado
109
110
112
111
117
120
119
117
COMUNICACIÓN ENTRE PROCESOS
2.3.1 Condiciones de carrera
2.3.2 Regiones críticas
2.3.3 Exclusión mutua con espera ocupada
2.3.4 Dormir y despertar
2.3.5 Semáforos
128
2.3.6 Mutexes
2.3.7 Monitores
2.3.8 Pasaje (transmisión) de mensajes
2.3.9 Barreras
130
125
134
144
140
145
PLANIFICACIÓN
2.4.1 Introducción a la planificación
2.4.2 Planificación en sistemas de procesamiento por lotes
2.4.3 Planificación en sistemas interactivos
2.4.4 Planificación en sistemas de tiempo real
145
160
154
106
114
152
x
CONTENIDO
2.4.5 Política contra mecanismo
2.4.6 Planificación de hilos
162
161
2.5
2.6
2.7
PROBLEMAS CLÁSICOS DE COMUNICACIÓN
ENTRE PROCESOS (IPC)
2.5.1 El problema de los filósofos comelones
2.5.2 El problema de los lectores y escritores
164
167
163
INVESTIGACIÓN ACERCA DE LOS PROCESOS E HILOS
168
RESUMEN
169
3 ADMINISTRACIÓN DE MEMORIA
175
3.1
3.2
SIN ABSTRACCIÓN DE MEMORIA
176
UNA ABSTRACCIÓN DE MEMORIA:
ESPACIOS DE DIRECCIONES
179
3.2.1 La noción de un espacio de direcciones
3.2.2 Intercambio
3.2.3 Administración de memoria libre
181
184
3.3 MEMORIA VIRTUAL
188
3.3.1 Paginación
189
3.3.2 Tablas de páginas
3.3.3 Aceleración de la paginación
3.3.4 Tablas de páginas para memorias exten
Comentarios de: Sistemas operativos modernos (5)
Excelente aporte