عندما يتم تحميل العمليات وإزالتها من الذاكرة يتم تقسيم مساحة الذاكرة الخالية إلى أجزاء صغيرة، حيث يكون بعد ذلك في بعض الأحيان أنّه لا يمكن تعيين العمليات لكتل الذاكرة، ومع الأخذ في الاعتبار صغر حجمها وتبقى كتل الذاكرة غير مستخدمة وتُعرف هذه المشكلة باسم التجزئة.
أساسيات التجزئة
كلمة تجزئة مشتقة من كلمة “Fragmentation” التي تعني القطع الأصغر، وعندما يتم تقسيم جزء كبير إلى أجزاء أصغر بأي وسيلة أو لأي غرض، فإنّه يطلق على العملية اسم “التجزئة” وبالمثل فإنّ التجزئة في أنظمة الكمبيوتر هي عملية استخدام الذاكرة الرئيسية، بحيث يتم اعتماد مساحة التخزين بشكل غير فعال وتنقسم إلى أجزاء صغيرة من الذاكرة بدلاً من قطعة واحدة أكبر من الذاكرة.
كما يتم بذلك أحياناً استخدام الذاكرة بكفاءة وعلى سبيل المثال في الترحيل، ولكن عندما يكون مجموع كل الأجزاء الصغيرة من الذاكرة أكبر من الذاكرة المطلوبة، ولكن لا يمكن ضبط البيانات في أجزاء من الذاكرة فإنّ هذا يسمى التجزئة، حيث إنّها تقلل وكفاءة بالإضافة إلى أداء استخدام الذاكرة في وقت واحد.
أمّا بالنسبة لتجزئة الذاكرة في نظام الكمبيوتر فإنّه يعني ثقوب صغيرة تتشكل في بيت الذاكرة كلما تم تحميل أو إزالة طريقة تشكل ذاكرة فعلية، وفي الغالب في حالة تخصيص الذاكرة الديناميكي تؤدي عملية تخصيص الذاكرة وإلغاء تخصيصها إلى تجزئة الذاكرة، أي أنّ جميع كتل الذاكرة صغيرة جداً بحيث لا تتناسب مع كتلة معينة من البيانات.
ومع ذلك فإنّ الكتل الصغيرة المدمجة من الذاكرة أكبر من حجم يتم حفظ كتلة البيانات في الذاكرة، حيث في كتل الذاكرة إذا حدث تجزئة، يفشل النظام في تعيين منزل الذاكرة المجاور للعمليات ويمكن تقسيم التجزئة إلى نوعين مختلفين حسب طريقة تقسيم الذاكرة المستخدمة في الذاكرة.
أنواع التجزئة في شبكات الحاسوب
أولاً: التجزئة الداخلية
- كتلة الذاكرة المخصصة للمعالجة أكبر.
- يتم ترك جزء من الذاكرة غير مستخدم، حيث لا يمكن استخدامه بواسطة عملية أخرى.
- يمكن تقليل التجزئة الداخلية عن طريق التعيين الفعال للقسم الأصغر ولكنّه كبير بما يكفي للعملية.
- يحدث التجزئة الداخلية عندما تنقسم الذاكرة إلى كتل ثابتة الحجم.
- كلما طلب معالجة للذاكرة، يتم تخصيص الكتلة ذات الحجم الثابت للعملية.
- في حالة كانت الذاكرة المعتمدة للعملية أكبر إلى حد ما من الذاكرة المطلوبة، فإنّ الاختلاف بين الذاكرة المخصصة والمطلوبة هو التجزئة الداخلية.
- لا يمكن تحديد هذه المساحة المتبقية داخل الكتلة ذات الحجم الثابت لأي عملية لأنّها لن تكون كافية لتحقيق طلب الذاكرة من خلال العملية.
مبدأ عمل التجزئة الداخلية
يتم تقسيم مساحة الذاكرة إلى كتل ذات حجم ثابت يبلغ “18464 بايت”، كما أنّه تم تخصيص طلب عملية لـ “18،460 بايت” وكتلة ثابتة الحجم مقسمة من “18،464 بايت” لهذه العملية، والنتيجة هي أنّ “4 بايت” من “18464 بايت” بقيت فارغة وهي التجزئة الداخلية.
كما إنّ الحمل الزائد لتتبع الفتحة الداخلية الناتجة عن التجزئة الداخلية أكبر بكثير من عدد الثقوب الداخلية، كما يمكن حل مشكلة التجزئة الداخلية من خلال تجزئة الذاكرة إلى كتلة متنوعة الحجم وتحديد أفضل كتلة لعملية تحتاج الذاكرة، ومع ذلك فإنّه لن ينهي تماماً على مشكلة التجزئة الداخلية ولكنّه سيخفضها إلى حد ما.
ثانياً: التجزئة الخارجية
- إجمالي مساحة الذاكرة كافية لتلبية طلب أو لإبقاء عملية فيه ولكنّها ليست متقاربة لذا لا يمكن استخدامها.
- يمكن تقليل التجزئة الخارجية عن طريق الضغط أو خلط محتويات الذاكرة لوضع كل الذاكرة الخالية معاً في كتلة واحدة كبيرة.
- لجعل الضغط ممكناً يجب أن يكون النقل ديناميكياً.
- تظهر التجزئة الخارجية عندما يكون هناك مساحة مناسبة في الذاكرة للوصول إلى حاجة الذاكرة لعملية ما، ولكن لا يمكن تحقيق طلب ذاكرة العملية لأن الذاكرة المتوفرة غير متقاربة.
- إمّا أن يتم اعتماد إستراتيجية تحديد ذاكرة مناسبة أو ملائمة، فسوف يتسبب ذلك في حدوث تجزئة خارجية.
- عندما يتم تحميل عملية وإزالتها من الذاكرة فإنّ المساحة الخالية تنتج فجوة في مساحة الذاكرة، وهناك الكثير من هذه الثقوب “holes” في مساحة الذاكرة وهذا ما يسمى التجزئة الخارجية.
- على الرغم من أنّ الوسيلة الأولى والأفضل موافقة يمكن أن تتسبب بتعطل لمقدار التجزئة الخارجية إلّا أنّه لا يمكن الحذف منها تماماً.
- قد يكون الضغط هو الحل للتجزئة الخارجية.
- تعمل خوارزمية الضغط بتنسيق جميع مكونات الذاكرة في جانب واحد وتحرير كتلة كبيرة من الذاكرة، لكن خوارزمية الضغط باهظة الثمن.
- تتوفر وسيلة بديلة لحل مشكلة التجزئة الخارجية والذي سيتيح للعملية بالوصول إلى ذاكرة فعلية من خلال وسيلة غير فعالة.
- تقنيات تحقيق هذا الحل هي الترحيل والتجزئة.
الفرق بين التجزئة الداخلية والتجزئة الخارجية
عند إزالة العمليات من الذاكرة يتم تقسيم الذاكرة الخالية إلى أجزاء صغيرة، كما تحدث هذه العملية بعد إدراك أنّ العملية لا يمكن تخصيصها لكتل الذاكرة بسبب كتل الذاكرة الأصغر، وتعرف هذه الظاهرة برمتها باسم التجزئة وهناك نوعان من التجزئة هُما التجزئة الداخلية والتجزئة الخارجية.
الرقم | الاختلاف | التجزئة الداخلية Internal Fragmentation | التجزئة الخارجية External Fragmentation |
1 | التعريف | عندما يكون هناك اختلاف بين مساحة الذاكرة المطلوبة مقابل مساحة الذاكرة المخصصة، فإنّ المشكلة تسمى التجزئة الداخلية. | عندما تكون هناك كتل ذاكرة صغيرة وغير متقاربة لا يمكن تعيينها لأي عملية، وتسمى المشكلة باسم التجزئة الخارجية. |
2 | حجم كتلة الذاكرة | تقع التجزئة الداخلية عندما تكون كتل الذاكرة المحددة ذات حجم ثابت. | تقع التجزئة الخارجية عندما تكون كتل الذاكرة المخصصة ذات أحجام مختلفة. |
3 | الظهور | تقع التجزئة الداخلية عندما تحتاج العملية إلى مساحة أكبر من حجم كتلة الذاكرة المخصصة أو تستخدم مساحة أقل. | تقع التجزئة الخارجية عند إزالة عملية من الذاكرة الرئيسية. |
4 | الحلول | “Best Fit Block Search” هو الحل للتجزئة الداخلية. | الضغط هو الحل للتجزئة الخارجية. |
5 | معالجة | يحدث التجزئة الداخلية عند استخدام “Paging”. | يحدث التجزئة الخارجية عند استخدام التجزئة. |
الاختلافات الرئيسية بين التجزئة الداخلية والخارجية
- السبب الأساسي من وقوع التجزئة الداخلية والخارجية هو أنّ التجزئة الداخلية “Internal Fragmentation ” تكون عندما يتم توزيع الذاكرة إلى كتل ذات حجم محدد، بينما تقع التجزئة الخارجية “External Fragmentation” عندما يتم تجزئة الذاكرة إلى كتل متغيرة الحجم.
- عندما تصبح كتلة الذاكرة المحددة للعملية أكبر قليلاً من الذاكرة المطلوبة، فإنّ المساحة الخالية المتبقية في كتلة الذاكرة المخصصة تتسبب في حدوث تجزئة داخلية، ومن ناحية أخرى عندما تتم إزالة العملية من الذاكرة فإنّها تخلق مساحة خالية مسببة ثقباً في الذاكرة يسمى التجزئة الخارجية.
- يمكن الوصول إلى وسيلة بديلة لمشكلة التجزئة الداخلية عن طريق تقسيم الذاكرة إلى كتل متغيرة الحجم وتعيين أفضل كتلة مناسبة لعملية الطلب، ومع ذلك فإنّ حل التجزئة الخارجية هو الضغط ولكنّه مكلف في التنفيذ لذلك يجب السماح للعمليات بالحصول على ذاكرة فعلية، وكذلك بطريقة غير متقاربة ولتحقيق ذلك يتم تقديم تقنية الترحيل والتجزئة.