Stallings william_-_sistemas_operativos

724

Click here to load reader

Transcript of Stallings william_-_sistemas_operativos

  1. 1. SISTEMAS OPERATIVOS Digitalizacin con propsito acadmico Sistemas Operativos
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 28. 12 Introduccin a los sistemas informticos Digitalizacin con propsito acadmico Sistemas Operativos
  29. 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. 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. 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. 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. 33. Interrupciones 17 FIGURA 1.11 cambios en la memoria y en los registros durante una interrupcin Digitalizacin con propsito acadmico Sistemas Operativos
  34. 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. 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. 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. 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. 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. 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. 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. 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. 42. 26 Introduccin a los sistemas informticos loga que los registros del procesado