You are on page 1of 25

INTRODUCCIN

La memoria es uno de los principales recursos de una computadora, por eso debe de administrarse con mucho cuidado. Aunque actualmente la mayora de los sistemas computacionales cuentan con una alta capacidad de memoria, de igual manera las aplicaciones actuales tienen tambin altos requerimientos de memoria, lo cual sigue generando una necesidad mayor de dicho recurso en los sistemas multitarea y/o multiusuario. La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste en llevar un registro de las partes de memoria que se estn utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando stos la necesiten y liberndola cuando terminen. El propsito principal de una computadora es el de ejecutar programas, estos programas, junto con la informacin a la que accedan deben de estar en la memoria principal (al menos parcialmente) durante la ejecucin. Para optimizar el uso del CPU y de la memoria, el sistema operativo debe de tener varios procesos a la vez en la memoria principal, para lo cual dispone de varias opciones de administracin tanto del procesador como de la memoria.Los sistemas de administracin de memoria se pueden dividir en dos clases, los que trasladan procesos entre la memoria y el disco durante la ejecucin (intercambio y paginacin) y los que no lo hacen.

Administracin de memoria

La administracin de memoria se refiere a los distintos mtodos y operaciones que se encargan de obtener la mxima utilidad de la memoria, organizando los procesos y programas que se ejecutan de manera tal que se aproveche de la mejor manera posible el espacio disponible.Para poder lograrlo, la operacin principal que realiza es la de trasladar la informacin que deber ser ejecutada por el procesador, a la memoria principal. Las tcnicas que existen para la carga de programas en la memoria son: particin fija, que es la divisin de la memoria libre en varias partes (de igual o distinto tamao) y la particin dinmica, que son las particiones de la memoria en tamaos que pueden ser variables, segn la cantidad de memoria que necesita cada proceso. Entre las principales operaciones que desarrolla la administracin de memoria se encuentran la reubicacin, que consiste en trasladar procesos activos dentro y fuera e la memoria principal para maximizar la utilizacin del procesador; la proteccin, mecanismos que protegen los procesos que se ejecutan de interferencias de otros procesos; uso compartido de cdigos y datos, con lo que el mecanismo de proteccin permite que ciertos procesos de un mismo programa que comparten una tarea tengan memoria en comn. La organizacin y administracin de la memoria principal, memoria primaria o memoria real de un sistema ha sido y es uno de los factores ms importantes en el diseo de los S. O. Los trminos memoria y almacenamiento se consideran equivalentes.Los programas y datos deben estar en el almacenamiento principal para: Poderlos ejecutar

Referenciarlos directamente Se considera almacenamiento secundario o almacenamiento auxiliar al generalmente soportado en discos.Los hechos demuestran que generalmente los programas crecen en requerimientos de memoria tan rpido como las memorias:Los programas se desarrollan para ocupar toda la memoria disponible para ellos. La parte del Sistema Operativo que administra la memoria se llama Administrador de la memoria y cumple con las siguientes funciones: Lleva un registro de las partes de memoria que se estn utilizando y de aquellas que no. Asigna espacio en memoria a los procesos cuando stos la necesitan. Libera espacio de memoria asignada a procesos que han terminado.

Una abstraccin de memoria: PARTICIONES FIJAS


La mayora de los sistemas operativos utilizan una tcnica de gestin del procesador denominada multiprogramacin, la cual permite que dos o ms procesos ocupen la misma unidad de memoria principal y que sean ejecutados al "mismo tiempo" (pseudo-paralelismo, en una nica CPU slo puede haber un proceso a la vez) en la unidad central de proceso o CPU. Una forma de realizar la multiprogramacin consiste en dividir la memoria fsica disponible en varias particiones y asignar cada una de las partes a un proceso. El tamao de estas particiones se puede fijar con anterioridad a la ejecucin de los programas de usuario, o bien efectuarse dinmicamente en la fase de ejecucin, con lo cual las particiones varan a lo largo del tiempo. La asignacin de memoria con particiones fijas se denomin MFT por sus siglas en ingls (Multiprogrammingwith a Fixednumber of Tasks), en espaol, Multiprogramacin con un nmero fijo de tareas, y fue utilizada durante muchos aos en los grandes computadores de IBM. El nmero y tamao de las particiones se determinan teniendo en cuenta los factores siguientes: 1) Capacidad de la memoria fsica disponible y el grado de multiprogramacin deseado (nmero mximo de procesos activos en el sistema). 2) Tamaos tpicos de los procesos ejecutados ms frecuentemente. forma: a) Cuando llega una tarea, sta se pone en una cola de tareas. Principios de operacin En lneas generales, la forma de operacin se puede resumir de la siguiente

b) El planificador de tareas tiene en cuenta los requerimientos de memoria de cada una de ellas y las particiones de memoria disponibles. c) Si una tarea tiene espacio disponible en memoria, se ubica (o reubica) en una particin, y puede competir por el uso de la CPU. d) Cuando se termina una tarea, se libera la particin de memoria que ocupa, pudiendo el planificador de tareas asignar esta particin a otra tarea de la cola de tareas. Hay diferentes tipos de organizaciones posibles para la asignacin de memoria a las tareas. Una estrategia es clasificarlas todas segn sus requerimientos de espacio. De esta forma, cada particin de memoria tendr una cola de tareas y las tareas se incluyen en una cola de particin de memoria correspondiente a sus exigencias de memoria. En la siguiente figura se representa un sistema de particiones fijas y colas de entradas independientes para un caso en el que los tamaos de las particiones de memoria son 512 Kb, 1 Mb y 2 Mb (ms una particin de 512 Kb reservada a la parte residente del sistema operativo), con lo que se tienen tres colas.

La cola correspondiente a la particin de 512 Kb tiene procesos de 400, 500, y 300 Kb, la de 1 Mb de 800 y 900 Kb, y la de 2 Mb de 1800, 1900 y 1700 Kb. La planificacin de cada cola se hace por separado y, como cada cola tiene su propia particin, no hay competencia entre las colas por la memoria. Otro tipo de organizacin consiste en mantener todas las tareas en una sola cola. En este esquema, el planificador selecciona la prxima tarea para ser ejecutada y espera hasta que se disponga de una regin de memoria del tamao requerido.

Sobre este tipo de organizacin hay diversas variantes. As, cuando se libera una particin, se puede cargar y ejecutar en ella la tarea ms cercana al frente de la cola que se ajusta a dicha particin. Pero como no es deseable que se desperdicie una particin de gran tamao con una tarea pequea, otra estrategia consiste en buscar en toda la cola de entradas la tarea ms grande que se ajuste a la particin liberada.

Sin abstraccin de memoria: PARTICIONES VARIABLES


Las particiones fijas tienen el inconveniente de que hay que determinar sus mejores tamaos con el fin de minimizar la fragmentacin interna y externa. Pero si se ejecutan un conjunto dinmico de procesos, ser difcil que se encuentre la particin correcta de la memoria. La solucin de este problema est en permitir que los tamaos de las particiones varen dinmicamente. Principios de operacin: El principio de operacin de la gestin de memoria con particiones variables es bastante simple. El sistema operativo mantiene una tabla que indica qu partes de la memoria estn disponibles y cules estn ocupadas. Inicialmente, toda la memoria est disponible y se considera como un gran bloque. Cuando llega una tarea que requiere memoria, se busca un bloque disponible suficientemente grande. Si se encuentra, se asigna slo la cantidad que se necesita, manteniendo el resto disponible para satisfacer futuras demandas. Este proceso se puede ejemplificar de la siguiente manera: 1) Cuando un proceso llega y necesita memoria, se busca un bloque de memoria libre que sea suficientemente grande para dicho proceso. Si el bloque es muy grande, se parte en dos: uno se asigna al proceso que llega y el otro se devuelve al conjunto de bloques libres. 2) Cuando un proceso termina, libera su particin de memoria que se coloca en el conjunto de bloques libres. Si el nuevo bloque libre es adyacente a otro bloque libre, se unen para formar un bloque libre mayor. En este caso se comprueba si hay procesos esperando memoria y si este nuevo espacio libre y recombinado satisface los requerimientos de memoria de cualquiera de estos procesos que esperan.

