SISTEMAS OPERATIVOS UNIDAD VI Parte A ADMINISTRACION DE MEMORIA
ING. AGUILERA SERGIO OMAR
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA ESTRUCTURA DE MEMORIA CENTRAL Bus de Direcciones CPU v
MMU
n
2n-1
1 (r,w)
palabras
Bus de Datos
Bus de Control
m
m bits MEMORIA (RAM) Tamaño en (bytes) = (2n-1)*(m/8) Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
2
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
UNIDAD DE MEMORIA CENTRAL
La memoria es una matriz de palabras o bytes direccionables (accesibles mediante una dirección única) por la CPU - Las direcciones de un proceso pueden ser representadas de modo diferente en las sucesivas etapas del ciclo de un programa de usuario (compilación, carga y ejecución) - Las direcciones que entiende el controlador de la memoria son direcciones absolutas. La conversión entre las distintas representaciones de las direcciones y las direcciones absolutas se denomina vinculación.
Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
3
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
dir. Simbólicas o físicas
PRG FUENTE
PROCESO EN ETAPAS DE UN PRG DE USR
COMPILADOR ENSAMBLADOR Dir. lógicas (relativas) o físicas (absolutas) OTROS MODULOS OBJETOS CR, CD CA
dir. lógicas o físicas
BIBLIOTECA DE SISTEMA
BIBLIOTECA DE SISTEMA DINAMICA
MODULO OBJETO
EDITOR DE ENLACE
MODULO DE CARGA
CARGADOR
IMAGEN BINARIA EN UMC
direcciones lógicas (si el código es reasignable) o físicas
CD
CA: Carga Absoluta CR: Carga Reubicable CD: Carga Dinámica Ing. Sergio Omar Aguilera
ETAPAS DE DIRECCIONAMIENTO Unidad VI Parte A Administración de Memoria
4
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
OBJETIVOS DEL ADM. DE MEMORIA Es el Administrador más grande de un SOp Monokernel. Se busca optimizar el espacio y la velocidad de acceso. Subdivisión de la memoria para hacer sitio a varios procesos. Hace falta repartir eficientemente la memoria para introducir tantos procesos como sea posible. Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
5
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
ADM. UMC
1. REUBICACION 2. PROTECCION
REQUISITOS
3. COMPARTICION 4. ORGANIZACION LOGICA 5. ORGANIZACION FISICA
Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
6
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
1. REUBICACION El programador no conoce qué otros programas residirán en la memoria en el momento de la ejecución. Mientras que se está ejecutando el programa, puede que se descargue en el disco y que vuelva a la memoria principal, pero en una ubicación distinta a la anterior (reubicación). Se deben traducir las referencias a la memoria encontradas en el código del programa a las direcciones físicas reales.
Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
7
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA Información de control del proceso
Punto de entrada al programa
Bloque de control de proceso
Programa
Instrucción de bifurcación
Direcciones ascendentes Referencia de datos
Datos Cima actual de pila
Pila
1. REUBICACION Williams Stallings SISTEMAS OPERATIVOS. Principios de diseño e interioridades. 4ta ed. Pearson Eduación S.A. Madrid, 2001 ISBN: 84-2053177-4
Figura 7.1. Requisitos de dirección para un proceso. Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
8
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA 1. REUBICACION
Cuando el proceso se carga en la memoria, se determina la ubicación real (absoluta) de la memoria. Un proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones absolutas de la memoria durante su ejecución (a partir de la carga). La compactación también hará que un programa ocupe una partición distinta, lo que significa que las ubicaciones absolutas de la memoria cambien.
Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
9
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA 1. REUBICACION
Dirección lógica: Es una referencia a una posición de memoria independiente de la asignación actual de datos a la memoria. Se debe hacer una traducción a una dirección física. Dirección relativa: La dirección se expresa como una posición relativa a algún punto conocido. Dirección física: La dirección absoluta o la posición real en la memoria principal. Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
10
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA Dirección relativa
BCP
Registro base
Programa
Sumador
Registro límite
Comparador
Dirección absoluta
Datos
Interrupción al sistema operativo
Pila
1. REUBICACION
Imagen de un proceso en la memoria principal Williams Stallings SISTEMAS OPERATIVOS. Principios de diseño e interioridades. 4ta ed. Pearson Eduación S.A. Madrid, 2001 ISBN: 84-2053177-4
Figura 7.8. Soporte de hardware para la reubicación. Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
11
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA 1. REUBICACION
Registro base: Se carga con la dirección en la memoria principal del proceso. Registro límite: Indica la posición final del programa. Estos valores deben asignarse cuando se carga el programa y cuando se carga el proceso.
Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
12
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA 1. REUBICACION
Se añade el valor del registro base a la dirección relativa para obtener una dirección absoluta. La dirección obtenida se compara con el valor del registro límite. Si la dirección no está dentro de los límites, se generará una interrupción en el sistema operativo.
Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
13
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
2. PROTECCION El código de un proceso no puede hacer referencia a posiciones de memoria de otros procesos sin permiso. Es imposible comprobar las direcciones absolutas de los programas, puesto que se desconoce la ubicación de un programa en la memoria principal. Debe comprobarse durante la ejecución: El sistema operativo no puede anticiparse a todas las referencias a la memoria que hará un programa.
Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
14
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
3. COMPARTICION Permite el acceso de varios procesos a la misma zona de la memoria principal. Es mejor permitir a cada proceso (persona) que acceda a la misma copia del programa, en lugar de tener cada uno su propia copia aparte.
Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
15
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
4. ORGANIZACION LOGICA La mayoría de los programas se organizan en módulos. Los módulos pueden escribirse y compilarse independientemente. Pueden otorgarse distintos grados de protección (sólo lectura, sólo ejecución) a los módulos. Compartir módulos.
Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
16
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
5. ORGANIZACION FISICA La memoria disponible para un programa y sus datos puede ser insuficiente: La superposición permite que varios módulos sean asignados a la misma región de memoria. El programador no conoce cuánto espacio habrá disponible.
Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
17
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
ADM. UMC 1. PARTICION ESTATICA
POR PARTICION
2. PARTICION DINAMICA 3. SISTEMA DE COLEGAS
TIPOS
PAGINACION Y SEGMENTACION SIMPLE
5. PAGINACION
MEMORIA VIRTUAL 6. SEGMENTACION Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
18
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
2. A.M. POR PARTICIONES DINAMICAS
Las particiones son variables en número y longitud. Al proceso se le asigna exactamente tanta memoria como necesite. Finalmente, hay varios huecos en la memoria. Este fenómeno se denomina fragmentación externa. Se debe usar la compactación para desplazar los procesos que estén contiguos, de forma que toda la memoria libre quede junta en un bloque. Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
19
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
2. A.M. POR PARTICIONES DINAMICAS
Sistema operativo
8M
Sistema operativo
Proceso 1
Sistema operativo
20M
56M
Sistema operativo
Proceso 1
20M
Proceso 1
20M
Proceso 2
14M
Proceso 2
14M
22M
Proceso 3
18M
36M
4M (a)
(b)
(c)
(d)
Figura 7.4. Efectos de la partición dinámica. Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
20
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
2. A.M. POR PARTICIONES DINAMICAS Sistema operativo
Proceso 1
Sistema Operativo
Sistema operativo
20M
Proceso 1
20M
Sistema operativo
20M
Proceso 2
14M 6M
Proceso 4
14M
Proceso 3
18M
Proceso 4
Proceso 3
18M
Proceso 3
4M (f)
8M
Proceso 4
8M
6M
6M
4M (e)
8M
18M
6M Proceso 3
18M 4M
4M (g)
(h)
Figura 7.4. Efectos de la partición dinámica. Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
21
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
2. A.M. POR PARTICIONES DINAMICAS: ALGORITMOS DE ASIGNACION
Algoritmo del mejor ajuste (best-fit)
TIPOS
Algoritmo del primer ajuste (first-fit)
Algoritmo del siguiente ajuste (next-fit): Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
22
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
2. A.M. POR PARTICIONES DINAMICAS: ALGORITMOS DE ASIGNACION
Algoritmo del mejor ajuste (best-fit): Elige el bloque de tamaño más próximo al solicitado. Proporciona en general los peores resultados. Puesto que este algoritmo busca el hueco más pequeño para el proceso, garantiza que el fragmento que se deja es lo más pequeño posible y, por lo tanto, se debe compactar más frecuentemente. Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
23
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
2. A.M. POR PARTICIONES DINAMICAS: ALGORITMOS DE ASIGNACION
Algoritmo del primer ajuste (first-fit): Es más rápido. Puede tener varios procesos cargados en el extremo inicial de la memoria que es necesario recorrer cuando se intente encontrar un bloque libre.
Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
24
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
2. A.M. POR PARTICIONES DINAMICAS: ALGORITMOS DE ASIGNACION
Algoritmo del siguiente ajuste (next-fit): Lleva frecuentemente a la asignación de un bloque de memoria de la última ubicación, donde se encuentra el bloque más grande. El bloque de memoria más grande se divide en fragmentos pequeños. Hará falta la compactación para obtener un bloque de memoria grande al final del espacio de memoria. Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
25
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA 8M
8M
12M
Primer ajuste
12M
22M
6M
Mejor ajuste Último bloque asignado (14K)
18M
2M
8M
8M
6M
6M Bloque asignado
14M
Bloque libre
14M
PARTICIONES DINAMICAS
Siguiente ajuste 36M (a) Antes
20M (b) Después
Figura 7.5. Ejemplo de una configuración de memoria antes y después de asignar un bloque de 16 Mbytes. Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
26
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
BIBLIOGRAFIA DE REFERENCIA 1.
Manual de Actualización y reparación de PCs, 12va. Ed. Scott Mueller. Que. Pearson, Prentice Hall. Mexico, 2001.
2.
Sistemas de Computadoras, un enfoque estructurado. 7ma ed. Andrew Tannenbaum. Prentice Hall, 1994.
3.
Operating Systems, 2da. Ed. William Stallings. Prentice Hall. 1995.
4.
Sistemas Operativos, 4ta ed. William Stallings. Pearson, Prentice Hall. Madrid, 2001.
5.
Sistemas Operativos. 5ta Ed. William Stalling. Pearson Prentice Hall. Madrid. 2006
6.
Unix, Sistema V Versión 4. Rosen,Rozinsky y Farber.McGraw Hill. NY 2000.
7.
Lunix, Edición especial. Jack Tackett, David Guntery Lance Brown. Ed. Prentice Hall. 1998.
8.
Linux, Guía del Administrador avanzado. Facundo Arena. MP ediciones. BsAs. 2000.
Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
27
UNIVERSIDAD DE BELGRANO – FAC. TECNOLOGIA INFORMATICA
FIN UNIDAD VI (Parte A) ADMINISTRACION DE MEMORIA
Ing. Sergio Omar Aguilera
Unidad VI Parte A Administración de Memoria
28