بواسطة تعددية البرمج (Multiprogramming) یمكن للمعالج ان يعمل على اعداد كبيرة جدا من المهام

بواسطة تعددية البرمج (Multiprogramming) یمكن للمعالج ان يعمل على اعداد كبيرة جدا من المهام

يعرف نظام التشغيل بكيفيات وطرق مختلفة ومن وجهات نظر مختلفة تعتمد على الجهة التي ينظر بها الى مميزاته وفوائده واحد هذه التعريفات تلخص نظام التشغيل بأنه البيئة التي تعمل ضمنها البرامجيات واحدى اهم المميزات التي يحملها نظام التشغيل هي تعددية البرامج (Multiprogramming) التي تزيد من استخدام المعالج (CPU) من خلال تنظيم الاعمال (البيانات والاوامر – Code and data) بشكل يجعل المعالج في حالة عمل دائم.
وتعتمد الية تعددية البرامج (Multiprogramming) على وضع عدة عمليات (Multiple jobs) في الذاكرة او بالاحرى ضمن تجمع المهام (Jobs pool) ضمن القرص الصلب بما ان الذاكرة الرئيسية (Main memory) لا تستوعب الكثير, وتجمع المهام (Jobs pool) يتضمن كافة المهام التي تنتظر التوزيع على الذاكرة الرئيسية (Main memory) ليتم انجازها بعد ذلك من قبل المعالج.

مخطط لنظام تعددية البرامج (Multiprogramming)

مخطط لنظام تعددية البرامج (Multiprogramming)

بعد انتظام الاعمال في تجمع المهام يقوم نظام التشغيل بالتبديل بينها بإستمرار للابقاء على المعالج في حالة عمل مستمرة فإذا ما احتاجت احدى العمليات الى عملية ادخال او اخراج من او الى المستخدم تم تأخيرها لحين حصولها على الادخال او الاخراج المطلوب وادخال عملية اخرى محلها لتتم معالجتها الامر اشبه بالكثير مما يجري في حياتا اليومية كعمل المحامي مثلا الذي يعمل على قضية اخرى بينما ينتظر قيام موعد المحاكمة للقضية الاولى, فيميل المحامون الاكثر انشغالا الى ان يكونوا اكثر حنكة وسياسة للتنظيم بين العملاء المتعددين لهم.
ان جوهر ما يقوم به نظام التشغيل للتنظيم بين العمليات المختلفة هو ما يسمى بمشاركة الوقت (Time sharing) او تعددية الوظائف (Multitasking) والذي يتطلب نظاما يقدم امكانية تفاعل مباشرة مع المستخدم فيحصل المستخدم على نتائج مباشرة انية حين توجيه الاوامر بواسطة لوحة المفاتيح (Keyboard) او الفأرة (Mouse) وذلك لتلبية احتياجات الادخال للمهام التي يقوم المعالج بالعمل عليها وتحتاج الى ادخال اني لاستكمال نتائجها. كما ان الانظمة العاملة بمشاركة الوقت (Time sharing) توفر امكانية العمل لعدة مستخدمين في نفس الوقت حيث يخصص برنامج معين لكل مستخدم في الذاكرة ويخصص وقت معالجة منفصل لكل برنامج.
حتى الان لم ندخل في مسمى العملية (Process) ولكن مع الكلام عن المعالجة يجدر التعرف على هذا المصطلح المهم في مجال نظم التشغيل. ان المهمة التي تدخل الى الذاكرة لا تزال تسمى بتسميتها (مهمة) أي (Job) او (Task) ولكن بعد ان تدخل المهمة مرحلة المعالجة تسمى عندئذ بالـعملية (Process) والذي يعرف بإختصار بأنه المهمة في اثناء وقت تنفيذها.
وتعرف العملية التي يقوم خلالها نظام التشغيل بالتبديل بين العمليات بالتبديل (Swapping) كما يوفر نظام التشغيل مجموعة اخرى من الادوات منها:

1. نظام الملفات (File system)
2. الية حماية المصادر (الادخال والاخراج) من الاستخدام غير الملائم من قبل المهام (Protecting resources from inappropriate use)
3. الية تنظيم الاعمال والتواصل بين المهام (Job synchronization and communication)
4. ضمان عدم حدوث مأزق في تنظيم تبادل العمليات (Deadlock)

ــ النص ترجمة للمقطع 1.4 من كتاب اساسيات نظم التشغيل (Operating system concepts) الكتاب الاكثر شيوعا في مادة نظم التشغيل في العالم