160 likes | 277 Views
File Organization. Aspects of Size Parameters. Blocking Aspects. גיווש רשומות באורך קבוע – אין בעיה. גיווש רשומות באורך משתנה – אין בעיה לגווש אבל יש בעיה לפתוח גיווש! בפתיחת גיווש איך יודעים איפה הגבולות בין הרשומות המשתנות?. How to block variable records?.
E N D
File Organization Aspects of Size Parameters A. Frank
Blocking Aspects • גיווש רשומות באורך קבוע – אין בעיה. • גיווש רשומות באורך משתנה – • אין בעיה לגווש אבל יש בעיה לפתוח גיווש! • בפתיחת גיווש איך יודעים איפה הגבולות בין הרשומות המשתנות? A. Frank
How to block variable records? • אז איך לגווש רשומות באורך משתנה? שיטות אפשריות: • הוספת תו מיוחד ((EOR בסוף הרשומה. • הוספת שדה אורך/מצביע רשומה (לפני הרשומה). • מערך בגודל קבוע בתחילת כל גוש מכיל כניסה (אורך/מצביע) עבור כל רשומה בגוש. • מערך בגודל משתנה נבנה בגוש, בכיוון הפוך לכיוון הכנסת הרשומות, ומכיל כניסה (אורך/מצביע) עבור כל רשומה בגוש. A. Frank
1. EOR Character • שימוש בתו הפרדה (Delimiter) לסימון גבולות בין רשומות. • נניח EOR בגודל בית. • יתרונות: • שיטה פשוטה וחסכונית. • אין הגבלה על אורך הרשומה. • חסרונות: • EOR אינו יכול להופיע ברשומה (חייב להיות תו בקרה ייחודי). • חייבים לסרוק את כל תווי הרשומה כדי לאתר את EOR. • אין גישה 'ישירה' לרשומה ה-i-ת. E O R E O R E O R … Block גוש A. Frank
2. Length/Pointer Field • שימוש בשדה אורך/מצביע P לסימון גבולות בין רשומות. • נניח P בגודל מען (4 בתים). • יתרונות: • שיטה פשוטה יחסית. • אין הגבלה על התווים ברשומה. • אין צורך לסרוק את כל תווי הרשומה. • חסרונות: • אין גישה 'ישירה' לרשומה ה-i-ת. • יש הגבלה על אורך הרשומה (לפי גודל P). P P P … Block גוש A. Frank
3. Array of length/pointer fields • שימוש במערך בגודל קבוע של שדות מצביע לסימון רשומות. • יתרונות: • כמו בשיטה 2. • יש גישה "ישירה" לרשומה ה-i-ת. • חסרונות: • יש הגבלה על אורך הרשומה (לפי גודל P). • מערך המצביעים הוא בגודל קבוע: • אולי אין מספיק כניסות אם הרשומות קצרות. • אולי יש יותר מדי כניסות אם הרשומות ארוכות. P P P P … Block גוש A. Frank
4. Dynamic array of pointer fields • שימוש במערך בגודל משתנה של שדות מצביע לסימון רשומות. • יתרונות: • כמו בשיטה 3. • כל עוד יש מספיק מקום באמצע, אפשר להוסיף עוד רשומה. • חסרונות: • יש הגבלה על אורך הרשומה (לפי גודל P). • ניהול מורכב יותר. P R … P P P Block גוש A. Frank
Records (Un)Spanning • רשומות ללא מתיחה Unspanned Records: הגושמכיל רשומות שלמות (X זה מקום מבוזבז). • רשומות עם מתיחה Spanned Records: יתכן פיצול של רשומה מסוימת בין מספר גושים – דורש אבל מצביע P להמשך (חסכוני במקום אך יותר בעייתי ליישום, חיפוש יקר, קושי בעדכון). P P P X P P P X P P P P P P X A. Frank
Blocking Aspects • מה היחס בין רשומה לגוש/מגזר? • אם אז לרוב משתמשים בגיווש בלי/עם מתיחה. • אם אז חייבים למתוח בלי/עם גיווש. P P X P P P A. Frank
Reasons for waste in track • בזבוז במסילה הוא שטח שאינו מנוצללנתונים, מה שמהווה תקורה .(overhead) • אפשר לקחת בחשבון בזבוז הנגרם בגלל: • מרווחים (ISG) • שיטת הגיווש • מגזרים לא בשימוש • אי ניצול סוף המסילה A. Frank
Various Blocking Methods A. Frank
Waste • Waste - W- בזבוז בבתים לרשומה (הבזבוז הוא שטח לא מנוצל המהווה תקורהלרשומה). • Wמורכב רק משני גורמים: • - בזבוז לרשומה בגלל מרווח בין גושים: • - בזבוז לרשומה בגלל גיווש (כשאין מתיחה): A. Frank
Blocking factor and Waste computations • בשביל רשומות באורך קבוע, כאשר אין מתיחה: • בשביל רשומות באורך משתנה, כאשר אין מתיחה(ב-W מחוון בשביל הרשומה פלוס חלק של אורך חצי רשומה ומרווח): • בשביל רשומות באורך משתנה, כאשר יש מתיחה(ב-W מחוון בשביל הרשומה פלוס חלק של מצביע לגוש הבא ומרווח): A. Frank
Block(ing)/Record Aspects • יש כאן מספר משתנים אפשריים בבניית קובץ: • גודל גוש קבוע (F) או משתנה (V). • גיווש (B) או אי-גיווש (U). • מתיחה (S) או אי-מתיחה (' '). • גודל רשומה קבוע או משתנה. • לדוגמה: • FB – גושים קבועים, גיווש, אי-מתיחה. • VBS – גושים משתנים, גיווש, מתיחה. A. Frank
Should B be Fixed or Variable? • לגבי קביעת גודל B, יש 2 גישות עיקריות: • B קבוע – גישה UNIX-ית: • ניסיון לקבוע גודל גוש אופטימלי. • שיטה פשוטה, גודל המכלא קבוע וכו'. • בעצם ב-UNIX יש 2 גדלים ( K/2K2K/4K ,4K/8K) – נקבע לפי המחיצה המתאימה שבה נמצא הקובץ. • B משתנה – גישה IBM-ית: • יש הרבה צרכים/משימות – שהמתכנת יקבע. • שיטה מורכבת, גודל המכלא משתנה וכו'. A. Frank
Single Unit instead of Block/Sector? • למה צריך 2 סדרי גודל: גם מגזר וגם גוש? • אולי יחידה (Unit) באיזשהו גודל אופטימלי תספיק? • לא! מתברר שיש אילוצים לכאן ולכאן: אילוצים להקטנת היחידהאילוצים להגדלת היחידה עלות פעולת ק/פ יחידה מספר מרווחים במסילה גודל טבלת יחידות לקובץ גישה להרבה נתונים ביחד עדיף לגודל משתנה יעיל יותר לגווש? שיבוש ביחידה בזבוז בסוף המסילה גודל המכלא בזיכרון גישה למעט נתונים ביחד עדיף לגודל קבוע A. Frank