Efectos de la administracin de memoria con particiones variables A medida que van surgiendo procesos, stos van tomando una porcin de la memoria. Al finalizar su procesamiento, el espacio de memoria que antes estaba ocupado por el proceso vuelve a estar libre y disponible para un nuevo proceso.

Intercambio

Un proceso debe estar en memoria para poder ser ejecutado. Sin embargo, los procesos pueden ser intercambiados temporalmente, sacndolos de la memoria y almacenndolos en un almacn de respaldo y volvindolos a llevar luego a la memoria para continuar su ejecucin. Esto es precisamente lo que ocurre durante el proceso de intercambio. Consiste en trasladar el cdigo y los datos de un proceso completo de memoria al sistema de almacenamiento secundario, para cargar otro previamente almacenado. Esta tcnica puede ser ineficiente ya que se tiene que hacer el intercambio completo del proceso, aunque ste solo vaya a ejecutar una pequea porcin del cdigo. Durante el intercambio un proceso puede ser sacado temporalmente de memoria y llevado a un lugar especial del disco y posteriormente vuelto a memoria y puede continuar su ejecucin. El lugar de almacenamiento temporal suele ser un espacio suficientemente grande como para acomodar copias de las imgenes de memoria de todos los usuarios. Cuando el planificador decide admitir un nuevo proceso para el que no hay espacio, se puede invocar al intercambiador para liberar una particin. Entre las responsabilidades del intercambiador destacan: La seleccin de los procesos que hay que eliminar de la memoria principal. La seleccin de los procesos que hay que cargar en la memoria principal. La asignacin y gestin del espacio de intercambio. La seleccin de los procesos en la memoria principal que hay que intercambiar se hace entre aquellos que ocupan particiones suficientemente

grandes para los procesos que se les debe asignar espacio asignar espacio en memoria considerndose factores tales como: a) Prioridad: son ms aptos para intercambiar aquellos con baja prioridad. b) Estado de espera: procesos que esperan sucesos lentos tienen una mayor probabilidad de ser suspendidos durante un tiempo suficientemente grande. c) Tiempo de permanencia en memoria y si se ha ejecutado mientras ha estado en memoria. Si no hay peligro de estar eliminando procesos casi inmediatamente despus de cargarlos.

Intercambio de dos procesos utilizando un disco como almacn de respaldo El proceso 1 (P1) pasa al almacn secundario para permitir que la memoria cargue y ejecute el proceso 2 (P2) a travs del mecanismo de intercambio.

Administracin de memoria libre

Cuando la memoria se asigna en forma dinmica, el sistema operativo debe administrarla. En trminos generales, hay dos formas de llevar el registro del uso de las memoria: mapas bits y listas libres. 1. Administracin de memoria con mapas bits. Este tipo de administracin divide la memoria en unidades de asignacin, las cuales pueden ser tan pequeas como unas cuantas palabras o tan grandes como varios kilobytes.Podemos dividir la memoria en pequeas unidades, y registrar en un mapa de bits las unidades ocupadas y desocupadas. Las unidades pueden ser de unas pocas palabras cada una, hasta de un par de KB. A mayor tamao de las unidades, menor espacio ocupa el mapa de bits, pero puede haber mayor fragmentacin interna. Desventaja: para encontrar hoyo de n unidades hay que recorrer el mapa hasta encontrar n ceros seguidos. Ejemplo de la Administracin de memoria con mapas bits.

A cada unidad de asignacin le corresponde un bit en el mapa de bits, el cual toma el valor de 0 si la unidad est libre y 1 si est ocupada (o viceversa). La figura 6 muestra una parte de la memoria y su correspondiente mapa de bits.

