2. Memoria:
Son los circuitos que permiten almacenar y recuperar
información.
Acceso a la memoria
El acceso a memoria genera la siguiente secuencia de
pasos:
• Verificar que el proceso referencia una página
correcta dentro de su espacio virtual, ya que no todas las
direcciones dentro de su espacio son válidas.
• Si el acceso fue correcto, se busca en la tabla de
páginas el frame correspondiente, verificando el bit de
validez-invalidez.
• Si el bit es de validez se accede al frame
correspondiente y se termina el acceso.
• Sino se genera el trap de page fault, que involucra
los siguientes pasos:
1. Se busca frame libre en memoria principal, si no
hay se ejecuta el algoritmo de reemplazo.
2. Se lee de disco la página a cargar, y se carga en el
frame obtenido en el paso anterior.
3. Se actualiza la tabla de páginas, indicando que la
página está disponible en memoria principal.
4. Se devuelve el control a la instrucción que fue
interrumpida por el PF.
Si se aplica este método se tendrá un sistema puro de
paginación bajo demanda. Tener en cuenta que para poder
llevarlo a cabo se precisa una tabla de páginas y espacio
swap de disco
3. Jerarquía de memoria:
1. Registros CPU del procesador
2. Caché (memoria rápida)
3. Memoria principal RAM
4. Almacenamiento secundario (memoria virtual).
Administrador de memoria:
Parte del S.O. que gestiona la memoria:
1. Control de que partes de la memoria están utilizadas
o libres.
2. Asignar memoria a procesos y liberarla cuando
terminan.
3. Administrar intercambio entre memoria y disco
(Memoria Virtual)
4. El proceso de Compilación y Carga de un
programa
Almacenamiento:
Es una propiedad o capacidad de guardar datos que tiene
un dispositivo electrónico.
Sistema operativo
Es un conjunto de programas especialmente hechos para la
ejecución de varias tareas, en las que sirve de
intermediario entre el usuario y la computadora, también
se puede decir que es el software o programa más
importante que se ejecuta en un computador, nos permite
usarlo y darle órdenes para que haga lo que necesitamos.
En el Sistema operativo que administra la memoria es
conocido como administrador de memoria, el cual lleva un
registro de memoria que se están utilizando y de que
5. aquellos que no, también se asigna espacio en memoria a
los procesos cuando estos la necesitan y liberar espacio de
memoria asignada a proceso que han terminado.
1. Sistema monoprogramado: La memoria principal se
divide en dos partes: una parte para el sistema
operativo (monitor residente, núcleo) y otra parte
para el programa que se ejecuta en ese instante.
2. Sistema multiprogramado: Resulta vital una
gestión efectiva de la memoria. Si sólo hay unos
pocos procesos en memoria, entonces la mayor parte
del tiempo estarán esperando a la E/S y el procesador
estará desocupado por ello hace falta repartir
eficientemente la memoria para meter tantos procesos
como sea posible.
Requisitos deseables a cumplir por cualquier
política de administración de memoria en el
sistema con multiprogramación
Reubicación: No se puede conocer la posición de
memoria en la que se va a cargar un programa al
ejecutarse, ya que nueva posición de memoria es
probable que vuelva a quedar en el mismo lugar, es
decir, puede ocupar la misma posición que tenía antes
de ser suspendido, su proceso debe ser el siguiente:
1. Traducir las direcciones de memoria a las que
hace referencia, direcciones lógicas, en las
direcciones de la memoria principal asignadas al
mismo, direcciones físicas.
6. 2. La MMU (unidad de administración de
memoria) realizará la traducción de las
direcciones
3. Se crea un espacio lógico o un mapa
independiente para cada proceso proyectándolo
sobre la parte correspondiente de la memoria
principal de acuerdo con la función de
traducción.
Protección: Un proceso el cual no puede acceder a la
zona de memoria asignada a otros procesos ni a la del
S.O, es necesario proteger el S.O y a los espacios
lógicos disjuntos donde la reubicación complica el
proceso de protección esta se debe comprobar
durante la ejecución ya que solo acceden a ese
espacio, protección tiene es que satisfacer es el
hardware y no a software, en el cual el sistema
operativo toma el control para realizar la
comprobación y suele estar integrado en la función de
traducción.
Compartición: La compartición de memoria no debe
comprometer la protección básica y permitir que
direcciones lógicas de dos o más procesos,
posiblemente distintas entre sí, se correspondan con
la misma dirección física, el mecanismo empleado
para la reubicación es la base para las capacidades de
compartición, donde debe haber flexibilidad para
permitir que varios procesos accedan a un misma
zona de memoria.
7. Organización lógica de los programas: Programas,
organizados en módulos, cada uno con sus
características, algunos son modificables y otros no.
Si el S.O. y el Hardware pueden tratar de forma
efectiva los programas de usuario y los datos en
forma de módulos, se tienen una serie de ventajas: Se
pueden escribir y compilar independientemente, y el
sistema resuelve en ejecución todas las referencias de
un módulo a otro debe existir distintos grados de
protección:
1. Lectura
2. Ejecución
3. posibilidad de compartir módulos más fácil
para el usuario
Organización física: La memoria está organizada, al
menos, en dos niveles:
1. Principal: Acceso más rápido, coste más alto y
volátil, es decir, mantiene los programas y los
datos de uso actual.
2. Secundaria: Más lenta y barata, y no volátil, es
decir, almacena a largo plazo programa y datos
Maximizar el rendimiento: El gestor de memoria
debe maximizar el número de procesos en memoria,
y minimizar el desperdicio inherente al reparto, para
un mejor aprovechamiento de la memoria casi todos
los S.O. usan paginación para optimizar el
rendimiento la memoria virtual.
8. Mapas de memoria de los procesos: Memoria
virtual, permite proporcionar a un proceso,
transparentemente, un mapa de memoria mayor que
la memoria principal, la disponibilidad de memorias
mayores permite a los programadores crear
aplicaciones con mayores necesidades de memoria
sigue siendo necesario el uso de la memoria virtual.
Los mapas de memoria nacen de los procesos muy
grandes que no caben en una memoria ya que la
memoria era muy cara, los procesos se veían
limitados por su tamaño una solución fue:
1. Overlays: Que fue dividir el programa en una
serie de fases que se ejecutan sucesivamente,
pero estando residente en memoria sólo una
fase donde cada fase al terminar carga la
siguiente fase y le cede el control.
Sistema de gestión o administración de memoria: Parte del
S.O. que lleva a cabo, dinámicamente, las tareas de reparto
y control de la memoria.
9. Las Páginas
Sirven como unidad de almacenamiento de información y
de transferencia entre memoria principal y memoria
auxiliar o secundaria.
Paginación
Es una técnica de manejo de memoria, en la cual el
espacio de memoria se divide en secciones físicas de igual
tamaño, denominadas marcos de página.
• La memoria lógica:
1. La dividimos en bloques llamados: páginas.
2. De igual tamaño que el marco.
• Las páginas de un proceso se cargan en los marcos de
la memoria principal que estén disponibles:
1. Tenemos “trozos” del proceso allí donde la
memoria está disponible.
2. Hardware de paginación: para traducción de
direcciones.
• La dirección lógica: generada consta de dos partes:
1. Número de Pagina (P).
2. Desplazamiento dentro de la página (D).
10. • La tabla de páginas: Contiene la dirección base en
memoria física, la cual permite establecer una
correspondencia entre el número de página y un
número de marco de memoria física.
• La dirección física: es el número de marco y el
desplazamiento.
Segmentación
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.
• El espacio de direcciones lógicas se compone de un
conjunto de segmentos: Cada uno tiene un nombre y
una longitud.
1. Para el usuario las direcciones especifican el
nombre del segmento y el desplazamiento dentro
de él
2. El nombre del segmento se numera, es decir, es
un número <número segmento, desplazamiento>
11. • El procesador Intel 8086 usa segmentación, los
programas se separan en:
1. Segmento de Código.
2. Segmento de Datos.
3. Segmento de Pila.
• Hardware de segmentación mediante Tabla de
segmentos:
1. Establece la correspondencia entre direcciones
físicas y lógicas.
2. Se busca en la tabla de acuerdo con el número de
segmento.
3. Cada entrada 2 registros:
3.1 Base: Física inicial del segmento en
memoria.
3.2 Límite de segmento: longitud del
segmento
4. Se compara límite del segmento con
desplazamiento.
5. Si desplazamiento válido, se suma a la dirección
el registro base.
12. La 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.
Características de la memoria virtual
• Permite separar la memoria lógica del usuario de la
memoria física.
• Un proceso en ejecución no tiene por qué encontrarse
totalmente en memoria principal
• Ahora un proceso puede ser mayor que la memoria
física.
• Permite transferencia de información entre memoria
principal y secundaria (2 niveles consecutivos de la
jerarquía de memoria).
• Usa un dispositivo de almacenamiento secundario
(disco) como dispositivo de intercambio.
• La memoria virtual puede implementarse sobre
Paginación o Segmentación paginada: se transfieren
páginas.
• La transferencia suele ser bajo demanda.