Fundamentos de Gestión de Memoria y Scripting en Bash para Sistemas Operativos

Clasificado en Informática

Escrito el en con un tamaño de 3,98 KB

Parte I: Gestión de Memoria (Memory Management)

1. First Fit

Idea clave: Selecciona el primer bloque que sea suficientemente grande para el proceso.

Ejemplo:

  • Bloques: 100, 500, 200, 300, 600
  • Procesos: 212, 417, 112, 426

Procedimiento:

  • 212 → primer bloque que quepa → 500
  • 417 → siguiente bloque que quepa → 600
  • 112 → primer bloque que quepa → 200
  • 426 → ❌ No cabe en ninguno

Importante: Se resta el tamaño usado al bloque, lo que provoca que el bloque quede fragmentado.

2. Best Fit

Idea: Escoge el bloque más pequeño posible que aún quepa. Esto reduce el desperdicio inmediato, pero genera muchos bloques pequeños (fragmentación externa).

3. Worst Fit

Idea: Utiliza el bloque más grande disponible.

  • Ventaja: Evita la creación de bloques pequeños inútiles.
  • Desventaja: Puede desperdiciar espacio de memoria grande.

4. Next Fit

Idea: Similar al First Fit, pero continúa la búsqueda desde la última posición ocupada (utiliza un puntero). No reinicia desde el inicio.

5. Comparativa de Algoritmos

  • Más fragmentación: Best Fit.
  • Bloque más grande restante: Worst Fit.

Explicación: Best Fit fragmenta la memoria en pedazos pequeños, mientras que Worst Fit preserva bloques grandes durante más tiempo.

Memoria Virtual

6. Traducción de Direcciones

Datos: Page size = 1 KB = 1024 bytes | Address = 4097

Fórmulas:

  • Page number = address / page size
  • Offset = address % page size

Resultado: Page = 4, Offset = 1.

7. Tabla de Páginas (Page Table)

Para una dirección virtual de 2500:

  • Page = 2500 / 1024 = 2
  • Offset = 2500 % 1024 = 452
  • Si Page 2 → Frame 8, entonces la dirección física es: (8 * 1024) + 452 = 8644.

8. TLB (Translation Lookaside Buffer)

  • Definición: Caché rápida para traducciones de memoria.
  • Hit: La dirección está en la TLB (acceso rápido).
  • Miss: La dirección no está (requiere acceso a la tabla de páginas).

9. EMAT (Effective Memory Access Time)

Fórmula: EMAT = (hit ratio)(TLB + memory) + (miss ratio)(TLB + 2*memory)

10. Tablas de Páginas Multinivel

Se utilizan para optimizar el espacio, ya que una tabla única sería demasiado grande. El trade-off es un mayor número de accesos a memoria.

Reemplazo de Páginas

11. Definiciones Rápidas

  • FIFO: Reemplaza la página más antigua.
  • LRU: Reemplaza la menos usada recientemente.
  • Clock: Versión eficiente de Second Chance.
  • NFU: Cuenta los usos de cada página.
  • Aging: Versión mejorada de NFU con factor de tiempo.
  • Working Set: Mantiene las páginas activas.
  • WSClock: Combinación de Clock y Working Set.

12. FIFO (Ejemplo)

Referencia: 1, 2, 3, 1, 4, 5 | Frames = 3. Se recomienda realizar una tabla paso a paso para identificar los page faults.

Bash Scripting

13. Par o Impar

if (( $1 % 2 == 0 )); then echo "Even"; else echo "Odd"; fi

14. Suma de 1 a N

sum=0; for ((i=1; i<= $1; i++)); do sum=$((sum + i)); done; echo $sum

15. Verificación de Archivo

if [ -f "$1" ]; then wc -l "$1"; else echo "File not found"; fi

16. Contar archivos .txt

count=$(ls *.txt 2>/dev/null | wc -l); echo $count

Entradas relacionadas: