توصيل تعليمات وحدة المعالجة المركزية ظاهريًا
- 8 دقائق
يكمن مفتاح التمثيل الظاهري لوحدة المعالجة المركزية في تنفيذ كل من التعليمات المميزة وغير المميزة الصادرة عن معالجات الضيف الظاهرية. تم توثيق مجموعة تعليمات المعالج وتوفيرها في الولايات المتحدة الأمريكية. يوضح المخطط التفصيلي للفيديو التالي المشاكل المتعلقة بإضفاء الطابع الظاهري على بنية مجموعة التعليمات:
يُسمح بامتيازات خاصة لموارد النظام من خلال تحديد أوضاع العمليات (أو الحلقات) في بنية مجموعة التعليمات. تحدد كل وحدة معالجة مركزية لبنية مجموعة التعليمات عادةً وضعين للعمليات، وضع النظام (أو المشرف/ النواة/ الامتياز) ووضع المستخدم (انظر الشكل 1 أ). يسمح وضع النظام بإمكانية وصول ذوي الاحتياجات الخاصة الواسعة إلى مكونات النظام، بينما يقيد وضع المستخدم إمكانية وصول ذوي الاحتياجات الخاصة هذه. يتم تنفيذ أنظمة دعم العمليات في الأنظمة التقليدية في وضع النظام، بينما يتم تشغيل التطبيقات المرتبطة في وضع المستخدم، في محاولة لتوفير الأمان وعزل الموارد. ومع ذلك، تدعم بعض بنية مجموعة التعليمات أكثر من حلقتين. على سبيل المثال، يدعم Intel IA-32 ISA أربع حلقات (انظر الشكل 1 ب). في الأنظمة التقليدية، عندما يتم تطبيق Linux على IA-32 ISA، يتم تنفيذ نظام التشغيل في Ring 0 ويتم تنفيذ عمليات التطبيق في Ring 3.
الشكل 1: أوضاع عمليات النظام (أو الحلقات)
يتم تعريف التعليمة ذات الامتياز على أنها تعليمة تقوم بتطبيق التراكب على وضع المستخدم ولا تطبق التراكب على وضع النظام. التراكب هو نقل عناصر التحكم إلى وضع النظام حيث يقوم برنامج مراقب الأجهزة الافتراضية (كما في الظاهرية) أو نظام التشغيل (كما هو الحال في أنظمة التشغيل التقليدية) بتنفيذ بعض الإجراءات قبل تبديل عنصر التحكم مرة أخرى إلى عملية الإنشاء. تحدث التراكبات كآثار جانبية لتنفيذ التعليمات. بشكل عام، يمكن تصنيف التعليمات إلى فئتين مختلفتين: حساسة وغير ضارة. يمكن أن تكون التعليمات الحساسة إماحساسة لعنصر التحكم أو حساسة للسلوك. التعليمات الحساسة لعنصر التحكم هي تلك التي تحاول تعديل تكوين الموارد في النظام، مثل تغيير وضع التشغيل أو مؤقت وحدة المعالجة المركزية. مثال على التعليمات الحساسة لعنصر التحكم هو تحميل كلمة حالة معالج (IBM نظام /370). تحميل كلمة حالة المعالج من موقع في الذاكرة إذا كانت وحدة المعالجة المركزية في وضع النظام؛ خلاف ذلك، فإنه يطبق التراكب. تحميل كلمة حالة المعالج تحتوي على وحدات البت التي تحدد حالة وحدة المعالجة المركزية. على سبيل المثال، إحدى وحدات البت هذه هي بي بت، والذي يحدد ما إذا كانت وحدة المعالجة المركزية في وضع المستخدم أو في وضع النظام. يمكن للبرنامج الضار بسهولة تغيير وضع التشغيل إلى الامتياز وعنصر التحكم في النظام، إذا كان تنفيذ هذه التعليمات مسموحًا به في وضع المستخدم. ومن ثم، لحماية النظام، لا يمكن تنفيذ مثل هذه التعليمات إلا في وضع النظام. التعليمات الحساسة للسلوك هي تلك التي يتم تحديد سلوكياتها من خلال التكوين الحالي للموارد في النظام. مثال على التعليمات الحساسة للسلوك هو المكدس المنبثق في مسجل العلامات (POPF) (Intel IA-32). ينبثق من العلامات المنبثقة مسجلات العلم من مكدس محفوظ في الذاكرة. يمكن تغيير إحدى هذه العلامات، التي تسمى علامة تمكين المقاطعة، في وضع النظام فقط. إذا تم تنفيذ العلامات المنبثقة في وضع المستخدم بواسطة برنامج يحاول إظهار علامة تمكين العلامة، فستعمل العلامات المنبثقة باعتبارها لم يتم إجراء أي عملية (أي لا توجد عملية). لذلك، يعتمد سلوك العلامات المنبثقة على طريقة التشغيل، ما يجعلها حساسة للسلوك. أخيرًا، إذا لم تكن التعليمات حساسة لعنصر التحكم ولا حساسة للسلوك، فهي غير ضارة.
وفقًا لبوبك وجولدبيرغ (1974)، يمكن إنشاء برنامج مراقبة الأجهزة الافتراضية إذا كان يفي بثلاث خصائص:الكفاءة، وعنصر التحكم في الموارد، والتكافؤ. الكفاءة تستلزم تنفيذ جميع التعليمات غير الضارة مباشرة على الأجهزة دون أي تدخل من قبل برنامج مراقبة الأجهزة الافتراضية. يقترح عنصر التحكم في الموارد أنه لا يمكن لأي برنامج ضيف تغيير تكوين الموارد في النظام. يتطلب التكافؤ سلوكًا متطابقًا لبرنامج يعمل على جهاز ظاهري أو على نظام تشغيل تقليدي بدون الظاهرية. استثناء واحد هو الاختلاف في الأداء. يشير اقتراح بوبك وجولدبيرغ (أو النظرية) إلى أنه لا يمكن إنشاء برنامج مراقبة الأجهزة الافتراضية إذا كانت مجموعة التعليمات الحساسة عبارة عن مجموعة فرعية من مجموعة التعليمات المميزة. وهذا يعني أن التعليمات التي تتداخل مع الأداء الصحيح للنظام (أي التعليمات الحساسة، مثل تحميل كلمة حالة البرنامج) يجب أن تطبق التراكب دائمًا في وضع المستخدم. يوضح الشكل 2 نظرية بوبك وجولدبيرغ. 1
الشكل 2: نظرية بوبك وجولدبيرغ
أخيرًا، دعونا نناقش كيف يمكن التعامل مع فخ في نظام ما. على وجه التحديد، نصف التراكبات في سياق الظاهرية لوحدة المعالجة المركزية. يوضح الشكل 3 كيف يمكن لبرنامج مراقبة الأجهزة الافتراضية التعامل مع تطبيق التراكب على التعليمات. يمكن تقسيم وظائف التعامل مع التراكب في برنامج مراقبة الأجهزة الافتراضية إلى ثلاثة أجزاء رئيسية: المرسل والمخصص ومجموعة من الإجراءات الروتينية للمترجم الفوري. أولاً، تتسبب التعليمات المميزة في تراكب لمرسل برنامج مراقبة الأجهزة الافتراضية. إذا أدرك برنامج مراقبة الأجهزة الافتراضية أن التعليمات تحاول تغيير موارد النظام، فإنه يوجهها إلى المخصص؛ وإلا فإنه يرسلها إلى الإجراءات الروتينية للمترجم المقابل. يقرر المخصص كيفية تخصيص موارد النظام بطريقة غير متضاربة ويلبي طلب التعليمات وفقًا لذلك. تحاكي الإجراءات الروتينية للمترجم الفوري (المزيد عن المحاكاة قريبًا) تأثيرات التعليمات عند العمل على الموارد الظاهرية. يتم تمرير التحكم مرة أخرى إلى برنامج الضيف بناءً على التعليمات التي تأتي مباشرة بعد ذلك الذي تسبب في حدوث التراكب، عندما يتم التعامل مع التعليمات بشكل كامل (على سبيل المثال، تم).
الشكل 3: عرض تطبيق التراكب على مراقبة الأجهزة الافتراضية. يشتمل برنامج مراقبة الأجهزة الافتراضية على ثلاثة مكونات رئيسية: إجراءات المرسل والمخصص والمترجم الفوري
المراجع
- بوبك، ج، وجولدبيرغ، ر. (1974). المتطلبات الرسمية لبنيات الجيل الثالث الظاهرية الشائعة. جمعية آلات الحوسبة، المجلد 17، رقم 7.
اختبر معلوماتك
الملاحظات
هل كانت هذه الصفحة مفيدة؟
لا
هل تحتاج إلى مساعدة مع هذا الموضوع؟
هل تريد محاولة استخدام Ask Learn لتوضيح هذا الموضوع أو إرشادك خلاله؟