نظام التشغيل

في برمجة الكمبيوتر ، نظام وقت التشغيل أو بيئة وقت التشغيل هو نظام فرعي موجود في الكمبيوتر حيث يتم إنشاء البرنامج، وكذلك في أجهزة الكمبيوتر حيث من المفترض أن يتم تشغيل البرنامج. يأتي الاسم من تقسيم وقت التجميع ووقت التشغيل من اللغات المترجمة ، والذي يميز بشكل مماثل عمليات الكمبيوتر المشاركة في إنشاء البرنامج (التجميع) وتنفيذه في الجهاز المستهدف (وقت التشغيل). [1]

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

ملخص

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

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

تركز أغلب الأوراق العلمية حول أنظمة التشغيل على تفاصيل تنفيذ أنظمة التشغيل المتوازية. ومن الأمثلة البارزة لنظام التشغيل المتوازي Cilk ، وهو نموذج برمجة متوازي شائع. [2] تم إنشاء مجموعة أدوات التشغيل المتوازي لتبسيط إنشاء أنظمة التشغيل المتوازية. [3]

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

مقارنة بين المفاهيم المشابهة لنظام التشغيل
يكتب وصف أمثلة
بيئة التشغيل منصة برمجية توفر بيئة لتنفيذ التعليمات البرمجية Node.js و. NET Framework
محرك مكون من بيئة تشغيل تقوم بتنفيذ التعليمات البرمجية عن طريق تجميعها أو تفسيرها محرك JavaScript في متصفحات الويب، وآلة Java الافتراضية
مترجم نوع من المحركات التي تقرأ وتنفذ التعليمات البرمجية سطرًا بسطر، دون تجميع البرنامج بالكامل مسبقًا مُفسّر CPython ، وRuby MRI ، وJavaScript (في بعض الحالات)
مترجم JIT نوع من المترجمين يقوم بتجميع التعليمات البرمجية بشكل ديناميكي إلى تعليمات آلية في وقت التشغيل، مما يعمل على تحسين التعليمات البرمجية من أجل التنفيذ بشكل أسرع V8 ، مترجم PyPy

العلاقة مع بيئات التشغيل

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

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

تتضمن أمثلة أنظمة التشغيل المجمعة مباشرة ما يلي:

  • بين عامي 1983 و1984، عرضت شركة Digital Research العديد من تطبيقاتها التجارية والتعليمية لأجهزة الكمبيوتر الشخصية IBM على أقراص مرنة قابلة للتمهيد مرفقة مع SpeedStart CP/M-86 ، وهي نسخة مخفضة من CP/M-86 كبيئة تشغيل. [5] [6] [7] [8] [9]
  • احتوت بعض الإصدارات المستقلة من Ventura Publisher (1986–1993)، [10] Artline (1988–1991)، [10] Timeworks Publisher (1988–1991) و ViewMAX (1990–1992) [11] [12] [13] على إصدارات وقت تشغيل خاصة من GEM من Digital Research كبيئة وقت تشغيل لها. [10]
  • في أواخر تسعينيات القرن العشرين، كان معالج سطر الأوامر 4DOS من شركة JP Software متاحًا اختياريًا في إصدار وقت تشغيل خاص ليتم ربطه بوظائف الدفعات المترجمة والمشفرة مسبقًا في BATCOMP من أجل إنشاء ملفات قابلة للتنفيذ غير قابلة للتعديل من نصوص الدفعات وتشغيلها على الأنظمة التي لا تحتوي على 4DOS مثبتًا. [14]

أمثلة

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

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

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

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

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

الميزات المتقدمة

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

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

في الحد الأقصى، قد يوفر نظام وقت التشغيل خدمات مثل آلة P-code أو آلة افتراضية ، والتي تخفي حتى مجموعة تعليمات المعالج . هذا هو النهج الذي تتبعه العديد من اللغات المفسرة مثل AWK ، وبعض اللغات مثل Java ، والتي من المفترض أن يتم تجميعها في بعض أكواد التمثيل الوسيطة المستقلة عن الآلة (مثل البايت كود ). يبسط هذا الترتيب مهمة تنفيذ اللغة وتكييفها مع الآلات المختلفة، ويحسن كفاءة ميزات اللغة المعقدة مثل البرمجة العاكسة . كما يسمح بتنفيذ نفس البرنامج على أي جهاز دون خطوة إعادة تجميع صريحة، وهي ميزة أصبحت مهمة للغاية منذ انتشار شبكة الويب العالمية . لتسريع التنفيذ، تتميز بعض أنظمة وقت التشغيل بالتجميع الفوري للكود الآلي.

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

تاريخ

من الأمثلة المبكرة الجديرة بالملاحظة لأنظمة التشغيل هي المفسرون للغة BASIC و Lisp . تضمنت هذه البيئات أيضًا جامع قمامة . Forth هو مثال مبكر للغة مصممة ليتم تجميعها في كود تمثيل وسيط؛ كان نظام التشغيل الخاص بها عبارة عن آلة افتراضية تفسر هذا الكود. مثال آخر شائع، وإن كان نظريًا، هو كمبيوتر MIX الخاص بـ Donald Knuth .

في لغة C واللغات الأحدث التي تدعم تخصيص الذاكرة الديناميكي، كان نظام وقت التشغيل يتضمن أيضًا مكتبة تدير مجموعة ذاكرة البرنامج.

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

انظر أيضا

مراجع

  1. ^ ab Aho, Alfred V. ; Lam, Monica Sin-Ling ; Sethi, Ravi ; Ullman, Jeffrey David (2007). Compilers: Principles, Techniques and Tools (2nd ed.). Boston, MA, US: Pearson Education . ص. 427. ISBN 978-0-321-48681-3يجب على المترجم التعاون مع نظام التشغيل وبرامج الأنظمة الأخرى لدعم هذه التجريدات على الجهاز المستهدف.
  2. ^ Blumofe, Robert David [بالألمانية] ؛ Joerg, Christopher F.؛ Kuszmaul, Bradley C.؛ Leiserson, Charles E.؛ Randall, Keith H.؛ Zhou, Yuli (أغسطس 1995). "Cilk: نظام وقت تشغيل متعدد الخيوط فعال". وقائع ندوة ACM SIGPLAN الخامسة حول مبادئ وممارسة البرمجة المتوازية . رابطة آلات الحوسبة (ACM). ص 207-216. doi : 10.1145/209936.209958 . ISBN 9780897917001. S2CID  221936412.
  3. ^ معهد أبحاث المصدر المفتوح (2011). "مرحبًا بكم في الصفحة الرئيسية لمجموعة أدوات وقت التشغيل الأولي". مجموعة أدوات وقت التشغيل الأولي (PRT) . مؤرشف من الأصل في 2020-02-11 . تم الاسترجاع في 2020-01-11 .
  4. ^ Appel, Andrew Wilson (May 1989). "A Runtime System" (PDF) . جامعة برينستون . مؤرشف من الأصل (PDF) في 2013-12-30 . تم الاسترجاع في 2013-12-30 .
  5. ^ "Look What's New in the CP/M Applications Library for the IBM PC - Time Saver Offer - Get Concurrent CP/M Free" (PDF) (Product flyer). Pacific Grove, California, US: Digital Research, Inc. 1983. مؤرشف (PDF) من الأصل في 2020-02-11 . تم الاسترجاع في 2020-02-11 . […] يجعل SpeedStart برنامجنا أسهل في الاستخدام. تحتوي جميع البرامج الموجودة في مكتبة تطبيقات CP/M على إصدار SpeedStart الجديد من نظام التشغيل CP/M المضمن مباشرة على قرص البرنامج. كل ما عليك فعله لاستخدام هذه التطبيقات هو إدخال القرص في جهاز IBM PC الخاص بك ، وتشغيل النظام، وستكون جاهزًا للاستخدام. وهذا يلغي الحاجة إلى تحميل نظام تشغيل منفصل، وتغيير الأقراص، وتشغيل برنامج التطبيقات. يوفر لك برنامج SpeedStart من مكتبة تطبيقات CP/M أيضًا: […] يوفر لك إصدارًا مجانيًا وقت التشغيل من CP/M […] يزيل الحاجة إلى تثبيت كل برنامج تطبيقات جديد […] يمنحك التوافق مع نظام التشغيل القوي 16 بت من Digital Research ، CP/M-86 ، ونظام التشغيل المتزامن CP/M متعدد المهام المتطور . […]
  6. ^ "DRI تشحن نسخة 128 كيلو بايت من Dr. Logo" (PDF) . Micro Notes - معلومات تقنية عن منتجات Digital Research . المجلد 2، العدد 2. باسيفيك جروف، كاليفورنيا، الولايات المتحدة: Digital Research, Inc. مايو 1984. ص 4. NWS-106-002. مؤرشف (PDF) من الأصل في 2020-02-11 . تم الاسترجاع 2020-02-11 . […] ظهر Dr. Logo لأول مرة في سوق التجزئة في خريف عام 1983 لجهاز الكمبيوتر الشخصي IBM وصعد إلى قمة قائمة Softsel Hot List . تضمن الإصدار المخصص للبيع بالتجزئة SpeedStart CP/M ، وهو إصدار مختصر من CP/M يتم تشغيله تلقائيًا عند تشغيل النظام. […][1]
  7. ^ Digital Research Inc. (فبراير 1984). "تقديم برنامج لجهاز كمبيوتر IBM الشخصي بمكافأة 350 دولارًا!". BYTE (إعلان). المجلد 9، العدد 2. ص 216-217 . تم الاسترجاع في 22 أكتوبر 2013 .[2][3]
  8. ^ Digital Research Inc. (1984-02-07). "Introducing software for the IBM PC with a $350 bonus!". PC Magazine (Advertisement). المجلد 3، العدد 2. شركة PC Communications Corp. ص 50-51. ISSN  0745-2500. مؤرشف من الأصل في 2020-02-11 . تم الاسترجاع في 2020-02-11 .
  9. ^ Digital Research Inc. (ديسمبر 1983). "تقديم برنامج لجهاز IBM PC مع مكافأة 350 دولارًا!". مجلة PC (إعلان). المجلد 2، العدد 7. شركة PC Communications Corp. ص 306-307. ISSN  0745-2500. مؤرشف من الأصل في 2020-02-11. […] تقديم SpeedStart - نظام البرامج الحصري للتحميل والتشغيل. تقدم مكتبة تطبيقات CP/M أكثر من مجرد أفضل برامج IBM PC ذات العلامة التجارية في مجال الأعمال. يوفر كل تطبيق من تطبيقاتنا الراحة التي لا مثيل لها لنظام SpeedStart الحصري أحادي القرص. SpeedStart هو إصدار خاص من نظام التشغيل CP/M-86 القوي المدمج في كل قرص من أقراص البرامج الخاصة بنا. عندما تكون جاهزًا للعمل، ما عليك سوى تحميل القرص وتشغيل جهاز IBM PC الخاص بك والبدء! يلغي برنامج SpeedStart مهمة تحميل قرص تشغيل منفصل ثم "تثبيت" البرنامج التي تستغرق وقتًا طويلاً. في الواقع، يتيح لك نظام SpeedStart العمل بشكل أسرع وأسهل من أي برنامج آخر متاح اليوم. والأفضل من ذلك كله أنه متاح لك دون أي تكلفة إضافية. علاوة على ذلك، يمكن تجاوز برنامج SpeedStart لتشغيل البرامج تحت نظام تشغيل IBM PC المستقبلي - نظام Concurrent CP/M الرائع متعدد المهام . […]
  10. ^ abc Krautter, Thomas; Barnes, Chris J. (2006-06-14) [1999-12-29]. "GEM/4". تطوير GEM . مؤرشف من الأصل في 2013-03-16 . تم الاسترجاع 2020-01-12 . […] تم إصدار نظام التشغيل Artline 2 GEM/4 […] تم إجراء جميع التغييرات على GEM/4 بالتعاون مع Lee Lorenzen وDon Heiskell للحفاظ على التوافق مع ناشر Ventura . […]
  11. ^ إليوت، جون سي. (1999-05-09). "مقارنة بين GEM وViewMAX". Seasip.info . مؤرشف من الأصل في 2016-11-07 . تم الاسترجاع في 2016-11-07 .
  12. ^ بول ماتياس ر. (13/04/1997) [1993]. DRDOS6UN.TXT — Zusammenfassung der documentierten und undomentierten Fähigkeiten von DR DOS 6.0 (باللغة الألمانية) (60 ed.). مؤرشفة من الأصلي بتاريخ 2016-11-07 . تم الاسترجاع 2016/11/07 . {{cite book}}: |work=تم تجاهله ( مساعدة )
  13. ^ بول ماتياس ر. (1997/06/07) [1994]. NWDOS7UN.TXT — Zusammenfassung der documentierten und undomentierten Fähigkeiten von Novell DOS 7 (باللغة الألمانية) (85 ed.). مؤرشفة من الأصلي بتاريخ 2016-11-07 . تم الاسترجاع 2016/11/07 . {{cite book}}: |work=تم تجاهله ( مساعدة )
  14. ^ Georgiev, Luchezar I. (2008-11-02). "إصدار وقت التشغيل من 4DOS وBATCOMP وتشفير الملفات الدفعية". أرشيف مجموعة أخبار Narkive . مجموعة الأخبار : comp.os.msdos.4dos. مؤرشف من الأصل في 2020-01-11 . تم الاسترجاع في 2020-01-11 .

قراءة إضافية

  • "NAME ENTX - Microsoft MS-DOS Computer Pascal runtime system control". 1.00. Microsoft Corp. 1981. مؤرشف من الأصل في 2018-09-23 . تم الاسترجاع في 2018-09-23 .
  • تعريف كلمة run-time في القاموس على ويكاموس
Retrieved from "https://en.wikipedia.org/w/index.php?title=Runtime_system&oldid=1245152116"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate