En el sistema operativo tenemos dos tipos de direcciones: dirección virtual/lógica y dirección física .
Dirección virtual o lógica:
es generada por la CPU. El significado de la oración anterior es que nuestros sistemas están diseñados para que la utilización de la CPU sea máxima y, por lo tanto, para usar la CPU correctamente, debemos usar multiprogramación. Debido a la multiprogramación, no es que solo el proceso completo se cargue en la memoria principal, sino que muchos procesos diferentes pueden estar presentes en la memoria principal. Y cuando cada uno de estos procesos se carga en la CPU, la CPU piensa que solo el proceso está presente en la memoria principal. Por lo tanto, produce direcciones relativas a 0, lo que significa que la CPU comienza a tratar el proceso como si estuviera cargado en la ubicación de memoria 0 en la memoria principal. Por lo tanto, para cada proceso (durante el cambio de contexto), la CPU produciría una dirección relativa a 0.
Ahora cada uno de los procesos se divide en páginas de igual longitud y, a cambio, cada página consta de un número fijo de palabras.
Para realizar un seguimiento de qué páginas se cargan en qué lugar de la memoria principal, utilizamos una tabla de páginas. El número de entradas de la tabla de páginas es igual al número de páginas. Al igual que el índice de array, los índices representan el número de página y el contenido respectivo mantendría la ubicación donde la página se carga realmente en la memoria principal. Algunas veces, incluso la página que necesitamos puede no estar presente en la tabla de páginas, por lo que se produce un error de página y, en ese caso, necesitamos recuperar la página de la memoria secundaria.
Dirección física:
como se explicó anteriormente, la CPU genera direcciones de todos los procesos en la memoria principal en relación con cero, es decir, la CPU produce direcciones a partir de 0. Ahora, las direcciones generadas por no son reales porque si esas direcciones fueran válidas, todos los procesos comenzarían. desde cero y los espacios de descanso en la memoria principal serían memoria. Por lo tanto, las direcciones generadas por la CPU deben asignarse de alguna manera a la dirección real (dirección física) de la memoria principal. Esto lo hace la MMU (unidad de gestión de memoria) .
Ahora, por lo general, dividimos la memoria principal en marcos de igual tamaño. Y, a cambio, cada uno de los marcos consta de la misma cantidad de palabras.
Un punto importante a tener en cuenta es que Tamaño de página = Tamaño de marco .
Nota:
La unidad direccionable más pequeña en la memoria se llama palabra. Significa la unidad más pequeña que puede identificarse específicamente usando bits de dirección.
El espacio de direcciones de la dirección virtual se divide en 2 partes: Número de página y Desplazamiento de página.
De manera similar, el espacio de direcciones de la dirección física se divide en 2 partes: número de trama y desplazamiento de trama.
Deje que la dirección virtual tenga n bits y la dirección física tenga m bits.
Page Size = Frame Size = k bits
(como tamaño de página = tamaño de marco como se mencionó anteriormente).
Number of Pages = 2(n-k) pages
Number of Frames = 2(m-k) Frames
Y, número de palabras en cada página/fotograma = 2 (k) páginas.
Por lo tanto, en ambos esquemas de direccionamiento, los últimos k bits se reservan para encontrar la palabra en particular. cuadro de todo el conjunto de números de cuadro.
En términos simples, puedo explicar aquí que de n bits en la dirección virtual, nk bits se usan para encontrar el número de página particular en la tabla de páginas y mk bits de m bits de la dirección física se usan para encontrar el marco particular y luego encontrar el marco particular que necesitamos vaya a una palabra en particular que contenga los datos requeridos (ya que la palabra es la unidad direccionable más pequeña), por lo que los k bits se usan para encontrar ese particular.
Truco:
considere un espacio de direcciones de bits, entonces si se usan k bits para definir el número de bloques en ese espacio de direcciones, los nk bits restantes se usan para encontrar un bloque específico a lo largo de ese bloque elegido usando los k bits. Esto quedaría claro en el siguiente diagrama de bloques.
Este mismo concepto puede extenderse también en Redes de Computadores.
Nota:
El concepto de palabra direccionable y el de byte direccionable son diferentes, cuando tenga dudas, pregunte acerca de la palabra direccionable, convierta el espacio de direcciones en palabras y luego aplique todos los conceptos explicados anteriormente.