sábado, 30 de enero de 2016

Paginación y Segmentación de la memoria principal SO



Resumen Paginación y segmentación de la memoria  

    1.INTRODUCCIÓN

Los sistemas operativos con el pasar de los años han buscado ser más eficiente, es por eso que es vital que el uso de la memoria principal como lo es la RAM sea de la manera más inteligente posible,  para que los sistemas operativos sean más eficientes.

La segmentación es un proceso de dividir el programa en unidades lógicas, como subsunciones, arreglos, variables, etc. consiguiendo tener procesos divididos en trozos para que sea fácil de acceder a cada uno de los procesos que este conlleva a su ejecución. La paginación divide así mismo así mismo el programa en trozos pequeños pero sin mirar lo que coge.

2. OBJETIVO

Conocer conceptos sobre la paginación y segmentación de los sistemas operativos.

3. MARCO TEÓRICO

3.1. SISTEMA DE PAGINACIÓN / SEGMENTACIÓN 

Tanto la Segmentación como la paginación ofrecen significativas ventajas, algunos sistemas (Multics y la Serie 370 de IBM) combinan ambas técnicas en donde los segmentos tienen un tamaño múltiplo de página. Este método utiliza Segmentación y Paginación tal y como su nombre lo indica, el proceso es el siguiente, Se hace la solicitud de acceso por medio de una dirección “V” la cual contiene los campos Segmento, Pagina y Desplazamiento, Con el campo Segmento, lo que se trata es de acceso a una tabla de segmentos, cada campo de dicha tabla apunta directamente a la tabla de páginas asignada para ese segmento conteniendo una dirección que será sumada a una dirección en la Tabla Asociativa para por fin formar una dirección real con el desplazamiento de “V”. (Quintuña, et al., 2010)

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. (Quintuña, et al., 2010)

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. (Quintuña, et al., 2010)

Para tener el control de las páginas, debe mantenerse una tabla en memoria que se denomina tabla de Mapas de Pagina (PMT) para cada uno de los procesos hasta ahora, los métodos que hemos visto de la administración de la memoria principal, nos han dejado con un problema: fragmentación, (huecos en la memoria que no pueden usarse debido a lo pequeño de su espacio) lo que nos provoca un desperdicio de memoria principal. (Quintuña, et al., 2010)

Una posible solución para la fragmentación externa es permitir que espacio de direcciones lógicas lleve a cabo un proceso en direcciones no contiguas, así permitiendo al proceso ubicarse en cualquier espacio de memoria física que esté disponible, aunque esté dividida. (Quintuña, et al., 2010)


Figura 1. Esquema de traducciones direcciones.

El almacenamiento a un sólo nivel puede llevarse a cabo mediante una técnica llamada paginación, según la cual el espacio de direcciones virtuales se divide en páginas del mismo tamaño, la memoria principal se divide también en marcos o páginas físicas del mismo tamaño, 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 páginas residentes en la memoria principal (sus páginas activas) y el resto en la memoria secundaria (sus páginas inactivas). (Quintuña, et al., 2010)

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 n 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. (Quintuña, et al., 2010)

3.2.2.  VENTAJAS DE LA PAGINACIÓN 

1. Es posible comenzar a ejecutar un programa, cargando solo una parte del mismo en memoria, y el resto se cargara bajo la solicitud. 

2. No es necesario que las paginas estén contiguas en memoria, por lo que no se necesitan procesos de compactación cuando existen marcos de páginas libres dispersos en la memoria. (Quintuña, et al., 2010)

3. Es fácil controlar todas las páginas, ya que tienen el mismo tamaño. 

4. El mecanismo de traducción de direcciones (DAT) permite separar los conceptos de espacio de direcciones y espacios de memoria. 

5. Se libera al programador de la restricción de programar para un tamaño físico de memoria, con lo que s e aumenta su productividad. 

6. Al no necesitarse cargar un programa completo en memoria para su ejecución, se puede aumentar el número de programas multiprogramándose. (Quintuña, et al., 2010)


3.2.3.   DESVENTAJAS DE LA PAGINACIÓN 

1. El costo de hardware y software se incrementa, por la nueva información que debe manejarse y el mecanismo de traducción de direcciones necesario. Se consume mucho más recursos de memoria, tiempo en el CPU para su implantación. (Quintuña, et al., 2010)
2. Se deben reservar áreas de memoria para las PMT de los procesos. Al no ser fija el tamaño de estas, se crea un problema semejante al de los programas (Quintuña, et al., 2010)

3. Aparece el problema de fragmentación interna. Así, si se requieren 5K para un programa, pero las paginas son de 4K, deberán asignárseles 2 páginas (8k), con lo que quedan 3K sin utilizar. La suma de los espacios libres dejados de esta forma puede ser mayor que el de varias páginas, pero no podrá ser utilizado. Debe asignarse un tamaño promedio a las páginas, evitando que si son muy pequeñas, se necesiten TABLAS BMT y PMT muy grandes, y si son muy grandes, se incremente el grado de fragmentación interna. (Quintuña, et al., 2010)

