1/78
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
MEMORIA PRINCIPAL
Recurso a compartir entre el SO y los procesos
MULTIPROGRAMACION
Memoria principal dividida en dos partes:
*Una parte para el SSOO
*El resto repartida entre los procesos en ejecucion:
Espacio independiente a cada proceso
Evitar interferencias
SISTEMA DE GESTION O ADMINISTRACION DE MEMORIA
La parte del SO que lleva a cabo, dinámicamente, las tareas de Reparto y Control de la memoria
PRINCIPIOS DE UN SISTEMA DE MULTIPROGRAMACION
Reubicación, Protección, Compartición, Mantener la organización lógica de los programas, Conocer su organización física, Maximizar el rendimiento
JERARQUIA DE TRADUCCIONES
Transformacion de un programa que se encuentra en un fichero en disco, en un programa ejecutable en un computador

FORMTO TIPICO DE UN EJECUTABLE

JERARQUIA DE MEMORIA

CACHE
Contiene copia de instruccion/dato que son accedidos + rapido que el original.
Funcionan porque explotan las localidad de las referencias del codigo

TIPOS DE LOCALIDAD
Espacial y Temporal
LOCALIDAD ESPACIAL
Si un item es referenciado, las direcciones proximas a el tienden tambien a ser referenciadas
LOCALIDAD TEMPORAL
Si un item referenciado, tiende de nuevo a ser referenciado en breve
TIEMPO EFECTIVO DE ACCESO (TAE)
Tiempo medido de acceso a una celda de memoria

REQUISITOS DE LA GESTION DE MEMORIA (I)
Asigna memoria garantizando:
Protección
Compartición
Reubicación
LA GARANTIA DE PROTECCION CONSISTE EN:
Un proceso no accede a memoria de otro
Diferentes permisos de acceso
LA GARANTIA DE COMPARTICION CONSISTE EN:
De datos/codigo entre procesos
Permite el ahorro de memoria
LA GARANTIA DE REUBICACION CONSISTE EN:
En sist. multiprogramados, un programa debe poder cargarse en diferentes zonas de memoria
REQUISITOS DE LA GESTION DE MEMORIA (II)
El SO debe esconder:
La organización física (jerarquía de niveles, estructura no lineal) de la memoria física
Para que el usuario tenga una visión lógica. Permite la estructuración de un programa en módulos
NIVELES DE GESTION DE MEMORIA
Gestor de memoria: Asigna porciones de memoria al proceso
Gestor de memoria del proceso: Gestiona estas porciones (Ej. Malloc y free)
PROCESAMIENTO DE UN PROGRAMA
Etapas por las que pasa un programa antes de cargarse en memoria

COMPILADORES Y ENSAMBLADORES
Sus salidas contienen direcciones reubicables y referencias externas
ENLAZADORES
Resuelven las referencias externas de las subrutinas compiladas o ensambladas por separado
CARGADORES
Ligan direcciones reubicables a direcciones absolutas
LIGADURA DE DIRECCIONES
Correspondencia entre direcciones, de intrucciones y datos del programa con las direcciones de memoria

ENLAZADO Y CARGA

DIRECCION LOGICA (VIRTUAL)
Generada por la CPU

DIRECCION FISICA
Direccion que se pasa al controlador de memoria
TRADUCCION DE DIRECCIONES

MMU (MEMORY MANAGMENT UNIT)
Dispositivo de hardware que traduce direcciones virtuales en físicas.
Implementa la protección.
Determina la forma en la que el SO gestiona la MMU

ESQUEMAS DE ASIGNACION CONTIGUA
Gestion de memoria en sist. multiprogramados
Intercambio
Fragmentacion
Compactacion
GESTION DE MEMORIA EN SISTEMAS MULTIPROGRAMADOS
Asignacion estatica
Asignacion dinamica
ESQUEMAS DE ASIGNACION CONTIGUA
La memoria principal asignada a un proceso es un unico bloque de memoria contigua
ESQUEMA DE ASIGNACION NO CONTIGUA
Se permite que el programa este dividido en bloques, o segmentos que se pueden colocar en zonas no necesariamente contiguas de memoria principal
PARTICIONES
*El SO ocupa permanentemente una región de memoria
*El resto se particiona entre los procesos de forma: Estática y dinámica
El SO mantiene info. sobre las particiones asignadas y libres (huecos)
PARTICION ESTATICA
Numero fijo de particiones, igual o diferente tamaño
PARTICION DINAMICA
Particiones de diferente tamaño y numero
ASIGNACION EN SIST. DE PARTICIONES VARIABLES
Primer encaje y Mejor encaje
PRIMER ENCAJE
Asigna el primer hueco suficientemente grande
MEJOR ENCAJE
Asigna el espacio más pequeño lo suficientemente grande, hay menos hueco sobrante
FRAGMENTACION EXTERNA
Existe espacio para satisfacer la peticion pero no es contiguo

FRAGMENTACION INTERNA
La memoria asignada es mayor que la usada
La diferencia entre ambas es memoria interna a una particion que no se usa

COMPACTACION
Tecnica para reducir la fragmentacion externa → arrastra los contenidos de memoria a un lugar para reunir la memoria libre en un bloque
Posible en sist. con reubicacion dinamica

INTERCAMBIO (SWAPPING)
Intercambiar procesos entre memoria principal y secundaria

CARACTERISTICAS DEL INTERCAMBIO
-Se aconseja en sist. de tiempo compartido
-Un proceso se saca de memoria si: Cierto tiempo va a estar bloqueado, o se necesita compartir CPU y memoria
-Su factor principal en el tiempo de intercambio es el tiempo de transferencia, proporcional a la memoria intercambiada
UNIX, windows, etc
GESTION DE MEMORIA
Los SO multitarea asignan uina zona de memoria a cada proceso de usuario: Garantiza que el usuario no lea/escriba de(en) la memoria de otro proceso
PROTECCION Y REUBICACION

REGISTROS BASE Y LIMITE

PROTECCION HARDWARE DEL DIRECCIONAMIENTO

ORGANIZACIONES NO CONTIGUAS
Paginación
Segmentación
Intel x86
SEGMENTACION
Trozos de diferente tamaño
PAGINACION
Todos los bloques tienen el mismo tamaño
PAGINACION: IDEAS BASICAS
El MMU divide el programa en bloques de igual tamaño
-Memoria física: Divide en bloques "Marcos de página”
-Espacio lógico: Divide en bloques “Paginas”
Mantiene rastro de los marcos libres

SEGMENTACION: IDEAS BASICAS
Un programa es una coleccion de unidades logicas(Segmentos)

ESQUEMA DE TRADUCCION

ESQUEMA DE TRADUCCION: EJEMPLO

IMPLEMENTACION DE LA TP

ACCESO A MEMORIA

TRADUCCION DE SEGMENTACION

EJEMPLO INTEL 80×86

MEMORIA VIRTUAL
Permite que el sistema operativo disponga de mayor cantidad de memoria disponible fisicamente
Los programas pueden ser mas grandes que la memoria fisica
Se utiliza el disco como almacen secundario de procesos
Idea: Mantener en memoria principal solo los fragmentos de cada proceso que se este utilizando

TECNICAS DE GESTION DE MEMORIA VIRTUAL
Paginación y Segmentación
PAGINACION POR DEMANDA
Busca:
- tiempo de respuesta y + cantidad de programas en memoria
Combina paginación con intercambio (swap)

PAGINACION POR DEMANDA
Si se adivina correctamente y se trae a memoria solo las paginas necesarias, el proceso se ejecuta igual a que si hubieramos traido todas

MEMORIA VIRTUAL: BENEFICIOS
Se eliminan los overlays, caben mas procesos simultaneamente, no hay preocupacion por la memoria
MEMORIA VIRTUAL: RIESGOS
Si se escogen mal los fragmentos deberá recurrirse frecuentemente al disco
Cumplen una fuerte localidad: Los siguientes accesos suelen estar cerca de los anteriores
MEMORIA VIRTUAL: EL SO DECIDE…
Que partes cargar
Cuando cargarlas
Donde ubicarlas
Se cargan parcialmente en memoria real, el SO lleva toda la gestión

PAGINAS VALIDAS Y O VALIDAS
Validas: En memoria principal
No validas: Solo en disco
Estas paginas se marcan en la tabla de paginas por medio de un bit de validez

FALLO DE PAGINA
Si se intenta acceder a una pagina no valida el hardware genera una excepcion llamada fallo e pagina (page fault)
Provoca que el SO recupere del disco (swap area) la pagina requerida. Se reintenta la instruccion que ocasiono el fallo

PAGINACION POR DEMANDA: VENTAJAS
Los programadores disponen de mas espacio de memoria que la disponibilidad de la real
Mejora el rendimiento general del sistema
Importante: Mantener baja la frecuencia de fallos de pagina → aumentara y frenara la ejecucion de procesos
ALGORITMOS DE GESTION DE MEMORIA VIRTUAL

ALGORITMO DE REEMPLAZO
Si no hay marco libre→usar algoritmo de reemplazo de pagina parar escoger un marco victima
Escribir la pagina victima en el disco y actualizar tablas
Leer la pagina del disco y colocarla en el marco recien liberado y actualizar tablas
Reiniciar el proceso de usuario
BIT DE MODIFICACION

ALGORITMOS DE REEMPLAZO
FIFO
OPTIMO
LRU (LAST RECENTLY USED)

FIFO
Problema: Puede prescindir de paginas a las que se accede con frecuencia
Padece la anomalia de Belady (aumenta el numero de fallos de
paginas cuando se asignan mas paginas reales al proceso)
Propiedad de pila

EFECTO BELADY

REEMPLAZO OPTIMO (MINIMO)
Escoger como victima la pagina que mas tarde en volver a ser accedida
Presenta la frecuencia de fallos de pagina mas baja
Requiere presciencia (No implementable)
Util como referencia de comparacion

LRU
Aproximacion implementable del optimo
Se asocia a cada pagina en el instante en que se uso por ultima vez
Implementacion: Contadores y pila
Requiere hardware extra (es costoso)
Los sistemas reales implementan aproximaciones a la LRU

ALGORITMOS DE CONTEO
