task_struct में, हम देखते हैं पा सकते हैं:एक प्रक्रिया की फाइलें, mm_struct और files_struct में फ़ाइलों के बीच संबंध?
struct mm_struct *mm, *active_mm;
struct files_struct *files;
files_struct 256 फ़ाइल डेटा संरचनाओं अप करने के लिए, हर एक एक फ़ाइल का वर्णन इस प्रक्रिया के द्वारा इस्तेमाल किया जा रहा संकेत दिए गए हैं।
struct file * fd_array[NR_OPEN_DEFAULT];
mm_struct में vm_area_struct शामिल है।
struct vm_area_struct * mmap; /* list of VMAs */
और vm_area_struct में, हम पा सकते हैं:
struct file * vm_file; /* File we map to (can be NULL). */
तो मेरे सवाल कर रहे हैं:
fd_array में फ़ाइलों और vm_file के बीच संबंध क्या है?
क्या fd_array में दिखाए गए सभी फाइलों को भी vm_area_struct में चित्र में दिखाए गए तरीके से मैप किया जाएगा? या, vm_area_struct में मैप की गई सभी फ़ाइलें fd_array में दिखाई देंगी?
धन्यवाद,
a busy cat http://static.duartes.org/img/blogPosts/memoryDescriptorAndMemoryAreas.png