اجيــــــــــــــال
انظمه التشغيل
نظام التشغيل يعرف عادة بتعريف بسيط يعرفه الكثير، وهو ان
نظام التشغيل عبارة عن وسيط بين التطبيقات و
الأجهزة Hardware
هذا تعريف البسيط يعطي صورة بسيطة جدا لنظام
التشغيل، بمعنى انه تعريف مجرد ينفع للمبتدئين في دراسة الحاسب فقط، و لكن لا
يعطي صورة كبيرة تلخص نظام التشغيل من نظرة برمجية لها، إذا ما هو التعريف
الاخرى الممكنة ؟.
نظام التشغيل عبارة عن مدير للموارد resource
manager، نقصد بكلمة موارد اي جزء في
النظام تستهلكه التطبيقات، على سبيل المثال: جهاز المودم عبارة عن
مورد يوفر الاتصال بالعالم الخارجي، و تستهلكه التطبيقات كالاسبلورر و غيره،
إذا هو مورد. تعريف اخر جدير بالإشارة هو ان
نظام التشغيل عبارة عن مقدم للخدمات، بمعني انه يقلل
عناء مبرمجي البرامج لأستخدام الخدمات التي يوفرها لجعل كتابة برامجهم
اسهل في الكتابة أو توفير هذه البرامج الفرصة لمعالجة الأخطاء التي ممكن ان
تحدثها هذه البرامج. هذان التعريفان بينهما
مساحة مشتركة فتوفير الخدمات يتخلله إدارة لها ولكن ليس
دائما، على سبيل المثال: توفير خدمة معالجة الأخطاء للبرامج ( الأخطاء
التي نقصد بها هي الأخطاء التي تؤثر على سير تنفيذ نظام التشغيل او المعالج
مثل القسمة على الصفر او وصول غير صحيح
للذاكرة). القائمة التالية تعرض بعض الخدمات التي
توفرها انظمة التشغيل و تصنيف له من ناحية الضرورة لكي يعمل نظام
التشغيل:
1- إدارة الذاكرة Memory Managment (ضروري)
.
2- إدارة العمليات Processes Managment ( ضروري)
.
3- إدارة الملفات File Managment (ضروري).
4- إدارة الإدخال و الإخارج I/O System Managment .
5- إدارة الشبكات Network Managment ( ليس
ضروريا ).
بعض الخدمات التي يوفرها نظم التشغيل:
1- الحماية: أنظمة التشغيل التي تدعم تعدد المهام Multitasking تسمح بان
بعمل برنامجين او اكثر في نفس الوقت، لذلك يجب توفير
حماية لكل مهمة من المهام الأخرى ( المهمة هي برنامج
تحت التنفيذ ايضا تسمى عملية Process ). بإختصار
يجب ان يوفر نظام التشغيل ألية لحماية موارد
العمليات من بعضها البعض.
2- اكتشاف الأخطاء .
3- تنفيذ البرامج : يجب على نظام التشغيل تحميل
البرامج في الذاكرة، ليتم تنفيذها.
هذه المقال ليس كاملا بل سطور قليله تعرفك بنظام التشغيل بأختصار،
على امل ان تكون صورة اتضحت
Batch Systems
صممت خلال خمسينيات القرن العشرين للتحكم بالكمبيوترات المركزية. في ذلك الوقت
كانت الكمبيوترات أجهزة ضخمة تستخدم مايسمى البطاقات المثقوبة (punched cards)للإدخال والطابعات الخطية (line
printers) للإخراج ومحركات الأشرطة (tape drives) كوسط تخزين ثانوي.أي برنامج سيُنفَذ يسمى مهمة (Job).عندما يرغب المبرمج بتنفيذ مهمة ما يرسل
طلب إلى غرفة العمليات مرفق بالبطاقة المثقوبة للبرنامج والبيانات. ليس للمبرمج أي
تحكم أو تفاعل مع النظام.تتم معالجة البطاقة بواسطة مشغل (operator) إذا كان البرنامج ناجحًا تُرسل نتيجته إلى المبرمج, وفي حالة
فشله تُرسل نسخة بالخطأ. كان نظام التشغيل خلال هذه الفترة بسيط جدًا ،مهمته
الوحيدة التأكد من أن جميع المصادر قد انتقلت من مهمة لأخرى
لاستخدام أنظمة المشاركة الزمنية (Time-Sharing Systems)
مصادر نظام الكمبيوتر بكفاءة ظهر مصطلح البرمجة المتعددة (multiprogramming). تتلخص فكرته في تحميل أكثر من مهمة في الذاكرة ويتم تخصيص مصدر واحد للمهمة التي تحتاجه بشرط أن يكون المصدر متاح في تلك اللحظة. مثلاً : عندما يستخدم برنامج ما جهاز الـ ادخال/اخراج تكون وحدة المعالجة المركزية (CPU) متاحة فيمكن استخدامه بواسطة برنامج آخر.البرمجة المتعددة قادت إلى فكرة أخرى “مشاركة الوقت” (time sharing) تتلخص في إمكانية مشاركة المصادر بين المهام المختلفة, كل مهمة تستطيع حجز المصدر لفترة زمنية معينة. ولأن الكمبيوتر أسرع من الإنسان كل مستخدم يشعر بأن كامل النظام يخدمه.البرمجة المتعددة ومشاركة الوقت طورت من كفاءة نظام الكمبيوتر بشكل كبير وأصبح يحتاج بدوره نظام تشغيل أكثر تعقيدًا. فأصبحت نظم التشغيل تحتاج للقيام بالجدولة (scheduling) أي حجز المصادر لبرامج مختلفة واتخاذ القرار :” أي برنامج يجب أن يستخدم هذا المصدر؟”.
خلال هذه الفترة العلاقة بين جهاز الكمبيوتر والمستخدم تغيرت أيضًا. أصبح
المستخدم يستطيع التعامل مع النظام مباشرة دون الحاجة إلى وجود مشغل. وظهر كذلك
مصطلح جديد : عملية (process).المهمة هي البرنامج الذي سينفذ. العملية هي البرنامج الموجود في
الذاكرة منتظرًا المصادر...
الأنظمة الشخصية (Personal Systems)
بظهور الحاسبات الشخصية ظهرت أيضًا الحاجة لنظم تشغيل خاصة بتلك الأنواع من
الحاسبات. فظهر مايسمى بالـ single-user operating systems مثل الـDOS
الأنظمة المتوازية (Parallel Systems)
الحاجة إلى سرعة أكبر وكفاءة أكثر قادت إلى تصميم الأنظمة المتوازية parallel.تتلخص في وجود أكثر من وحدة معالجة مركزية
على نفس الجهاز. كل وحدة معالجة تُستخدم لخدمة برنامج أو جزء من برنامج مايعني أن
أكثر من مهمة ممكن أن تُنفذ بالتوازي بدلاً من التسلسل. نظام التشغيل لمثل هذه
الأنظمة أكثر تعقيدًا من تلك المستخدمة في وجود وحدة معالجة واحدة.
الأنظمة الموزعة (Distributed Systems)
الشبكات وشبكة الانترنت أوجدت بُعد جديد في عالم نظم التشغيل. المهمات التي
كانت سابقًا تتم على كمبيوتر واحد أصبحت الآن مشتركة بين كمبيوترات تبعد عن بعضها
آلاف الأميال. أصبح جزء من البرنامج يعمل على كمبيوتر والجزء الآخر يعمل على
كمبيوتر آخر متصل معه بواسطة شبكة كشبكة الانترنت مثلاً. إضافة إلى أن المصادر
أصبحت موزعة.قد يحتاج البرنامج ملفات موجودة في جزء مختلف من العالم، الأنظمة
الموزعة تجمع بين مزايا أجيال النظم السابقة والمهام الجديدة كالتحكم بالأمان.
الآن أصبحت نظم التشغيل أكثر تعقيدًا، وأصبح نظام التشغيل بحاجة إلى التعامل
مع مصادر مختلفة لنظام الكمبيوتر وصار أشبه بمنظمة تحوي عدة مدراء. كل مدير مسئول
عن إدارة قسمه وهو بدوره بحاجة إلى التعاون مع الأقسام الأخرى. نظم التشغيل
الحديثة عليها القيام بأربع واجبات على الأقل : إدارة الذاكرة، إدارة
العمليات, إدارة الجهاز ،و إدارة الملفات. كالعديد من المنظمات التي تحوي أقسامًا
لا تندرج تحت إدارة معينة، نظام التشغيل يحوي أيضًا هذا القسم وهو ما يُسمى واجهة
المستخدم (user interface) أو a shell وهو المسئول عن
الاتصال خارج نظام التشغيل.
المكتبات وأنظمة التشغيل
بعد فترة وجيزة من تطوير الحاسوب، تم اكتشاف أن هناك مهام
معينة تكون مطلوبة في برامج مختلفة؛ إن مثالا قديما على ذلك كان حساب بعض الدوال الرياضية الأساسية. ومن أجل الفعالية، فقد تم جمع
نسخ نموذجية من تلك الدوال ووضعها في مكتبات تكون متاحة لمن يحتاجها. إن مجموعة
المهام الشائعة بعض الشئ والتي تتعلق بمعالجة كتل البيانات الخاصة
"بالتحدث" إلى أجهزة الإدخال والإخراج المختلفة، ولذلك تم تطوير مكتبات
لها سريعا.
بانتهاء الستينات من القرن العشرين، ومع الاستخدام الصناعي
الواسع للحاسوب في العديد من الأغراض، أصبح من الشائع استخدامه لإنجاز العديد من
الوظائف في المؤسسات. بعد ذلك بفترة وجيزة أصبح متاحا وجود برامج خاصة لتوقيت
وتنفيذ تلك المهام العديدة. إن مجموع كل من إدارة "الأجزاء الصلبة" وتوقيت المهام أصبح معروفا
باسم نظام التشغيل؛ من الأمثلة القديمة على هذا النوع من
أنظمة التشغيل القديمة كان OS/360 الخاص بـ IBM.
إن التطوير الرئيسي التالي في أنظمة التشغيل كان timesharing - وفكرته تعتمد على أن عددا من
المستخدمين بإمكانهم استخدام الآلة في وقت واحد وذلك عن طريق الاحتفاظ بكل برامجهم
في الذاكرة وتنفيذ برنامج كل مستخدم لمدة قصيرة وبذلك يصبح وكأن كل مستخدم يملك كل
منهم حاسوبًا خاصًا به. إن مثل هذا التطوير يتطلب من نظام التشغيل بأن يقدم لكل
برامج المستخدمين "آلة تخيلية" وذلك لمنع برنامج المستخدم الواحد من
التداخل مع البرامج الأخرى (بالصدفة أو التصميم). إن مدى الأجهزة التي يجب أن
تتعامل معها نظم التشغيل قد تمدد؛ من الأمثلة الملاحظة كان القرص الصلب؛ إن فكرة
الملفات الفردية والترتيب البنائي المنظم للادلة "directories" (حاليا يطلق عليها في
الغالب مجلدات "folder") قد سهلت
وبشكل كبير استخدام هذه الأجهزة للتخزين الدائم. من الأمثلة الحديثة المطبقة تماما
هي الأدوات المكتبية office suite وهي عبارة عن
برامج ذات صفات مشتركة لأداء مهام المكتب الشائعة. إن متحكمات الوصول الآمن سمحت
لمستخدمي الحاسوب بالوصول فقط إلى الملفات والأدلة والبرامج التي لديهم تصريح
باستخدامها كانت أيضًا شائعة.
ربما تكون آخر إضافة لنظام التشغيل كانت عبارة عن أدوات
تزود المستخدم بواجهة مستخدم رسومية معيارية. بينما كانت هناك بعض الأسباب التقنية
لضرورة ربط واجهة المستخدم الرسومية (GUI) مع باقي أجزاء نظام
التشغيل، فقد سمح ذلك لبائع نظام التشغيل بجعل كل البرامج الموجهة لنظام تشغيله
تمتلك نفس الواجهة.
خارج هذه المهام الداخلية "core"، فإن نظام التشغيل غالبًا
ما يكون مزودًا بمجموعة من الأدوات الأخرى، بعض منها ربما يملك اتصالًا ضئيلًا
بهذه المهام الداخلية الأصلية ولكن وجد أنها مفيدة لعدد كافي من المستهلكين مما
جعل المنتجين بضيفونها، فعلى سبيل المثال ماك أو.إس عشرة يقدم مع تطبيق لتحرير الفيديو الرقمي.
نظم تشغيل الحواسيب الأصغر ربما لا تقدم كل هذه المهام. نظم
التشغيل للمايكروكمبيوتر القديم ذي الذاكرة وقدرات المعالجة المحدودتين كانت لا
تقدم كل المهام، والحواسيب المدمجة دائما إما تملك نظم تشغيل متخصصة أو لا تملك
نظام تشغيل بالكلية، مع برامجه التطبيقية المتخصصة والتي تؤدي المهام التي من
الممكن أن تعود بطريقة أخرى إلى نظام التشغيل
0 التعليقات:
إرسال تعليق