Sei sulla pagina 1di 16

Sistemas Operativos

Tema: Gestin y servicios de memoria Linux Vs. Windows

Integrantes:
Alzugaray, Maximiliano Alejandro 120980

Girardo, Bernardo Nicolas

125562 1013455

Korenvais, Ary Enrique

Windows Vista:
Conceptos fundamentales:
Una de las caractersticas ms destacables de este S.O., se vasa en un sistema de memoria virtual. El cual posee varias funciones Win 32. Por lo tanto explicare el concepto de la memoria virtual. La misma pretende que el tamao combinado del programa, sus datos y su pila pueden exceder la cantidad de memoria fsica disponible. El sistema operativo mantiene en la memoria principal aquellas partes del programa que se estn usando en cada momento, manteniendo el resto de las partes del programa en el disco. Por ejemplo, un programa de 16 MB puede ejecutarse sobre una mquina de 4 MB eligiendo cuidadosamente qu 4 MB se tendrn en la memoria en cada instante, e intercambiando partes del programa entre el disco y la memoria, segn sea necesario. Volviendo a los conceptos a tener en cuenta, tanto en las maquinas x86 como en las x64, el espacio de direcciones virtuales se pagina bajo demanda. Con un tamao fijo de 4 KB no obstante las pginas pueden ser de 4 MB. El cdigo y los datos privados del usuario empiezan desde los 64 KB y se extienden hasta casi 2GB superiores contienen el sistema operativo, incluyendo el cdigo, los datos y las reservas con y sin paginacin. Los 2 GB superiores son la memoria virtual del kernel y se comparten entre todos los procesos, exceptuando los datos de la memoria virtual como las tablas de pgina y las listas de los conjuntos de trabajo, que son por procesos. La memoria virtual del kernel solo es accesible mientras el sistema se ejecuta en el modo kernel. La razn de compartir la memoria virtual del proceso con el kernel es que cuando un hilo realiza una llamada al sistema, se atrapa en modo kernel y puede continuar su ejecucin sin cambiar el mapa de memoria. Todo lo que hay que hacer es cambiar a la pila del kernel de ese hilo. Como las pginas en modo de usuario del proceso todava son accesibles, el cdigo en modo de kernel puede leer los parmetros u acceder a los bferes de las pginas en ambos. Aqu la desventaja es que hay menos espacios de direcciones privadas por procesos, a cambio de llamadas al sistema ms rpidas.

Windows permite a los hilos adjuntarse a otros espacios de direccionamiento mientras se ejecutan en el kernel. Al adjuntarse a un espacio de direcciones, el hilo puede acceder a todos el espacio de direcciones en

modo usuario, as como las porciones del espacio de direcciones del kernel que son especficas para un proceso, como la auto asignacin para las tablas de pginas. Los hilos deben cambiar a su espacio de direcciones original antes de regresar al modo de usuario.

Paginacin:
El mtodo de paginacin, es el utilizado por Windows Vista para administrar la memoria. Este mtodo consiste en considerar el espacio de direcciones lgicas de cada proceso como un conjunto de bloques de tamao consistente llamados paginas. Cada direccin lgica manejada para un proceso estar conformada por un par de valores [pagina: desplazamiento]. Formato de direcciones: Dir. Lgica: <n de pgina, desplazamiento> Dir. Fsica: <n de marco, desplazamiento> La memoria fsica se administra implementando bloques de tamao consistente denominados 'marcos'. Obviamente el tamao de un 'marco' debe ser igual al tamao de una pgina. El sistema operativo mantiene una tabla de pginas para cada proceso: Muestra la posicin del marco de cada pgina del proceso. La direccin de la memoria consta de un nmero de pgina y de un desplazamiento dentro de la pgina. La Paginacin puede producir fragmentacin interna, pero muy poca: se limita a la ltima pgina del proceso. No hay fragmentacin externa. OPCIONES DE IMPLEMENTACION DE LA TABLA DE PGINAS 1. - La tabla de pginas se implementa completamente en hardware. VENTAJA: Se obtiene una alta velocidad de acceso a memoria. DESVENTAJA: Resulta problemtica cuando la tabla de paginas debe ser grande. 2. - Implementar la tabla de pginas en la memoria principal. VENTAJA: La tabla de pginas puede crecer segn se requiera. DESVENTAJA: La velocidad de acceso a memoria es relativamente baja, dado que cada referencia a memoria involucra 2 accesos.

