Administración de la Memoria en Sistemas Operativos
10 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿Cuál es la principal función del hardware de mapeo en la gestión de memoria?

  • Transformar direcciones lógicas en direcciones físicas. (correct)
  • Convertir instrucciones lógicas en instrucciones físicas.
  • Asociar direcciones físicas con dispositivos de entrada.
  • Optimizar el tiempo de acceso a las direcciones físicas.
  • ¿Qué sucede cuando un programa intenta llamar a una rutina que no ha sido cargada?

  • La rutina se carga automáticamente sin intervención del programa.
  • Se produce un error de ejecución inmediato.
  • Se llama al cargador de enlaces reubicable para cargar la rutina. (correct)
  • El programa vuelve a la dirección anterior y espera.
  • ¿Qué característica distingue a las bibliotecas enlazadas dinámicamente (DLLs) de las bibliotecas estáticas?

  • Son más rápidas en acceso que las bibliotecas estáticas.
  • Requieren más espacio en disco para almacenarse.
  • Se cargan en memoria antes de la ejecución del programa.
  • Se enlazan al programa en el momento de la ejecución. (correct)
  • ¿Cuál es una ventaja de la carga dinámica de rutinas en comparación con la carga estática?

    <p>Reduce el uso de memoria física al cargar rutinas solo cuando son necesarias.</p> Signup and view all the answers

    ¿Quién es principalmente responsable de diseñar programas que aprovechen la carga dinámica?

    <p>Los usuarios que crean las aplicaciones.</p> Signup and view all the answers

    ¿Cuál es la función principal del registro de reubicación en un sistema con protección de memoria?

    <p>Determinar el valor de la dirección física más pequeña que puede ser accedida.</p> Signup and view all the answers

    ¿Qué ocurre cuando el despachador carga los registros de reubicación y límite durante el cambio de contexto?

    <p>Se previene que el sistema operativo sea modificado por un proceso en ejecución.</p> Signup and view all the answers

    ¿Cómo se relacionan las DLLs con la memoria en un sistema operativo?

    <p>Se permite que múltiples procesos accedan a la misma instancia de una DLL.</p> Signup and view all the answers

    En el contexto de la asignación de memoria contigua, ¿dónde generalmente se ubica el sistema operativo en los SO modernos?

    <p>En direcciones de memoria alta, comúnmente.</p> Signup and view all the answers

    ¿Cuál de las siguientes afirmaciones es incorrecta sobre el registro límite en un sistema de protección de memoria?

    <p>El registro límite define el carácter dinámico de la reubicación de direcciones.</p> Signup and view all the answers

    Study Notes

    Memoria Principal

    • La administración de la memoria es fundamental, dado que se comparte entre múltiples procesos.
    • La mayoría de los algoritmos de administración de memoria requieren soporte de hardware (HW) y del sistema operativo (SO), por lo que muchos sistemas tienen una gestión de memoria estrechamente integrada entre el HW y el SO.
    • La memoria consta de una gran arreglo de bytes, cada uno con su dirección propia.
    • A medida que un programa se ejecuta, la unidad de memoria solo ve un flujo de direcciones de memoria; no comprende cómo se generan ni su utilidad (instrucciones o datos).

    Generalidades

    • La administración de la memoria es fundamental, dado que ésta se comparte entre múltiples procesos.
    • La mayoría de los algoritmos de administración de memoria requieren soporte de HW, por lo que muchos sistemas tienen una gestión de memoria estrechamente integrada entre el HW y el SO.
    • La memoria consta de un gran arreglo de bytes, cada uno con su propia dirección.
    • A medida que un programa se ejecuta, la unidad de memoria solo ve un flujo de direcciones de memoria; no sabe cómo se generan ni para qué sirven (instrucciones o datos).
    • En consecuencia, se puede ignorar cómo se genera una dirección de memoria; solo interesa la secuencia de direcciones de memoria generadas por el programa en ejecución.

    Hardware Básico

    • Se debe proteger el SO de los procesos del usuario, así como también proteger los procesos de los usuarios entre sí.
    • El HW debe proporcionar esta protección, ya que el SO no suele intervenir entre la CPU y sus accesos a la memoria (por razones de rendimiento).
    • Primero se debe asegurar que cada proceso tenga un espacio de memoria separado.
    • Esta disposición protege los procesos entre sí, dado que es fundamental contar con múltiples procesos cargados en la memoria y ejecutarlos concurrentemente.
    • A su vez, se necesita determinar el rango de direcciones legales a las que puede acceder el proceso y garantizar que el proceso solo pueda acceder a dichas direcciones.
    • Esta protección se puede proveer mediante el uso de dos registros: un registro base y un registro límite.

    Enlace de Direcciones (Address Binding)

    • Un programa pasa por varias etapas (algunas opcionales) antes de ejecutarse.
    • Las direcciones se representan de diferentes formas en estas etapas.
    • Las direcciones en el programa fuente son generalmente simbólicas (ej.: una variable).
    • El compilador enlaza estas direcciones simbólicas a direcciones reubicables (ej.: 14 bytes desde el comienzo de este módulo).
    • El enlazador (linker) o cargador (loader) enlaza las direcciones reubicables a direcciones absolutas (ej.: 74014).
    • Cada enlace (binding) es una asignación de un espacio de direcciones a otro.

    Enlace de Instrucciones y Datos a Direcciones de Memoria

    • El enlace de instrucciones y datos a direcciones de memoria se puede realizar en tiempo de compilación, en tiempo de carga o en tiempo de ejecución.
    • Tiempo de compilación: si se sabe en tiempo de compilación dónde residirá el proceso en memoria, se puede generar código absoluto.
    • Tiempo de carga: si no se sabe en tiempo de compilación dónde residirá el proceso en memoria, el compilador debe generar código reubicable.
    • Tiempo de ejecución: si el proceso se puede mover durante su ejecución, el enlace se retrasa hasta la ejecución; para esto se requiere hardware especial.

    Espacio de Direcciones Lógico versus Físico

    • Una dirección generada por la CPU es una dirección lógica, mientras que una dirección en la unidad de memoria es una dirección física.
    • El enlace de direcciones en tiempo de compilación o carga genera direcciones lógicas y físicas idénticas; sin embargo, el esquema en tiempo de ejecución resulta en direcciones lógicas y físicas diferentes.
    • Una dirección lógica también se conoce como una dirección virtual.
    • El conjunto de todas las direcciones lógicas generadas por un programa se denomina espacio de direcciones lógicas.
    • El conjunto de todas las direcciones físicas correspondientes a estas direcciones lógicas se denomina espacio de direcciones físicas.
    • En el esquema de enlace de direcciones en tiempo de ejecución, los espacios de direcciones lógicos y físicos difieren.

    Memoria Principal (RAM)

    • La CPU carga las instrucciones solo desde la memoria; los programas deben cargarse primero en la memoria para ejecutarse (ciclo instrucción-ejecución).
    • La memoria principal es un lugar pequeño para almacenar todos los programas y datos necesarios de forma permanente.
    • La memoria principal es volátil, lo que significa que perderá su contenido cuando apaga la computadora.
    • La memoria secundaria (como los discos duros, las memorias USB, las unidades flash y las cintas) almacena grandes cantidades de datos permanentemente.

    Paginación

    • Permite que el espacio de direcciones físicas de un proceso no sea contiguo.
    • Evita la fragmentación externa y la compactación, dos problemas de la asignación de memoria contigua.
    • Ofrece numerosas ventajas, utilizada en la mayoría de los SOs.
    • Se implementa mediante la cooperación entre el SO y el hardware.

    Paginación (Método Básico)

    • Dividir la memoria física en bloques de tamaño fijo llamados marcos.
    • Dividir la memoria lógica en bloques del mismo tamaño llamado páginas.
    • Cuando un proceso se ejecuta, sus páginas se cargan en cualquier marco disponible.
    • El espacio de direcciones lógicas podría estar totalmente separado del espacio de direcciones físicas.
    • Cada dirección generada por la CPU se divide en dos partes: número de página y desplazamiento de página.

    Paginación (Soporte de Hardware)

    • El TLB (Translation Lookaside Buffer) es un búfer de hardware que almacena pares de direcciones lógicas y físicas.
    • Cuando el SO genera una dirección lógica, el HW primero consulta el TLB.
    • Si el par de direcciones lógicas y físicas deseada está presente en el TLB, el mapa se denomina "hit".
    • Si no está presente, se denomina "miss", se consulta la tabla de páginas y se actualiza el TLB.

    Paginación (Protección)

    • La protección de la memoria se logra mediante bits asociados a cada marco dentro de la tabla de páginas.
    • Un bit puede indicar si una página es de lectura-escritura o de solo lectura.
    • Un intento de escribir en una página en solo lectura provoca una interrupción al SO.
    • Se pueden extender funciones de HW para proporcionar protección de ejecución.

    Asignación de Memoria Contigua

    • La memoria se divide en dos particiones: una para el SO y otra para los procesos de usuario.
    • Posibles estrategias: primer ajuste, mejor ajuste y peor ajuste.
    • La fragmentación externa es un problema en esta asignación.
    • Las simulaciones indican que las estrategias de primer y mejor ajuste son más eficientes que la de peor ajuste en tiempo y uso de espacio.

    Fragmentación

    • Fragmentación externa es cuando hay memoria disponible, pero no contigua, lo que dificulta la asignación de un bloque de memoria.
    • Fragmentación interna es cuando un proceso solo utiliza una parte de la memoria asignada, lo que desperdicia memoria.
    • Una solución al problema de la fragmentación externa es la compactación.

    Swapping (Intercambio)

    • Un proceso, o parte de un proceso, puede sacarse temporalmente de la memoria a un almacenamiento de respaldo.
    • El swapping permite que el número de procesos en ejecución en la memoria sea mayor que el número de marcos disponibles.
    • El swapping con paginación es una técnica que permite intercambiar páginas de un proceso en lugar de todo el proceso.

    Swapping en Sistemas Móviles

    • Los sistemas móviles generalmente no admiten intercambio en la misma medida que los sistemas de escritorio.
    • Los dispositivos móviles utilizan memorias flash para almacenamientos no volátiles (y no discos duros).
    • La restricción de espacio, la duración de las transacciones y las propiedades de volatilidad de la memoria flash son los motivos para evitar intercambio (swapping).
    • En sistemas iOS y Android se utiliza la finalizar aplicaciones para reducir el consumo de memoria.

    Segmentación

    • Un programador considera un programa principal con un conjunto de métodos, procedimientos o funciones.
    • Cada uno de estos módulos o elementos de datos se conoce por su nombre, sin importar qué direcciones en memoria ocupan.
    • Las instrucciones del segmento se identifican por su desplazamiento desde el principio del segmento; la primera instrucción del programa, la quinta instrucción de Sqrt(), etc.

    Memoria Compartida

    • Permite que varios procesos compartan el mismo código.
    • Más eficiente en la utilización de la memoria.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Description

    Este cuestionario se centra en la comprensión de la administración de la memoria en los sistemas operativos. Explora cómo se comparte la memoria entre múltiples procesos y la relación entre el hardware y el software en su gestión. También se discuten conceptos como las direcciones de memoria y la ejecución de programas.

    More Like This

    Memory Management in Operating Systems
    16 questions
    Operating System Fundamentals
    10 questions
    Use Quizgecko on...
    Browser
    Browser