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