En este artículo, analizaremos la protección de la memoria en los sistemas operativos. Como sabemos, los diferentes sistemas operativos utilizan diferentes formas de protección o separación de la memoria, que consisten en Plan9 e Inferno, Microsoft Windows, etc.
En la protección de la memoria, tenemos que proteger el sistema operativo de los procesos del usuario y esto se puede hacer usando un registro de reubicación con un registro de límite. Aquí, el registro de reubicación tiene el valor de la dirección física más pequeña, mientras que el registro de límite tiene el rango de las direcciones lógicas. Estos dos registros tienen algunas condiciones, como que cada dirección lógica debe ser menor que el registro límite. La unidad de gestión de memoria se utiliza para traducir la dirección lógica con el valor en el registro de reubicación dinámicamente, después de lo cual la dirección traducida (o mapeada) se envía a la memoria.
En el diagrama anterior, cuando el programador selecciona un proceso para el proceso de ejecución, el despachador, por otro lado, es responsable de cargar los registros de reubicación y límite con los valores correctos como parte del cambio de contexto como cada dirección generada por la CPU. se verifica con estos 2 registros, y podemos proteger el sistema operativo, los programas y los datos de los usuarios para que no sean alterados por este proceso en ejecución.
Necesidad de protección de la memoria:
La protección de la memoria evita que un proceso acceda a la memoria no asignada en el sistema operativo, ya que evita que el software tome el control de una cantidad excesiva de memoria y puede causar daños que afectarán a otro software que se está utilizando actualmente o puede generar una pérdida de datos guardados. Estos recursos de protección de memoria también ayudan en la detección de aplicaciones maliciosas o dañinas, que luego pueden dañar los procesos del sistema operativo.
Métodos de protección de la memoria:
Hay varios métodos para proteger un proceso del acceso a la memoria que no se ha asignado y algunos de los métodos comúnmente utilizados se detallan a continuación:
Protección de la memoria mediante claves: el concepto de protección de la memoria mediante claves se puede encontrar en la mayoría de las computadoras modernas con el propósito de organizar la memoria paginada y para la distribución dinámica entre los programas que se ejecutan en paralelo. Las claves se basan en el uso de códigos especiales, ya que podemos verificar el cumplimiento entre el uso de arrays de celdas de memoria y la cantidad de programas en ejecución. Este método clave brinda a los usuarios un proceso para imponer protecciones basadas en páginas sin ninguna modificación en las tablas de páginas.
Protección de memoria mediante anillos: en CS, los dominios relacionados con la protección ordenada se denominan anillos de protección. Este método ayuda a mejorar la tolerancia a errores y proporciona seguridad. Estos anillos están ordenados en una jerarquía desde los más privilegiados hasta los menos privilegiados. En el sistema operativo compartido de un solo nivel, todos y cada uno de los segmentos tienen un anillo de protección para el proceso de lectura, escritura y ejecución de operaciones del proceso. Si el proceso utiliza un número de timbre más alto, entonces el número de timbre para el segmento crea una falla. Pero tenemos algunos métodos para llamar a los procedimientos de manera segura que pueden ejecutarse en un número de timbre más bajo y luego regresar al número del timbre más alto.
Direccionamiento basado en capacidad: es un método para proteger la memoria que no se puede ver en las computadoras comerciales modernas. Aquí, los punteros (objetos que consisten en una dirección de memoria) son restaurados por los objetos de capacidades que solo pueden crearse con las instrucciones protegidas y solo pueden ejecutarse mediante un kernel u otro proceso que esté autorizado para ejecutar y, por lo tanto, otorga una ventaja. de controlar los procesos no autorizados en la creación de espacios de direcciones separados adicionales en la memoria.
Protección de la memoria mediante máscaras: Las máscaras se utilizan en la protección de la memoria durante la organización de la paginación. En este método, antes de la implementación, se le indican los números de página a cada programa y se reservan para la colocación de sus directivas. Aquí, las páginas asignadas para el programa ahora reciben el control del sistema operativo en forma de código de máscara (un código binario de n bits) que se forma para cada programa de trabajo que está determinado por el número de bits de las páginas OD.
Protección de memoria mediante segmentación: es un método para dividir la memoria del sistema en diferentes segmentos. Las estructuras de datos de la arquitectura x86 del sistema operativo, como la tabla de descriptores locales y la tabla de descriptores globales, se utilizan en la protección de la memoria.
Protección de memoria mediante segmentación simulada: con esta técnica, podemos monitorear el programa para interpretar las instrucciones de código de máquina de las arquitecturas del sistema. A través de esto, el simulador puede ayudar a proteger la memoria al usar una segmentación usando el esquema y validando la dirección de destino de cada instrucción en tiempo real.
Protección de la memoria mediante contaminación dinámica: la contaminación dinámica es una técnica que consiste en marcar y rastrear ciertos datos en un programa en tiempo de ejecución, ya que protege el proceso de accesos ilegales a la memoria. En la técnica de contaminación, contaminamos un programa para marcar dos tipos de datos, es decir, la memoria en el espacio de datos y los punteros.
Publicación traducida automáticamente
Artículo escrito por tarunsinghwap7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA