Vous êtes sur la page 1sur 7

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO

FACULTAD DE INFORMATICA Y ELECTRNICA ESCUELA DE INGENIERA ELECTRONICA TELECOMUNICACIONES Y REDES FUNDAMENTOS DE SISTEMAS OPERATIVO
INTEGRANTES:
 MAURICIO LALALEO  KLEBER CHULDE  JAVIER VALLEJO  DENNY POSLIGUA

CURSO: 3RO |B} TEMA:


 MEMORIA VIRTUAL  ESTRUCTURA DE HARDWARE Y CONTROL

GRUPO: 5

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO Memoria virtual La memoria virtual es una tcnica de administracin de la memoria real que permite al sistema operativo brindarle al software de usuario y a s mismo un espacio de direcciones mayor que la memoria real o fsica.

La mayora de los ordenadores tienen cuatro tipos de memoria: registros en la CPU, la memoria cach (tanto dentro como fuera del CPU), la memoria fsica (generalmente en forma de RAM, donde la CPU puede escribir y leer directa y razonablemente rpido) y el disco duro que es mucho ms lento, pero tambin ms grande y barato. Muchas aplicaciones requieren el acceso a ms informacin (cdigo y datos) que la que se puede mantener en memoria fsica. Esto es as sobre todo cuando el sistema operativo permite mltiples procesos y aplicaciones ejecutndose simultneamente. Una solucin al problema de necesitar mayor cantidad de memoria de la que se posee consiste en que las aplicaciones mantenga n parte de su informacin en disco, movindola a la memoria principal cuando sea necesario. Hay varias formas de hacer esto. Una opcin es que la aplicacin misma sea responsable de decidir qu informacin ser guardada en cada sitio (segmentacin), y de t raerla y llevarla. La desventaja de esto, adems de la dificultad en el diseo e implementacin del programa, es que es muy probable que los intereses sobre la memoria de dos o varios programas generen conflictos entre s: cada programador podra realizar su diseo teniendo en cuenta que es el nico programa ejecutndose en el sistema. La alternativa es usar memoria virtual, donde la combinacin entre hardware especial y el sistema operativo hace uso de la memoria principal y la secundaria para hacer parecer que el ordenador tiene mucha ms memoria principal (RAM) que la que realmente posee. Este mtodo es invisible a los procesos. La cantidad de memoria mxima que se puede hacer ver que hay tiene que ver con las caractersticas del procesador. Por ejemplo, en un sistema de 32 bits, el mximo es 232, lo que da 4096 Megabytes (4 Gigabytes). Todo esto hace el trabajo del programador de aplicaciones mucho ms fcil, al poder ignorar completamente la necesidad de mover datos entre los distintos espacios de memoria. Aunque la memoria virtual podra estar implementada por el software del sistema operativo, en la prctica casi siempre se usa una combinacin de hardware y software, dado el esfuerzo extra que implicara para el procesador.

Operacin bsica Cuando se usa Memoria Virtual, o cuando una direcc in es leda o escrita por la CPU, una parte del hardware dentro de la computadora traduce las direcciones de memoria generadas por el software (direcciones virtuales) en:
y y

la direccin real de memoria (la direccin de memoria fsica), o una indicacin de que la direccin de memoria deseada no se encuentra en memoria principal (llamado excepcin de memoria virtual)

