ما هو نظام التشغيل ؟
يعرف عادة بتعريف بسيط يعرفه الكثير، وهو ان نظام التشغيل عبارة عن وسيط بين التطبيقات و الأجهزة 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)

الأنظمة الشخصية (Personal Systems)