La invasión de la tecnología!

A medida que pasa el tiempo más nos invade la tecnología...

La WEB...

La WEB esta transformando a la sociedad...

De la mano de la tecnología...

Todo avance tecnológico se encuentra ligado al desarrollo de la innovación...

La ciencia y la tecnología

La ciencia y la tecnología son la plataforma de una cadena de innovaciones que se han difundido por todo el planeta...

Archive for mayo 2015

MEMORIA VIRTUAL


La memoria virtual es una técnica de gestión de memoria que permite que el sistema operativo disponga de mayor cantidad de memoria y que este disponible físicamente para software de usuario como para el sistema operativo.

La memoria virtual permite ejecutar procesos que no caben en la memoria RAM.

Cuando se usa memoria virtual o cuando una dirección es leída o escrita por la CPU, una parte del hardware dentro de la computadora traduce las direcciones de memoria generadas por el software (direcciones virtuales).

  • Dirección Lógica: es la dirección que genera el proceso; también se conoce como dirección virtual.
  • Dirección Física: dirección que perciba la unidad de memoria.
Las direcciones lógicas y físicas son iguales en los esquemas de vinculación en tiempo de compilación y de carga, pero difieren en el esquema de vinculación en tiempo de ejecución.




REQUISITOS DE LA GESTIÓN DE MEMORIA






Los requisitos para entender el concepto de gestión de memoria son:


REUBICACIÓN


Cuando se ejecute un programa, los programadores no sabrán en que lugar de la memoria se encuentra. Mientras el programa esté en ejecución, esté podrá ser movido al disco y devolverlo a la memoria principal en un lugar diferente, a esto se le conoce como Reubicación.


COMPARTICIÓN


En la compartición,  el segmento de datos y el segmento de código comparten el mismo segmento de código pero cada un conserva su independencia trabajando individualmente.


PROTECCIÓN


El sistema operativo sólo puede combinar el nivel de referencia y nunca puede hacer una referencia al bloque de control de procesos. Los procesos no deberían ser capaces de referenciar el espacio de memoria de otro proceso sin permiso. Es imposible comprobar las direcciones absolutas de los programas puesto que estos pueden ser reubicados.


ORGANIZACIÓN LÓGICA


Los programas son escritos en módulos, los módulos se pueden escribir y compilar por separado. A los módulos se les puede dar diferente grado de protección: de sólo lectura, de sólo ejecución.


ORGANIZACIÓN FÍSICA


La memoria disponible para un programa y sus datos puede ser insuficiente . El solapamiento permite asignar la misma zona de memoria a diferentes módulos.

Los registros y el caché son administrador por el procesador.

Ram y memoria secundaria son administrados por el sistema operativo



PAGINACIÓN Y SEGMENTACION


Se divide la memoria en partes. la diferencia que existe entre particiones físicas y dinámicas, es que la memoria se divide en secciones o de diferentes tamaños.

El disco duro es la memoria secundaria, que archiva los programas no procesos. El disco duro es un contenedor de información por lo tanto no puede contener procesos. La memoria y el procesador son los únicos que contienen procesos.

Actualmente, la división de la memoria se realiza a través de la paginación y la segmentación.



PAGINACIÓN


Es una técnica de manejo de memoria, en la que el espacio de memoria se divide en secciones físicas de igual tamaño.

A diferencia de las particiones fijas, acá se dividen los procesos y programas. Los procesos se dividen en el mismo tamaño de los marcos de página.







SEGMENTACIÓN


Es un esquema para implementar espacios de direcciones, llevándose a cabo un agrupación lógica de la información en bloques de tamaño variable denominados segmentos.

La segmentación es un esquema de administración de la memoria que soporta la visión que el usuario tiene de la misma.

Un espacio de direcciones lógicas es una colección de segmentos. Cada segmento tiene un nombre y una longitud.

las direcciones especifican el nombre del segmento como el desplazamiento dentro del segmento. Por lo tanto, el usuario especifica cada dirección mediante dos cantidades, el nombre del segmento y el desplazamiento.






PARTICIONES FIJAS Y DINÁMICAS

En las particiones fijas la memoria se divide en varias particiones de tamaño fijo, del mismo tamaño o de tamaño diferente. Cada partición puede contener exactamente un proceso.

Un programa puede ser tan grande que puede exceder el tamaño de una partición. En este caso, el programador debe diseñar el programa mediante superposiciones para que sólo una parte del programa esté en la memoria principal.

En las particiones de igual tamaño, si todas las particiones estuvieran ocupadas con procesos que no están listos para ejecutar y necesita cargarse un nuevo proceso, debe determinarse que partición expulsarse de la memoria. Cuando una partición esta libre, se selecciona un proceso de la cola de entrada y se carga en la partición libre, cuando un proceso termina, la partición está disponible para otro.



El sistema operativo conserva una tabla que indica qué partes de la memoria están disponibles y cuáles están ocupadas.


  • El tamaño de la partición se especifica al encender el sistema.
  • Cada partición se puede reconfigurar al volver a encender o reiniciar el sistema.
  • Una vez asignada una partición a una tarea, no se permitía que ninguna otra tarea entrara a sus fronteras.




ASIGNACIÓN DE MEMORIA CON PARTICIONES FIJAS


Asigna memoria en tiempo de compilación antes de que el programa asociado sea ejecutado.

Una aplicación de esta técnica conlleva a que un módulo de programa declare datos estáticos de forma local, de forma que estos datos son inaccesibles desde otros módulos a menos que se les pasen referenciados como parámetros o le sean devueltos por la función.





PARTICIONES DINÁMICAS


Consiste en particiones de memoria de tamaño variable, es decir, a cada proceso se le asigna la cantidad de memoria que necesita. Se deben utilizar algunos algoritmos para la ubicación de procesos en las particiones. 

  • Cada trabajo ocupa tanto espacio como necesita.
  • El tamaño del trabajo a ubicar no puede ser menor que el almacenamiento principal disponible.
  • Se disminuye parcial o totalmente el desperdicio de memoria.

Con particiones dinámicas surgen dificultades como:

Producto de la entrada y salida de procesos en la memoria, se van generando porciones cada vez más pequeñas de la memoria sin utilizar, lo que se conoce como fragmentación externa. para solucionar este problema, se debe recurrir a la compactación de la memoria para eliminar espacios (huecos) existentes entre procesos, esto significa que los procesos deben ser reubicados en memoria de forma dinámica.