Sistemas Operativos

Anuncio
Administración de memoria
Sistemas Operativos
Memoria en un sistema multiprogramado
Memoria
Mario Medina (mariomedina@udec.cl)
Memoria para el sistema operativo
Memoria para los procesos
Administración de memoria
Reubicación
An interface is what gets in between you and what you want to do.
Protección
Una interfaz es lo que está entre tú y lo que quieres hacer.
Acesso compartido
Organización lógica
Carl Havermiste
Sistemas Operativos, 2008-1
Organización fı́sica
Sistemas Operativos, 2008-1
1
Reubicación
Process control
information
Entry point
to program
Process Control Block
Memoria compartida entre varios procesos
Program
Branch
instruction
Increasing
address
values
Reference
to data
Data
Current top
of stack
Stack
Figure 7.1 Addressing Requirements for a Process
Procesos son cargados y descargados de memoria
• Programador no sabe por adelantado dónde residirán sus
programas
• Programas deben ser ejecutables en cualquier posición de
memoria
◦ Direccionamiento relativo
Carga de programas (Loading )
Absoluta Programa se carga siempre en misma posición de memoria
Poco flexible
Inadecuado para sistemas multiprogramados
Reubicable Programa puede ser reubicado en memoria
Compilador genera direcciones relativas
Programa cargador suma dirección base X a toda referencia a memoria
Sistemas Operativos, 2008-1
2
Carga dinámica de programas
Process Control Block
Program
Carga reubicable ineficiente para sistemas multiprogramados
• Necesario recalcular direcciones cada vez que se recarga un
proceso
Program
Data
Carga dinámica: direcciones son calculadas al ejecutar el programa
• Requiere soporte en hardware via registro del procesador
◦ Registros base y lı́mite
• Dirección relativa
◦ Se suma a registro base
◦ Se compara con registro lı́mite para obtener dirección
absoluta
Data
Object Code
Mayor flexibilidad
Stack
Process image in
main memory
Figure 7.13 The Loading Function
Sistemas Operativos, 2008-1
3
Montaje de módulos (Linking)
Relative address
Process Control Block
Base Register
Recibe módulos objetos
Adder
Program
Absolute
address
Bounds Register
Comparator
Data
Interrupt to
operating system
Stack
Process image in
main memory
Genera un conjunto integrado de módulos de programa y de
datos
Programa Cargador toma este módulo de carga y lo carga en
memoria
Cada módulo puede contener referencias a direcciones en
• Otros módulos del programa
• Otros módulos externos
Montaje reubicable
• Módulo objeto contiene referencias al comienzo del módulo
• Programa de montaje reemplaza referencias por referencias
al comienzo del módulo de carga
• Módulo de carga puede ser cargado dinámicamente
Figure 7.8 Hardware Support for Relocation
Sistemas Operativos, 2008-1
4
Symbolic
Addresses
Library
Absolute
Addresses
1024
PROGRAM
x
JUMP X
Relative
Addresses
0
PROGRAM
JUMP 1424
X
PROGRAM
JUMP 400
1424
400
Module 1
LOAD Y
Module 2
Linker
Load
Module
LOAD 2224
LOAD 1200
Loader
DATA
•
DATA
Y
DATA
2224
1200
•
•
(a) Object module
Module n
(b) Absolute load module
(c) Relative load module
Main Memory
Figure 7.15 Absolute and Relocatable Load Modules
Figure 7.14 A Loading Scenario
Montaje dinámico
Relative
Addresses
0
Module A
Retrasar montaje de módulos externos hasta haber creado el
módulo de carga
Montaje dinámico al tiempo de carga
• Módulo de carga se lee a memoria principal
• Referencia a módulo externo
◦ Cargador trae módulo externo a memoria
◦ Cargador modifica direcciones relativas para apuntar a
módulo externo
Compartir código
• Módulos externos compartidos entre aplicaciones
• Una sola copia en memoria
Montaje dinámico al tiempo de ejecución
• Parte del montaje se pospone hasta el momento de ejecución
• Referencias externas permanecen en el módulo de carga
• Sistema Operativo ubica módulos ausentes y los carga en
memoria
External
Reference to
Module B
CALL B;
JSR "L"
Length L
Return
Module A
L–1
L
Return
Module B
Module B
JSR "L + M"
CALL C;
Length M
L+M–1
Return
L+M
Return
Module C
Module C
Length N
Return
L+M+N–1
Return
(b) Load module
(a) Object modules
Figure 7.16 The Linking Function
Sistemas Operativos, 2008-1
5
Protección y acceso compartido
Organización de memoria
Procesos deben ser protegidos contra interferencias de otros
procesos
Organización lógica
Programador ve memoria como un vector de palabras o bytes.
Proceso no debe hacer referencia a posiciones de memoria de
otro proceso sin autorización
No se conoce a priori la ubicación de un programa en memoria
principal
Cálculo dinámico de direcciones al tiempo de ejecución via
punteros
• Referencias a memoria deben ser comprobadas al tiempo
de ejecución
• Por hardware (software es muy lento!)
Soporte hardware a la reubicación de procesos ayuda a asegurar
protección
Acceso a áreas compartidas
Tanto código como datos pueden ser compartidos
Soporte hardware a la reubicación de procesos ayuda a asegurar
acceso compartido
Sistemas Operativos, 2008-1
6
Programas están organizados en módulos
• Módulos de código, datos, pila
• Módulos de sólo lectura, sólo ejecución, lectura/escritura
Módulos son escritos y compilados independientemente
Módulos pueden tener distintos grados de protección
Módulos pueden ser compartidos entre procesos
Organización fı́sica
Memoria fı́sica es jerárquica
• Memoria principal (RAM)
◦ Rápida, volátil y cara
• Memoria secundaria (magnética)
◦ Lenta, persistente y barata
Sistema Operativo debe administrar tráfico entre niveles
• Programador no tiene control sobre dónde reside un programa
Sistemas Operativos, 2008-1
7
Descargar