2. Administracin de la memoria con lista ligada Otra forma es con una lista ligada de segmentos: estado (ocupado o en uso), direccin (de inicio), tamao. Cuando un proceso termina o se pasa a disco, si quedan dos hoyos juntos, se funden en un solo segmento. Si la lista se mantiene ordenada por direccin, podemos usar uno de los siguientes algoritmos para escoger un hoyo donde poner un nuevo proceso. First-fit. Asignar el primer hoyo que sea suficientemente grande como para contener al proceso. Best-fit. Asignar el menor hoyo en el que el proceso quepa. Worst-fit.Asignar el mayor hoyo. Cada vez que se asigna un hoyo a un proceso, a menos que quepa exactamente, se convierte en un segmento asignado y un hoyo ms pequeo. Bestfit deja hoyos pequeos y worst-fit deja hoyos grandes (qu es mejor?). Simulaciones han mostrado que first-fit y best-fit son mejores en trminos de utilizacin de la memoria. First-fit es ms rpido (no hay que revisar toda la lista). Se puede pensar en otras variantes. Ejemplo de la Administracin de memoria con listas enlazadas Cada nodo representa un proceso o un hueco Informacin de si es proceso o hueco Direccin de comienzo Tamao Puntero al siguiente Actualizacin:

PPP -> PHP; HPP -> HP; PPH -> PH; HPH -> H Lista doblemente enlazada.

La nocin de un espacio de direcciones

Un espacio de direcciones define un rango de direcciones discretas, donde cada una puede corresponder a un registro de memoria fsico o virtual, un dispositivo perifrico, un host de red, un sector de disco, u otra entidad lgica o fsica.El espacio de direcciones virtuales es el espacio de direcciones mximo disponible para una aplicacin. Este espacio depende de la arquitectura del sistema puesto que es la arquitectura la que define cuntos bits estn disponibles para propsitos de direccionamiento. La palabra "virtual" en el espacio de direcciones virtuales, significa que este es el nmero total de ubicaciones de memoria direccionables disponibles para una aplicacin, pero no la cantidad de memoria fsica instalada en el sistema, o dedicada a la aplicacin en un momento dado.Los programas de usuario siempre tratan con direcciones virtuales, nunca ven las direcciones fsicas reales. Una direccin de memoria, identifica la ubicacin fsica en una memoria de computadora, como lo hara una direccin de una calle (direccin de memoria) en una ciudad (memoria).El espacio de direcciones sera como un rea de ubicaciones (un vecindario, una ciudad o un pas, siguiendo con la comparacin anterior).Dos direcciones podran ser numricamente iguales, pero refirindose a diferentes ubicaciones, si es que pertenecen a diferentes espacios de direcciones. Los espacios de direcciones involucrados en el manejo de la memoria son de tres tipos: Direcciones fsicas: Son aquellas que referencian alguna posicin en la memoria fsica. Direcciones lgicas: Son las direcciones utilizadas por los procesos. Sufren una serie de transformaciones, realizadas por el procesador (la MMU), antes de convertirse en direcciones fsicas

Direcciones lineales:Se obtienen a partir de direcciones lgicas tras haber aplicado una transformacin dependiente de la arquitectura. Unidad de manejo de memoria de los espacios de direcciones: La unidad de manejo de memoria o unidad de gestin de memoria (de sus

siglas en ingls: Memory Management Unit) es un dispositivo de Hardware formado por un grupo de circuitos integrados, responsable del manejo de los accesos a la memoria por parte de la Unidad de Procesamiento Central (CPU). Cuando la CPU intenta acceder a una direccin de memoria virtual, la MMU realiza una bsqueda en una memoria cach especial llamada Buffer de Traduccin Adelantada (TLB, TranslationLookaside Buffer), que mantiene una parte de la tabla de pginas usadas hace menos tiempo. En esta memoria se mantienen entradas de la tabla de pginas (llamadas PTE por sus siglas en ingls, Page TableEntry), donde se pueden rescatar las direcciones fsicas de algunas direcciones reales, de forma directa. Cuando la direccin requerida por la CPU se encuentra en el TLB, su traduccin a direccin real o fsica es entregada, en lo que se conoce como acierto en el TLB. En otro caso, cuando la direccin buscada no se encuentra en el TLB (fallo en el TLB), el procesador busca en la tabla de pginas del proceso utilizando el nmero de pgina como entrada a la misma. En la entrada de la tabla de pginas del proceso se encuentra un bit de presencia, que indica si la pgina buscada est en memoria principal. Si el bit de presencia est activado, se carga esta PTE en el TLB y se devuelve la direccin fsica. En caso contrario, se informa al sistema operativo de la situacin, mediante un fallo de pgina. Es el sistema operativo el encargado de realizar los ajustes necesarios (esto es, cargar la pgina en memoria principal) usando uno de los algoritmos de remplazo de pginas, para continuar con la ejecucin desde la instruccin que caus el fallo.

Un beneficio fundamental de la MMU es la posibilidad de implementar proteccin de memoria, evitando que los programas accedan a porciones de memoria prohibidos. Por ejemplo se puede evitar que un programa acceda o modifique sectores de memoria de otros programas (cuando no se supone que lo haga). Entre sus funciones estn: Convertir las direcciones lgicas emitidas por los procesos en direcciones fsicas. Comprobar que la conversin se puede realizar. La direccin lgica podra no tener una direccin fsica asociada. Por ejemplo, la pgina correspondiente a una direccin se puede haber trasladado a una zona de almacenamiento secundario temporalmente. Comprobar que el proceso que intenta acceder a una cierta direccin de memoria tiene permisos para ello. La MMU se inicializa para cada proceso del sistema. Esto permite que cada proceso pueda usar el rango completo de direcciones lgicas (memoria virtual), ya que las conversiones de estas direcciones sern distintas para cada proceso.

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. Es una simulacin de ms memoria que la que realmente existe, lo que permite al computador ejecutar programas ms grandes o ms programas en forma simultnea. Esta ilusin existe incluso a nivel del sistema, es decir, permite tener en ejecucin ms aplicaciones de las que realmente caben en la memoria principal, sin que por ello cada aplicacin individual pueda usar ms memoria de la que realmente hay o incluso de forma ms general, ofreciendo a cada aplicacin ms memoria de la que existe fsicamente en la maquina. Esta tcnica ofrece a las aplicaciones la ilusin de que estn solas en el sistema y que, por lo tanto, pueden usar el espacio de direcciones completo. Esta tcnica facilita enormemente la generacin de cdigo, puesto que el compilador no tiene por qu preocuparse sobre dnde residir la aplicacin cuando se ejecute. 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.

Paginacin
El concepto de paginacin aparece junto con el de memoria virtual. Cuando ejecutamos un programa este puede caber o no en la memoria fsica. Si se da la situacin de que el proceso es mayor que la memoria, el S.O se encarga de mantener en memoria las partes del programa que estamos usando y el resto en el disco duro.Pues bien, la tcnica llamada paginacin se encarga del intercambio de informacin entre nuestra memoria y el disco duro cuando tiene que pasar informacin de la memoria al disco duro debido a que no programa entero. La idea bsica es la siguiente: El espacio de direcciones virtuales se divide en pginas del mismo tamao. La memoria principal se divide tambin en marcos o pginas fsicasdel mismo tamao. Estos marcos son compartidos entre los distintos procesos que haya en el sistema, de forma que en cualquier momento un proceso dado tendr unas cuantas pginas residentes en la memoria principal (sus pginas activas) y el resto en la memoria secundaria (sus pginas inactivas). El mecanismo de paginacin cumple dos funciones: Llevar a cabo la transformacin de una direccin virtual a fsica, o sea, la determinacin de la pgina a la que corresponde una determinada direccin de un programa, as como del marco, si lo hay, que ocupa esta pgina. Transferir, cuando haga falta, pginas de la memoria secundaria a la memoria principal, y de la memoria principal a la memoria secundaria cuando ya no sean necesarias. se ha cargado el

Principios de operacin: El mtodo bsico para la implementar la paginacin implica descomponer la

memoria fsica en una serie de bloques de tamao fijo denominados marcos y descomponer la memoria lgica (virtual) en bloques del mismo tamao denominados pginas. Cuando hay que ejecutar un proceso, sus pginas se cargan desde el almacn de respaldo en los marcos de memoria disponibles. El almacn de respaldo est dividido en bloques de tamao fijo que tienen el mismo tamao que los marcos de memoria. Cuando llega un proceso al sistema para ejecutarlo, se examina su tamao expresado en pginas. Cada pgina del proceso necesitar un marco. Por lo tanto, si el proceso requiere n pginas, deber haber disponibles al menos n marcos en memoria. Si hay disponibles n marcos, se los asignar al proceso que acaba de llegar. La primera pgina del proceso se carga en uno de los marcos asignados y se incluye el nmero de marco en la tabla de pginas para este proceso. La siguiente pgina se carga en otro marco y su nmero de marco se coloca en la tabla de pginas y as sucesivamente. Grficamente, tenemos:

Marcos libres (a) antes de la asignacin y (b) despus de la asignacin.

Tablas de pginas

Son una parte integral del Sistema de Memoria Virtual en sistemas operativos, cuando se utiliza paginacin. Son usadas para realizar las traducciones de direcciones de memoria virtual (o lgica) a memoria real (o fsica) y en general el sistema operativo mantiene una por cada proceso corriendo en el sistema. Cuando la paginacin se utiliza junto con memoria virtual, el sistema operativo mantiene adems el conocimiento sobre qu pginas estn en memoria principal y cules no, usando la tabla de paginacin. Si una pgina buscada est marcada como no disponible (tal vez porque no est presente en la memoria principal, pero s en el rea de intercambio), cuando la CPU intenta referenciar una direccin de memoria en esa pgina, la MMU responde levantando una excepcin (comnmente llamada fallo de pgina). Si la pgina se encuentra en el espacio de intercambio, el sistema operativo invocar una operacin llamada intercambio de pgina, para traer a memoria principal la pgina requerida. En cada entrada de la tabla de paginacin (en ingls PTE, Page TableEntry) existe un bit de presencia, que est activado cuando la pgina se encuentra en memoria principal. Otro bit que puede encontrarse es el de modificado, que advierte que la pgina ha sido modificada desde que fue trada del disco, y por lo tanto deber guardarse si es elegida para abandonar la memoria principal; y el bit de accedido, usado en el algoritmo de reemplazo de pginas llamado Menos Usado Recientemente (LRU, leastrecentlyused). Tambin podran haber otros bits indicando los permisos que tiene el proceso sobre la pgina (leer, escribir, ejecutar). Dado que las tablas de paginacin pueden ocupar un espacio considerable de la memoria principal, estas tambin podran estar sujetas a paginacin, lo que da

lugar a una organizacin paginada de mltiples niveles (o tabla de pginas multinivel). En los sistemas con un tamao de direcciones muy grande ( 64 bits ), podra usarse una tabla de pginas invertida, la cual utiliza menos espacio, aunque puede aumentar el tiempo de bsqueda de la pgina. Las tablas son mantenidas por el sistema operativo y utilizado por la Unidad de Gestin de Memoria (MMU)) para realizar las traducciones. Para evitar un acceso a las tablas de paginacin, hay un dispositivo llamado Buffer de Traduccin Adelantada (TLB, TranslationLookaside Buffer), acelerando el proceso de traduccin.

Aceleracin de la paginacin

En cualquier sistema de paginacin hay que abordar dos cuestiones principales: 1. La asociacin de una direccin virtual a una direccin fsica debe ser rpida. 2. Si el espacio de direcciones virtuales es grande, la tabla de paginas ser grande. El primer punto es una consecuencia del hecho de que la asociacin virtual a fsica debe realizarse en cada referencia de memoria. Todas las instrucciones deben provenir finalmente de la memoria y muchas de ellas hacen referencias a operando en memoria tambin. En consecuencia es necesario hacer una, dos o algunas veces ms referencia de la tabla de pginas por instruccin. Si la ejecucin de una instruccin tarda, por ejemplo 1 nseg, la bsqueda en las tablas de pginas debe realizarse en menos de 0.2nseg. Para evitar que la asociacin se convierta en un cuello de botella importante. El segundo punto se deriva del hecho de que todas las computadoras modernas utilizan direcciones virtuales de por lo menos 32bits, donde 64bits se vuelven cada vez ms comunes. Por decir, con tamao de pginas de 4KB, un espacio de direcciones de 32 bits tiene 1 milln de pginas y un espacio de direcciones de 64 bits tiene ms de las que desearamos completar. Con 1 millon de pginas en el espacio de direcciones virtual, la tabla de pginas (debido a que tiene su propio espacio de direcciones virtuales).

La necesidad de una asociacin de pginas extensas y rpidas es una restriccin considerable en cuanto a la manera en que se construyen las computadoras. El diseo ms simple (por lo menos en concepto) es tener una sola tabla de pginas que consista en un arreglo de registros de hardware veloces, con una entrada para cada pgina virtual. Bferes de traduccin adelantada Aqu se dar un esquema en donde ser implementados ampliamente para acelerar la paginacin y maneja espacios de direcciones virtuales extensos, empezando con la aceleracin de la paginacin y manejar espacios de direcciones virtuales extensos, esperando con la aceleracin de la paginacin. El punto inicial de la mayor parte de las tcnicas de optimizacin es que la tabla de pginas est en la memoria. Potencialmente, este diseo tiene un enorme impacto sobre el rendimiento. Por ejemplo, considere una instruccin de 1 byte que copia un registro a otro. A falta de paginacin, esta instruccin hace solo una referencia a memoria para obtener la instruccin. Con la paginacin se requiere al menos una referencia adicional a memoria para acceder de la tabla de pginas. Como la velocidad de ejecucin esta comnmente limitada por la proporcin a la que la CPU puede obtener instrucciones y datos de la memoria, al tener que hacer dos referencias a memoria cada una de ellas se reduce el rendimiento a la mitad. Bajo estas condiciones, nadie utilizara la paginacin. La solucin que ha ideado es equipar las computadoras con pequeos diapositivas del hardware para asociar direcciones virtuales a direcciones fsicas sin pasar por la tabla de pginas. El dispositivo, llamado TLP (Bfer de Traduccin Adelantada) o algunas veces memorias asociativas., se ilustra en la figura siguiente. Por lo general se encuentra dentro de la MMU y consiste en un pequeo nmero de entradas 8 en

este ejemplo pero raras veces ms de 64. Cada entrada contiene informacin acerca de una pgina, incluyendo el nmero de pgina virtual unos bits que se establece cuando se modifica la pgina, el cdigo de proteccin (permisos de lectura/escritura/ejecucin) y el marco de pgina fsico en el que se encuentra la pgina. Estos campos contienen una correspondencia de uno a uno con los campos en la tabla de pginas, acepto por el nmero de pginas virtual que no se necesita en la tabla de pginas. Otro bits indica si la entrada es vlida (es decir, si esta en uso o no) Ejemplo de Aceleracin de Paginacin.

Abarca las pginas virtuales El 19, 20,21. Un arreglo que se est procesando 129 y 130. La pagina 140 contiene ndices utilizados en los clculos de arreglos. Al final, la pila est en las pginas 860 y 86.

CONCLUSIONES

En la memoria principal son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. La memoria virtual es aquella que le ofrece a las aplicaciones la ilusin de que estn solas en el sistema y que pueden usar el espacio de direcciones completo. La memoria virtual ha llegado a ser un componente esencial de los S.O, convirtindose en una herramienta til de gestin de memoria.Desde su aparicin se ha comprobado que se agiliz la labor del programador, ya que al desarrollar un programa no es necesario restringir su tamao, pues no se tendr necesidad de conocer la capacidad de memoria principal disponible. Las direcciones de memoria son de tres tipos: fsicas, lgicas y lineales. El objetivo del intercambio es dar cabida a la ejecucin de ms aplicaciones de las que pueden residir simultneamente en la memoria del sistema. La paginacin es una tcnica de administracin de memoria en la cual el espacio de memoria se divide en secciones fsicas de igual tamao llamadas marcos de pagina, las cuales sirven como unidad de almacenamiento de informacin.

REFERENCIAS BIBLIOGRFICAS

STALLINGS, William. 2000. SISTEMAS OPERATIVOS. Madrid, Espaa. 2da Edicin TANENBAUM, Andrew. 2009. SISTEMAS OPERATIVOS MODERNOS. Mxico. 3era Edicin. TANENBAUM, Andrew. 1998. SISTEMAS OPERATIVOS: DISEO E IMPLEMENTACIN. Mxico. 2da Edicin. ARANDA, Joaqun y otros. 2002. SISTEMAS OPERATIVOS TEORIA Y PROBLEMAS. Madrid, Espaa.

You might also like