Arquitectura de computadoras para inteligencia artificial. memorias
Size: 4.44 MB
Language: es
Added: Oct 12, 2025
Slides: 47 pages
Slide Content
Clase 8Clase 8
Arquitectura de Arquitectura de
ComputadorasComputadoras
Gestión de memoria
Antecedentes
La memoria física es un conjunto de celdas
referenciables por medio de una dirección lineal (p.ej. de la
00000h a la FFFFFh)
Para que un programa se
sus datos necesitan estar
(al menos en parte)
En un sistema multitarea,
ejecute, su código y
cargados en memoria
la memoria ha de
repartirse entre los diferentes procesos
Gestión de la memoria
Antecedentes (2)
Las rutinas del sistema operativo también deberán
residir en memoria, en todo o en parte
Puede ser que la memoria principalno tenga
capacidad suficienteparatodoslos procesos
enejecución
Gestión de la memoria
Objetivo principal
Conseguir que varios procesos puedan ejecutarse de
forma concurrente,
evitando los conflictos de uso
protegiendo al sistema operativo
aprovechando eficazmente el espacio disponible:
Minimizar la memoria desaprovechada
Evitar fragmentación
Memoria ocupada por varias copias de un mismo objeto
Memoria ocupada por las estructuras de datos necesarias para la operación
del gestor de memoria
Carga parcial de programas
sin perjudicar el rendimiento:
Tiempo de acceso a memoria
Gestión de la memoria
Objetivo principal (2)
Un gestor de memoria ideal debería por tanto,
minimizar la memoria desaprovechada
y presentar un recargo por acceso a memoria mínimo
además de proporcionarunabuenaprotecciónyuna
comparticiónflexible
Gestión de la memoria
compilación
carga
ejecución
Ciclo de vida de un programa
reubicación
El compilador traduce direcciones de memoria
simbólicas a direcciones binarias.
Si las direcciones binarias son absolutas, el
programa sólo se puede ejecutar en una zona
fija de la memoria: NOES REUBICABLE.
Ej.: los
DOS
programasconformato.COMdeMS-
Conversión de direcciones:
reubicación (2)
Nos interesa que el compilador no genere
direcciones definitivas, sino direcciones
provisionales, reubicables.
Cuando se sepa dónde van a residir el código
los datos, se convertirán a direcciones
absolutas.
¿ En qué momento (etapa) se realiza esta
reubicación ?
y
Carga (enlazador o cargador) Reubicación estática
Ejecución (hardware) Reubicación dinámica
Conversión de direcciones:
direcciones lógicas/direcciones físicas
Dirección física:
memoria
Dirección lógica
la CPU
El dispositivo que
la que llega al chip de
o virtual: la generadapor
traduce direcciones
virtuales a físicasse llama unidad de
manejo de memoria (MMU, en inglés)
El espacio de direcciones lógicas y el
espacio de direcciones físicas no tienen
porqué coincidir
Reubicación dinámica:
Espacio de direcciones
simbólicas
Espacio de direcciones lógicas/físicas
MR
Proceso
código
inicializarinicializados
Fichero fuente
(principal.cc)
#include<stream.h>
main()
{
int cont;
... cont++
...
}
Fichero ejecutable Memoria lógica del
(principal) proceso Memoria física
cabecera
código
datos
inicializados
datos datos sin
pila
Espacios de direcciones
El registro base y el
registro límite pueden servir para
localizar direcciones de memoria.
El registro base sirve como referencia para ubicar
una
dirección en particular y el registro límite ayuda a
determinar si el
desplazamiento de una dirección está por
encima del
área asignada.
Este mecanismo sirve de protección para la memoria.
Registro límite tamaño máximo del programa y los datos
Registro base posición de inicio
del programa en memoria
Registro Base y Registro Límite :
físicas
Dirección
lógica
virtua
CPU
dir. lógica
1234
de
dir. física
81234
memoria
+ 80000
registro base
MMU
o l
Memoria
Disco
CPU
MMU
Controlador
de memoria
Controlador
disco
Dirección física
Direcciones lógicas/direcciones
en Hexadecimal ?? 13880
(h)
La función principal es proteger la carga en memoria
de un módulo hasta que el programa lo llame.
Proceso se ejecute
Código + Datos Memoria física
Consecuencia:
Tamaño de un proceso limitado al tamaño de la memoria
física
Carga dinámica
Similar a la carga dinámica, pero efectuando el enlace
en tiempo de ejecución: bibliotecas dinámicas (DLL)
La DLL se carga en memoria cuando algún proceso llama
a una de sus rutinas. Las llamadas a sus
funciones se efectúan a través de una tabla de punteros.
Si varios procesos emplean la biblioteca dinámica,sólo
se mantiene una copia de ella en
Ejemplos de enlace dinámico:
Memoria física
0
Registro base
256K
SO
Proceso
Gestión de memoria contigua
La memoria principal debe dar cabida al S.O. y a los procesos de usuario.
Generalmente se divide la memoria en dos particiones una para el S.O. residente o
otra para los procesos de usuario (Utilizando el registro base para proteger al S.O.)
Evolución: particiones múltiples
particiones
particiones
MFT
de
de
tamaño
tamaño
fijo (MFT) –estaticas-
variable(MVT) –dinamicas-
MVT
Memoria física
SO
Memoria física Memoria física
SO SO
Partición 1
Partición 1
Partición 2
Partición 2
Partición 3
Partición 3
Partición 4
Partición 4
Gestión de memoria contigua
Pareja de registrosbaseylímite
dir. lógica
1234
dir. física
81234
MMU
CPU
5000 80000
límite base
< +
sí
no
excepción
memoria
Memoria contigua: protección
Es el gran problema de la memoriacontigua
Fragmentación
Fragmentación
interna (MFT)
externa(MVT)
31
La fragmentación de la memoria
Permitir que un proceso puede ubicarse en
zonas de memoria no necesariamente contiguas
Y si no se puede lo anterior compactación
¿Es posible siempre?
Si la reubicación es estática y se efectúa durante el ensamblado
o la carga, no puede haber compactación
Esta sólo es posible si la reubicación es dinámica y se efectúa en
tiempo de ejecución
Sólo requiere mover el programa y los datos y modificar el registro base
para que refleje la nueva dirección base
Fragmentación: soluciones
Estrategia a seguir
Seleccionar una estrategia óptima de traslados
Raras veces es implementado debido al gasto en que se incurre al
evaluar las opciones
Reubicar todas las particiones en un extremo de la memoria
El recargo por copia es generalmente más alto que el de un traslado
más selectivo
Compactación + intercambio
Copiar en disco los procesos
que
tienen que cambiar de lugar
Compactación
Técnica que soluciona la fragmentación externa
La idea: Trocear la memoria disponible en páginas de
tamaño fijo (ej. 4Kb). Un programa puede residir en
varias páginas no contiguas
Las páginas disponibles en memoria se llaman marcos de página
(page frames).
Toda dirección lógica se descompone en dos partes:
número de página y desplazamiento.
La MMU se encarga de asociar el número de página
lógico con el marco de página asignado. Para ello
emplea una tabla de páginas.
Paginación
Paginación/Ejemplo
Ubicación de un proceso en memoria y creación de la tabla de páginas:
tamaño de página 4kbytes, tamañodela memoria 48kbytes
Memoria física
Memoria física
0
0
4k
Tabla de páginas
Proceso 1
Proceso 1 (10k)
4k
8k
8k
12k
→
12k
16k
20k
Pg2 16k
20k
24k
10k/4k=2.5 → 3 páginas 24k
28k
32k
28k
32k
36k
36k
40k
44k
40k
44k
P1-Pg2
¡¡Fragmentación
interna!!
48k
48k
48k/4k=12
marcos
Marco
10
3
6
Pg0
Pg1
S0
SO
P1-Pg0
P1-Pg1
m0
m1
m2
m3
m4
m5
m6
m7
m8
m9
m10
m11
Ejemplo de paginación
libre
La gestión del espacio libre consiste simplemente en
saber qué marcos están libres
El SO posee una tabla
lista de punteros para saber el orden de uso de
cada marco(TMP)
demarcosdePáginas y una
Paginación: gestión del espacio
traducción de direcciones
Traducció
n
de direcciones: direcciones de16 bits y tamaño de página
4kbytes
Desplazamiento
dentro de la
página
4k=2
12
12 bits
16-12=4bits Número de página
Dirección lógica:(8196)
Tabla de Páginas
Dirección física: (24580)
Marco
1010
0011
0110
Marco de página
0110 000000000100
0010 000000000100
Paginación: