ההבדל בין ערימה לערימה

מְחַבֵּר: Laura McKinney
תאריך הבריאה: 1 אַפּרִיל 2021
תאריך עדכון: 13 מאי 2024
Anonim
נתי"ב - מקורות אנרגיה במרחב העולמי  | גאוגרפיה אדם וסביבה לכיתות י,יא,יב
וִידֵאוֹ: נתי"ב - מקורות אנרגיה במרחב העולמי | גאוגרפיה אדם וסביבה לכיתות י,יא,יב

תוֹכֶן


Stack and Heap הם מקטעי הזיכרון המשמשים בטכניקות להקצאת זיכרון. ההבדל העיקרי בין ערימה לערמה הוא שערימה כוללת הקצאה ליניארית ורצף של הזיכרון המשמש בהקצאת זיכרון סטטי ואילו ערימה משמשת כמאגר שטח אחסון שהקצה את הזיכרון באופן אקראי (הקצאת זיכרון דינמי).

מהירות היא הפרמטר העיקרי המבדיל בין מחסנית לערימה; ערימה מהירה משמעותית מערימה.

  1. טבלת השוואה
  2. הגדרה
  3. הבדלים עיקריים
  4. סיכום

טבלת השוואה

בסיס להשוואהערימהערימה
בסיסיזיכרון מוקצה ב- (LIFO) אחרון באופנה ראשונה.הזיכרון מוקצה בסדר אקראי.
הקצאה ודילוקציהאוטומטימדריך ל
עלותפחותיותר
יישוםקשהקל
מזמיןO (N)O (1)
נושאמחסור בזיכרוןפיצול זיכרון
מקום ההתייחסותמעולהנאות
גמישותגודל קבוע ואינו גמיששינוי גודל אפשרי
זמן גישהמהר יותראיטי יותר


הגדרת סטאק

הקצאת הערימה עוקבת אחר אסטרטגיית LIFO (Last in first out) להקצאת הזיכרון לתהליכים בעזרת פעולת דחיפה ופופ. כל חסימת זיכרון היא בגודל קבוע שלא ניתן להרחיב או להתכווץ. הכניסה האחרונה בערימה נגישה בכל רגע. מחסנית משתמשת בזיכרון רציף בו מצביע הנקרא כבסיס הערימה מצביע על הכניסה הראשונה של הערימה ומצביע אחר הנקרא כראש החלקורה מצביע על הכניסה האחרונה של הערימה.

ערימה תומכת גם בשיחות פונקציות. שיחת פונקציה יכולה להחזיק אוסף של ערכי הערימה, מכונה מסגרת הערימה. שם נוסף של מסגרת הערימה הוא רשומת ההפעלה במצבו של המהדר מכיוון שהיא מאחסנת את הנתונים ששימשו בעת עריכת התוכנית. בכל פעם שמכונה פונקציה מסגרת הערימה נדחפת לתוך הערימה.

מסגרת ערימה מורכבת מכתובות או ערכים של פרמטר הפונקציה וכתובת החזרה המסמנת היכן יש להחזיר את הפקד לאחר סיום ביצוע הפונקציה.

הגדרת ערימה

הקצאת ערימות אינה נוקטת בשום גישה מוגדרת; אלא זה מאפשר הקצאה והקצאה מחדש של הזיכרון באופן אקראי. בקשת הקצאה על ידי תהליך מחזירה עם מצביע לאזור הזיכרון שהוקצה בערימה, והתהליך ניגש לאזור הזיכרון שהוקצה דרך המצביע.


מיקום ההקצאה מתבצע דרך בקשת המיקום מחדש, שונה מהערימה בה הזיכרון מועבר אוטומטית. Heap מפתח חורים בהקצאת הזיכרון כאשר מבני נתונים נבנים ומשוחררים. משתמשים בו בזמן ההפעלה.

  1. בערימה, ההקצאה וההקצאה מתבצעות על ידי CPU והיא אוטומטית ואילו, בערימה, היא צריכה להיעשות על ידי המתכנת באופן ידני.
  2. טיפול במסגרת ערימה הוא יקר יותר מאשר טיפול במסגרת ערימה.
  3. הטמנת ערימה מורכבת. לעומת זאת, יישום ערימה הוא פשוט.
  4. שיחת פונקציה בערימה אורכת זמן O (N). לעומת זאת, לוקח O (1) זמן בערימה.
  5. יישום הערימה סובל בעיקר מבעיית מחסור הזיכרון. נהפוך הוא, הנושא העיקרי בערימה הוא פיצול.
  6. הגישה למסגרת מחסנית קלה יותר מהערמה שכן הערימה מוגבלת לאזור הזיכרון הקטן והיא תמיד פגעה במטמון, אך מסגרות ערימה מפוזרות ברחבי הזיכרון כך שהגישה לזיכרון עלולה לגרום לפספוסים נוספים של המטמון.
  7. הערימה אינה גמישה, לא ניתן לשנות את גודל הזיכרון שהוקצה. מצד שני, ערימה גמישה וניתן לשנות את הזיכרון המוקצה.
  8. ערימה גוזלת זמן גישה יותר מאשר ערימה.

סיכום

הקצאת הערימה מהירה יותר אך מורכבת. מצד שני, ערמה איטית יותר, אך יישומה פשוט יותר מערימה. ערמה יעילה יותר מהערימה.