En el primer caso, la referencia a la memoria es completada, como si la memoria virtual no hubiera estado involucrada: el software accede donde deba y sigue ejecutando normalmente. En el segundo caso, el sistema operativo es invocado para manejar la situacin y permitir que el programa siga ejecutando o aborte segn sea el caso. La memoria virtual es una tcnica para proporcionar la simulacin de un espacio de memoria mucho mayor que la memoria fsica de una mquina. Esta "ilusin" permite que los programas se ejecuten sin tener en cuenta el tamao exacto de la memoria fsica. La ilusin de la memoria virtual est soportada por el mecanismo de traduccin de memoria, junto con una gran cantidad de almacenamiento rpido en disco duro. As en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que una pequea parte de l, est en memoria real y el resto almacenado en el disco, y puede ser referenciado fcilmente. Debido a que slo la parte de memoria virtual que est almacenada en la memoria principal, es accesible a la CPU, segn un programa va ejecutndose, la proximidad de referencias a memoria cambia, necesitando que algunas partes de la memoria virtual se traigan a la memoria principal desde el disco, mientras que otras ya ejecutadas, se pueden volver a depositar en el disco (archivos de paginacin). La memoria virtual ha llegado a ser un componente esencial de la mayora de los sistemas operativos actuales. Y como en un instante dado, en la memoria slo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener ms procesos en la memoria. Es ms, se ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se descargan de la memoria. Sin embargo, el sistema operativo debe saber cmo gestionar este esquema. La memoria virtual tambin simplifica la carga del programa para su ejecucin llamada reubicacin, este procedimiento permite que el

mismo programa se ejecute en cualquier posicin de la memoria fsica. En un estado estable, prcticamente toda la memoria principal estar ocupada con fragmentos de procesos, por lo que el procesador y el S.O tendrn acceso directo a la mayor cantidad de procesos posibles, y cuando el S.O traiga a la memoria un fragmento, deber expulsar otro. Si expulsa un fragmento justo antes de ser usado, tendr que traer de nuevo el fragmento de manera casi inmediata. Demasiados intercambios de fragmentos conducen a lo que se conoce como hiperpaginacin: donde el procesador consume ms tiempo intercambiando fragmentos que ejecutando instrucciones de usuario. Para evitarlo el sistema operativo intenta adivinar, en funcin de la historia reciente, qu fragmentos se usarn con me nor probabilidad en un futuro prximo (vase algoritmos de reemplazo de pginas ). Los argumentos anteriores se basan en el principio de cercana de referencias o principio de localidad que afirma que las referencias a los datos y el programa dentro de un proceso tienden a agruparse. Por lo tanto, es vlida la suposicin de que, durante cortos perodos de tiempo, se necesitarn slo unos pocos fragmentos de un proceso. Una manera de confirmar el principio de cercana es considerar el rendimiento de un proceso en un entorno de memoria virtual. El principio de cercana sugiere que los esquemas de memoria virtual pueden funcionar. Para que la memoria virtual sea prctica y efectiva, se necesitan dos ingredientes. Primero, tiene que existir un soporte de hardware y, en segundo lugar, el S.O deb e incluir un software para gestionar el movimiento de pginas o segmentos entre memoria secundaria y memoria principal. Justo despus de obtener la direccin fsica y antes de consultar el dato en memoria principal se busca en memoria -cache, si est entre los datos recientemente usados la bsqueda tendr xito, pero si falla, la memoria virtual consulta memoria principal , , en el peor de los casos se consulta de disco (swapping).

Detalles La traduccin de las direcciones virtuales a reales es implement ada por una Unidad de Manejo de Memoria (MMU). El sistema operativo es el responsable de decidir qu partes de la memoria del programa es mantenida en memoria fsica. Adems mantiene las tablas de traduccin de direcciones (si se usa paginacin la tabla se denomina tabla de paginacin), que proveen las relaciones entre direcciones virtuales y fsicas, para uso de la MMU. Finalment e, cuando una excepcin de memoria virtual ocurre, el sistema operativo es responsable de ubicar un rea de memoria fsica para guardar la informacin faltante, trayendo la informacin desde el disco, actualizando las tablas de traduccin y finalmente cont inuando la ejecucin del programa que dio la excepcin de memoria virtual desde la instruccin que caus el fallo. En la mayora de las computadoras, las tablas de traduccin de direcciones de memoria se encuentran en memoria fsica. Esto implica que una referencia a una direccin virtual de memoria necesitar una o dos referencias para encontrar la entrada en la tabla de traduccin, y una ms para completar el acceso a esa direccin. Para acelerar el desempeo de este sistema, la mayora de las Unidades Centrales de Proceso (CPU) incluyen una MMU en el mismo chip, y mantienen una tabla de las traducciones de direcciones virtuales a reales usadas recientemente, llamada TranslationLookaside Buffer (TLB). El uso de este buffer hace que no se requieran referencias de memoria adicionales, por lo que se ahorra tiempo al traducir. En algunos procesadores, esto es realizado enteramente por el hardware. En otros, se necesita de la asistencia del sistema operativo: se levanta una excepcin, y en ella el sistema operativo reemplaza una de las entradas del TLB con una entrada de la tabla de traduccin, y la instruccin que hizo la referencia original a memoria es reejecutada. El hardware que tiene soporte para memoria virtual, la mayora de la veces tambin permite proteccin de memoria. La MMU puede tener la habilidad de variar su f orma de operacin de acuerdo al tipo de referencia a memoria (para leer, escribir, o ejecutar), as como el

modo en que se encontraba el CPU en el momento de hacer la referencia a memoria. Esto permite al sistema operativo proteger su propio cdigo y datos (como las tablas de traduccin usadas para memoria virtual) de corromperse por una aplicacin, y de proteger a las aplicaciones que podran causar problemas entre s.

ESTRUCTURAS DE HARDWARE Y DE CONTROL Los mtodos de administracin de la memoria principal, que no utilizan Memoria Virtual y esquemas de Paginacin y Segmentacin, es decir que llevan a las direcciones directamente al bus de la memoria, tienen un inconveniente: producen lo que se denomina fragmentacin. La fragmentacin, que son huecos en la memoria que no pueden usarse debido a lo pequeo de su espacio, provoca un desperdicio de memoria principal. Una posible solucin para la frag mentacin externa es permitir que espacio de direcciones lgicas lleve a cabo un proceso en direcciones no contiguas, as permitiendo al proceso ubicarse en cualquier espacio de memoria fsica que est disponible, aunque est dividida. Una forma de implementar esta solucin es a travs del uso de un esquema de paginacin. La paginacin evita el considerable problema de ajustar los pedazos de memoria de tamaos variables que han sufrido los esquemas de manejo de memoria anteriores. Dado a sus ventajas sobre los mtodos previos, la paginacin, en sus diversas formas, es usada en muchos sistemas operativos. Al utilizar la memoria virtual, las direcciones no pasan en forma directa al bus de memoria, sino que van a una unidad administradora de la memoria (MMU Memory Management Unit). Estas direcciones generadas por los programas se llaman direcciones virtuales y conforman el hueco de direcciones virtuales. Este hueco se divide en unidades llamadas pginas. Las unidades correspondientes en la memoria fsica se llaman marcos para pgina o frames. Las pginas y los marcos tienen siempre el mismo tamao. Comparando la paginacin y segmentacin simple por un lado, con la particin esttica y dinmica por el otro, se establecen las bases para un avance fundamental en la gestin de memoria, y es que: y Se puede cargar y descargar un proceso 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 contiguas en la memoria principal.

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. El trmino fragmento hace referencia tanto a pginas como a segmentos, dependiendo de si se emplea paginacin o segmentacin. Supngase que se trae un proceso a la memoria en un momento dado, el S.O comienza trayendo slo unos pocos fragmento s, incluido el fragmento que contiene el comienzo del programa. Se llamar conjunto residente del proceso a la parte que est realmente en la memoria principal. Si el procesador encuentra una direccin lgica que no est en la memoria principal, genera una interrupcin que indica un fallo de acceso a la memoria. El S.O pone al proceso interrumpido en estado Bloqueado y toma el control. Para que la ejecucin de este proceso siga ms tarde, el S.O necesita traer a la memoria principal el fragmento del proceso que contiene la direccin. Para ello se emite una solicitud de Lectura de E/S al disco; luego se expide otro proceso para que se ejecute mientras se realiza la operacin. Una vez que el fragmento deseado se ha trado a la memoria principal y se ha emitido la interrupcin de E/S, se devuelve el control al S.O, que coloca el proceso afectado en el estado de Listo.

Vous aimerez peut-être aussi