1. SISTEMAS OPERATIVOS Digitalizacin con propsito acadmico
Sistemas Operativos
2. SISTEMAS OPERATIVOS Segunda edicin William Stallings
Traduccin: Juan Manuel Dodero Beardo Enrique Torres Franco Facultad
y Escuela de Informtica Universidad Pontificia de Salamanca en
Madrid Miguel Katrib Mora Facultad de Matemtica y Computacin
Universidad de la Habana Revisin tcnica: Luis Joyanes Aguilar
Facultad y Escuela de Informtica Universidad Pontificia de
Salamanca en Madrid P R E N T I C E H A L L Madrid Mxico Santaf de
Bogot Buenos Aires Caracas Lima Montevideo San Juan San Jos
Santiago Sao Paulo White Plas Digitalizacin con propsito acadmico
Sistemas Operativos
3. datos de colocacin bibliogrfica STALLINGS W., Sistemas
Operativos, 2ed. P R E N T I C E H A L L. Madrid, 1997 ISBN:
84-89660-22-0 Materia: Informtica 681.3 Formato 200 x 250mm Pginas
732 WILLIAM STALLINGS Sistemas Operativos, 2ed No esta permitida la
reproduccin total o parcial de esta obra ni su tratamiento o
transmisin por cualquier medio o mtodo sin autorizacin escrita de
la Editorial. DERECHOS RESERVADOS 1997 respecto a la primera edicin
en espaol por: PEARSON EDUCACIN, S.A. C/ Nez de Balboa, 120 28006
Madrid ISBN: 84-89660-22-0 Depsito legal: M. 20.979-2000 5.a
reimpresin, 2000 Traducido de: OPERATING SYSTEMS. Second edition. P
R E N T I C E H A L L, INC.- Simn & Schuster Intemational Group
Copyright MCMXCV ISBN: 0-13-180977-6 Editor de la edicin en espaol:
Andrs Otero Diseo de cubierta: DIGRAF Composicin: ENYCE Impreso
por: FARESO S.A IMPRESO EN ESPAA - PRINTED IN SPAIN Este libro ha
sido impreso con papel y tintas ecolgicos Digitalizacin con
propsito acadmico Sistemas Operativos
4. Contenido PRLOGO CAPTULO 1 INTRODUCCIN A LOS SISTEMAS
INFORMTICOS............ 1 1.1 Elementos
bsicos...............................................................................................
1 1.2 Registros del
procesador.....................................................................................
2 1.3 Ejecucin de
instrucciones..................................................................................
5 1.4
Interrupciones.....................................................................................................
9 1.5 Jerarqua de
memoria..........................................................................................
20 1.6 Memoria
cach....................................................................................................
25 1.7 Tcnicas de comunicacin de
E/S.......................................................................
29 1.8 Lecturas
recomendadas.......................................................................................
33 1.9
Problemas............................................................................................................
34 APNDICE 1A Rendimiento de las memorias a dos
niveles......................................... 35 APNDICE IB
Control de
procedimientos.....................................................................
41 CAPTULO 2 INTRODUCCIN A LOS SISTEMAS
OPERATIVOS.................. 47 2.1 Funciones y objetivos de los
sistemas operativos...............................................
47 2.2 Evolucin de los sistemas operativos
.................................................................
51 2.3 Logros
principales...............................................................................................
62 2.4 Sistemas de
ejemplo............................................................................................
75 2.5 Visin general del resto del libro
........................................................................
90 2.6 Lecturas
recomendadas.......................................................................................
93 2.7
Problemas............................................................................................................
96 CAPTULO 3 DESCRIPCIN Y CONTROL DE
PROCESOS........................... 97 3.1 Estados de un
proceso.........................................................................................
98 3.2 Descripcin de procesos
.....................................................................................
116 3.3 Control de procesos
............................................................................................
125 vii Digitalizacin con propsito acadmico Sistemas
Operativos
5. viii Contenido 3.4 Procesos e
hilos.................................................................................................
135 3.5 Ejemplos de descripcin y control de
procesos................................................ 141 3.6
Resumen............................................................................................................
155 3.7 Lecturas
recomendadas.....................................................................................
155 3.8
Problemas..........................................................................................................
156 CAPTULO 4 CONCURRENCIA: EXCLUSIN MUTUA Y SINCRONIZACIN. 159 4.1
Principios generales de
concurrencia................................................................
160 4.2 Exclusin mutua: soluciones por software
....................................................... 169 4.3
Exclusin mutua: soluciones por
hardware...................................................... 175
4.4 Semforos
......................................................................................................
180 4.5
Monitores..........................................................................................................
197 4.6 Paso de
mensajes..............................................................................................
203 4.7 Problema de los
lectores/escritores...................................................................
209 4.8
Resumen............................................................................................................
214 4.9 Lecturas
recomendadas.....................................................................................
216 4.10
Problemas..........................................................................................................
217 CAPTULO 5 CONCURRENCIA: INTERBLOQUEO E INANICIN................
225 5.1 Principios del
interbloqueo...............................................................................
225 5.2 Prevencin del interbloqueo
.............................................................................
230 5.3 Deteccin del
interbloqueo...............................................................................
231 5.4 Prediccin del
interbloqueo..............................................................................
232 5.5 El problema de la cena de los filsofos
............................................................ 238
5.6 Sistemas de
ejemplo..........................................................................................
240 5.7
Resumen............................................................................................................
246 5.8 Lecturas
recomendadas.....................................................................................
248 5.9
Problemas..........................................................................................................
249 CAPTULO 6 GESTIN DE
MEMORIA.............................................................
253 6.1 Requisitos de la gestin de memoria
................................................................
253 6.2 Carga de programas en memoria
principal.......................................................
257 6.3
Resumen............................................................................................................
271 6.4 Lecturas
recomendadas.....................................................................................
273 6.5
Problemas..........................................................................................................
273 APNDICE 6A Carga y
montaje..............................................................................
274 CAPTULO 7 MEMORIA
VIRTUAL.................................................................
283 7.1 Estructuras de hardware y de
control................................................................
283 7.2 Software del sistema
operativo.........................................................................
302 Digitalizacin con propsito acadmico Sistemas Operativos
6. Contenido ix 7.3 Ejemplos de gestin de
memoria......................................................................
323 7.4
Resumen............................................................................................................
334 7.5 Lecturas
recomendadas.....................................................................................
335 7.6
Problemas..........................................................................................................
336 APNDICE 7A Tablas de dispersin
.......................................................................
338 CAPTULO 8 PLANIFICACIN DE MONOPROCESADORES
....................... 343 8.1 Tipos de
planificacin.......................................................................................
343 8.2 Algoritmos de
planificacin..............................................................................
347 8.3
Resumen............................................................................................................
372 8.4 Lecturas
recomendadas.....................................................................................
372 8.5
Problemas..........................................................................................................
373 APNDICE 8A Tiempo de
respuesta.......................................................................
375 CAPTULO 9 PLANIFICACIN DE MULT1PROCESADORES Y EN TIEMPO
REAL........................................................................................
379 9.1 Planificacin de multiprocesadores
..................................................................
379 9.2 Planificacin en tiempo
real..............................................................................
392 9.3 Sistemas de
ejemplo..........................................................................................
405 9.4
Resumen............................................................................................................
411 9.5 Lecturas
recomendadas.....................................................................................
412 CAPTULO 10 GESTIN DE LA E/S Y PLANIFICACIN DE DISCOS
........... 413 10.1 Dispositivos de
Entrada/Salida.........................................................................
413 10.2 Organizacin de las funciones de
E/S...............................................................
415 10.3 Aspectos de diseo en los sistemas
operativos................................................. 419
10.4 Almacenamiento intermedio de E/S
.................................................................
423 10.5 Entrada/Salida a
disco.......................................................................................
427 10.6 Sistemas de
ejemplo..........................................................................................
438 10.7
Resumen............................................................................................................
445 10.9
Problemas..........................................................................................................
446 10.8 Lecturas
recomendadas.....................................................................................
446 CAPTULO 11 GESTIN DE
ARCHIVOS.............................................................
449 11.1
Introduccin......................................................................................................
449 11.2 Organizacin y acceso a
archivos.....................................................................
455 11.3 Directorios de archivos
.....................................................................................
461 11.4 Comparticin de archivos
.................................................................................
466 11.5 Agrupacin de
registros....................................................................................
467 Digitalizacin con propsito acadmico Sistemas Operativos
7. x Contenido 11.6 Gestin del almacenamiento
secundario...........................................................
469 11.7 Sistema de ejemplo SISTEMA UNIX, VERSIN V.. 479 11.8
Resumen...........................................................................................................
482 11.9 Lecturas
recomendadas....................................................................................
482 11.10
Problemas.......................................................................................................
483 CAPTULO 12 REDES Y PROCESO
DISTRIBUIDO....................................... 487 12.1
Arquitecturas de
comunicaciones..................................................................
488 12.2 La serie de protocolos
TCP/IP.......................................................................
504 12.3 Proceso
cliente/servidor.................................................................................
509 12.4 Proceso distribuido mediante envo de
mensajes.......................................... 520 12.5
Llamadas a procedimientos
remotos.............................................................
525 12.6
Resumen........................................................................................................
528 12.7 Lecturas
recomendadas.................................................................................
529 12.8
Problemas......................................................................................................
530 CAPTULO 13 GESTIN DISTRIBUIDA DE
PROCESOS............................. 533 13.1 Migracin de
procesos..................................................................................
533 13.2 Estados globales
distribuidos........................................................................
540 13.3 Gestin distribuida de procesos exclusin mutua....,,.. 546
13.4 Interbloqueo
distribuido................................................................................
556 13.5
Resumen........................................................................................................
568 13.6 Lecturas
recomendadas.................................................................................
568 13.7
Problemas......................................................................................................
570 CAPTULO 14
SEGURIDAD.................................................................................
571 14.1 Amenazas a la
seguridad.................................................................................
573 14.2
Proteccin........................................................................................................
578 14.3
Intrusos............................................................................................................
587 14.4 Virus y amenazas
afines..................................................................................
601 14.5 Sistemas de
confianza.....................................................................................
613 14.6 Seguridad en
redes..........................................................................................
617 14.7
Resumen.........................................................................................................
624 14.8 Lecturas
recomendadas..................................................................................
625 14.9
Problemas.......................................................................................................
626 APNDICE 14A
Cifrado.......................................................................................
627 APNDICE A ANLISIS DE COLAS
...................................................................
631 A.l Por qu el anlisis de
colas?.............................................................................
632 A.2 Modelos de
colas...............................................................................................
634 Digitalizacin con propsito acadmico Sistemas Operativos
8. Contenido xi A.3 Colas de un solo
servidor..................................................................................
638 A.4 Colas
multservidor...........................................................................................
641 A.5 Redes de
colas...................................................................................................
641 A.6
Ejemplos............................................................................................................
646 A.7 Otros modelos de colas
.....................................................................................
649 A.8 Lecturas
recomendadas.....................................................................................
650 ANEXO A Conceptos bsicos de probabilidades y
estadstica................................. 651 APNDICE B DISEO
ORIENTADO A OBJETOS.......................................... 657
B.l
Motivacin........................................................................................................
657 B.2 Conceptos de orientacin a
objetos...................................................................
658 B.3 Ventajas del diseo orientado a
objetos.............................................................
662
GLOSARIO...............................................................................................................
663
REFERENCIAS.......................................................................................................
669 LISTA DE
ACRN1MOS......................................................................................
681 NDICE
ANALTICO.............................................................................................
683
AGRADECIMIENTOS...........................................................................................
709 Digitalizacin con propsito acadmico Sistemas Operativos
9. PRLOGO Objetivos Este libro trata sobre los conceptos, la
estructura y los mecanismos de los sistemas opera- tivos. Su
finalidad es la de presentar de forma tan clara y completa como sea
posible, la na- turaleza y las caractersticas de los sistemas
modernos. Esta tarea constituye un desafo por varias razones. En
primer lugar, existe una enorme y variada gama de sistemas
informticos para los que se disean sistemas operativos. Entre estos
sistemas se incluyen las estaciones de trabajo monousuario y los
computadores personales, los sistemas compartidos de tamao medio,
los grandes computadores centrales, los supercomputadores y las
mquinas especializadas como los sistemas de tiempo real. La
variedad no est slo en la capacidad y la velocidad de las mquinas,
sino tambin en los requisitos de soporte de los sistemas y las
aplicaciones. En segundo lugar, el veloz ritmo en los cambios que
siempre ha caracterizado a los sistemas in- formticos aumenta sin
descanso. Una serie de campos clave en el diseo de los sistemas
operativos son de origen reciente y la investigacin en estos y en
otros campos es continua. A pesar de tal variedad y velocidad en
los cambios, determinados conceptos fundamenta- les se pueden
aplicar en todos los casos de una forma consistente. Para estar
seguros, la apli- cacin de estos conceptos depende del estado
actual de la tecnologa y de los requisitos de las aplicaciones
particulares. El cometido de este libro es proporcionar una
discusin completa de los fundamentos del diseo de los sistemas
operativos (SO) y hacer mencin a las cuestiones de diseo y las
tendencias actuales en el desarrollo de sistemas operativos. El
objetivo es proporcionar al lector una comprensin slida de los
mecanismos clave de los sistemas operativos modernos, las
concesiones y las decisiones que acarrean el diseo de un SO y el
contexto en el que ste opera (el hardware, otros programas del
sistema, los pro- gramas de aplicacin y los usuarios interactivos).
xiii Digitalizacin con propsito acadmico Sistemas Operativos
10. xiv Prlogo El concepto de proceso El concepto de proceso es
el elemento central del estudio de los sistemas operativos. Aun-
que todos los libros sobre la materia abordan este tema, ningn otro
texto destacado dedica una seccin importante a introducir y
explicar los principios bsicos de los procesos. En este libro, el
Captulo 3 est dedicado a esta labor. Los resultados son unas bases
slidas para el examen de las mltiples cuestiones que se abordan en
los captulos posteriores. Desarrollos recientes en el diseo de
sistemas operativos Adems de ofrecer cobertura a los fundamentos de
los sistemas operativos, el libro examina los desarrollos recientes
ms importantes que se han alcanzado en el diseo de los sistemas
operativos. Entre los temas tratados estn los siguientes: Hilos: El
concepto de proceso es algo ms complicado y sutil que el que se
suele pre- sentar y, de hecho, engloba dos conceptos separados e
independientes en potencia: uno relativo a la propiedad de los
recursos y otro relativo a la ejecucin. Esta distincin ha llevado
al desarrollo, en algunos sistemas operativos, de unas estructuras
conocidas como hilos. Sistemas de tiempo real: En los ltimos aos,
el proceso en tiempo real ha llegado a verse como una importante
disciplina emergente en informtica e ingeniera. El sistema
operativo y, en particular, el planificador, es quizs el componente
ms importante de un sistema de tiempo real. Planificacin de
multiprocesadores: Tradicional mente, se ha hecho una escasa
distin- cin entre los mtodos de planificacin que se aplican en los
monoprocesadores multi- programados y los de los sistemas de
multiprocesadores. Con el inters creciente en el empleo de hilos y
en la programacin paralela, la planificacin de multiprocesadores se
ha convertido en objeto de estudios y desarrollos intensos.
Sistemas distribuidos: Con la disponibilidad cada vez mayor de
computadores persona- les y minicomputadores baratas pero potentes,
se ha producido una tendencia creciente hacia el proceso de datos
distribuido (DDP, Distributed Data Processing). Con el DDP, los
procesadores, los datos y otros elementos de un sistema distribuido
de proceso de datos pueden estar dispersos para una organizacin.
Muchas de las cuestiones de diseo de SO tratadas en este libro
tratan sobre la complejidad aadida de los entornos distri- buidos.
Migracin de procesos; La migracin de procesos es la capacidad para
trasladar un pro- ceso activo de una mquina a otra; se ha
convertido en un tema cada vez ms candente en los sistemas
operativos distribuidos. El inters por este concepto surgi de la
investigacin sobre formas de equilibrar la carga en varios sistemas
conectados en red, aun- que su aplicacin se extiende ahora ms all
de este campo. Hasta hace poco, algunos observadores crean que la
migracin de procesos era poco prctica. Se ha demostrado que tales
aseveraciones eran demasiado pesimistas. Las nuevas
implementaciones, incluyendo las de algunos productos comerciales,
han alimentado un inters continuo y nuevos desarrollos en este
campo. Digitalizacin con propsito acadmico Sistemas Operativos
11. Prlogo xv Seguridad: La seguridad ha sido durante mucho
tiempo una preocupacin en el diseo de los sistemas operativos. Sin
embargo, los enfoques de diseo de la seguridad han evolucionado a
medida que evolucionaron las amenazas. Entre los ejemplos de reas
de amenaza que presentan dificultades nuevas y complejas se
incluyen los virus y los ata- ques a los sistemas operativos
distribuidos. Un ejemplo de un nuevo enfoque para hacer frente a
estas amenazas es el concepto de sistema de confianza. Sistemas de
ejemplo Este texto est pensado para informar al lector sobre los
principios de diseo y las cuestio- nes de implementacin de los
sistemas operativos contemporneos. Por consiguiente, un tratamiento
terico o puramente conceptual no sera el adecuado. Para ilustrar
los conceptos y asociarlos a las elecciones reales de diseo que
deben hacerse, se han elegido tres sistemas operativos como ejemplo
marco. Windows NT: Un sistema operativo monousuario y multitarea
para computadores per- sonales, estaciones de trabajo y servidores.
Como nuevo sistema operativo que es, Win- dows NT incorpora de
forma evidente los ltimos avances en tecnologa de sistemas
operativos. Adems, Windows NT es uno de los primeros sistemas
operativos impor- tantes que confan profundamente en los principios
del diseo orientado a objetos. UNIX: Un sistema operativo
multiusuario, pensado originalmente para minicomputa- dores, pero
implementado en una amplia gama de mquinas, desde potentes
microcom- putadores hasta supercomputadores. MVS: El sistema
operativo situado a la cabeza de la gama de computadores centrales
de IBM y, quizs, el sistema operativo ms complejo jams
desarrollado. Ofrece posibili- dades tanto de tratamiento por lotes
como de tiempo compartido. Estos tres sistemas fueron elegidos por
su importancia y representatividad. La mayora de los sistemas
operativos de computadores personales, estaciones de trabajo y
servidores de las mquinas nuevas son sistemas monousuario y
multitarea; Windows NT es un ejemplo del estado de la ciencia. UNIX
ha llegado a ser el sistema operativo dominante en una am- plia
variedad de estaciones de trabajo y sistemas multiusuario. MVS es
el sistema operativo de computadores centrales ms usado. As pues,
la mayora de los lectores tendrn que tra- tar con algunos de estos
sistemas operativos en el momento en que utilicen este libro o den-
tro de unos pocos aos. Al igual que la tcnica usada en mi libro
Organizacin y Arquitectura de Computadoras, la discusin de los
sistemas de ejemplo est distribuida a lo largo del texto, en vez de
en- samblarla en un slo captulo o apndice. Por ejemplo, durante el
estudio de la memoria vir- tual, se describen los algoritmos de
reemplazo de pginas de cada uno de los ejemplos y se discuten los
motivos de las opciones individuales de diseo. Con este enfoque,
los concep- tos de diseo discutidos en un captulo dado se ven
inmediatamente reforzados con ejemplos del mundo real.
Digitalizacin con propsito acadmico Sistemas Operativos
12. xvi Prlogo Pblico al que est dirigido El libro est dirigido
tanto a un pblico acadmico como profesional. Como libro de texto,
est pensado para un curso de pregrado sobre sistemas operativos de
un semestre, tanto para informtica como ingeniera. Aborda todos los
temas del curso de sistemas operativos reco- mendado en el plan de
estudios de informtica de 1991, del informe ACM/IEEE-CS Joint
Curriculum Task Forc. El libro tambin sirve como volumen bsico de
referencia y es vlido para el autoestudio. Planificacin del texto
La organizacin de los captulos es la que sigue: 1. Introduccin a
los sistemas informticos: Ofrece una visin general de la arquitec-
tura y organizacin de los computadores, haciendo nfasis en los
temas relacionados con el diseo de sistemas operativos. 2.
Introduccin a los sistemas operativos: Ofrece una visin general del
resto del libro. 3. Descripcin y control de procesos: Introduce el
concepto de proceso y examina las estructuras de datos empleadas
por el sistema operativo para controlar los procesos. Tambin se
discuten los conceptos afines de hilo y sesin. 4. Concurrencia:
exclusin mutua y sincronizacin: Examina los aspectos clave de la
concurrencia en sistemas sencillos, haciendo nfasis en la exclusin
mutua y en los mecanismos de sincronizacin. 5. Concurrencia:
interbloqueo e inanicin: Describe la esencia del interbloqueo y de
la inanicin y los enfoques de diseo para su tratamiento. 6. Gestin
de memoria: Ofrece un estudio completo de las tcnicas de gestin de
me- moria. 7. Memoria virtual: Observa con detalle las estructuras
del hardware que dan soporte a la memoria virtual y las
caractersticas del software de un sistema operativo que dis- ponga
de memoria virtual. 8. Planificacin de monoprocesadores: Ofrece una
discusin comparativa de los dife- rentes enfoques de la
planificacin de procesos. 9. Planificacin de multiprocesadores y en
tiempo real: Examina estas dos reas impor- tantes de la
planificacin de procesos. 10. Gestin de la EIS y planificacin de
discos: Examina los problemas que acarrea el control de las
funciones de E/S por parte del SO. Se dedica una atencin especial a
la E/S con el disco, que es un punto clave en el rendimiento del
sistema. 11. Gestin de archivos: Proporciona una visin general de
la gestin de archivos, con nfa- sis en aquellos aspectos que se
suelen implementar como parte del sistema operativo o que estn
estrechamente relacionados con el sistema operativo. 12. Redes y
proceso distribuido: Examina las principales tendencias en este
campo, incluyendo el modelo OSI, los protocolos TCP/IP y la
arquitectura cliente/servidor. Digitalizacin con propsito acadmico
Sistemas Operativos
13. Prlogo xvii Tambin se explican tcnicas importantes de
comunicacin distribuida entre proce- sos, como son el paso de
mensajes y las llamadas a procedimientos remotos. 13. Gestin
distribuida de procesos: Describe algunos de los puntos clave de
diseo en el desarrollo de sistemas operativos distribuidos,
incluyendo la migracin de procesos, la exclusin mutua y el
interbloqueo. 14. Seguridad: Ofrece un estudio de las amenazas y de
los mecanismos para conseguir seguridad en redes y en computadores.
A. Anlisis de colas: Este apndice es una gua prctica del empleo del
anlisis de colas para modelar el rendimiento. B. Diseo orientado a
objetos: Introduce los conceptos esenciales del diseo orientado a
objetos. Adems, el libro incluye un amplio glosario, una lista de
acrnimos usados frecuente- mente y una bibliografa. Cada captulo
incluye problemas y propuestas de lecturas comple- mentarias. Qu
hay de nuevo en la segunda edicin En los tres aos que han pasado
desde que se public la primera edicin de Sistemas Operati- vos la
materia se ha visto sujeta a mejoras e innovaciones continuas. En
esta nueva edicin, se intentan captar estos cambios y, a la vez,
lograr una cobertura amplia y completa del tema. Ade- ms, muchos
lectores de la primera edicin han realizado comentarios
constructivos que han provocado una reorganizacin sustancial de la
materia. En el cambio de los contenidos, uno de los ms importantes
es la introduccin de las tec- nologas orientadas a objetos. Muchos
sistemas operativos ya utilizan tcnicas de diseo orientadas a
objetos y casi todos los nuevos sistemas operativos para
computadores perso- nales, estaciones de trabajo y servidores
emplearn esta tecnologa en el futuro. El vehculo para la explicacin
de los conceptos tratados en el libro es solamente la discusin de
Win- dows NT. Aunque NT no es un sistema orientado a objetos
"puro", implementa las caracte- rsticas esenciales del diseo
orientado a objetos en un sistema operativo. El libro tambin viene
con un nuevo apndice que proporciona una introduccin al diseo
orientado a objetos. Se ha ampliado y actualizado el estudio de las
redes y los sistemas operativos distribuidos. En el campo de los
sistemas operativos distribuidos, el libro ofrece una mayor
cobertura de la migracin de procesos y una discusin ampliada del
control distribuido del interbloqueo. En el campo de las redes, el
libro contiene ahora una seccin nueva e importante sobre la
arquitec- tura cliente/servidor. Esta arquitectura se ha convertido
en la norma de soporte del proceso dis- tribuido y de las
aplicaciones distribuidas. Adems, el tratamiento de las redes que
se hace en el libro incluye ahora una visin general del TCP/IP, la
arquitectura de protocolos ms impor- tante en las redes. El
tratamiento de la concurrencia se ha ampliado para incluir una
seccin sobre los moni- tores. Este enfoque para lograr concurrencia
est cada vez ms difundido. El libro incluye Digitalizacin con
propsito acadmico Sistemas Operativos
14. xviii Prlogo una discusin sobre las diferencias entre los
antiguos monitores de Hoare y los de Lamp- son/Redell y explica las
ventajas de este ltimo enfoque. Uno de los cambios ms extensos en
el libro es la amplia cobertura que se ha dado a la se- guridad. El
tratamiento de los virus y de las amenazas afnes por software
tambin se ha am- pliado, incluyendo una nueva seccin importante
sobre los intrusos, que abarca la protec- cin de contraseas, la
prevencin y la deteccin de intrusiones. El libro tambin se ha
reorganizado para incluir ms captulos y ms reducidos. Esto lo hace
ms manejable y accesible para los estudiantes. Adems, se han aadido
ms problemas pro- puestos para ayudar a reforzar y ampliar la
materia de cada captulo. Lista de envos en internet Se ha preparado
una lista de envos en intemet, de forma que los profesores que
empleen este libro puedan intercambiar informacin, propuestas y
preguntas entre ellos y con el au- tor. Para suscribirse, hay que
enviar un mensaje a [email protected] con el siguiente texto:
subscribe ws-OS. Para remitir un mensaje, hay que enviarlo a
[email protected]. Agradecimientos Este libro est basado en la
primera edicin, de forma que se ha beneficiado de las revisiones
del manuscrito de dicha edicin, incluyendo las realizadas por Ranee
Cleaveland, Eric Cooper, Samuel Gulden, Gary Harkin, Evan Ivie,
Phillip Krueger, Evelyn Obaid, E. K. Part, Umakis- hore
Ramachandran, Margaret Reek, Armin Roeseler, Sol Shatz, Charles
Shub, James Silver, Mark Smotherman y Anand Tripathi. Una serie de
personas tambin revisaron todo el manuscrito de la segunda edicin o
parte del mismo, incluyendo a May C. Abboud, David Boddy, Phillip
Krueger, Gwynne Larson, Mitchell L. Neilsen, Titus D. M. Purdin y
Cindy Snow. Tambin agradezco a K. C. Tai sus aportaciones en la
temporizacin de sucesos distribuidos, a Steven Hartiey por algunos
problemas propuestos, a Donaid Gillies por sus aportaciones en los
monitores, a Richard Wright por su revisin del material de Windows
NT y a Ralph Hilzer por el ejemplo de la barbera. W.S.
Digitalizacin con propsito acadmico Sistemas Operativos
15. Prlogo a la edicin en espaol El sistema operativo, como es
bien conocido, es el programa del sistema que controla todos los
recursos del computador y ofrece el soporte bsico sobre el cual
pueden escribirse los programas de aplicacin. Por esta causa un
libro que trate sobre los conceptos, estructura y mecanismos de los
modernos sistemas operativos es un acontecimiento cientfico que ha
de ser examinado cuidadosamente. Por otra parte, nos encontramos en
el ltimo cuatrimestre de 1996 en el que los computadores ya no
trabajan de igual forma que en dcadas pasadas y si el libro de
sistemas operativos tiene presente esta situacin, nos encontramos
con una obra de utilidad para los profesionales informticos. En el
pasado la mayora de los computadores trabajaban de modo aislado y
en conse- cuencia la mayora de los sistemas operativos se diseaban
para ser ejecutados en un nico procesador. Esta situacin ha
cambiado casi radicalmente. Ahora, los computadores estn conectos
en red, razn por la cual los sistemas operativos distribuidos son
cada vez ms importantes. Por otra parte, las tecnologas de objetos
se imponen cada da ms y con ma- yor intensidad en el mundo del
software. Es por ello que un libro actualizado sobre siste- mas
operativos debera contemplar el estudio de los sistemas operativos
distribuidos, y al menos tener presente las tecnologas de objetos.
La importancia del sistema operativo ha hecho que esta asignatura
sea considerada fun- damental en los estudios de licenciatura e
ingeniera informtica, as como en ingenieras electrnicas de
telecomunicaciones y de sistemas computacionales. Este es el caso
de Es- tados Unidos, donde las recomendaciones de los curricula de
estudios de computacin (in- formtica) de la ACM y de la IEEE-CS,
consideran esta materia en el informe computing curricula 1991
emitido por ambas instituciones. En Espaa, el espritu se ha
recogido tam- bin en los curricula y as lo ha plasmado el Consejo
de Universidades en los nuevos pla- nes de estudio de ingeniera
informtica tcnica y superior, asignndole la categora de materia
troncal, lo que conlleva la obligatoriedad de su estudio por todas
las universida- des oficiales y privadas. Naturalmente no tendra
sentido la recomendacin si no viniera acompaada de los descriptores
o temas mnimos que han de estudiarse en la citada asig- natura.
Esta misma situacin se da tambin en Latinoamrica y as lo hemos
comprobado con ocasin de diferentes viajes a Mxico, Cuba,
Venezuela, etc., donde hemos impar- tido conferencias, cursos o
seminarios en universidades e institutos tecnolgicos de estas
naciones. xix Digitalizacin con propsito acadmico Sistemas
Operativos
16. xx Prlogo La obra de Stallings abarca ampliamente los
descriptores de la materia troncal sistemas operativos en los
planes de estudio espaoles (Reales Decretos 1459, 1460, 1461/1990
de 16 de octubre de 1990) y las recomendaciones de la ACM/IEEE-CS,
pero con una ventaja adicional, describe los citados descriptores
actualizados al ao 1995, fecha de publicacin del libro. Una de las
fortalezas ms sobresalientes del libro es el tratamiento y el
enfoque prctico que hace de los sistemas operativos reales,
implantados en el mercado informtico. As al final de cada captulo
se suele incluir ejemplos sobre los tres sistemas operativos
estndar ms importantes de la actualidad: Windows NT, UNIX y MVS. La
obra de Stallings incorpora una serie de temas avanzados relativos
a los sistemas operativos distribuidos; especialmente destaca su
acierto en el estudio de materias de gestin distribuida de
procesos, tema difcil y complejo que pocas obras consideran. Tambin
da especial importancia a la administracin o gestin del procesador.
Una novedad sobresaliente es la inclusin de un apndice relativo al
importante futuro de las tecnologas de objetos en el diseo de los
modernos sistemas operativos orientados a objetos, analizando su
concepto y los beneficios que su aplicacin producirn en los
sistemas operativos. En resumen, Sistemas Operativos ser de gran
utilidad para uno o dos cursos universita- rios, al incluir todo
los temas usuales de una licenciatura o ingeniera informtica, en
siste- mas de computacin o de telecomunicaciones, as como para
licenciaturas de Matemticas y Fsicas en sus especialidades de
Ciencias de la Computacin. El rigor cientfico del autor se muestra
en cada pgina del libro, y el hecho de que el propio autor ha
publicado una obra complementaria sobre hardware de los
computadores Computer Organization and Architec- ture, fourth
edition -que se acaba de publicar en castellano-, le augura un
futuro brillante y estamos seguros ser una obra de referencia y de
alta estima entre profesores y alumnos de los citados estudios como
libro bsico y como libro de consulta para estudios afines del mundo
cientfico de la programacin. AGRADECIMIENTOS Todo el equipo de
profesores responsables de la traduccin de esta obra deseamos
destacar y agradecer la lectura y revisin efectuada de las ltimas
pruebas de imprenta (galeradas) por el tambin profesor y compaero
de sistemas operativos Virgilio Yage Galaup, del Departamento de
Lenguajes y Sistemas Informticos e Ingeniera del Software, de la
Facultad de Informtica de la Universidad Pontificia de Salamanca en
el campus de Madrid. Su lectura ha permitido detectar erratas y
muchas de sus sugerencias han sido incorporadas a la adaptacin
final de esta obra. Luis Joyones Aguilar Director del Departamento
de Lenguajes y Sistemas Informticos e Ingeniera del Software
Facultad y Escuela Universitaria de Informtica Universidad
Pontificia de Salamanca en Madrid Digitalizacin con propsito
acadmico Sistemas Operativos
17. CAPTULO 1 Introduccin a los sistemas informticos Un sistema
operativo (SO) explota los recursos de hardware de uno o ms
procesadores para ofrecer un conjunto de servicios a los usuarios
del sistema. El sistema operativo tambin gestiona la memoria
secundaria y los dispositivos de entrada/salida (E/S) en nombre de
los usuarios. As pues, es conveniente disponer de una cierta
comprensin del hardware del sis- tema informtico subyacente antes
de comenzar el estudio de los sistemas operativos. Este captulo
ofrece una visin de conjunto del hardware de los sistemas
informticos. Este resumen es extremadamente breve en la mayora de
los campos, pues se asume que el lector est familiarizado con el
tema. Sin embargo, algunas reas se abordan con un cierto detalle,
por su importancia en los asuntos que se tratarn ms adelante en el
libro. 1.1 ELEMENTOS BSICOS En un alto nivel, un sistema informtico
consta de procesador, memoria y componentes de E/S, con uno o ms
mdulos de cada tipo. Estas componentes estn interconectados de al-
guna forma para llevar a cabo la funcin principal del computador,
que es ejecutar progra- mas. As pues, se tienen cuatro elementos
principales: Procesador: Controla la operacin del computador y
lleva a cabo las funciones de pro- cesamiento de datos. Cuando hay
un solo procesador, se suele denominar unidad cen- tral de
procesamiento (CPU, Central Processing Unit). Memoria Principal:
Almacena los datos y los programas. Esta memoria es normal- mente
voltil; tambin se le conoce como memoria real o memoria primaria.
Interconexin de sistemas: Ciertos mecanismos y estructuras que
permiten la comuni- cacin entre procesadores, memoria principal y
los mdulos de E/S. 1 Digitalizacin con propsito acadmico Sistemas
Operativos
18. 2 Introduccin a los sistemas informticos La figura 1.1
ilustra estos componentes de alto nivel. El procesador es
normalmente quien lleva el control. Una de sus funciones es
intercambiar los datos con la memoria. Para este propsito, hace uso
de dos registros internos (al procesador): un registro de
direcciones de memoria (MAR, Memory Address Register), el cual
especifica la direccin en memoria de la prxima lectura o escritura
y un registro intermedio (buffer) de memoria (MBR, Memory Buffer
Register), que contiene los datos que van a ser escritos a memoria
o que fueron ledos de la misma. De manera similar, un registro de
direcciones de E/S (IOAR, InputlOutput Ad- dress Register)
especifica un dispositivo particular de E/S. Un registro intermedio
de E/S (IOBR, InputtOutput Buffer Register) se utiliza para
intercambiar datos entre un mdulo de E/S y el procesador. Un mdulo
de memoria consta de un conjunto de ubicaciones definidas por
direcciones enumeradas secuencialmente. Cada ubicacin contiene un
nmero binario que puede ser in- terpretado como una instruccin o
como un dato. Un mdulo de E/S transfiere datos desde los
dispositivos externos hacia la memoria y el procesador y viceversa.
Este contiene buffers internos para almacenar temporalmente los
datos hasta que puedan ser enviados. 1.2 REGISTROS DEL PROCESADOR
Dentro del procesador, hay un conjunto de registros que ofrecen un
nivel de memoria que es ms rpido y pequeo que la memoria principal.
Los registros del procesador sirven para dos funciones:
Digitalizacin con propsito acadmico Sistemas Operativos
19. Registros del procesador 3 Registros visibles de usuario:
Un programador de lenguaje de mquina o ensamblador puede minimizar
las referencias a memoria principal mediante un uso ptimo de estos
registros. Con lenguajes de alto nivel, un compilador que optimice
cdigo intentar ha- cer una seleccin inteligente de qu variables
asignar a registros y cules a ubicaciones de la memoria principal.
Algunos lenguajes de alto nivel, como C, permiten que el pro-
gramador indique al compilador qu variables se deben almacenar en
registros. Registros de control y de estado: Son utilizados por el
procesador para el control de las operaciones o por rutinas
privilegiadas del sistema operativo para controlar la ejecucin de
los programas. No hay una separacin clara de los registros en estas
dos categoras. Por ejemplo, en al- gunas mquinas el contador de
programa es visible para los usuarios, pero en otras muchas no lo
es. Sin embargo, para el propsito de la discusin que viene a
continuacin, es conve- niente emplear estas categoras. Registros
visibles de usuario Un registro visible de usuario es aqul que
puede ser referenciado por medio del lenguaje de mquina que ejecuta
el procesador y es, por lo general, accesible para todos los
programas, incluyendo tanto los programas de aplicacin como los del
sistema. Las clases de registro que, normalmente, estn disponibles,
son los registros de datos, los registros de direccin y los
registros de cdigos de condicin. Los registros de datos pueden ser
asignados por el programador a diversas funciones. En algunos
casos, son de propsito general y pueden ser empleados por cualquier
instruccin de mquina que lleve a cabo operaciones sobre los datos.
Sin embargo, suelen ponerse cier- tas restricciones a menudo. Por
ejemplo, pueden haber registros dedicados a operaciones en coma
flotante. Los registros de direccin contienen direcciones en la
memoria principal de datos e ins- trucciones o una parte de la
direccin que se utiliza en el clculo de la direccin completa. Estos
registros pueden ser de propsito general o pueden estar dedicados a
un modo espec- fico de direccionamiento. Entre los ejemplos se
incluyen: Registro ndice: El direccionamiento indexado es un modo
comn de direccionamiento que implica sumar un ndice a un valor base
para obtener la direccin efectiva. Puntero de segmento: Con
direccionamiento segmentado, la memoria se divide en segmentos, que
son bloques de palabras de tamao variable. Una referencia a memoria
consta de una referencia a un segmento particular y un
desplazamiento dentro del seg- mento; este modo de direccionamiento
es importante en la discusin sobre la gestin de memoria de los
captulos 6 y 7. En este modo, se utiliza un registro que alberga
una direccin base (ubicacin inicial) de un segmento. Puede haber
varios registros de este tipo: por ejemplo, uno para el sistema
operativo (es decir, cuando se ejecuta cdigo del sistema operativo
en el procesador) y otro para la aplicacin que est en ejecucin.
Puntero de pila: Si hay un direccionamiento de pila visible para
los usuarios, la pila es- tar, por lo general, en la memoria
principal, existiendo un registro dedicado a sealar El trmino ingls
pointer suele traducirse en Latinoamrica por el trmino apuntador
(N. del. T.) Digitalizacin con propsito acadmico Sistemas
Operativos
20. 4 Introduccin a los sistemas informticos la cima de la
pila. Esto permite el uso de instrucciones que no contienen ningn
campo de direccin, tales como push (poner) y pop (sacar).
(Consltese el Apndice IB para una discusin sobre el tratamiento de
pilas). Una ltima categora de registros que son, al menos,
parcialmente visibles para los usua- rios, son aquellos que
contienen cdigos de condicin (tambin denominados indicadores o
flags). Los cdigos de condicin son bits activados por el hardware
del procesador como re- sultado de determinadas operaciones. Por
ejemplo, una operacin aritmtica puede producir un resultado
positivo, negativo, cero o desbordamiento. Adems de almacenar el
resultado de esta operacin en un registro o en memoria, tambin se
activar un cdigo de condicin. Este cdigo puede consultarse
posteriormente como parte de una operacin de salto condicional. Los
bits de cdigo de condicin se agrupan en uno o ms registros. Estos
forman general- mente parte de un registro de control. En general,
las instrucciones de mquina permiten leer estos bits mediante
referencias implcitas, pero no pueden ser alterados por el
programador. En algunas mquinas, una llamada a un procedimiento o
subrutina provocar que los re- gistros visibles de usuario se
salven automticamente, para luego restaurarlos al retomar. Este
proceso de salvar y restaurar lo lleva a cabo el procesador como
parte de la ejecucin de las instrucciones de llamada y retomo. Esto
permite que cada procedimiento pueda usar los registros de forma
independiente. En otras mquinas, es responsabilidad del programa-
dor salvar los contenidos de los registros de usuario visibles que
sean relevantes antes de ha- cer la llamada a un procedimiento,
incluyendo instrucciones en el programa con tal prop- sito. As
pues, las instrucciones de salvar y restaurar pueden ser llevadas a
cabo por el hardware o por el software, dependiendo de la mquina.
Registros de control y de estado Varios registros se emplean para
controlar las operaciones del procesador. En la mayora de las
mquinas, la mayor parte de estos registros no son visibles para los
usuarios. Algunos de ellos pueden estar accesibles a las
instrucciones de mquina ejecutadas en un modo de control o modo del
sistema. Por supuesto, mquinas diferentes tendrn organizaciones
diferentes de registros y podrn usar terminologas distintas. Aqu se
da una lista bastante completa de tipos de registros, incluyendo
una breve descripcin de las mismas. Adems de los registros MAR,
MBR, IOAR y IOBR mencionados anteriormente, los siguientes
registros son esenciales en la ejecucin de instrucciones; Contador
de programa (PC, Program Counter): Contiene la direccin de la
instruccin a ser leda. Registro de instruccin (IR, Instruction
Regster): Contiene la ltima instruccin leda. Todos los diseos de
procesadores incluyen adems un registro o conjunto de registros,
conocidos a menudo como palabra de estado del programa (PSW,
Program Status Word), que contiene informacin de estado.
Normalmente, la PSW contiene cdigos de condicin junto a otra
informacin de estado. Entre los campos e indicadores ms comunes se
incluyen los siguientes: Signo: Contiene el bit del signo de la
ltima operacin aritmtica efectuada. Cero: Se activa cuando el
resultado de una operacin aritmtica es cero. Acarreo: Se activa
cuando, como resultado de una suma o una resta, se produce un
acarreo ms all del bit ms significativo. Se utiliza en operaciones
aritmticas de ms de una palabra. Digitalizacin con propsito
acadmico Sistemas Operativos
21. Ejecucin de instrucciones 5 Igualdad: Se activa si una
comparacin lgica da como resultado la igualdad. Desbordamiento:
Empleado para seflalar un desbordamiento aritmtico.
Habilitar/inhahilitar interrupcines: Empleado para habilitar o
inhabilitar interrupcio- nes. Cuando Las interrupciones estn
inhabilitadas, el procesador las ignora. Esto es muy deseable
cuando el sistema operativo est ocupado en el tratamiento deotra
interrupcin. Supervisor: Indica si el procesador est ejecutando en
modo supervisor o en modo usuarlo. Ciertas instrucciones
privilegiadas slo se pueden ejecutar en modo supervisor y slo se
puede tener acceso a ciertas reas de memoria en modo supervisor. En
el diseo de un procesador especfico, se pueden encontrar una serie
de registros relacionados con el estado y el control. Adems de la
PSW, puede haber un puntero a un bloque de memoria que contenga
informacin de estado adicional. En mquinas que utilizan varios
tipos de interrupcin, se puede ofrecer una serie de registros con
punteros a cada rutina de tratamiento de interrupcin. Si se utiliza
una pila para implementar ciertas funciones (por ejemplo, las
llamadas a procedimientos), entonces se necesita un puntero a la
pila (ver Apndice 1B). El hardware para la gestin de memoria que se
discute en los captulos 6 y 7 necesitar registros dedicados. Por
ltimo, los registros tambin pueden utilizarse para el control de
las operaciones de E/S. Una serie de factores inciden en el diseo
de la organizacin de los registros de control y estado. Un punto
clave es el soporte del sistema operativo. Cierto tipo de
informacin de control es de utilidad especfica para el sistema
operativo. Si el diseador del procesador dispone de una visin
funcional del sistema operativo, la organizacin de los registros
puede adaptarse convenientemente. Otra decisin clave del diseo es
la asignacin de informacin de control a los registros y la memoria.
Es habitual dedicar los primeros centenares o miles de palabras
(las ms bajas) de memoria para el control. EL diseador debe decidir
la cantidad de informacin de control que debe residir en los rpidos
y costosos registros, junto a la cantidad que debe permanecer en
memoria principal, que es ms lenta y barata. 1 .3 EJECUCIN DE
INSTRUCCIONES La tarea bsica que realiza un computador es la
ejecucin de los programas. El programa a ejecutar consta de un
conjunto de instrucciones almacenadas en memoria. El procesador
lleva a cabo el trabajo, ejecutando las instrucciones especificadas
en el programa. Para alcanzar una mayor comprensin de esta funcin y
de la manera en que los componentes principales del computador
interactan para ejecutar un programa, hace falta analizar con
cierto detalle los elementos de la ejecucin de un programa. EL
punto de vista ms sencillo es considerar que el procesamiento de
instrucciones consta de dos pasos. El procesador (1) trae las
instrucciones desde la memoria, una cada vez y (2) ejecuta cada
instruccin. La ejecucin de un programa consiste en la repeticin de
este proceso de lectura y ejecucin de la instruccin. La ejecucin de
la instruccin puede involucrar varias operaciones y depende de la
naturaleza de la instruccin. El procesamiento requerido para una
instruccin simple se llama ciclo de instruccin. El ciclo de
instruccin se representa en la figura 1.2, emplendose esta
descripcin simplifi- Digitalizacin con propsito acadmico Sistemas
Operativos
22. 6 Introduccin a los sistemas informticos cada de dos pasos
que se acaba de explicar. Los dos pasos se llaman ciclo de lectura
(fetch) y ciclo de ejecucin. La ejecucin del programa se detiene
slo si se apaga la mquina, ocu- rre algn tipo de error
irrecuperable o se encuentra una instruccin en el programa que de-
tiene el computador. Lectura y ejecucin de instrucciones Al
comienzo de cada ciclo de instruccin, el procesador lee una
instruccin de la memoria. En un procesador tpico habr un registro
llamado contador de programa (PC), que se usa para llevar la cuenta
de cul es la prxima instruccin a leer. A menos que se diga otra
cosa, el procesador siempre incrementar el PC despus de leer cada
instruccin, de forma que despus se lea la instruccin siguiente en
la secuencia (es decir, la instruccin ubicada en la direccin
inmediatamente superior de la memoria). As pues, considrese por
ejemplo un computador en la que cada instruccin ocupa una palabra
de memoria de 16 bits. Supngase que el contador de programa apunta
a la ubicacin 300. La prxima instruccin que va a leer el procesador
es la que est en la ubicacin 300. En los siguientes ciclos de
instruccin, le- er las instrucciones de las ubicaciones 301, 302,
303 y as sucesivamente. Como se ver en breve, esta secuencia puede
alterarse. La instruccin leda se carga en un registro del
procesador conocido como registro de instruccin (IR). La instruccin
est en forma de cdigo binario que especifica cul es la accin que el
procesador llevar a cabo. El procesador interpreta la instruccin y
realiza la accin requerida. En general, estas acciones pueden
clasificarse en las siguientes cuatro categoras:
Procesador-memoria: Se transfieren datos del procesador a la
memoria o viceversa. Procesador-EIS: Se transfieren datos desde o
hacia un dispositivo perifrico, realizn- dose la transferencia
entre el procesador y un mdulo de E/S. Digitalizacin con propsito
acadmico Sistemas Operativos
23. Ejecucin de instrucciones 7 Tratamiento de datos: El
procesador realiza alguna operacin aritmtica o lgica sobre los
datos, Control: La instruccin pide que se altere la secuencia de
ejecucin. Por ejemplo, el procesador puede leer una instruccin de
la ubicacin 149, la cual especifica que la pr- xima instruccin sea
la de la ubicacin 182. El procesador recordar este hecho ajus-tando
el valor del contador de programa a 182. De este modo, en el prximo
ciclo de lectura, se traer la instruccin de la ubicacin 182 y no de
la 150, Por supuesto que la ejecucin de una instruccin puede
incluir una combinacin de estas acciones. Como ejemplo sencillo, se
considera una mquina hipottica que incluya las caractersticas
enumeradas en la figura 1.3. El procesador contiene un nico
registro de datos, llamado acumulador (AC). Tanto las instrucciones
como los datos son de 16 bits de longitud. As pues, es conveniente
organizar la memoria utilizando ubicaciones o palabras de 16 bits.
El formato de instruccin dedica cuatro bits para el cdigo de la
operacin (cod-op). Por tanto, pueden haber hasta 24 = 16 cdigos de
operacin diferentes y hasta 212 = 4096 (4K) palabras de memoria que
se pueden direccionar directamente. La figura 1.4 ilustra la
ejecucin parcial de un programa, mostrando las zonas pertinentes de
la memoria y los registros del procesador. El fragmento de programa
que se muestra suma el contenido de la palabra de memoria de la
direccin 940 al contenido de la palabra de memoria de la direccin
941 y almacena el resultado en esta ltima direccin. Se requieren
tres instrucciones, que se pueden describir con tres ciclos de
lectura y tres de ejecucin: 1. El PC contiene 300, la direccin de
la primera instruccin. Se carga el contenido de la ubicacin 300 en
el IR. Ntese que este proceso podra involucrar el uso de un MAR y
un MBR. Por simplicidad, se van a ignorar estos registros
intermedios. Digitalizacin con propsito acadmico Sistemas
Operativos
24. 8 Introduccin a los sistemas informticos 2. Los primeros 4
bits del IR indican que se cargar el AC. Los 12 bits restantes
especifi- can la direccin, que es 940. 3. Se incrementa el PC y se
lee la instruccin siguiente, 4. El contenido anterior del AC y el
contenido de la ubicacin 941 se suman y el resul- tado se almacena
en el AC. 5. Se incrementa el PC y se lee la instruccin siguiente.
6. El contenido del AC se almacena en la ubicacin 941. En este
ejemplo se necesitan tres ciclos de instruccin, donde cada uno
consta de un ciclo de lectura y otro de ejecucin, para sumar el
contenido de la ubicacin 940 al contenido de la ubicacin 941. Con
un conjunto de instrucciones ms complejo haran falta menos ciclos.
La mayora de los procesadores actuales aportan instrucciones que
incluyen ms de una direccin. De esta manera, en el Digitalizacin
con propsito acadmico Sistemas Operativos
25. Interrupciones 9 ciclo de ejecucin de una instruccin
particular pueden participar ms de una referencia a memoria. Adems,
en vez de referencias a memoria, una instruccin puede especificar
una operacin de E/S. Funciones de E/S Hasta ahora se ha discutido
que el funcionamiento del computador es controlado por el
procesador y se ha analizado en primer lugar la interaccin entre el
procesador y la memoria. En la discusin slo se ha aludido al papel
de la componente de E/S. Los mdulos de E/S (un controlador de
disco, por ejemplo) pueden intercambiar datos di- rectamente con el
procesador. Al igual que el procesador puede iniciar una lectura o
escritura en la memoria, indicando la direccin de una ubicacin
especfica, el procesador tambin puede leer datos de un mdulo de E/S
o escribir datos en el mdulo. En este ltimo caso, el procesador
identifica a un dispositivo especfico que es controlado por un
mdulo de E/S determinado. De este modo se podra tener una secuencia
de instrucciones similar a la de la figura 1.4, pero con
instrucciones de E/S en lugar de referencias a memoria. En algunos
casos, es conveniente permitir que los intercambios de E/S se
produzcan directamente con la memoria. En tal caso, el procesador
dar autoridad a un mdulo de E/S para leer o escribir en memoria, de
modo que la transferencia de E/S ocurre sin obstruir al procesador.
Durante la transferencia, el mdulo de E/S emite rdenes de lectura o
escritura en la memoria, librando de responsabilidades al
procesador en el intercambio. Esta operacin se conoce como acceso
directo a memoria (DMA, Direct Memory Access) y ser examinada ms
adelante en este mismo captulo. Por ahora, todo lo que se necesita
saber es que la estructura de interconexin del computador puede que
tenga que permitir una interaccin directa entre la memoria y la
E/S. 1.4 INTERRUPCIONES Casi todos los computadores tienen un
mecanismo mediante el cual otros mdulos (E/S, memoria) pueden
interrumpir la ejecucin normal del procesador. La tabla 1.1 enumera
las clases ms comunes de interrupciones. Las interrupciones
aparecen, principalmente, como una va para mejorar la eficiencia
del procesamiento. Por ejemplo, la mayora de los dispositivos
externos son mucho ms lentos TABLA 1.1 Clases de Interrupciones De
programa Generadas por alguna condicin que se produce como
resultado de la ejecucin de una instruccin, como el desbordamiento
aritmtico, la divisin por cero, el intento de ejecutar una
instruccin ilegal de la mquina o una referencia a una zona de
memoria fuera del espacio permitido al usuario. De reloj Generadas
por un reloj interno del procesador. Esto permite al sistema
operativo llevar a cabo ciertas funciones con determinada
regularidad. De E/S Generadas por un controlador de E/S, para
indicar que una operacin ha terminado normalmente o para indicar
diversas condiciones de error. Por fallo del hardware Generadas por
fallos tales como un corte de energa o un error de paridad de la
memoria. Digitalizacin con propsito acadmico Sistemas
Operativos
26. 10 Introduccin a los sistemas informticos que el
procesador. Supngase que el procesador est transfiriendo datos
hacia una impre- sora, utilizando un esquema para el ciclo de
instruccin como el de la figura 1.2. Despus de cada operacin
ESCRIBIR, el procesador har una pausa y permanecer desocupado hasta
que la impresora se ponga al corriente. La duracin de esta pausa
puede ser del orden de va- rios cientos o incluso miles de ciclos
de instruccin en los que la memoria no est implicada. Est claro que
esto es un derroche en la utilizacin del procesador. La figura 1 -5
a ilustra este estado de las cosas para la aplicacin que se indica
en el prrafo anterior. El programa de usuario lleva a cabo una
serie de llamadas a ESCRIBIR, intercala- das con el procesamiento.
Los segmentos de cdigo 1, 2 y 3 se refieren a secuencias de ins-
trucciones que no implican E/S. Las llamadas a ESCRIBIR son, en
realidad, llamadas a un programa de E/S, que es una utilidad del
sistema que llevar a cabo la operacin concreta de E/S. El programa
de E/S consta de tres secciones: Una secuencia de instrucciones,
etiquetada con un 4 en la figura, de preparacin para la operacin
concreta de E/S, Esto puede incluir la copia de los datos de salida
hacia un buffer especial y preparar los parmetros de la orden del
dispositivo. Digitalizacin con propsito acadmico Sistemas
Operativos
27. Interrupciones 11 La orden concreta de E/S. Sin el uso de
interrupciones, una vez que se emita esta orden, el programa debe
esperar a que el dispositivo de E/S lleve a cabo la funcin pedida.
El programa puede esperar simplemente ejecutando de forma repetida
una operacin que compruebe si ya se realiz la E/S. Una secuencia de
instrucciones, etiquetada con Un 5 en La figura, para completar la
operacin. Esto puede incluir la activacin de un cdigo de condicin
que indique el xito o el fracaso de la operacin. Debido a que la
operacin de E/S puede tardar un tiempo relativamente grande en
terminar, el programa de E/S puede quedar colgado esperando a que
se complete la operacin; as pues, el programa de usuario se detendr
por un tiempo considerable en el momento de la llamada a ESCRIBIR.
Las interrupciones y el ciclo de instruccin Con las interrupciones,
el procesador se puede dedicar a la ejecucin de otras instrucciones
mientras una operacin de E/S est en proceso. Considrese el flujo de
control de la figura 1 .5b. Al igual que antes, el programa de
usuario alcanza un punto en el que hace una llamada al sistema en
forma de una llamada ESCRIBIR. El programa de E/S que se invoca
consta solo del cdigo de preparacin y de la orden concreta de E/S.
Despus de que se ejecuten estas pocas instrucciones, se devuelve el
control al programa de usuario. Mientras tanto, el dispositivo
externo estar ocupado recibiendo datos desde la memoria del
computador e imprimindolos. Esta operacin de E/S se lleva a cabo
concurrentemente con la ejecucin de las instrucciones del programa
de usuario. Cuando el dispositivo de E/S est disponible, es decir,
cuando est preparado para aceptar ms datos desde el procesador, el
mdulo de E/S de dicho dispositivo enviar una seal de solicitud de
interrupcin al procesador. El procesador responde suspendiendo la
operacin del programa en curso y saltando a un programa que da
servicio al dispositivo de E/S en par- ticular, conocido como
rutina de tratamiento de la interrupcin (interrupt handler), reanu-
dando la ejecucin original despus de haber atendido al dispositivo.
En La figura 1 .5b, el instante en que se produce tal interrupcin
viene indicado con un asterisco (*). Desde el punto de vista del
programa de usuario, una interrupcin es solamente eso: una
interrupcin de la secuencia normal de ejecucin. Cuando el
tratamiento de la interrupcin se termina, la ejecucin contina
(figura 1.6). As pues, el programa de usuario no tiene que disponer
de ningn cdigo especial para dar cabida a las interrupciones; el
procesador y el sistema operativo son los responsables de suspender
el programa de usuario y reanudarlo despus en el mismo punto. Para
dar cabida a las interrupciones, se aade un ciclo de interrupcin al
ciclo de instruccin, como se muestra en la figura 1.7. En el ciclo
de interrupcin, el procesador comprueba si ha ocurrido alguna
interrupcin, lo que se indicar con la presencia de una seal de
interrupcin. Si no hay interrupciones pendientes, el procesador
sigue con el ciclo de lectura y trae la prxima instruccin del
programa en curso. Si hay una interrupcin pendiente, el procesador
suspende la ejecucin del programa en curso y ejecuta una rutina de
tratamiento de la interrupcin. La rutina de tratamiento de la
interrupcin forma parte generalmente del sistema operativo.
Normalmente este programa determina la naturaleza de la interrupcin
y realiza cuantas acciones sean necesarias. De hecho, en el ejemplo
que se ha estado siguiendo, la rutina de tratamiento determina el
mdulo de E/S que gener la interrupcin y puede saltar a un programa
que escribir ms datos a dicho mdulo. Cuando termina la rutina de
tratamiento de la interrupcin, el procesador puede reanudar la
ejecucin del programa de usuario en el punto en que sucedi la
interrupcin. Digitalizacin con propsito acadmico Sistemas
Operativos
28. 12 Introduccin a los sistemas informticos Digitalizacin con
propsito acadmico Sistemas Operativos
29. Interrupciones 13 Est claro que hay cierta sobrecarga en
este proceso. Se deben ejecutar instrucciones ex- tra (en la rutina
de tratamiento de la interrupcin) para determinar la naturaleza de
la inte- rrupcin y decidir la accin apropiada. Sin embargo, por la
cantidad de tiempo que se des- perdicia esperando en una operacin
de E/S, puede aprovecharse el procesador de una manera mucho ms
eficaz con el uso de interrupciones. Para apreciar el aumento en la
eficiencia, considrese la figura 1.8, que es un diagrama de tiempos
basado en el flujo de control de las figuras 1.5a y 1.5b. En las
figuras 1.5b y 1.8 se supone que el tiempo exigido para la operacin
de E/S es re- lativamente pequeo: menos que el tiempo para
completar la ejecucin de las instrucciones situadas entre dos
operaciones ESCRIBIR del programa de usuario. El caso ms normal,
es- pecialmente para un dispositivo lento, como es el caso de una
impresora, es aqul en que la operacin de E/S tardar mucho ms tiempo
que la ejecucin de una secuencia de instruc- Digitalizacin con
propsito acadmico Sistemas Operativos
30. 14 Introduccin a los sistemas informticos clones del
usuario. La figura 1.5c muestra esta situacin. En este caso, el
programa de usua- rio alcanza la segunda llamada a ESCRIBIR antes
de que se complete la operacin de E/S desencadenada por la primera
llamada. El resultado es que el programa de usuario se sus- pende
en este punto. Cuando termine la operacin anterior de E/S, se podr
procesar esta nueva llamada a ESCRIBIR y as comenzar una nueva
operacin de E/S. La figura 1.9 muestra el diagrama de tiempos para
esta situacin, con y sin uso de interrupciones. Se Figura 1.9
Diagramas de tiempo de un programa; espera larga de E/S
Digitalizacin con propsito acadmico Sistemas Operativos
31. Interrupciones 15 puede ver que as se produce un aumento de
la eficiencia, pues parte del tiempo en que la operacin de E/S est
en marcha se solapa con la ejecucin de las instrucciones del
usuario. Tratamiento de interrupciones El acontecimiento de una
interrupcin desencadena una serie de sucesos, tanto en el hard-
ware del procesador como en el software. La figura 1.10 muestra una
secuencia tpica. Cuando un dispositivo de E/S completa una operacin
de E/S, se produce en el hardware la siguiente secuencia de
sucesos: 1. El dispositivo emite una seal de interrupcin al
procesador. 2. El procesador finaliza la ejecucin de la instruccin
en curso antes de responder a la interrupcin, tal como se indica en
la figura 1.7. 3. El procesador pregunta por la interrupcin,
comprueba que hay una y enva una seal de reconocimiento al
dispositivo que gener la interrupcin. Este reconocimiento le
permite al dispositivo suprimir la seal de interrupcin. 4. El
procesador necesita ahora prepararse para transferir el control a
la rutina de inte- rrupcin. Para empezar, hace falta salvar la
informacin necesaria para reanudar la eje- cucin del programa en
curso en el punto de la interrupcin. La mnima informacin Figura
1.10 Tratamiento de una interrupcin simple Digitalizacin con
propsito acadmico Sistemas Operativos
32. 16 Introduccin a los sistemas informticos requerida es la
palabra de estado del programa (PSW) y la ubicacin de la prxima
ins- truccin a ejecutar, que se almacena en el contador de
programa. Estos pueden meterse en la pila de control del sistema
(ver el Apndice IB). 5. El procesador carga ahora el contador de
programa con la ubicacin de entrada del programa de tratamiento de
la interrupcin. Dependiendo de la arquitectura del com- putador y
del diseo del sistema operativo, puede haber un solo programa por
cada tipo de interrupcin, o uno por cada dispositivo y por cada
tipo de interrupcin. Si hay ms de una rutina de tratamiento de
interrupcin, el procesador debe determinar a cul invocar. Esta
informacin pudiera estar incluida en la seal original de la
interrupcin, o el procesador debe preguntarle al dispositivo que
cre la interrupcin para obtener respuesta sobre la informacin que
necesita. Una vez que se ha cargado el contador de programa, el
procesador procede con el prximo ciclo de instruccin, que comienza
trayendo la prxima instruccin. Debido a que esta instruccin se
determina por el contenido del contador de programa, el resultado
es que el control se le transfiere al programa que trata la
interrupcin. La ejecucin de este programa se traduce en las
operaciones siguientes: 6. En este punto, el contador de programa y
la PSW relativa al programa interrumpido han sido salvadas en la
pila del sistema. Sin embargo, hay ms informacin que es considerada
parte del "estado" de ejecucin del programa. En particular se
necesita salvar el contenido de los registros del procesador ya que
estos registros pudieran ser utilizados por la rutina de
tratamiento de la interrupcin. As pues es necesario salvar todos
estos valores ms cualquier otra informacin sobre el estado.
Normalmente la rutina de tratamiento de la interrupcin comienza
salvando en la pila el contenido de todos los registros. En el
captulo 3 se discute sobre otra informacin del estado que tambin
puede que tenga que salvarse. La figura l.lla muestra un ejemplo
simple. En este caso, se muestra un programa de usuario que es
interrumpido despus de la instruccin de la ubicacin N. El contenido
de todos los registros ms la direccin de la prxima instruccin (N+l)
son guardados en la pila. El puntero a la pila se actualiza para
que apunte a la nueva cima y el contador de programa se actualiza
para que apunte al comienzo de la rutina de servicio de la
interrupcin. 7. La rutina de tratamiento de la interrupcin puede
ahora proceder a procesar la inte- rrupcin. Esto incluir un examen
del estado de la informacin relativa a la operacin de E/S o a
cualquier otro evento que haya causado la interrupcin. Esto puede
tambin involucrar el envo adicional de rdenes o reconocimientos al
dispositivo de E/S. 8. Cuando se completa el tratamiento de la
interrupcin, se recuperan de la pila los valores de los registros
que se salvaron y se restauran los registros (ver por ejemplo la
figura 1.1 Ib). 9. El acto final es restaurar los valores de la PSW
y del contador de programa a partir de la pila. Como resultado, la
prxima instruccin a ser ejecutada ser del programa inte- rrumpido
previamente. Es importante salvar toda la informacin sobre el
estado del programa interrumpido para su reanudacin posterior,
porque la rutina de tratamiento de la interrupcin no es una rutina
llamada desde el programa. Por el contrario, la interrupcin puede
producirse en cualquier momento y por tanto en cualquier punto de
la ejecucin de un programa de usuario. Su ocurrencia es
impredecible. Ms an, como se ver ms adelante en esta seccin, los
dos programas pueden no tener nada en comn y pueden pertenecer a
dos usuarios diferentes. Digitalizacin con propsito acadmico
Sistemas Operativos
33. Interrupciones 17 FIGURA 1.11 cambios en la memoria y en
los registros durante una interrupcin Digitalizacin con propsito
acadmico Sistemas Operativos
34. 18 Introduccin a los sistemas informticos Interrupciones
mltiples En la discusin anterior se ha analizado el acontecimiento
de una sola interrupcin. Sin em- bargo, supngase que pueden
producirse mltiples interrupciones. Por ejemplo, un programa puede
estar recibiendo datos de una lnea de comunicaciones e imprimiendo
resultados. La impresora generar una interrupcin cada vez que se
completa una operacin de impresin. El controlador de la lnea de
comunicaciones generar una interrupcin cada vez que llega una
unidad de datos. Esta unidad puede ser un solo carcter o un bloque,
dependiendo de la naturaleza de las normas de comunicacin. En
cualquier caso, es posible que se produzca una interrupcin del
controlador de comunicaciones cuando se est procesando una
interrupcin de la impresora. Hay dos enfoques para tratar las
interrupciones mltiples. El primero es inhabilitar las in-
terrupciones mientras se est procesando una. Una interrupcin
inhabilitada quiere decir que el procesador ignorar la seal de
interrupcin. Si durante este tiempo se produce una interrupcin, sta
generalmente quedar pendiente y ser comprobada por el procesador
despus que ste habilite las interrupciones. De este modo, cuando un
programa de usuario est ejecutndose y se produce una interrupcin,
se inhabilitan inmediatamente las interrup- ciones. Despus de
terminar la rutina que trata la interrupcin, se habilitan las
interrupciones antes de reanudar el programa de usuario y el
procesador comprueba si se ha producido al- guna interrupcin
adicional. Este enfoque es simple y elegante porque las
interrupciones se tratan en un orden estrictamente secuencial
(figura 1.12a). La limitacin de este enfoque es que no tiene en
cuenta las prioridades relativas o necesi- dades crticas en tiempo.
Por ejemplo, cuando llega una interrupcin desde la lnea de comu-
nicaciones, se necesita atender sta rpidamente para hacer sitio a
nuevas entradas. Si el pri- mer lote de entrada no ha sido an
procesado cuando llega el segundo, pueden perderse datos. Un
segundo enfoque es definir prioridades para las interrupciones y
permitir que una interrupcin de una prioridad ms alta pueda
interrumpir a la rutina de tratamiento de una interrupcin de
prioridad ms baja (figura 1.12b). Como ejemplo de este segundo
enfoque, considrese un sistema con tres dispositivos de E/S: una
impresora, un disco y una lnea de comunicaciones, con prioridad
creciente de 2,4 y 5, respectivamente. La figura 1.13 ilustra una
posible secuencia. Un programa de usuario comienza en t = 0. En t=
10, se produce una interrupcin de la impresora; la informacin del
usuario se coloca en la pila del sistema y la ejecucin contina en
la rutina de servicio de la interrupcin (ISR, Interrupt Service
Routine) de la impresora. Mientras esta rutina sigue ejecutndose,
en t = 15, se produce una interrupcin de comunicaciones. Como la
lnea de comunicaciones tiene una prioridad ms alta que la
impresora, la interrupcin es atendida. La ISR es interrumpida, su
estado se pone en la pila y la ejecucin contina en la ISR de
comunicaciones. Mientras esta rutina est ejecutndose, se produce
una interrupcin del disco (t = 20). Debido a que esta interrupcin
es de ms baja prioridad, queda retenida y la ISR de comunicaciones
se ejecuta hasta el final. Cuando se completa la ISR de
comunicaciones (t = 25), se restaura el estado previo del
procesador, lo que significa continuar ejecutando la ISR de la
impresora. Sin embargo, antes de ejecutar una sola instruccin de
esta rutina, el procesador atiende a la mayor prioridad de la
interrupcin del disco y transfiere el control a la ISR del disco.
Slo cuando se completa esta rutina (t = 35) se reanuda la ISR de la
impresora. Cuando se termina esta ltima (t = 40), el control vuelve
finalmente al programa de usuario. Digitalizacin con propsito
acadmico Sistemas Operativos
35. Interrupciones 19 Multiprogramacin An con el uso de
interrupciones, puede que un procesador no est aprovechado de una
manera muy eficiente. Por ejemplo, considrese de nuevo la figura
1.9b. Si el tiempo nece- sario para completar una operacin de E/S
es mucho mayor que el cdigo del usuario entre llamadas de E/S (una
situacin habitual), entonces el procesador va a estar desocupado
du- rante gran parte del tiempo. Una solucin a este problema es
permitir que varios programas de usuario estn activos a un mismo
tiempo. Supngase, por ejemplo, que el procesador tiene que ejecutar
dos programas. Uno de ellos es simplemente un programa que lee
datos de la memoria y los saca por un dispositivo Digitalizacin con
propsito acadmico Sistemas Operativos
36. 20 Introduccin a los sistemas informticos externo; el otro
es una aplicacin que supone una gran cantidad de clculos. El
procesador puede dar comienzo al programa de salida, enviar una
orden ESCRIBIR al dispositivo ex- terrno y luego comenzar la
ejecucin de la otra aplicacin. Cuando el procesador tiene que
tratar con una serie de programas, la secuencia en que es- tos se
ejecutan depender de su prioridad relativa y de si estn esperando
una E/S. Cuando un programa es interrumpido y se transfiere el
control a la rutina de tratamiento de la inte- rrupcin, una vez que
sta haya terminado, puede que no se devuelva el control inmediata-
mente al programa de usuario que estaba ejecutndose en el momento
de la interrupcin. En su lugar, el control puede transferirse a
algn otro programa pendiente que tenga mayor prioridad. Finalmente,
cuando tenga la prioridad ms alta, se reanudar el programa de
usuario que fue interrumpido. Esta situacin de varios programas que
se ejecutan por turnos se conoce como multiprogramacin y ser
discutida ms adelante en el captulo 2. 1.5 JERARQUA DE MEMORIA Las
limitaciones de diseo de la memoria de un computador se pueden
resumir en tres preguntas: qu cantidad?, qu velocidad? y qu coste?
La cuestin de qu cantidad est relativamente abierta. Segn sea la
capacidad, probable- mente se construirn aplicaciones que la
utilicen. La cuestin de la velocidad es, en cierto sentido, fcil de
responder. Para lograr un mayor rendimiento, la memoria debe ser
capaz de ir al ritmo del procesador. Es decir, mientras el
procesador est ejecutando instrucciones, se- Digitalizacin con
propsito acadmico Sistemas Operativos
37. Jerarqua de memoria 21 ra conveniente no tener que hacer
pausas esperando a instrucciones u operandos. La ltima pregunta
tambin hay que tenerla en cuenta. Para un sistema prctico, el coste
de la memo- ria debe ser razonable en relacin a los otros
componentes. Como se puede suponer, estas tres caractersticas
compiten entre s: coste, capacidad y tiempo de acceso. Desde
siempre se ha utilizado una gran variedad de tecnologas para im-
plementar los sistemas de memoria. A lo largo de este abanico de
tecnologas, se cumplen las siguientes relaciones: A menor tiempo de
acceso, mayor coste por bit A mayor capacidad, menor coste por bit
A mayor capacidad, mayor tiempo de acceso El dilema que se plantea
el diseador es evidente. El diseador deseara usar tecnologas de
memoria que le ofrezcan una gran capacidad, porque se necesita y
para que el coste por bit sea bajo. Sin embargo, para cumplir con
los requisitos de rendimiento, puede necesitar usar memoria cara,
de capacidad relativamente menor y con tiempos de acceso rpidos. La
salida a este dilema no es depender de un nico componente de
memoria o una tecno- loga, sino emplear una jerarqua de memoria. En
la figura 1.14a se ilustra una jerarqua tra- dicional. A medida que
se desciende por la jerarqua se tienen las siguientes condiciones:
1. Disminucin del coste por bit 2. Aumento de la capacidad 3.
Aumento del tiempo de acceso 4. Disminucin de la frecuencia de
acceso a la memoria por parte del procesador As pues, las memorias
ms pequeas, caras y rpidas son reemplazadas por memorias de ms
capacidad, ms baratas y lentas. La clave del xito de esta
organizacin es el ltimo punto: disminuir la frecuencia de acceso.
Este concepto se examinar en mayor detalle cuando se discuta la
cach, dentro de este captulo y la memoria virtual, ms adelante en
el texto. Ahora se ofrecer una breve explicacin. Supngase que el
procesador tiene acceso a dos niveles de memoria. El nivel 1
contiene 1000 palabras y tiene un tiempo de acceso de 0,1s; el
nivel 2 contiene 100.000 palabras y tiene un tiempo de acceso de l
s. Supngase que, si la palabra a acceder est en el nivel 1,
entonces el procesador accede a ella directamente. Si est en el
nivel 2, entonces la palabra se transfiere primero al nivel 1 y
despus accede el procesador. Para simplificar, se ignorar el tiempo
exigido por el procesador para saber si la palabra est en el nivel
1 o en el nivel 2. La figura 1.15 muestra la forma general de la
curva que expresa esta situacin. Como se puede observar, para altos
porcentajes de accesos al nivel 1, el tiempo medio de acceso total
es mucho ms parecido al del nivel 1 que al del nivel 2. As pues, la
estrategia funciona en principio, pero solamente si se cumplen las
condiciones de la 1 a la 4. La figura 1.16 muestra las
caractersticas tpicas de otros sistemas de memoria. Esta figura
demuestra que, empleando varias tecnologas, existe una gama de
sistemas de memoria que satisfacen las condiciones de la 1 a la 3.
Por fortuna, la condicin 4 tambin se cumple en general. La base del
cumplimiento de la condicin 4 es un principio conocido como cercana
de referencias [DENN68]. Durante el curso de ejecucin de un
programa, las referencias a me- moria por parte del procesador,
tanto para instrucciones como para datos, tienden a estar
agrupadas. Los programas contienen normalmente un cierto nmero de
bucles y de subruti- Digitalizacin con propsito acadmico Sistemas
Operativos
38. 22 Introduccin a los sistemas informticos nas iterativas.
Una vez que se entra en un bucle o en una subrutina, se producirn
referencias repetidas a un pequeo conjunto de instrucciones. De
forma similar, las operaciones sobre tablas y vectores suponen el
acceso a un conjunto de palabras de datos que estn agrupadas.
Durante un largo perodo, las agrupaciones en uso cambian, pero, en
un perodo corto, el procesador trabaja principalmente con grupos
fijos de referencias a memoria. Por consiguiente, es posible
organizar los datos en la jerarqua de modo que el porcentaje de
accesos a los niveles inmediatamente inferiores sea
considerablemente menor que el del nivel superior. Considrese el
ejemplo de dos niveles ya presentado. Sea el nivel 2 de me- moria
el que contiene todos los datos e instrucciones del programa. Las
agrupaciones en curso se pueden situar temporalmente en el nivel 1.
De cuando en cuando, una de las agru- paciones del nivel 1 tendr
que ser descargada de nuevo al nivel 2, para hacer sitio a alguna
nueva agrupacin que entre en el nivel 1. En promedio, sin embargo,
la mayora de las refe- rencias sern a instrucciones y datos
contenidos en el nivel 1. Digitalizacin con propsito acadmico
Sistemas Operativos
39. Jerarqua de Memoria 23 Este principio puede aplicarse con
ms de dos niveles de memoria. Considrese la jerar- qua que se
muestra en la figura 1. 14a. El tipo ms rpido y caro de memoria
consta de re- gistros internos del procesador. Normalmente, un
procesador tendr unas pocas decenas de registros, aunque algunas
mquinas poseen cientos de estos registros. Bajando dos niveles se
tiene la memoria principal, tambin conocida como memoria real, que
es la memoria interna principal del computador. Cada ubicacin de la
memoria principal tiene una nica direccin y la mayora de las
instrucciones de mquina se refieren a una o ms direcciones de la
memoria principal. La memoria principal se suele ampliar con una
pequea memoria cach de alta velocidad. La cach no es generalmente
visible para el programador o incluso el procesador. Es un
dispositivo para encauzar el movimiento de los datos entre la
memoria principal y los registros del procesador y as mejorar el
rendimiento. Las tres formas de memoria descritas son,
generalmente, voltiles y emplean tecnologas de semiconductores. El
uso de los tres niveles aprovecha la variedad de tipos de las
memorias de semiconductores, que difieren en velocidad y coste. Los
datos se almacenan de manera permanente en dispositivos externos de
almacenamiento masivo, de los cuales los ms comunes son los discos
y las cintas magnticas. La memoria externa, no voltil, tambin se
denomina memoria secundaria o auxiliar. sta es usada para almacenar
programas y archivos de datos y suelen ser visibles para el
programador slo en forma de archivos y registros y no mediante
bytes o palabras individuales. Los discos tambin se usan para
ofrecer una ampliacin de la memoria principal, conocida como
almacenamiento virtual o memoria vir- tual, que ser discutida en
los captulos 6 y 7. Digitalizacin con propsito acadmico Sistemas
Operativos
40. 24 Introduccin a los sistemas informticos Se pueden incluir
otras formas de memoria en la jerarqua. Por ejemplo, los grandes
com- putadores centrales (mainframes) de IBM incluyen una forma de
memoria interna conocida como memoria expandida, que utiliza una
tecnologa de semiconductores ms lenta y me- nos cara que la de la
memoria principal. Estrictamente hablando, esta tecnologa no encaja
en la jerarqua sino que constituye una rama paralela: Los datos se
pueden mover entre la memoria principal y la memoria expandida,
pero no entre la memoria expandida y la me- moria externa. Otras
formas de memoria secundaria son los discos pticos y la memoria de
burbuja. Por ltimo, se pueden aadir, por software, niveles
adicionales a la jerarqua. Una parte de la memoria principal puede
ser utilizada como un buffer para guardar temporal- mente los datos
transferidos con el disco. Dicha tcnica, ms conocida como cach de
disco (y examinada en detalle en el captulo 10), mejora el
rendimiento de dos formas: Las escrituras a disco se agrupan. En
lugar de muchas transferencias pequeas de datos, se tienen unas
pocas transferencias grandes de datos. Esto mejora el rendimiento
del disco y reduce la utilizacin del procesador. Algunos datos
destinados a la salida pueden ser referenciados por un programa
antes del prximo volcado a disco. En tal caso, los datos son
recuperados rpidamente desde la cach de software en lugar de
hacerse lentamente desde el disco. La figura 1.14b muestra una
jerarqua moderna de memoria que incluye una cach de disco y un
disco ptico como otros tipos de memoria secundaria. Digitalizacin
con propsito acadmico Sistemas Operativos
41. Memoria cache 25 El Apndice 1A analiza las implicaciones
que tienen en el rendimiento las estructuras de memoria multinivel.
1.6 MEMORIA CACHE2 Aunque la memoria cach es invisible para el
sistema operativo, interacta con otras partes del hardware de
gestin de memoria. Es ms, muchos de los principios utilizados en la
me- moria virtual son tambin aplicables a la memoria cach.
Motivacin En todos los ciclos de instruccin, el procesador accede a
la memoria, al menos una vez, para leer la instruccin y, a menudo,
algunas veces ms para leer los operandos y/o almacenar los
resultados. La frecuencia con que el procesador puede ejecutar las
instrucciones est claramente limitada por el tiempo de ciclo de
memoria. Esta limitacin ha sido de hecho un problema significativo,
debido al persistente desacuerdo entre las velocidades del
procesador y de la memoria principal. La figura 1.17, que puede
considerarse representativa, ilustra esta situacin. La figura
muestra que la velocidad de la memoria no se corresponde con la
velocidad del procesador. Se debe adoptar un compromiso entre la
velocidad, el coste y el tamao de la memoria. En el mejor de los
casos, la memoria principal se construira con la misma tecno- 2 El
trmino ingls cache suele traducirse en la jerga tcnica en espaol
por el trmino cach (N. del T.) Digitalizacin con propsito acadmico
Sistemas Operativos
42. 26 Introduccin a los sistemas informticos loga que los
registros del procesado