היכן ממוקמת הערימה במפת הזיכרון של המכונה?
היכן ממוקמת הערימה במפת הזיכרון של המכונה?

וִידֵאוֹ: היכן ממוקמת הערימה במפת הזיכרון של המכונה?

וִידֵאוֹ: היכן ממוקמת הערימה במפת הזיכרון של המכונה?
וִידֵאוֹ: Memory Management Tutorial in Java | Java Stack vs Heap | Java Training | Edureka 2024, נוֹבֶמבֶּר
Anonim

בכתובות הגבוהות יותר נמצא ה לַעֲרוֹם ובכתובת התחתונה נמצאת ה ערימה . השניים זיכרון אזורי הקצאה גדלים לאמצע מרחב הכתובות, שאינו בשימוש ואינו מוקצה.

יתרה מכך, היכן ממוקמת הערימה בזיכרון?

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

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

כמו כן, השאלה היא היכן בזיכרון ממוקמת הערימה ולאיזה כיוון היא גדלה?

ה ערימה הוא הקטע שבו דינמי זיכרון ההקצאה מתבצעת בדרך כלל. אזור זה מתחיל בדרך כלל בסוף קטע BSS ו גדל כלפי מעלה לגבוה יותר זיכרון כתובות. ב-C, הוא מנוהל על ידי malloc / new, free / delete, המשתמשים בקריאות מערכת brk ו-sbrk כדי להתאים את גודלו.

מאיפה malloc שואב זיכרון?

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

מוּמלָץ: