Home

martes, 15 de septiembre de 2009

Administración de la memoria

Estimados lectores les dejo un estracto respecto a uno de los mayores inconvenientes que se les presentan a los usuarios, respecto del rendimiento de sus PCs/Notebooks. Esto hacen, en general, los Sistemas Operativos a la hora de administrar la memoria. Iré detallando mas sobre este tema en nuevas publicaciones.

Administración de la Memoria.

La memoria es fundamental para la operación de cualquier computadora moderna. Curiosamente nuestras aplicaciones cada vez necesitan más y más de este recurso, pero ¿por qué? Una respuesta es el tamaño de las aplicaciones, pero recordemos que los sistemas operativos son los encargados de proveer un ambiente donde estas aplicaciones se ejecuten; por lo tanto, para que la idea de administración de procesos sea factible, tenemos que contar con la memoria para cargar nuestros programas, y también serán necesarios mecanismos que optimicen el uso de este recurso esencial.

Los sistemas operativos ofrecen un mecanismo para que el software acceda a la memoria. En el enfoque más sencillo, la memoria entera de la computadora se dedica a los programas. Este enfoque es el más común en sistemas de una sola tarea (solo un programa se ejecuta a la vez). Incluso en este caso, existirán porciones de la memoria designados para ciertos propósitos (variables, áreas para las rutinas del SO, mapeo del hardware, memoria de video, etc.). Con el hardware de soporte para memoria virtual, los sistemas operativos pueden darle a los programas la ilusión de tener la memoria entera para ellos (o incluso dar la ilusión de que hay más memoria de la que en realidad exista, usando el espacio en disco), cuando en realidad el SO está moviendo continuamente programas en la memoria y asignando dinámicamente la memoria cuando se necesita. Para comprender la ejecución de programas, es necesario estudiar el funcionamiento del servicio que hace posible que las instrucciones y datos puedan ser manipulados. La memoria es una colección de elementos (bytes o words), cada uno con su propia dirección. La interacción con la memoria se lleva a cabo por medio de una secuencia de lecturas o escrituras a direcciones específicas.

El CPU intercambia datos de forma intensiva con la memoria. En un ciclo típico de instrucción, por ejemplo, primero se obtiene una instrucción de la memoria; la instrucción es entonces decodificada y puede causar que los operandos sean traídos de la memoria. Después de ejecutar la instrucción sobre los operandos, los resultados pueden ser almacenados en la memoria.

Es importante notar que la unidad de memoria lo único que ve es un conjunto de direcciones de memoria; no sabe como son generadas (el apuntador a instrucción, indexado, etc.) o para que se van a usar (instrucciones o datos). De acuerdo a esto, podemos ignorar como un programa genera una dirección de memoria, y solo interesarnos por las secuencias de direcciones de memoria generadas por el programa en ejecución.

Asignación de direcciones

Para referenciar una parte especifica de la memoria, se necesita la ubicación de dicha parte de memoria. Esto es lo que se conoce como direcciones físicas.
En los programas, las ubicaciones de memoria a las que se hace referencia son llamadas direcciones lógicas, porque una dirección especificada por un programa puede o no ser la dirección física correcta.

Básicamente hay tres formas diferentes de que las direcciones lógicas sean mapeadas a direcciones físicas, lo cual es llamado ligado de direcciones (address binding). Estás técnicas de ligado dependen de los métodos de administración de memoria que el SO de la computadora use y el hardware disponible:

1. Ligado de direcciones a tiempo de compilación. Cuando al compilar se conoce la dirección absoluta, el compilador escribe la imagen exacta del código que se cargará en la memoria. Esta técnica genera código absoluto, es decir, que las direcciones están previamente en su lugar, y cuando el programa es ejecutado, las ubicaciones lógicas 000 - 999 de hecho corresponden a las direcciones físicas 000 - 999. Por ejemplo, consideremos un sistema simple donde el SO reside en las direcciones físicas 000 - 500, por lo que cualquier programa tendría que comenzar en la dirección 501. Un programa que tiene el espacio de direcciones lógicas 000 - 999 podría ser modificado para que sus direcciones lógicas correspondan con las direcciones físicas 501 - 1500. Si el programa se compiló para una dirección específica, pero tiene que ser cargado en una dirección diferente de arranque, entonces el programa tendrá que ser recompilado. Los sistemas modernos no usan este método por no ser flexible.

2. Ligado de direcciones a tiempo de carga. Si la dirección de inicio del programa no se conoce a tiempo de compilación, entonces el compilador generará código relocalizable. A tiempo de carga, cuando el sistema conoce el lugar donde se colocará el programa, el ligado de tiempo de carga podrá mapear las direcciones lógicas del programa (p.ej. 000-999) a las direcciones físicas correspondientes (p.ej. 501-1500 o 1000-1999), dependiendo de la situación de la carga
(DOS trabaja de esta forma).

3. Ligado de direcciones a tiempo de ejecución. Si la dirección de inicio de un programa va a ser alterada durante su ejecución, entonces el ligado deberá ser postergado hasta el momento en que se ejecute. Las direcciones físicas son generadas durante la ejecución agregando el valor de las direcciones lógicas a un registro de desplazamiento (offset register). De nuevo, suponiendo que las direcciones lógicas del programa son 000-999, puede asignarse el valor de
501 al registro de desplazamiento para hacer referencia a las direcciones físicas 501-1500. Así, cuando la dirección base del programa se cambia de 501 a 2001, el valor del desplazamiento se cambia de 501 a 2001. Este técnica se usa si el sistema operativo usa swapping (pasar procesos a disco para hacer espacio en la memoria), lo que ocasiona que un proceso sea cambiado de posición durante su ejecución. En este caso se usa hardware especial para mejorar el rendimiento.

El programa de usuario sólo ve direcciones lógicas; es la unidad de administración de memoria (MMU) quien se encarga de traducirlas transparentemente a direcciones físicas. La gracia es que el compilador puede generar código absoluto, pensando que el programa se va a cargar siempre en la posición 0, y en realidad el ligado de direcciones se hace a tiempo de ejecución.
La unidad de administración de memoria (MMU) La unidad de administración de memoria (MMU) es un dispositivo de hardware que traduce direcciones virtuales en direcciones físicas. Típicamente la MMU es parte del CPU, aunque en algunos sistemas es una parte independiente.

Las direcciones generadas por el CPU, después de cualquier indexación u operación realizada por los modos de direccionamiento, es llamada dirección virtual, y la dirección transformada por la MMU es llamada dirección física.

La MMU incluye una pequeña cantidad de memoria que contiene una tabla que relaciona las direcciones virtuales y las direcciones físicas; esta tabla es llamada TLB (Translation Lookaside Buffer). Todas las peticiones de datos son enviadas a la MMU, la cual determina si los datos están en la RAM o es necesario extraerlos de un medio de almacenamiento secundario. Si los datos no están en memoria, la MMU genera una interrupción de fallo de página (page fault interrupt).

La MMU soporta el manejo de esquemas de memoria virtual como alojamiento continuo, paginación, segmentación y segmentación con paginación.

Fuente: "Diseño y Simulación de Sistemas Operativos". EUGENIO JACOBO HERNÁNDEZ VALDELAMAR.

lunes, 14 de septiembre de 2009

Contacto


Nelson Ressio

· Edad: 39 · Sexo: Hombre · Sector:
Tecnología · Profesión: Programador de Sistemas · Ubicación: Concordia : Entre Ríos : Argentina · Clip de audio

Datos personales

Programador de Sistemas Dedicado a la realización de Software de Gestión Empresarial desde hace mas de 20 años.

eMail: nelson.ressio@gmail.com

Intereses

·
Informática · Programación · Matemática · Estadística y Probabilidades · Aplicaciones de Gestión · Empresa · Control de Gestión · Redes de datos · sistemas operativos por dentro · Creación de música Techno

Películas favoritas

·
Saga Stars Wars · Star Trek · Terminator 1, 2 y 3 · Día de la Independencia · Contacto · MIB · Animaciones Pixar · DreamWorks · etc.

Música favorita

·
Techno/Rave/Dance/Hip Hop/Rap y clásica (Beethoven · Mozart · Vivaldi · etc. · etc.).

Libros favoritos

·
Cualquiera relativo al àrea de TI y al desarrollo de software.

Mis Sitios:

TECNOLOGÍAS DE LA INFORMACIÓN Y LAS COMUNICACIONES EL MUNDO DE LA MUSICA ELECTRONICA - DJ QUBIT

Sitios que sigo:

Barrapunto BBCMundo.com Ciencia y Tecnología http://ciencia.nasa.gov/ Clarin.com Ultimo Momento EL MUNDO DE LA MUSICA ELECTRONICA - DJ QUBIT Engadget en español FayerWayer Genciencia Gizmodo ES Musica electronica - Honduras Noticias Evaluamos.com Tendencias 21 Yahoo! Noticias: Tecnologia

Términos de uso y privacidad, contacto

1. Información legal:

Todas las páginas webs y blogs publicados por Nelson Ressio, email:
nelson.ressio@gmail.com, a partir de este punto el autor, cumplen y aplican los presentes términos de uso y privacidad.

2. Condiciones de acceso y utilización:

