PDF de programación - Sistemas Operativos - Tema 4. Memoria

Imágen de pdf Sistemas Operativos - Tema 4. Memoria

Sistemas Operativos - Tema 4. Memoriagráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 23 de Febrero del 2018)
595 visualizaciones desde el 23 de Febrero del 2018
690,6 KB
53 paginas
Creado hace 9a (01/01/2015)
Sistemas
 Opera,vos
 
Tema
 4.
 Memoria
 

© 1998-2015 José Miguel Santos – Alexis Quesada – Francisco Santana –


Belén Esteban

Contenidos
 

n  Conceptos
 básicos
 
n  Ges.ón
 de
 memoria
 con.gua
 
n  Segmentación
 
n  Paginación
 

2

Ges,ón
 de
 la
 memoria
 
Antecedentes
 
n  La
 memoria
 9sica
 es
 un
 conjunto
 de
 celdas
 

referenciables
 por
 medio
 de
 una
 dirección
 lineal
 
(p.ej.
 de
 la
 00000h
 a
 la
 FFFFFh)
 

n  Para
 que
 un
 programa
 se
 ejecute,
 su
 código
 y
 sus
 

datos
 necesitan
 estar
 cargados
 en
 memoria
 (al
 
menos
 en
 parte)
 

n  En
 un
 sistema
 mul.tarea,
 la
 memoria
 ha
 de
 

repar.rse
 entre
 los
 diferentes
 procesos
 

3

Ges,ón
 de
 la
 memoria
 
Antecedentes
 (2)
 
n  Las
 ru.nas
 del
 sistema
 opera.vo
 también
 

deberán
 residir
 en
 memoria,
 en
 todo
 o
 en
 parte
 

n  Puede
 ser
 que
 la
 memoria
 principal
 no
 tenga
 

capacidad
 suficiente
 para
 todos
 los
 procesos
 que
 
quieren
 ejecutarse
 

4

Ges,ón
 de
 la
 memoria:
 obje,vos
 

n  Rendimiento:
 

q  Aprovechar
 al
 máximo
 la
 memoria
 disponible
 
q  Conseguir
 tener
 cargados
 en
 memoria
 varios
 procesos…
 
 

y
 que
 el
 sistema
 no
 se
 venga
 abajo
 

q  Que
 un
 programa
 no
 necesite
 estar
 totalmente
 cargado
 en
 
memoria
 para
 poder
 ejecutarse
 à
 apoyarse
 en
 la
 memoria
 
secundaria,
 si
 es
 preciso
 

n  Protección
 y
 compar,ción:
 

q  Proteger
 al
 SO
 de
 accesos
 indebidos
 
q  Proteger
 el
 espacio
 de
 memoria
 de
 cada
 proceso
 
q  Permi.r
 que
 varios
 procesos
 puedan
 compar.r
 zonas
 de
 
memoria
 (para
 comunicación,
 o
 para
 reu.lizar
 código
 o
 
datos)
 

5

Ges,ón
 de
 la
 memoria:
 cues,ones
 crí,cas
 

n  Reubicación:
 facilitar
 que
 un
 programa
 pueda
 
residir
 en
 cualquier
 zona
 de
 la
 memoria
 9sica.
 

n  Fragmentación:
 ojo
 a
 los
 huecos
 que
 van
 

quedando
 a
 medida
 que
 se
 asignan
 y
 liberan
 
zonas
 de
 memoria.
 

n  Tiempo
 de
 acceso:
 ojo
 al
 impacto
 de
 los
 

mecanismos
 de
 ges.ón
 en
 el
 .empo
 neto
 de
 
acceso
 a
 memoria.
 

6

Ciclo
 de
 vida
 de
 un
 programa
 

mistring.o
 

modulo.o
 
mistring.o
 

otros
 objetos
 y
 

bibliotecas
 

libm.soo
 

pthread.so
 
libc.so
 

bibliotecas
 dinámicas
 

programa
 fuente
 

compilador
 

módulo
 objeto
 

enlazador
 

compilación

programa
 ejecutable
 

cargador
 

carga

programa
 y
 datos
 


 binarios
 en
 memoria
 

HARDWARE
 

ejecución

7

Espacios
 de
 direcciones
 

Fichero fuente

(hola.c)

#include<stdio.h>
 

 
main()
 
{
 

 
 int
 cont;
 

 
 ...
 

 
 cont++
 

 
 ...
 
}
 


Fichero ejecutable

(hola)

Memoria lógica del

proceso

Memoria física

cabecera

código

datos

inicializados

código

datos

inicializados

Otros datos








heap

inicializados
Otros datos

Proceso

código
datos

heap





pila

Espacio de direcciones

simbólicas

pila

Espacio de direcciones numéricas

8

Conversión
 de
 direcciones:
 reubicación
 

n  El
 compilador
 traduce
 direcciones
 de
 memoria
 

simbólicas
 a
 direcciones
 binarias.
 

n  Si
 las
 direcciones
 binarias
 son
 absolutas,
 el
 

programa
 sólo
 se
 puede
 ejecutar
 en
 una
 zona
 fija
 
de
 la
 memoria:
 no
 es
 reubicable.
 

n  Esto
 es
 una
 grave
 limitación.
 

9

Conversión
 de
 direcciones:
 reubicación
 (2)
 

n  Nos
 interesa
 que
 el
 compilador
 no
 genere
 

direcciones
 defini.vas,
 sino
 direcciones
 
provisionales,
 reubicables.
 
Cuando
 se
 sepa
 dónde
 van
 a
 residir
 el
 código
 y
 
los
 datos,
 se
 conver.rán
 a
 direcciones
 absolutas.
 

n  ¿
 En
 qué
 momento
 (etapa)
 se
 realiza
 esta
 

reubicación
 ?
 
q  Carga
 (enlazador
 o
 cargador)
 à
 Reubicación
 está.ca
 
q  Ejecución
 (hardware)
 à
 Reubicación
 dinámica
 

10

Reubicación
 dinámica:
 ejemplo
 mínimo
 
(registro
 base)
 

CPU

dir. lógica
1234

+

80000
registro base

MMU

dir. física
81234

memoria

11

Reubicación
 dinámica:
 
direcciones
 lógicas/direcciones
 Lsicas
 
n  Dirección
 lógica
 o
 virtual:
 la
 generada
 por
 la
 CPU.
 
n  Dirección
 Lsica:
 la
 que
 llega
 al
 chip
 de
 memoria.
 
n  Unidad
 de
 manejo
 de
 memoria
 (MMU):
 el
 

disposi.vo
 que
 traduce
 direcciones
 lógicas
 a
 
9sicas.
 

12

Enlace
 dinámico
 /
 carga
 dinámica
 

n  Postergar
 la
 carga
 en
 memoria
 de
 un
 módulo
 de
 código
 

hasta
 que
 se
 ejecute
 por
 primera
 vez.
 
q  Windows:
 DLL
 (dynamic
 link
 libraries)
 
q  Unix:
 shared
 libraries
 

n  La
 DLL
 se
 carga
 en
 memoria
 cuando
 algún
 proceso
 llama
 

a
 una
 de
 sus
 ru.nas.
 Las
 llamadas
 a
 sus
 funciones
 se
 
efectúan
 a
 través
 de
 una
 tabla
 de
 punteros.
 

n  Código
 compar.do
 à
 si
 varios
 procesos
 emplean
 la
 

biblioteca
 dinámica,
 sólo
 se
 man.ene
 una
 copia
 de
 ella
 
en
 memoria.
 

n  El
 SO
 revisa
 las
 DLL
 que
 están
 en
 memoria
 pero
 que
 

nadie
 referencia.
 

13

Intercambio
 (swapping)
 

n  Si
 un
 proceso
 lleva
 mucho
 .empo
 bloqueado,
 su
 espacio
 de
 

memoria
 está
 desperdiciado.
 
Idea:
 se
 vuelca
 su
 imagen
 de
 la
 memoria
 al
 disco
 (swap
 out).
 Ese
 
espacio
 queda
 disponible
 para
 otros.
 

n 

n  Cuando
 se
 decide
 reanudar
 el
 proceso,
 se
 recupera
 su
 imagen
 

del
 disco
 (swap
 in).
 

sistema operativo

memoria
para usuarios

P1

P2

14

Intercambio
 (swapping)
 (2)
 

n  Historia:
 fue
 una
 forma
 de
 conseguir
 

