إدارة الذاكرة

من ويكيبيديا، الموسوعة الحرة

فهرست

[تحرير] إدارة الذاكرة:

[تحرير] 1-إدارة الذاكرة بالتجزئة الثابتة:

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

صورة:table11.jpg

ويتم في هذه الإدارة تخصيص مسجلين لكل جزء تسمى مسجلات الحدود(Bound register) وذلك لحماية الأعمال والمحافظة على عدم تداخلها حيث يخزن في المسجل الأول عنوان البداية للجزء وفي المسجل الثاني يخزن عنوان النهاية لنفس الجزء وعند تنفيذ تعليمة لبرنامج معين يتم مقارنة العنوان الذي ترتبط به التعليمة بالقيم المخزنة في المسجل الأول والمسجل الثاني للتأكد من أن العنوان يقع في المدى المخصص للجزء الذي يحتفظ بالبرنامج المحدد. ولتنفيذ عمليات التوطين في الذاكرة لنفترض وجود الأجزاء المبينة في الشكل (4-2)ولنفترض أنه في لحظة ما كانت هذه الأجزاء خالية من البرامج. تتم عملية متابعة الذاكرة وتنفيذ عمليات التوطين والترحيل وذلك باستخدام جدول الحجز(allocation table) والذي يحتوي على مجموعة من المداخل:رقم الجزء,حجم الجزء,موقع الجزء,حالة الجزء مستخدم أو غير مستخدم.

صورة:bbb.jpg

لنفرض الآن أنه طلب تنفيذ الأعمال الآتية Job 1 size = 40 Job 2 size =10 Job 3 size =200 لتحميل العمل الأول يتم البحث في جدول التوطين عن أول جزء حجمه أكبر أو يساوي الحجم 40 وبهذا يحمل هذا العمل في الجزء الثالث وتعدل حالة هذا الجزء إلى مستخدم وبهذه الطريقة يحمل العمل الثاني في الجزء الأول والعمل الثالث في الجزء الخامس و تظهر الذاكرة بعد عملية التحميل كما هو مبين في الشكل (5-2) وتبقى بهذا الفرصة مهيأة لتحميل عملين آخرين في الجزء الثاني والرابع

صورة:2222.jpg

لاحظ إنه بعد عملية الحجز تم توطين الأعمال الثلاثة في الذاكرة,لاحظ أيضاً أن الجزء الأول يحتوي على فراغ غير مستغل حجمه 10k والجزء الثالث على فراغ حجمه 45k والجزء الخامس على فراغ حجمه 234k . وفي هذه الإدارة تبقى هذه الفراغات ضمن الجزء ولا يمكن استغلالها ويسمى هذا الفراغ بالفراغ الداخلي(internal fragment) فلو افترضنا الآن وجود عمل بحجم 250k ويحتاج هذا العمل للتنفيذ فإنه لن ينفذ بالرغم من وجود فراغات ومساحات حرة حجمها(مجموع )أكبر من حجم العمل المطلوب . أما عملية الحجز فيمكن تلخيصها في الخطوات التالية:

  1. طلب بتوطين عمل بحجم X بايت.
  2. ابدأ بالجزء الأول في جدول التوطين وقارن حجم العمل بحجم الجزء إذا كانت حالته (Free) فإذا كان حجم الجزء أكبر أو يساوي حجم العمل يتم توطين هذا العمل في الجزء ويحدث حقل الحالة لهذا الجزء إلى مستخدم(allocated) وبهذا تنتهي عملية توطين العمل.

أما إذا كانت حالة الجزء مستخدم أو إذا كان حجم العمل أكبر من حجم الجزء فيتم الانتقال إلى الخطوة التالية:

  1. يتم زيادة رقم الجزء بمقدار 1 وننفذ الخطوة السابقة.
  2. إذا تم الوصول إلى نهاية جدول التوطين ولم يوطن العمل فيؤخر تنفيذه إذا كان هناك جزء

مشغول يسمح باستيعاب العمل أو يلغى تنفيذ العمل إذا كان حجمه أكبر من حجم أكبر جزء متوفر.أما عملية الترحيل فتتم بعد إنهاء تنفيذ العمل وحسب الآلية التالية:

  1. حدد رقم الجزء المطلوب .
  2. انتقل إلى رقم الجزء المطلوب في جدول التوطين وعدل حالة الجزء إلى حر(Free).
  3. إذاانتهى الجدول المطلوب ولم يصادف الرقم المطلوب فهذا يعني وجود خطأفي رقم الجزء المراد تحريره.

