martes, 2 de febrero de 2016

Paginación y Segmentación de Sistemas Operativos


1. Objetivo
Investigar sobre la paginación y segmentación en los sistemas operativos.

2. Introducción
La memoria es uno de los recursos más valiosos que gestiona el sistema operativo. Uno  de los elementos principales que caracterizan un proceso es la memoria que utiliza. Ésta está lógicamente separada de la de cualquier otro proceso del sistema. Un proceso no puede acceder, al espacio de memoria asignado a otro proceso, lo cual es imprescindible para la seguridad y estabilidad del sistema. El direccionamiento es una parte importante de la gestión de memoria, puesto que influye mucho en la visión del mismo por parte de un proceso, como en el aprovechamiento del hardware y el rendimiento del sistema.  

3. Marco Teórico
3.1 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áginas. Los programas se dividen en unidades lógicas.
Las páginas de un programa necesitan estar continuamente en:
Memoria, los mecanismos de paginación permiten la correspondencia correcta entre las direcciones virtuales y las direcciones reales de la memoria que se reverencien.

Figura 1: Paginación

3.1.1 Tablas de páginas
Cada página tiene un número que se utiliza como índice en la tabla de páginas, lo que da por resultado el número del marco correspondiente a esa página virtual. Si el BIT presente/ausente es 0, se provoca un señalamiento (TRAP) hacia el sistema operativo. Si el BITes 1, el número de marco que aparece en la tabla de páginas se copia en los BITS de mayor orden del registro de salida.
Figura 2: Tabla de Páginas

3.1.2 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.1.3 Ventajas de la paginación
  • Es posible comenzar a ejecutar un programa, cargando solo una parte del mismo en memoria, y el resto se cargara bajo la solicitud.
  • 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.
  • Es fácil controlar todas las páginas, ya que tienen el mismo tamaño. 

·   
3.1.4 Desventajas de la paginación

  • 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 consumen muchos más recursos de memoria, tiempo en el CPU para su implantación.
  • Se deben reservar áreas de memoria para las PMT de los procesos. Al no ser fijo el tamaño de estas, se crea un problema semejante al de los programas (cómo asignar un tamaño óptimo sin desperdicio de memoria, u ovearhead del procesador).

 3.2 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. 

Figura 3: Segmentación


3.2.1 OBJETIVOS: 
  • 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 pueden proteger los módulos del segmento contra accesos no autorizados. 
  • Compartició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. Los enlaces se establecerán sólo cuando sea necesario.

3.2.2 Ventajas de la Segmentación
·         Atenúa el problema de la fragmentación
·         Permite definir protecciones selectivamente  
·         Permite compartición de zonas de memoria de forma eficaz  
·         Todo ello sin añadir complejidad a los algoritmos de gestión de espacio

3.2.3 Desventajas de la Segmentación
·         El compilador/enlazador debe reconocer un espacio segmentado (desventaja leve)
·         Necesita soporte del hardware
·         Incurre en un acceso adicional a memoria (para la tabla de segmentos)
·         No soluciona del todo los problemas de las técnicas de ubicación contigua (fragmentación).

4. Conclusión
Estas formar de segmentar la memoria ayuda al sistema operativo a no sufrir posibles bloqueos por una saturación de la memoria, ya que estos segmentos le dan a cada proceso un espacio lógico en el que puede trabajar de manera eficaz.
  
5. Bibliografía
Tanenbaum, A. 2009. Sistemas Operativos Modernos. 3 ed. México.
Ann Mclver Mchoes. 2011. Sistemas Operativos. 6 ed.
http://www.ual.es/~acorral/DSO/Tema_3.pdf


No hay comentarios.:

Publicar un comentario