mul.programación
 cuando
 había
 muy
 poca
 RAM
 
q  Caso
 extremo:
 sólo
 un
 proceso
 en
 memoria;
 en
 cada
 

cambio
 de
 contexto
 se
 realiza
 un
 intercambio
 con
 disco.
 

n  Problema:
 .empo
 inver.do
 en
 el
 intercambio
 
n  Soluciones:
 

q  Mientras
 se
 intercambia
 un
 proceso,
 otros
 procesos
 

pueden
 seguir
 ejecutándose
 en
 otras
 zonas
 de
 memoria.
 

q  Usar
 varias
 áreas
 de
 intercambio
 en
 diferentes
 disposi.vos
 
9sicos
 (se
 pueden
 hacer
 varias
 transferencias
 simultáneas).
 

15

Par,ciones
 múl,ples
 (años
 50/60)
 
n  par,ciones
 de
 tamaño
 fijo
 (MFT)
 –
 preestablecidas
 en
 el
 arranque
 del
 

n  par,ciones
 de
 tamaño
 variable
 (MVT)
 –
 evolución
 del
 MFT
 -­‐
 lista
 

MVT

Memoria física

SO

16

SO
 

dinámica
 de
 huecos
 libres
 
MFT

Memoria física

Memoria física

SO

Partición 1

Partición 2

Partición 3

Partición 4

SO

Partición 1

Partición 2
Partición 3

Partición 4

Memoria
 con,gua:
 protección
 

n  Pareja
 de
 registros
 base
 y
 límite
 

CPU

dir. lógica
1234

5000

80000

límite

base

<



+

no

excepción

MMU

dir. física
81234

memoria

17

Memoria
 con,gua:
 estructuras
 de
 datos
 

n  Tabla
 de
 descripción
 de
 par.ciones
 (TDP)
 –
 indica
 

qué
 proceso
 posee
 cada
 par.ción
 

n  El
 S.O.
 ges.onará
 una
 lista
 de
 huecos
 libres
 en
 
memoria
 y
 seleccionará
 qué
 procesos
 pueden
 
cargarse
 en
 memoria
 para
 ejecutarse
 

n  Primi.vas
 internas
 de
 pedir
 y
 liberar
 memoria
 


 

18

Polí,cas
 de
 asignación
 de
 memoria
 

n  Disponemos
 de
 un
 conjunto
 de
 huecos
 libres
 
n  Cada
 hueco
 tendrá
 un
 tamaño
 variable
 
n  ¿Qué
 hueco
 damos
 ante
 una
 pe.ción?
 

q  Primer
 hueco
 (first-­‐fit)
 –
 recorremos
 la
 lista
 y
 damos
 el
 primer
 

hueco
 mayor
 o
 igual
 que
 lo
 solicitado
 

q  Siguiente
 hueco
 (next-­‐fit)
 –
 igual
 que
 first-­‐fit,
 pero
 se
 busca
 a
 

par.r
 de
 donde
 se
 encontró
 el
 úl.mo
 hueco
 libre
 

q  Mejor
 hueco
 (best-­‐fit)
 –
 buscamos
 el
 hueco
 que
 deje
 menor
 

resto
 libre
 

n 

q  Peor
 hueco
 (worst-­‐fit)
 –
 siempre
 usamos
 el
 hueco
 más
 grande
 
las
 polí.cas
 de
 “primer
 hueco”
 y
 “mejor
 hueco”
 son
 
similares
 en
 rendimiento;
 y
 mejores
 que
 la
 de
 “peor
 
hueco”
 y
 “siguiente
 hueco”
 

19

Fragmentación
 externa
 /
 compactación
 

n  A
 medida
 que
 se
 van
 asignando
 y
 liberando
 huecos,
 

van
 quedando
 zonas
 pequeñas
 que
 no
 sirven
 para
 
nada.
 

n  Posible
 solución
 à
 compactación
 
n  Sólo
 es
 viable
 si
 se
 usa
 reubicación
 dinámica
 
(cambian
 los
 espacios
 9sicos
 de
 los
 procesos)
 

n  La
 compactación
 puede
 consumir
 mucho
 .empo
 
n  Otra
 est
  • Links de descarga
http://lwp-l.com/pdf9007

Comentarios de: Sistemas Operativos - Tema 4. 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