Asignacin de direcciones virtuales:


Cada pgina de direcciones virtuales puede estar en uno de tres estados: invlida, reservada o confirmada. Una pgina invlida no est asignada a un objeto de seccin de memoria en un momento dado, y una referencia a ella produce un fallo de paginacin que a su vez origina una violacin de acceso. Una vez que se asigna cdigo o datos a una pgina virtual, se dice que la pgina est confirmada. Un fallo de pagina en una pgina confirmada ocasiona que se asigne la pagina que contiene la direccin virtual que provoco la falla a una de las paginas representadas por el objeto de seccin, para leer los datos de disco. Pero los fallos de paginacin pueden ocurrir tan solo debido a que la entrada en la tabla de pginas se necesita actualizar, ya que la pagina fsica a la que se hace referencia an est en la cach de memoria, en cuyo caso no se requiere la operacin de E/S. A stos se les conoce como fallos suaves, y los analizaremos como ms detalles en breve. Una pgina virtual tambin se puede encontrar en el estado reservado. Una pgina virtual reservada es invlida para otro propsito. Las pginas reservadas funcionan como paginas de guardia para evitar que la pila crezca demasiado y sobrescriba otros datos del proceso. Reservas todas las pginas virtuales significa que la pila puede crecer hasta su tamao mximo. Adems de los atributos invalida, reservada y confirmada, las paginas tienen otros atributos, como de lectura, de escritura y ejecutable.

Administracin de los archivos de paginacin:


Hay una interesante concesin que ocurre al confirmar espacio de almacenamiento a la paginas confirmadas que no se van a asignar a archivos especficos. Estas pginas utilizan el archivo de paginacin. La pregunta es cmo y cundo asignar la pgina virtual a una ubicacin especifica en el archivo de paginacin. Una estrategia simple seria asignar cada pgina virtual a una pgina en uno de los archivos de paginacin en el disco, al momento en que se confirmara la pgina virtual. Esto garantizara que siempre haya un lugar conocido para escribir cada pgina confirmada, en caso de que sea necesario sacarla de la memoria. Windows utiliza una estrategia denominada justo a tiempo. Las pginas confirmadas que respalda el archivo de paginacin no reciben espacio en este archivo sino hasta cuando tienen que paginarse fuera de la memoria. No se asigna ningn espacio en el disco para las pginas que nunca se paginan fuera de memoria. Si la memoria virtual total es menos que la memoria fsica disponible, no se necesita un archivo de paginacin para nada. Esto es conveniente para los sistemas incrustados que se basan en Windows. Tambin es la forma en que se inicia el sistema, ya que los archivos de paginacin no se inicializan sino hasta que se empieza a ejecutar el primer proceso en modo usuario, smss.exe.

Con una estrategia de preasignacin, la memoria virtual total en el sistema que se utiliza para datos privados se limitan al tamao de los archivos de paginacin. Con la asignacin justo a tiempo, la memoria total virtual puede ser casi tan grande como el tamao combinado de los archivos de paginacin y la memoria fsica. Las operaciones que escriben pginas modificadas en el disco por lo general no estn sincronizadas con la ejecucin de los hilos. La estrategia de asignacin justo a tiempo del espacio del archivo de paginacin aprovecha esto para impulsar el rendimiento de escribir las pginas modificadas en el archivo de paginacin. Las pginas se agrupan y se escriben en trozos grandes. Como la asignacin del espacio en el archivo de paginacin no ocurre sino hasta que se escribe las pginas, el nmero de bsquedas requeridas para escribir un lote de pginas se puede optimizar al asignar las pginas del archivo de paginacin para que estn cerca unas de otras, o incluso para hacerlas contiguas. Cuando las paginas almacenadas en el archivo de paginacin se leen en la memoria, mantienen su asignacin en el archivo de paginacin hasta la primera vez que se modifican. Si una pgina nunca se modifica, pasara a una lista especial de pginas fsicas libres, conocida como lista de espera, en donde se puede volver a utilizar sin tener que escribirla de nuevo en el disco. Si de verdad se modifica, el administrador de memoria liberara la pagina del archivo de pginas y la nica copia de esa pagina estar en la memoria. Para implementar esto, el administrador de memoria marca la pagina como solo lectura despus de cargarla. La primera vez que un hilo intente escribir en la pgina, el administrador de memoria detectara esta situacin y liberar a la pgina del archivo de pginas, otorgara acceso de escritura a la pgina y permitir que el hilo intente de nuevo. Windows admite hasta 16 archivos de paginacin, que por lo general se esparcen a travs de varios discos separados para obtener un mayor ancho de banda de E/S. Cada archivo tiene un tamao inicial y uno mximo al que puede crecer ms adelante si lo necesita, pero es mejor crear estos archivos para que tengan tamao mximo al momento de instalar el sistema. Si es necesario aumentar el archivo de paginacin cuando el sistema de archivos esta mucho mas lleno, es probable que el nuevo espacio en el archivo de paginacin este muy fragmentado, con lo cual se reduce el rendimiento.

