Memoria Flashcards
Sistema Von Neumann
Computadora de programa almacenado
Mismo almacenamiento para programa siendo ejecutado que para sus datos
Implicaciones Von Neumann
No considera almacenamiento persistente
Sólo hay almacenamiento primario
El secundario se hace con controladores alternos
Registros
Memoria rápida dentro del procesador
Referencia directa, sin dirección
Guardan estado y datos del proceso
Registros de propósito general
Procesadores RISC
Instrucciones sencillas y regulares
>=32 registros largos (32. 64 bits) de propósito general y algunos específicos
Cuello de botella de Von Neumann
La memoria rápida es cara, pero sigue sin llegar a la velocidad de la del procesador
Memoria Caché
Acelera operaciones aprovechando localidad de referencia
Transparente a la programación
Niveles l1, l2, l3
Jerarquía de almacenamiento (niveles)
1: Registros
2: Caché
3: Memoria principal
4: Disco
Almacenamiento primario
El procesador la puede manejar
Esto es a lo que Neumann llama “computadora”
Almacenamiento secundario
Discos, cintas, SSD…
Todo se maneja por medio de controladores
Memoria física
Memoria RAM, es volátil, por lo que necesita energía para almacenar datos. Es direccionable linealmente.
Forma en que la CPU ejecuta programas
Los programas se almacenan en la memoria física, esto hace que el procesador acceda de forma rápida
Memoria virtual
técnica de administración de memoria realizada por el SO. Permite usar más que la memoria física, haciendo que parte de la memoria secundaria sea utilizada como primaria
Esquemas de administración
Gestión de memoria en que mueven de memoria principal al disco y de regreso y los que no
Monoprogramación sin intercambio ni paginación
Ejecuta un programa a la vez, la memoria queda en el programa y SO
Sistema operativo en RAM
Mainframes y miniordenadores
Sistema operativo en ROM
Palmtop y sistemas Empotrados
BIOS en ROM, SO en RAM
Primeros ordenadores personales
BIOS
Basic Input Output System
Primeros sistemas que comparten memoria
Poca memoria, sin MMU, sin interacción
Particiones fijas
Divides la memoria en bloques de tamaños iguales que no cambian nunca. Sistema operativo y 7 cosas más
Ventajas de las fijas
Es simple, no tiene que resolver direcciones
No necesita registro límite
Desventajas de las fijas
Máximo multiprocesamiento en 7
Si no hay espacio, hay que esperar
Se desperdicia espacio
Particiones flexibles
Cada uno revisa cuánta memoria al intentar ejecutarse
El SO tiene acceso a la memoria
Cada uno de los espacios tiene registro base y lpimite
Ventajas del flexible
Simple, sobrecarga mínima, con un MMU muy básico
Cada proceso puede direccionar toda la memoria
Desventajas del flexible
Se crean agujeros en la asignación de memoria
Por cada N bloques, se pierden 0.5 N por fragmentación
Fragmentación interna
Desperdicio de ememoria interna al asignar procesos
Fragmentación externa
Espacio de memoria se desperdicia por fragmentos (porque no hay espacio contiguos)
Estrategias para dar espacio en memoria
Primer ajuste
Mejor ajuste
Peor ajuste
Primer ajuste
Nuevo proceso al primer espacio suficiente disponible
Mejor ajuste
Asigna el proceso al espacio más chico al que quepa
Peor ajuste
Nuevo proceso al espacio más grande disponible
Compactación
Suspende procesos, lo mueve a otra dirección de memoria, ajusta el base y continúa con el siguiente, buscando lograr un solo bloque de espacio disponible
Costo de la compactación
Por hacer transferencia de memoria y suspende procesos
Compactar basado en umbrales
Verifica periódicamente el estado del proceso
Compactar basado en eventos
Cada vez que se detiene algo porque hay mucha fragmentación
Intercambio (swap)
Si detiene un proceso, lo pasa a almacenamiento secundario. Las E/S pueden exigir que sea con buffers en SO
Costos del swap
Son demasiado lentos
Toma 2 segundos de acceso exclusivo, regresarlo toma 2 más
Compilador
Traduce lo que ve/entiende el programador a algo que la computadora entienda
Direccionamiento
Se hace indicando base y desplazamiento de memoria
Facilidades de segmentar
Imcrementa la modularidad de los programas, facilita su carga
La resolución de direcciones la puede hacer el MMUSe puede diferenciar secciones por tipo de memoria
Hace que el swap sea más fácil
Swap Pacrial
Intercambia a disco algunos segmentos de un proceso, ya que no todos son usados al mismo tiempo
Tipos de acceso
R: lectura
W: escritura
X: ejecución
Tipos de excepción
Violación de seguridad
Desplazamiento fuera de rango
Segmento faltante
Segmento inválido
Pentium Pro
puedes ver 36 bits de memoria en una arquitectura de 32
PowerPC
16 segmentos de 24 bits permiten direccionar 52 bits
Segmentación hoy
Suceptible a la fragmentación
Esquema de memoria plana mediante paginación
Intercambio con memoria virtual
Es más rápido al tomar bloques más pequeños que un segmento
Paginador
Hace lo que el swapper, pero de una parte del segmento (página) y es parte deñ programa
Código durmiente
Segmentos del código que no están activos en algún momento de la ejecución del proceso.
El paginador puede decidir no cargar estas partes del código hasta que sean necesarias
Sobre demanda
Hace que las partes de código se carguen fuera del procesador, pero hasta que sean utilizados los pasa a memoria principal
Paginador flojo
Carga las páginas conforme sean necesarias
Si no son necesarias, nunca son cargadas en memoria
Flojo/lazy
Hace el menor trabajo posible al principio y procrastina todo lo posible
Ansioso/aeger
Busca realizar todo el trabajo que pueda
Hacer flojo al paginador
Bit de validez que indica si la página está en memoria o no, si no, hay fallo en página
Pasos para atender fallo de página
Verificar página en PCB, si no es válida, terminar proceso
Buscar marco disponible
Solicitar al disco la lectura de página en marco especificado
Tras leer, actualiza PCB y TLB
Terminar suspensión de proceso
Paginación puramente sobre demanda
Inicia proceso sin página de memoria
Siguiente instrucción apunta a memoria sin cargar
Hace fallo de página, por lo que la carga
Mientras se va ejecutando es que va ocupando el espacio que empleará
Efecto de paginación sobre demanda
Inicia su ejecución más rápido
Como no está el proceso completo en memoria física, caben más
El tiempo efectivo es 40 veces más lento
Acomodo de páginas en disco
el tiempo de fallo aumenta
Navegas estructuras de directorio
La memoria va quedadndo esparcida
Para evitarlo, hay pertición de intercambio (linux)
Reemplazo de páginas
Al sobre-comprometer, se puede llenar de más páginas de las que le caben
No se puede cancelar cuando ya se le dijo que sí se arma
Importancia del reemplazo de páginas
Posibilita la verdadera separación entre memoria lógica y física
Permite liberar alguno de los marcos en utilización
Para liberar un marco ocupado
Se designa una página víctima
El paginador la pasa a almacenamiento y libera la página
Duplica el tf
Control del tf
Con ayuda del MMU
Al ponerle un bit de asignación de víctima, se reduce el tf
FIFO de reemplazo de páginas
vacía la página que lleva más tiempo en memoria para la nueva.
Lista ligada circular
Anomalía de Belady
crees que si aumentas el número de marcos, siempre habrá menos fallos, pero nel pastel
Algoritmo OPT/MIN para fallos
Se quita la que no utilizarás en el timepo que sigue
Son los papás
Algoritmo LRU
Se acerca a OPT por historia reciente, quita la que lleva más tiempo sin utilizarse (se actualiza al repetirse)
Algoritmo MFU
Si se ha usado muchas veces, seguro se usará más veces
Algoritmo LFU
Si se ha usado poco, seguro es porque se usará más en el futuro
Bit de referencia
Empiezan con un bit apagado, si se repite, lo enciende. De forma periódica, los apaga
Se descartan por FIFO los que tengan bit apagado
Bits adicionales (columna)
en lugar de reiniciar los bits, se recorren a la derecha, descartando al bit más bajo
acceso a un marco ilumina el más alto
Segunda oportunidad o reloj
Un bit de referencia, pero se enciende y apaga conforme se referencía, se usa FIFO en los apagados
Algoritmmo ansioso, siempre quieren tener espacio
Algoritmos con manejo de buffers
No esperan a que algo nuevo quiera entrar, sino que lo libera en el momento en que deja de usarlo para intentar siempre tener espacio libre
Un página de disco la puede ubicar sin hacer transferencias