PDF de programación - Sistemas operativos - Gestión de memoria

Imágen de pdf Sistemas operativos - Gestión de memoria

Sistemas operativos - Gestión de memoriagráfica de visualizaciones

Publicado el 29 de Junio del 2019
685 visualizaciones desde el 29 de Junio del 2019
2,1 MB
83 paginas
Creado hace 9a (27/04/2015)
SISTEMAS OPERATIVOS
GESTIÓN DE MEMORIA

Pedro de Miguel Anasagasti

ÍNDICE

© UPM 2015

● Servidor de memoria
● Regiones de memoria del proceso
● Fichero ejecutable
● Utilización de memoria en bruto
● Necesidades de memoria de un proceso
● Memoria virtual
● Protección de memoria
● Fichero proyectado en memoria
● Bibliotecas dinámicas
● Servicios UNIX de gestión de memoria

2

SERVIDOR DE MEMORIA

INTRODUCCIÓN

El gestor de memoria de un SO de propósito general
tiene dos facetas complementarias.

● Servidor de memoria para los procesos.
● Soporte a la memoria virtual.

Los procesos no entienden del soporte físico del mapa
de memoria, ya sea este soporte memoria principal o
memoria virtual, solamente entienden de direcciones
dentro del mapa de memoria del procesador.
Cuando el gestor de memoria asigna un marco de
página a un proceso, no significa que el proceso vea
más memoria. Simplemente establece un soporte físico
más rápido a una zona de la memoria del proceso.

0

Programa

n > m

Datos

Pila

Mapa de
memoria

2 -1n

0
Memoria
principal
2 -1m

Disco

© UPM 2015

Mapa de
memoria

o
s
e
c
o
r
p


l

e
d



a
i
r
o
m
e
m
e
d



n
e
g
a
m

I

1



i

n
ó
g
e
R

2



i

n
ó
g
e
R

3



i

n
ó
g
e
R

Página en memoria
Página en disco

4

REQUISITOS DE LA GESTIÓN DE MEMORIA
El S.O. multiplexa los recursos entre los procesos

● Cada proceso cree que tiene una máquina para él solo.

• Gestión de procesos: Reparto de procesador.
• Gestión de memoria: Reparto de memoria.

Funciones del servidor de memoria

© UPM 2015

● Crear la imagen de los procesos a partir de los ficheros ejecutables.

• Ofreciendo a cada proceso los recursos de memoria necesarios, dando

soporte a las regiones necesarias.

• Proporcionando grandes espacios de memoria a los procesos.

● Proporcionar protección entre procesos. Aislar los procesos.

• Pero permitir que los procesos compartan memoria de forma controlada.

● Controlar los recursos:

• Direcciones de los mapas de memoria ocupadas y libres.
• Direcciones de memoria principal y de intercambio ocupadas y libres.
• Recuperar los recursos de memoria liberados por los procesos.

● Tratar los errores de acceso a memoria: detectados por el HW.
● Optimizar las prestaciones del sistema.

5

REGIONES DE MEMORIA DEL PROCESO

MEMORIA DEL PROCESO I
Las necesidades de memoria de un proceso se resuelven a dos
niveles:

● Por el SO: Visión global o macroscópica consistente en regiones.
● Por las bibliotecas del lenguaje usado para el programa: Visión de

detalle o microscópica consistente en objetos dentro de las
regiones.

Los lenguajes de programación suelen permitir la asignación dinámica
de objetos de memoria, lo que puede obligar a modificar las regiones.
El SO tiene un visión macroscópica de la memoria de un proceso,
consistente en las regiones, que son grandes trozos de memoria
contigua.

● El proceso tiene unas pocas regiones (p.e. código, datos y pila).
● En un sistema con memoria real (sin memoria virtual) todas las

regiones están en una misma zona contigua de memoria principal.

• Se deja un espacio de memoria principal para el crecimiento
dinámico de las regiones (desaprovechamiento de recursos).

● En memoria virtual las regiones están separadas, alineadas a

página y están formadas por un número entero de páginas.

• Al crear o crecer es cuando se requiere asignar soporte físico.
• Los espacios entre regiones no tienen soporte físico.

o
s
e
c
o
r
p


l

e
d



a
i
r
o
m
e
m
e
d



n
e
g
a
m

I

© UPM 2015

Mapa de
memoria

1



i

n
ó
g
e
R

2



i

n
ó
g
e
R

3



i

n
ó
g
e
R

Página en memoria
Página en disco

7

MEMORIA DEL PROCESO II

© UPM 2015

El programa tiene una visión microscópica de la memoria, consistente en
variables y estructuras de datos.

● Crear una variable dinámica que quepa en la correspondiente región no

implica al SO (lo resuelven las bibliotecas del lenguaje).

● Crear una variable dinámica que no quepa en la correspondiente región

implica activar al SO para que aumente dicha región, o cree una nueva. De
ello se encargan las bibliotecas del lenguaje, liberando al programador de
esta tarea.

● Las bibliotecas del lenguaje utilizado en el desarrollo del programa

gestionan el espacio disponible en la región de datos dinámicos.

• Solamente llaman al SO cuando tienen que variar el tamaño de la

región, o crear una nueva región.

8

IMAGEN DE MEMORIA

Imagen de memoria: conjunto de regiones (o segmentos) de
memoria asignados a un proceso.

Características de una región

● Es una zona contigua de direcciones de memoria definida

por:

• Una dirección de comienzo
• y un tamaño.

● Fuente: lugar donde se almacena el valor inicial.
● Puede ser compartida o privada.
● Niveles de protección típicos: RWX.
● Puede tener tamaño fijo o variable.

o
s
e
c
o
r
p


l

e
d