El contenido de los blogs y páginas webs del autor corresponde a opiniones personales y hace uso de su libertad de expresión junto con informaciones de otras fuentes las cuales son nombradas debidamente en cada publicación. No constituyen normas que puedan sustituir a las diferentes actividades profesionales, es propiedad intelectual del mismo. El autor no asume ninguna responsabilidad derivada del uso incorrecto, inapropiado o ilícito de la información aparecida en sus blogs y páginas web. En cuanto a los contenidos de los enlaces que contienen dichos blogs y páginas web, el autor no asume responsabilidades de ningún tipo ... Ningún material de descarga presentado en el sitio está alojado en Blogger. Los enlaces remiten a páginas externas a Blogger donde se alojan los materiales de forma gratuita y sin ánimo de lucro y al sólo y único fin de difundir la información … este sitio y su administrador no se hacen responsables del mal uso o fraudulento de la información presentada …

2.1 Publicación de comentarios:

El autor moderará los comentarios y no asume ninguna responsabilidad en cuanto al contenido de los mismos. En todo caso, el usuario que publique un comentario será el único responsable de las manifestaciones falsas o inexactas que realice y de los perjuicios que cause al autor o a terceros por la información que facilite. Los usuarios que deseen publicar comentarios en los blogs del autor deben disponer de una cuenta en alguno de los siguientes servicios web: Google, OpenID, ...... Los datos personales facilitados a la hora de crear dicha cuenta son gestionados por estos servicios web y dicha gestión es totalmente independiente de la gestión de los blogs realizada por el autor. El autor no asume ninguna responsabilidad en cuanto al uso que hagan estos servicios web de dichos datos. Las páginas webs del autor no admiten la publicación de ningún tipo de contenido (Post) por parte de los usuarios.

2.2 Obligación de hacer un uso correcto de los contenidos:

Los usuarios se comprometen a abstenerse de reproducir, copiar o distribuir los contenidos de los blogs y páginas web del autor. No obstante, quedan autorizados a hacer mención de los mismos enlazando la URL donde los encontraron. El usuario deberá abstenerse de obtener e incluso de intentar obtener los contenidos empleando para ello medios o procedimientos distintos de los que, según los casos, se hayan puesto a su disposición a este efecto o se hayan indicado a este efecto en las páginas web donde se encuentren los contenidos o, en general, de los que se empleen habitualmente en Internet a este efecto siempre que no entrañen un riesgo de daño o inutilización de los servicios y/o de los contenidos.

3. Subscripción vía email:

Algunos blogs del autor permiten recibir los artículos publicados en el correo electrónico de los usuarios subscritos a dicho servicio. Esta funcionalidad es gestionada por FeedBurner Inc. y está sujeta a los términos de servicio y privacidad indicados por dicha compañía en el momento de la subscripción. El envío de los artículos se realiza después de que los usuarios hayan facilitado su correo electrónico y autorizado el envío de los mismos. En ningún caso el autor hará un uso indebido de dichos correos electrónicos.

4. Uso de cookies y web beacons:

El acceso a los blogs y páginas web del autor puede implicar la utilización de cookies y web beacons. Las cookies son pequeñas cantidades de información que se almacenan en el navegador utilizado por cada usuario para que el servidor recuerde cierta información que posteriormente únicamente el servidor que la implementó leerá. Las cookies tienen, generalmente, una duración limitada en el tiempo. Los web beacons o web bugs son gráficos que se insertan en los blogs o páginas web para controlar quien los lee. Ninguna cookie o web beacon permite que pueda contactarse con el número de teléfono del usuario, su dirección de correo electrónico o con cualquier otro medio de contacto. Ninguna cookie o web beacon puede extraer información del disco duro del usuario o robar información personal. La única manera de que la información privada de un usuario forme parte del archivo cookie es que el usuario dé personalmente esa información al servidor. Aquellos usuarios que deseen bloquear o restringir las cookies, o que quieran ser preguntados antes de su generación, pueden configurar su navegador a tal efecto.

6. Vigencia:

Se podrán modificar los términos y condiciones aquí estipulados, total o parcialmente, publicando cualquier cambio en la misma forma en que aparecen estas condiciones generales. La vigencia temporal de estas condiciones generales coincide, por lo tanto, con el tiempo de su exposición, hasta que sean modificadas total o parcialmente, momento en el cual pasarán a tener vigencia las condiciones generales modificadas.

7. Legislación aplicable y competencia jurisdiccional:

Todas las controversias o reclamaciones surgidas de la interpretación o ejecución de los presentes términos de uso y privacidad se regirán por la legislación Argentina, y se someterán a la jurisdicción de los Juzgados y Tribunales que correspondan.
Related Posts Plugin for WordPress, Blogger...

ENTRADAS MAS POPULARES

ÚLTIMAS PUBLICACIONES

Recibe todas las actualizaciones de este blog. Sólo haz clic en el botón Me Gusta de Facebook.

Muchas gracias!!!

Powered By | Blog Gadgets Via Blogger Widgets