ما المقصود بالتجزئة في نظام التشغيل Segmentation in OS

اقرأ في هذا المقال


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

ما هي التجزئة في نظام التشغيل Segmentation in OS

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

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

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

<segment-number, offset>

طريقة تنفيذ التجزئة Implementation of Segmentation

دعونا نرى الآن تنفيذ التجزئة، كما نعلم في التجزئة، ينقسم برنامج المستخدم إلى عدد من المقاطع، ويتم تحديد المقطع بمكونين، أي اسم المقطع (segment name) وإزاحة المقطع (segment offset)، في هذا القسم، سنرى كيف يتم تعيين هذا العنوان ثنائي الأبعاد على الذاكرة الفعلية أحادية البعد، مثلما لدينا جدول صفحات في الترحيل “هيكلة الصفحات” “التقسيم لصفحات” (paging) بالمثل، لدينا جدول مقسم في التجزئة.

جدول التجزئة Segmentation Table

يحتوي جدول التجزئة على إدخالين لكل جزء، وهما: عنوان الجزء أو المقطع الأساسي (segment base address) وحد الجزء أو المقطع (segment limit)، يشير عنوان قاعدة المقطع “الجزء” إلى عنوان البداية حيث يتم تخزين المقطع في الذاكرة بينما يشير حد المقطع إلى طول المقطع، هنا وحدة المعالجة المركزية تستدعي مقطعًا وتوفر منطقيًا لعنوان ثنائي الأبعاد لهذا المقطع حيث يكون المكون الأول هو رقم المقطع (اسم المقطع) وإزاحته (offset d).

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

مثال على التجزئة في نظام التشغيل

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

افترض الآن أنّ استدعاءات وحدة المعالجة المركزية للجزء رقم (2) الذي يبلغ طوله (400) بايت ويتواجد في موقع ذاكرة (4300)، تريد وحدة المعالجة المركزية إحالة البايت (53) من الجزء (2)، لذلك، هنا المدخلات التي نحصل عليها من وحدة المعالجة المركزية هي الجزء رقم (2 و53) كإزاحة.

الآن الإزاحة تقع بين (0) وحدود المقطع (2) أي (400)، لذلك، تمّ التحقق من الشرط وتتم إضافة الإزاحة إلى العنوان الأساسي للمقطع (2) للوصول إلى البايت (53) للمقطع (2) في الذاكرة الفعلية، في حالة محاولة الوصول إلى (453) بايت من المقطع (2)، فسيؤدي ذلك إلى مصيدة لنظام التشغيل حيث أنّ قيمة الإزاحة (453) أكبر من حد المقطع (2).

المميزات والعيوب لعملية التجزئة في نظام التشغيل

مزايا التجزئة

  • التقسيم أقرب إلى وجهة نظر المبرمج للذاكرة الفعلية.
  • التجزئة تمنع التجزئة الداخلية (internal fragmentation).
  • تمنع التجزئة الحمل الزائد لوحدة المعالجة المركزية لأنّ المقطع يحتوي على وحدة نمطية كاملة دفعة واحدة.

عيوب التجزئة

  • تؤدي التجزئة إلى التجزئة الخارجية (external fragmentation).

المصدر: Segmentation in OSSegmentationWhat Is Segmentation in Operating System?Segmentation in OS | Segmentation and Paging


شارك المقالة: