Julio Cesar Gazquez wrote:
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?

De la memoria virtuál.
 
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
En este caso se arma un despelote.
), 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...
 
Pasámelo a un metalenguaje más técnico, que yo sepa el gallo pisa a la gallina.
 
--
Saludos

Julio César Gázquez

-- 
Dr. Horacio Castellini, Dpto de F'isica, Facultad de Ingenier'ia, 
Ciencias Exactas y Agrimensura, Pellegrini 250, 2000 Rosario
Argentina, Usuario Linux Registrado #53602
Correo-e:[EMAIL PROTECTED] ICQ: 52244442
 


Responder a