الاستباق (الحوسبة)

في مجال الحوسبة ، يُعرف الاستباق بأنه إجراء يقوم به مُجدوِل خارجي - دون مساعدة أو تعاون من المهمة - لإيقاف مهمة قيد التنفيذ مؤقتًا ، بهدف استئنافها لاحقًا. [ 1 ] : 153 عادةً ما يعمل هذا المُجدوِل الاستباقي ضمن حلقة الحماية ذات الامتيازات الأعلى ، مما يعني أن المقاطعة ثم الاستئناف يُعتبران إجراءين آمنين للغاية. تُعرف هذه التغييرات في المهمة قيد التنفيذ حاليًا للمعالج باسم تبديل السياق .

وضع المستخدم ووضع النواة

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

تحتوي معظم أنظمة التشغيل الحديثة على نواة استباقية ، مصممة للسماح بمقاطعة المهام حتى في وضع النواة. ومن أمثلة هذه الأنظمة: Solaris 2.0/SunOS 5.0، [ 2 ] وWindows NT ، ونواة Linux (الإصدار 2.5.4 والإصدارات الأحدث)، [ 3 ] و AIX، وبعض أنظمة BSD ( مثل NetBSD ، منذ الإصدار 5).

تعدد المهام الاستباقي

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

ببساطة: تتضمن تعدد المهام الاستباقي استخدام آلية مقاطعة تُعلق العملية الجارية حاليًا وتستدعي مُجدولًا لتحديد العملية التي يجب تنفيذها تاليًا. وبالتالي، ستحصل جميع العمليات على قدر من وقت وحدة المعالجة المركزية في أي وقت.

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

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

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

في أي وقت محدد، يمكن تصنيف العمليات إلى فئتين: العمليات التي تنتظر إدخالًا أو إخراجًا (وتُسمى " عمليات مُقيدة بالإدخال/الإخراج ")، والعمليات التي تستخدم وحدة المعالجة المركزية بشكل كامل (" عمليات مُقيدة بوحدة المعالجة المركزية "). في الأنظمة القديمة، كانت العمليات غالبًا ما تقوم بعملية " الاستقصاء " أو " الانتظار النشط " أثناء انتظار الإدخال المطلوب (مثل إدخال القرص أو لوحة المفاتيح أو الشبكة). خلال هذا الوقت، لم تكن العملية تُنفذ عملًا مفيدًا، ولكنها مع ذلك كانت تحتفظ بالسيطرة الكاملة على وحدة المعالجة المركزية. مع ظهور المقاطعات وتعدد المهام الاستباقي، أصبح من الممكن "حظر" هذه العمليات المُقيدة بالإدخال/الإخراج، أو تعليقها، في انتظار وصول البيانات اللازمة، مما يسمح لعمليات أخرى باستخدام وحدة المعالجة المركزية. وبما أن وصول البيانات المطلوبة يُولد مقاطعة، فإنه يُمكن ضمان عودة العمليات المحظورة إلى التنفيذ في الوقت المناسب.

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

شريحة زمنية

تُعرف الفترة الزمنية التي يُسمح فيها بتشغيل عملية ما في نظام تعدد المهام الاستباقي عمومًا باسم " الشريحة الزمنية" أو "الكمية الزمنية" . [ 1 ] : 158. يُشغَّل المُجدوِل مرة واحدة في كل شريحة زمنية لاختيار العملية التالية. يُعد طول كل شريحة زمنية عاملاً حاسمًا في تحقيق التوازن بين أداء النظام واستجابة العمليات؛ فإذا كانت الشريحة الزمنية قصيرة جدًا، سيستهلك المُجدوِل نفسه وقتًا معالجةً كبيرًا، أما إذا كانت طويلة جدًا، فستستغرق العمليات وقتًا أطول للاستجابة للمدخلات.

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

دعم النظام

اليوم، تدعم جميع أنظمة التشغيل تقريبًا تعدد المهام الاستباقي، بما في ذلك الإصدارات الحالية من Windows و Linux (بما في ذلك Android ) و Darwin (بما في ذلك macOS و iOS ).

كان نظام التشغيل OS-9 من شركة Microware ، والمتوفر لأجهزة الكمبيوتر التي تعتمد على معالج Motorola 6809 ، بما في ذلك أجهزة الكمبيوتر المنزلية مثل TRS-80 Color Computer 2 عند تهيئتها بمحركات أقراص، [ 4 ] مع توفير نظام التشغيل من قبل شركة Tandy كترقية. [ 5 ] كما كان نظاما التشغيل Sinclair QDOS [ 6 ] و AmigaOS على جهاز Amiga من أنظمة تشغيل أجهزة الكمبيوتر الصغيرة التي توفر تعدد المهام الاستباقي كميزة أساسية. وقد عمل كلا النظامين على معالجات دقيقة من عائلة Motorola 68000 بدون إدارة للذاكرة. استخدم نظام Amiga OS التحميل الديناميكي لكتل ​​التعليمات البرمجية القابلة للنقل (" chunks " كما يُطلق عليها في مصطلحات Amiga) لتعدد المهام الاستباقي لجميع العمليات في نفس مساحة العناوين المسطحة.

