Trong task_struct, chúng ta có thể tìm thấy ở đó là:Tệp của tiến trình, mối quan hệ giữa các tệp trong mm_struct và files_struct?
struct mm_struct *mm, *active_mm;
struct files_struct *files;
files_struct chứa con trỏ lên đến 256 cấu trúc tập tin dữ liệu, mỗi một mô tả một tập tin được sử dụng bởi quá trình này.
struct file * fd_array[NR_OPEN_DEFAULT];
mm_struct chứa vm_area_struct.
struct vm_area_struct * mmap; /* list of VMAs */
Và trong vm_area_struct, chúng ta có thể tìm thấy:
struct file * vm_file; /* File we map to (can be NULL). */
Vì vậy, câu hỏi của tôi là:
mối quan hệ giữa các tập tin trong fd_array và vm_file là gì?
Tất cả các tệp được hiển thị trong fd_array cũng sẽ được ánh xạ trong vm_area_struct theo cách tương tự như được hiển thị trong hình không? Hoặc, tất cả các tệp được ánh xạ trong vm_area_struct sẽ hiển thị trong fd_array không?
Cảm ơn,
a busy cat http://static.duartes.org/img/blogPosts/memoryDescriptorAndMemoryAreas.png