2. Contenido
• Métodos de gestión de memoria
– Segmentación
– Paginación
• Método de segmentación de memoria
utilizado en los procesadores 8086, 8088
3. Qué son?
Son métodos incorporados a la funcionalidad
de los Sistemas Operativos que les permiten
administrar la memoria principal del equipo
de cómputo.
Los métodos más utilizados son paginación y
segmentación.
4. Que funciones apoyan?
• Asignación
• Relocalización
• Optimización
• Protección
• Organización
5. Método de paginación
• La memoria principal se separa en pedazos iguales de
tamaño fijo relativamente pequeños llamados marcos
• Cada proceso se divide en pedazos pequeños del mismo
tamaño de los marcos llamados páginas
• Las páginas se asignan a los marcos disponibles no
necesariamente continuos
• El sistema operativo mantiene una tabla de páginas para
cada proceso, la cual muestra la posición del marco para
cada página del proceso
• Las direcciones lógicas están compuesta por un número de
página y un desplazamiento dentro de la página
6. Método de segmentación
• La memoria principal se divide en segmentos que
corresponden al programa y a los datos asociados
• Un segmento es un área continua de memoria de
longitud variable hasta un valor máximo
• Los segmentos pueden traslaparse entre sí
• Las direcciones de inicio de segmentos están
almacenadas en registros del procesador
• Las direcciones lógicas están compuestas por una
dirección de segmento y un desplazamiento dentro
del segmento
7. Método de segmentación de memoria
utilizado en los procesadores 8086, 8088
En los procesadores 8086, 8088 los
segmentos tienen longitud variable de hasta
64 Kbytes.
64 Kb
64 Kb
32 Kb
32 Kb
8. Método de segmentación de memoria
utilizado en los procesadores 8086, 8088
Los segmentos se pueden traslapar
intercambiando localidades de memoria.
Segmento X
Segmento Y
Segmento Z
Segmento W
9. Método de segmentación de memoria
utilizado en los procesadores 8086, 8088
La dirección de inicio de un segmento define su
localización. Esta dirección se encuentra contenida
en uno de los cuatro registros de segmento del
procesador.
Segmento
de Pila
Segmento de Datos
Segmento
de Código
Segmento Extra
SS
DS
CS
ES
10. Método de segmentación de memoria
utilizado en los procesadores 8086, 8088
Segmento
de Pila
Segmento de Datos
Segmento
de Código
Segmento Extra
Estructura de datos en memoria para uso del
programador.
Contiene las variables definidas.
Contiene el código de las instrucciones.
Segmento definido por el usuario,
normalmente contiene datos adicionales.
11. Método de segmentación de memoria
utilizado en los procesadores 8086, 8088
Ahora consideremos lo siguiente:
• Para direccionar la memoria (1 Mbyte), el
procesador utiliza 20 bits (220
= 1 Mbyte)
• Los registros del procesador tienen una
longitud de 16 bits
Como se genera una dirección de 20 bits
a partir de direcciones de 16 bits?
12. Método de segmentación de memoria
utilizado en los procesadores 8086, 8088
Las direcciones están divididas en dos
componentes:
segmento y desplazamiento (offset).
13. Método de segmentación de memoria
utilizado en los procesadores 8086, 8088
El componente segmento es la dirección de inicio del
segmento, que como ya comentamos, se encuentra
en los registros de segmento (16 bits).
Segmento
de Pila
Segmento de Datos
Segmento
de Código
Segmento Extra
SS
DS
CS
ES
14. Método de segmentación de memoria
utilizado en los procesadores 8086, 8088
El segmento debe comenzar en una localidad de
memoria cuya dirección sea límite de 16 bytes.
Segmento
de Pila
Segmento de Datos
Segmento
de Código
Segmento Extra
SS (0034H)
DS (0056H)
CS (0093H)
ES (0110H)
00340H
00560H
00930H
01100H
El 0 de la
derecha nos
indica que la
dirección es
límite de 16
bytes.
La dirección de 20 bits (5 dígitos
hexadecimales) se convierte en
una dirección de 16 bits (4 dígitos
hexadecimales) al eliminar el 0
de la derecha.
15. Método de segmentación de memoria
utilizado en los procesadores 8086, 8088
El componente desplazamiento (offset) nos permite accesar
las localidades de memoria dentro del segmento. Son
direcciones de 16 bits (216
=64 Kb).
Segmento
X
64 Kb
0000H
Direcciones de
desplazamiento
4245H
8345H
FFFFH
16. Método de segmentación de memoria
utilizado en los procesadores 8086, 8088
La dirección absoluta o completa se obtiene de combinar los
componentes segmento y desplazamiento de la siguiente
forma:
1. Consideremos segmento=3450H
desplazamiento=2344H
2. Agregando el 0 que se eliminó en la dirección del segmento para
hacerla de 16 bits, la dirección queda como 34500H
3. Al sumar la dirección de segmento de 20 bits con el desplazamiento de
16 bits obtenemos la dirección absoluta
34500H Dirección de segmento de 20 bits
+ 2344H Desplazamiento
36844H Dirección absoluta
17. Método de segmentación de memoria
utilizado en los procesadores 8086, 8088
Gráficamente:
Segmento
X
34500HSegmento=3450H
Desplazamiento=2344H
Direcciones absolutas
36844H
...
...
18. Método de segmentación de memoria
utilizado en los procesadores 8086, 8088
La notación más utilizada para indicar la dirección
de un par segmento-desplazamiento consiste en
separar con dos puntos los valores en hexadecimal,
especificando en primer término la dirección del
segmento. Para el ejemplo anterior:
3450:2344
19. Método de segmentación de memoria
utilizado en los procesadores 8086, 8088
Notese que esa dirección en terminos absolutos se
puede representar con un par segmento-
desplazamiento diferente como este:
2989:CFB4
Para comprobarlo, obten la dirección absoluta en
ambos casos conforme al procedimiento explicado
con anterioridad y compara los resultados.