Segunda edicién
| H. M. Deitel
UNIX « OS/2
MS-DOS
Macintosh’ « VM
Ae S ¢ Sistemas aupes th eIntroduccién a los
Sistemas operativos
Me ee
Segunda edicién
HARVEY M. DEITEL
Boston College
Versién en espatiol de .
Roberto Escalona Garcia
México
Con la colaboracién de
Inaki Alegefa Loinaz,
Alberto Lafuente Rojo y
Clemente Rodrigue Lafuente
Universidad del Pais Vasco,
Espaia
a
‘VY ADDISON-WESLEY IBEROAMERICANA
Argentina + Brasil - Chile - Colombia - Ecuador « Espaiia
Estados Unidos - México » Perti - Puerto Rico - VenezuelaPrefacio
EI presente texto se ha escrito para utilizarse en los cursos de uno 0 dos scmestres sobre.
sistemas opcrativos (en el programa de estudios mas reciente de la ACM) que las
universidades ofrecen en tercero 0 cuarto afto de la carrera de informatica, 0 cn estudios
de posgrudo. Los disefiadores de sistemas operativos y los programadores de sistemas
también lo encoatraran titi como fibro de consulta,
Sicte detallados estudios de casos hacen que el libro sea Gnico entre los textos sobre
sistemas operativos. Seis de ellos cubrcn sistemas operativos que tendran gran importancia
en los afios noventa: Los sistemas UNIX, MS-DOS, MVS, VM, Macintosh y OS/2. Cada
uno de los sistemas posee cierto “sabor" que me he esforzado en comunicar. Asi mismo,
‘cada uno tiene su propia prominencia especial cn el mercado de los sistemas operativos. Un
séptimo estudio de caso (véase el capitulo 16) analiza cl modelo de referencia de la
interconexién de sistemas abiertos (OSI) para redes de computadores; conocer OSI resulta
indispensable para los invcstigadores, disefladores y programadores que trabajan en el
‘campo de los sistemas operativos durante la presente década.
La riqueza de los estudios de casos ofrece, material para comparar las diferentes
filosofias de disefio y realizacin empleadas en los sistemas operativos contempordincos. Los
estudios de casos abarcan la gama completa desde sistemas operativos de computadores
personales como MS-DOS, OS/2 y el sistema operative del Apple Macintosh, hasta sistemas
operativos de macrocomputadores como MVS y VM. Incluyen sistemas de almacenamicnto
real y almacenamiento virtual, sistemas de maquina real y m4quina virtual, sistemas de un
‘solo usuario y multinsuario, sistemas independientes, sistemas de multiprocesamiento y
sistemas en red, Ademés, incluyen un andlisis muy detallado de los sistemas UNIX y las
razones por las que han fogrado una extraordinaria posicién de prominencia en las tres
filosofias de sistemas abiertos de importantes corporaciones.
Se incluyen ocho partes principales; cada parte conticne varios capitulos rela-
cionados entre sf. Cada capitulo comienza con un perfil para que el lector se vaya
familiarizando con el material en forma progresiva. Sc utilizan varias citas para
introducir cada capitulo; algunas son humoristicas, otras son material de reflexién, pero.
todas tienen Ia intencién de humanizar el wcxto y afiadirle un toque filosdfico,
1.08 términos importantes, los conceptos principales y algunos enunciados significativos
se presentan en cursivas. Casi todos los capitulos incluyen un resumen de conceptos e ideas
importantes a manera de repaso. Se incluyen scccioncs de terminologia con los términos
clave presentados en orden alfabético. Todos los capflulos incluycn diversos ejercicios cuyaviii Prefacio
dificultad varia desde un simple repaso del material, pasando por un razonamiento complejo
a partir de principios bisicos, hasta proyectos sustanciales de simulacién y uabajos de
investigaci6n. I.as secciones de bibliograffa estn localizadas; cada capitulo termina con una
lista de libros y articulos relacionados con cl tina. Un amplio indice ofrece acceso rapido
por palabra clave a priicticamente cualquier tema del libro.
El texto contiene 220 gréficas, diagramas ¢ ilustracioncs; 747 ejercicios, y siete
detallados estudios de casos. Cada capitulo incluye una bibliograffa muy completa: se
hace referencia a 1600 libros y articulos. Se destacan mas de 1800 términos en las
secciones de terminologfa que van al final de los capftulos, (Como dato curioso para los
interesados, cl texto contiene 2.5 millones de caractercs.)
En la parte 1 se introduce fa nocién de sistemas operativos, se presenta una historia
de los sistemas operativos y se analizan el hardware, el software y el firmware. EI
capftulo I establcce ef tono del libro presentando los temas principales como la
computacion distribuida, la computacién en paralelo, Jas normas de sistemas abiertos,
cuestiones éticas en el disefio de sistemas, el surgimiento de UNIX como sistema
operative decisivo en las estrategias de sistemas abiertos de organizaciones de primera
Ifnea, y la importancia de apoyar las bases establecidas de aplicaciones en los nuevos
sistemas. El capitulo 2 cs una revisién de conceptos clave en hardware, software y
firmware esenciales para el resto del texto, Destaca la importancia de las arquitecturas de
computacién con un conjunto reducido de instrucciones (RISC) y menciona el debate
de RISC frente a CISC (computacién con un conjunto complejo de instrucciones)
analizado en detalle en el capitulo 14, Incluye un estudio de caso detallado sobre
microprogramacién, Io cual tiene importancia especial porque en los disciios recientes
‘gran parte del sistema operativo ha migrado al microcédigo.
La parte 2 presenta las nociones de proceso, transiciones de estado de los procesos,
interrupciones, cambio de contexto, estructura de sistemas operativos, asincronfa,
exclusi6n mutua, supervisores y bloqueo mutuo, En el capitulo 3 se introducen diversos
conceptus relativos a los procesos y se analiza 1a estructura de interrupciones de los
Pprocesadores a gran escala de IBM; este material es vital para los andlisis de los sistemas
operativos MVS y VM de los estudios de casos. Las nociones de procesos ¢ hilos se
refuerzan con. los andlisis de realizaciones practicas cn los estudios de casos de los
capitulos 18 a 23, y especialmente en los que tralan sobre sistemas UNIX (capitulo 18) y
OS/2 (capitulo 23). El capttulo 4 presenta el concepto de asincronta. Se analizan los
problemas que surgen por el acccso simulténeo a recursos compartidos y sc presentan
diversas técnicas de exclusién mutua, orientadas tanto al hardware como al software,
para abordar dichos problemas, El capitulo presenta el desarrollo cldsico de Dijkstra det
algoritmo de Dekker, muestra el algoritmo de Peterson, més eficicate, ¢ incluye andlisis
detallados de las cuentas de eventos y mecanismos para ejecucién secuencial.
En el capitulo 5 se analizan los supervisores y su empleo para resolver cicrtos
problemas clasicos de concurrencia; se presentan las realizaciones de supervisores de buffer
circular y de lectores y escritores. Se examina la programacién concurrente en ambicntes de
Procesamiento distribuido, analizando la transfcrencia de mensajes, los buzones, puertos,
conductos y llamadas a procedimicntos remotos. £1 capitulo contintia con una introduccién a
Ia programacién concurrent en Ada, lenguaje patrocinado por el gobierno de los Estadosx!
eae
Pretacio ix
Unidos para el desarrollo de sistemas criticos para misiones, Se analizan las expresiones de
trayectoria, asf como la simulaci6n de estas expresiones en Ada. El capitulo concluye con un
— andlisis de las preocupaciones fundamentales de los disefladores de sistemas que wabajan
con el Ienguaje Ada, Muchos de los segmentos de programa en Ada presentados se basan en
ejemplos de Preliminary Ada Reference Manual, Sigplan Notices, vol. 14, wim. 6, junio de
1979, pane A, y Rationale for the Design of the Ada Programming Language, por J. D.
Ichbiah, J. C. Heliard, O. Roubine, J. G. P. Bames, B. Krieg-Bmeckner y B, A. Wichmann,
Sigplan Notices, vol. 14, mim. 6, junio de 1979, parte B (“El gobiemo de Estados Unidos de
América concede libre permiso para reproducir este documento con el propésito de evaluar
y utilizar ef tenguaje Ada”). (Ada® es una marca registrada del gobierno de Fstados Unidos,
‘Ada Joint Program Office.)
El capitulo 6 explica el concepto de bloqueo mutuo que ocurre cuando varios
procesos no pueden continuar porque estén esperando eventos que nunca sucederén. En
este capitulo se analizan las principales dreas de investigaciGn sobre el tema del bloquco
mutuo y se presentan diversas formas de manejar el bloqueo mutuo y el problema afin
del aplazamiento indefinido. El capitulo incluye un andlisis detallado de la evitacién del
bloqueo mutuo por medio del algoriuno del banquero de Dijkstra. En el capitulo 4 se
introdujeron las nociones de bloqueo mutwo y aplazamiento indefinido al analizarse el
algoritmo de Dekker: en el capitulo 6 se formalizan dichos conceptos y las formas de i
manejarlos. La preocupacién primordial es que tos sistemas que manejan entidades on
espera deben diseftarse con sumo cuidado para evitar semejantes problemas,
En la parte 3 se analizan la administracién y la organizacin del almacenamiento en
sistemas de almacenamiento real y virtual. En el capitulo 7 se seguir el desarrollo de
Ios sistemas de almacenamiento real desde los sistemas dedicados de un solo usuario
a hasta las diversas formas de sistemas de multiprogramacién con particiones, Se analizan
: Ja asignaci6n de almacenamiento contigua y no contigua, la condensacisn, la compresién
y el intercambio. Los capitulos 8 y 9 tratan de la organizacién y la administracién del
almacenamiento real, respectivamente. En el capftulo 8 se presenta la motivacién para el
concepto de almacenamiento virtual y se analiza la reduccién de la informacién de
correspondencia de direcciones por medio de dos técnicas de correspondencia de blo-
ques: la paginacién y la segmentacion. Sc presenta un andlisis detaliado de la
organizacion del almacenamiento virtual y la traduecién de direcciones en sistemas
paginados/segmentados. ‘También se presentan los diversos métodos de compartimiento,
en sistemas de almacenamiento virtual y se sugicren algunas cuestiones sutiles. Fn el
capitulo 9 se analizan las diversas estrategias para administrar los sistemas de
almacenamicnto virtual. Se examinan las estrategias de obtencién, colocacién y
reemplazo; ast mismo, se analizan las estrategias de obtencién tanto por demanda como
anticipada. :1 capftulo se concentra cn las estrategias de reemplazo de paginas; examina
cl principio de optimatidad y varias estrategias de reemplazo de paginas: al azar, PEPS,
LRU, LFU, NUR, reemplazo de pagina del reloj, reemplazo de segunda oportunidad y
por frecuencia de falla de pagina. En seguida, se presenta la teorfa de conjunto de trabajo
de Denning sobre el comportamiento de los programas y se analiza el reemplazo de pagi-
nas por conjunto de trabajo. El capttulo termina con un andlisis del tamafio de las paginas
y el comportumiento de los programas en sistemas de paginacién. sis i