t3 p3 Flashcards
memoria y almacenamiento
memoria real
es el espacio real (físico) que existe en memoria para que se ejecuten los procesos. Más cara y más rápida que la memoria secundaria.
memoria virtual
1) Memoria ficticia “crear RAM usando el Disco Duro”, se usa el almacenamiento secundario para ofrecer a las aplicaciones la ilusión de tener más memoria RAM de la que realmente hay en el sistema (peor rendimiento)
2) Ofrecer la ilusión a cada proceso de tener para ellos toda la memoria (facilita la programación).
requisito para que los procesos se ejecuten
estar en memoria principal, al menos parcialmente (parte puede estar en memoria virtual)
Espacio de direcciones, tipos
- físicas
- lógicas/virtuales
- líneales
Unidad de manejo de memoria
es un componente hardware del procesador encargado de traducir direcciones virtuales o lógicas en direcciones físicas. También gestiona la protección y control de acceso a la memoria (permisos), comprueba la existencia de las direcciones, etc.
direcciones físicas
referencian alguna posición en la memoria física y usadas únicamente por el S.O
direcciones lógicas o virtuales
utilizadas por los procesos. Sufren una serie de transformaciones, realizadas por el administrador de memoria del procesador (la MMU, Memory Management Unit) para convertirse en direcciones físicas.
direcciones lineales
se obtienen a partir de direcciones lógicas tras haber aplicado una transformación dependiente de la arquitectura.
organización de la memoria (tipos)
- asignación contigua
- asignación de partición simple
- asignación de particiones múltiples
- asignación de partición dinámica
aspecto destacable entre sistema operativo y memoria
en la memoria siempre se reserva espacio para el S.O.
asignación contigua (memoria)
todo el espacio lógico de un proceso (Código, Datos, Pila) ha de estar ubicado en direcciones físicas consecutivas (contiguas) en la memoria principal. Cuando un proceso finaliza libera la memoria ocupada.
asignación de particiones múltiples
La memoria se divide en particiones fijas. Cada proceso se aloja en un hueco (partición libre) lo suficientemente grande. Se genera fragmentación interna, es decir, los trozos de las particiones fijas que no se aprovechan. Ejemplo; tengo una partición de 512 KB y la lleno con un proceso que ocupa 128 KB, los 384 KB restantes no pueden ser ocupados por otro proceso.
asignación de partición dinámica
La memoria se asigna dinámicamente a los procesos conforme entran a la memoria. A cada proceso se le asigna exactamente el espacio de memoria que necesita. Se genera fragmentación externa, es decir, se quedan huecos pequeños repartidos que no puedo utilizar porque la asignación debe ser contigua. Ejemplo; puedo tener dos huecos de 50GB y un proceso de 80GB que no puedo meter porque ninguno de los 2 huecos es lo suficientemente grande.
estrategias para asignación de huecos (nombrar)
- primer ajuste
- mejor ajuste
- peor ajuste
mejor ajuste
Asigna el bloque más pequeño que sea lo suficientemente grande para el proceso
primer ajuste
Asigna el primer hueco de memoria que sea lo suficientemente grande para el proceso. Detiene la búsqueda tan pronto encuentra un hueco adecuado. El más rápido.
peor ajuste
Asigna el bloque más grande disponible que sea suficiente para el proceso. El menos eficiente.
¿qué es fragmentación? ¿cómo reducir la frag. externa?
Espacio de memoria no aprovechado. Espacios libres dispersos en pequeñas porciones no contiguas, dificultando la asignación a nuevos procesos.
La frag. externa puede reducirse mediante compactación.