المنطقة الحمراء (الحوسبة)
في مجال الحوسبة ، تُعرف المنطقة الحمراء بأنها مساحة ثابتة الحجم في إطار مكدس الدالة، أسفل مؤشر المكدس الحالي (في حالة المكدس ذي الدفع السفلي)، وهي منطقة محجوزة وآمنة للاستخدام. ويُستخدم هذا النوع من المناطق عادةً في الدوال الطرفية (الدوال التي لا تستدعي دوالًا أخرى) لتخصيص مساحة إضافية في ذاكرة المكدس، دون تحريك مؤشر المكدس، مما يوفر تعليمة واحدة.
يعتمد وجود منطقة حمراء على اصطلاح الاستدعاء . تستخدم أنظمة x86-64 التي تستخدم واجهة التطبيق الثنائية System V AMD64 (بما في ذلك Linux و macOS ) منطقة حمراء بحجم 128 بايت تبدأ مباشرةً أسفل القيمة الحالية لمؤشر المكدس. [ 1 ] [ 2 ] تفترض مجموعة أدوات OpenRISC منطقة حمراء بحجم 128 بايت. [ 3 ] لا يوجد مفهوم المنطقة الحمراء في نظام Microsoft Windows على معالجات x86 . [ 4 ] في الواقع، تنص واجهة التطبيق الثنائية صراحةً على أن الذاكرة الواقعة بعد مؤشر المكدس متطايرة ويمكن الكتابة فوقها بواسطة أدوات تصحيح الأخطاء أو معالجات المقاطعات. [ 5 ] [ 6 ] مع ذلك، يمتلك نظام Microsoft Windows منطقة حمراء بحجم 16 بايت على معالجات IA-64 ، و8 بايت على معالجات AArch32 ، و16 بايت على معالجات AArch64 . [ 6 ]
تُعتبر المنطقة الحمراء آمنة من التعديل بواسطة معالجات المقاطعات / الاستثناءات / الإشارات - لا يدرك المعالج المركزي عادةً وجود المنطقة الحمراء، ولكنه ينتقل إلى مكدس النواة في حالة حدوث مقاطعة. إذا حاولت النواة نفسها استخدام المنطقة الحمراء في سياق قابل للمقاطعة، فسيتم إتلاف محتوياتها.
ملاحظات ومراجع
- ↑ مايكل ماتز؛ يان هوبيتشكا؛ أندرياس ياغر؛ وآخرون، المحررون. (28-01-2018). "واجهة التطبيق الثنائية لنظام التشغيل System V: ملحق معالج بنية AMD64 (مع نماذج برمجة LP64 وILP32) الإصدار 1.0" (ملف PDF) . GitHub . 1.0.
- ↑ "خيارات i386 و x86-64 - استخدام مجموعة مترجمات GNU (GCC)" . تم الاطلاع عليه بتاريخ 10-04-2011 .
- ↑ "ويكي OpenCores - مجموعة أدوات OpenRISC GNU" . مؤرشف من الأصل بتاريخ 28-05-2014 . تم الاطلاع عليه بتاريخ 28-05-2014 .
- ↑ فوغ، أغنر (31 يناير 2021). اصطلاحات الاستدعاء لمترجمات لغة C++ المختلفة وأنظمة التشغيل (ملف PDF) . الدنمارك. ص 20. تاريخ الاسترجاع: 11 يوليو 2021 .
{{cite book}}: CS1 maint: موقع الناشر مفقود ( رابط ) - ↑ بيندرسكي، إيلي (2011-09-06). "تخطيط إطار المكدس على x86-64" . موقع إيلي بيندرسكي الإلكتروني . تم الاطلاع عليه بتاريخ 2021-07-11 .
- 1 2 تشين، ريموند (11 يناير 2019). "لماذا نحتاج أصلاً إلى تحديد منطقة حمراء؟ ألا يمكنني استخدام مكدسي لأي غرض؟" . الشيء القديم الجديد . تم الاسترجاع في 11 يوليو 2021 .
- المترجمون
- نماذج أولية لبرمجة الحاسوب
