Download presentation
Presentation is loading. Please wait.
1
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 מערכת הקבצים מבוא : מטרות מערכת קבצים מנשק המשתמש : פעולות על קבצים, ארגון קבצים, הגנה תכונות של דיסקים. מימושים : בסיסיים וקצת על מימושים מתקדמים. אמינות מערכת הקבצים.
2
מערכות הפעלה ( אביב 2009) חגית עטיה ©2 מערכת קבצים קבצים מאפשרים שמירת מידע לטווח בינוני וארוך. למרות הפעלות חוזרות של תוכנית, איתחולים, ונפילות. מטרות : הפשטה מתכונות ספציפיות של ההתקן הפיזי גישה דומה לדיסק, CD-ROM, DVD, טייפ,... זמן ביצוע סביר. ארגון נוח של הנתונים. הפרדה בין משתמשים שונים ( protection ). הגנה ( security ).
3
מערכות הפעלה ( אביב 2009) חגית עטיה ©3 מבנה לוגי של מערכת קבצים אוסף של קבצים. קובץ הוא מידע עם תכונות שמנוהלות על - ידי המערכת. מכיל מספר בתים / שורות / רשומות בגודל קבוע / משתנה. קובץ יכול להיות מסוג מסוים חלק מהסוגים מזוהים על - ידי המערכת : מדריך, link, mount ... או על - ידי אפליקציות :.jpg,.html,.doc,.exe במקביל, ניתן להתייחס לתכולת הקובץ : בינארי או טקסט
4
מערכות הפעלה ( אביב 2009) חגית עטיה ©4 תכונות של קובץ (Attributes) תכונות מערכת שם תווים מוּתרים ? upper / lower case. גודל, בדרך - כלל בבתים מיקוּם. מידע על בעלות והגנה. תוויות זמן : יצירה, גישה אחרונה, שינוי אחרון. תכונות משתמש ב -HPFS ( מערכת הקבצים של OS/2) ניתן להצמיד לקובץ זוגות 〈 attribute_name,string 〉 ( מחרוזת באורך עד GB2).
5
מערכות הפעלה ( אביב 2009) חגית עטיה ©5 פעולות בסיסיות על קבצים יצירה / השמדה של קובץ : create: מקצה מקום לקובץ, ושומר את התכונות שלו. delete: משחרר את המקום שהוקצה לקובץ, וכן את התכונות שלו. קריאה / כתיבה : read: נותן שם קובץ, כמות מידע לקריאה וחוצץ זיכרון שבו יאוחסן המידע הנקרא ; מתחזק מצביע מיקום לקובץ. write: נותן שם קובץ ומידע לכתיבה ; מתחזק מצביע מיקום לקובץ. seek: הזזת מצביע המיקום.
6
מערכות הפעלה ( אביב 2009) חגית עטיה ©6 פעולות נוספות על קבצים open, close מאחזרות מידע על הקובץ, מאתחלות את מצביע המיקום לקובץ. משפרות את ביצועי המערכת. append, rename, copy, … ניתן לממשן בעזרת פקודות אחרות... נעילה. עדכון תכונות הקובץ
7
מערכות הפעלה ( אביב 2009) חגית עטיה ©7 אופני גישה לקובץ גישה סדרתית : ניגשים למידע בקובץ לפי סדר. בד " כ מהירה יותר. לא צריך לציין מהיכן לקרוא ( ניתן להתבסס על מצביע המיקום ). מאפשר למערכת להביא נתונים מראש. גישה ישירה / אקראית. לפי מיקום או לפי מפתח. לפעמים ניתן לזהות תבניות גישה. כמובן, ניתן לממש פה גם גישה סדרתית.
8
מערכות הפעלה ( אביב 2009) חגית עטיה ©8 ארגון מערכת קבצים מספר הקבצים מגיע לאלפים ישנן מערכות שמכילות מיליארדי קבצים ! מחיצות (partitions), בד " כ לפי התקנים (devices). מדריכים (directories), טבלאות הקבצים בתוך המחיצה.
9
מערכות הפעלה ( אביב 2009) חגית עטיה ©9 מדריכים המדריך הוא מבנה נתונים מופשט, אשר שומר את התכונות של כל קובץ הנמצא בו. תומך בפעולות הבאות : מציאת קובץ ( לפי שם ) יצירת כניסה מחיקת כניסה קבלת רשימת הקבצים בתוך המדריך החלפת שם של קובץ...
10
מערכות הפעלה ( אביב 2009) חגית עטיה ©10 מבנה מדריכים : עץ מכוון עץ בעל מספר רמות שרירותי (MS-DOS) מושג המדריך נוכחי (current directory). קובץ מזוהה ע " י מסלול מהשורש ( מוחלט ) או מהמדריך הנוכחי ( יחסי ). d1d1 d2d2 d3d3 d4d4 d5d5 d 1-1 d 1-2 f1f1 f2f2 f3f3 d 2-1 d 2-2 f1f1 d 1-1 d 1-2 f1f1 f2f2
11
מערכות הפעלה ( אביב 2009) חגית עטיה ©11 מבנה מדריכים : גרף אציקלי בגרף אציקלי, מאפשרים למספר כניסות במדריכים ( אולי שונים ) להצביע לאותם העצמים (Unix) למה לא לאפשר מעגלים בגרף ?
12
מערכות הפעלה ( אביב 2009) חגית עטיה ©12 סוגי קישורים קישור רך / סימבולי (soft / symbolic link): כניסה שמכילה את המסלול לקובץ. קישור חזק (hard link): לא ניתן להבדיל מהכניסה המקורית מחיקת קובץ : קישור סימבולי אינו מונע מחיקת הקובץ משאיר מצביע תלוי באוויר קישור חזק מחייב מחיקת כל הכניסות.
13
מערכות הפעלה ( אביב 2009) חגית עטיה ©13 מבנה מדריכים ב -Unix שם ( מסלול מלא ) אינו תכונה של קובץ... לאותו קובץ ניתן להגיע דרך מסלולים שונים מחזיקים use-counter שמאפשר לדעת מתי למחוק קובץ. תהליך יכול ליצור קובץ, לפתוח אותו, למחוק את הכניסה ( היחידה ) שלו מהמדריך ולהמשיך לעבוד עליו לתהליך מבנה נתונים של קבצים פתוחים. בד " כ כולל מידע על מיקום נוכחי בקובץ שאינו משותף עם פתיחות אחרות של אותו קובץ, כולל של אותו תהליך.
14
מערכות הפעלה ( אביב 2009) חגית עטיה ©14 הגנה רוצים למנוע ממשתמשים לבצע פעולות ספציפיות על הקובץ ( בשוגג או במזיד ) למשל קריאה, כתיבה, ביצוע, שינוי שם,... רשימות גישה (access list). לכל קובץ, נרשום למי מותר לבצע איזה פעולה. הרשימות עלולות להפוך לארוכות מדי וקשות לתחזוקה. פיתרון : נקבץ משתמשים למחלקות שונות : owner, group, universe … מספר מוגבל של פעולות : read, write, execute
15
מערכות הפעלה ( אביב 2009) חגית עטיה ©15 נעילת קבצים advisory locking תהליך צריך לנעול קובץ בצורה מפורשת ( כמו קטע קריטי ) אפשר לנעול קובץ שלם או חלקים מהקובץ mandatory locking אם הקובץ נעול – כל תהליך שמבצע read, write, open יינעל, גם אם לא ביצע נעילה מפורשת אפשר להפריד לפי קריאות וכתיבות (reader/writer lock) ב Linux יש גם advisory locking וגם mandatory locking leases אם תהליך שנעל את הקובץ לא משחרר אותו ולא מאריך את ה lease תוך פרק זמן נתון, המנעול משתחרר שימושי אם התהליך שנעל את הקובץ נפל
16
מערכות הפעלה ( אביב 2009) חגית עטיה ©16 היררכית האחסון אמצעי גיבוי, DVD, CD DISK זיכרון ראשי / פיזי DRAM מטמון רגיסטרים גדול יותר ( וזול יותר ) מהיר יותר נדיף לא - נדיף Persistent Volatile
17
מערכות הפעלה ( אביב 2009) חגית עטיה ©17 זיכרון משני בניגוד לזיכרון הראשי, אינו מאפשר ביצוע ישיר של פקודות או גישה לבתים. שומר על מידע לטווח ארוך ( לא - נדיף, non-volatile ). גדול, זול, ואיטי יותר מזיכרון ראשי. נתרכז בדיסקים שהגישה אליהם באמצעות כתיבה או קריאה של רצפי מידע גדולים. גישה סידרתית מהירה. קיבולת גבוהה.
18
מערכות הפעלה ( אביב 2009) חגית עטיה ©18 מבנה הדיסק head sector track cylinder מבנה כתובת (CHS) Cylinder, Head, Sector או (LBA) Logical Block Array plate
19
מערכות הפעלה ( אביב 2009) חגית עטיה ©19 שימו לב ש זמן ממוצע לגישה לסקטור אקראי זמן העברה פנימי של סקטור 4KB דוגמא : דיסק של שרת (seagate) עלות - 1000$ r סיבובים לדקה l זמן ממוצע מהגעה ל - track עד לסקטור tr קצב העברת נתונים s זמן ממוצע להזזת זרוע מ -track ל -track
20
מערכות הפעלה ( אביב 2009) חגית עטיה ©20 דוגמא : דיסק של desktop (IBM) עלות - 100$
21
מערכות הפעלה ( אביב 2009) חגית עטיה ©21 מבנה מערכת קבצים טיפוסית Application File System API System-call Interface Logical File System logical file system קוד כללי, בלתי תלוי במערכת קבצים ספציפית קוד שמקבל מסלול, ומחזיר את קובץ היעד ניהול מידע כללי עבור קבצים פתוחים, כמו מיקום בקובץ... פעולות על מדריכים. הגנה ובטיחות.
22
מערכות הפעלה ( אביב 2009) חגית עטיה ©22 מבנה מערכת קבצים טיפוסית Application File System API System-call Interface Logical File System Virtual File System Interface logical file system virtual file system interface מנשק אחיד לכל מערכות הקבצים הספציפיות. למשל vfs_read, vfs_write, vfs_seek.
23
מערכות הפעלה ( אביב 2009) חגית עטיה ©23 מבנה מערכת קבצים טיפוסית Application File System API System-call Interface Logical File System Virtual File System Interface Physical File System 1 Physical File System 4 llogical file system vvirtual file system interface pphysical file system מימוש מנשק ה -VFS עבור מערכת קבצים ספציפית ללמשל, מעל דיסק, דיסקט, RAM, CD, רשת וכו ‘ מתכנן איך לפזר את הבלוקים. בהמשך, נתרכז בו.
24
מערכות הפעלה ( אביב 2009) חגית עטיה ©24 מבנה מערכת קבצים טיפוסית Application File System API System-call Interface Logical File System Virtual File System Interface Physical File System 1 Physical File System 4 Device Driver IBM Device Driver Seagate logical file system virtual file system interface physical file system device drivers קוד שיודע איך לפנות להתקן ספציפי דיסקים ( לפי מודל ), DVD, וכדומה. מתחיל את הפעולה הפיזית, ומטפל בסיומה. מתזמן את הגישות, על מנת לשפר ביצועים.
25
מערכות הפעלה ( אביב 2009) חגית עטיה ©25 הערכת מימוש מערכת קבצים : מדדים מהירות גישה סדרתית מהירות גישה אקראית ( ישירה ) שיברור פנימי וחיצוני יכולת להגדיל קובץ התאוששות משיבושי מידע
26
מערכות הפעלה ( אביב 2009) חגית עטיה ©26 מיפוי קבצים : הקצאה רציפה בבלוקים באורך קבוע כפולה של גודל סקטור ( נע בין 512B – 4KB) המשתמש מצהיר על גודל הקובץ עם יצירתו. מחפשים בלוקים רצופים שיכולים להכיל את הקובץ. הכניסה במדריך מצביעה לבלוק הראשון בקובץ. file1 file2 file35 6 6
27
מערכות הפעלה ( אביב 2009) חגית עטיה ©27 מיפוי קבצים : הקצאה רציפה גישה מהירה ( סדרתית וישירה ) שיברור פנימי וחיצוני קשה להגדיל קובץ file1 file2 file35 6 6
28
מערכות הפעלה ( אביב 2009) חגית עטיה ©28 מיפוי קבצים : הקצאה משורשרת כל בלוק מצביע לבלוק הבא. הכניסה במדריך מצביעה לבלוק הראשון בקובץ file1
29
מערכות הפעלה ( אביב 2009) חגית עטיה ©29 מיפוי קבצים : הקצאה משורשרת קל להגדיל קובץ. מעט שיברור חיצוני. גישה איטית, בעיקר לגישה ישירה. שימוש בבלוקים גדולים מקטין את הבעיה, אך מגדיל שיברור פנימי. שיבוש מצביע בבלוק גורם לאיבוד חלקים של קובץ. file1
30
מערכות הפעלה ( אביב 2009) חגית עטיה ©30 הקצאה משורשרת : מצב הדיסק מדריך קובץהתחלהסוף foo 814
31
מערכות הפעלה ( אביב 2009) חגית עטיה ©31 File Allocation Table (FAT) החזקת שרשרת המצביעים בנפרד. file1
32
מערכות הפעלה ( אביב 2009) חגית עטיה ©32 File Allocation Table (FAT) החזקת שרשרת המצביעים בנפרד. בעצם, טבלה שמתארת את התוכן של הדיסק כולו. מצביע הקובץ ( במדריך ) מראה על הכניסה הראשונה. MS-DOS. file1
33
מערכות הפעלה ( אביב 2009) חגית עטיה ©33 מגבלות של FAT הטבלה נמצאת במקום נוח בדיסק / זיכרון ראשי, ומכילה 2 16 כניסות ( אינדקס של 16 ביטים ) 2 32 בגרסת FAT-32 כאשר הדיסקים גדלים, גודל החתיכות גדל. דיסק של 6.4GB היה מחולק לחתיכות של 100KB ( אך במציאות משתמשים ב -FAT-32 מעל 2GB) ïמגדיל את השיברור הפנימי ( בזבוז של 10-20% הוא שכיח ). כל קובץ דורש לפחות חתיכה אחת. ïלכל היותר 64K קבצים ב -FAT, 4G ב -FAT-32. טבלת ה FAT מהווה משאב קריטי. צוואר בקבוק בגישה. ïלאובדן הטבלה או לפגיעה בה יש משמעות קטסטרופאלית... ולכן היא מוחזקת בשני עותקים
34
מערכות הפעלה ( אביב 2009) חגית עטיה ©34 מיפוי קבצים : אינדקס המשתמש מצהיר על גודל קובץ מקסימלי. המצביעים לבלוקים מרוכזים בשטח רצוף משפר במקצת את זמן הגישה הישירה לעומת הקצאה משורשרת. צריך להצהיר מראש על גודל קובץ file1
35
מערכות הפעלה ( אביב 2009) חגית עטיה ©35 אינדקס : מצב הדיסק מדריך קובץ בלוק אינדקס foo 15
36
מערכות הפעלה ( אביב 2009) חגית עטיה ©36 מיפוי קבצים : אינדקס מרובה רמות mode owners timestamps #blocks … inodedirectory file1 file2 file3 file4 direct blocks single indirection double indirection triple indirection data
37
מערכות הפעלה ( אביב 2009) חגית עטיה ©37 מבנה מערכת הקבצים ב Unix 4.1 inodes (index nodes) אינם מדריכים. מדריכים הינם קבצים רגילים אשר ממפים שמות קבצים ל inodes. לאחר שימוש ממושך במערכת הקבצים : בלוקים שונים של אותו קובץ נמצאים רחוק זה מזה. inodes ובלוקי אינדקס נמצאים רחוק מבלוקים של מידע.
38
מערכות הפעלה ( אביב 2009) חגית עטיה ©38 Unix 4.2 Fast File System (FFS) קבוצות של צילינדרים קרובים ( על הדיסק ). בתוך אותה קבוצת צילינדרים משתדלים לשים : בלוקים של אותו קובץ בלוקים של אותו מדריך ( כולל inodes). בתוך קבוצות שונות שמים : בלוקים של קבצים ממדריכים שונים. שומרים על ~10% מקום פנוי בכל קבוצת צילינדרים.
39
מערכות הפעלה ( אביב 2009) חגית עטיה ©39 ניהול בלוקים פנויים : bitmap מערך ובו סיבית לכל בלוק. 0 – הבלוק תפוס ; 1 הבלוק פנוי. מאוחסן במקום קבוע בדיסק. עותק בזיכרון הראשי, ליעילות. עם בלוקים של 4KB, נזדקק לבלוק של ביטים עבור 8*4096 בלוקים. קל לזהות רצף של בלוקים פנויים. 0 1 0 1 1 0 1 1 1 0 1 1
40
מערכות הפעלה ( אביב 2009) חגית עטיה ©40 ניהול בלוקים פנויים : רשימה מקושרת מציאת בלוק פנוי בודד מהירה. הקצאה של מספר בלוקים לאותו קובץ : במקומות המרוחקים זה מזה. מציאת הבלוקים מחייבת תזוזות של הדיסק. מבנה הנתונים נהרס אם בלוק באמצע הרשימה השתבש. ב FAT, הבלוקים הפנויים מנוהלים כקובץ אחד.
41
מערכות הפעלה ( אביב 2009) חגית עטיה ©41 ניהול בלוקים פנויים : קיבּוּץ שימוש ברשימה מקושרת של אלמנטים : grouping - כל אלמנט מכיל טבלה של מצביעים לבלוקים פנויים רצופים ומצביע לאלמנט הבא counting – כל אלמנט מכיל מצביע לבלוק הפנוי הראשון מקבוצת בלוקים פנויים רצופים, מספר הבלוקים בקבוצה ומצביע לאלמנט הבא ניתן למצוא בצורה יעילה מספר גדול של בלוקים פנויים ורציפים.
42
מערכות הפעלה ( אביב 2009) חגית עטיה ©42 אמינות המידע בדיסק מתחלק ל - user data: נתוני המשתמש ( בתוך הקבצים ). metadata: מידע על ארגון הקבצים. בלוקים של אינדקס, inodes... איבוד / שיבוש metadata עלול לגרום לאיבוד user data רב. נפילת חשמל באמצע כתיבה עלולה לשבש את הסקטור שכעת נכתב. מתי כתיבות עוברות מהזיכרון הראשי לדיסק ? write-through – כל כתיבה עוברת מיידית לדיסק. write-back – הדיסק מעודכן באופן אסינכרוני, אולי לא לפי סדר.
43
מערכות הפעלה ( אביב 2009) חגית עטיה ©43 אמינות נתוני המשתמש ב -Unix במערכות Unix משתמשים במדיניות write-back נתוני המשתמש נכתבים באופן מחזורי לדיסק. תואם את סמנטיקת POSIX. פקודות fsync, sync מאלצות לכתוב את הבלוקים המלוכלכים לדיסק.
44
מערכות הפעלה ( אביב 2009) חגית עטיה ©44 אמינות ה -metadata משתמשים במדיניות write-through עדכונים נכתבים מידית לדיסק נתונים מסוימים נשמרים במספר עותקים למשל, שורש ה -file system כאשר מערכת הקבצים עולה אחרי נפילה, מתקנים את מבני הנתונים. במערכות קבצים מסוימות, דורש מעבר על כל הדיסק ScanDisk, fsck (file system check)
45
מערכות הפעלה ( אביב 2009) חגית עטיה ©45 רישום (logging) שיטה יעילה לתחזוקת ה -metadata מוכרת גם כ -journaling רושמים ב -log סדרתי את העדכונים לפני שהם נכתבים לדיסק ( write-ahead logging ). הבלוקים שהשתנו נכתבים לדיסק לאחר - מכן. אולי לא לפי הסדר. אפשר לקבץ מספר שינויים ולכתוב אותם בכתיבה אחת. ניתן למחוק מה -log עדכונים שכבר נכתבו לדיסק.
46
מערכות הפעלה ( אביב 2009) חגית עטיה ©46 התאוששות עם log לאחר נפילה, עוברים על כל הכניסות ב -log בצע את הפעולה. ביצוע נוסף של פקודה שהתבצעה במלואה או חלקית נותן תוצאה שקולה לביצוע הפעולה המקורית (idempotent). אם הכניסה האחרונה ב -log אינה שלמה, מתעלמים ממנה.
47
מערכות הפעלה ( אביב 2009) חגית עטיה ©47 יתרונות וחסרונות של logging כתיבה לדיסק באופן אסינכרוני התאוששות יעילה. תלויה במספר השינויים שלא נכתבו לדיסק, ולא בגודל מערכת הקבצים. דורש כתיבות נוספות. בערך מכפיל את מספר הכתיבות.
48
מערכות הפעלה ( אביב 2009) חגית עטיה ©48 שיטות נוספות לשיפור ביצועים ניתן לשפר ביצועים ע " י Caching שמירת חלק מהבלוקים הכי שימושיים בזכרון הראשי במטמון מיוחד המנוהל ע " י מ " ה - disk cache שמירת metadata בזכרון הראשי (read-ahead) Prefetching Reducing disk arm motion לשים בלוקים שניגשים אליהם ביחד אחד ליד השני בדיסק
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.