عندما تكلمنا في مقالات سابقة عن أجهزة الكمبيوتر قلنا أن مفهوم الكمبيوتر يتجاوز مجرد اللابتوب الذي نستخدمه ليشمل جهاز الكمبيوتر في ساعتك ومحمولك وحتى أجهزة الكمبيوتر فائقة السرعة التي تحلل مليارات البيانات في الثانية الواحدة. نريد جهاز كمبيوتر يعمل بدقة وبسرعة وثمنه مناسب ويستهلك طاقة قليلة ويصعب إختراقة ولا يعطل. ترتيب الأولويات هنا يعتمد على الاستخدام. اللابتوب العادي يكون الثمن عادة من أهم الأولويات. لكن الثمن يتراجع عندما تُستخدم أجهزة الكمبيوتر في بعض المجالات الحيوية مثل المجالات الأمنية والحربية وداخل غرف العمليات. لكن حين يتراجع الثمن أي الأولويات الأخرى تتقدم؟ إذا كنا نتكلم عن المحاكاة الدقيقة للعمليات الكيميائية فالدقة والسرعة تتقدمان لأن تلك الأجهزة مع البرمجيات اللازمة تُستخدم في إكتشاف العقارات الطبية (مثل فاكسين الكوفيد الذي مازال يحير العالم حتى الآن). أم حين نتكلم عن الاستخدام داخل غرف العمليات أو أثناء العمليات الحربية فنحن نتكلم عن أجهزة كمبيوتر لا يجب أن تعطل مهما حدث، وهذا مقالنا اليوم.
في يوم السبت الموافق 26 نوفمبر من سنة 2011 ومن قاعدة كيب كانافاريل بولاية فلوريدا الأمريكية إنطلقت السفينة الفضائية التابعة لوكالة ناسا متجهة إلى كوكب المريخ لتصل هناك يوم الإثنين الموافق 6 أغسطس من سنة 2012 تحمل على متنها المركبة كريوسيتي. هذه المركبة تهبط على مكان لم يطأه بشر من قبل ويجب أن تجوب أرجاء المكان تجمع العينات وتحللها وترسل إلى الأرض أطنان من المعلومات. رحلة هذه السفينة وهبوط المركبة على سطح المريخ لا يخلو من مفاجأت ولحظات رعب قد نتكلم عنها في مقال آخر. ما يهمنا في هذا الأمرالآن أن مشروع كهذا تكلف ما يقرب من عشرة مليارات من الدولارات لا يجب أن يفشل بسبب أي عطل في جهاز الكمبيوتر على متن كريوسيتي. هذا مثال آخر على وضع عدم التعطل على رأس قائمة الأولويات.
أي جهاز كمبيوتر يتركب من عدة مكونات إلكترونية داخلية ومجموعة من البرمجيات المعقدة التي تعمل عليها. أي جزء من تلك الأجزاء سواء البرمجيات أو المكونات الإلكترونية يمكن أن يتعطل ويتسبب في فشل مشروع مهم أو كارثة إنسانية. هنا يجب أن نعرف أولاً ماذا نقصد بالتعطل؟
أول فكرة قد تخطر على بالنا أن تعطل الشئ معناه توقفه عن العمل. هذا نوع من الأعطال. النوع الآخر هو أن يستمر هذا الشئ في العمل وينتج نتائج خاطئة نتيجة لعطل صغير فيه. إذا توقف الشئ عن العمل فمن السهل إكتشاف ذلك عن طريق إرسال إشارات معينة إلى جميع الأجزاء في جهاز الكمبيوتر ثم ترد تلك الأجزاء على الإشارات والجزء الذي لا يرد يعتبر متوقف عن العمل ويتم فصل الطاقة عنه، يحدث ذلك كل عدة ثوان أو دقائق أو ساعات حسب أهمية المهمة المكلف بها جهاز الكمبيوتر. أما إكتشاف الأجزاء التي تنتج نتائج خاطئة فأصعب. من الطرق التي تساعد على إكتشاف تلك النوعية من الأعطال هى ارسال بعض العمليات الحسابية إلى ثلاثة أجزاء مختلفة، إذا جاءت النتائج متطابقة فالكل يعمل بطريقة صحيحة. أما إذا إختلفت واحدة منها فهي التي بها العطل ويجب فصل الطاقة عنها. طبعاً يتبين لنا من ذلك الوصف أن طرق إكتشاف الأعطال هذه تجعل الجهاز أبطأ وهذا ثمن لابد من دفعه. هناك ثمن آخر وهو وجوب وجود عدة نسخ من كل قطعة مهمة في جهار الكمبيوتر حتى إذا تعطلت إحداها وتم فصل الطاقة عنها تأخذ الأخرى مكانها. هذا كله يجعل البرمجيات التي تتحكم في تلك الأجهزة أكثر تعقيداً بكثير من البرمجيات العادية.
أردت من هذا المقال تعريف القارئ الكريم ببعض الأشياء المتعلقة بتصميم أجهزة الكمبيوتر والتي صارت أكثر تعقيداً بكثير مما كانت عليه من عشر سنوات فقط. تطورت أجهزة الكمبيوتر تطوراً كبيراً وهي تكنولوجيا صغيرة السن فمنذ ثمانية عقود لم تكن هناك أقسام لهندسة وعلوم الحاسب أما الآن فأجهزة الكمبيوتر تتحكم في كل صغيرة وكبيرة في حياتنا. لكن للأسف لم تتطور مناهجنا الدراسية بنفس السرعة. أرجو أن تكون هناك مواد دراسية في كليات الحاسبات والمعلومات والهندسة في مصر ليس فقط للتصميم العادي لأجهزة الكمبيوتر بل أيضاً لتصميم الأجهزة فائقة السرعة وتصميم الحاسبات التي يصعب إختراقها والتي لا تعطل بسهولة بالإضافة إلى البرمجيات اللازمة لكل ذلك، وعدم الإكتفاء بالبرمجة العادية مثل كتابة تطبيق لأجهزة المحمول التي يستطيع الآن أي شخص أن يتقنها بعد متابعة بعض الدروس البسيطة على الإنترنت.