viernes, 26 de octubre de 2012

SEGMENTACION


La segmentación es similar a la paginación. En este caso se divide a la memoria en diferentes segmentos. A diferencia de la paginación, los segmentos pueden tener diferentes tamaños, pero tienen un tamaño máximo. Por ella es necesario que la CPU incluya registros para marcar el comienzo y el fin de la longitud del segmento.  Al igual que sucedía con la paginación no presenta fragmentación externa, pero si fragmentación interna.

Los procesos se colocan en los diferentes segmentos, pero en este caso el programador es el encargado de gestionar los segmentos. Debe ser quien se encargue de repartir los programas y los datos en los distintos segmentos disponible.

Para acceder a una determinada posición del proceso debemos conocer el comienzo del segmento, su tamaño total y el desplazamiento dentro el mismo.

Existen sistemas en los que es posible mezclar paginación y segmentación, para  tener una segmentación paginada o paginación de segmentos (Sampalo et all, 2005).

La segmentación trocea el programa en porciones más pequeñas para que pueda ser más fácil ubicarlo en memoria. Cada segmento se corresponde a una unidad lógica del programa, como el código, los datos o la pila (Candela et all, 2007).

Fig.1. Memoria Segmentada


Fuente: (Candela et all, 2007)

El procesador también divide el mega en trozos de 64K que se llaman segmentos, el programa debe conocer en todo momento debe conocer en que segmento están los datos o el código y cuál es la posición dentro del segmento.

Un segmento es un área especial en un programa que inicia en un límite de un párrafo, esto es, en una localidad regularmente divisible entre 16 o 10 hex. Aunque un segmento puede estar ubicado casi en cualquier lugar de la memoria y en modo real, puede ser hasta de 64k, solo necesita tanto espacio como el programa requiera para su ejecución.

Los registros de Segmentos son:

  •  CS (Segmento de código): Dirección de instrucción. Contiene las instrucciones de maquina que son ejecutadas. Por lo común, la primera instrucción ejecutable esta al inicio del segmento, y el sistema operativo enlaza a esa localidad para iniciar la ejecución del programa. Como su nombre lo indica, el registro del CS direcciona el segmento de código. Si su área de requiere mas de 64K su programa puede necesitar definir mas de un segmento de código.
  •       DS (Segmento de datos): Dirección de datos. Contiene datos, constantes y áreas  de trabajo definidos por el programa. El registro DS direcciona el segmento de datos. Si su área de datos requiere de mas de 64K, su programa puede necesitar definir mas de un segmento de datos.
  •  SS (Segmento de pila): Dirección de pila. En términos sencillos, la pila contiene datos y direcciones que usted necesita guardar temporalmente o para el uso de sus llamadas subrutinas. El registro del segmento de pila direcciona el segmento de pila.
  • ES (Segmento extra de datos): Dirección de destino de cadenas. 
Podemos decir que gracias a la segmentación se facilita la multiprogramación y existen zonas diferentes para el código, para los datos y para la pila.

Direccionamiento relativo

Se emplea para apuntar a direcciones de memoria dentro de un segmento, Se emplean registros Base y registros Índices. Si BX se emplea como registro base, entonces el registro de segmento que se emplea es el registro DS. Si es BP el registro base, entonces el registro de segmento empleado es el de la pila SS.

Memoria virtual Segmentada

En la memoria virtual segmentada dividimos la memoria en segmentos que pueden tener diferente longitud. Este tamaño es re-dimensionable por el sistema operativo por lo que genera un esquema mucho más flexible al programador (Sampalo et all, 2005).

Ventajas

Entre las ventajas de la segmentación tenemos:

1.    Permite aumentar la capacidad de manejo de memoria de un procesador sin cambiar las instrucciones asociadas al mismo.
2.    Facilita el uso de áreas de memoria separadas para el programa, los datos y la pila (Stack).
3.    Permite que un programa y sus datos sean colocados en diferentes áreas de memoria cada vez que el programa es ejecutado, lo que permite al sistema operativo manejar varias tareas.
4.    El uso de instrucciones de tamaño más reducido aumenta la velocidad de procesamiento ya que ahora el tiempo en el fetch y en la decodificación de la instrucción (Izaguirre-Astralóa, 2008).

REFERENCIAS BIBLIOGRÁFICAS

Sampalo, de la Torre Ma. De los Ángeles. Prieto, Tinoco José Ignacio. Garzón, Villar Ma. Luisa. Leyva, Cortés Esteban (2005). Informática. Volumen Práctico. Profesores de Educación Secundaria. Ed. Mad. España.

Candela, Santiago.García, Carmelo Rubén. Quesada, Alexis.Santana, Francisco José. Santos José Miguel(2007). Fundamentos de sistemas operativos: Teoría y ejercicios resueltos. Ed. Paraninfo. España.

Izaguirre, Aitzol Zuloaga y Astralóa, Armando Cuellar (2008). Sistema de Procesamiento Digital. Delta, Publicaciones Universitarias. España.







No hay comentarios:

Publicar un comentario