الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

المقاطعات فى الوضع المحمى

بدأه MohamedIBrahim في 11 يونيو 2011 · 2 رد · 729 مشاهدة · في هندسة البرمجيات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اقدم لكم فى هذا الدرس ان شاء الله درس خفيف وبسيط وتفصيلى للمقاطعات فى الوضع المحمى

المقاطعات فى الوضع المحمى

عملية عنونة المقاطعات فى النمط المحمى من ناحية النتيجة لا تختلف عنها فى النمط الحقيقى ولكن الية عنونة والوصول الى المقاطعات هى الية مختلفة فكما نعرف فى الوضع الحقكان لدينا جدول بأشعة المقاطعات ويحتوى هذا الجدول على عناوين البرامج ل 256 مقاطعة فى الحاسب وهو جدول أشعة المقاطعات ولكل حقل من حقول هذه الجداول كانت بحجم 32 خانة , 16 خانة للمقطع الموجود فيه برنامج خدمة المقاطعة و16 خانة للازاحة التى يبدأ عندها برنامج خدمة المقاطعة . أما فى النمط المحمى فالبنية العامة اختلفت واصبح لدينا عوضا عن جدول أشعة المقاطعات فأصبح جدولا بواصفات المقاطعات (IDTR) ويحتوى هذا الجدول على 25 مقاطعة ايضا ويعتمد هذا الجدول فى عنونة المقاطعات على الية عنونة للمقاطعات فى النمط المحمى اى على البنية GDT

كل حقل من حقول واصفات المقاطعات حجمه 8 بايت تماما مثل جدول واصفات المقاطع وبالتالى لكى نصل الى الواصف المطلوب من خلال رقم المقاطعة فعلينا ضرب رقم المقاطعة ب8 ومن ثم يقوم المعالج بجمع الناتج بالعنوان المخزن فى المؤشر الذى يشير الى جدول المقاطعات IDTR وبهذا نكون وصلنا للواصفة ضمن جدول واصفات المقاطعات والان من خلال هذه الواصفة التى وصلنا اليها يكون مخزن قيمة ناخب المقطع الذى يوجد به برنامج خدمة المقاطعة وبالاضافة للازاحة التى يبدأ عندها برنامج خدمة المقاطعة وبذلك نكون وصلنا الى برنامج خدمة المقاطعة ويقوم المعالج بتنفيذه

ونجد حسب الالية المذكورة والتى ايضا تتم بشكل تلقائى من قبل المعالج نجد ان المقاطعات أصبحت عنوانيها مختلفة عن عناوين مقاطعات الBIOS الآساسية واننا لم نعتمد على جدول أشعة المقاطعات التى يتم تعبئتها بشكل قياسى من قبل نظام الاقلاع الآساسى الBIOS كما ان بنية برامج خدمة المقاطعة التى يقوم بوضعها نظام الBIOS لا يمكن استخدامها فى الوضع المحمى وذلك لآن برامج خدمة المقاطعة هذه مكتوبة للتعامل اساسا على اساس نظام عنونته 16BIT بينما البرامج المكتوبة فى الوضع المحمى تتعامل مع نظام عنونته 32Bit وبالتالى عمليات القفز البعيد وعملية الاستدعاءات البعيدة للتوابع سوف لن نستطيع استخدامها بغض النظر عن نمط العمل وبالتالى نحن مطالبين باعادة كتابة برامج خدمة المقاطعة ولا نستطيع تحاوز خطوة اعادة كتابة برامج خدمة المقاطعة وهذا ما سنراه لاحقا وايضا فى اعتبارات اخرى يعتبر استخدام مقاطعات الBIOS ضرب من المستحيل لدى البرمجة فى النمط المحمى

والى اللقاء مجددا وسنتحدث فى المرة القادمة ان شاء الله عن

ناخبات المقاطع

GoodBye

#2

لي تعليق واحد فقط: الترجمه للكلمات الإنجليزيه المستخدمه تسبب الحيره فمثلا جدول أشعة المقاطعات هي ترجمه حرفيه لـ Interrupt Vector Table و الكلمه Vector هنا تعني ناقل و ليس أشعه. يمكنك حذف الكلمه أشعه لتصبح الكلمه هى جدول المقاطعات و ستؤدى لنفس المعنى.

توجد فكره أخرى كنت اطبقها فى الدروس التى اكتبها و هي كتابة قائمة بالمصطلحات المستخدمه و الترجمه الخاصه بها و بالتالي عندما يصل القارئ لكلمه بالعربيه لا يفهم معناها يستطيع الوصول للكلمه الإنجليزيه فى قائمة المصطلحات.

و الله ولي التوفيق

تم تعديل هذه المشاركة بواسطة محمد علاء الدين في 11 يونيو 2011 في 19:27

مدونتي: C++ Tips and Tricks

#3
محمد علاء الدين كتب:

لي تعليق واحد فقط: الترجمه للكلمات الإنجليزيه المستخدمه تسبب الحيره فمثلا جدول أشعة المقاطعات هي ترجمه حرفيه لـ Interrupt Vector Table و الكلمه Vector هنا تعني ناقل و ليس أشعه. يمكنك حذف الكلمه أشعه لتصبح الكلمه هى جدول المقاطعات و ستؤدى لنفس المعنى.

كنت اريد كتابتها كذلك لكن انا شخصيا كنت فى حيرة هل هذا هو الصحيح ام ماذا

محمد علاء الدين كتب:

توجد فكره أخرى كنت اطبقها فى الدروس التى اكتبها و هي كتابة قائمة بالمصطلحات المستخدمه و الترجمه الخاصه بها و بالتالي عندما يصل القارئ لكلمه بالعربيه لا يفهم معناها يستطيع الوصول للكلمه الإنجليزيه فى قائمة المصطلحات.

و الله ولي التوفيق

فكرة رائعة وسأقوم بتطبيقها ان شاء الله

وجزاك الله خيرا عليها

وتحياتى لك

GoodBye

مواضيع مشابهة