Conceptos Clave de Sistemas Operativos: Memoria, Paginación y Shell Scripting

Clasificado en Informática

Escrito el en español con un tamaño de 4,56 KB

Algoritmos de Reemplazo de Página

  • Algoritmo Óptimo: Se reemplaza la página que va a tardar más tiempo en usarse. No es implementable en la práctica, ya que requiere conocer el futuro.
  • LRU (Last Recently Used): Sustituye la página menos usada recientemente.
  • FIFO (First-In, First-Out): Se reemplaza la página que lleva más tiempo cargada.
  • FIFO con Segunda Oportunidad: Variante de FIFO que ofrece una segunda oportunidad a las páginas referenciadas.
  • NFU (Not Frequently Used): Se reemplaza la página que se ha usado con menos frecuencia.

Jerarquía de Memoria y Gestión de Memoria

La jerarquía de memoria típica es la siguiente: CPU -> Caché -> RAM -> Disco Duro -> Backups.

El espacio de direcciones accedido por un programa en cualquier momento tiende a ser pequeño, agrupando referencias según espacio y tiempo.

  • Memoria Caché: Formada por un directorio caché, un bloque de memoria caché y una unidad de control.
  • Unidad de Gestión de Memoria (MMU): Es el hardware encargado de la traducción de direcciones virtuales a direcciones físicas en la memoria principal.
  • Segmentación: La memoria principal se divide en bloques de tamaño variable (segmento y desplazamiento).
  • Paginación: La memoria principal se divide en bloques de tamaño fijo (página + desplazamiento).
  • Paginador: Mueve páginas entre el disco y la memoria principal.
  • Paginador por Sustitución Directa: Cada bloque de memoria principal tiene un único lugar asignado en la caché.
  • Paginador por Sustitución Asociativa: Cada bloque de memoria principal se puede mapear con cualquier posición de la memoria caché.
  • Paginación Paginada: Se añade una estructura de índice que apunta a tablas más pequeñas.
  • Segmentación Paginada: La memoria se divide en segmentos, y cada segmento se divide en páginas.

Comandos y Operadores en Shell Scripting

En el shell scripting, se utilizan comillas simples para tratar el texto como literal. Los símbolos de dólar ($) que preceden a las variables deben ser escapados si van entre comillas dobles, por ejemplo, \$variable, o se pueden usar comillas simples.

  • Redirección de Errores: 2>/dev/null
  • Operadores Lógicos: || (OR), && (AND)
  • Redirección de Salida: > (sobrescribir), >> (añadir)
  • Operaciones Aritméticas: Se guardan entre doble paréntesis, por ejemplo, $((operación))
  • Comprobaciones:
    • -s: Comprueba si un archivo no está vacío.
    • -f: Comprueba si es un archivo regular.
    • -d: Comprueba si es un directorio.
    • -rwx: Comprueba si es legible, editable y ejecutable, respectivamente.
    • -e: Comprueba si un archivo o directorio existe.
  • Longitud de una Cadena: longitud=${#cadena:inicio:fin}

Cálculo de Direcciones Virtuales y Reales

Si el espacio de direccionamiento físico es de 64 KB (216 bytes) y el virtual es de 16 MB (224 bytes), podemos determinar lo siguiente:

  • Cada dígito hexadecimal representa 4 bits, no 8.
  • Formato de una dirección virtual:
    • Campo de página: bits necesarios para direccionar todas las páginas virtuales.
    • Desplazamiento: bits necesarios para direccionar cualquier byte dentro de una página.
  • Formato de una dirección real:
    • Campo de marco: bits necesarios para direccionar todos los marcos de página en la memoria principal.
    • Desplazamiento: igual que en la dirección virtual.
  • Número máximo de páginas: 2(campo de página)
  • Tamaño de página y tamaño de marco: 2(desplazamiento)
  • Capacidad de la memoria principal: 2(tamaño de la dirección de memoria)
  • Páginas por tarea: Tamaño de la tarea / Tamaño de página

Entradas relacionadas: