الاستباق (الحوسبة)
This article needs additional citations for verification. (February 2009) |
في الحوسبة ، الاستباق هو فعل مقاطعة مهمة قيد التنفيذ مؤقتًا ، بقصد استئنافها في وقت لاحق. تتم هذه المقاطعة بواسطة مجدول خارجي بدون مساعدة أو تعاون من المهمة. [1] : 153 يعمل هذا المجدول الاستباقي عادةً في حلقة الحماية الأكثر امتيازًا ، مما يعني أن المقاطعة ثم الاستئناف تعتبر إجراءات آمنة للغاية. تُعرف مثل هذه التغييرات على المهمة التي يتم تنفيذها حاليًا بواسطة المعالج بالتبديل السياقي .
وضع المستخدم ووضع النواة
في أي تصميم نظام معين، قد لا تكون بعض العمليات التي يقوم بها النظام قابلة للقطع. ينطبق هذا عادةً على وظائف النواة وانقطاعات الخدمة التي، إذا لم يُسمح لها بالعمل حتى اكتمالها ، فإنها تميل إلى إنتاج ظروف سباق تؤدي إلى طريق مسدود . إن منع المجدول من قطع المهام أثناء معالجته لوظائف النواة يبسط تصميم النواة على حساب استجابة النظام . يمكن أيضًا استخدام التمييز بين وضع المستخدم ووضع النواة ، الذي يحدد مستوى الامتياز داخل النظام، للتمييز بين ما إذا كانت المهمة قابلة للقطع حاليًا.
تحتوي معظم أنظمة التشغيل الحديثة على نوى استباقية ، وهي مصممة للسماح بتنفيذ المهام مسبقًا حتى في وضع النواة. ومن أمثلة أنظمة التشغيل هذه Solaris 2.0/SunOS 5.0، [2] Windows NT ، نواة Linux (2.5.4 والإصدارات الأحدث)، [3] AIX وبعض أنظمة BSD ( NetBSD ، منذ الإصدار 5).
تعدد المهام الاستباقي
يستخدم مصطلح تعدد المهام الاستباقي للتمييز بين نظام تشغيل متعدد المهام ، والذي يسمح بالاستباق في تنفيذ المهام، ونظام تعدد المهام التعاوني حيث يجب برمجة العمليات أو المهام صراحةً للاستجابة عندما لا تحتاج إلى موارد النظام.
بعبارات بسيطة: تتضمن تعدد المهام الاستباقي استخدام آلية مقاطعة تعمل على تعليق العملية التي يتم تنفيذها حاليًا واستدعاء مجدول لتحديد العملية التي يجب تنفيذها بعد ذلك. وبالتالي، ستحصل جميع العمليات على قدر معين من وقت وحدة المعالجة المركزية في أي وقت معين.
في تعدد المهام الاستباقي، يمكن لنواة نظام التشغيل أيضًا بدء تبديل السياق لتلبية قيد أولوية سياسة الجدولة ، وبالتالي استباق المهمة النشطة. بشكل عام، تعني الاستباق "الاستيلاء المسبق على". عندما تستولي المهمة ذات الأولوية العالية في تلك اللحظة على المهمة الجارية حاليًا، يُعرف ذلك بالجدولة الاستباقية.
يُستخدم مصطلح "التعددية الاستباقية للمهام" أحيانًا بشكل خاطئ عندما يكون المعنى المقصود أكثر تحديدًا، ويشير بدلاً من ذلك إلى فئة سياسات الجدولة المعروفة باسم الجدولة المشتركة للوقت ، أو تقاسم الوقت .
إن تعدد المهام الاستباقي يسمح لنظام الكمبيوتر بضمان "شريحة" منتظمة من وقت التشغيل لكل عملية بشكل أكثر موثوقية. كما يسمح للنظام بالتعامل بسرعة مع الأحداث الخارجية المهمة مثل البيانات الواردة، والتي قد تتطلب الاهتمام الفوري من عملية أو أخرى.
في أي وقت محدد، يمكن تصنيف العمليات إلى فئتين: تلك التي تنتظر الإدخال أو الإخراج (تسمى " قيد الإدخال/الإخراج ")، وتلك التي تستخدم وحدة المعالجة المركزية بالكامل (" قيد وحدة المعالجة المركزية "). في الأنظمة المبكرة، كانت العمليات غالبًا ما " تستطلع " أو " تنتظر مشغولاً " أثناء انتظار الإدخال المطلوب (مثل إدخال القرص أو لوحة المفاتيح أو الشبكة). خلال هذا الوقت، لم تكن العملية تؤدي عملاً مفيدًا، لكنها لا تزال تحتفظ بالتحكم الكامل في وحدة المعالجة المركزية. مع ظهور المقاطعات والتعدد الوقائي للمهام، يمكن "حظر" هذه العمليات المقيدة بالإدخال/الإخراج، أو تعليقها، في انتظار وصول البيانات اللازمة، مما يسمح للعمليات الأخرى باستخدام وحدة المعالجة المركزية. نظرًا لأن وصول البيانات المطلوبة من شأنه أن يولد مقاطعة، يمكن ضمان عودة العمليات المحظورة إلى التنفيذ في الوقت المناسب.
على الرغم من أن تقنيات تعدد المهام تم تطويرها في الأصل للسماح لمستخدمين متعددين بمشاركة جهاز واحد، فقد أصبح من الواضح أن تعدد المهام مفيد بغض النظر عن عدد المستخدمين. لقد أدركت العديد من أنظمة التشغيل، من الحواسيب المركزية إلى أجهزة الكمبيوتر الشخصية التي يستخدمها مستخدم واحد وأنظمة التحكم التي لا تستخدم أي مستخدم (مثل تلك الموجودة في المركبات الفضائية الآلية )، فائدة دعم تعدد المهام لعدة أسباب. يتيح تعدد المهام لمستخدم واحد تشغيل تطبيقات متعددة في نفس الوقت، أو تشغيل عمليات "خلفية" مع الاحتفاظ بالسيطرة على الكمبيوتر.
شريحة زمنية
الفترة الزمنية التي يُسمح فيها بتشغيل عملية في نظام تعدد المهام الوقائي تسمى عمومًا شريحة الوقت أو الكم . [1] : 158 يتم تشغيل المجدول مرة واحدة في كل شريحة زمنية لاختيار العملية التالية للتشغيل. يمكن أن يكون طول كل شريحة زمنية أمرًا بالغ الأهمية لموازنة أداء النظام مقابل استجابة العملية - إذا كانت شريحة الوقت قصيرة جدًا، فسيستهلك المجدول الكثير من وقت المعالجة، ولكن إذا كانت شريحة الوقت طويلة جدًا، فستستغرق العمليات وقتًا أطول للاستجابة للإدخال.
يتم جدولة المقاطعة للسماح لنواة نظام التشغيل بالتبديل بين العمليات عندما تنتهي فتراتها الزمنية، مما يسمح فعليًا بتقاسم وقت المعالج بين عدد من المهام، مما يعطي الوهم بأنه يتعامل مع هذه المهام بالتوازي (في وقت واحد). يُطلق على نظام التشغيل الذي يتحكم في مثل هذا التصميم نظام تعدد المهام .
دعم النظام
اليوم، تدعم جميع أنظمة التشغيل تقريبًا تعدد المهام الاستباقي، بما في ذلك الإصدارات الحالية من Windows و macOS و Linux (بما في ذلك Android ) و iOS و iPadOS .
كان نظام التشغيل المبكر للحواسيب الصغيرة الذي يوفر تعدد المهام الوقائي هو نظام التشغيل OS-9 من شركة Microware ، والذي يتوفر لأجهزة الكمبيوتر المستندة إلى Motorola 6809 ، بما في ذلك أجهزة الكمبيوتر المنزلية مثل TRS-80 Color Computer 2 عند تكوينه بمحركات الأقراص، [4] مع نظام التشغيل الذي توفره Tandy كترقية. [5] كان Sinclair QDOS [6] : 18 و AmigaOS على Amiga أيضًا أنظمة تشغيل حواسيب صغيرة توفر تعدد المهام الوقائي كميزة أساسية. تم تشغيل كلاهما على معالجات Motorola 68000 -family بدون إدارة الذاكرة. استخدم نظام التشغيل Amiga التحميل الديناميكي لكتل التعليمات البرمجية القابلة لإعادة التوطين (" قطع " في مصطلحات Amiga) لتنفيذ مهام متعددة بشكل استباقي لجميع العمليات في نفس مساحة العنوان المسطحة.
لم تدعم أنظمة التشغيل المبكرة لأجهزة الكمبيوتر الشخصية المتوافقة مع IBM مثل MS-DOS و PC DOS تعدد المهام على الإطلاق، ومع ذلك، دعمت أنظمة التشغيل البديلة مثل MP/M-86 (1981) و Concurrent CP/M-86 تعدد المهام الوقائي. قدمت أنظمة أخرى شبيهة بنظام يونكس بما في ذلك MINIX و Coherent تعدد المهام الوقائي على أجهزة الكمبيوتر الشخصية في حقبة الثمانينيات.
تتضمن الأنظمة المتوافقة مع MS-DOS اللاحقة والتي تدعم تعدد المهام/تعدد العمليات الوقائية بشكل أصلي Concurrent DOS و Multiuser DOS و Novell DOS (الذي سمي لاحقًا Caldera OpenDOS و DR-DOS 7.02 والإصدارات الأحدث). منذ Concurrent DOS 386 ، أصبح بإمكانها أيضًا تشغيل برامج DOS متعددة في نفس الوقت في أجهزة DOS افتراضية .
كان أقدم إصدار من Windows لدعم شكل محدود من تعدد المهام الاستباقي هو Windows/386 2.0 ، والذي استخدم وضع 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 ، والعديد من أنظمة التشغيل الأخرى المصممة للاستخدام في الأسواق الأكاديمية وأسواق الأعمال المتوسطة إلى الكبيرة.
على الرغم من وجود خطط لترقية تعدد المهام التعاوني الموجود في نظام التشغيل Mac OS الكلاسيكي إلى نموذج استباقي (وكانت واجهة برمجة التطبيقات الاستباقية موجودة في نظام التشغيل Mac OS 9 ، وإن كان بمعنى محدود [8] )، فقد تم التخلي عنها لصالح نظام التشغيل Mac OS X (المسمى الآن macOS) والذي، باعتباره هجينًا من نمط نظام Mac القديم و NeXTSTEP ، هو نظام تشغيل يعتمد على نواة Mach ومشتق جزئيًا من BSD ، والذي كان يوفر دائمًا تعدد مهام استباقيًا يشبه يونكس.
انظر أيضا
مراجع
- ^ ab Tanenbaum, Andrew (2015). Modern Operating Systems . Boston: Pearson. ISBN 978-0-13-359162-0. OCLC 870646449.
- ^ Khanna, S.; Sebree, M.; Zolnovsky, J. "Realtime scheduling in SunOS 5.0". Proceedings of the USENIX Winter Conference, 1992 : 375–390.
- ^ "ملاحظات الإصدار v2.5.4". أرشيفات نواة لينكس . منظمة نواة لينكس، المحدودة . تم الاسترجاع في 2021-07-03 .
- ^ داونارد، دان (سبتمبر 1983). "ديناميك أونو". قوس قزح . ص 236-240 . تم الاسترجاع في 9 مايو 2024 .
- ^ كتالوج TRS-80 لعام 1984. شركة Tandy Corporation. 1984. ص 53-54 . تم الاسترجاع في 14 مايو 2024 .
- ^ Pennell, Andrew (1985). The Sinclair QDOS Companion. Sunshine Books. ISBN 978-0-946408-69-6تم الاسترجاع بتاريخ 12 مايو 2024 .
- ^ "كيفية تعدد مهام البرامج ذات 16 بت و32 بت في نظام التشغيل Windows 95 (Q117567)". مؤرشف من الأصل في 2008-01-17 . تم الاسترجاع في 2008-01-17 .
- ^ "رد: سؤال للمبتدئين: ما هي المهمة الزرقاء". مؤرشف من الأصل في 2007-10-13 . تم الاسترجاع في 2007-03-29 .
