كاتب الموضوع :
نجم الخيال
المنتدى :
المواضيع المتفرقه للحاسوب
(3)
أنظمة التشغيل.. من البطاقات المثقبة إلى الويندوز:
لم يكن أول حاسوب رقمي ميكانيكي تم اختراعه عام 1833 على يد العالم الإنجليزي تشارلز باباج Charles Babbage في حاجة إلى نظام تشغيل، رغم أنه كان يتعامل مع برامج مختلفة.. ولم يظهر الجد الأعلى لنظم التشغيل إلا في خمسينات القرن العشرين.. في تلك الفترة كانت البرامج تُكتب على كروت مثقوبة ويتم إدخالها إلى الحاسب لتشغيلها، ثم تطبع النتائج على الأوراق.. وكانت عمليتي قراءة الكروت وطباعة النتائج تضيعان الكثير من الوقت، خصوصا مع البطء الشديد للحواسب في تلك الأيام، لهذا تم التفكير في نقل هاتين المهمتين إلى حاسب فرعي خاص يسمى حاسب التجميع
Batch Computer، حيث يقوم بتحميل عدد من البرامج معا على شريط ممغنط.. بعد هذا يقرأ الحاسوب الأصلي الشريط ويقوم بتحميل البرامج منه لتشغيلها على التتابع.. ولكي يتم هذا، كان لا بد من تشغيل برنامج خاص لقراءة هذه البرامج وتنفيذها.. هذا البرنامج هو الجد الأكبر لنظم التشغيل الحالية.. وبعد أن ينتهي عمل كل برنامج، يقوم برنامج التشغيل بتسجيل النتائج على شريط ممغنط، ثم يشغّل البرنامج التالي.. وبعد أن ينتهي تشغيل كل البرامج وتسجيل كل نتائجها على الشريط الممغنط الخاص بالمخرجات، يقوم العامل المختص بنقل شريط المخرجات يدويا إلى حاسب التجميع ليقوم بطباعة النتائج على الأوراق، في الوقت الذي يمكن فيه تشغيل شريط ممغنط آخر في الحاسب الأصلي.
كانت هذه إذن بداية الحاجة إلى برنامج يتحكم في عمل الحاسب وأجزائه، ويمكن من خلاله تشغيل البرامج الأخرى.. هذا البرنامج يعرف اليوم باسم نظام التشغيل Operating System.
في تلك الأثناء كانت الحاسبات الضخمة تُستخدم في العمليات الرياضية، وكانت البرامج تكتب لهذه الحواسب بلغة التجميع Assembly أو الفورتران FORTRAN.. وكانت هذه البرامج تعمل بواسطة نظم تشغيل مثل "نظام مراقبة الفورتران" Fortran Monitor System أو اختصارا FMS، أو نظام تشغيل أجهزة أي بي إم من طراز 7094 المعروف باسم IBSYS.
نظام التشغيل OS/360:
مع إطلاق شركة أي بي إم للجيل الثالث من الحواسب (المصنوعة بالدوائر المتكاملة)، بظهور عائلة الحاسب 360، طورت الشركة نظام التشغيل OS/360 ليكون قادرا على التعامل مع جميع أنواع حواسب هذه العائلة، الصغير منها والضخم، العلمي منها والتجاري، متعدد أطراف الإدخال والإخراج منها وما له طرف واحد.
ولكن نظرا لكل المتطلبات المطلوبة من نظام التشغيل OS/360، فقد جاء معقدا للغاية، ومكونا من ملايين السطور بلغة التجميع Assembly كتبها مئات المبرمجين.. ونتيجة لهذا كان نظام التشغيل يحتوي على آلاف وآلاف من الأخطاء، التي كان إصلاح خطأ منها يؤدي إلى مزيد من الأخطاء الجديدة في متاهة لا تنتهي، حتى إنّ فريد بروكس Fred Brooks أحد مصممي نظام التشغيل OS/360 كتب فيما بعد كتابا ساخرا يحكي فيه مأساة المبرمجين مع هذا النظام، وكانت على غلاف الكتاب صورة تمثل مجموعة من حيوانات ما قبل التاريخ عالقة في مستنقع من الوحل، كأبلغ تعبير عن تلك المعاناة!
لكن، وعلى الرغم من تلك العيوب، فقد حقّق نظام التشغيل OS/360 متطلبات معظم المستخدمين، خاصة مع امتلاكه ـ لأول مرة ـ القدرة على تشغيل أكثر من برنامج في نفس الوقت، فيما عرف باسم تعدد البرامج Multiprogramming، فقد كانت أنظمة التشغيل السابقة تعطّل الحاسوب عن العمل أثناء انتظارها لاكتمال قراءة البيانات من أحد الأشرطة، أو أثناء طباعة المخرجات، وهو ما كان يضيع 80% أو 90% من وقت الحاسوب بلا فائدة!!
لهذا كان الحل الذي قدمته عائلة الحاسب 360 ونظام التشغيل OS/360، هو تقسيم الذاكرة إلى عدة أجزاء، حتى يمكن تحميل عدد من البرامج معا، كل برنامج بجزء مستقل من الذاكرة.. وبينما ينتظر أحد البرامج انتهاء قراءة المدخلات أو كتابة المخرجات، يمكن أن ينفذ الحاسب برنامجا آخر في ذلك الوقت، وبذلك لا يكون هناك وقت مهدر.
الجدير بالذكر أن هذه الطريقة أنهت الحاجة إلى حاسب التجميع
Batch Computer، فقد صارت مهمته مجرد مهمة فرعية من مهام الحاسب 360 بفضل نظام التشغيل الذكي.. فما إن ينتهِ تنفيذ أحد البرامج، حتى يقوم نظام التشغيل بإزالته من جزء الذاكرة الذي يحتله، ثم يقوم بقراءة برنامج جديد من على الأقراص أو الشرائط، لتحميله في المساحة الخالية من الذاكرة.. وقد عُرفت هذه التقنية باسم "العمليات الطرفية اللحظية الخطية"
Simultaneous Peripheral Operation On Line أو اختصارا "العمليات الطرفية" Spool.
لكن رغم هذه الميزات، إلا أن أنظمة تشغيل الجيل الثالث من الحواسب لم تكن مفيدة للمبرمجين بقدر ما كانت مفيدة في التطبيقات العلمية والتجارية.. فقد كان على المبرمج أن ينتظر عدة ساعات لتتم ترجمة وتشغيل الكود الذي كتبه، وبالتالي لو أخطأ في حرف واحد فقط في برنامجه، فلن يعمل بصورة صحيحة عند تشغيله، وسيضيّع المبرمج نصف اليوم لتصحيح الخطأ وإعادة تشغيل البرنامج!.. هذا الوقت المهدر لن يكون من عمر المبرمج فحسب، بل كذلك من وقت الحاسب الذي يستخدمه.. تذكر أن الحواسب الشخصية لم تكن قد ظهرت بعد، وأن هذه الحاسبات الضخمة كانت ملكا للجامعات والشركات الكبرى، وتتكلف مئات الآلاف من الدولارات!
ولحل هذه المشكلة، تم ابتكار نظام مشاركة الوقت، حيث يكون لكل حاسب نهايات طرفية عديدة Peripherals لإدخال البيانات وإخراج النتائج، مما يسمح لأكثر من مستخدم أن يعملوا على نفس الحاسب في نفس الوقت.. وطبعا لم يكن هذا ممكنا إلا في وجود تقنية تعدد البرامج Multiprogramming.. لاحظ أننا نستخدم تقنية شبيهة اليوم عبر شبكة المعلومات الدولية Internet، فخوادم شبكة المعلومات الدولية Internet Servers تقدم الخدمة لعشرات المستخدمين في نفس اللحظة.. إلا أن النهايات الطرفية في هذه الحالة ليست مجرد لوحة مفاتيح أو طابعة، بل هي أجهزة الحاسب الخاصة بالعملاء، المتصلة بالخادم عن طريق شبكة المعلومات الدولية Internet.
يتبع,,,
|