El Mar 07 Nov 2000 20:02, escribiste:

> en memoria virtual asociada con el proceso. Un proceso no usa todo el
> c�digo guardado
> en su memoria virtual, entonces linux usa le mecanismo de "p�ginas por
> demanda", que solo
> copia la parte solicitada por el proceso de la memoria virtual a la f�sica.


>  Es decir cuando un
> proceso intenta acceder a m�s c�digo o a m�s datos , el hard genera un
> "page fault" y
> el SO debe arreglar las cosas.

Pero cuando ocurre un page fault sobre una p�gina de c�digo, de donde la 
levanta? Del archivo original, o del swap?
La cuesti�n se originaba en que es posible alterar un binario mientras corre 
(digamos, hago un make install de un programa que est� corriendo), sin quejas 
por parte del sistema, y sin aparentes problemas de corrupci�n del proceso, 
lo que da a pensar de que no lo toma del archivo original. Por otra parte, un 
binario grande, de varios MB, dan a pensar que el volcado al swap cuando se 
arranca el primer proceso de ese binario no es un proceso muy eficiente...
M�s a�n, todo �sto se complica si tenemos en cuenta que el c�digo deber�a 
compartirse, a�n si dos procesos surgen en forma independiente del mismo 
binario (no por fork).
Si "piso" el archivo, se genera un archivo nuevo, estructurado en un inodo 
distinto, mientras se descuelga el original, que sigue siendo usado por los 
procesos que se crearon a partir de �l...

-- 
Saludos

Julio C�sar G�zquez

Responder a