arquitectura_computadoras_clase_8_29092025.ppt

mviapiano 0 views 47 slides Oct 12, 2025
Slide 1
Slide 1 of 47
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47

About This Presentation

Arquitectura de computadoras para inteligencia artificial. memorias


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:
 

UNIX: shared libraries (shlib)
 

Windows: dynamic load libraries (dll)
memoria.

 
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
< +

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: