En task_struct, podemos encontrar están:Archivos de un proceso, la relación entre los archivos en mm_struct y files_struct?
struct mm_struct *mm, *active_mm;
struct files_struct *files;
files_struct contiene punteros a un máximo de 256 estructuras de datos de archivos, cada uno describiendo un archivo utilizado por este proceso.
struct file * fd_array[NR_OPEN_DEFAULT];
mm_struct contiene un vm_area_struct.
struct vm_area_struct * mmap; /* list of VMAs */
Y en vm_area_struct, podemos encontrar:
struct file * vm_file; /* File we map to (can be NULL). */
Así que mi pregunta son:
¿cuál es la relación entre los archivos en fd_array y la vm_file?
¿Todos los archivos que se muestran en fd_array también se mapearán en vm_area_struct de forma similar a como se muestra en la imagen? O bien, ¿se mostrarán todos los archivos mapeados en vm_area_struct en fd_array?
Gracias,
a busy cat http://static.duartes.org/img/blogPosts/memoryDescriptorAndMemoryAreas.png