In task_struct, troviamo ci sono:I file di un processo, la relazione tra i file in mm_struct e files_struct?
struct mm_struct *mm, *active_mm;
struct files_struct *files;
files_struct contiene i puntatori a un massimo di 256 strutture dati del file, ognuna descrive un file utilizzato da questo processo.
struct file * fd_array[NR_OPEN_DEFAULT];
mm_struct contiene una vm_area_struct.
struct vm_area_struct * mmap; /* list of VMAs */
E in vm_area_struct, possiamo trovare:
struct file * vm_file; /* File we map to (can be NULL). */
Quindi la mia domanda sono:
qual è il rapporto tra i file nella fd_array e vm_file?
Tutti i file visualizzati in fd_array verranno mappati anche in vm_area_struct in un modo simile a quello mostrato nell'immagine? Oppure, tutti i file mappati nel vm_area_struct verranno visualizzati in fd_array?
Grazie,
a busy cat http://static.duartes.org/img/blogPosts/memoryDescriptorAndMemoryAreas.png