Practico 7 - Ej 7

Practico 7 - Ej 7

de Romina Julieta Parada Venossa -
Número de respuestas: 6

¿Qué es el espacio virtual de direccionamiento de un proceso (virtual address space)? ¿Este espacio es compartido con otros procesos? ¿Los hilos (threads) que pertenecen a un mismo proceso tienen diferente espacio virtual?

Me podrían responder las últimas dos preguntas, gracias. 

En respuesta a Romina Julieta Parada Venossa

Re: Practico 7 - Ej 7

de Alexis Alfonso -

Hola, por lo que tengo entendido (y según la pag. 4 del teo 17) el espacio de direccionamiento virtual es único para cada proceso.

Lo que si puede compartirse entre procesos son marcos de la ram porque, por ejemplo, dos procesos podrían tener en sus tablas de página una referencia a la misma dirección física.

Sobre los threads creo que la respuesta también es NO, aunque cada uno tenga su propio stack y set de registros.


Si todo esto lo puede confirmar alguien más, mejor.


Saludos

En respuesta a Alexis Alfonso

Re: Practico 7 - Ej 7

de Leonardo Alberro Zimmermann -

Hola, las respuestas a las dos preguntas de la compañera están bien. 

1) Cada proceso tiene un espacio de direccionamiento virtual. (Es único por proceso)

2) Todos los threads usan el mismo espacio de memoria virtual. (Por 1)

En respuesta a Leonardo Alberro Zimmermann

Re: Practico 7 - Ej 7

de Alejandro Gabriel Clara Mariño -
Buenas, qué tal? Se me generó un poco de confusión. Según sus respuestas, el VAS es único por proceso. Sin embargo, en la página 23 de las mismas diapositivas que cita el compañero, dice:

"Los procesos se componen de una parte de códigos y datos privados y de otra que puede ser compartida.
La posibilidad de dividir el espacio de direccionamiento en páginas, permite a los procesos compartir de forma eficiente las páginas comunes en memoria.
Ejemplo:
  • La sección de código de un mismo proceso.
  • El código de una biblioteca dinámica.
  • Memoria compartida.
Esto permite un uso más eficiente de la memoria."

Qué es lo que se comparte entonces? Supongo que se refiere al espacio de direccionamiento físico, pero pregunto para confirmar.

Gracias!
En respuesta a Alejandro Gabriel Clara Mariño

Re: Practico 7 - Ej 7

de Alexis Alfonso -

Creo que tu suposición final es cierta. 

La confusión me parece que puede venir del hecho que a veces usan el término "página" para referirse a un marco de memoria real, ya que al principio del tema se dice que la memoria física se divide en marcos, y las páginas son las divisiones de la memoria virtual que referencian a esos marcos.

En respuesta a Alejandro Gabriel Clara Mariño

Re: Practico 7 - Ej 7

de Federico Rivero -

Estimado,

Sí, cuando se habla de ´compartir memoria´, siempre nos referimos a la memoria fisica y su correspondiente espacio de direccionamiento físico.

Todos los procesos pueden generar direcciones virtuales desde 0x000...000 a 0xFFF...FFF, pero por defecto si uno crea dos procesos diferentes, y ambos generan la misma dirección virtual (por ejemplo 0x000...000) estos procesos van a acceder a direcciones físicas distintas. Luego, los procesos, mediante system calls, pueden definir secciones de su espacio virtual como direcciones compartidas, y a partir de ahí,esas direcciones virtuales de los procesos van a acceder a la misma dirección física de memoria.

Saludos,

       Federico