שאלת מבחן במערכות הפעלה - האוניברסיטה הפתוחה 2015 - מערכת קבצים

שרטטו את ה-layout של מערכת הקבצים ext2. כלומר, כיצד היא מחלקת את הבלוקים בדיסק ל-groups, מה ממוקם בכל group והיכן?
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 82-alt2015סמסטר א
מערכת קבציםi-nodeדיסק
מערכת הקבצים ext2 מחלקת את הדיסק ליחידות לוגיות הנקראות קבוצות בלוקים (block groups). חשבו אילו מבני נתונים דרושים לניהול כל קבוצה כזו בנפרד, ואילו דרושים לניהול מערכת הקבצים כולה.
מערכת הקבצים ext2, בדומה למערכות קבצים רבות ביוניקס, מחלקת את המחיצה בדיסק למספר קבוצות בלוקים (Block Groups). מטרת החלוקה הזו היא שיפור ביצועים על ידי שמירה על לוקליות: קבצים ומידע המטה-דאטה (metadata) שלהם נשמרים קרוב פיזית זה לזה על הדיסק, כדי למזער את זמני החיפוש (seek time) של ראש הקריאה/כתיבה.

כל קבוצת בלוקים (Block Group) בנויה במבנה זהה, והיא מכילה את המרכיבים הבאים לפי הסדר:

1. בלוק-על (Super Block): מכיל מידע קריטי על כלל מערכת הקבצים, כגון מספר הבלוקים הכולל, מספר ה-i-nodes הכולל, גודל בלוק, ועוד. עותק של הבלוק-על נשמר בכל קבוצת בלוקים לצורכי גיבוי ושרידות, אך מערכת ההפעלה משתמשת בעיקר בעותק שנמצא בקבוצה הראשונה (Group 0).

2. מתארי קבוצות (Group Descriptors): זוהי טבלה המכילה מידע על כל אחת מקבוצות הבלוקים במערכת הקבצים. כל רשומה בטבלה (Group Descriptor) מתארת קבוצת בלוקים אחת ומכילה מצביעים למיקום מפת הסיביות של הבלוקים, מפת הסיביות של ה-i-nodes, וטבלת ה-i-nodes של אותה קבוצה, וכן מונה של בלוקים ו-i-nodes פנויים.

3. מפת סיביות של בלוקים (Block Bitmap): מבנה נתונים המשתמש בסיבית אחת כדי לייצג כל בלוק נתונים בתוך הקבוצה הנוכחית. הסיבית מציינת אם הבלוק פנוי או תפוס. זה מאפשר למערכת הקבצים למצוא במהירות בלוק פנוי להקצאה.

4. מפת סיביות של i-nodes (i-node Bitmap): בדומה למפת הבלוקים, מבנה זה משתמש בסיבית אחת כדי לייצג כל i-node בטבלת ה-i-nodes של הקבוצה הנוכחית. הסיבית מציינת אם ה-i-node פנוי או בשימוש.

5. טבלת i-nodes (i-node Table): אזור המכיל את כל מבני ה-i-node עבור הקבוצה הנוכחית. כל i-node מכיל את המטה-דאטה של קובץ או תיקיה, כגון הרשאות, בעלים, גודל, זמני גישה ושינוי, ומצביעים לבלוקי הנתונים המכילים את התוכן עצמו.

6. בלוקי נתונים (Data Blocks): זהו החלק הגדול ביותר בכל קבוצת בלוקים, והוא מכיל את תוכן הקבצים והתיקיות.

לסיכום, השרטוט הלוגי של קבוצת בלוקים אחת נראה כך:

[ Super Block (עותק) | Group Descriptors (עותק) | Block Bitmap | i-node Bitmap | i-node Table | Data Blocks ... ]

קבוצת הבלוקים הראשונה (Group 0) היא ייחודית בכך שהיא מכילה את העותק הראשי של ה-Super Block ושל טבלת ה-Group Descriptors שמערכת ההפעלה טוענת בעת mount.