ملخص
- لعمل نسخة افتراضية من جهاز الإدخال/الإخراج، ينبغي علينا اتباع خطوتين رئيسيتين: (1) إنشاء نسخة افتراضية من الجهاز و(2) عمل نسخة افتراضية من نشاط الإدخال/الإخراج الموجَّه إلى الجهاز.
- يستلزم إنشاء نسخة افتراضية من جهاز الإدخال/الإخراج مشاركة الجهاز عبر أنظمة تشغيل الضيف المتعددة.
- تمرّ عملية النسخ الافتراضي لنشاط الإدخال/الإخراج إلى جهاز الإدخال/الإخراج عبر وحدة التحكم في الجهاز. (يحتوي كل جهاز إدخال/إخراج على وحدة تحكم في الجهاز.)
- يمكن إرسال إشارة إلى وحدة التحكم في الجهاز بواسطة إما تعليمة إدخال/إخراج مميزة (المعرّفة في بنية الحاسوب) أو الإدخال/الإخراج المخطط بالذاكرة.
- تتم معالجة تعليمات الإدخال/الإخراج والعناوين المخططة بالذاكرة في وضع النظام لحماية أجهزة الإدخال/الإخراج التي تم استدعاؤها.
- إنَّ تعليمات الإدخال/الإخراج والعناوين التي تم تخطيطها بالذاكرة ليستضرورية، ومن ثم يمكن معالجتها بسهولة بواسطة برنامج تشغيل الآلة الافتراضية بعد تقييدها طبيعيًا فيه. (نظرًا إلى أنها مميزة وليست حرجة، فإنها بطبيعة الحال سوف تتلاءم مع برنامج تشغيل الآلة الافتراضية عند التشغيل في وضع المستخدم.)
- تستخلص أنظمة التشغيل ذات الأهداف العامة معظم تفاصيل أجهزة الإدخال/الإخراج وتجعلها قابلة للوصول فقط من خلال واجهات محددة جيدًا، مثل واجهة استدعاء النظام،وواجهة برنامج تشغيل الجهاز،وواجهة على مستوى التشغيل.
- بوجود برنامج تشغيل الآلة الافتراضية، يجب أن يتم دعم برامج تشغيل جهازين مختلفين لكل جهاز إدخال/إخراج مقابل واحد فقط في الأنظمة التقليدية غير الافتراضية.
- وعادة ما يتم التحايل على التكرار من برامج تشغيل الأجهزة بوجود برنامج تشغيل الآلة الافتراضية عن طريق تنسيق برنامج تشغيل الآلة الافتراضية مع نظام التشغيل الرئيسي على نفس الآلة. ومن ثم، يزيد برنامج تشغيل الآلة الافتراضية من فعالية برامج تشغيل الأجهزة لنظام التشغيل الرئيسي دون الحاجة إلى برامج تشغيل خاصة للأجهزة. (يطبّق مشروع Xen هذا النهج.)
- لأن جميع تعليمات الإدخال/الإخراج مميزة، فإنها تحتاج إلى أن يتم اعتراضها من قبل برنامج تشغيل الآلة الافتراضية.
- من حيث المبدأ، يمكن لـبرنامج تشغيل الآلة الافتراضية اعتراض طلبات الإدخال/الإخراج في أي من الواجهات الثلاث: واجهة استدعاء النظام، وواجهة برنامج تشغيل الجهاز، وواجهة مستوى التشغيل.
- قد يؤدي اعتراض طلبات الإدخال/الإخراج في واجهة مستوى التشغيل إلى فقدان بعض المعلومات الأساسية حول إجراءات الإدخال/الإخراج.
- يستلزم اعتراض طلبات الإدخال/الإخراج في واجهة استدعاء النظام (أي الواجهة ثنائية التطبيق) محاكاة برامج الواجهة ثنائية التطبيق لكل نظام تشغيل ضيف. (تمتلك أنظمة التشغيل المختلفة برامج واجهة ثنائية التطبيق مختلفة.)
- في الممارسة العملية، اعتراض طلبات الإدخال/الإخراج في واجهة برنامج تشغيل الجهاز هو عادةً الأسلوب الأكثر كفاءة لأنه يتجنب محاكاة برامج الواجهة ثنائية التطبيق لكل نظام تشغيل ضيف وفقدان بعض المعلومات الضرورية حول إجراءات الإدخال/الإخراج.