PDA

View Full Version : Stack & Heap Memory



mr_esmaily
سه شنبه 21 تیر 1384, 23:52 عصر
سلام
از اونجایی که متغییر های اتوماتیک در حافظه Stack و متغییر های خارجی در حافظه Heap ذخیره میشن , می خواستم بدونم این دو نوع حافظه دقیقاً به چه قسمتی از سخت افزار تلقی می شود و چه تفاوتی دارند ؟

Inprise
چهارشنبه 22 تیر 1384, 02:35 صبح
Stack و Heap دو مفهوم منطقی هستند نه فیزیکی . تخصیص حافظه به مفهوم عام یعنی استفاده از RAM و در صورت وجود Virtual Memory Manager استفاده از هر رسانهء دیگری که مدیر حافظه برای نگهداری اطلاعات ازش استفاده میکنه ، مثلا" دیسک سخت . عموما" تو لازم نیست در مورد ما به ازای فیزیکی حافظه نگران باشی یا حتی چیزی در موردش بدونی . به عنوان یک مثال مدیر حافظه ویندوز های 32 بیتی میتونه برای هر پروسه چهار گیگابایت فضا اختصاص بده که دو گیگ اون برای بخش سطح کاربر و دو گیگ اون برای بخش سطح کرنل در نظر گرفته میشه ؛ بخشی از این چهار گیگ روی RAM و بخش اعظم اون جائی دیگر ، عموما" دیسک سخت قرار خواهد گرفت ؛ نسخه های Data Center ویندوز همراه با API خاصی منتشر میشن که کمک میکنه توسعه گر بتونه مشخصا" و صراحتا" فضای مورد نظرش رو بصورت فیزیکال و روی RAM تخصیص بده که در بسیاری موارد میتونه به افزایش فوق العاده کارائی منجر بشه ، و البته محدودیت در سرویس دهی به سایر عناصر سیستم .

mr_esmaily
چهارشنبه 22 تیر 1384, 10:22 صبح
سلام
از راهنماییتون ممنون ولی من اطلاعات بیشتری در مورده این دو نوع حافظه می خواستم , بعنوان مثال یه جایی خوندم در حافظه ی Stack , آدرس ها به ترتیب نزولی ظاهر میشن ولی در حافظه ی Heap , بصورت صعودی .
من بیشتر دنبال همچنین مطالبی در مورده این دونوع حافظه هستم.