مزايا وعيوب إدارة الذاكرة بالتجزئة الثابتة: من حسنات هذه الإدارة زيادة تعدد البرامج وذلك بإتاحة الفرصة لتحميل أكثر من عمل قابل للتنفيذ أما مساوئ هذه الإدارة فتنحصر في ما يلي:

  1. وجود الفراغات الداخلية والتي تؤدي إلى ضياع وهدر جزء من الذاكرة وهدر وقت وحدة المعالجة المركزية في استعراض مواقع الجزء كاملة فيما فيها الفراغات.
  2. تتطلب عملية التوطين والترحيل وقتاً لاستعراض جدول التوطين وإجراء عمليات التحديث اللازمة له.
  3. تتطلب عملية التنفيذ إجراء عمليات المقارنة اللازمة للعناوين في الجزء مع القيم المخزنة في مسجلي الحدود الخاصة بالجزء.
  4. بالرغم من تعدد البرامج إلا أن حجم العمل لا زال مقيداً بحجم أكبر جزء متوفر وكذلك ضرورة تماسك العمل في الجزء وضرورة تحميله بالكامل في الجزء المعني.
  5. عملية التوطين تعتمد على أول مطابقة (First fit) فلو كان حجم الجزء الأول 200 وكانت حالته حرة وطلب توطين عمل بحجم 10 فهذا يعني توليد 190كيلوبايت غير مستغل.

[تحرير] 2-إدارة الذاكرة بالتجزئة الحيوية (المتغيرة):

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

  • أ ـ جدول المساحات المحجوزة (allocated area table)
  • ب ـ جدول المساحات الحرة (Free area table)

و يتألف كل جدول من هذه الجداول من أربعة مداخل هي رقم الجزء أو المساحة الحرة ، الحجم ،الموقع، و الحالة. و تعتمد درجة تعدد البرامج على عدد البرامج التي يمكن تخزينها في الذاكرة و عادة ما يكون هذا العدد محدداً بحيث لا يجوز تجاوزه . فلو افترضنا الذاكرة المبينة في الشكل (6-2)و افترضنا أن أكبر عدد من البرنامج الذي يمكن تحميله في الذاكرة هو 10فإن جدول المساحات المشغولة و جدول الأجزاء الحرة يظهر كما هو في الجدول (3-2)و(4-2)


صورة:table22.jpg

صورة:4444.jpg

لنفترض الآن طلب إدخال عمل جديد بحجم 25K يتم البحث في جدول المساحات الحرة عن جزء حجمه أكبر أو يساوي حجم العمل المطلوب (في هذه الحالة الجزء الأول )ثم يحمل العمل في هذا الجزء بدءاً من الموقع 80و يعدل بعد هذا جدول المساحات المشغولة و جدول المساحات الحرة حيث يعدل المدخل الأول في جدول المساحات الحرة بتعديل الحجم إلى خمسة و الموقع إلى105. و يبين الشكل(7-2)آلية التوطين في إدارة الذاكرة بالتجزئة المتغيرة .

صورة:table23.jpg

أما عملية الترحيل فقد تصادف ثلاثة احتمالات هي :

  1. العمل المراد ترحيله يقع بين عملين لا زالا تحت التنفيذ كما هو مبين في الشكل (8-2)

صورة:6666.jpg

تنتج هذه الحالة مساحة حرة حجمها Xو موقعها هو Y

  1. العمل المراد ترحيله يقع أعلى مساحة حرة كما هو مبين في الشكل (9-2)

صورة:7777.jpg

بعد ترحيل العمل المطلوب فانه ينتج منطقة حرة موقعها هو N1و حجمها هو X-Z.أو قد تصادف الحالة التالية المبينة في الشكل (10-2)

صورة:8888.jpg

و بعد ترحيل العمل المطلوب ينتج منطقة حرة موقعها هو موقع العمل المراد ترحيله و حجمها مساو لحجم العمل مضافًا إليه حجم المساحة الحرة .

  1. العمل المراد ترحيله يقع بين مساحتين حرتين كما هو مبين في الشكل (11-2).

صورة:9999.jpg

بعد عملية الترحيل يتم إنتاج منطقة حرة واحدة حجمها هو مجموع X1, X2, X3 وموقعها هو N1.ويبين الشكل (12-2) آلية تحرير العمل في إدارة الذاكرة بالتجزئة المتغيرة

صورة:1234.jpg

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

  • 1- لا زال حجم العمل متقيد بحجم الجزء المتوفر ولتنفيذ العمل يجب أن يكون العمل مخزناً بالكامل في الجزء ومتماسكاً .
  • 2- هدر الوقت لمعالجة الجداول ومتابعة مسجلات الحماية (الحدود)وذلك لتغير قيمتها بين اللحظة والأخرى.
  • 3- لا زالت مشكلة الفراغات موجودة ونسمي الفراغات هنا بالفراغات الخارجية وتنشأ هذه الفراغات عن وجود مساحات موزعة لا يستطيع أي منها استيعاب عمل محدد.

[تحرير] المراجع :

كتاب نظم التشغيل للدكتور عبد الكريم القاضي