Gestión de Memoria en Sistemas Operativos: MMU y Paginación

Apuntes completos de Sistemas Operativos (FIB): direcciones lógicas y físicas, MMU, gestión del heap, paginación, tablas multinivel, memoria virtual y COW.

Sistemas Operativos · Universidad Politécnica de Cataluña · Grado en Ingeniería Informática · Facultad de Informática de Barcelona (Fib) · 2.º curso

22 páginas · 4 temas · 8 flashcards · 16 preguntas tipo test

Índice

  1. Fundamentos y traducción de direcciones · p. 3-6
  2. Estructura del proceso, carga y memoria dinámica · p. 6-10
  3. Estrategias de asignación: paginación y segmentación · p. 10-14
  4. Memoria virtual y técnicas de optimización · p. 14-21

Fundamentos y traducción de direcciones

Flashcards

¿Qué diferencia existe entre el espacio de direcciones lógicas y el espacio físico de un proceso?
El espacio lógico reúne las referencias válidas que el proceso puede utilizar, mientras que el espacio físico contiene las ubicaciones reales de hardware que el núcleo le ha concedido.
¿Por qué es ventajoso realizar la asignación de direcciones en tiempo de ejecución?
Permite reubicar partes del proceso en memoria física sin tener que alterar las direcciones lógicas que maneja el binario.

Preguntas tipo test

  1. ¿Qué componente hardware traduce direcciones lógicas a físicas en tiempo real?
    • a) La unidad aritmético lógica
    • b) El bus de control
    • c) La unidad de gestión de memoria
    • d) El registro contador de programa

    Respuesta: c) La unidad de gestión de memoria. La MMU es el componente hardware encargado de recibir direcciones lógicas y convertirlas en físicas.

  2. ¿Qué ocurre si la CPU emite una dirección no mapeada en la MMU?
    • a) Se detiene la máquina por completo
    • b) Se genera una excepción hacia el sistema
    • c) La memoria física asigna ceros automáticamente
    • d) Se sobrescribe el contador de programa

    Respuesta: b) Se genera una excepción hacia el sistema. La MMU detecta la falta de correspondencia válida y genera una excepción capturada por el sistema operativo.

  3. ¿Quién se encarga de configurar las tablas y registros de la MMU?
    • a) El núcleo del sistema operativo
    • b) El controlador de disco
    • c) La propia memoria física
    • d) El compilador del programa

    Respuesta: a) El núcleo del sistema operativo. El núcleo es el encargado de programar la MMU con los datos específicos de cada proceso.

Estructura del proceso, carga y memoria dinámica

Flashcards

¿Qué diferencia existe entre las secciones .data y .bss de un ejecutable?
La sección .data almacena variables globales inicializadas con un valor concreto, mientras que .bss reserva espacio para variables globales sin valor inicial.
¿Qué parámetro recibe free y qué información deduce de él?
Recibe un puntero a la dirección de memoria asignada; deduce el tamaño del bloque a partir de la información registrada previamente por malloc.

Preguntas tipo test

  1. ¿Qué sección del binario ELF contiene las instrucciones de inicialización del proceso?
    • a) .text
    • b) .comment
    • c) .bss
    • d) .init

    Respuesta: d) .init. La sección .init almacena el código de inicialización que contiene la dirección de la primera instrucción.

  2. ¿En qué sentido crecen habitualmente el heap y el stack en el espacio lógico?
    • a) Ambos hacia direcciones más altas
    • b) Heap hacia abajo y stack hacia arriba
    • c) Ambos hacia direcciones más bajas
    • d) Heap hacia arriba y stack hacia abajo

    Respuesta: d) Heap hacia arriba y stack hacia abajo. El heap asciende hacia direcciones superiores mientras el stack desciende desde el límite superior.

  3. ¿Cuál es la función del parámetro numérico en la llamada sbrk?
    • a) Variar el límite superior del heap
    • b) Eliminar un proceso secundario
    • c) Fijar permisos de lectura y escritura
    • d) Crear una nueva tabla de segmentos

    Respuesta: a) Variar el límite superior del heap. El argumento de sbrk especifica la cantidad en bytes que se desea aumentar o reducir el montículo.

Estrategias de asignación: paginación y segmentación

Flashcards

¿En qué se diferencian una página lógica y un marco físico?
La página es la división de tamaño fijo dentro del espacio lógico del proceso, mientras que el marco es la división física idéntica en la memoria RAM.
¿Por qué se recurre a la paginación multinivel en arquitecturas con buses de 64 bits?
Porque una tabla de páginas continua requeriría varios petabytes de memoria para mapear el inmenso rango de direcciones.

Preguntas tipo test

  1. ¿Qué tipo de fragmentación puede aparecer en un esquema de paginación pura?
    • a) Fragmentación interna
    • b) Fragmentación externa
    • c) Fragmentación asociativa
    • d) No se produce ninguna fragmentación

    Respuesta: a) Fragmentación interna. En la paginación pura solo puede sobrar espacio en la última página del proceso, produciendo fragmentación interna.

  2. ¿Qué información almacena cada entrada en una tabla de segmentos básica?
    • a) Dirección de disco y tiempo de uso
    • b) Número de marco y bit de validez
    • c) Dirección base y tamaño límite
    • d) Página lógica y desplazamiento

    Respuesta: c) Dirección base y tamaño límite. La tabla de segmentos indica la dirección base física y la longitud máxima permitida para ese bloque.

  3. ¿Qué sucede en la MMU cuando se produce un acierto de TLB?
    • a) Se invalida el registro base del proceso
    • b) Se detiene la CPU y se consulta el disco
    • c) Se dispara una interrupción por página ausente
    • d) Se traduce la dirección sin consultar la tabla

    Respuesta: d) Se traduce la dirección sin consultar la tabla. La TLB contiene la correspondencia en su memoria rápida y suministra el marco inmediatamente sin acceder a la RAM.

Memoria virtual y técnicas de optimización

Flashcards

¿Qué ocurre durante la atención de un fallo de página si no existen marcos libres en la RAM?
Se ejecuta el algoritmo de reemplazo (como aproximaciones de LRU) para seleccionar una página víctima y volcarla al área de swap.
¿Cómo ayuda la técnica de prefetch a mejorar el rendimiento del sistema?
Carga páginas en memoria de forma anticipada antes de que el proceso las referencie, evitando la latencia de futuros fallos de página.

Preguntas tipo test

  1. ¿Qué componente captura el intento de acceso a una página no presente en memoria?
    • a) El controlador DMA
    • b) La unidad de gestión de memoria
    • c) La cabecera del binario
    • d) El planificador de CPU

    Respuesta: b) La unidad de gestión de memoria. La MMU comprueba los bits de validez o presencia y dispara la excepción de fallo de página.

  2. ¿Cuál es la causa principal de la sobrepaginación o thrashing?
    • a) Tener una TLB de tamaño desproporcionado
    • b) Usar bibliotecas estáticas en lugar de dinámicas
    • c) Compilar sin incluir símbolos de depuración
    • d) Asignar menos marcos de los mínimos necesarios

    Respuesta: d) Asignar menos marcos de los mínimos necesarios. La sobrepaginación ocurre cuando los procesos carecen del número mínimo de marcos para avanzar y saturan el bus hacia disco.

  3. ¿Con qué permisos se marcan inicialmente las páginas compartidas mediante Copy on Write?
    • a) Permisos deshabilitados
    • b) Lectura y escritura completa
    • c) Solo ejecución
    • d) Solo lectura

    Respuesta: d) Solo lectura. Se marcan como solo lectura para que cualquier intento de escritura provoque una excepción y fuerce la copia.

Y 0 flashcards y 4 preguntas más en el documento.

Texto del documento

APUNTES SISTEMAS OPERATIVOS Grado en Ingeniería Informática Universidad Politécnica de Cataluña AprenAI 2026-2027 Apuntes completos de Sistemas Operativos (FIB): direcciones lógicas y físicas, MMU, gestión del heap, paginación, tablas multinivel, memoria virtual y COW.

APREN.AI Índice 1 Fundamentos y traducción de direcciones Memoria física frente a memoria lógica La unidad de gestión de memoria (MMU) y la protección 2 Estructura del proceso, carga y memoria dinámica Carga y formato del ejecutable Esquema de memoria del proceso Gestión de la memoria dinámica 3 Estrategias de asignación: paginación y segmentación Modelos de asignación y tipos de fragmentación Paginación y Translation Lookaside Buffer Segmentación y esquemas combinados 4 Memoria virtual y técnicas de optimización Concepto de memoria virtual y fallo de página Políticas de reemplazo y sobrepaginación Optimizaciones: Copy on Write y Prefetch 5 Resumen para repasar Fundamentos y traducción de direcciones Estructura del proceso y memoria dinámica Paginación y segmentación Memoria virtual y optimizaciones Soluciones de las preguntas de repaso Estos apuntes pueden contener errores u omisiones.

Son un material de apoyo y no sustituyen al temario oficial ni al profesorado: contrasta la información importante. Gestión de Memoria en Sistemas Operativos: MMU y Paginación 1 1 Fundamentos y traducción de direcciones AL ACABAR SABRÁS Diferenciar entre dirección lógica y física. Describir la función de la MMU y su colaboración con el sistema operativo. Explicar el procedimiento de protección de memoria ante accesos ilegales. PIÉNSALO ANTES DE LEER 1 ¿Por qué dos programas ejecutados a la vez pueden usar la misma dirección numérica sin pisarse? Memoria física frente a memoria lógica La unidad central de procesamiento solo puede operar directamente con los registros y la memoria principal.

Por esta razón, las instrucciones del código y los datos deben residir en memoria antes de ser referenciados. La operación de carga consiste en reservar memoria, volcar en ella el contenido del programa y derivar el flujo de ejecución hacia el punto de entrada. Dentro del sistema conviven dos clases de referencias numéricas: Dirección lógica: es la referencia numérica emitida por el procesador durante la ejecución de las instrucciones. Dirección física: identifica la posición real en los módulos de memoria física. Ambas direcciones no tienen por qué coincidir.

En los sistemas de propósito general actuales, el hardware y el sistema operativo colaboran estrechamente para llevar a cabo la traducción continua de direcciones. DEFINICIÓN El espacio de direcciones del procesador abarca el conjunto total de direcciones que este puede generar según el ancho de su bus. Por su parte, el espacio de direcciones lógicas de un proceso corresponde al rango de direcciones que el núcleo declara válidas para dicho programa, mientras que el espacio físico reúne las posiciones reales asignadas a esas referencias lógicas. La unidad de gestión de memoria (MMU) y la protección La correspondencia entre espacios puede ser fija o realizarse mediante traducción.

Antiguamente, la correspondencia fija exigía que las direcciones lógicas y físicas fueran idénticas. Otra opción histórica consistía en traducir todas las referencias durante la carga al copiar el programa. Los sistemas modernos aplican la asignación de direcciones en tiempo de ejecución. Este mecanismo permite que un proceso cambie de ubicación física sin alterar su espacio lógico. Gestión de Memoria en Sistemas Operativos: MMU y Paginación 2 Esquema de traducción y protección entre procesos mediante la MMU. El soporte hardware principal reside en la MMU (Memory Management Unit). Este componente traduce en tiempo real cada dirección lógica a su equivalente física y verifica los permisos.

El sistema operativo se encarga de programar los registros de la MMU con los descriptores del proceso en ejecución. Rol Responsabilidad principal Acciones clave Hardware (MMU) Mecanismo de traducción y detección Recibe la dirección lógica, consulta sus tablas internas, genera la dirección física y dispara excepciones ante accesos no autorizados. Sistema Operativo (Kernel) Política y configuración Carga los mapas de traducción en el cambio de contexto, amplía o reduce zonas de memoria y gestiona las excepciones recibidas. Cuando un proceso intenta acceder a una dirección no asignada o carece de permisos, la MMU dispara una interrupción o excepción por dirección inválida.

El sistema operativo captura este evento y actúa en consecuencia, habitualmente abortando el proceso causante con una señal como SIGSEGV. ERROR FRECUENTE Pensar que la MMU decide qué zonas de memoria pertenecen a un proceso. La MMU solo ejecuta la comprobación y traducción que el sistema operativo ha configurado previamente en sus estructuras de datos. COMPRUEBA 2 ¿En qué momentos debe el sistema operativo actualizar necesariamente la configuración de la MMU? Gestión de Memoria en Sistemas Operativos: MMU y Paginación 3 PROCESO Traducción y validación de direcciones 1 Emisión de dirección La CPU emite una re ferencia lógica 2 Inspección MMU Comprueba validez y permisos 3 ¿Acceso válido?

Si es incorrecto ge nera excepción 4 Acceso a memoria Se aplica la dirección física calculada IDEAS CLAVE La CPU solo ejecuta instrucciones y lee datos presentes en memoria o registros. La dirección lógica es emitida por la CPU, mientras que la dirección física localiza la celda real en hardware. La MMU realiza la traducción en tiempo de ejecución y comprueba la validez del acceso bajo la configuración establecida por el núcleo. Un acceso inválido genera una excepción gestionada por el núcleo que suele terminar en una señal SIGSEGV. COMPRUEBA LO QUE HAS APRENDIDO 3. ¿Qué diferencia existe entre el espacio de direcciones lógicas y el espacio físico de un proceso? 4.

¿Por qué es ventajoso realizar la asignación de direcciones en tiempo de ejecución? Test Rodea la respuesta correcta. Las soluciones están al final. 5. ¿Qué componente hardware traduce direcciones lógicas a físicas en tiempo real? 6. ¿Qué ocurre si la CPU emite una dirección no mapeada en la MMU? 7. ¿Quién se encarga de configurar las tablas y registros de la MMU?

La unidad aritmético lógica a) El bus de control b) La unidad de gestión de memoria c) El registro contador de programa d) Se detiene la máquina por completo a) Se genera una excepción hacia el sistema b) La memoria física asigna ceros automáticamente c) Se sobrescribe el contador de programa d) El núcleo del sistema operativo a) El controlador de disco b) La propia memoria física c) El compilador del programa d) Gestión de Memoria en Sistemas Operativos: MMU y Paginación 4 8. ¿Qué señal recibe típicamente un proceso al cometer un acceso no válido de memoria? 2 Estructura del proceso, carga y memoria dinámica AL ACABAR SABRÁS Identificar las secciones principales de un binario en formato ELF.

Describir la distribución de la memoria lógica entre texto, datos, heap y stack. Diferenciar la gestión del montículo mediante primitivas del sistema frente a la biblioteca de C. PIÉNSALO ANTES DE LEER 9 ¿Por qué un archivo binario en disco ocupa menos espacio que cuando se carga en memoria? Carga y formato del ejecutable Para poner en marcha un ejecutable almacenado en disco, el sistema operativo realiza una serie de pasos secuenciales: La cabecera del binario ELF describe el tipo, tamaño y emplazamiento de cada una de sus secciones: Sección ELF Contenido almacenado .text Código ejecutable del programa. .init Rutinas de inicialización del proceso (incluye el punto de entrada).

.data Variables globales con valor inicial asignado. .bss Variables globales sin inicializar. .dynamic Información destinada al enlace dinámico. SIGINT a) SIGKILL b) SIGCHLD c) SIGSEGV d) Interpretar el formato del archivo: examina el binario para conocer los requisitos de memoria. En entornos tipo POSIX predomina el formato ELF (Executable and Linkable Format). 1 Organizar el mapa lógico y reservar memoria física: inicializa las estructuras internas del proceso (PCB) definiendo las direcciones válidas y sus permisos. 2 Cargar las secciones del programa: transfiere el código y los datos inicializados desde el soporte secundario hacia la memoria física.

3 Configurar el contador de programa: sitúa en el registro program counter la dirección de la primera instrucción correspondiente al punto de entrada. 4 Gestión de Memoria en Sistemas Operativos: MMU y Paginación 5 Sección ELF Contenido almacenado .comment Metadatos e información de control. .debug Información para depuración de código. Esquema habitual de la memoria de un proceso con sus distintas secciones. Esquema de memoria del proceso El mapa lógico estándar organiza las diferentes secciones delimitando áreas con fines específicos: Código (text): base inferior del espacio lógico, contiene las instrucciones de solo lectura.

Datos (data y bss): almacena las variables globales del ejecutable. Montículo (heap): región de memoria dinámica que crece hacia direcciones superiores. Pila (stack): almacena variables locales, parámetros de llamadas y registros de activación, creciendo en sentido descendente. Entre el montículo y la pila queda una región sin asignar marcada como inválida en la MMU. Gestión de la memoria dinámica El tamaño de muchas estructuras de datos depende de parámetros calculados durante la ejecución. Asignar este tamaño en tiempo de compilación provocaría desaprovechamiento o errores por falta de espacio.

Gestión de Memoria en Sistemas Operativos: MMU y Paginación 6 Esquema funcional de la llamada al sistema sbrk sobre el montículo. A nivel de sistema operativo en arquitecturas tipo Linux sobre Pentium, la interfaz tradicional expone llamadas como brk y sbrk. La función sbrk desplaza el puntero límite superior del montículo: un valor positivo incrementa el espacio, un valor negativo lo contrae y pasar cero consulta el límite actual. ERROR FRECUENTE Intentar liberar bloques arbitrarios usando únicamente llamadas del núcleo como sbrk . El sistema operativo desconoce qué variables concretas residen en el montículo; solo desplaza el límite superior.

Para gestionar bloques sueltos se requiere la biblioteca estándar de C. La biblioteca de C ofrece una capa de abstracción mediante malloc y free . Si existe un hueco consecutivo suficiente en el espacio ya reservado, malloc lo marca como ocupado. Si no dispone de espacio, solicita un incremento del montículo al núcleo pidiendo más cantidad de la estricta para reducir futuras llamadas al sistema. Por su parte, free recibe un puntero concreto y reincorpora el bloque a la lista de zonas disponibles sin exigir de forma inmediata la devolución de memoria al sistema operativo. COMPRUEBA 10 ¿Por qué la biblioteca estándar de C solicita más memoria de la requerida al usar sbrk?

PROCESO Fases en la carga de un programa 1 Interpretar binario Lectura del formato de archivo ELF 2 Preparar esquema lógico Configuración del PCB y la MMU 3 Copia a memoria Escritura de código y datos desde disco 4 Iniciar eje cución Fijar program counter en el punto de entrada Gestión de Memoria en Sistemas Operativos: MMU y Paginación 7 IDEAS CLAVE El formato ELF describe la estructura interna del ejecutable dividida en secciones de código y datos. El espacio lógico sitúa el código y los datos en la parte baja, mientras el heap crece hacia arriba y el stack hacia abajo. La llamada al sistema sbrk manipula únicamente el extremo superior del montículo sin distinguir variables individuales.

La librería de C (malloc y free) gestiona internamente fragmentos libres para optimizar las peticiones de usuario sin invocar al núcleo constantemente. COMPRUEBA LO QUE HAS APRENDIDO 11. ¿Qué diferencia existe entre las secciones .data y .bss de un ejecutable? 12. ¿Qué parámetro recibe free y qué información deduce de él? Test Rodea la respuesta correcta. Las soluciones están al final. 13. ¿Qué sección del binario ELF contiene las instrucciones de inicialización del proceso? 14. ¿En qué sentido crecen habitualmente el heap y el stack en el espacio lógico? 15. ¿Cuál es la función del parámetro numérico en la llamada sbrk? 16.

¿Por qué malloc pide más memoria al sistema de la estrictamente solicitada?

.text a) .comment b) .bss c) .init d) Ambos hacia direcciones más altas a) Heap hacia abajo y stack hacia arriba b) Ambos hacia direcciones más bajas c) Heap hacia arriba y stack hacia abajo d) Variar el límite superior del heap a) Eliminar un proceso secundario b) Fijar permisos de lectura y escritura c) Crear una nueva tabla de segmentos d) Para reducir el número de llamadas al sistema a) Para evitar la paginación multinivel b) Para forzar el uso de la memoria virtual c) Para invalidar la TLB preventivamente d) Gestión de Memoria en Sistemas Operativos: MMU y Paginación 8 3 Estrategias de asignación: paginación y segmentación AL ACABAR SABRÁS Distinguir las causas y características de la fragmentación interna y externa.

Explicar el funcionamiento de la paginación y el papel acelerador de la TLB. Comparar los esquemas de paginación y segmentación analizando sus ventajas e inconvenientes. PIÉNSALO ANTES DE LEER 17 ¿Por qué dividir la memoria en bloques de tamaño fijo evita la necesidad de compactar huecos libres? Modelos de asignación y tipos de fragmentación Al asignar espacio surgen ineficiencias conocidas como fragmentación: Fragmentación interna: memoria asignada a un proceso que este no utiliza, quedando reservada pero desaprovechada. Fragmentación externa: espacio de memoria libre y sin asignar distribuido en bloques tan fragmentados que impiden alojar un proceso contiguo.

Su resolución exige compactación, técnica costosa en tiempo de CPU. Frente a la clásica asignación contigua, que reserva un bloque físico único e inflexible para todo el proceso, los sistemas modernos adoptan esquemas de asignación no contigua. Estos mejoran la granularidad y flexibilidad a cambio de mayor complejidad en la MMU. Paginación y Translation Lookaside Buffer La paginación fragmenta el espacio lógico en bloques de tamaño fijo llamados páginas, mientras divide la memoria física en particiones equivalentes llamadas marcos de página (frames). La asignación empareja cada página con cualquier marco disponible.

Por esta razón, la paginación elimina la fragmentación externa, aunque puede conservar fragmentación interna en la última página del proceso. Gestión de Memoria en Sistemas Operativos: MMU y Paginación 9 Esquema del funcionamiento de la MMU con soporte de TLB y tabla de páginas. Para realizar la correspondencia, el sistema operativo mantiene una tabla de páginas por cada proceso. Como estas tablas se almacenan en la memoria principal, cada acceso a un dato exigiría dos lecturas físicas: una a la tabla y otra al dato. Para mitigar este retardo, el procesador incorpora una caché asociativa ultrarrápida denominada TLB (Translation Lookaside Buffer).

Situación Comportamiento de la MMU Acierto de TLB (Hit) La traducción página-marco se recupera directamente de la caché, completando el acceso en un único ciclo. Fallo de TLB (Miss) La MMU accede a la tabla de páginas en memoria, traduce la dirección e inserta la entrada en la TLB para futuros accesos.

Cuando el tamaño de las tablas se vuelve excesivo en arquitecturas con buses anchos, se emplean esquemas de tablas de páginas multinivel: Bus del sistema Espacio lógico Número de páginas (con tamaño 4 KB) Tamaño de la tabla de páginas 32 bits bytes (4 GB) páginas 4 MB 64 bits bytes páginas 4 PB 232 220 264 252 Gestión de Memoria en Sistemas Operativos: MMU y Paginación 10 Segmentación y esquemas combinados La segmentación divide el espacio de direcciones lógicas en bloques de tamaño variable determinados según su contenido lógico (código, datos, pila). Cada dirección consta de un identificador de segmento ( ) y un desplazamiento ( ).

La tabla de segmentos almacena para cada bloque su dirección física base y su longitud o límite. Si el desplazamiento excede el límite registrado, el hardware emite una excepción por violación de memoria. Esquema de traducción y control de límites en una tabla de segmentos. Esquema del proceso de transformación en un sistema de segmentación paginada. La segmentación refleja de manera intuitiva las áreas de un programa pero padece fragmentación externa. Para combinar las ventajas de ambos enfoques, se utiliza la segmentación paginada: el espacio lógico se modela en segmentos de longitud variable y cada segmento se descompone internamente en páginas de tamaño regular.

ERROR FRECUENTE Afirmar que la paginación sufre fragmentación externa. La paginación solo sufre fragmentación interna, puesto que cualquier marco libre puede albergar cualquier página lógica sin importar su orden. COMPRUEBA 18 ¿Qué problema resuelve la TLB frente al uso exclusivo de tablas de páginas en memoria? s d Gestión de Memoria en Sistemas Operativos: MMU y Paginación 11 ESQUEMA Estrategias de asignación de memoria IDEAS CLAVE La fragmentación interna corresponde a memoria asignada y no usada; la externa son huecos libres dispersos no contiguos. La paginación utiliza particiones de tamaño fijo eliminando la fragmentación externa.

La TLB actúa como una memoria caché de traducción para acelerar el acceso a los marcos físicos. La segmentación divide la memoria en bloques lógicos variables según su función pero produce fragmentación externa. COMPRUEBA LO QUE HAS APRENDIDO 19. ¿En qué se diferencian una página lógica y un marco físico? 20. ¿Por qué se recurre a la paginación multinivel en arquitecturas con buses de 64 bits? Test Rodea la respuesta correcta. Las soluciones están al final. 21. ¿Qué tipo de fragmentación puede aparecer en un esquema de paginación pura?

Asignación de memoria Modelos de asignación a procesos Asignación contigua Bloque único y rígido Asignación no contigua Distribución granular en memoria Paginación Particiones de tamaño fijo Segmentación Particiones de tamaño variable Segmentación paginada Combinación híbrida Fragmentación interna a) Fragmentación externa b) Fragmentación asociativa c) No se produce ninguna fragmentación d) Gestión de Memoria en Sistemas Operativos: MMU y Paginación 12 22. ¿Qué información almacena cada entrada en una tabla de segmentos básica? 23. ¿Qué sucede en la MMU cuando se produce un acierto de TLB? 24. ¿En qué orden se procesan las direcciones en un sistema de segmentación paginada?

4 Memoria virtual y técnicas de optimización AL ACABAR SABRÁS Describir la secuencia de pasos con la que el sistema resuelve un fallo de página. Analizar las causas del thrashing y las medidas para resolver la sobrecarga de memoria. Explicar el mecanismo Copy on Write y las optimizaciones de enlace dinámico y prefetch. PIÉNSALO ANTES DE LEER 25 ¿Por qué un ordenador puede ejecutar programas que requieren más gigabytes que la memoria RAM disponible? Concepto de memoria virtual y fallo de página La memoria virtual amplía el concepto de carga bajo demanda permitiendo que el espacio de direcciones lógicas supere la memoria física instalada.

Un proceso solo necesita en memoria física las instrucciones y datos que referencia en su ejecución inmediata. El resto del contenido reside en un almacén de respaldo o área de swap en disco.

Dirección de disco y tiempo de uso a) Número de marco y bit de validez b) Dirección base y tamaño límite c) Página lógica y desplazamiento d) Se invalida el registro base del proceso a) Se detiene la CPU y se consulta el disco b) Se dispara una interrupción por página ausente c) Se traduce la dirección sin consultar la tabla d) Dirección lógica a física directamente a) Dirección física a lineal y luego a lógica b) Dirección lineal a física y luego a lógica c) Dirección lógica a lineal y luego a física d) Gestión de Memoria en Sistemas Operativos: MMU y Paginación 13 Esquema de interacción entre MMU, sistema operativo y área de swap.

Cuando la CPU intenta acceder a una dirección cuya página no está cargada en RAM, la MMU dispara una excepción de fallo de página. El sistema operativo resuelve este suceso siguiendo una secuencia ordenada: Diagrama de flujo detallado del acceso a memoria y resolución de fallo. Verificación de validez: comprueba en el PCB si la dirección lógica es legal. Si es inválida, envía una señal de error al proceso. 1 Localización y reserva de marco: busca un marco libre en la RAM. Si todos están ocupados, ejecuta el algoritmo de reemplazo para elegir una página víctima y expulsarla al swap.

2 Gestión de Memoria en Sistemas Operativos: MMU y Paginación 14 Políticas de reemplazo y sobrepaginación El rendimiento global depende de minimizar los fallos de página. Cuando se necesita liberar memoria física, el sistema operativo recurre a algoritmos como LRU (Least Recently Used) o sus aproximaciones prácticas, seleccionando como víctima la página que tardará más tiempo en volver a usarse. Gráficas de tasa de fallos y utilización de CPU durante el thrashing. Si el grado de multiprogramación se eleva sin control o los procesos disponen de menos marcos que los imprescindibles para trabajar, se produce la sobrepaginación (thrashing).

El sistema gasta más tiempo transfiriendo páginas hacia y desde el disco que ejecutando código útil. Para corregirlo, el sistema operativo debe monitorizar la tasa de fallos de página y expulsar temporalmente procesos completos hacia el swap. Optimizaciones: Copy on Write y Prefetch Los sistemas modernos incorporan mecanismos avanzados para ahorrar transferencias y memoria física: Copy on Write (COW): al clonar un proceso mediante fork , el proceso hijo comparte inicialmente las mismas páginas físicas del padre con permisos marcados como solo lectura en la MMU.

Si cualquiera de los dos intenta escribir, la MMU dispara una excepción y el sistema operativo duplica físicamente solo esa página concreta. Prefetch: anticipa qué páginas se van a requerir a corto plazo y las lee por adelantado del disco, reduciendo los tiempos de espera del procesador. Puede implementarse de forma secuencial o mediante patrones a intervalos (strided). Bibliotecas compartidas: los ejecutables conservan enlaces a rutinas externas (stubs). Si varios procesos cargan la misma biblioteca dinámica (como la libc), comparten una única copia física en modo de solo lectura.

Transferencia desde disco: suspende el proceso causante mientras se lee el bloque desde el soporte secundario hacia el marco físico. 3 Actualización de tablas: registra el nuevo marco en la tabla de páginas y marca la entrada como presente. 4 Reinicio de la instrucción: despierta el proceso y repite la instrucción exacta que causó la excepción. 5 Gestión de Memoria en Sistemas Operativos: MMU y Paginación 15 Jerarquía de almacenamiento ordenada por capacidad y velocidad de acceso. ERROR FRECUENTE Creer que la función fork duplica inmediatamente toda la memoria del proceso padre en el momento de invocarse.

Con la optimización Copy on Write, la duplicación física solo sucede si uno de los procesos modifica una página concreta. COMPRUEBA 26 ¿Cómo detecta el hardware que debe duplicarse una página bajo el mecanismo Copy on Write?

CAUSAS Y CONSECUENCIAS Exceso de multiprogramación Demasiados procesos compitiendo por marcos Escasez de marcos libres Procesos por debajo de su conjunto de trabajo Sobrepaginación (Thrashing) Disparo de fallos de página Acceso continuo al soporte secundario Caída del rendimiento de CPU La CPU pasa la mayor parte del tiempo esperando E/S Gestión de Memoria en Sistemas Operativos: MMU y Paginación 16 IDEAS CLAVE La memoria virtual permite que la suma de espacios lógicos supere con creces la capacidad física de la memoria RAM. Un fallo de página detiene el proceso mientras el núcleo rescata la página requerida del disco hacia un marco libre.

El fenómeno de sobrepaginación (thrashing) ocurre cuando el sistema colapsa transfiriendo páginas continuamente en lugar de ejecutar instrucciones. Copy on Write optimiza la creación de procesos evitando duplicar páginas físicas hasta que se intenta una operación de escritura. COMPRUEBA LO QUE HAS APRENDIDO 27. ¿Qué ocurre durante la atención de un fallo de página si no existen marcos libres en la RAM? 28. ¿Cómo ayuda la técnica de prefetch a mejorar el rendimiento del sistema? Test Rodea la respuesta correcta. Las soluciones están al final. 29. ¿Qué componente captura el intento de acceso a una página no presente en memoria? 30. ¿Cuál es la causa principal de la sobrepaginación o thrashing?

31. ¿Con qué permisos se marcan inicialmente las páginas compartidas mediante Copy on Write? 32. ¿En qué nivel de la jerarquía de almacenamiento se sitúa el área de swap?

El controlador DMA a) La unidad de gestión de memoria b) La cabecera del binario c) El planificador de CPU d) Tener una TLB de tamaño desproporcionado a) Usar bibliotecas estáticas en lugar de dinámicas b) Compilar sin incluir símbolos de depuración c) Asignar menos marcos de los mínimos necesarios d) Permisos deshabilitados a) Lectura y escritura completa b) Solo ejecución c) Solo lectura d) Entre la caché y la memoria principal a) En el almacenamiento secundario en disco b) Por encima de los registros c) En la memoria ROM del sistema d) Gestión de Memoria en Sistemas Operativos: MMU y Paginación 17 5 Resumen para repasar Fundamentos y traducción de direcciones Concepto Definición Dirección lógica Referencia numérica emitida por la CPU durante la ejecución de las instrucciones.

Dirección física Identificador de la posición real en los módulos de hardware de memoria principal. MMU (Memory Management Unit) Componente hardware que traduce en tiempo real las direcciones lógicas a físicas y verifica permisos. Asignación en tiempo de ejecución Traducción dinámica que permite mover procesos en memoria física sin cambiar sus direcciones lógicas. Estructura del proceso y memoria dinámica Concepto Definición Formato ELF Estructura estándar de archivos ejecutables en sistemas POSIX que organiza el programa en secciones. Montículo (heap) Zona de memoria dinámica del proceso que crece hacia direcciones superiores del espacio lógico.

Pila (stack) Estructura que almacena marcos de activación y variables locales, creciendo hacia direcciones inferiores. sbrk Llamada al sistema que incrementa o reduce el límite superior de la memoria dinámica del proceso. malloc y free Funciones de biblioteca en C que administran bloques del montículo para amortizar las llamadas al núcleo. Paginación y segmentación Concepto Definición Paginación División del espacio lógico en páginas fijas y de la memoria en marcos de igual tamaño. Fragmentación interna Espacio de memoria asignado a un proceso que queda desaprovechado dentro de su partición.

Fragmentación externa Capacidad de memoria libre total suficiente pero dividida en huecos no contiguos inservibles. Gestión de Memoria en Sistemas Operativos: MMU y Paginación 18 Concepto Definición TLB Caché asociativa rápida que almacena traducciones recientes de páginas a marcos físicos. Tabla multinivel Jerarquía de tablas de páginas diseñada para evitar el excesivo consumo de RAM en arquitecturas grandes. Segmentación División lógica de longitud variable según el contenido del programa, propensa a fragmentación externa. Segmentación paginada Esquema híbrido en el que los segmentos de longitud variable se dividen internamente en páginas fijas.

Memoria virtual y optimizaciones Concepto Definición Memoria virtual Mecanismo que permite ejecutar procesos desacoplando el espacio lógico de la memoria física disponible. Fallo de página Excepción de hardware generada por la MMU al intentar acceder a una página ausente en memoria principal. Área de swap Zona en almacenamiento secundario donde se guardan temporalmente páginas no residentes de los procesos. Algoritmo LRU Criterio de reemplazo que selecciona como víctima la página que lleva más tiempo sin ser referenciada. Sobrepaginación (thrashing) Saturación del sistema provocada por un intercambio incesante de páginas con disco en detrimento de la CPU.

Copy on Write (COW) Técnica que pospone la duplicación de páginas físicas hasta que alguno de los procesos intenta modificarlas. Prefetch Mecanismo de predicción que transfiere páginas a memoria por anticipado para evitar fallos futuros. Gestión de Memoria en Sistemas Operativos: MMU y Paginación 19 Soluciones de las preguntas de repaso 1. Porque manejan direcciones lógicas independientes que la MMU traduce a posiciones de memoria física totalmente distintas. 2. Durante el cambio de contexto al pasar la CPU a otro proceso y al alterar el espacio de direcciones por reserva o liberación de memoria (como mutaciones con execlp). 3.

El espacio lógico reúne las referencias válidas que el proceso puede utilizar, mientras que el espacio físico contiene las ubicaciones reales de hardware que el núcleo le ha concedido. 4. Permite reubicar partes del proceso en memoria física sin tener que alterar las direcciones lógicas que maneja el binario. 5. c) La unidad de gestión de memoria. La MMU es el componente hardware encargado de recibir direcciones lógicas y convertirlas en físicas. 6. b) Se genera una excepción hacia el sistema. La MMU detecta la falta de correspondencia válida y genera una excepción capturada por el sistema operativo. 7. a) El núcleo del sistema operativo.

El núcleo es el encargado de programar la MMU con los datos específicos de cada proceso. 8. d) SIGSEGV. Una violación de segmento o acceso a dirección lógica inválida produce comúnmente una señal SIGSEGV. 9. Porque las secciones como el montículo, la pila o las variables sin valor inicial (.bss) solo reservan memoria durante la ejecución. 10. Para amortizar el coste temporal de las llamadas al sistema y disponer de memoria libre contigua para futuras peticiones de malloc. 11. La sección .data almacena variables globales inicializadas con un valor concreto, mientras que .bss reserva espacio para variables globales sin valor inicial. 12.

Recibe un puntero a la dirección de memoria asignada; deduce el tamaño del bloque a partir de la información registrada previamente por malloc. 13. d) .init. La sección .init almacena el código de inicialización que contiene la dirección de la primera instrucción. 14. d) Heap hacia arriba y stack hacia abajo. El heap asciende hacia direcciones superiores mientras el stack desciende desde el límite superior. 15. a) Variar el límite superior del heap. El argumento de sbrk especifica la cantidad en bytes que se desea aumentar o reducir el montículo. 16. a) Para reducir el número de llamadas al sistema.

Solicitar bloques mayores evita invocar continuas llamadas al sistema y agiliza posteriores peticiones. 17. Porque cualquier bloque libre puede asignarse a cualquier página del proceso, evitando que queden restos inservibles entre zonas ocupadas. 18. Resuelve la sobrecarga de tiempo de acceso, evitando tener que consultar la memoria principal dos veces por cada instrucción o dato referenciado. 19. La página es la división de tamaño fijo dentro del espacio lógico del proceso, mientras que el marco es la división física idéntica en la memoria RAM. 20. Porque una tabla de páginas continua requeriría varios petabytes de memoria para mapear el inmenso rango de direcciones.

Gestión de Memoria en Sistemas Operativos: MMU y Paginación 20 21. a) Fragmentación interna. En la paginación pura solo puede sobrar espacio en la última página del proceso, produciendo fragmentación interna. 22. c) Dirección base y tamaño límite. La tabla de segmentos indica la dirección base física y la longitud máxima permitida para ese bloque. 23. d) Se traduce la dirección sin consultar la tabla. La TLB contiene la correspondencia en su memoria rápida y suministra el marco inmediatamente sin acceder a la RAM. 24. d) Dirección lógica a lineal y luego a física. La unidad de segmentación transforma la dirección lógica en lineal, y la de paginación traduce la lineal a física. 25.

Porque utiliza memoria virtual, almacenando en disco las partes del programa que no se están usando activamente en ese instante. 26. Marcando la página como de solo lectura en la MMU; al intentar una escritura, el hardware dispara una excepción que el núcleo intercepta para realizar la copia. 27. Se ejecuta el algoritmo de reemplazo (como aproximaciones de LRU) para seleccionar una página víctima y volcarla al área de swap. 28. Carga páginas en memoria de forma anticipada antes de que el proceso las referencie, evitando la latencia de futuros fallos de página. 29. b) La unidad de gestión de memoria. La MMU comprueba los bits de validez o presencia y dispara la excepción de fallo de página.

30. d) Asignar menos marcos de los mínimos necesarios. La sobrepaginación ocurre cuando los procesos carecen del número mínimo de marcos para avanzar y saturan el bus hacia disco. 31. d) Solo lectura. Se marcan como solo lectura para que cualquier intento de escritura provoque una excepción y fuerce la copia. 32. b) En el almacenamiento secundario en disco. El área de intercambio reside en soporte secundario (disco magnético o electrónico), de mayor capacidad pero menor velocidad que la RAM. Gestión de Memoria en Sistemas Operativos: MMU y Paginación 21

Más apuntes de Sistemas Operativos

Exámenes, temas y apuntes de Sistemas Operativos