برمجة الطبقات

في سياق الحوسبة العامة، تعني عملية التراكب نقل جزء من كود البرنامج أو بيانات أخرى إلى الذاكرة الرئيسية ، واستبدال ما هو مخزن فيها مسبقًا. [ 1 ] التراكب أسلوب برمجي يسمح للبرامج بأن تكون أكبر من حجم الذاكرة الرئيسية للحاسوب . [ 2 ] عادةً ما تستخدم الأنظمة المدمجة التراكب نظرًا لمحدودية الذاكرة الفعلية ، وهي الذاكرة الداخلية لنظام على شريحة ، ونقص إمكانيات الذاكرة الافتراضية .
الاستخدام
يتضمن بناء برنامج تراكبي تقسيم البرنامج يدويًا إلى كتل برمجية مستقلة تُسمى التراكبات أو الروابط، وتُرتب عادةً في بنية شجرية . [ ب ] تتشارك الأجزاء المتجاورة ، أي تلك الموجودة على نفس مستوى العمق، نفس الذاكرة، والتي تُسمى منطقة التراكب [ ج ] أو منطقة الوجهة . يقوم مدير التراكبات، سواء كان جزءًا من نظام التشغيل أو جزءًا من برنامج التراكب، بتحميل التراكب المطلوب من الذاكرة الخارجية إلى منطقة الوجهة عند الحاجة؛ وقد يكون ذلك تلقائيًا أو عبر كود صريح. غالبًا ما توفر الروابط دعمًا للتراكبات. [ 3 ]
مثال
يوضح المثال التالي عبارات التحكم التي توجه محرر الربط OS/360 لربط برنامج تراكب يحتوي على منطقة واحدة، مع مسافة بادئة لإظهار البنية (أسماء المقاطع اختيارية):
تضمين SYSLIB(MOD1) تضمين SYSLIB(MOD2) طبقة أ تضمين SYSLIB(MOD3) طبقة AA تضمين SYSLIB(MOD4) تضمين SYSLIB(MOD5) طبقة AB تضمين SYSLIB(MOD6) الطبقة ب تضمين SYSLIB(MOD7)
+--------------+ | الجزء الجذري | | MOD1، MOD2 | +--------------+ | +----------+----------+ | | +-------------+ +-------------+ | الطبقة أ | | الطبقة ب | | MOD3 | | MOD7 | +-------------+ +-------------+ | +--------+--------+ | | +-------------+ +-------------+ | طبقة AA | | طبقة AB | | MOD4، MOD5 | | MOD6 | +-------------+ +-------------+
تُعرّف هذه التعليمات شجرةً تتألف من الجزء المُقيم بشكل دائم، والذي يُسمى الجذر ، وجزأين مُتراكبين A وB سيتم تحميلهما بعد انتهاء MOD2. يتكون الجزء المُتراكب A نفسه من جزأين مُتراكبين، AA وAB. عند التنفيذ، سيستخدم كل من الجزأين المُتراكبين A وB نفس مواقع الذاكرة؛ وسيستخدم كل من AA وAB نفس المواقع بعد انتهاء MOD3.
تُسمى جميع الأجزاء الواقعة بين الجذر وجزء التراكب المحدد مسارًا .
التطبيقات
اعتبارًا من عام 2015معظم تطبيقات الأعمال مصممة للعمل على منصات ذات ذاكرة افتراضية . يستطيع المطور على هذه المنصة تصميم برنامج كما لو أن قيود الذاكرة غير موجودة، إلا إذا تجاوزت مجموعة العمل الخاصة بالبرنامج الذاكرة الفعلية المتاحة. والأهم من ذلك، يمكن للمهندس المعماري التركيز على حل المشكلة دون صعوبة التصميم الإضافية المتمثلة في إجبار المعالجة على خطوات مقيدة بحجم الذاكرة الافتراضية. وبالتالي، يمكن للمصمم استخدام لغات برمجة عالية المستوى لا تتيح للمبرمج تحكمًا كبيرًا في الحجم (مثل Java و C++ و Smalltalk ). من ناحية أخرى، قد يؤدي إغفال التفاعلات بين وحدات البرنامج إلى تذبذب كبير في الأداء وانخفاض ملحوظ فيه.
مع ذلك، لا تزال تقنية التراكب مفيدة في الأنظمة المدمجة. [ 4 ] بعض المعالجات منخفضة التكلفة المستخدمة في الأنظمة المدمجة لا توفر وحدة إدارة ذاكرة (MMU). إضافةً إلى ذلك، فإن العديد من الأنظمة المدمجة هي أنظمة تعمل في الوقت الحقيقي ، وتوفر تقنية التراكب زمن استجابة أكثر تحديدًا من تقنية الترحيل . على سبيل المثال، يستخدم برنامج نظام إلكترونيات الطيران الأساسي لمكوك الفضاء (PASS) تقنية التراكب المبرمجة. [ 5 ]
حتى على المنصات التي تحتوي على ذاكرة افتراضية، يمكن فصل مكونات البرامج مثل برامج الترميز إلى درجة يمكن تحميلها وإزالتها حسب الحاجة .
الاستخدام التاريخي
قدمت شركة IBM مفهوم وظيفة السلسلة [ 6 ] في FORTRAN II . كان على البرنامج استدعاء الروتين الفرعي CHAIN بشكل صريح لتحميل رابط جديد، وقد حل الرابط الجديد محل جميع مساحة تخزين الرابط القديم باستثناء منطقة Fortran COMMON.
قدمت شركة IBM معالجة أكثر عمومية للتراكب [ 7 ] في IBSYS / IBJOB ، بما في ذلك بنية شجرية وتحميل تلقائي للروابط كجزء من معالجة CALL.
في نظام التشغيل OS/360، وسّعت شركة IBM نطاق ميزة التراكب في نظام IBM 7090/94 IBSYS IBLDR [ 8 ]، وذلك بالسماح لبرنامج التراكب بامتلاك مناطق تراكب مستقلة، لكل منها شجرة تراكب خاصة بها. كما أمكن إنشاء نظام تراكب ديناميكيLOAD آخر باستخدام وحدات الماكرو الخاصة LINKبالنظام. وكانت الوحدات المُجمّعة بشكل منفصل تُحمّل في أي مكان في الذاكرة المتاحة وتُحفظ حتى DELETEيتم استدعاء ماكرو خاص بها. ويمكن للبرامج المُحمّلة بدورها تحميل برامج أخرى، وهكذا. [ 9 ] كما احتوى نظام التشغيل OS/360 على نظام تراكب أبسط لروتينات SVC المؤقتة لنظام التشغيل ، باستخدام مناطق SVC مؤقتة بحجم 1024 بايت.
لا تتطلب الأنظمة التي تستخدم تجزئة الذاكرة عادةً إمكانيات التراكب. تتكون البرامج على أنظمة Burroughs الكبيرة من مقاطع، وهي تقسيمات طبيعية للبرنامج مثل فقرات COBOL ، وإجراءات ALGOL ، وهياكل البيانات، وما إلى ذلك. يتم تحميل كل مقطع ديناميكيًا حسب الحاجة، ثم يمكن إزالته أو استبداله لتحرير مساحة التخزين. لا حاجة إلى هياكل تراكب محددة لأن وحدة التحكم في الذاكرة (MCP) تقوم بالتراكب تلقائيًا. [ 10 ] وبالمثل، لا يتطلب نظام Multics تراكبات محددة، لأن كل وحدة نمطية عبارة عن مقطع منفصل، يقوم المشرف بتحميله أو حذفه أو استبداله حسب الحاجة.
في عصر الحواسيب المنزلية، كانت تقنية الطبقات الرسومية شائعة لأن نظام التشغيل والعديد من أنظمة الحاسوب التي تعمل عليه كانت تفتقر إلى الذاكرة الافتراضية، وكانت ذاكرة الوصول العشوائي (RAM) فيها ضئيلة للغاية وفقًا للمعايير الحالية: إذ كان جهاز IBM PC الأصلي يحتوي على ما بين 16 كيلوبايت و64 كيلوبايت، حسب التكوين. وكانت الطبقات الرسومية تقنية شائعة في لغة Commodore BASIC لتحميل شاشات الرسومات. [ 2 ]
دعمت العديد من روابط أنظمة التشغيل PC/MS-DOS في ثمانينيات القرن الماضي [التراكبات] بشكل مطابق تقريبًا للشكل المستخدم قبل 25 عامًا على الحواسيب المركزية. [ 4 ] [ 11 ] كانت الملفات الثنائية التي تحتوي على تراكبات الذاكرة تحمل امتدادات قياسية فعلية هي .OVL [ 11 ] أو .OVR [ 12 ] (ولكنها استخدمت أيضًا امتدادات ملفات رقمية مثل .000 و .001 وما إلى ذلك للملفات اللاحقة [ 13 ] ). استُخدم هذا النوع من الملفات، من بين أمور أخرى، في برنامج WordStar [14] (الذي يتكون من الملف التنفيذي الرئيسي ووحدات التراكب، حيث كانت ملفات التراكب " WS.COMالضخمة " WSMSGS.OVRمتطابقة ثنائيًا في منافذها لأنظمة CP/M-86 وMS-DOS [ 15 ] )، وبرنامج dBase [ 16 ] ، وحزمة برامج أتمتة المكاتب Enable DOS من شركة Enable Software . كان بإمكان برنامج Turbo Pascal من Borland [ 17 ] [ 18 ] ومترجم GFA BASIC إنتاج ملفات .OVL.WSOVLY1.OVRMAILMERGE.OVRSPELSTAR.OVR
انظر أيضاً
ملحوظات
- ↑ هذا لا علاقة له بمصطلح المنطقة فيإدارة تخزين MVT .
- ↑ في نظام التشغيل OS/360 والأنظمة اللاحقة ، قد تكون هناك مناطق متعددة [ أ ] تحتوي كل منها على شجرة تراكب كاملة.
- ↑ تختلف التسمية باختلاف النظام، على سبيل المثال، في نظام التشغيل OS/360 تشير المنطقة إلى شجرة تراكب كاملة.
مراجع
- ↑ "قواميس أكسفورد" . 26-11-2015. مؤرشف من الأصل في 10-07-2022 . تم الاسترجاع في 10-07-2022 .
- 1 2 باترفيلد، جيمس "جيم" ، محرر. (يونيو 1986). "الجزء 4: التراكب". تحميل وربط برامج كومودور . ص 74. مؤرشف من الأصل في 10 يوليو 2022. تم الاسترجاع في 10 يوليو 2022.
يتيح لك هذا تشغيل برامج أكبر بكثير من سعة ذاكرة جهاز الكمبيوتر الخاص بك.
{{cite book}}تم|magazine=تجاهله ( مساعدة ) - ↑ "وثائق رابط جنو: وصف التراكب" . 2008-06-03. مؤرشف من الأصل في 2022-06-23 . تم الاسترجاع في 2022-07-10 .
- 1 2 ليفين، جون ر. (2000). وصلات ومحملات . دار مورغان كوفمان للنشر . ص 177. ISBN 1-55860-496-0أُرشف من المصدر الأصلي بتاريخ 2022-04-06 . تم الاطلاع عليه بتاريخ 2022-07-10 .
- ↑ المجلس الوطني للبحوث (نوفمبر 1993) [يونيو 1993]. تقييم عمليات تطوير برمجيات رحلات مكوك الفضاء ( الطبعة الثانية). واشنطن العاصمة، الولايات المتحدة الأمريكية: الأكاديمية الوطنية للعلوم ، مطبعة الأكاديميات الوطنية . doi : 10.17226/2222 . hdl : 2060/19930019745 . ISBN 978-0-309-04880-4. LCCN 93-84549 . تم الاطلاع عليه بتاريخ 29-10-2012 . (208 صفحات)
- ↑ "الفصل 12: مهمة السلسلة" (ملف PDF) . أنظمة برمجة IBM 7090/7094 - برمجة FORTRAN II (ملف PDF) . بوكيبسي، نيويورك، الولايات المتحدة الأمريكية: شركة IBM . أغسطس 1963. الصفحات 34-35 . النموذج C28-6054-4، رقم الملف 7090-25. مؤرشف (ملف PDF) من الأصل بتاريخ 15 مارس 2022. تم الاطلاع عليه بتاريخ 10 يوليو 2022 .
{{cite book}}تم|work=تجاهله ( مساعدة ) (52 صفحة) - ↑ أنظمة برمجة IBM 7090/7094 - معالج IBJOB - ميزة التراكب لـ IBLDR (ملف PDF) (الطبعة الأولى ). بوكيبسي، نيويورك، الولايات المتحدة الأمريكية: شركة IBM . مايو 1963. النموذج C28-6331، رقم الملف 7090-27. مؤرشف (ملف PDF) من الأصل بتاريخ 15 مارس 2022. تم الاطلاع عليه بتاريخ 26 ديسمبر 2021 .
{{cite book}}تم|work=تجاهله ( مساعدة ) (8 صفحات) - ↑ أنظمة برمجة IBM 7090/7094، ميزة تراكب معالج IBJOB في IBLDR (ملف PDF) . شركة IBM. 1963. تم الاطلاع عليه بتاريخ 1 سبتمبر 2025 .
- ↑ خدمات مشرف نظام التشغيل IBM System/360 وتعليمات الماكرو (ملف PDF) . شركة IBM. 1974. ص 9. تم الاطلاع عليه بتاريخ 1 سبتمبر 2025 .
- ↑ دليل مرجعي لبرنامج التحكم الرئيسي (ملف PDF) . شركة بوروز. 1969. الصفحات 3-1 – 3-7 . تاريخ الاسترجاع: 1 سبتمبر 2025 .
- 1 2 إليوت، جون سي. (2012-06-05) [2000-01-02]. "تنسيق ملف PRL" . seasip.info . مؤرشف من الأصل في 2020-01-26 . تم الاسترجاع في 2020-01-26 .
[...] ملف PRL هو ملف ثنائي
قابل للنقل
، يستخدمه نظاما
MP/M
و
CP/M Plus
لوحدات نمطية مختلفة غير
ملفات .COM
. يُستخدم تنسيق الملف أيضًا لملفات FID على جهاز
Amstrad PCW
. هناك عدة تنسيقات ملفات تستخدم إصدارات من PRL: SPR (PRL النظام)، وRSP (عملية النظام المقيمة). يمكن لـ LINK-80 أيضًا إنتاج ملفات OVL (تراكب)، والتي تحتوي على رأس PRL ولكنها غير قابلة للنقل. برامج تشغيل
GSX
بتنسيق PRL؛ وكذلك
امتدادات النظام المقيمة
(.RSX). [...]
- ^ دومن ، نوربرت (1990). "Platz schaffen durch Überlagern - Overlay-Strukturen in Turbo Pascal" . مولودية (في المانيا). المجلد. 90، لا. 12. ص 124 – 130. مؤرشفة من الأصلي بتاريخ 2022-08-04 . تم الاسترجاع بتاريخ 2022-08-04 .
- ↑ غافين، بروس. "إنشاء طبقات البرامج". في بيرسون، ديف (محرر). دليل توربو باسكال - نورتون . الإصدار 3. صفحة 149. مؤرشف من الأصل بتاريخ 4 أغسطس 2022. تم الاطلاع عليه بتاريخ 4 أغسطس 2022 .
- ↑ مابيت، آلان (1985). البدء باستخدام WordStar وMailMerge وSpellStar . مطبعة جامعة كامبريدج . ISBN 0-521-31805-X.
- ↑ نيكاسيك، ميخال (30 يناير 2018) [28 يناير 2018، 26 يناير 2018]. "وورد ستار مجدداً" . متحف نظام التشغيل OS/2 . مؤرشف من الأصل في 28 يوليو 2019. تم الاطلاع عليه في 28 يوليو 2019 .
[…] السبب وراء الشك في هذا الاختلاف هو أن الإصدار 3.2x كان يدعم أيضًا
نظام CP/M-86
(الطبقات متطابقة بين
DOS
وCP/M-86، والاختلاف الوحيد هو في الملف التنفيذي الرئيسي) […] ملفات .OVR متطابقة تمامًا بين DOS وCP/M-86، مع وجود علامة (موضحة بوضوح في دليل
WordStar 3.20
) للتبديل بينهما أثناء
التشغيل
[…] واجهة نظام التشغيل في WordStar محدودة ومُجرّدة بشكل جيد […] طبقات WordStar 3.2x متطابقة تمامًا بين إصداري DOS وCP/M-86. يوجد مفتاح تبديل أثناء التشغيل يختار بين استدعاء INT 21h (DOS) وINT E0h (CP/M-86). WS.COM ليس نفسه بين DOS وCP/M-86، على الرغم من أنه ربما ليس مختلفًا كثيرًا أيضًا. […]
- ↑ سيدنام-رايت، ليز؛ ستيفنز، براد، محرران. (31 يوليو 1990). "أشتون-تيت تُصدر dBASE IV الإصدار 1.1" (ملف PDF) . تورانس، كاليفورنيا، الولايات المتحدة الأمريكية: أشتون تيت . ص 2-2-2. مؤرشف من الأصل (ملف PDF) بتاريخ 4 أبريل 2017. تم الاطلاع عليه بتاريخ 13 فبراير 2014.
يتميز الإصدار 1.1 بنظام إدارة ذاكرة ديناميكي جديد (dMMS) يُعالج الطبقات المتراكبة بكفاءة أكبر: يتطلب المنتج ذاكرة أقل، مما يُتيح مساحة أكبر للتطبيقات. [...] يُوفر انخفاض متطلبات الذاكرة للمنتج، والتي تبلغ 450 كيلوبايت فقط من ذاكرة الوصول العشوائي (RAM)، دعمًا مُحسّنًا للشبكة، حيث لم تعد هناك حاجة إلى ذاكرة أجهزة إضافية لدعم الشبكات. [...] من خلال تسريع أجزاء dBASE IV التي تعتمد على الطبقات المتراكبة، يُحسّن نظام dMMS الجديد الأداء عند العمل في مركز التحكم وفي البرامج التي تستخدم القوائم والنوافذ.
(5 صفحات) - ^ هيرشل ، رودولف. ديتريش، إرنست-ولفغانغ (2000). توربو باسكال 7.0 (بالألمانية) (2 ed.). ر. أولدنبورغ فيرلاغ . ص. 249. ردمك 3-486-25499-5.
- ^ إيسر، هانز جورج (يونيو 2009). "الفصل السادس. Speicherverwaltung und Dateisysteme - الجزء الخامس: Nicht-zusammenhängende Speicherzuordnung". Betriebssysteme الأول (PDF) (باللغة الألمانية). ميونيخ، ألمانيا: Hochschule München. مؤرشفة (PDF) من النسخة الأصلية بتاريخ 2022-05-08 . تم الاسترجاع 2014/02/13 .(9 صفحات)
للمزيد من القراءة
- محرر ومحمل ربط نظام التشغيل من IBM - أرقام البرامج 360S-ED-510، 360S-ED-521، 360S-LD-547 (ملف PDF) . الإصدار 21 ( الطبعة العاشرة). وايت بلينز، نيويورك، الولايات المتحدة الأمريكية: شركة IBM . مارس 1972 [يناير 1972]. رقم الطلب GC28-6538-9، رقم الملف S360-31. مؤرشف (ملف PDF) من الأصل بتاريخ 10 يوليو 2022.
{{cite book}}تم|work=تجاهلها ( مساعدة ) (صفحتان + 244 + 4 صفحات) - جروبر، ماركوس؛ دي جيرونيمو الابن، إدوارد "إد"؛ بول، ماتياس ر. (2002-03-02) [2002-02-24]. "معلومات GEOS/NDO لـ RBIL62؟" . مجموعة الأخبار : comp.os.geos.programmer . تم الاسترجاع في 2019-04-20 .
[...] السبب وراء حاجة
Geos
إلى 16 مقاطعة هو استخدام هذه الآلية لتحويل استدعاءات الدوال بين القطاعات ("البعيدة") إلى مقاطعات، دون تغيير حجم الكود. والسبب في ذلك هو تمكين "شيء ما" (النواة) من ربط نفسه بكل استدعاء بين القطاعات يُجريه تطبيق Geos، والتأكد من تحميل قطاعات الكود المناسبة من
الذاكرة الافتراضية
وتثبيتها. في مصطلحات
DOS
، يُمكن تشبيه ذلك بمُحمِّل تراكبي، ولكن يُمكن إضافته دون الحاجة إلى دعم صريح من المُصرِّف أو التطبيق. ما يحدث هو كالتالي: […] 1. يُولّد مُصرّف الوضع الحقيقي تعليمةً كهذه: CALL
<segment>:<offset>
-> 9A <offlow><offhigh><seglow><seghigh>، حيث يُعرَّف <seglow><seghigh> عادةً كعنوان يجب تعديله عند التحميل بناءً على عنوان موضع الكود. […] 2. يُحوّل رابط Geos هذه التعليمة إلى شيء آخر: INT 8xh -> CD 8x […] DB <seghigh>,<offlow>,<offhigh> […] لاحظ أن هذا يتكون من خمسة بايتات، لذا يُمكن تعديله "في مكانه". تكمن المشكلة الآن في أن المقاطعة تتطلب بايتين، بينما تحتاج تعليمة CALL FAR إلى بايت واحد فقط. ونتيجةً لذلك، يجب
ضغط
متجه 32 بت (<seg><ofs>) إلى 24 بت. […] يتحقق ذلك من خلال أمرين: أولًا، يُشفّر عنوان <seg> كـ "مُعرّف" للقطاع، حيث يكون
النصف
السفلي منه دائمًا صفرًا. هذا يوفر أربعة بتات. بالإضافة إلى ذلك، […] تُوضع البتات الأربعة المتبقية في النصف السفلي من متجه المقاطعة، مما يُنشئ أي قيمة من INT 80h إلى 8Fh. […] معالج المقاطعة لجميع هذه المتجهات هو نفسه. سيقوم بـ "فك تشفير" العنوان من ترميز الثلاثة بايتات ونصف، والبحث عن العنوان المطلق للقطاع، وإعادة توجيه الاستدعاء، بعد إتمام عملية تحميل الذاكرة الافتراضية... كما ستمر العودة من الاستدعاء عبر رمز إلغاء القفل المُناسب. […] يحتوي النصف السفلي من متجه المقاطعة (80h–8Fh) على البتات من 4 إلى 7 من مُعرّف القطاع. تكون البتات من 0 إلى 3 في مُعرِّف المقطع (بحسب تعريف مُعرِّف Geos) دائمًا صفرًا. [...] تعمل جميع واجهات برمجة تطبيقات Geos من خلال آلية "التراكب" [...]: عند تحميل تطبيق Geos في الذاكرة، يقوم المُحمِّل تلقائيًا باستبدال استدعاءات الدوال في مكتبات النظام بالاستدعاءات المقابلة القائمة على الأعداد الصحيحة. على أي حال، هذه الاستدعاءات ليست ثابتة، بل تعتمد على المُعرِّف المُخصَّص لمقطع التعليمات البرمجية الخاص بالمكتبة.كان من المفترض في الأصل تحويل Geos إلى
الوضع المحمي
في وقت مبكر جدًا [...]، مع
الوضع الحقيقي
كونه مجرد "خيار قديم" [...] فإن كل سطر تقريبًا من كود التجميع جاهز له [...]
{{cite newsgroup}}: CS1 maint: deprecated archiveal service ( link )
روابط خارجية
- الذاكرة الافتراضية
