מערכות הפעלה ( אביב 2007) חגית עטיה © 1 מימוש מערכת הקבצים...
-
date post
22-Dec-2015 -
Category
Documents
-
view
246 -
download
9
Transcript of מערכות הפעלה ( אביב 2007) חגית עטיה © 1 מימוש מערכת הקבצים...
(2007מערכות הפעלה )אביב © חגית עטיה 1
מימוש מערכת הקבציםמימושים בסיסיים.
קצת על מימושים מתקדמים. אמינות מערכת הקבצים.
(2007מערכות הפעלה )אביב © חגית עטיה 2
מבנה מערכת קבצים טיפוסיתApplicationApplication ApplicationApplication
File System APISystem-call Interface
Logical File System
logical file system קוד כללי, בלתי תלוי
במערכת קבצים ספציפית ,קוד שמקבל מסלול
ומחזיר את קובץ היעד ניהול מידע כללי עבור
קבצים פתוחים, כמו מיקום בקובץ...
.פעולות על מדריכים.הגנה ובטיחות
(2007מערכות הפעלה )אביב © חגית עטיה 3
מבנה מערכת קבצים טיפוסיתApplicationApplication ApplicationApplication
File System APISystem-call Interface
Logical File System
Virtual File System Interface
logical file systemvirtual file system
interface מנשק אחיד לכל מערכות
הקבצים הספציפיות. למשלvfs_read,
vfs_write, vfs_seek.
(2007מערכות הפעלה )אביב © חגית עטיה 4
מבנה מערכת קבצים טיפוסיתApplicationApplication ApplicationApplication
File System APISystem-call Interface
Logical File System
Virtual File System Interface
PhysicalFile
System 1
PhysicalFile
System 4
logical file systemvirtual file system
interfacephysical file system
-מימוש מנשק הVFS עבור מערכת קבצים ספציפית
,למשל, מעל דיסק רשת, RAM, CDדיסקט,
וכו‘ מתכנן איך לפזר את
הבלוקים..בהמשך, נתרכז בו
(2007מערכות הפעלה )אביב © חגית עטיה 5
מבנה מערכת קבצים טיפוסיתApplicationApplication ApplicationApplication
File System APISystem-call Interface
Logical File System
Virtual File System Interface
PhysicalFile
System 1
PhysicalFile
System 4
Device Driver Device Driver
IBM
Device DriverDevice Driver
Seagate
logical file systemvirtual file system
interfacephysical file systemdevice drivers
קוד שיודע איך לפנותלהתקן ספציפי
,)דיסקים )לפי מודלDVD ,וכדומה.
מתחיל את הפעולההפיזית, ומטפל בסיומה.
מתזמן את הגישות, עלמנת לשפר ביצועים.
(2007מערכות הפעלה )אביב © חגית עטיה 6
מימוש מערכת מדדים להערכתהקבצים
מהירות גישה סדרתית מהירות גישה אקראית
)ישירה(שיברור פנימי וחיצונייכולת להגדיל קובץהתאוששות משיבושי מידע
(2007מערכות הפעלה )אביב © חגית עטיה 7
מיפוי קבצים: הקצאה רציפהבבלוקים באורך קבוע
כפולה של גודל סקטור )נע בין512B – 4KB)
המשתמש מצהיר על גודלהקובץ עם יצירתו.
מחפשים בלוקים רצופיםשיכולים להכיל את הקובץ.
הכניסה במדריך מצביעהלבלוק הראשון בקובץ.
file1file2file3 5
66
(2007מערכות הפעלה )אביב © חגית עטיה 8
מיפוי קבצים: הקצאה רציפה גישה מהירה )סדרתית
וישירה(שיברור פנימי וחיצוניקשה להגדיל קובץ
file1file2file3 5
66
(2007מערכות הפעלה )אביב © חגית עטיה 9
מיפוי קבצים: הקצאה משורשרת כל בלוק מצביע לבלוק
הבא. הכניסה במדריך מצביעה
file1לבלוק הראשון בקובץ
(2007מערכות הפעלה )אביב © חגית עטיה 10
מיפוי קבצים: הקצאה משורשרת.קל להגדיל קובץ.מעט שיברור חיצוני גישה איטית, בעיקר
לגישה ישירה. שימוש בבלוקים גדולים
מקטין את הבעיה, אך מגדיל שיברור פנימי.
שיבוש מצביע בבלוקגורם לאיבוד חלקים של
קובץ.
file1
(2007מערכות הפעלה )אביב © חגית עטיה 11
הקצאה משורשרת: מצב הדיסק
מדריך
סוףהתחלהקובץ
foo 814
(2007מערכות הפעלה )אביב © חגית עטיה 12
File Allocation Table (FAT) החזקת שרשרת המצביעים
בנפרד.
file1
(2007מערכות הפעלה )אביב © חגית עטיה 13
File Allocation Table (FAT) .החזקת שרשרת המצביעים בנפרד בעצם, טבלה שמתארת את התוכן של
הדיסק כולו. מצביע הקובץ )במדריך( מראה על
הכניסה הראשונה.
MS-DOS.
file1
(2007מערכות הפעלה )אביב © חגית עטיה 14
FATמגבלות של 216הטבלה נמצאת במקום נוח בדיסק / זיכרון ראשי, ומכילה
ביטים(16כניסות )אינדקס של 232 בגרסת FAT-32
.כאשר גדלים הדיסקים, גודל החתיכות גדל 6.4דיסק שלGB 100 היה מחולק לחתיכות שלKB אך במציאות(
(2GB מעל FAT-32משתמשים ב- הוא שכיח(.10-20%מגדיל את השיברור הפנימי )בזבוז של
.כל קובץ דורש לפחות חתיכה אחת 64לכל היותרK-קבצים ב FAT, 4G-ב FAT-32.
טבלת הFAT.מהווה משאב קריטי .צוואר בקבוק בגישהלאובדן הטבלה או לפגיעה בה יש משמעות קטסטרופאלית
...ולכן היא מוחזקת בשני עותקים
(2007מערכות הפעלה )אביב © חגית עטיה 15
מיפוי קבצים: אינדקס המשתמש מצהיר על
גודל קובץ מקסימלי. המצביעים לבלוקים
מרוכזים בשטח רצוף משפר במקצת את זמן
הגישה הישירה לעומת הקצאה משורשרת.
צריך להצהיר מראש עלגודל קובץ
file1
(2007מערכות הפעלה )אביב © חגית עטיה 16
אינדקס: מצב הדיסק
מדריך
בלוק אינדקסקובץ
foo 15
(2007מערכות הפעלה )אביב © חגית עטיה 17
מיפוי קבצים: אינדקס מרובה רמות
modeownerstimestamps#blocks…
inodedirectoryfile1file2file3file4
directblocks
single indirectiondouble indirectiontriple indirection
datadatadata
datadata
datadatadata
data
data
data
data
data
(2007מערכות הפעלה )אביב © חגית עטיה 18
Unix 4.1מבנה מערכת הקבצים ב inodes )index nodes(.אינם מדריכים מדריכים הינם קבצים רגילים אשר ממפים שמות
.inodesקבצים ל
לאחר שימוש ממושך במערכת הקבצים:.בלוקים שונים של אותו קובץ נמצאים רחוק זה מזהinodes ובלוקי אינדקס נמצאים רחוק מבלוקים של
מידע.
(2007מערכות הפעלה )אביב © חגית עטיה 19
Unix 4.2 Fast File System (FFS)
.)קבוצות של צילינדרים קרובים )על הדיסק:בתוך אותה קבוצת צילינדרים משתדלים לשים
בלוקים של אותו קובץ כולל( בלוקים של אותו מדריךinodes.)
:בתוך קבוצות שונות שמים.בלוקים של קבצים ממדריכים שונים
מקום פנוי בכל קבוצת צילינדרים.10%~שומרים על
(2007מערכות הפעלה )אביב © חגית עטיה 20
bitmapניהול בלוקים פנויים: .מערך ובו סיבית לכל בלוק
0 ;הבלוק פנוי.1 – הבלוק תפוס
.מאוחסן במקום קבוע בדיסק.עותק בזיכרון הראשי, ליעילות
4עם בלוקים שלKB נזדקק לבלוק של , בלוקים. 4096*8ביטים עבור
.קל לזהות רצף של בלוקים פנויים
0
1
0
1
1
0
1
1
1
0
1
1
(2007מערכות הפעלה )אביב © חגית עטיה 21
ניהול בלוקים פנויים:רשימה מקושרת
.מציאת בלוק פנוי בודד מהירה:הקצאה של מספר בלוקים לאותו קובץ
.במקומות המרוחקים זה מזה מציאת הבלוקים מחייבת תזוזות של
הדיסק.
מבנה הנתונים נהרס אם בלוק באמצעהרשימה השתבש.
בFAT הבלוקים הפנויים מנוהלים ,כקובץ אחד.
(2007מערכות הפעלה )אביב © חגית עטיה 22
ניהול בלוקים פנויים: קיּבּוץ שימוש ברשימה מקושרת של
אלמנטים: grouping כל אלמנט מכיל טבלה של -
מצביעים לבלוקים פנויים רצופים ומצביע לאלמנט הבא
counting כל אלמנט מכיל מצביע – לבלוק הפנוי הראשון מקבוצת בלוקים
פנויים רצופים, מספר הבלוקים בקבוצה ומצביע לאלמנט הבא
ניתן למצוא בצורה יעילה מספר גדולשל בלוקים פנויים ורציפים.
(2007מערכות הפעלה )אביב © חגית עטיה 23
אמינות-המידע בדיסק מתחלק ל
user data.)נתוני המשתמש )בתוך הקבצים :metadata.מידע על ארגון הקבצים :
,בלוקים של אינדקסinodes...
איבוד/שיבושmetadata עלול לגרום לאיבוד user data.רב .נפילת חשמל באמצע כתיבה עלולה לשבש את הסקטור שכעת נכתב
?מתי כתיבות עוברות מהזיכרון הראשי לדיסקwrite-through.כל כתיבה עוברת מיידית לדיסק – write-back.הדיסק מעודכן באופן אסינכרוני, אולי לא לפי סדר –
(2007מערכות הפעלה )אביב © חגית עטיה 24
Unixאמינות נתוני המשתמש ב- במערכותUnix משתמשים במדיניות write-back
.נתוני המשתמש נכתבים באופן מחזורי לדיסק תואם את סמנטיקתPOSIX. פקודותfsync, sync מאלצות לכתוב את הבלוקים
המלוכלכים לדיסק.
(2007מערכות הפעלה )אביב © חגית עטיה 25
metadataאמינות ה- משתמשים במדיניותwrite-through
עדכונים נכתבים מידית לדיסק
נתונים מסוימים נשמרים במספר עותקים-למשל, שורש הfile system
כאשר מערכת הקבצים עולה אחרי נפילה, מתקניםאת מבני הנתונים.
במערכות קבצים מסוימות, דורש מעבר על כל הדיסקScanDisk, fsck )file system check(
(2007מערכות הפעלה )אביב © חגית עטיה 26
(logging)רישום -שיטה יעילה לתחזוקת הmetadata
-מוכרת גם כjournaling-רושמים בlog סדרתי את העדכונים לפני שהם
(.write-ahead loggingנכתבים לדיסק ).הבלוקים שהשתנו נכתבים לדיסק לאחר-מכן
.אולי לא לפי הסדר.אפשר לקבץ מספר שינויים ולכתוב אותם בכתיבה אחת
-ניתן למחוק מהlog.עדכונים שכבר נכתבו לדיסק
(2007מערכות הפעלה )אביב © חגית עטיה 27
logהתאוששות עם -לאחר נפילה, עוברים על כל הכניסות בlog
.בצע את הפעולה ביצוע נוסף של פקודה שהתבצעה במלואה או חלקית נותן תוצאה
.(idempotent)שקולה לביצוע הפעולה המקורית
-אם הכניסה האחרונה בlog אינה שלמה, מתעלמים ממנה.
(2007מערכות הפעלה )אביב © חגית עטיה 28
loggingיתרונות וחסרונות של כתיבה לדיסק באופן אסינכרוני.התאוששות יעילה
תלויה במספר השינויים שלא נכתבו לדיסק, ולא בגודלמערכת הקבצים.
.דורש כתיבות נוספות.בערך מכפיל את מספר הכתיבות
(2007מערכות הפעלה )אביב © חגית עטיה 29
שיטות נוספות לשיפור ביצועים ניתן לשפר ביצועים ע"יCaching
שמירת חלק מהבלוקים הכי שימושיים בזכרון הראשיdisk cacheבמטמון מיוחד המנוהל ע"י מ"ה -
שמירתmetadataבזכרון הראשי
( read-ahead )PrefetchingReducing disk arm motion
לשים בלוקים שניגשים אליהם ביחד אחד ליד השני בדיסק