פיצול פנימי לעומת חיצוני
ההבדל בין פיצול פנימי לחיצוני הוא נושא שמעניין רבים שאוהבים לשפר את הידע שלהם במחשב. לפני שנדע את ההבדל הזה, עלינו לראות מהו פיצול. פרגמנטציה היא תופעה המתרחשת בזיכרון המחשב כגון זיכרון גישה אקראית (RAM) או דיסקים קשיחים, הגורמת לבזבוז ושימוש לא יעיל בשטח פנוי. בעוד שהשימוש היעיל בשטח פנוי מפריע, הדבר גורם גם לבעיות ביצועים. פיצול פנימי מתרחש כאשר הקצאת זיכרון מבוססת על מחיצות בגודל קבוע כאשר לאחר יישום בגודל קטן מוקצה לחריץ, השטח הפנוי הנותר של אותו חריץ מתבזבז.פיצול חיצוני מתרחש כאשר הזיכרון מוקצה באופן דינמי כאשר לאחר טעינה ופריקה של מספר חריצים פה ושם, השטח הפנוי מופץ במקום להיות רציף.
מהו פיצול פנימי?
שקול את האיור שלמעלה שבו פועלים מנגנון הקצאת זיכרון בגודל קבוע. בתחילה, הזיכרון ריק והמקצה חילק את הזיכרון למחיצות בגודל קבוע. לאחר מכן, שלוש תוכניות בשם A, B, C נטענו לשלוש המחיצות הראשונות בעוד המחיצה הרביעית עדיין פנויה.תוכנית א' מתאימה לגודל המחיצה, כך שאין בזבוז במחיצה הזו, אבל תוכנית ב' ותוכנית ג' קטנות מגודל המחיצה. אז בחלק ation 2 ומחיצה 3 נשאר מקום פנוי. עם זאת, שטח פנוי זה אינו שמיש מכיוון שמקצה הזיכרון מקצה רק מחיצות מלאות לתוכניות אך לא חלקים שלהן. בזבוז זה של שטח פנוי נקרא פיצול פנימי.
בדוגמה שלמעלה, מדובר במחיצות קבועות בגודל שווה, אבל זה יכול לקרות אפילו במצב שבו מחיצות בגדלים קבועים שונים זמינות. בדרך כלל הזיכרון או השטח הקשה ביותר מחולקים לבלוקים שהם בדרך כלל בגודל של חזקה של 2 כגון 2, 4, 8, 16 בתים. אז תוכנית או קובץ של 3 בתים יוקצו לבלוק של 4 בתים אבל בית אחד של הבלוק הזה יהפוך לבלתי שמיש ויגרום לפיצול פנימי.
מהו פיצול חיצוני?
שקול את האיור שלמעלה שבו הקצאת זיכרון נעשית באופן דינמי. בהקצאת זיכרון דינמית, המקצה מקצה רק את הגודל המדויק הנדרש עבור אותה תוכנית. זיכרון ראשון בחינם לחלוטין. לאחר מכן, התוכניות A, B, C, D ו-E בגדלים שונים נטענות בזו אחר זו והן ממוקמות בזיכרון ברציפות בסדר זה. לאחר מכן, תוכנית A ותוכנית C נסגרות והן נפרקות מהזיכרון. כעת ישנם שלושה אזורי שטח פנוי בזיכרון, אך הם אינם סמוכים. כעת תוכנית גדולה בשם Program F הולכת להיטען אבל אף אחת מהחסימות הפנוי לא מספיקה לתוכנית F. התוספת של כל המקומות הפנויים בהחלט מספיקה לתוכנית F, אבל בגלל חוסר הסמיכות השטח הוא לא שמיש עבור תוכנית F.זה נקרא פרגמנטציה חיצונית.
מה ההבדל בין פיצול פנימי לחיצוני?
• פיצול פנימי מתרחש כאשר נעשה שימוש בטכניקת הקצאת זיכרון בגודל קבוע. פיצול חיצוני מתרחש כאשר נעשה שימוש בטכניקת הקצאת זיכרון דינמית.
• פיצול פנימי מתרחש כאשר מחיצה בגודל קבוע מוקצית לתוכנית/קובץ בגודל קטן מהמחיצה, מה שהופך את שאר השטח במחיצה לבלתי שמיש. פיצול חיצוני נובע מחוסר מספיק מקום צמוד לאחר טעינה ופריקה של תוכניות או קבצים במשך זמן מה, כי אז כל השטח הפנוי מופץ פה ושם.
• ניתן לכרות פיצול חיצוני על ידי דחיסה כאשר הבלוקים שהוקצו מועברים לצד אחד, כך שיושג שטח רציף. עם זאת, פעולה זו לוקחת זמן וגם אזורים שהוקצו קריטיים מסוימים, למשל שירותי מערכת, לא ניתנים להזזה בבטחה. אנו יכולים לראות את שלב הדחיסה הזה שנעשה על דיסקים קשיחים בעת הפעלת מאחה הדיסקים ב-Windows.
• ניתן למנוע פרגמנטציה חיצונית על ידי מנגנונים כמו פילוח ודיפינג. כאן ניתן מרחב זיכרון וירטואלי רציף הגיוני בעוד שבמציאות הקבצים/תוכנות מפוצלים לחלקים וממוקמים פה ושם.
• ניתן להרוס את הפיצול הפנימי על ידי קיום מחיצות בגדלים שונים והקצאת תוכנית המבוססת על ההתאמה הטובה ביותר. עם זאת, עדיין הפיצול הפנימי לא בוטל במלואו.
סיכום:
פיצול פנימי לעומת חיצוני
הן פיצול פנימי והן פיצול חיצוני הן תופעות שבהן הזיכרון מתבזבז. פיצול פנימי מתרחש בהקצאת זיכרון בגודל קבוע ואילו פיצול חיצוני מתרחש בהקצאת זיכרון דינמית. כאשר מחיצה שהוקצתה תפוסה על ידי תוכנית שהיא פחותה מהמחיצה, השטח שנותר מתבזבז וגורם לפיצול פנימי. כאשר לא ניתן למצוא מספיק מקום סמוך לאחר טעינה ופריקה של תוכניות, בשל העובדה ששטח פנוי מופץ פה ושם, הדבר גורם לפיצול חיצוני.פרגמנטציה יכולה להתרחש בכל התקן זיכרון כגון זיכרון RAM, דיסק קשיח וכונני פלאש.