لم تدعم أنظمة التشغيل المبكرة لأجهزة الكمبيوتر الشخصية المتوافقة مع IBM ، مثل MS-DOS و PC DOS ، تعدد المهام على الإطلاق، بينما دعمت أنظمة تشغيل بديلة مثل MP/M-86 (1981) و Concurrent CP/M-86 تعدد المهام الاستباقي. كما وفرت أنظمة أخرى شبيهة بنظام Unix، بما في ذلك MINIX و Coherent، تعدد المهام الاستباقي على أجهزة الكمبيوتر الشخصية في ثمانينيات القرن الماضي.

تضمنت الأنظمة المتوافقة مع نظام MS-DOS والتي تدعم تعدد المهام/الخيوط المتعددة الاستباقية بشكل أصلي: Concurrent DOS و Multiuser DOS و Novell DOS (الذي سُمي لاحقًا Caldera OpenDOS و DR-DOS 7.02 والإصدارات الأحدث). ومنذ إصدار Concurrent DOS 386 ، أصبح بإمكانها أيضًا تشغيل برامج DOS متعددة في وقت واحد على أجهزة DOS افتراضية .

كان نظام التشغيل Windows/386 2.0 أول إصدار من نظام Windows يدعم شكلاً محدوداً من تعدد المهام الاستباقي ، حيث استخدم وضع Virtual 8086 الخاص بمعالج Intel 80386 لتشغيل تطبيقات DOS في أجهزة 8086 افتراضية ، تُعرف باسم "صناديق DOS"، والتي كان من الممكن استباقها. في أنظمة Windows 95 و98 وMe ، تم جعل تطبيقات 32 بت استباقية من خلال تشغيل كل منها في مساحة عنوان منفصلة، ​​بينما ظلت تطبيقات 16 بت تعمل بشكل تعاوني من أجل التوافق مع الإصدارات السابقة. [ 7 ] في نظام Windows 3.1x (الوضع المحمي)، كان يتم تشغيل النواة وبرامج تشغيل الأجهزة الافتراضية بشكل استباقي، لكن جميع تطبيقات 16 بت كانت غير استباقية وتتشارك نفس مساحة العنوان.

لطالما تم دعم تعدد المهام الاستباقي بواسطة Windows NT (جميع الإصدارات)، و OS/2 (التطبيقات الأصلية)، وأنظمة Unix والأنظمة الشبيهة بـ Unix (مثل Linux و BSD و macOS )، و VMS ، و OS/360 ، والعديد من أنظمة التشغيل الأخرى المصممة للاستخدام في الأسواق الأكاديمية وأسواق الأعمال المتوسطة إلى الكبيرة.

لم تدعم الإصدارات الأولى من نظام التشغيل ماك الكلاسيكي تعدد المهام على الإطلاق، حيث أصبح تعدد المهام التعاوني متاحًا عبر MultiFinder في نظام التشغيل 5 ، ثم أصبح معيارًا في نظام التشغيل 7. على الرغم من وجود خطط لترقية تعدد المهام التعاوني الموجود في نظام التشغيل ماك الكلاسيكي إلى نموذج استباقي (وكانت واجهة برمجة التطبيقات الاستباقية موجودة بالفعل في نظام التشغيل ماك 9 ، وإن كان ذلك بشكل محدود [ 8 ] )، فقد تم التخلي عن هذه الخطط لصالح نظام التشغيل ماك إكس (الذي يُسمى الآن macOS) ، وهو نظام تشغيل هجين يجمع بين نمط نظام ماك القديم ونظام NeXTSTEP ، ويعتمد على نواة Mach ومشتق جزئيًا من BSD ، الذي لطالما وفر تعدد مهام استباقيًا شبيهًا بنظام يونكس.

انظر أيضاً

مراجع

  1. 1 2 تانينباوم، أندرو (2015). أنظمة التشغيل الحديثة . بوسطن: بيرسون. ISBN 978-0-13-359162-0. OCLC 870646449 . 
  2. خانا، س.؛ سيبيري، م.؛ زولنوفسكي، ج. "الجدولة في الوقت الحقيقي في نظام التشغيل SunOS 5.0". وقائع مؤتمر USENIX الشتوي، 1992 : 375-390 .
  3. "ملاحظات الإصدار للإصدار 2.5.4" . أرشيفات نواة لينكس . منظمة نواة لينكس . تم الاطلاع عليه بتاريخ 3 يوليو 2021 .
  4. داونارد، دان ( سبتمبر 1983). "دايناميك أونو" . ذا رينبو . ص 236-240 . تم الاطلاع عليه في 9 مايو 2024 . 
  5. كتالوج TRS-80 لعام 1984. شركة تاندي. 1984. الصفحات 53-54 . تم الاطلاع عليه بتاريخ 14 مايو 2024 . 
  6. بينيل، أندرو (1985). دليل سينكلير كيو دوس . دار صن شاين للنشر. رقم ISBN 978-0-946408-69-6تم الاطلاع عليه بتاريخ 12 مايو 2024 .
  7. "كيفية تعدد المهام في برامج 16 بت و32 بت في نظام التشغيل ويندوز 95 (Q117567)" . مؤرشف من الأصل بتاريخ 17 يناير 2008. تم الاطلاع عليه بتاريخ 17 يناير 2008 .
  8. "ردًا على سؤال المبتدئين: ما هي المهمة الزرقاء؟" . مؤرشف من الأصل بتاريخ 13-10-2007 . تم الاطلاع عليه بتاريخ 29-03-2007 .