El Algoritmo de Reemplazo de Pgina:


Cuando el nmero de pginas de memoria fsica libres empieza a bajar, el administrador de memoria empieza a trabajar para tener ms paginas fsicas disponibles; para ello quita las pginas de los procesos de modo de usuario y del proceso del sistema, que representa el uso de las paginas en modo de kernel. El objetivo es tener las pginas virtuales ms importantes presentes en la memoria, y las otras en el disco. El truco est en determinar qu es lo que significa importante. En Windows esto se responde mediante el uso frecuente del concepto de trabajo. Cada proceso tiene un conjunto de trabajo. Este conjunto consiste en las pginas asignadas que estn en memoria, y que por ende se pueden referenciar sin que se produzca un fallo de pgina. El conjunto de trabajo de cada proceso se describe mediante dos parmetros: el tamao mnimo y el mximo. Estos no son lmites duros, por lo que un proceso puede tener menos pginas en memoria que su valor mnimo, o ms que su valor mximo. Cada proceso empieza con el mismo valor mnimo y mximo, pero estos lmites pueden cambiar con el tiempo, o se pueden determinar mediante el objeto tarea para los procesos que estn contenidos en una tarea. El valor mnimo inicial predeterminado est en el rango de 20 a 50 pginas, y el valor inicial mximo predeterminado est en el rango de 45 a 345 pginas, dependiendo de la cantidad total de memoria fsica en el sistema. Sin embargo, el administrador del sistema puede cambiar estos valores predeterminados. Los conjuntos de trabajo slo entran en accin cuando la memoria fsica disponible se est agotando en el sistema. En cualquier otro caso, se permite a los procesos consumir memoria segn lo deseen, y a menudo exceden el valor mximo del conjunto de trabajo. Pero cuando el sistema est bajo presin de memoria, el administrador de memoria empieza a presionar a los procesos para que regresen a sus conjuntos de trabajo, empezando con los procesos que estn mucho muy por encima de su mximo. El administrador del conjunto de trabajo realiza tres niveles de actividad, todo lo cual es peridico con base en un temporizador. Se agrega una nueva actividad en cada nivel:

1. Mucha memoria disponible: Explora las paginas, restablece los bits

de acceso y utiliza sus valores para representar la edad de cada pgina. Mantiene un estimado de las pginas que no se utilizan en cada conjunto de trabajo.
2. La memoria est empezando a escasear: Para cualquier proceso con

una proporcin considerable de pginas sin utilizar, deja de agregar pginas al conjunto de trabajo y empieza a reemplazar las ms antiguas cada vez que se necesita una nueva pgina. Las pginas reemplazadas pasan a la lista de espera o de pginas modificadas.

3. La memoria est escasa: Reduce los conjuntos de trabajo para que

estn por debajo de su valor mximo, para lo cual quita las pginas ms antiguas. El administrador de conjuntos de trabajo se ejecuta cada segundo, y se llama desde el hilo del administrador del conjunto de balanceo. El administrador del conjunto de trabajo acelera la cantidad de trabajo que realiza para evitar sobrecargar el sistema. Tambin monitorea la escritura de pginas en la lista de modificadas al disco, para asegurarse que la lista no se haga demasiado grande, y despierta el hilo de modificacin de pagina ModifiedPageWriter segn sea necesario.

Linux:
Memoria fsica: La memoria fsica, a diferencia de la memoria virtual que es simulada empleando otro medio de almacenamiento, hace referencia a los chips de memoria que estn instalados en la placa madre Memoria virtual: La memoria virtual es una tcnica para proporcionar la simulacin de un espacio de memoria mucho mayor que la memoria fsica de una mquina. Para que la memoria virtual sea prctica y efectiva, se necesitan dos componentes. Primero, tiene que existir un soporte de hardware y, en segundo lugar, el S.O debe incluir un software para gestionar el movimiento de pginas o segmentos entre memoria secundaria y memoria principal. Una vez obtenida la direccin fsica se lo busca en memoria-cache, si est entre los datos recientemente usados la bsqueda tendr xito, pero si falla, la memoria virtual consulta memoria principal o, en el peor de los casos se consulta de disco (swapping). Memoria Virtual = Memoria Fsica + rea de Swapping en Disco

Direccionamiento de memoria virtual


Linux usa una estructura de tabla de pginas con tres niveles: -Directorio de pginas: un proceso activo tiene slo un directorio de pginas, donde cada entrada en el mismo, seala a una pgina del directorio intermedio de pginas. Para un proceso activo, el directorio debe estar en la memoria principal. -Directorio intermedio de pginas: es el que puede ocupar varias pginas y donde cada entrada al directorio seala a una pgina de la tabla de pginas. -Tabla de pginas: sta tambin puede ocupar varias pginas y en cada entrada se hace referencia a una pgina virtual del proceso.

Segmentacin
Linux utiliza la segmentacin de una manera limitada. La segmentacin y la paginacin son en cierta manera redundantes, porque ambas pueden ser utilizadas para separar los espacios de direcciones fsicas de los procesos: la segmentacin puede asignar un espacio lineal de memoria a cada proceso, mientras que la paginacin puede referenciar el mismo espacio lineal de memoria a distintos espacios de memoria fsica.

Linux prefiere la paginacin por sobre la segmentacin debido a los siguientes motivos: La administracin de memoria es mucho ms simple si todos los procesos usan el mismo segmento para registrar los datos, es decir, cuando estos comparten el mismo conjunto de direcciones lineales.

Uno de los objetivos en el diseo del Linux es la portabilidad en un amplio rango tipos de arquitecturas; como ser la arquitectura RISC que posee soporte limitado para segmentacin.

Todos los procesos que se ejecutan en Modo Usuario usan el mismo par de segmentos para almacenar instrucciones y datos: estos segmentos son llamados User Code Segment y User Data Segment respectivamente. Para los procesos que se ejecutan en Modo Kernel tambin utiliza el mismo segmento de para almacenar instrucciones y datos: a estos se los llama Kernel Code Segment y Kernel Data Segment. Linux hace uso de segmentos especializados:

El Task State Segment (TSS): Existe uno diferente por cada procesador del sistema. El espacio lineal de direcciones del TSS es un pequeo subconjunto del espacio lineal de direcciones correspondiente al segmento del Kernel Data. Uno que incluye al Default Local Descriptor Table (LDT), el cul es compartido por todos los procesos. Tres segmentos Thread-Local Storage (TLS): Esto le permite a las aplicaciones Mulltithread a hacer uso de hasta tres segmentos que contengan valores locales para cada thread. Tres segmentos relacionados al Advanced Power Management (APM): El cdigo del BIOS utiliza este segmento, para que luego el driver APM de Linux llame a funciones del BIOS para obtener o establecer el estado de los dispositivos APM. Cinco segmentos relacionados al servicio del BIOS Plug and Play (PnP). Al igual que en anterior, el cdigo del BIOS utiliza este segmento, para que luego el driver PnP de Linux llame a funciones del BIOS para detectar los recursos utilizados por los dispositivos PnP.

Y por ltimo, un segmento TSS especial usado por el Kernel para manejar las excepciones "Double fault. Estos estn definidos en la Global Descriptor Table (GDT). Existe una GDT por cada procesador en el sistema

Paginacin:
Paginacin por Demanda: Linux usa una tcnica llamada Paginacin por Demanda (demand paging) que slo copia una pgina de memoria virtual de un proceso en la memoria fsica del sistema cuando el proceso trata de usarla. Siempre que se ejecuta un proceso, se abre el fichero que lo contiene y su contenido se asocia en la memoria virtual del proceso. Esto se hace modificando las estructuras de datos que describen el mapa de memoria del proceso y se conoce como asociacin de memoria. No obstante la primera parte de la imagen se copia realmente en memoria fsica. El resto de la imagen se deja en disco. Conforme se va ejecutando, se generan fallos de pgina y Linux utiliza el mapa de memoria del proceso para determinar qu partes de la imagen debe traer a memoria fsica para ser ejecutadas. A cada una de estas pginas se le da un numero nico; el numero de pagina frame (PFN) y el procesador traduce estos nmeros (PFN) de pginas virtuales fijndose en una tabla de pginas.

Asignacin de Memoria: Buddy system (Pginas):


Linux utiliza el algoritmo Buddy System para asignar y liberar eficientemente bloques de pginas. El cdigo de asignacin intenta asignar un bloque de una o ms pginas fsicas. Las pginas se asignan en bloques de tamao potencia de 2. Esto quiere decir que pueden asignar bloques de 1, 2, 4, etc pginas. Todos los segmentos de memoria de un tamao particular son guardados en una lista enlazada ordenada o una estructura de datos en rbol. Cuando se libera un bloque, se compara con su Buddy (vecino). Si los dos estn libres, son combinados y colocados en la lista de bloques Buddy de mayor tamao. Cuando se produce un fallo de pginas el algoritmo de asignacin busca primero entre los bloques de pginas de igual tamao que el pedido. Si no encuentra ningn bloque de pginas del tamao pedido libre, entonces busca en los siguientes (los cuales son del doble del tamao pedido), y as sucesivamente. Si al encontrar un bloque vacio, este resulta ser ms grande de lo necesario se parte en dos y se comprueba el tamao, este proceso se realiza hasta obtener un bloque de pginas del tamao requerido.

Los bloques libres resultantes de este proceso son encolados en la lista o rbol adecuadamente.

Slab Allocator:
Es un sistema superpuesto al Buddy System que permite un mejor aprovechamiento de la memoria debido a que el Buddy System es ineficiente para asignaciones de pocos bytes (ya que la pgina es su unidad bsica de memoria). Este algoritmo asigna pequeas reas de memoria contenidas dentro de pginas, agrupa objetos en caches y cada cache es un almacn de objetos del mismo tipo. La memoria que contiene caches se divide en slabs y cada uno contiene una o ms pginas contiguas, que a su vez contiene objetos asignados y disponibles.

Liberacin de Pginas:
Asignar bloques de pginas tiende a fragmentar la memoria al dividir los bloques grandes para conseguir bloques ms pequeos. El cdigo de liberacin de pginas recombina pginas en bloques de mayor tamao siempre que es posible. Siempre que se libera un bloque de pginas, se comprueba si est libre el bloque adyacente de igual tamao. Si es as, se combina con el bloque de pginas recin liberado para formar un bloque nuevo de tamao doble. Cada vez que dos bloques de pginas se recombinan en uno mayor, el algoritmo de liberacin intenta volver a recombinarlo en otro an mayor. De esta forma, los bloques de pginas libres son tan grandes como la utilizacin de la memoria permita.

Intercambiando y liberando Pginas:


En caso de que haya poca memoria fsica Linux debe intentar liberar pginas fsicas Esto es realizado por el demonio de intercambio del ncleo (kswapd). Este demonio no tiene memoria virtual, es ejecutado en modo ncleo en el espacio fsico de memoria; kswapd garantiza que haya suficientes pginas libres en el sistema para mantener al sistema de gestin de memoria funcionando eficientemente. Una vez que se ha localizado un proceso candidato para enviar a disco algunas de sus pginas, el demonio de intercambio examina todas sus regiones de memoria virtual buscando reas que no estn compartidas ni bloqueadas. Linux quita un pequeo nmero de pginas. Las pginas bloqueadas en memoria no se pueden intercambiar ni descartar.

