lunes, 1 de febrero de 2016

Paginacion y segmentacion


TRABAJO DE INVESTIGACIÓN

 

1.     INTRODUCCIÓN

 

Los sistemas cuentan con gran capacidad de memoria, pero no es suficiente debido a que las aplicaciones actuales demandan la utilización de altos índices de memoria, generando la escasez de la misma.

Los sistemas operativos cuentan con un administrador de memoria, que es el encargado de llevar un registro acerca de las partes de la memoria que están siendo utilizadas y aquellas que no, con el objetivo de asignar espacio de memorias a los procesos cuando lo necesiten y liberarlas cuando el proceso haya finalizado. 

Es así que los administradores de memoria utilizan diferentes técnicas para el manejo de la memoria, las más conocidas son la paginación y segmentación. Se utilizan estas técnicas con el fin de tener la mayor cantidad posible de memoria que requiera cada proceso, que sea la que necesita ni más pequeña ni más grande.
A continuación en este presente trabajo se destacara las diferencias entre paginación y segmentación.

2.     OBJETIVO

Diferenciar entre la utilización de paginación y segmentación.

3.     MARCO TEÓRICO

 

3.1  GESTIÓN DE MEMORIA 

 

En un sistema monoprogramado, la memoria principal se divide en dos partes: una para el sistema operativo y otra para el programa que se ejecuta en ese instante.
En sistema multiprogramado, la parte de usuario de la memoria debe subdividirse aún más para hacer sitio a varios procesos, la tarea de subdivisión la lleva a cabo dinámicamente el sistema operativo y se conoce como gestión de memoria, repartiendo eficazmente la memoria, para introducir tantos procesos como sea posible.
Figura 1.- Objetivos de la Gestión de Memoria.

3.2 PARTICIÓN DE LA MEMORIA 

 

El principal objetivo del sistema de gestión de memoria es cargar los programas en la memoria principal para su ejecución en el procesador. Esta tarea requiere un esquema llamado memoria virtual.
La memoria virtual se basa en el uso de una de dos técnicas básicas: segmentación o paginación.

3.2.1        PARTICIONES ESTÁTICAS 

 

En casi todos los esquemas de gestión de memoria, se puede suponer que el sistema operativo ocupa una parte fija de la memoria principal y que el resto de la memoria está disponible para ser usado por varios procesos. El esquema más sencillo de gestión de la memoria disponible es dividirla en regiones con límites fijos. 

Aquí nos encontramos con dos alternativas. Una posibilidad es emplear particiones de igual tamaño, pero esto ocasiona dos dificultades: 

  •    Un programa puede ser demasiado grande para caber en la partición, en cuyo caso el programa debe   dividirse en módulos, para que sólo una parte de este esté en la memoria principal en cada instante. 
  •   El otro inconveniente se debe a que el uso de la memoria principal es extremadamente ineficiente. Cualquier programa, sin importar lo pequeño que sea, ocupará una partición completa, produciendo fragmentación interna.

3.2.3        PARTICIÓN DINÁMICA

 


Con la partición dinámica, las particiones son variables en número y longitud. Cuando se carga un proceso en la memoria principal, se le asigna exactamente tanto memoria, necesita y no más.

Este método empieza bien, pero, finalmente, desemboca en una situación en la que hay un gran número de huecos pequeños en la memoria. Conforme pasa tiempo, la memoria comienza a estar más fragmentada y su rendimiento decae.

Este fenómeno se denomina fragmentación externa y se refiere al hecho de que la memoria externa a todas las particiones se fragmenta cada vez más. Una técnica utilizada para evitar la fragmentación, es la compactación: de vez en cuando, el sistema operativo desplaza los procesos para estén contiguos, de forma que toda la memoria libre quede junta en un bloque.

3.2 PAGINACIÓN

 

Es una técnica de manejo de memoria, en la cual el espacio de memoria se divide en secciones físicas de igual tamaño, denominadas marcos de página. Los programas se dividen en unidades lógicas, denominadas páginas, que tienen el mismo tamaño que los marcos de páginas. De esta forma, se puede cargar una página de información en cualquier marco de página. 


Las páginas sirven como unidad de almacenamiento de información y de transferencia entre memoria principal y memoria auxiliar o secundaria. Cada marco se identifica por la dirección de marco, que está en la posición física de la primera palabra en el marco de página.
 
 
Figura 2.- Proceso de paginacion.

3.2.1        CARACTERÍSTICAS DE LA PAGINACIÓN


El espacio de direcciones lógico de un proceso puede ser no contiguo.

Se divide la memoria física en bloques de tamaño fijo llamados marcos (frames).

Se divide la memoria en bloques de tamaño llamados páginas.
Se mantiene información en los marcos libres.
Para correr un programa de en páginas de tamaño, se necesitan encontrar n marcos y cargar el programa.
Se establece una tabla de páginas para trasladar las direcciones lógicas a físicas.
Se produce fragmentación interna.

 

3.3.1        TABLA DE PÁGINAS


El número de página virtual se utiliza como índice en la tabla de páginas para buscar la entrada para esa página virtual. En la entrada en la tabla de páginas, se encuentra el número de marco de página (si lo hay). El número del marco de página se adjunta al extremo de mayor orden del desplazamiento, reemplazando el número de página virtual, para formar una dirección física que se pueda enviar a la memoria. 


Por ende, el propósito de la tabla de páginas es asociar páginas virtuales a los marcos de página. Hablando en sentido matemático, la tabla de páginas es una función donde el número de página virtual es un argumento y el número de marco físico es un resultado. Utilizando el resultado de esta función, el campo de la página virtual en una dirección virtual se puede reemplazar por un campo de marco de página, formando así una dirección de memoria física.

3.3.2        ESTRUCTURA DE LA TABLA DE PÁGINAS


·         Protección: Expresa los permisos de acceso del proceso. En caso de tener permiso para la operación de lectura/escritura que se va a realizar, se consulta el resto de los campos.

·         Bit de Presencia: Indica si la página está presente en memoria principal o no. Si se encuentra en RAM, también tienen sentido los siguientes campos.

·         Marco Ocupado: Si la página se encuentra en memoria principal, este campo expresa el marco que la contiene.

·         Modificada (Bit de ensuciada): Este campo indica si el contenido de la página ha sido modificado desde que se trajo de la memoria secundaria.

·         Referenciada: Este campo booleano se pone a cierto cada vez que se hace referencia a cualquier dirección de la página. Lo utiliza el sistema operativo para ayudar a los algoritmos de sustitución de páginas.

 

·    



  Figura 3.- Partes de las Tablas de Paginacion.

3.4  SEGMENTACIÓN



Otro modo de subdividir el programa es la segmentación. En este caso, el programa y sus datos asociados se dividen en un conjunto de segmentos. No es necesario que todos los segmentos de todos los programas tengan la misma longitud, aunque existe una longitud máxima de segmento. Como en la paginación, una dirección lógica segmentada consta de dos partes, en este caso un número de segmento y desplazamiento.

Como consecuencia del empleo de segmentos de distintos tamaños, la segmentación resulta similar a la partición dinámica. En ausencia de un esquema de superposición o del uso de memoria virtual, sería necesario cargar en la memoria todos los segmentos de un programa para su ejecución.

La diferencia, en comparación con la partición dinámica, radica en que, con segmentación, un programa puede ocupar más de una partición y éstas no tienen por qué estas contiguas. La segmentación elimina la fragmentación interna, pero la partición dinámica, sufre de fragmentación externa. Sin embargo, debido a que los procesos se dividen en un conjunto de partes más pequeñas, la fragmentación externa será menor.

Mientras que la paginación es transparente al programador, la segmentación generalmente es visible y se ofrece como la ventaja para la organización de los programas y datos. Normalmente el programador o el compilador asignan los programas y los datos a diferentes segmentos. Para facilitar la programación modular, el programa o los datos pueden ser divididos de nuevo en diferentes segmentos. El principal inconveniente de este servicio es que el programador debe ser consciente de la limitación de tamaño máximo de los segmentos.

Figura 5.- Espacio de Direcciones.



3.4.1        PAGINACIÓN VS. SEGMENTACIÓN 

                                              Figura 6.- Paginacion VS. Segmentacion


3.4.2        SEGMENTACIÓN PAGINADA 


Como su propio nombre lo indica, la segmentación paginada intenta aumentar lo mejor de los dos esquemas. La segmentación proporciona soporte directo a las regiones del proceso y la paginación permite un mejor aprovechamiento de la memoria y una base para construir un esquema de memoria virtual. 

Con esta técnica, un segmento está formado por un conjunto de páginas, y por lo tanto, no tiene que estar contiguo en memoria. Esta utiliza una tabla de segmentos, tal que cada entrada de la tabla apunta a una tabla de páginas.   

4.     CONCLUSIÓN

 

La técnica de paginación permite dividir los espacios de memoria en secciones físicas de igual tamaño, pero al ser las secciones del igual tamaño ocurren mucho problemas ya habrá aplicaciones que requieran más del tamaño asignado, es por ello que también se utiliza la segmentación con el objetivo se subdividir espacios de memoria en bloques o segmentos de diferentes longitudes, pero a pesar de ser bastante buena, también ocurren ciertos problemas ya que al asignar la memoria necesaria para cada proceso, nos van quedando huecos en la memoria.
Es por ello que se está utilizando lo mejor de cada técnica en una versión llamada segmentación paginada.

5.     BIBLIOGRAFÍA

 

Tanenbaum, A. 2009. Sistemas Operativos Modernos. 3ed. México, D. F. p 190-248.
Villar, A. 2006. Introducción a la informática y al uso de y manejo de aplicaciones comerciales. España.
Martínez, D. S/F. Sistemas Operativos. Repositorio Universidad del Nordeste de Argentina. (U.N.N.E).