a
i
r
o
m
e
m
e
d



n
e
g
a
m

I

© UPM 2015

Mapa de
memoria

1



i

n
ó
g
e
R

2



i

n
ó
g
e
R

3



i

n
ó
g
e
R

Página en memoria
Página en disco

9

REGIONES DEL PROCESO

© UPM 2015

Las regiones más relevantes de la imagen de memoria del proceso son:

● Código (texto): Contiene el código máquina del programa.
● Datos, que se organiza en:

• Datos con valor inicial: Variables globales inicializadas.
• Datos sin valor inicial: Variables globales no inicializadas.
• Datos creados dinámicamente o heap.

● Pila: soporta los registros de activación de los procedimientos.

La estructuración en regiones depende del diseño del SO.

● Puede haber una sola región que englobe datos con valor inicial, datos sin

valor inicial y datos creados dinámicamente.

● O puede haber regiones separadas para distintos tipos de datos.

En un sistema con memoria virtual las regiones se alinean a página,
ocupando un número entero de páginas.

10

OPERACIONES SOBRE REGIONES

© UPM 2015

● Creación de región

• Al crear el mapa inicial o por una solicitud posterior
• En sistemas con memoria virtual no se asignan marcos de memoria

principal, se asigna swap o rellenar con 0

● Liberación de región

• Al terminar el proceso o por solicitud posterior
• Se recuperan los recursos (swap y marcos)

● Cambio de tamaño de región

• Del heap o de la pila
• En sistemas con memoria virtual no se asigna memoria principal

● Duplicado de región

• Operación requerida por el servicio FORK de POSIX

11

MAPA DE MEMORIA DE UN PROCESO HIPOTÉTICO

© UPM 2015

Mapa de memoria

Código

Datos con valor inicial
Datos sin valor inicial

Heap

Compartido
Privado
Privado
Privado

R–X
RW–
RW–
RW–

Tamaño
Fijo
Fijo
Fijo
Variable

Fuente
Ejecutable
Ejecutable
← 0
0


Fichero proyectado F

Com./Priv.

??–

Variable

Fichero

Zona de memoria compartida

Compartido

??–

Variable



0

Código biblioteca dinámica B

Datos con val. inic. bibl. B
Datos sin val. inic. bibl. B

Compartido
Privado
Privado

R–X
RW–
RW–

Fijo
Fijo
Fijo

Biblioteca
Biblioteca


0

Pila de thread 1

Privado

RW–

Variable



0

Pila del proceso

Privado

RW–

Variable



0 (pila inicial)

12

CARACTERÍSTICAS DE LAS REGIONES

© UPM 2015

Características típicas de las regiones creadas en el arranque del proceso
Región de código.

● Compartida, RX, tamaño fijo, fuente: el fichero ejecutable.

Región de datos con valor inicial.

● Privada, RW, tamaño fijo, fuente: el fichero ejecutable.

Región de datos sin valor inicial.

● Privada, RW, tamaño fijo, fuente: rellenar con 0.

Región de pila.

● Privada, RW, tamaño variable, fuente: rellenar con 0.
● Pila inicial (creada al arrancar el programa):

• Variables de entorno.
• Argumentos del programa.

(En la sección de protección se tratará el porqué de rellenar con 0).

13

Otras regiones de la imagen creadas durante ejecución
Región de Heap.

© UPM 2015

● Soporte de memoria dinámica gestionada por el lenguaje (p.e. malloc en C).
● Persistencia controlada por el programador.
● Privada, RW, tamaño variable, fuente: rellenar con 0.

Memoria compartida.

● Región asociada a la zona de memoria compartida.
● Compartida, tamaño variable, fuente: rellenar con 0.
● Protección especificada en proyección.

Fichero proyectado.

● Región asociada a cada fichero proyectado.
● Compartida o privada, tamaño variable, fuente: el fichero proyectado.
● Protección especificada en proyección.

Pilas de threads.

● Cada pila de thread corresponde con una región.
● Mismas características que pila del proceso.

Biblioteca dinámica.

● Regiones asociadas al código y datos de cada biblioteca dinámica.

14

CREACIÓN DE REGIONES

© UPM 2015

El gestor de memoria crea las regiones de memoria cuando:

● se crea un proceso (fork),
● se cambia el programa del proceso (exec),
● o se solicita una nueva región.

15

FICHERO EJECUTABLE

El fichero ejecutable contiene toda la información para crear el proceso.
Existen distintos formatos (p.e. Executable and Linkable Format (ELF)).
Estructura del ejecutable: Cabecera y conjunto de secciones.
Cabecera:

© UPM 2015

Cabecera

Secciones

0

1000

5000

8000

Fichero Ejecutable

Número mágico

Contador de programa inicial

....................

Tabla de secciones

Código

(constantes)

Datos con valor inicial

. . . . . . . . . . . . . . . .

Tabla de símbolos

Despl. Tam.
Código
4000
1000
Datos con v.i.
5000
1000
------
Datos sin v.i.
500
...................... ........ ........
T. Símbolos
1000

8000

17

SECCIONES DEL EJECUTABLE

© UPM 2015

Secciones principales

● Sección de código (texto): Contiene código del programa. Suele incluir

también las constantes del programa y cadenas de caracteres.

● Sección de datos con valor inicial: Variables globales inicializadas.

Otras secciones

● Tabla de símbolos para depuración y montaje dinámico.
● Lista de bibliotecas dinámicas usadas.

No existen secciones para

● Datos estáticos sin valor inicial: Variables globales no inicializadas.

• Aparece en tabla de secciones pero no se a
  • Links de descarga
http://lwp-l.com/pdf16205

Comentarios de: Sistemas operativos - Gestión de memoria (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad