KELA Presentacion Costa Rica 2024 - evento Protégeles
Trabajo de gestión de la memoria principal.
1. República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria.
Ciencia, Tecnología e Innovación.
Universidad Politécnica Territorial de Paria “Luis Mariano Rivera”
P.N.F. Ingeniería en Informática.
Municipalización Cajigal.
GESTIÓN DE LA MEMORIA PRINCIPAL.
Octubre, 2016.
Estudiantes:
Br.Farias, Angelys.
C.I.: 24.839.411.
Br. Vasquez, Yorlexis.
C.I.: 25. 286.410.
Br. Requena, Juliannys.
C.I.: 25.996.731.
Br. Vasquez, Yohandrix.
C.I.: 20.376.572
Profesor:
Ing. Malavé, Abdias.
Saber:
Sistemas Operativos.
2. INTRODUCCIÓN
Actualmente las computadoras se han vuelto muy importantes en la vida
humana, es por ello que también se ha vuelto indispensable la realización o creación de
herramientas que a su vez sean mejoradas en un futuro o ya hayan sido mejoradas.
Estas herramientas mencionadas anteriormente es la memoria que es un
dispositivo que retiene o almacena información. En este dispositivo y otros podemos
encontrar su administración, jerarquía, almacenamiento, entre otros que realizan
procesos u operaciones en una memoria o que tengan que ver con la memoria principal.
Por otro lado nos encontramos con la memoria virtual que se encarga de ejecutar
los procesos que requieren más memoria de la que dispone el sistema, ya que en la
memoria principal se mantendrá solo aquella memoria que el proceso esté utilizando y
el resto en disco. De tal manera que las limitaciones de memoria física ya no existiría.
3. 1. ¿Qué es una Memoria?
La memoria es el dispositivo que retiene, memoriza o almacena datos
informáticos durante algún intervalo de tiempo. La memoria proporciona una de las
principales funciones de la computación moderna: el almacenamiento de información y
conocimiento. Es uno de los componentes fundamentales de la computadora, que
interconectada a la unidad central de procesamiento (CPU, por las siglas en inglés de
Central Processing Unit) y los dispositivos de entrada/salida, implementan lo
fundamental del modelo de computadora de la arquitectura de von Neumann.
2. ¿Qué es la Memoria Principal?
Es donde son ejecutados los programas y procesos de una computadora y es el
espacio real que existe en memoria para que se ejecuten los procesos. Por lo general esta
memoria es de mayor costo que la memoria secundaria, pero el acceso a la información
contenida en ella es de más rápido acceso. Solo la memoria caché es más rápida que la
principal, pero su costo es a su vez mayor.
3. Gestión de la Memoria Principal:
Es aquella memoria de un ordenador, donde se almacenan temporalmente tanto
los datos como los programas que la CPU está procesando o va a procesar en un
determinado momento. Por su función, es una amiga inseparable del microprocesador,
con el cual se comunica a través de los buses de datos. Por ejemplo, cuando la CPU
tiene que ejecutar un programa, primero lo coloca en la memoria y después lo empieza a
ejecutar. Lo mismo ocurre cuando necesita procesar una serie de datos; antes de poder
procesarlos los tiene que llevar a la memoria principal.
4. Esta clase de memoria es volátil, es decir que, cuando se corta la energía
eléctrica, se borra toda la información que estuviera almacenada en ella.
Por su función, la cantidad de memoria RAM de que disponga una computadora
es un factor muy importante; hay programas y juegos que requieren una gran cantidad
de memoria para poder usarlos, otros andarán más rápido si el sistema cuenta con más
memoria RAM.
La memoria Caché: dentro de la memoria RAM existe una clase de memoria
denominada Memoria Caché que tiene la característica de ser más rápida que las otras,
permitiendo que el intercambio de información entre el procesador y la memoria
principal sea a mayor velocidad.
La estructura de la memoria principal es prevalentemente una unidad dividida en
celdas que se identifican mediante una dirección. Está formada por bloques de circuitos
integrados o chips capaces de almacenar, retener o "memorizar" información digital, es
decir, valores binarios; a dichos bloques tiene acceso el microprocesador de la
computadora.
La MP se comunica con el microprocesador de la CPU mediante el bus de
direcciones. El ancho de este bus determina la capacidad que posea el microprocesador
para el direccionamiento de direcciones en memoria.
En algunas oportunidades suele llamarse "memoria interna" a la MP, porque a
diferencia de los dispositivos de memoria secundaria, la MP no puede extraerse tan
fácilmente por usuarios no técnicos.
4. Organización de la memoria:
Históricamente el almacenamiento principal se ha considerado como un recurso
costoso, por lo cual su utilización debía optimizarse. La memoria está dividida en
5. primaria y secundaria. El traspaso de información entre éstas es la preocupación más
grande del sistema; esta responsabilidad puede ser asignada al programador, pero ésto
sería una gran pérdida de tiempo, por esto el sistema debe ocuparse de ello.
5. Organización de almacenamiento:
6. Administración:
La Administración de la Memoria para tener un control sobre los lugares donde
están almacenados los procesos y datos que actualmente se están utilizando.
Independientemente del esquema de organización hay que decidir las estrategias que se
utilizarán para optimizar el rendimiento. Se refiere a los distintos métodos y operaciones
que se encargan de obtener la máxima utilidad de la memoria, organizando los procesos
y programas que se ejecutan de manera tal que se aproveche de la mejor manera posible
el espacio disponible.
Para poder lograrlo, la operación principal que realiza es la de trasladar la
información que deberá ser ejecutada por el procesador, a la memoria principal.
Actualmente esta administración se conoce como Memoria Virtual ya que no es la
memoria física del procesador sino una memoria virtual que la representa. Entre algunas
ventajas, esta memoria permite que el sistema cuente con una memoria más extensa
teniendo la misma memoria real, con lo que esta se puede utilizar de manera más
eficiente. Y por supuesto, que los programas que son utilizados no ocupen lugar
innecesario.
6. 7. Jerarquía de Memoria:
Es la organización piramidal de la memoria en niveles que tienen las
computadoras. El objetivo es conseguir el rendimiento de una memoria de gran
velocidad al coste de una memoria de baja velocidad.
8. Particiones:
Es el nombre que recibe cada una de las divisiones en una sola unidad física de
almacenamiento de datos, dándole a cada partición un propio sistema de archivo
llamado formato, la gran mayoría de los sistemas operativos reconocen, utilizan y
manipulan a una partición como un disco físico independiente sabiendo que están en un
solo disco físico, estas particiones pueden ser:
Particiones Fijas:
Con la creación de estas particiones se comienza a ver la
multiprogramación, una partición fija por cada tarea, el tamaño de la partición
se daba al arrancar el sistema cada partición se podía reconfigurar al volver
encender o reiniciar el sistema. Con estas particiones nos aparece la
fragmentación interna.
7. Particiones Dinámicas:
Con esta partición, las particiones son variables en número y longitud,
esto quiere decir que cuando se carga un proceso a memorial principal se le
asigna el espacio que necesita en memoria y no más. Esta partición comienza
siendo muy buena pero en el trascurso de uso deja un gran número de huecos
pequeños en la memoria lo cual se le denomina fragmentación externa.
9. Fragmentaciones:
Es la memoria que queda desperdiciada al usar los métodos de gestión de
memoria, tanto el primer ajuste, como el mejor y peor producen fragmentación externa,
la fragmentación es generada cuando durante el reemplazo de procesos quedan huecos
entre dos o más procesos de manera no contigua y cada hueco no es capaz de soportar
ningún proceso de la lista de espera.
8. La fragmentación puede ser:
Fragmentación Externa: existe el espacio total de memoria para satisfacer un
requerimiento, pero no es contigua. La fragmentación externa se puede reducir mediante
la compartición para colocar toda la memoria libre en un solo gran bloque, pero esta
solo es posible si la recolocación es dinámica y se hace en tiempo de ejecución.
Fragmentación Interna:
La memoria asistida puede ser ligeramente mayor que la requerida, esta
referencia es interna a la partición, pero no se utiliza.
10. Condensación:
Es unir o fusionar espacios o “huecos” adyacentes para formar uno más grande.
Por ejemplo: si hay una solicitud de usuario de 5k y en la memoria hay disponibles 2
“huecos” contiguos pero uno es de 2k y otro es de 3k, entonces para poder atender esa
solicitud de usuario, se “unen” los 2 de 5k, por tanto ahora si cabria la solicitud en el
“hueco” que hay disponible.
11. Compactación:
Es una solución para el problema de la fragmentación externa, el objetivo
consiste en deslizar el contenido de la memoria libre en un solo bloque de gran tamaño.
Algunas técnicas que consiste en trasladar todas las áreas ocupadas del
almacenamiento hacia algún extremo de la memoria son:
Una solución de la fragmentación externa.
El objetivo consiste en desplazar el contenido de la memoria libre en un solo
bloque de gran tamaño.
La compactación no siempre es posible, solo es posible si la relocalización es
dinámica y se efectúa en el momento de la ejecución.
Este esquema puede ser bastante costoso
9. 12. Estrategias de Colocación: permiten determinar en qué lugar de la memoria
principal se deben colocar los programas y datos entrantes.
Tipos:
Mejor Ajuste: colocar el trabajo en el menor bloque en el que quepa.
Primer Ajuste: colocar el trabajo en el primer hueco de la lista de almacenamiento
libre en el que quepa.
Peor Ajuste: colocar el trabajo en el menor bloque en el que quepa.
13. ¿Qué es la Memoria Virtual?
El término memoria virtual se asocia a dos conceptos que normalmente a parecen
unidos:
El uso de almacenamiento secundario para ofrecer al conjunto de las aplicaciones la
ilusión de tener más memoria RAM de la que realmente hay en el sistema. Esta ilusión
de existe tanto a nivel del sistema, es decir, teniendo en ejecución más aplicaciones de
las que realmente caben en la memoria principal, sin que por ello cada aplicación
individual pueda usar más memoria de la que realmente hay o incluso de forma más
general, ofreciendo a cada aplicación más memoria de la que existe físicamente en la
máquina.
10. 14. Administración de Memoria Virtual:
Es una técnica de gestión de la memoria que permite que el sistema operativo
disponga, tanto para el software de usuario como para sí mismo, de mayor cantidad de
memoria que esté disponible físicamente. La mayoría de los ordenadores tienen cuatro
tipos de memoria: registros en la CPU, la memoria caché (tanto dentro como fuera del
CPU), la memoria RAM y el disco duro. En ese orden, van de menor capacidad y
mayor velocidad a mayor capacidad y menor velocidad.
15. Espacios de direcciones lógicas y físicas:
15.1. Lógicas:
Las direcciones lógicas o virtuales son las direcciones utilizadas por los procesos.
Sufren una serie de transformaciones, realizadas por el procesador (la MMU), antes de
convertirse en direcciones físicas.
15.2. Físicas:
Las direcciones físicas son aquellas que referencian alguna posición de la
memoria física, se obtienen después de aplicar una transformación por parte de la
MMU (Unidad de Manejo de Memoria).
16. Paginación:
Son los que dividen los programas en pequeñas partes o páginas. Del mismo modo,
la memoria es dividida en trozos del mismo tamaño que las páginas llamados marcos
de página. De esta forma, la cantidad de memoria desperdiciada por un proceso es el
final de su última página, lo que minimiza la fragmentación interna y evita la externa.
11. 17. Segmentación:
Es la técnica de gestión de memoria que pretende acercarse más al punto de vista
del usuario. Los programas se desarrollan, generalmente, en torno a un núcleo central
(principal) desde el que se bifurca a otras partes (rutinas) o se accede a zonas de datos
(tablas, pilas, etc).
La segmentación de un programa la realiza el compilador y en ella cada
dirección lógica se expresará mediante dos valores: Número de segmento (s) y
desplazamiento dentro del segmento (d), Una de las implementaciones más obvias y
directas de un espacio de memoria segmentado es asignar un segmento distinto a cada
una de las secciones del espacio en memoria de un proceso.
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. 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. Comparació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 ejecutarse.
12. 18. Paginas por Demanda:
Es similar a un sistema de paginación con intercambio. Los procesos residen en
memoria secundaria (en disco). Cuando queremos ejecutar un proceso, lo metemos en la
memoria, sin embargo en vez de intercambiar todo el proceso hacia la memoria,
utilizamos un intercambio perezoso un intercambiador perezoso nunca reincorpora una
página a memoria a menos que se necesite. Como ahora consideramos un proceso como
una secuencia de páginas, en vez de un gran espacio contiguo de direcciones, el término
intercambio es técnicamente incorrecto.
Cuando un proceso se reincorpora, el paginador lleva a memoria las páginas
necesarias. Así evita colocar en la memoria páginas que no se utilizaran, reduciendo el
tiempo de intercambio y la cantidad de memoria física necesaria.
14. Fallo de Páginas:
Es la secuencia de eventos que ocurren cuando un programa intenta acceder a
datos (o código) que está en su espacio de direcciones, pero que no está actualmente
ubicado en la RAM del sistema. El sistema operativo debe manejar los fallos de página
haciendo residentes en memoria los datos accedidos, permitiendo de esta manera que el
programa continúe la operación como que si el fallo de página nunca ocurrió.
En el caso de nuestra aplicación hipotética, el CPU primeramente presenta la
dirección deseada (12374) al MMU. Sin embargo, el MMU no tiene traducción para
esta dirección. Por tanto, interrumpe al CPU y causa que se ejecute un software,
conocido como el manejador de fallos de página. El manejador de fallos de página
determina lo que se debe hacer para resolver esta falla de página. El mismo puede:
Encontrar dónde reside la página deseada en disco y la lee (este es usualmente el
caso si el fallo de página es por una página de código).
Determina que la página deseada ya está en RAM (pero no está asignada al
proceso actual) y reconfigura el MMU para que apunte a él.
Apunta a una página especial que solamente contiene ceros y asigna una nueva
página para el proceso solamente si este intenta alguna vez escribir a la página especial
13. (esto se llama una página de copia en escritura y es utilizada a menudo por páginas que
contienen datos inicializados a cero).
Obtiene la página deseada desde otro lugar (lo que se discute en detalle más
adelante).
Mientras que las primeras tres acciones son relativamente sencillas, la última no
lo es. Por eso necesitamos cubrir algunos tópicos adicionales.
La memoria cargada en memoria principal se le denomina memoria residente, el
acceso a memoria residente por parte de un proceso es tomado como un acceso normal,
pero el acceso a memoria no residente genera un fallo de página.
El fallo de página genera un trap a nivel del sistema operativo, que activa una
rutina de atención que carga la página en la memoria principal.
19. Segmentación Paginada:
Son técnicas diferentes, cada una de las cuales busca brindar las ventajas
enunciadas anteriormente.
Para la segmentación se necesita que estén cargadas en memoria, áreas de
tamaños variables. Si se requiere cargar un segmento en memoria; que antes estuvo en
ella y fue removido a memoria secundaria; se necesita encontrar una región de la
memoria lo suficientemente grande para contenerlo, lo cual no es siempre factible; en
cambio "recargar" una página implica solo encontrar un merco de página disponible.
A nivel de paginación, si quiere referenciar en forma cíclicas n páginas, estas
deberán ser cargadas una a una generándose varias interrupciones por fallas de páginas;
bajo segmentación, esta página podría conformar un solo segmento, ocurriendo una sola
interrupción, por falla de segmento. No obstante, si bajo segmentación, se desea acceder
un área muy pequeña dentro de un segmento muy grande, este deberá cargarse
completamente en memoria, desperdiciándose memoria; bajo paginación solo se cargara
la página que contiene los ítems referenciados.
14. Puede hacerse una combinación de segmentación y paginación para obtener las
ventajas de ambas. En lugar de tratar un segmento como una unidad contigua, este
puede dividirse en páginas. Cada segmento puede ser descrito por su propia tabla de
páginas.
Los segmentos son usualmente múltiplos de páginas en tamaño, y no es
necesario que todas las páginas se encuentren en memoria principal a la vez; además las
páginas de un mismo segmento, aunque se encuentren contiguas en memoria virtual; no
necesitan estarlo en memoria real.
Las direcciones tienen tres componentes: (s, p,d), donde la primera indica el
número del segmento, la segunda el número de la página dentro del segmento y la
tercera el desplazamiento dentro de la página. Se deberán usar varias tablas, las cuales
son:
SMT (Tabla de Mapas de Segmentos): una para cada proceso. En cada entrada
de la SMT se almacena la información descrita bajo segmentación pura, pero en el
campo de dirección se indicara la dirección de la PMT (tabla de mapas de páginas) que
describe a las diferentes páginas de cada segmento.
PMT (Tabla de Mapas de Páginas): una por segmento; cada entrada de la
PMT describe una página de un segmento; en la forma que se presentó la página pura.
TBM (Tabla de Bloques de Memoria): para controlar asignación de páginas
por parte del sistema operativo.
JT (Tabla de Jobs): que contiene las direcciones de comienzo de cada una de
las SMT de los procesos que se ejecutan en memoria.
En el caso, de que un segmento sea de tamaño inferior o igual al de una página,
no se necesita tener la correspondiente PMT, actuándose en igual forma que bajo
segmentación pura; puede arreglarse un bit adicional (S) a cada entrada de la SMT, que
indicara si el segmento esta paginado o no.
20. Paginación Segmentada:
Es un esquema de administración de memoria, que consiste en segmentar la
tabla de páginas adecuándola. Tanto la segmentación y paginación ofrecen
15. significativas ventajas, algunos sistemas (IBM 370) combinan ambas técnicas en donde
los segmentos tienen un tamaño múltiplo de página.
En la segmentación y la paginación el proceso es el siguiente: se hace la
solicitud de acceso por medio de una dirección “V” la cual contiene los campos de
segmento, páginas y desplazamiento.
16. CONCLUSIÓN
Como ya sabemos la memoria es la encargada de almacenar información de los
procesos, en un sistema operativo la memoria es uno de los recursos más valiosos ya
que gestiona los procesos en la misma. Luego nos encontramos con la memoria
secundaria que es parte fundamental en un proceso que abarque más de lo que tenga la
memoria de espacio. Estos dispositivos de almacenamiento son muy importantes en un
computador ya que las acciones que se realizan en ella son fundamentales en el mismo.