martes, 28 de mayo de 2013

Nuestra expo paginacion y segmentacion

Nuestra expo paginacion y segmentacion

La segmentación permite alcanzar los siguientes objetivos :
1. Modularidad de programas: cada rutina del programa puede ser un bloque sujeto a cambios y recopilaciones, sin afectar por ello al resto del programa.
2. Estructuras de datos de largo variable: ejm. Stack, donde cada estructura tiene su propio tamaño y este puede variar.
3. Protección:se puede proteger los módulos del segmento contra accesos no autorizados.
4. Comparición: dos o más procesos pueden ser un mismo segmento, bajo reglas de protección;aunque no sean propietarios de los mismos.
5. 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 solo cuando sea necesario.
Ventajas de la segmentación
El esquema de segmentación ofrece las siguientes ventajas:
· 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 modulo no afecta al resto de los módulos.
· 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 aun no existan. Así, no se asignar amemoria, sino a partir del momento que sea necesario hacer usos del segmento.Un ejemplo de esto, serian los arreglos cuya dimensión no se conoce hasta tantono se comienza a ejecutar el programa. En algunos casos, incluso podríaretardar la asignación de memoria hasta el momento en el cual se referencia elarreglo u otra estructura de dato por primera vez.

Desventajas de la segmentación
· Hay un incremento en los costos de hardware y de software para llevar acabo 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.
· Secomplica el manejo 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 dereubicación a nivel de los discos, si los segmentos son devueltos a dicho dispositivo; lo que conlleva a nuevos costos.
· No se puede garantizar, que al salir un segmento de la memoria, este pueda sertraído fácilmente de nuevo, ya que será necesario encontrar nuevamente un áreade memoria libre ajustada a su tamaño.
· La comparticion de segmentos permite ahorrar memoria, pero requiere de mecanismos adicionales da hardware y software.
Estas desventajas tratan de ser minimizadas, bajo la técnica conocida como Segmentación paginada.

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 paginas.
· Se mantiene información en los marcos libres.
· Para correr un programa de n paginas de tamaño, se necesitan encontrara n marcos y cargar el programa.
· Se establece una tabla de paginas para trasladar las direcciones lógicas a físicas.
· Se produce fragmentación interna.

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 paginas libres dispersos en la memoria.
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 separarlos conceptos de espacio de direcciones y espacios de memoria. Todo el mecanismo es transparente al usuario.
5. Se libera al programador de la restricción de programar para un tamaño físico dememoria, con lo que s e aumenta su productividad . Se puede programar en función deuna memoria mucho más grande a la existente.
6. Al no necesitarse cargar un programa completo en memoria para su ejecución, se puedeaumentar el numero de programas multiprogramándose.
7. Se elimina el problema de fragmentación externa.

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 direccion es necesario. Se consume mucho mas recursos de memoria, tiempo en el CPU para su implantación.
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 (como asignar un tamaño óptimo sin desperdicio de memoria, u "ovearhead"del procesador).
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 paginas (8k), con lo quequedan 3K sin utilizar. La suma de los espacios libres dejados de esta forma puede ser mayor que el de varias paginas, pero no podrá ser utilizados. 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.
Traducción de Direcciones
La dirección generada por la CPU se divide en:
· Numero de pagina (p): utilizado como indice en la tabla de pagins que contiene la dirección base de cada pagina en la memoria fisica.
· Offsetde la pagina (d): combinado con la dirección base define la direccion fisica que será enviada a la unidad de memoria.

No hay comentarios:

Publicar un comentario