ما هي البرمجة المتعددة؟

تعد البرمجة المتعددة أحد أكثر الأنواع الأساسية للمعالجة المتوازية التي يمكن استخدامها في العديد من البيئات المختلفة. بشكل أساسي ، يجعل من الممكن أن تكون العديد من البرامج نشطة في نفس الوقت ، بينما لا تزال تعمل من خلال معالج واحد. تتضمن وظائفه في هذه البيئة عملية مستمرة لإنجاز المهام المرتبطة بوظيفة برنامج واحد بالتتابع ، ثم الانتقال لتشغيل مهمة مرتبطة بالبرنامج التالي.

يختلف هذا النوع من المعالجة كثيرًا عن المعالجة المتعددة لأنه على الرغم من وجود العديد من البرامج النشطة حاليًا ، إلا أن المعالج الأحادي لا يقوم بتنفيذ الأوامر في نفس الوقت لجميع البرامج. بدلاً من ذلك ، يعالج المعالج كل برنامج ، وينفذ أمرًا واحدًا ، ثم ينتقل إلى البرنامج التالي في قائمة الانتظار. يظل البرنامج السابق نشطًا ، لكنه يدخل في حالة سلبية حتى يعود المعالج الأحادي إلى مقدمة قائمة الانتظار وينفذ الأمر الثاني.

من وجهة نظر المستخدم النهائي ، فإن العملية سلسة. فيما يتعلق بالوظائف الفعلية ، يبدو أن المستخدم يستخدم عدة تطبيقات مختلفة في نفس الوقت. وذلك لأن البرمجة المتعددة تستخدم المعالج الأحادي لتنفيذ الأوامر بسرعة. والنتيجة النهائية هي أن المستخدم يلاحظ القليل من الوقت ، إن وجد ، تأخير عند تصغير تطبيق واحد لأداء مهمة مرتبطة بتطبيق مختلف.

تُعرف الآلية داخل البرمجة المتعددة باسم المقاطعة. يتم منح كل مهمة مقدارًا محددًا من الوقت للمعالجة قبل أن تنتقل أنظمة التشغيل إلى البرنامج التالي والمهمة التالية. بمعنى ما ، تتعلق هذه الطريقة بالتوفيق بين عدة مهام في وقت واحد ، وتنفيذ جزء واحد من الإجراء المطلوب بسرعة ، ثم الانتقال إلى القيام بشيء بمهمة مختلفة قبل العودة إلى الوظيفة السابقة.

الذاكرة مهمة لهذا الشكل من المعالجة حتى يعمل بشكل صحيح. يجب أن تكون هناك سعة كافية لضمان أنه إذا واجه برنامج واحد ضمن قائمة الانتظار الدورية مشكلة ، فإنه لا يمنع التأخير أو يؤثر على تشغيل التطبيقات المفتوحة الأخرى. في نفس الوقت ، يجب أن يكون هناك نوع من حماية الذاكرة. إذا لم يكن الأمر كذلك ، فيمكن أن تؤدي مشكلة في أحد التطبيقات إلى إنشاء تأثير متتالي يؤدي إلى إيقاف تشغيل التطبيقات المفتوحة الأخرى أو إبطائها على الأقل.