مؤقت حارس

المؤقت الحارس (بالإنجليزية: Watchdog timer، حرفيًّا مؤقت كلب الحراسة) هو مؤقت إلكتروني أو برمجي يُستخدم لكشف والتراجع عن الأخطاء في النظم الحاسوبية. خلال حالة العمل العادية، يعيد الحاسوب ضبط المؤقت ليمنع عداد المؤقت من الوصول إلى قيمته الدنيا أو العليا (حسب طبيعة عمل المؤقت). إذا حدث خطأ في العتاد أو خطأ برمجي، سيتعذر على الحاسوب إعادة ضبط المؤقت، وسينفذ وقت المؤقت وهو ما سيولد إشارة نفاذ الوقت. تُستخدم هذه الإشارة لبدء إجراءات تصحيحية. هذه الإجراءات التصحيحية تتضمن عادة وضع الحاسوب في حالة آمنة واستعادة مسار العمل الطبيعي له.

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

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

البنية والتشغيل

إعادة بدء المؤقت 
عملية إعادة بدء المؤقت الحارس، تسمى «ركل» المؤقت، وتُنفذ هذه العملية عبر منفذ للتحكم بالمؤقت. في المتحكمات الدقيقة التي تتضمن مؤقتًا حارسًا مدمجًا، يجري ركل المؤقت الحارس بتنفيذ تعليمة آلة خاصة أو عبر ضبط بت محدد في مسجل. مثالًا، تستخدم تعليمة CLRWDT في بعض متحكمات PIC من أجل ركل المؤقت الحارس.

في الحواسيب العاملة بنظم تشغيل، تستخدم المؤقتات الحارسة عبر سواق أجهزة. على سبيل المثال، في نظام تشغيل لينكس، سيقوم برنامج في مساحة المستخدم بركل المؤقت الحارس باستخدام سواق أجهزة خاص بالمؤقت الحارس، عادة سيكون ذلك بكتابة حرف صفر في dev/watchdog/. هذا السواق سيستخدم من أجل ضبط مدة نفاذ المؤقت ومن أجل بدء ووقف المؤقت.

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

المؤقت الحارس متعدد المراحل 
يمكن استخدام مؤقتين أو أكثر لتكوين مؤقت حارس متعدد المراحل، وهنا يشار لكل مؤقت على أنه مرحلة مؤقت أو بتبسيط مرحلة فقط. في المؤقتات الحارسة متعددة المراحل، تركل المرحلة الأولى فقط بواسطة المعالج. وعند نفاذ وقت مؤقت المرحلة الأولى، تبدأ إجراءات تصحيحية كما يبدأ مؤقت المرحلة التالية في العد. مع نفاذ الوقت في كل مؤقت، تبدأ إجراءات تصحيحية ويبدأ المؤقت التالي في العمل. عادة ما تستخدم مؤقتات المرحلة الواحدة من أجل إعادة بدء الحاسوب، بينما تستخدم المؤقتات متعددة المراحل من أجل تنفيذ عدة إجراءات تصحيحية مع جعل المرحلة الأخيرة مسؤولة عن إعطاء إشارة لإعادة بدء الحاسوب.

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

مراجع 

أنظمة مضمنة