تصفح الذاكرة

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

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

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

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

تاريخ

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

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

كان نظام Atlas الخاص بفيرانتي ، ونظام Atlas Supervisor الذي تم تطويره في جامعة مانشستر [ 6 ] (1962)، أول نظام يقوم بتنفيذ تقسيم الذاكرة. وتشمل الأجهزة المبكرة اللاحقة وأنظمة التشغيل الخاصة بها التي تدعم الترحيل IBM M44/44X ونظام التشغيل MOS الخاص به (1964)، [ 7 ] و SDS 940 [ 8 ] ونظام Berkeley Timesharing (1966)، و IBM System/360 Model 40 المعدل ونظام التشغيل CP-40 (1967)، و IBM System/360 Model 67 وأنظمة التشغيل مثل TSS/360 و CP/CMS ونظام Michigan Terminal System (MTS) (1967)، و RCA 70/46 ونظام التشغيل Time Sharing Operating System (TSOS) (1967)، و GE 645 و Multics (1969)، و DEC PDP-10 مع أجهزة ترحيل إضافية من تصميم BBN ونظام التشغيل TENEX (1969).

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

أخطاء الصفحة

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

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

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

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

تقنيات جلب الصفحات

طلب الدفع

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

الترحيل الاستباقي

تستخدم بعض الأنظمة فقط الترحيل عند الطلب - الانتظار حتى يتم طلب صفحة بالفعل قبل تحميلها في ذاكرة الوصول العشوائي (RAM).

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

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

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

تسمح بعض الأنظمة بتلميحات التطبيق؛ فقد يطلب التطبيق إتاحة صفحة معينة ويستمر دون تأخير.

تقنيات استبدال الصفحات

قائمة انتظار الصفحات المجانية، والسرقة، واستعادة البيانات

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

التنظيف المسبق

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

تسمح بعض الأنظمة بتلميحات التطبيق؛ فقد يطلب التطبيق مسح صفحة أو نقلها إلى صفحة أخرى والاستمرار دون تأخير.

الضرب

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

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

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

لتقليل الترحيل المفرط وحل مشاكل التبديل المفرط، يمكن للمستخدم زيادة عدد الصفحات المتاحة لكل برنامج، إما عن طريق تشغيل عدد أقل من البرامج في وقت واحد أو زيادة مقدار ذاكرة الوصول العشوائي (RAM) في الكمبيوتر.

مشاركة

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

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

تُعد الذاكرة المشتركة وسيلة فعالة للتواصل بين البرامج. إذ يمكن للبرامج مشاركة الصفحات في الذاكرة، ثم الكتابة والقراءة لتبادل البيانات.

التطبيقات

أطلس فيرانتي

كان أول حاسوب يدعم الترحيل هو الحاسوب العملاق أطلس [ 10 ] [ 11 ] [ 12 الذي طُوّر بالاشتراك بين فيرانتي وجامعة مانشستر وبليسي عام 1963. امتلك الجهاز ذاكرة ترابطية ( قابلة للعنونة حسب المحتوى ) تحتوي على مدخل واحد لكل صفحة من 512 كلمة. تولى المشرف [ 13 ] معالجة مقاطعات عدم التكافؤ [ f ] وإدارة نقل الصفحات بين النواة والأسطوانة لتوفير مخزن أحادي المستوى [ 14 ] للبرامج.

مايكروسوفت ويندوز

ويندوز 3.x وويندوز 9x

تُعدّ خاصية الترحيل ميزةً أساسيةً في نظام التشغيل مايكروسوفت ويندوز منذ إصدار ويندوز 3.0 عام 1990. يقوم ويندوز 3.x بإنشاء ملف مخفي باسم `< اسم الملف>` 386SPART.PARأو WIN386.SWP`<اسم الملف>``````````````` ` ` ```````````````````````````````````````````````` ` ` ``````"```` "```"```""``""`""" "")`````" ...

تستخدم أنظمة التشغيل Windows 95 و Windows 98 و Windows Me ملفًا مشابهًا، وتوجد إعداداته في لوحة التحكم ← النظام ← علامة التبويب "الأداء" ← الذاكرة الظاهرية. يقوم Windows تلقائيًا بضبط حجم ملف الترحيل ليبدأ من 1.5 ضعف حجم الذاكرة الفعلية، ويتوسع حتى 3 أضعاف الذاكرة الفعلية عند الحاجة. إذا كان المستخدم يشغل تطبيقات تستهلك الكثير من الذاكرة على نظام ذي ذاكرة فعلية منخفضة، فمن الأفضل ضبط هذه الأحجام يدويًا على قيمة أعلى من القيمة الافتراضية.

ويندوز إن تي

يُستخدم ملف الترحيل في أنظمة تشغيل Windows NT . ويقع هذا الملف افتراضيًا في الدليل الجذر للقسم المُثبّت عليه نظام Windows. يُمكن تهيئة Windows لاستخدام المساحة الحرة على أي قرص متاح لملفات الترحيل. مع ذلك، كان من الضروري، قبل إصداري Windows Vista وWindows Server 2008 [ 15 ] ، أن يحتوي قسم التمهيد (أي القرص الذي يحتوي على دليل Windows) على ملف ترحيل إذا كان النظام مُهيأً لكتابة تفريغات الذاكرة، سواءً كانت تفريغات نواة النظام أو تفريغات كاملة للذاكرة، بعد ظهور شاشة الموت الزرقاء . يستخدم Windows ملف الترحيل كمساحة تخزين مؤقتة لتفريغ الذاكرة. عند إعادة تشغيل النظام، ينسخ Windows تفريغ الذاكرة من ملف الترحيل إلى ملف منفصل، ويُحرر المساحة التي كان يستخدمها ملف الترحيل. [ 16 ]pagefile.sys

التجزئة

في الإعدادات الافتراضية لنظام ويندوز، يُسمح لملف الترحيل بالتوسع بما يتجاوز حجمه الأولي عند الضرورة. إذا حدث هذا التوسع تدريجيًا، فقد يُصبح الملف مُجزأً بشكل كبير ، مما قد يُسبب مشاكل في الأداء. [ 17 ] وتتمثل النصيحة الشائعة لتجنب ذلك في تحديد حجم ثابت لملف الترحيل بحيث لا يقوم ويندوز بتوسيعه. مع ذلك، لا يتوسع ملف الترحيل إلا عند امتلائه، والذي يُمثل في إعداداته الافتراضية 150% من إجمالي الذاكرة الفعلية. [ 18 ] وبالتالي، يجب أن يتجاوز إجمالي الطلب على الذاكرة الافتراضية المدعومة بملف الترحيل 250% من الذاكرة الفعلية للحاسوب قبل أن يتوسع ملف الترحيل.

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

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

يمكن تخصيص مساحة القرص المطلوبة بسهولة على الأنظمة ذات المواصفات الأحدث (مثل نظام  بذاكرة 3 جيجابايت  وملف ترحيل ثابت الحجم 6 جيجابايت على  قرص صلب بسعة 750 جيجابايت، أو نظام  بذاكرة 6 جيجابايت وملف  ترحيل ثابت الحجم 16 جيجابايت ومساحة  قرص 2 تيرابايت). في كلا المثالين، يستخدم النظام حوالي 0.8% من مساحة القرص مع تمديد ملف الترحيل مسبقًا إلى أقصى حد له.

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

أنظمة يونكس والأنظمة الشبيهة بيونكس

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

لينكس

يدعم نظام لينكس عددًا غير محدود تقريبًا من وحدات التبديل (أجهزة أو ملفات)، كما يدعم تحديد أولويات هذه الوحدات. فعندما يقوم النظام بتبديل صفحات من الذاكرة الفعلية، فإنه يستخدم وحدة التبديل ذات الأولوية الأعلى والتي تتوفر لها مساحة حرة كافية. وإذا تم تخصيص نفس الأولوية لعدة وحدات تبديل، فسيتم استخدامها بالتناوب ( وهو ما يشبه إلى حد ما تخطيطات تخزين RAID 0 )، مما يوفر أداءً محسّنًا طالما أمكن الوصول إلى الأجهزة الأساسية بكفاءة بالتوازي. [ 21 ]

تبديل الملفات والأقسام

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

تبادل

Swappiness هو مُعامل في نواة لينكس يتحكم في الأهمية النسبية لتبديل صفحات الذاكرة أثناء التشغيل ، مقارنةً بإسقاط الصفحات من ذاكرة التخزين المؤقت للصفحات ، عندما يتعذر تلبية طلب تخصيص الذاكرة من الذاكرة الحرة. يمكن ضبط Swappiness على قيمة تتراوح بين 0 و200. [ 24 ] القيمة المنخفضة تجعل النواة تُفضل إخراج الصفحات من ذاكرة التخزين المؤقت، بينما القيمة الأعلى تجعلها تُفضل تبديل صفحات الذاكرة "الباردة". القيمة الافتراضية هي 600؛ رفعها قد يُسبب زمن استجابة مرتفعًا إذا لزم إعادة الصفحات الباردة (عند التفاعل مع برنامج كان خاملاً، على سبيل المثال)، بينما خفضها (حتى 0) قد يُسبب زمن استجابة مرتفعًا عند الحاجة إلى قراءة الملفات التي أُخرجت من ذاكرة التخزين المؤقت مرة أخرى، ولكنه سيجعل البرامج التفاعلية أكثر استجابة لأنها ستكون أقل عرضة للحاجة إلى إعادة الصفحات الباردة. كما أن التبديل قد يُبطئ محركات الأقراص الصلبة (HDD) لأنه يتضمن الكثير من عمليات الكتابة العشوائية، بينما لا تُعاني محركات الأقراص ذات الحالة الصلبة (SSD) من هذه المشكلة. بالتأكيد، تعمل القيم الافتراضية بشكل جيد في معظم أحمال العمل، ولكن قد ترغب أجهزة سطح المكتب والأنظمة التفاعلية في خفض الإعداد لأي مهمة متوقعة، بينما قد ترغب أنظمة المعالجة الدفعية والأنظمة الأقل تفاعلية في زيادته. [ 25 ]

تبديل الموت

عندما تكون ذاكرة النظام غير كافية بشكل كبير للمهام الحالية، ويخضع جزء كبير من نشاط الذاكرة لعملية تبديل بطيئة، قد يصبح النظام عاجزًا عمليًا عن تنفيذ أي مهمة، حتى لو كان المعالج المركزي في وضع الخمول. وعندما تنتظر جميع العمليات عملية التبديل، يُعتبر النظام في حالة " موت التبديل" . [ 26 ] [ 27 ]

قد يحدث فشل التبديل بسبب الإفراط في تخصيص الذاكرة بشكل غير صحيح . [ 28 ] [ 29 ] [ 30 ]

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

نظام التشغيل macOS

يستخدم نظام macOS ملفات تبديل متعددة. يتم تثبيتها افتراضيًا (وهو ما توصي به شركة Apple) على قسم الجذر، مع أنه من الممكن وضعها على قسم أو جهاز منفصل. [ 32 ]

AmigaOS 4

قدّم نظام AmigaOS 4.0 نظامًا جديدًا لتخصيص ذاكرة الوصول العشوائي (RAM) وإلغاء تجزئة الذاكرة الفعلية. لا يزال النظام يستخدم مساحة عناوين مشتركة مسطحة غير قابلة للتجزئة. ويعتمد على تخصيص الشرائح وتقسيم الذاكرة إلى صفحات، مما يسمح بالتبديل. تم تطبيق تقسيم الذاكرة إلى صفحات في AmigaOS 4.1 . قد يؤدي استهلاك جميع الذاكرة الفعلية إلى توقف النظام. [ 33 ] يمكن تفعيل ذاكرة التبديل وتعطيلها، مما يسمح للمستخدم باختيار استخدام ذاكرة الوصول العشوائي الفعلية فقط.

أداء

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

  • يوفر نظام لينكس المعلمة التي تغير التوازن بين تبديل ذاكرة وقت التشغيل، مقابل إسقاط الصفحات من ذاكرة التخزين المؤقت للصفحات في النظام ./proc/sys/vm/swappiness
  • توفر أنظمة التشغيل Windows 2000 و XP و Vista DisablePagingExecutiveإعداد التسجيل الذي يتحكم فيما إذا كان من الممكن أن تكون التعليمات البرمجية والبيانات في وضع النواة مؤهلة للتحويل إلى الذاكرة الافتراضية.
  • كانت أجهزة الكمبيوتر المركزية تستخدم في كثير من الأحيان محركات الأقراص ذات الرأس لكل مسار أو الأسطوانات لتخزين الصفحات والتبديل للتخلص من وقت البحث، والعديد من التقنيات [ 34 ] للحصول على طلبات متزامنة متعددة لنفس الجهاز من أجل تقليل زمن الوصول الدوراني .
  • تتمتع ذاكرة الفلاش بعدد محدود من دورات المسح والكتابة (انظر قيود ذاكرة الفلاش )، وقد تكون أصغر كمية من البيانات التي يمكن مسحها دفعة واحدة كبيرة جدًا، [ g ] ونادرًا ما تتوافق مع حجم الصفحة. لذلك، قد تتلف ذاكرة الفلاش بسرعة إذا استُخدمت كمساحة تبديل في ظل ظروف ذاكرة محدودة. لهذا السبب، قد لا تستخدم أنظمة تشغيل الأجهزة المحمولة والأنظمة المدمجة (مثل أندرويد ) مساحة التبديل. من ناحية أخرى، تتميز ذاكرة الفلاش بانعدام التأخير تقريبًا مقارنةً بالأقراص الصلبة، كما أنها غير متطايرة مثل رقائق ذاكرة الوصول العشوائي (RAM). صُممت تقنيات مثل ReadyBoost و Intel Turbo Memory للاستفادة من هذه الخصائص.

تسمح العديد من أنظمة التشغيل الشبيهة بنظام يونكس (على سبيل المثال AIX و Linux و Solaris ) باستخدام أجهزة تخزين متعددة لمساحة التبديل بالتوازي، لزيادة الأداء.

تبديل حجم المساحة

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

أحجام مساحات العناوين المادية والافتراضية

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

الذاكرة الرئيسية أصغر من الذاكرة الافتراضية

في معظم الأنظمة، يكون حجم مساحة العناوين الافتراضية للعملية أكبر بكثير من الذاكرة الرئيسية المتاحة. [ 36 ] على سبيل المثال:

  • قد يكون ناقل العناوين الذي يربط وحدة المعالجة المركزية بالذاكرة الرئيسية محدودًا. فمعالج i386SX ذو 32 بت يمكنه عنونة 4  جيجابايت، ولكنه يحتوي على 24 طرفًا فقط متصلة بناقل العناوين، مما يحد من سعة الذاكرة الفعلية المثبتة إلى 16  ميجابايت. وقد توجد قيود أخرى على مستوى الأجهزة تحد من الحد الأقصى لسعة ذاكرة الوصول العشوائي (RAM) التي يمكن تثبيتها.
  • قد لا يتم تثبيت الحد الأقصى للذاكرة بسبب التكلفة، أو لأن التكوين القياسي للطراز لا يتضمنها، أو لأن المشتري لم يعتقد أنها ستكون مفيدة.
  • في بعض الأحيان لا يمكن استخدام جميع العناوين الداخلية للذاكرة على أي حال، لأن بنية الأجهزة قد تحجز مناطق كبيرة للإدخال/الإخراج أو ميزات أخرى.

الذاكرة الرئيسية بنفس حجم الذاكرة الافتراضية

قد يحتوي جهاز كمبيوتر مزود بعنونة حقيقية من نوع n -bit على 2 ^n وحدة ذاكرة وصول عشوائي (RAM) قابلة للعنونة. على سبيل المثال، معالج x86 ذو 32 بت مزود بذاكرة وصول عشوائي (RAM) سعتها 4 جيجابايت وبدون امتداد العنوان الفيزيائي (PAE). في هذه الحالة، يستطيع المعالج عنونة جميع وحدات ذاكرة الوصول العشوائي (RAM) المثبتة فقط. 

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

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

الذاكرة الرئيسية أكبر من مساحة العناوين الافتراضية

تحتوي بعض الحواسيب على ذاكرة رئيسية أكبر من مساحة العناوين الافتراضية للعملية، مثل Magic-1، [ 36 ] وبعض أجهزة PDP-11 ، وبعض الأنظمة التي تستخدم معالجات x86 ذات 32 بت مع امتداد العنوان الفيزيائي . هذا يُلغي ميزةً هامةً للتقسيم إلى صفحات، حيث لا يمكن لعملية واحدة استخدام ذاكرة رئيسية أكبر من مساحة عناوينها الافتراضية. غالبًا ما تستخدم هذه الأنظمة تقنيات التقسيم إلى صفحات للحصول على فوائد ثانوية.

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

لا يزال حجم إجمالي مساحات العناوين الافتراضية محدودًا بكمية التخزين الثانوي المتاحة.

انظر أيضاً

ملحوظات

  1. 1 2 3 4 5 6 في البدايةتم استخدام الأسطوانات ، ثم محركات الأقراص الصلبة ومحركات الحالة الصلبة للتراكبات والترقيم.
  2. على سبيل المثال، مالتيكس ، OS/VS1 ، OS/VS2 ، VM/370
  3. مثال، z/OS .
  4. تحتوي بعض الأنظمة على جدول صفحات عام، وبعضها الآخر على جدول صفحات منفصل لكل عملية، وبعضها على جدول صفحات منفصل لكل جزء [ ب ] ، وبعضها الآخر على جداول صفحات متتالية. [ ج ]
  5. على سبيل المثال، MVS (التخزين الظاهري المتعدد).
  6. يحدث انقطاع عدم التكافؤ عندما لا تتطابق البتات ذات الترتيب الأعلى للعنوان مع أي إدخال في الذاكرة الترابطية.
  7. 128 كيلوبايت لمحرك أقراص الحالة الصلبة Intel X25-M [ 35 ]

مراجع

  1. مفاهيم أنظمة التشغيل، الطبعة العاشرة . فبراير 2021. 9.3 صفحة. ISBN 978-1-119-80036-1.
  2. "الترقيم في نظام التشغيل" . GeeksforGeeks . تم الاطلاع عليه بتاريخ 14-12-2024 .
  3. بيلزر، جاك؛ هولزمان، ألبرت ج.؛ كينت، ألين، محرران. (1981). "أنظمة التشغيل". موسوعة علوم وتكنولوجيا الحاسوب . المجلد 11. مطبعة سي آر سي. ص 442. ISBN   0-8247-2261-2تمت أرشفة النسخة الأصلية بتاريخ 27-02-2017 .
  4. كراغون، هارفي ج. (1996). أنظمة الذاكرة والمعالجات ذات البنية المتوازية . دار نشر جونز وبارتليت. ص 109. ISBN  0-86720-474-5تمت أرشفة النسخة الأصلية بتاريخ 27-02-2017 .
  5. بيلزر، جاك؛ هولزمان، ألبرت ج.؛ كينت، ألين، محرران. (1981). "أنظمة الذاكرة الافتراضية". موسوعة علوم وتكنولوجيا الحاسوب . المجلد 14. مطبعة سي آر سي. ص 32. ISBN   0-8247-2214-0تمت أرشفة النسخة الأصلية بتاريخ 27-02-2017 .
  6. كيلبورن، تي ؛ باين، آر بي؛ هاوارث، دي جيه (1962). "مشرف الأطلس" .
  7. آر دبليو أونيل. تجربة استخدام نظام برمجة متعددة بتقسيم الوقت مع أجهزة إعادة توجيه العناوين الديناميكية . وقائع مؤتمر AFIPS للحاسوب 30 (مؤتمر الربيع المشترك للحاسوب، 1967). الصفحات 611-621 . doi : 10.1145/1465482.1465581 . 
  8. دليل مرجعي لأنظمة البيانات العلمية، حاسوب SDS 940 (ملف PDF) . 1966. الصفحات 8-9 . 
  9. "التبديل المسبق" . أخبار لينكس الأسبوعية . 27-09-2005.
  10. سومنر، إف إتش؛ هالي، جي؛ تشينه، إي سي واي (1962). "وحدة التحكم المركزية لحاسوب 'أطلس'". معالجة المعلومات 1962. وقائع مؤتمر الاتحاد الدولي لمعالجة المعلومات. المجلد. وقائع مؤتمر الاتحاد الدولي لمعالجة المعلومات 62. سبارتان. 
  11. "الأطلس" . جامعة مانشستر: قسم علوم الحاسوب. مؤرشف من الأصل بتاريخ 28-07-2012.
  12. "هندسة أطلس" . حاسوب أطلس . تشيلتون: مختبر حاسوب أطلس. مؤرشف من الأصل بتاريخ 10-12-2012.
  13. كيلبورن، ت.؛ باين، ر.ب.؛ هاوارث، د.ج. (ديسمبر 1961). "مشرف أطلس" . الحواسيب - مفتاح التحكم الشامل في الأنظمة . وقائع المؤتمرات. المجلد 20، وقائع المؤتمر الشرقي المشترك للحواسيب، واشنطن العاصمة: ماكميلان. الصفحات 279-294 . مؤرشف من الأصل في 31 ديسمبر 2009.  
  14. كيلبورن، ت.؛ إدواردز، د.ب.ج.؛ لانيجان، م.ج.؛ سومنر، ف.هـ. (أبريل 1962). "نظام تخزين أحادي المستوى". معاملات معهد مهندسي الراديو في الحواسيب الإلكترونية (2). معهد مهندسي الراديو: 223-235 . doi : 10.1109/TEC.1962.5219356 .
  15. "كيفية إنشاء ملف تفريغ ذاكرة كامل أو ملف نواة في نظامي التشغيل Windows Server 2008 وWindows Server 2008 R2" . مايكروسوفت . 22 يناير 2014. مؤرشف من الأصل في 15 مارس 2015. تم الاطلاع عليه في 5 مايو 2026. في نظامي التشغيل Windows Vista وWindows Server 2008، للحصول على ملف تفريغ الذاكرة، لا يشترط وجود ملف الترحيل على نفس القسم المثبت عليه نظام التشغيل، كما كان الحال في الإصدارات السابقة.
  16. تسيكوجيانيس، إلياس (11 ديسمبر 2006). "تحليل تفريغ بيانات الحوادث" . كتابة السائق لا تساوي قيادة الحافلة . مايكروسوفت . مؤرشف من الأصل في 7 أكتوبر 2008. تم الاسترجاع في 22 يوليو 2008 . 
  17. "Windows Sysinternals PageDefrag" . Sysinternals . Microsoft . 2006-11-01. مؤرشف من الأصل في 2010-12-25 . تم الاطلاع عليه في 2010-12-20 .
  18. "معلومات ملف الصفحة" . Oingo KPT . تم الاسترجاع في 14-12-2024 .
  19. "ما فائدة عملية إلغاء التجزئة؟" . HP Tech Takes . Hewlett-Packard . تم الاطلاع عليه بتاريخ 14 ديسمبر 2024 .
  20. بوث، ديفيد (27 مارس 2020). "مقدمة عن مساحة التبديل على أنظمة لينكس" . Opensource.com . تم الاطلاع عليه بتاريخ 8 ديسمبر 2021 .
  21. "swapon(2) – صفحة دليل لينكس" . Linux.Die.net . مؤرشف من الأصل بتاريخ 28-02-2014 . تم الاطلاع عليه بتاريخ 08-09-2014 .
  22. ""جيسبر جول": ردًا على: كيف أرسل أمر إيقاف مؤقت؟ - تفريغ من نظام لينكس 64 بت متجمد . LKML. 29-05-2006. مؤرشف من الأصل في 24-11-2010 . تم الاطلاع عليه في 28-10-2010 .
  23. "أندرو مورتون: ردًا على: قسم التبديل مقابل ملف التبديل" . LKML. مؤرشف من الأصل بتاريخ 24-11-2010 . تم الاطلاع عليه بتاريخ 28-10-2010 .
  24. "وثائق نواة لينكس لـ /proc/sys/vm/" .
  25. أندروز، جيريمي (29 أبريل 2004). "لينكس: ضبط قابلية التبديل" . kerneltrap.org . مؤرشف من الأصل في 24 مايو 2013. تم الاطلاع عليه في 3 يناير 2018 .
  26. ريك فان ريل (20 مايو 1998). "تبديل الموت (كما في 2.1.91) وجداول الصفحات" . مؤرشف من الأصل في 29 ديسمبر 2017.
  27. كايل رانكين (2012). استكشاف أخطاء DevOps وإصلاحها: أفضل ممارسات خادم لينكس . أديسون-ويسلي. ص 159. ISBN  978-0-13-303550-6تمت أرشفة النسخة الأصلية بتاريخ 29-12-2017 .
  28. أندريس بروير. "نواة لينكس: الذاكرة" . مؤرشف من الأصل بتاريخ 2017-08-13.
  29. ريد هات. "ضبط السعة" . مؤرشف من الأصل بتاريخ 23-07-2017.
  30. "إعدادات تجاوز تخصيص الذاكرة" . 2014-02-16. مؤرشف من الأصل في 2017-05-31.
  31. بيتر ماكدونالد (10 فبراير 1993). "التبديل حتى الموت" . مؤرشف من الأصل بتاريخ 28 مارس 2017.
  32. جون سيراكوزا (15 أكتوبر 2001). "نظام التشغيل ماك أو إس إكس 10.1" . آرس تكنيكا. مؤرشف من الأصل بتاريخ 5 سبتمبر 2008. تم الاطلاع عليه بتاريخ 23 يوليو 2008 .
  33. مطور AmigaOS الأساسي (2011-01-08). "رد: مشكلة التبديل موجودة أيضًا في التحديث 4 ؟" . هايبريون إنترتينمنت. مؤرشف من الأصل في 2013-04-12 . تم الاسترجاع في 2011-01-08 . 
  34. مثال: استشعار الموضع الدوراني على قناة مُضاعِف الإشارات الكتلي
  35. "مواءمة أنظمة الملفات مع حجم كتلة المسح في محرك الأقراص ذي الحالة الصلبة | أفكار تيد" . Thunk.org. 20 فبراير 2009. مؤرشف من الأصل في 13 نوفمبر 2010. تم الاطلاع عليه في 28 أكتوبر 2010 .
  36. 1 2 بيل بوزبي. "تصميم نظام الترحيل عند الطلب في ماجيك-1 مينيكس" . مؤرشف من الأصل بتاريخ 2013-06-05 . تم الاطلاع عليه بتاريخ 2013-12-09 .