Funciones y operaciones(espacio de direccionamiento, hardware, manejo de memoria: MMU, caché, espacio en memoria de proceso, resolución de direcciones).
Funciones y Operaciones: El procesador la única memoria que puede usar directamente es la memoria física. Todas las arquitecturas de procesadores tienen las instrucciones para trabajar con la memoria, pero ninguna arquitectura tiene para realizarlo con medios estables o persistentes de almacenamiento, como las unidades de disco duro. Y podemos resaltar que el almacenamiento primario es la memoria, y el almacenamiento secundario son los discos u otros medios de almacenamiento persistentes
Todos los programas que deseamos usar o necesitamos ejecutar primero deben cargarse a la memoria del sistema.
Espacio de direccionamiento: Para acceder a las palabras en la memoria, se necesita un identificador o una dirección. Cada unidad o byte está asociado con una dirección única, que indica su posición relativa en la memoria, y se puede acceder a ella a través de la dirección para almacenar o recuperar información. La información almacenada en la unidad de almacenamiento es su contenido. El contenido de estas direcciones o ubicaciones de almacenamiento se denominan palabras. Como se mencionó anteriormente, la palabra puede ser de 8 bits, 16 bits, 32 bits y 64 bits. Por lo tanto, si está utilizando una computadora de 32 bits, significa que en cada ubicación de memoria de la computadora, puede contener 32 bits (es decir, 32 bits), que pueden ser cero o uno. El número de ubicaciones identificables de forma única en la memoria se denomina espacio de direcciones.
Por ejemplo en una memoria de 64 kilobytes (KB) y un tamaño de palabra de un byte tienen un espacio de direccionamiento que varía de 0 a 65.535 direcciones de memoria.
Hardware: De la unidad de manejo de memoria: MMU
Unidad de manejo de memoria.
La unidad de manejo de memoria (mmu) es parte del procesador. sus funciones son:
• convertir las direcciones lógicas emitidas por los procesos en direcciones físicas.
• comprobar que la conversión se puede realizar. la dirección lógica podría no tener una dirección física asociada. Por ejemplo, la página correspondiente a una dirección se puede haber trasladado a una zona de almacenamiento secundario temporalmente.
• comprobar que el proceso que intenta acceder a una cierta dirección de memoria tiene permisos para ello.
• la mmu se inicializa para cada proceso del sistema. esto permite que cada proceso pueda usar el rango completo de direcciones lógicas (memoria virtual), ya que las conversiones de estas direcciones serán distintas para cada proceso.
• en todos los procesos se configura la mmu para que la zona del núcleo solo se pueda acceder en modo privilegiado del procesador.
• la configuración correspondiente al espacio de memoria del núcleo es idéntica en todos los procesos.
-cache
La respuesta para reducir esa espera es la memoria caché. Esta es memoria de alta velocidad, situada entre la memoria principal y el procesador propiamente, que guarda copias de las páginas que van siendo accesadas, partiendo del principio de la localidad de referencia:
Localidad temporal
Es probable que un recurso que fue empleado recientemente vuelva a ser empleado en un futuro cercano.
Localidad espacial
La probabilidad de que un recurso aún no requerido sea accesado es mucho mayor si fue requerido algún recurso cercano.
Localidad secuencial
Un recurso, y muy particularmente la memoria, tiende a ser requerido de forma secuencial.
-espacio en memoria de proceso
Cuando un sistema operativo inicia un proceso, no se limita a volcar el archivo ejecutable a memoria, sino que tiene que proveer la estructura para que éste vaya guardando la información de estado relativa a su ejecución.
Sección de texto
Es el nombre que recibe la imagen en memoria de las instrucciones a ser ejecutadas. Típicamente, la sección de texto ocupa las direcciones más bajas del espacio en memoria.
Sección de datos
Espacio fijo preasignado para las variables globales. Este espacio es fijado en tiempo de compilación, y no puede cambiar (aunque los datos que carga sí cambian en el tiempo de vida del proceso)
Espacio de libres
(Heap) Espacio de memoria que se emplea para la asignación dinámica de memoria durante la ejecución del proceso. Este espacio se ubica por encima de la sección de datos, y crece hacia arriba.
Cuando el programa es escrito en lenguajes que requieren manejo manual de la memoria (como C), esta área es la que se maneja a través de las llamadas de la familia de malloc y free; en lenguajes con gestión automática, esta área es monitoreada por los recolectores de basura (volveremos a estos conceptos más adelante).
Pila de llamadas
(Stack) Estructuras representando a la serie de funciones que han sido llamadas dentro del proceso, con sus parámetros, direcciones de retorno, variables locales, etc. La pila ocupa la parte más alta del espacio en memoria, y crece hacia abajo.
-resolución de direcciones
Un programa compilado no emplea nombres simbólicos para las variables o funciones que llama; el compilador, al convertir el programa a lenguaje máquina, las substituye por la dirección en memoria donde se encuentra
En tiempo de compilación
El texto del programa tiene la dirección absoluta de los datos y funciones. Esto era muy común en las computadoras previas al multiprocesamiento; en la arquitectura compatible con PC, el formato ejecutable .COM es un volcado de memoria directo de un archivo objeto con las direcciones indicadas de forma absoluta. Esto lo podemos ver hoy principalmente en sistemas embebidos o de función específica.
En tiempo de carga
Al cargarse la memoria del programa y antes de iniciar su ejecución, el cargador (componente del sistema operativo) actualiza las referencias a memoria dentro del texto para que apunten al lugar correcto — Claro está, esto depende de que el compilador indique dónde están todas las referencias a variables y funciones.
En tiempo de ejecución
El programa nunca hace referencia a una ubicación absoluta de memoria, sino que lo hace siempre relativo a una base y un desplazamiento (offset). Esto permite que el proceso sea incluso reubicado en la memoria mientras está siendo ejecutado sin tener que sufrir cambios, pero requiere de hardware específico (como un MMU).
Comentarios
Publicar un comentario