El algoritmo de intercambio de Linux emplea la antigedad de las pginas. Cada pgina tiene un contador que da al demonio de intercambio una cierta idea de si vale la pena o no intercambiar una pgina. Las pginas envejecen cuando no son utilizadas y rejuvenecen cuando son accedidas; el demonio de intercambio slo enva a disco pginas viejas. Cuando haya suficientes pginas libres, el demonio de intercambio se duerme hasta que el temporizador expire, en caso contrario, el demonio intenta de tres formas distintas reducir el nmero de pginas fsicas ocupadas: 1. Reduciendo el tamao de la cache de pginas y el buffer cache. 2. Enviando a disco pginas compartidas. 3. Enviando a disco o descartando pginas. Si el nmero de pginas libres ha cado demasiado, el demonio de intercambio intentar liberar 6 pginas antes de su prxima ejecucin. En caso contrario, intentar liberar 3 pginas. Los mtodos anteriores se intentan uno tras otro de hasta que se consiguen liberar suficientes pginas. Luego el demonio de intercambio se suspende hasta que el temporizador vuelva a expirar. El demonio recuerda cul fue el ltimo mtodo que emple para liberar pginas, y la prxima vez que se ejecuta lo vuelve a intentar con el mismo mtodo que tuvo xito.

Intercambiando Pginas Compartidas:


La memoria permite la comunicacin entre procesos, gracias a esto dos procesos pueden compartir un espacio de memoria virtual para intercambiarse informacin entre ellos. El demonio de intercambio del ncleo utiliza el algoritmo del reloj para intercambiar las pginas compartidas. Cada vez que se ejecuta, recuerda cul fue la ltima pgina de memoria virtual compartida que intercambi. De esta forma se asegura que todas las reas de memoria compartida tienen la misma probabilidad de ser intercambiadas.

Descartando Pginas:
Las pginas son enviadas al disco slo si los datos que contienen no pueden ser recuperados de otra forma. Una gran cantidad del contenido de una imagen ejecutable viene de la imagen del fichero y puede ser fcilmente reledo desde el mismo fichero. Estas pginas sencillamente se pueden descartar; cuando vuelven a referenciarse por el proceso, stas se traen otra vez a memoria desde la imagen ejecutable del fichero.

Copy on Write:
Linux no duplica las pginas de memoria que son necesarias para un nuevo proceso, sino que hace apuntar las entradas de la tabla de pginas del nuevo proceso a las pginas del proceso padre. Cuando alguna de las pginas es modificada por alguno de los procesos, entonces el ncleo pasa a realizar la duplicacin de dicha pgina. La forma de llevar a cabo este proceso consiste en establecer los permisos de estas pginas a slo-lectura pero sabiendo que dichas pginas se pueden modificar. Cuando ocurre una violacin de acceso a estas pginas (uno de los procesos intenta escribir) es cuando se realiza la duplicacin propiamente dicha.

Control de acceso de Pginas


Debido a que el procesador tiene que utilizar la informacin de la tabla de pginas para traducir las direcciones virtuales a direcciones fsicas, puede fcilmente utilizar la informacin de control de acceso para comprobar que el proceso no est accediendo a memoria de forma inapropiada. Hay muchas razones por las que se puede querer restringir el acceso a determinadas reas de memoria. Hay memoria, como la que contiene el ejecutable, que es claramente memoria de slo lectura; el sistema operativo no debe dejar que el proceso escriba sobre su propio cdigo de programa. Por el contrario, pginas de memoria que contengan datos deben poder ser ledas y escritas, pero un intento de ejecutar algo de estas pginas tiene que fallar. Linux emplea unas cuantas caches para la gestin de la memoria, entre las cuales tenemos:

Buffer Cach:
Contiene buffers de datos que son utilizados por los manejadores de dispositivos de bloques (Las entradas del cach estn identificadas por el dispositivo y nmero de bloque). Un dispositivo de bloques es un dispositivo sobre el que slo se pueden realizar operaciones de lectura o escritura de bloques de tamao fijo (Ej: discos rgidos). Los buffers son de tamao fijo y contienen bloques de informacin que ha sido leda de un dispositivo de bloques o bien que ha de ser escrita. Cada buffer se refiere a cualquier bloque en el disco y consiste de una cabecera y un rea de memoria igual al tamao del bloque del dispositivo. Para minimizar la sobrecarga, se mantienen en una de varias listas enlazadas: sin usar (unused), libres (free), no modificadas (clean), modificadas (dirty), bloqueadas (locked), etc.

Por cada operacin de lectura, el subsistema de buffer-cache debe buscar si el bloque en cuestin ya est copiado en la memoria. Para hacerlo de forma eficiente se mantienen tablas de dispersin para todos los buffers presentes en la cach.

Cach de Pginas:
El cach de pginas es principalmente usado para satisfacer los requerimientos de interfaz del subsistema de memoria virtual. Los bloques individuales del cach de pginas estaban todava gestionados por el buffer-cache, lo que creaba confusiones entre el uso y programacin de ambos niveles. Linux para reducir las ineficiencias de las dobles copias es almacenar los datos slo una vez (en el cach de pginas) y mantener punteros de cada elemento en el buffer-cache.

Cache de Intercambio:
Las pginas que han sido modificadas (dirty) son guardadas en el fichero de intercambio. La prxima vez que necesiten ser descartadas (swap out) no ser necesario copiarlas al fichero de intercambio pues ya estn all.

Cache de Hardware:
En caso de que el procesador no necesite siempre leer la tabla de pginas directamente, sino que guarde en esta cache las traducciones de las pginas conforme las va necesitando. Sin embargo Linux tiene que utilizar ms tiempo y espacio para mantenerlas y, si se corrompe su contenido, el sistema dejar de funcionar.

Swapping:
Linux divide su memoria RAM en trozos de memoria llamados pginas. Swapping es el proceso en el cual una pgina de memoria es copiada en el espacio del disco duro preconfigurado, llamado espacio o particin swap, para liberar esa pgina de memoria. El tamao combinado de la memoria RAM y la particin swap es la cantidad memoria virtual disponible. Swapping es necesario por dos importantes razones. 1. Primero, cuando el sistema necesita ms memoria que la RAM disponible, el kernel intercambia las pginas usadas y proporciona ms memoria a la aplicacin (proceso) que lo necesita inmediatamente. 2. Segundo, un significante nmeros de pginas usadas por una aplicacin durante su fase de inicio puede ser solo usada para la inicializacin y luego no usada otra vez. El sistema puede intercambiar aquellas pginas y liberar la memoria para otra aplicacin o incluso para la cache de disco.

Linux tiene dos formas de intercambiar (swap) espacio:


1. La particin swap es una seccin independiente del disco duro usada nicamente para intercambio. Ningn otro archivo puede residir ah. 2. El archivo swap es un archivo especial en el fichero del sistema (filesystems) que reside entre tu sistema y los archivos de datos. Fichero de intercambio: Un fichero en blanco puede prepararse para ser usado como rea de intercambio. Esto tiene una gran ventaja: es fcil de crear, borrar, ampliar o reducir, segn se crea necesario (a diferencia de una particin) Pero tambin alguna desventaja: le afecta la fragmentacin, ya que se encuentra dentro de un sistema de ficheros El problema de la fragmentacin no es grave, ya que el espacio de intercambio no siempre es accedido de forma secuencial, sino directa (en oposicin a la secuencial). Particin de intercambio: Tambin se puede dedicar una particin entera del disco duro (o el disco completo) como rea de intercambio. Ventajas: se puede conseguir mejor rendimiento si se coloca la particin en la zona ms rpida del disco, que es al principio (los cilindros exteriores del disco, por donde pasan ms datos a cada vuelta; fuente: [1]) no hay problemas de fragmentacin no hay que usar ningn sistema de ficheros en concreto Tiene pocas desventajas: crear una particin es un proceso algo difcil; de todas formas, si se elige bien el tamao de la particin, no har falta ningn cambio en el futuro la particin siempre ocupar el mismo espacio, aunque no se est usando al 100%

Bibliografa:

Sistemas Operativos Modernos. Tanenbaum, 3* Edicin 2009 http://dac.escet.urjc.es http://sistemas.itlp.edu.mx http://www.monografias.com/trabajos54/paginacionlinux/paginacion-linux2.shtml http://www.linuxhq.com/guides/TLK/mm/memory.html http://users.dsic.upv.es/~acano/so1/EnunciadoPr3.pdf http://users.dsic.upv.es/~acano/so1/EnunciadoPr3.pdf http://users.dsic.upv.es/~acano/so1/EnunciadoPr3.pdf

Potrebbero piacerti anche