המצגת נטענת. אנא המתן

המצגת נטענת. אנא המתן

מבנה כללי של היררכיית הקבצים עבור המסלול /A/B.txt

מצגות קשורות


מצגת בנושא: "מבנה כללי של היררכיית הקבצים עבור המסלול /A/B.txt"— תמליל מצגת:

1 מבנה כללי של היררכיית הקבצים עבור המסלול /A/B.txt
Process descriptor root dentry Inode object Inode object Inode object dir dir file d_inode fs.root data data data data data data “Hello” A B.txt

2 נניח שיצרנו קובץ /A/B.txt ואז יצרנו עוד Hardlink אליו בנתיב /C/BH.txt
Process descriptor root dentry Inode object Inode object Inode object dir dir file d_inode fs.root data data data data data data “Hello” A B.txt C Inode object dir data data BH.txt

3 נניח שיצרנו קובץ /A/B.txt ואז יצרנו עוד Softlink אליו בנתיב /C/BS.txt
Process descriptor root dentry Inode object Inode object Inode object dir dir file d_inode fs.root data data data data data data “Hello” A B.txt C Inode object Inode object dir file data data data data “/A/B.txt” BS.txt

4 איך עוזרים לנו dentries ו-?dentry cache
נניח את היררכיית הספריות הנתונה, רוצים לגשת ל/E/E5. עבור כל צומת בנתיב לחיפוש, עוברים על כל הבנים בדיסק עד שמוצאים את הצומת הרצוי בנתיב ומייצרים עבורו dentry (וגם inode object מתאים). מכניסים את כל הdentries לdentry cache שהוא hash table ולכן מציאת dentry בו היא בO(1). עבור מציאת המסלול הרצוי לנו עברנו על כל הצמתים חוץ מהroot כלומר על 10 צמתים. / A B C D E Dentry cache E1 E2 E3 E4 E5 E->/ E5->E

5 איך עוזרים לנו dentries ו-?dentry cache
פעם הבאה שתהליך ירצה לפתוח את הקובץ הזה באותו מסלול, הוא ימצא את כל המסלול בdentry cache ולא יבצע אפילו גישה אחת לדיסק אלא סדר גודל של 3 גישות לזיכרון לdentry cache. כל אחת תמצא את הdentry המתאים בO(1). / A B C D E Dentry cache E1 E2 E3 E4 E5 E->/ E5->E

6 איך עוזרים לנו dentries ו-?dentry cache
אבל זה עוד לא הכל! מה אם היינו רוצים לגשת עכשיו ל/E/E4? היינו מוצאים את ה dentry של E בdentries cache וחוסכים את החיפוש עבורו בגלל הגישה הקודמת לE5! / A B C D E Dentry cache E1 E2 E3 E4 E5 E->/ E5->E E4->E

7 NTFS Superblock object
דוגמא ספציפית של ביצוע חיפוש במסלול נתון מצב מערכת הקבצים המתואר באיור: מערכת הקבצים הראשית היא ext3 בספריה /E/ הרכיבו מערכת קבצים NTFS הקובץ E1 הוא קישור סימבולי למסלול /E/E5 מצב dentry cache הוא כמתואר באיור (dentries קיימים מסומנים בריבוע אדום) כעת נראה את ביצוע החיפוש במסלול /E/E1. Ext3 Superblock object Ext3 mount point / A B C D E NTFS Superblock object NTFS mount point Softlink Dentry cache E1 E5 E->/ E5->E /E/E1

8 NTFS Superblock object
במהלך האלגוריתם משתמשים בשני שדות עיקריים: dentry – כתובת אובייקט ה-dentry של המדריך הנוכחי mnt – מצביע ל-superblock של מערכת הקבצים של המדריך הנוכחי dentry Ext3 Superblock object Ext3 mount point / mnt A B C D E NTFS Superblock object NTFS mount point Softlink Dentry cache E1 E5 E->/ E5->E /E/E1

9 NTFS Superblock object
מסתכלים על שם הקובץ הבא במסלול מחפשים את שם הקובץ במטמון dentry. אם לא מצאנו, נדרשת גישה לדיסק ויצירת dentry חדש. dentry Ext3 Superblock object Ext3 mount point / mnt A B C D E NTFS Superblock object NTFS mount point Softlink Dentry cache E1 E5 E5->E E->/ /E/E1 E

10 NTFS Superblock object
בודקים אם ה-dentry החדש מהווה נקודת הרכבה למערכת קבצים כלשהי. במידה וכן, נעדכן את mnt להצביע למערכת קבצים זו, ואת dentry להצביע למדריך הראשי שלה. Ext3 Superblock object Ext3 mount point / mnt dentry A B C D E NTFS Superblock object NTFS mount point Softlink Dentry cache E1 E5 E5->E E->/ /E/E1

11 NTFS Superblock object
מסתכלים על שם הקובץ הבא במסלול מחפשים את שם הקובץ במטמון dentry. אם לא מצאנו, נדרשת גישה לדיסק ויצירת dentry חדש. Ext3 Superblock object Ext3 mount point / dentry A B C D E NTFS Superblock object mnt NTFS mount point Softlink Dentry cache E1 E5 E5->E E->/ /E/E1 /E1 ?

12 NTFS Superblock object
מסתכלים על שם הקובץ הבא במסלול מחפשים את שם הקובץ במטמון dentry. אם לא מצאנו, נדרשת גישה לדיסק ויצירת dentry חדש. Ext3 Superblock object Ext3 mount point / dentry A B C D E NTFS Superblock object mnt NTFS mount point Softlink Dentry cache ניגשים לדיסק ומייצרים dentry חדש ומוסיפים אותו למטמון E1 E5 E5->E E->/ /E/E1 E1->E

13 NTFS Superblock object
מסתכלים על שם הקובץ הבא במסלול מחפשים את שם הקובץ במטמון dentry. אם לא מצאנו, נדרשת גישה לדיסק ויצירת dentry חדש. Ext3 Superblock object Ext3 mount point / A B C D E NTFS Superblock object mnt NTFS mount point Softlink Dentry cache E1 E5 E5->E dentry E->/ /E/E1 E1->E

14 NTFS Superblock object
בודקים האם ה-inode של ה-dentry החדש מייצג קישור סימבולי משתמשים בפונקציית החיפוש במסלול כדי למצוא את ה-dentry אליו מצביע הקישור הסימבולי (קריאה רקורסיבית). Ext3 Superblock object Ext3 mount point / A B C D E NTFS Superblock object mnt NTFS mount point Softlink Dentry cache E1 E5 E5->E dentry E->/ /E/E1 /E/E5 E1->E

15 NTFS Superblock object
בודקים האם ה-inode של ה-dentry החדש מייצג קישור סימבולי משתמשים בפונקציית החיפוש במסלול כדי למצוא את ה-dentry אליו מצביע הקישור הסימבולי (קריאה רקורסיבית). Ext3 Superblock object Ext3 mount point / A B C D E NTFS Superblock object mnt NTFS mount point Softlink Dentry cache E1 E5 E5->E dentry E->/ /E/E1 /E/E5 / E1->E

16 NTFS Superblock object
בודקים האם ה-inode של ה-dentry החדש מייצג קישור סימבולי משתמשים בפונקציית החיפוש במסלול כדי למצוא את ה-dentry אליו מצביע הקישור הסימבולי (קריאה רקורסיבית). dentry Ext3 Superblock object Ext3 mount point / mnt A B C D E NTFS Superblock object NTFS mount point Softlink Dentry cache E1 E5 E5->E E->/ /E/E1 /E/E5 E1->E

17 NTFS Superblock object
בודקים האם ה-inode של ה-dentry החדש מייצג קישור סימבולי משתמשים בפונקציית החיפוש במסלול כדי למצוא את ה-dentry אליו מצביע הקישור הסימבולי (קריאה רקורסיבית). Ext3 Superblock object Ext3 mount point / dentry A B C D E NTFS Superblock object mnt NTFS mount point Softlink Dentry cache E1 E5 E5->E E->/ /E/E1 /E/E5 E1->E

18 NTFS Superblock object
נמשיך עד שנגיע לשם הקובץ האחרון במסלול, וה-inode של ה-dentry האחרון הוא זה שחיפשנו. Ext3 Superblock object Ext3 mount point / A B C D E NTFS Superblock object mnt NTFS mount point Softlink Dentry cache E1 E5 dentry E5->E E->/ /E/E1 /E/E5 E1->E


הורד את "ppt "מבנה כללי של היררכיית הקבצים עבור המסלול /A/B.txt

מצגות קשורות


מודעות Google