Materia: Sistemas Operativos basados en Software Libre
Profesor: Darin Mosquera y Luis Cano
MEMORIA VIRTUAL
Estudiaremos la memoria virtual en donde la gestin de memoria tiene una interrelacin estrecha y compleja. La memoria virtual permite la ejecucin de procesos cuando slo algunas partes de sus espacios de direcciones estn residentes 1 en memoria principal. Bsicamente, las partes activamente utilizadas de un espacio de direcciones se guardan en memoria, y el resto se traen de memoria secundaria como y cuando se necesitan. Dependiendo de si se utiliza paginacin o segmentacin para gestionar la memoria fsica, la gestin de memoria virtual se conoce como paginacin por demanda o segmentacin por demanda.
ESTRUCTURA DEL HARDWARE Y DE CONTROL
Comparando la paginacin y segmentacin simple con la particin esttica y dinmica, se establecen las bases para un avance fundamental en la gestin de memoria. Las claves de este avance son dos caractersticas de la paginacin y la segmentacin:
Todas las referencias a la memoria dentro de un proceso son direcciones lgicas que se traducirn dinmicamente a direcciones fsicas durante la ejecucin. Esto significa que un proceso puede cargarse y descargarse de la memoria principal de tal forma que ocupe regiones diferentes de la memoria principal en momentos distintos a lo largo de su ejecucin. Un proceso puede dividirse en varias partes (pginas o segmentos) y no es necesario que estas partes se encuentren continuas en la memoria principal durante la ejecucin. Esto es posible por la combinacin de la traduccin dinmica de direcciones en tiempo de ejecucin y el uso de una tabla de pginas o de segmentos.
Si estas dos caractersticas estn presentes, no ser necesario que todas las pginas o todos los segmentos de un proceso estn en la memoria durante la ejecucin. Si tanto el fragmento (pgina o segmento) que contiene la siguiente instruccin a leer como la parte que contiene los prximos datos a acceder estn en la memoria principal, la ejecucin y el uso de una tabla de pginas o de segmento.
1 Residente: Parte del proceso que est realmente en la memoria en un instante determinado.
MEMORIA VIRTUAL Y CERCANA DE REFERENCIAS
Las ventajas de la memoria virtual son importantes. La cuestin es Funciona este esquema? se produjo un gran debate sobre este punto, pero la experiencia con numerosos sistemas operativos demuestra ms all de cualquier duda que la memoria virtual funciona. Por consiguiente ha llegado a ser un componente esencial de la mayora de los sistemas operativos actuales. En un estado estable, prcticamente toda la memoria principal estar ocupada con fragmentos de procesos, por lo que el procesador y el sistema operativo tendrn acceso directo a la mayor cantidad de procesos posible, cuando el sistema operativo traiga a la memoria un fragmento de manera casi inmediata. Demasiados intercambios de fragmentos conducen a lo que se conoce como hiperpaginacin (thrashing): El procesador consume ms tiempo intercambiando fragmentos que ejecutando instrucciones de usuario.
El principio de cercana afirma que las referencias a los datos y al programa dentro de un proceso tienden a agruparse. Por lo tanto, es vlida la suposicin de que durante cortos periodos de tiempo, se necesitarn slo unos pocos fragmentos de un proceso. Adems, sera posible hacer predicciones inteligentes sobre qu fragmentos de un proceso se necesitarn en un futuro cercano y as evitar la hiperpaginacin.
PAGINACIN
El termino memoria virtual se asocia normalmente con sistemas que emplean paginacin, aunque tambin se puede usar memoria virtual basada en la segmentacin. En el estudio de la paginacin simple se indic que, cuando carga todas sus pginas en la memoria principal, se crea y carga en la memoria principal una tabla de pginas. Cada entrada de la tabla de pginas contiene el nmero de marco de la pgina correspondiente en la memoria principal.
2
2 P: Indica si hay presencia de la pgina en la memoria principal. M: Indica si la pgina fue modificada.
Estructura de la Tabla de Pginas
El mecanismo bsico de lectura de una palabra de la memoria supone la traduccin por medio de la tabla de pginas de una direccin virtual o lgica, formada por un nmero de pgina y un desplazamiento, a una direccin fsica que est formada por un nmero de marco y un desplazamiento.
Tamao de pgina
Una decisin importante de diseo de hardware es el tamao de pgina que se va a usar. Hay varios factores que considerar. Uno es la fragmentacin interna. Sin duda, cuando menor sea el tamao de pgina, menor ser la cantidad de fragmentacin interna. Para optimizar el uso de la memoria principal, es positivo reducir la fragmentacin interna. Por otro lado, cuanto menor sea la pgina, mayor ser el nmero de pginas que se necesitan por proceso. Un nmero mayor de pginas por proceso significa que las tablas de pgina sern mayores.
SEGMENTACIN
Implicaciones de la memoria virtual
La segmentacin permite al programador la memoria como si constara de varios espacios de direcciones o segmentos. Los segmentos pueden ser de distintos tamaos, incluso de forma dinmica. Las diferencias a la memoria consta de una direccin de la forma (nmero de segmentos, desplazamiento).
Esta organizacin ofrece al programador varias ventajas sobre un espacio de direcciones no segmentado:
Simplifica la gestin de estructura de datos crecientes. Permite modificar y recopilar los programas independientemente, sin que sea necesario recopilar o volver a montar el conjunto de programas por completo. Se presta a la comparticin entre procesos. Se presta a la proteccin
Organizacin
En el estudio de la segmentacin simple, se lleg a la conclusin de que cada proceso tiene su propia tabla de segmentos y que, cuando todos los segmentos se encuentran en la memoria principal, la tabla de segmentos del proceso se crea y se carga en la memoria. Cada entrada de la tabla de segmentos contiene la direccin de comienzo del segmento correspondiente de la memoria principal, as como su longitud.
PAGINACIN Y SEGMENTACIN COMBINADAS
Tanto la paginacin como la segmentacin tienen sus ventajas. La paginacin, que es transparente al programador, elimina la fragmentacin externa y de este modo aprovecha la memoria principal eficientemente. La segmentacin, que es visible para el programador, tiene capacidad de gestionar estructuras de datos que puedan crecer, la modularidad, dar soporte a la comparticin y a la proteccin.
En este sistema combinado e espacio de direcciones del usuario se divide en un nmero de segmentos, a discrecin del programador. Cada segmento es dividido en un nmero de pginas de tamao fijo, que son el tamao de los marcos de la memoria principal.
SOFTWARE DEL SISTEMA OPERATIVO
El diseo del gestor de memoria en un sistema operativo depende de tres reas fundamentales de decisin:
Si se emplean o no tcnicas de memoria virtual. El uso de paginacin, segmentacin o ambas. Los algoritmos empleados para los diversos problemas de la gestin de memoria.
Polticas de lectura La poltica de lectura (fetch) est relacionada con la decisin de cundo se debe cargar una pgina en la memoria principal. Las dos alternativas ms comunes son la paginacin por demanda y la paginacin previa.
Con la paginacin por demanda, se trae una pgina a la memoria principal slo cuando se hace referencia a una posicin en dicha pgina. Si los otros elementos de la poltica de gestin de memoria funcionan adecuadamente, debe ocurrir lo siguiente: Cuando un proceso se ejecuta por primera vez, se producir un aluvin de fallos de pginas.
Con la paginacin previa, se cargan otras pginas distintas a las demandadas debido a un fallo de pgina. El principal atractivo de esta estrategia est en las caractersticas de la mayora de los dispositivos de memoria secundaria, como los discos que tienen un tiempo de bsqueda y una latencia de giro.
Polticas de ubicacin Tiene que ver con determinar dnde va a residir una parte de un proceso en la memoria principal. En un sistema puro de segmentacin, la poltica de ubicacin es un aspecto importante del diseo; como posibles alternativas se tienen las polticas del mejor ajuste, el primer ajuste y otras.
Poltica de Reemplazo En la mayora de los textos de sistemas operativos, el tratamiento de la gestin de memoria incluye un apartado titulado <<Polticas de reemplazo>>, que trata de la seleccin de las pginas a reemplazar en la memoria principal cuando se debe cargar una nueva pgina. Este punto resulta difcil de explicar a veces porque se encuentran involucrados varios conceptos interrelacionados como los siguientes:
El nmero de marcos de pgina a asignar a cada proceso activo. Si el conjunto de pginas a considerar para el reemplazo debe limitarse a las del proceso que provoc el fallo de pgina o abarcar para todos los marcos de pgina situados en la memoria principal. De entre el conjunto de pginas consideradas, cul es la pgina especfica que debe elegirse para el reemplazo.
Polticas de lectura
Por demanda
Paginacin previa
Polticas de ubicacin
Polticas de reemplazo
Algoritmos bsicos
ptimo
Usada menos recientemente (LRU)
Primera en llegar/primera en salir (FIFO)
Reloj
Memoria intermedia de pginas
Gestin del Conjunto residente Tamao del conjunto residente
Fijo
Variable Alcance del reemplazo
Global
Local
Polticas de vaciado
Por demanda
Vaciado previo
Control de carga
Grado de multiprogramacin
TIPOS DE MEMORIA
DRAM Los circuitos integrados o IC que constituyen la configuracin de memoria de su computador se conocen como Direct Random Access Memory, o DRAM. La DRAM es, sin lugar a dudas, el tipo de memoria ms comn. La calidad de los chips de DRAM utilizados en un mdulo de memoria es el factor ms importante que determina la calidad y confiabilidad generales del mdulo.
Memoria en tarjeta de crdito
Ha sido diseada para su uso en los computadores laptop y porttiles. Debido a sus dimensiones compactas, la memoria en tarjeta de crdito es ideal para las aplicaciones de espacio limitado. (Se le denomina memoria de tarjeta de crdito debido a que sus dimensiones son aproximadamente las de una tarjeta de crdito.)
DIMM
Se utilizan como minimo en las configuraciones que brindan soporte para un bus de memoria de 64 bits o ms amplio. En muchos casos, estas configuraciones se basan en procesadores poderosos, tales como Pentium de Intel o PowerPC de IBM.
Error!
DDR o SDRAM II
Double Data Rate SDRAM. La DDR se basa en el diseo de la SDRAM, con mejoras que suponen un aumento de la velocidad de transferencia. Como resultado de esta innovacin, la DDR permite la lectura de datos tanto en la fase alta como baja del ciclo del reloj, con lo que se obtiene el doble de ancho de banda que con la SDRAM estndar. La DDR duplica la velocidad respecto a la tecnologa SDRAM sin aumentar la frecuencia del reloj.
RAM (Random Acces Memory)
Es utilizada para almacenar instrucciones, variables y otros parmetros de los que el usuario ha activado.
Su contenido se pierde cuando el computador se apaga.
ROM( Read Only Memory)
Se caracteriza por ser nica y exclusivamente de lectura.
En ella se almacena la informacin necesaria para activar el sistema operativo y reconocer los perifricos conectados al sistema, como el monitor, el teclado o el ratn.
TERMINOS CLAVE
Cercana Conjunto residente Dispersin Fallo de pgina Fragmentacin externa Fragmentacin interna Gestin del conjunto residente Hiperpaginacin Marco Memoria real Memoria virtual Pgina Paginacin Paginacin por demanda Paginacin previa Poltica de lectura Poltica de reemplazo Poltica de ubicacin Segmento Tabla de pginas Tabla de segmento Tabla de dispersin
INVESTIGAR
1. Cul es la diferencia entre paginacin simple y paginacin con memoria virtual? 2. Cul es la diferencia entre gestin del conjunto residente y poltica de reemplazo de pginas? 3. Qu elementos se encuentran, normalmente, en una entrada de tabla de pginas? Defina brevemente cada uno de ellos. 4. Defina los algoritmos FIFO, LRU, RELOJ, PTIMO.
BIBLIOGRAFA
Milan Milenkovc. Sistemas Operativos, Segunda edicin. William Satallings. Sistemas Operativos, Quinta Edicin. Carretero Garca, De Miguel Prez. Sistemas Operativos, Una visin aplicada. Andrew S. Tanenbaum. Sistemas Operativos Distribuidos.