Download presentation
Presentation is loading. Please wait.
1
A. Frank File Organization Introduction to Overflow Thanks to Tamar Barnes
2
2 A. Frank Idea of Index-Sequential (IS) File אינדקס סדרתי Index-Sequential - מבנה קובץ מסודר פלוס אינדקס ל " גישה ישירה "? מה הרעיון בגדול ? איך להימנע משינויים תכופים באינדקס ? – יש צורך בשימוש בשטח גלישה ! לכן דרוש מבוא לגלישה ! | | | | | | | קובץ / שטח ראשי Main file מפתח k | | | | קובץ / שטח אינדקס Index file k k V + P | | | | | | | קובץ / שטח גלישה Overflow file
3
3 A. Frank Overflow Issues מבוא לגלישה (Overflow): 1. שטח גלישה – מטרות ושימוש. 2. ניהול שטחי גלישה – גלישה במסגרת של גוש / מסילה / גליל / דיסק / משולב. 3. טיפול בשרשור רשומות – שרשור ברמת רשומה / גוש.
4
4 A. Frank Idea of Overflow Area שטח גלישה : מקום לאחסון רשומות, שאין להן מקום בגוש מסוים של הקובץ, אע " פ שהן שייכות לו בהתאם לסדר הלוגי. יש שימוש במצביעים כדי לשמור על הסדר ( הלוגי ) בקובץ. הכנסת רשומה חדשה דורשת : 1. מציאת הגוש הנכון בקובץ. 2. מציאת המקום הנכון בגוש המסוים. 3. הזזת חלק מהרשומות כדי לפנות לה מקום, ואם אין אז מקום בשביל הרשומה האחרונה בגוש, העברתה לשטח גלישה, או הכנסת הרשומה החדשה ישירות לשטח גלישה, תוך שימוש במצביעים.
5
5 A. Frank Logical Overflow Area המבנה הכללי : שטחי נתוניםשטחי גלישה 58911121420213741...
6
6 A. Frank Management of Overflow Area שיטות לניהול שטחי גלישה : 1. גלישה במסגרת הגוש 2. גלישה במסגרת המסילה 3. גלישה במסגרת הגליל 4. גלישה במסגרת הדיסק 5. צירוף של שיטות 3 ו - 4, כאשר מתחילים עם גלישה במסגרת הגליל, ורק אם צריך, אז גם במסגרת הדיסק.
7
7 A. Frank 1. Overflow within the Block גלישה במסגרת הגוש : - נשאיר מספר מקומות, ז. א., רשומות ריקות, בכל גוש. - לדוגמא, נמלא בכל פעם 2/3 ~ גוש, ה - 1/3 ~ הנותר כשטח גלישה. - זו שיטה סבירה אם הגושים גדולים וההוספות מפולגות היטב. - אולם, כשגוש אחד מתמלא, השיטה " נשברת ". שטח נתונים 5911141547 גוש... 12 רוצה להיכנס : אין בעיה 591112141547 8 רוצה להיכנס : גם לא בעיה ! 5891112141547 שטח גלישה... 7 רוצה להיכנס : אבל אין מקום ! 5891112141547...
8
8 A. Frank 2. Overflow within the Track (1) גלישה במסגרת המסילה : - נשאיר מספר גושים ריקים לגמרי בסוף כל מסילה. - נמלא בכל פעם nbt*3/~2 גושים, ה - 3/1 ~ הנותר ישמש כשטח גלישה. - כל רשומה גולשת תזדקק למצביע P ברשומה שתצביע עליה מהמקום המתאים בגוש אליו היא הייתה אמורה להיכנס. - כל רשומה למעשה יכולה להתחיל שרשרת גלישה בפני עצמה. - אולם, כשמסילה אחת מתמלאת, השיטה " נשברת ".
9
9 A. Frank 2. Overflow within the Track (2) 5891112 13 רוצה להיכנס : שטח נתוניםשטח גלישה 5891112 15 13 15 5891112 14 רוצה להיכנס : שטח נתונים שטח גלישה 13 15 14 1515 רוצה להיכנס : שטח נתונים שטח גלישה 5891112 7 רוצה להיכנס : שטח נתוניםשטח גלישה 13 15 147
10
10 A. Frank 3. Overflow within the Cylinder גלישה במסגרת הגליל : - נשאיר מספר מסילות ריקות בכל גליל. - נמלא בכל פעם ntc*3/~2 מסילות, ה - 3/1 ~ הנותר כשטח גלישה. משרשרים כמו קודם, רק שהפעם לגושי גלישה במסילות הריקות. - יתרון : חוסכים הזזת זרוע ( עלות s) כי נשארים באותו גליל. - חסרונות : בזבוז שטח - לעתים מקבלים פיזור לא אחיד של הרשומות בגלילים ולכן מסילות נותרות ריקות ברוב הגלילים. - אולם, כשגליל אחד מתמלא, השיטה " נשברת ". ntc מסילות ריקים מלאים
11
11 A. Frank 4. Overflow within the Disk גלישה במסגרת הדיסק ( = הגולן ): - שטח גלישה נפרד המשותף לכל הקובץ. - שטח הגלישה יכול להכיל גם כמה גלילים. - הרשומות הנוספות גולשות לשטח זה, בעזרת מצביעים. - יתרון : השיטה גמישה, ואינה תלויה בהתפלגות הגעת הרשומות הנוספות. - חסרון : יש צורך בהזזת הזרוע ( עלות s) לפחות פעם אחת. - אבל כאן השיטה לא " תשבר " באמצע, כמו בשיטות הקודמות, אלא אם כן כל שטח הגלישה התמלא, שזו כבר בעיית הקצאה ראשונית לא מספקת. גליל נתונים מלא שטח גלישה נפרד
12
12 A. Frank 5. Overflow within the Cylinder + Disk גלישה גם במסגרת הגליל וגם במסגרת הדיסק : - נקצה שטחים הן לגלישה במסגרת הגליל ( חסכון בעלות s) והן לגלישה במסגרת הדיסק ( כדי שהשיטה לא " תשבר "). - מתחילים עם גלישה במסגרת הגליל ורק כשהוא מתמלא, רק לגבי הגליל הזה, נאלצים לשלם מחיר של גלישה לשטח גלישה בנפרד. נהנים מכל העולמות !
13
13 A. Frank Record Chaining Management שיטות טיפול בשרשור רשומות : 1. שרשור ברמת רשומה (Record-level Chaining) 2. שרשור ברמת גוש (Block-level Chaining, Push Through)
14
14 A. Frank Record Level Chaining (1) שרשור ברמת הרשומה : - לכל רשומה יש מצביע גלישה. כל רשומה, בשדה המצביע P שלה, יכולה להתחיל שרשרת גלישה. - יכולות להיות לכן עד bfr שרשראות גלישה לגוש – יקר מבחינת גישה סדרתית. - משתמשים בשרשור של רשומות גולשות כדי לשמור על הסדר הלוגי ולכן אין גם שינוי בטבלאות האינדקס ( חוץ מחריג – נראה זאת בהמשך ).
15
15 A. Frank Record Level Chaining (2) 013-47-1234 028-18-2341 3415-15-128 134-01-5839 143-09-0711 156-88-4321 11.1 12.1 110.2 6317-17-075 5301-14-129 1701-43-676 110.1 ^ ^ ^ 5340-76-063 1901-73-151 111.1 ^ 110.1 110.2 110.3 111.2 111.3 111.1 ^ 111.2 ^ 11.2 11.3 12.2 12.3 3177-00-616 9343-89-633 0314-43-704 b-1.1 ^ 110.3 ^ … 013-47-1234 3177-00-616 end 2 1 013-47-1234 5839-01-134 … 12 11 … 3177-00-616 end b-1.1 Social securitymore dataoverflow pointer block record no. keypointer block number 1. 2. Overflow area Index Master Index Sequential File (Primary area) ^
16
16 A. Frank Block-level Chaining (1) שרשור ברמת הגוש (Push Through) - משתמשים בשדה מצביע אחד לכל גוש. את הרשומות הנוספות, בעלות מפתחות נמוכים יחסית, מגוושים מחדש בגוש עצמו ואת הרשומות הנוספות, בעלות מפתחות גבוהים יותר, שלא נכנסות לגוש, משרשרים למצביע בסוף הגוש. - הכנסת רשומה דורשת : 1. מציאת הגוש הנכון בקובץ הסדרתי. 2. מציאת המקום הנכון בגוש או בשרשרת היוצאת ממנו. יש שני מקרים : א. אם הרשומה החדשה תיקלט בגוש של השטח הראשי – תהיה הזזה של חלק מהרשומות קדימה כך שיווצר מקום. הרשומה האחרונה, שנדחפה מהגוש, תושם בשטח הגלישה עם מצביע גוש אליה. ב. אחרת, הרשומה החדשה תושם בשטח הגלישה ותיקלט במקום המתאים בשרשרת.
17
17 A. Frank Block-level Chaining (2) 013 028 128 013 028 075 013 028 075 013 028 075 013 028 063 013 028 063 128 129 128 129 676 128 129 676 075 128 129 676 075 156 075129676063156 רשומות מתווספות : מצב התחלתי מצב סופי גושי גלישה גושי נתונים
18
18 A. Frank Record vs. Block-level Chaining (1) 013-47-1234 028-18-2341 063-76-5340 134-01-5839 143-09-0711 151-73-1901 173-21-1378 11.1 12.1 13.1 111.1 111.2... 3177-00-616 9343-89-633 1701-43-676 b-1.1 110.3 3415-15-128 5301-14-129 0314-43-704 110.1 ^ ^ 110.2 6317-17-075 4321-88-156 111.1 ^ ^ 110.1 110.2 110.3 111.2 111.3... Overflow area (displaced records) Record Level Chaining Sequential File (Primary area) Block Level Chaining Index 11 12 … b שרשור ברמת הגוש : לכל גוש, אם צריך, יש את שרשרת הגלישה שלו. בשטח הגלישה יש שרשור ברמת רשומה, מפני שהרשומות מגיעות באופן אקראי לשטח זה.
19
19 A. Frank Record vs. Block-level Chaining (2) בשרשור ברמת הרשומה: יש מצביע לכל רשומה. עד Bfr שרשראות גלישה לכל גוש. שרשרות גלישה קצרות יחסית. בקריאת רשומות בסדר לוגי, רצים על הרבה שרשראות גלישה לגוש. בהרבה פניות לגוש יש לעבור על שרשראות גלישה. שולחים לשטח הגלישה את הרשומות המאחרות לבוא (late comers). אפשרי בשטח הראשי ובשטח הגלישה. בשרשור ברמת הגוש: יש מצביע לכל גוש. עד שרשרת גלישה אחת לכל גוש. שרשרות גלישה ארוכות יחסית. בקריאת רשומות בסדר לוגי, רצים על השרשרת פעם אחת. אין בעיה גם עם הרבה פניות לגוש. שולחים לשטח הגלישה את הרשומות שנדחקו החוצה (displaced) מהגוש. אפשרי רק בשטח הראשי.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.