3.3.   SEGMENTACIÓN
 
Es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su división lógica; llevándose a cabo una agrupación lógica de la información en bloques de tamaño variable denominados segmentos, cada uno de ellos tienen información lógica del programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una colección de segmentos, que generalmente reflejan la división lógica del programa. (Quintuña, et al., 2010) 

Modularidad de programas: cada rutina del programa puede ser un bloque sujeto a cambios y recopilaciones, sin afectar por ello al resto del programa.
Estructuras de datos de largo variable: ejm. Stack, donde cada estructura tiene su propio tamaño y este puede variar. 

Protección: se puede proteger los módulos del segmento contra accesos no autorizados. Quintuña, et al., 2010)

Comparación: dos o más procesos pueden ser un mismo segmento, bajo reglas de protección; aunque no sean propietarios de los mismos.
Enlace dinámico entre segmentos: puede evitarse realizar todo el proceso de enlace antes de comenzar a ejecutar un programa. ( Quintuña, et al., 2010)

Dado que en cada proceso se manejan direcciones lógicas, el sistema operativo debe obtener una dirección lógica el sistema operativo debe también asegurarse de que cada dirección lógica esté dentro del rango de direcciones empleado por el proceso para esto el sistema operativo implementa la tabla de segmentos (Quintuña, et al., 2010)


Figura 2. Segmentación
3.3.1.  ORGANIZACIÓN

En el estudio de la segmentación simple, se llegó a la conclusión de que cada proceso tiene su propia tabla de segmento 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 contiene la dirección de comienzo del segmento correspondiente de la memoria principal, así como su longitud.

La misma estructura se necesitará al hablar de un esquema de memoria virtual basado en la segmentación donde las entradas de la tabla de segmentos pasan a ser más complejas. Puesto que sólo algunos de los segmentos de un proceso estarán en la memoria principal, se necesita un bit en cada entrada de la tabla de segmentos para indicar si el segmento correspondiente está presente en la memoria principal. Si el bit indica que el segmento está en la memoria, la entrada incluye también la dirección de comienzo y la longitud del segmento. (Boscan, et al., 2011)

3.3.2.  PROTECCIÓN Y COMPARTIMIENTO

Además la segmentación se presta a la implementación de políticas de protección, puesto que cada entrada de la tabla de segmentos incluye la longitud, además de la dirección base, un programa no podrá acceder por descuido a una posición de la memoria principal más allá de los límites de un segmento. 

Para conseguir la compartición, es posible que un segmento se referencia desde las tablas de segmentos de más de un proceso. Este mismo mecanismo es válido en un sistema de paginación. (Boscan, et al., 2011)
.
3.3.3.  HARDWARE DE SEGMENTACIÓN

Una dirección lógica consta de dos partes: un número de segmentos (s), y un desplazamiento de dicho segmento, (d). El número de segmentos se utiliza como un índice en la tabla de segmentos. El desplazamiento (d) de la dirección lógica debe estar entre 0 y el límite del segmento. De no ser así, se ocasiona una trampa al sistema operativo (intento de direccionamiento lógico más allá del final del segmento). Si este desplazamiento es legal, se agrega a la base del segmento para producir la dirección en la memoria física del byte deseado. (Boscan, et al., 2011)

3.3.3.  CON PAGINACIÓN: MULTICS

Si los segmentos son extensos, puede ser inconveniente (o incluso imposible) mantenerlos completos en memoria principal. Esto nos lleva a la idea de paginarlos, de manera que sólo las páginas que realmente se necesiten tengan que estar presentes. Varios sistemas importantes han soportado segmentos de páginas. En esta sección describiremos el primero: MULTICS. En la siguiente analizaremos uno más reciente: el Intel Pentium. . (Tanenbaum, 2009)

MULTICS operaba en las máquinas Honeywell 6000 y sus descendientes; proveía a cada programa con una memoria virtual de hasta 218 segmentos (más de 250,000), cada uno de los cuales podría ser de hasta 65,536 palabras (36 bits) de longitud. Para implementar esto, los diseñadores de MULTICS optaron por considerar a cada segmento como una memoria virtual y la paginaron, combinando las ventajas de la paginación (tamaño de página uniforme y no tener que mantener todo el segmento en la memoria, si sólo se está utilizando parte de él) con las ventajas de la segmentación (facilidad de programación, modularidad, protección, compartición).

Cada programa de MULTICS tiene una tabla de segmentos, con un descriptor por segmento. . (Tanenbaum, 2009)

