¡Estoy leyendo el concepto de sistemas operativos y estoy en el octavo capítulo! Sin embargo, podría utilizar alguna aclaración o confirmación de que mi comprensión es correcta.¿Diferencia entre direcciones lógicas y direcciones físicas?
Direcciones lógicas: las direcciones lógicas son generadas por la CPU, según el libro. ¿Qué significa esto exactamente? (En un sistema de direcciones generado por ejecución ...) Supongo que cuando se compila el código para un programa, el programa tiene no idea donde el código se cargará en la memoria. Todo lo que hace el compilador es configurar un boceto general del diseño del programa y cómo se debe diseñar la imagen, pero no le asigna ninguna dirección real. Cuando se ejecuta el programa, la CPU toma esta imagen de diseño que el compilador elaboró y entrega algunas direcciones (lógicas) a las generadas a partir del código.
Direcciones físicas: las direcciones físicas no se generan hasta que la CPU genera un conjunto de direcciones lógicas (que consta de una dirección base y un desplazamiento). Las direcciones lógicas pasan por la MMU u otro dispositivo y en algún lugar a lo largo de la línea las direcciones lógicas se asignan a las direcciones físicas de RAM.
¿Cuál es la diferencia real? Puedo ver un beneficio. El uso de direcciones lógicas otorga más libertad a las aplicaciones. Si las direcciones físicas estaban codificadas, el éxito del programa dependería en gran medida de la computadora física, direcciones de RAM disponibles, etc.
El uso de direcciones lógicas convertidas a direcciones físicas no impone dos pasos en lugar de uno para uno, y por lo tanto más por encima de la cabeza?
¿Dónde residen las direcciones lógicas después de la generación? Pueden existir en un registro en la CPU mientras la CPU está dando servicio a un proceso, pero antes y después, ¿a dónde van? Entiendo que esto depende de la implementación. Supongo que se pueden almacenar en algún espacio de registro especial o buffer en la CPU, como un TLB, ¿correcto? Si no, entonces la tabla puede existir en la propia RAM, y la CPU solo tiene un puntero/dirección en la dirección base de la tabla en la RAM, ¿correcto?
Parece que mantener las direcciones en la RAM es contraproducente para las direcciones de memoria lógica. Solo puedo asumir que mi comprensión es incorrecta.
sugeriría leer el artículo de Wikipedia sobre "tabla de página" o algo así. – asveikau
Gracias, la entrada de la tabla de la página es bastante útil –