El Mar 07 Nov 2000 20:02, escribiste:De la memoria virtuál.> 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?
En este caso se arma un despelote.
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 quejasPasámelo a un metalenguaje más técnico, que yo sepa el gallo pisa a la gallina.
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...
--
SaludosJulio 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