Como hay en potencia más de un cuarto de millón de entradas en la tabla, la tabla de segmentos es en sí un segmento y se página. Un descriptor de segmentos contiene una indicación acerca de si el segmento está en memoria principal o no. Si cualquier parte del segmento está en memoria, se considera que el segmento está en memoria y su tabla de páginas estará en memoria. Si el segmento está en memoria, su descriptor contiene un apuntador de 18 bits a su tabla de página. Como las direcciones físicas son de 24 bits y las páginas se alinean en límites de 64 bytes (implicando que los 6 bits de menor orden de las direcciones de página son 000000), sólo se necesitan 18 bits en el descriptor para almacenar una dirección de la tabla de páginas. El descriptor también contiene el tamaño del segmento, los bits de protección y unos cuantos elementos más. ilustra un descriptor de segmento de MULTICS. La dirección del segmento en la memoria secundaria no está en el descriptor de segmentos, sino en otra tabla utilizada por el manejador de fallos de segmento. Cada segmento es un espacio de direcciones virtual ordinario y se página de la misma forma que la memoria paginada no segmentada descrita anteriormente en este capítulo. El tamaño normal de página es de 1024 palabras (aunque unos cuantos segmentos utilizados por MULTICS en sí no están paginados o están paginados en unidades de 64 palabras para ahorrar memoria física).

Una dirección en MULTICS consiste en dos partes: el segmento y la dirección dentro del segmento. . (Tanenbaum, 2009)

La dirección dentro del segmento se divide aún más en un número de página y en una palabra dentro de la página. Cuando ocurre una referencia memoria, se lleva a cabo el siguiente algoritmo. (Tanenbaum, 2009)

Figura 3. La memoria virtual Multicast


3.3.4.  VENTAJAS DE LA SEGMENTACIÓN 

El programador puede conocer las unidades lógicas de su programa, dándoles un tratamiento particular. 

• Es posible compilar módulos separados como segmentos el enlace entre los segmentos puede suponer hasta tanto se haga una referencia entre segmentos. 

• Debido a que es posible separar los módulos se hace más fácil la modificación de los mismos. Cambios dentro de un módulo no afecta al resto de los módulos. (Quintuña, et al., 2010)

• Es fácil el compartir segmentos. 

• Es posible que los segmentos crezcan dinámicamente según las necesidades del programa en ejecución. 

• Existe la posibilidad de definir segmentos que aún no existan. Así, no se asignara memoria, sino a partir del momento que sea necesario hacer usos del segmento. Un ejemplo de esto, serían los arreglos cuya dimensión no se conoce hasta tanto no se comienza a ejecutar el programa. (Quintuña, et al., 2010)

3.3.5.   DESVENTAJAS DE LA SEGMENTACIÓN 

Hay un incremento en los costos de hardware y de software para llevar a cabo la implantación, así como un mayor consumo de recursos: memoria, tiempo de CPU, etc. 

• Debido a que los segmentos tienen un tamaño variable se pueden presentar problemas de fragmentación externas, lo que puede ameritar un plan de reubicación de segmentos en memoria principal. (Quintuña, et al., 2010) 

• Se complica el mane-jo de memoria virtual, ya que los discos almacenan la información en bloques de tamaños fijos, mientras los segmentos son de tamaño variable. Esto hace necesaria la existencia de mecanismos más costosos que los existentes para paginación.
• Al permitir que los segmentos varíen de tamaño, puede ser necesarios planes de reubicación a nivel de los discos, si los segmentos son devueltos a dicho dispositivo; lo que conlleva a nuevos costos. (Quintuña, et al., 2010) 

• No se puede garantizar, que al salir un segmento de la memoria, este pueda ser traído fácilmente de nuevo, ya que será necesario encontrar nuevamente un área de memoria libre ajustada a su tamaño. 

• La compartición de segmentos permite ahorrar memoria, pero requiere de mecanismos adicionales da hardware y software. (Quintuña, et al., 2010)

4. CONCLUSIÓN

En la memoria RAM o memoria principal son ejecutados todos los programas y procesos de un ordenador y es el espacio real que existe en memoria para que se ejecuten los procesos que estos conllevan.

• La paginación y la segmentación es una técnica de gestión de memoria que divide un programa cuando esta ejecución en segmentos para así acceder a las tareas necesarias cuando este lo requiera sin tener que mirar todo el proceso entero.

5.   BIBLIOGRAFÍA

Boscan, J. Morrillo, D. Carrasco, G. 2011. Paginación y segmentación. (En Línea). Consultado el 30 de Enero. 2016. Formato HTML. Disponible en: http://es.slideshare.net/menes21/paginacion-y-segmentacion-de-memoria

Tanenbaum, A. 2009. Sistemas Operativos Modernos. 3 ed. México. D. F. PEARSON EDUCACIÓN. p. 275-276

 Quintuña, C. Mullo, X. Trujillo, M. 2010. Sistemas de segmentación y paginación. (En Línea). Consultado el 30 de Enero. 2016. Formato HTML. Disponible en: http://arqordenadores.wiki-site.com/index.php/Paginaci%C3%B3n_y_Segmentaci%C3%B3n

1 comentario:

  1. Sugarboo Extra Long Digital Titanium Styler - TITNIA
    Sugarboo Extra how strong is titanium Long Digital Titanium titanium jewelry for piercings Styler is a product of TITNIA titanium exhaust tips Engineering and price of titanium MUSE titanium scooter bars Company.

    ResponderEliminar