Pregunta

Estoy leyendo Concepto de Sistemas operativos y estoy en el capítulo octavo! Sin embargo, me vendría bien algo de clarificación, o la seguridad de que mi interpretación es correcta.

Las direcciones lógicas: direcciones lógicas son generadas por la CPU, según el libro. ¿Qué significa esto exactamente? (En un sistema de dirección generada a ejecutar ..) Asumo que cuando el código se compila un programa, el programa tiene no idea de donde el código se carga en memoria. Todo el compilador hace es establecer un esquema general del diseño del programa y cómo la imagen debe ser establecido, pero no asigna ninguna de las direcciones reales a la misma. Cuando se ejecuta el programa de la CPU toma esta imagen Disposición que el compilador hace y reparte algunas direcciones (unidades lógicas) a los generados a partir del código.

direcciones físicas: las direcciones físicas no se generan hasta después de la CPU genera un conjunto de direcciones lógicas (que consisten en una dirección de 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 de las direcciones lógicas se asignan a las direcciones de memoria RAM física.

¿Cuál es entonces la diferencia real? Puedo ver un beneficio. El uso de direcciones lógicas da más libertad para las aplicaciones. Si las direcciones físicas se codificaron duro, entonces el éxito del programa dependerá en gran medida de la máquina equipo físico, direcciones de memoria RAM disponible, etc.

no el uso de direcciones lógicas convierte a la dirección física imponer dos pasos en lugar de uno a uno, y por lo tanto más sobre la cabeza?

dónde, pues, las direcciones lógicas residen tras generación? Pueden existir en un registro de la CPU, mientras que 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. Yo supongo que se pueden almacenar en un espacio especial de registro o tampón en la CPU como una TLB, correcto? Si no es así, entonces la tabla puede existir en la propia memoria RAM real, y la CPU sólo se mantiene un puntero / dirección a la dirección base de la tabla en la memoria RAM, ¿correcto?

Parece que sostiene las direcciones en la RAM es contraproducente para el objetivo de direcciones de memoria lógicos. Sólo puedo asumir mi entendimiento es incorrecto.

¿Fue útil?

Solución

Esta respuesta es no pretende ser exhaustiva, sino que pueden explicar lo suficiente como para hacer que las cosas encajen.

En los sistemas de memoria virtual, hay una desconexión entre las direcciones lógicas y físicas.

Una aplicación se puede dar un espacio de direcciones virtuales de (digamos de LET) 4G. Esta es su memoria utilizable y es libre de usarlo como lo considere oportuno. Es un buen bloque contiguo de memoria (desde el punto de vista de la aplicación).

Sin embargo, no es el solamente aplicación en ejecución, y el sistema operativo tiene que mediar entre todos ellos. Por debajo de ese buen modelo contigua, hay una gran cantidad de mapeo de pasar a convertir lógica a las direcciones físicas.

Con esta asignación, el sistema operativo y el hardware (Voy a llamar a estos las capas inferiores de aquí en adelante) es libre de poner las páginas de aplicación en cualquier lugar que quiere (ya sea en la memoria física o cambiados a un almacenamiento secundario).

Cuando los intentos de aplicación a la memoria de acceso en dirección lógica 50, los niveles más bajos que se puede traducir a una dirección física usando tablas de traducción. Y, si se trata de acceder a la memoria lógica que ha sido cambiados en el disco, un fallo de página se eleva y los niveles más bajos puede traer la parte posterior de datos relevantes en la memoria, en cualquier física dirección que quiere.

En los viejos tiempos cuando las direcciones físicas eran todo lo que tenía, el código tenía que ser reubicable (o fijo hasta la carga), ya que podría cargar en cualquier lugar. Con la memoria virtual, que el código (y datos) pueden estar en la posición de memoria lógica 50 en una docena de procesos diferentes a la vez -. Que es real física dirección será diferente sin embargo

Puede incluso ser compartida de manera que un física copia existe en el espacio de direcciones de muchos procesos a la vez. Este es el quid de código compartido (por lo que no usamos más memoria física de lo que necesitamos) y la memoria compartida para permitir una fácil comunicación entre procesos).

Es, por supuesto, menos eficiente que un entorno físico-dirección puro, pero los fabricantes de CPU tratan de hacerlo lo más increíblemente eficiente como sea posible, ya que se utiliza en gran medida. Las ventajas ahora son mayores que las desventajas.

Otros consejos

dirección lógica es la dirección con respecto al programa. Se indica la cantidad de memoria que un proceso en particular va a tomar, no dicen lo que van a la ubicación exacta del proceso y esta ubicación exacta se nos generada por el uso de algunos de mapeo, y se conoce como dirección física.

Dirección lógica: - Dirección lógica generada por la CPU. cuando estamos dar el problema de la computadora, entonces nuestro ordenador pasar el problema a través del procesador de direcciones lógicas, que no somos vistos esta dirección llamada dirección lógica.

Dirección física: - cuando nuestro procesador de crear procesos y resuelve nuestro problema, entonces almacenamos datos en la memoria secundaria a través de la dirección llamada dirección física

  1. Una dirección generada por la CPU se conoce comúnmente como una dirección lógica. El conjunto de todas las direcciones lógicas generadas por un programa se conoce como espacio de direcciones lógicas. Considerando que, una dirección de vista por la memoria unidad- es decir, el uno cargado en el registro de dirección de memoria de la memoria- se conoce comúnmente como dirección física. El conjunto de todas las direcciones físicas que corresponden a las direcciones lógicas se conoce como espacio de direcciones físicas.
  2. El tiempo de compilación y métodos de unión de dirección-tiempo de carga generan direcciones lógicas y físicas idénticas. Sin embargo, en el esquema de dirección de unión en tiempo de ejecución, los espacios lógico y físico de direcciones diferentes.
  3. El programa de usuario nunca ve las direcciones físicas. El programa crea un puntero a una dirección lógica, digamos 346, lo almacena en la memoria, manipularlo, lo compara con otra lógica direcciones- todos como el número 346. Sólo cuando una dirección lógica se utiliza como dirección de memoria, se volvió a poner en relación con el registro base / reubicación. El dispositivo de hardware mapeo de memoria llamada la unidad de gestión de memoria- (MMU) convierte las direcciones lógicas en direcciones físicas.
  4. direcciones lógicas van de 0 a máx. programa de usuario que genera dirección lógica piensa que el proceso se ejecuta en lugares 0 a máx. direcciones lógicas se deben asignar a las direcciones físicas antes de ser utilizados. Las direcciones físicas se extienden de (R + 0) a (R + max) para un valor del registro de base / reubicación R.
  5. Ejemplo: introducir descripción de la imagen aquí Mapeo de lógica a las direcciones físicas utilizando la unidad de gestión de memoria (MMU) y reubicación / registro de la base El valor en el registro de reubicación / base se añade a cada dirección lógica generada por un proceso de usuario, en el momento que se envía a la memoria, para generar la dirección física correspondiente. En la figura anterior, el valor de base / reubicación es 14000, entonces un intento por el usuario para acceder a la ubicación se asigna 346 a 14346.

Lógico Espacio de direcciones Vs física

Una dirección generada por la CPU es arbitrado comúnmente como lógico de direcciones, mientras que la dirección de vista por la unidad de memoria, que es uno cargado en el registro de dirección de memoria de la memoria que comúnmente se arbitrado como el tiempo de compilación address.The Física y carga dirección de tiempo de unión genera el addresses.However lógica y física idénticas, la dirección de tiempo de ejecución resultados esquema de unión en diferentes direcciones lógicas y físicas.

El conjunto de todas las direcciones lógicas generadas por un programa se conoce como Logical espacio de direcciones, mientras que el conjunto de todas las direcciones físicas correspondientes a estas direcciones lógicas es Dirección física Space.Now, la asignación de tiempo de ejecución de dirección virtual a la dirección física es realizado por un dispositivo de hardware conocido como memoria de Gestión Unit.Here en el caso de la cartografía del registro base se conoce como la reubicación valor registrarse.Las en el registro de relocalización se añade a la dirección generada por un proceso de usuario en el momento en que se envía a la memoria de .let entienden esta situación con la ayuda de ejemplo: Si el registro base contiene el valor 1000, a continuación, un intento por parte del usuario de ubicación de la dirección 0 se trasladó de forma dinámica a la localización 1000, un acceso a la ubicación 346 se asigna a la ubicación 1346

El programa de usuario nunca ve el espacio de direcciones físicas reales, que siempre se ocupa de los addresses.As lógicas que tenemos dos tipos diferentes de direcciones de direcciones lógicas en el rango (0 a máximo) y las direcciones físicas en el rango (R a R + max), donde R es el valor de la reubicación de usuario registrarse.Las genera sólo las direcciones lógicas y piensa que se ejecuta el proceso en lugar de 0 a max.As está claro a partir del texto anterior que los suministros de programa de usuario sólo direcciones lógicas, estas direcciones lógicas debe ser asignada a la dirección física antes de ser utilizados.

Una dirección lógica es una referencia a la posición de memoria independiente de la asignación actual de los datos a la memoria. Una dirección física o dirección absoluta es una ubicación real en la memoria principal.

Es en el capítulo 7.2 de Stallings.

A lo mejor de mi memoria, una dirección física es una explícita, juego de dirección de piedra en memoria, mientras que una dirección lógica se compone de un puntero base y compensado.

La razón es la que ha especificado básicamente. Permite no sólo la segmentación de los programas y procesos en hilos y de datos, sino también para la carga dinámica de tales programas, y la provisión para por lo menos pseudo-paralelismo, sin ningún entrelazado real de instrucciones en la memoria que necesitan tener lugar.

sobre Lógico Dirección vs física en el sistema operativo, lo que explica claramente acerca de esto.

Lógico Dirección es generado por la CPU mientras que un programa se está ejecutando. La dirección lógica es de direcciones virtuales, ya que no existe físicamente por lo que también se conoce como dirección virtual. Esta dirección se utiliza como referencia para acceder a la ubicación física de memoria de la CPU. El espacio de direcciones lógicas término se utiliza para el conjunto de todas las direcciones lógicas generadas por la perspectiva de los programas. El dispositivo de hardware llamado Unidad de administración de memoria se utiliza para la asignación de direcciones lógicas a su dirección física correspondiente.

Dirección física identifica una ubicación física de los datos requeridos en una memoria. El usuario se ocupa nunca directamente con la dirección física, pero puede acceder por su dirección lógica correspondiente. El programa de usuario genera la dirección lógica y piensa que el programa se está ejecutando en esta dirección lógica, pero el programa necesita memoria física para su ejecución por lo tanto, la dirección lógica debe ser asignado a la dirección física bu MMU antes de ser utilizados. El término dirección física espacial se utiliza para todas las direcciones físicas correspondientes a las direcciones lógicas en un espacio de direcciones lógicas.

lógico y físico Dirección comparación

Fuente: www.geeksforgeeks.org

Una dirección lógica es la dirección en la que un elemento (célula de memoria, elemento de almacenamiento, host de red) parece residir desde la perspectiva de un programa de aplicación de ejecución.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top