مستوى أولوية المقاطعة

يُعد مستوى أولوية المقاطعة ( IPL ) جزءًا من حالة مقاطعة النظام الحالية ، ويشير إلى طلبات المقاطعة التي سيتم قبولها حاليًا. يمكن الإشارة إلى مستوى أولوية المقاطعة في الأجهزة من خلال سجلات وحدة تحكم المقاطعة القابلة للبرمجة ، أو في البرامج من خلال قناع بت أو قيمة عددية صحيحة وشفرة مصدرية للخيوط. [ 1 ]

ملخص

قد يكون مستوى المقاطعات القائم على الأعداد الصحيحة صغيرًا جدًا، يصل إلى بت واحد فقط، بقيمتين فقط: 0 (تمكين جميع المقاطعات) أو 1 (تعطيل جميع المقاطعات)، كما هو الحال في معالج MOS Technology 6502. ومع ذلك، تسمح بعض البنى بنطاق أوسع من القيم، حيث تُمكّن كل قيمة طلبات المقاطعة التي تُحدد مستوى أعلى، بينما تمنع الطلبات من نفس المستوى أو مستوى أدنى.

قد يكون تحديد أولويات مختلفة لطلبات المقاطعة مفيدًا في محاولة تحقيق التوازن بين إنتاجية النظام وزمن استجابة المقاطعة . فبعض أنواع المقاطعات تتطلب استجابة أسرع من غيرها، ولكن قد لا يكون حجم المعالجة كبيرًا، لذا من المنطقي إعطاء أولوية أعلى لهذا النوع من المقاطعات. [ 2 ]

استُخدم التحكم في مستوى المقاطعة أيضًا لمزامنة الوصول إلى هياكل بيانات النواة. وبالتالي، كان معالج مقاطعة المجدول من المستوى 3 يرفع مستوى المقاطعة مؤقتًا إلى 7 قبل الوصول إلى أي من هياكل بيانات المجدول، ثم يخفضه إلى 3 قبل تبديل سياقات العمليات. مع ذلك، لم يكن مسموحًا لمعالج المقاطعة بخفض مستوى المقاطعة إلى ما دون المستوى الذي بدأ عنده، لأن ذلك قد يُخلّ بسلامة نظام المزامنة.

بالطبع، تضيف أنظمة المعالجات المتعددة تعقيداتها الخاصة، والتي لم يتم التطرق إليها هنا.

بغض النظر عما قد يدعمه الجهاز، فإن أنظمة يونكس النموذجية تستخدم مستويين فقط: المستوى الأدنى (تعطيل جميع المقاطعات) والمستوى الأقصى (تمكين جميع المقاطعات). [ 3 ] [ 4 ]

إعادة تشغيل نظام التشغيل OpenVMS

كمثال على أحد أكثر أنظمة معالجة بدء التشغيل تعقيدًا على الإطلاق، يدعم حاسوب VAX ونظام التشغيل VMS المرتبط به 32 مستوى أولوية، من 0 إلى 31. تُخصص الأولويات 16 وما فوق للطلبات الواردة من الأجهزة الخارجية، بينما تُستخدم القيم الأقل من 16 لمقاطعات البرامج (التي يستخدمها نظام التشغيل داخليًا لجدولة أنشطته). لا تُستخدم جميع القيم فعليًا، ولكن إليك بعضًا من أهمها:

  • المستوى 31 مخصص لمقاطعة "انقطاع التيار الكهربائي".
  • المستوى 24 مخصص لمقاطعة الساعة. لاحظ أن هذه المقاطعة لها أولوية أعلى من مقاطعات الإدخال/الإخراج.
  • تُستخدم المستويات من 20 إلى 23 لأجهزة الإدخال/الإخراج.
  • تُستخدم المستويات من 8 إلى 11 لمقاطعات التفرع . عندما يتلقى برنامج تشغيل مقاطعة جهاز (ذات أولوية من 20 إلى 23)، يُفترض به أن يُجري أقل قدر ممكن من المعالجة عند هذه الأولوية العالية؛ بدلاً من ذلك، إذا كانت هناك أي عمليات تستغرق وقتًا طويلاً، فيجب تأجيلها عن طريق طلب مقاطعة برمجية في النطاق من 8 إلى 11؛ عند تشغيل هذه المقاطعة، ستُستأنف المعالجة. يشبه هذا "النصف السفلي" وما يليه في نواة لينكس .
  • يتم استخدام المستوى 7 لمزامنة الوصول إلى هياكل بيانات جدولة العمليات.
  • يتم استخدام المستوى 4 لمهام ما بعد معالجة الإدخال/الإخراج - أي الإكمال النهائي لطلب QIO بما في ذلك إعادة النتائج إلى عملية التطبيق.
  • يُستخدم المستوى 3 لمقاطعة إعادة جدولة العملية. لا يُسمح لأي كود يُنفذ عند مستويات مقاطعة أعلى بافتراض وجود سياق عملية حالي (نظرًا لاحتمالية وجود عملية إعادة جدولة جارية). وعلى وجه الخصوص، لا يُسمح بحدوث أخطاء الصفحات عند هذا المستوى أو المستويات الأعلى.
  • يُستخدم المستوى 2 لمزامنة الوصول إلى هياكل البيانات الخاصة بكل عملية. عندما يحتاج نظام التشغيل إلى الوصول إلى سياق عملية ما، فإنه يرسل إلى تلك العملية شجرة بناء جملة مجردة خاصة بنظام التشغيل ، والتي تُنفذ في سياق العملية عند مستوى بدء التشغيل 2.
  • المستوى 0 هو المستوى الطبيعي لتنفيذ التعليمات البرمجية غير المقاطعة، بما في ذلك التعليمات البرمجية العادية للتطبيقات.

تحتوي أجهزة ألفا على دعم أصلي لـ IPLs. عندما تم نقل نظام التشغيل OpenVMS إلى معالجات إيتانيوم في عام 2001، تمت محاكاة مخطط IPL باستخدام الميزات التي توفرها أجهزة إيتانيوم.

انظر أيضاً

مراجع

  1. "فهم المقاطعات" . www.ibm.com . تم الاطلاع عليه بتاريخ 22-08-2024 .
  2. "الفرق بين مستوى أولوية المقاطعة ومستوى أولوية IRQ" . Super User . تم الاطلاع عليه بتاريخ 22-08-2024 .
  3. "أولويات المقاطعة - ما معناها فعلياً؟" . موقع تبادل المعلومات في الهندسة الكهربائية . تم الاطلاع عليه بتاريخ 22-08-2024 .
  4. "مقاطعات الأولوية | (استقصاء البرمجيات والتسلسل المتسلسل)" . GeeksforGeeks . 2017-07-28 . تم الاسترجاع في 2024-08-22 .