إدارة الذاكرة
طرق إدارة الذاكرة > 1. إدارة الذاكرة بالتجزئة الثابتة

تستخدم هذه الطريقة فكرة تعدد البرامج وذلك من خلال تقسيم الذاكرة إلى أجزاء ثابتة الحجم قبل التنفيذ بحيث تختلف الأجزاء عن بعضها البعض في الحجم وذلك لإتاحة الفرصة لتحميل برامج بأحجام مختلفة إليها.وعادة ما يكون عدد الأجزاء ثابتاً ويحدد عدد الأجزاء درجة تعدد البرامج فمثلاً الذاكرة المبينة في الشكل (4-2) تتيح الفرصة لتحميل خمسة أعمال في نفس اللحظة الزمنية.
ويتم في هذه الإدارة تخصيص مسجلين لكل جزء تسمى مسجلات الحدود(Bound register) وذلك لحماية الأعمال والمحافظة على عدم تداخلها حيث يخزن في المسجل الأول عنوان البداية للجزء وفي المسجل الثاني يخزن عنوان النهاية لنفس الجزء وعند تنفيذ تعليمة لبرنامج معين يتم مقارنة العنوان الذي ترتبط به التعليمة بالقيم المخزنة في المسجل الأول والمسجل الثاني للتأكد من أن العنوان يقع في المدى المخصص للجزء الذي يحتفظ بالبرنامج المحدد.
ولتنفيذ عمليات التوطين في الذاكرة لنفترض وجود الأجزاء المبينة في الشكل (4-2)ولنفترض أنه في لحظة ما كانت هذه الأجزاء خالية من البرامج.
تتم عملية متابعة الذاكرة وتنفيذ عمليات التوطين والترحيل وذلك باستخدام جدول الحجز(allocation table) والذي يحتوي على مجموعة من المداخل:رقم الجزء، حجم الجزء، موقع الجزء، حالة الجزء مستخدم أو غير مستخدم.
لنفرض الآن أنه طلب تنفيذ الأعمال الآتية
Job 1 size = 40
Job 2 size =10
Job 3 size =200
لتحميل العمل الأول يتم البحث في جدول التوطين عن أول جزء حجمه أكبر أو يساوي الحجم 40 وبهذا يحمل هذا العمل في الجزء الثالث وتعدل حالة هذا الجزء إلى مستخدم وبهذه الطريقة يحمل العمل الثاني في الجزء الأول والعمل الثالث في الجزء الخامس وتظهر الذاكرة بعد عملية التحميل كما هو مبين في الشكل (5-2) وتبقى بهذا الفرصة مهيأة لتحميل عملين آخرين في الجزء الثاني والرابع
لاحظ إنه بعد عملية الحجز تم توطين الأعمال الثلاثة في الذاكرة، لاحظ أيضاً أن الجزء الأول يحتوي على فراغ غير مستغل حجمه 10k والجزء الثالث على فراغ حجمه 45k والجزء الخامس على فراغ حجمه 234k. وفي هذه الإدارة تبقى هذه الفراغات ضمن الجزء ولا يمكن استغلالها ويسمى هذا الفراغ بالفراغ الداخلي(internal fragment) فلو افترضنا الآن وجود عمل بحجم 250k ويحتاج هذا العمل للتنفيذ فإنه لن ينفذ بالرغم من وجود فراغات ومساحات حرة حجمها(مجموع)أكبر من حجم العمل المطلوب.
أما عملية الحجز فيمكن تلخيصها في الخطوات التالية:
طلب بتوطين عمل بحجم X بايت.
ابدأ بالجزء الأول في جدول التوطين وقارن حجم العمل بحجم الجزء إذا كانت حالته (Free) فإذا كان حجم الجزء أكبر أو يساوي حجم العمل يتم توطين هذا العمل في الجزء ويحدث حقل الحالة لهذا الجزء إلى مستخدم(allocated) وبهذا تنتهي عملية توطين العمل.
أما إذا كانت حالة الجزء مستخدم أو إذا كان حجم العمل أكبر من حجم الجزء فيتم الانتقال إلى الخطوة التالية:
يتم زيادة رقم الجزء بمقدار 1 وننفذ الخطوة السابقة.
إذا تم الوصول إلى نهاية جدول التوطين ولم يوطن العمل فيؤخر تنفيذه إذا كان هناك جزء
مشغول يسمح باستيعاب العمل أو يلغى تنفيذ العمل إذا كان حجمه أكبر من حجم أكبر جزء متوفر.أما عملية الترحيل فتتم بعد إنهاء تنفيذ العمل وحسب الآلية التالية:
حدد رقم الجزء المطلوب.
انتقل إلى رقم الجزء المطلوب في جدول التوطين وعدل حالة الجزء إلى حر(Free).
إذانتهى الجدول المطلوب ولم يصادف الرقم المطلوب فهذا يعني وجود خطأفي رقم الجزء المراد تحريره.
مزايا وعيوب إدارة الذاكرة بالتجزئة الثابتة:
من حسنات هذه الإدارة زيادة تعدد البرامج وذلك بإتاحة الفرصة لتحميل أكثر من عمل قابل للتنفيذ أما مساوئ هذه الإدارة فتنحصر في ما يلي:
وجود الفراغات الداخلية والتي تؤدي إلى ضياع وهدر جزء من الذاكرة وهدر وقت وحدة المعالجة المركزية في استعراض مواقع الجزء كاملة فيما فيها الفراغات.
تتطلب عملية التوطين والترحيل وقتاً لاستعراض جدول التوطين وإجراء عمليات التحديث اللازمة له.
تتطلب عملية التنفيذ إجراء عمليات المقارنة اللازمة للعناوين في الجزء مع القيم المخزنة في مسجلي الحدود الخاصة بالجزء.
بالرغم من تعدد البرامج إلا أن حجم العمل لا زال مقيداً بحجم أكبر جزء متوفر وكذلك ضرورة تماسك العمل في الجزء وضرورة تحميله بالكامل في الجزء المعني.
عملية التوطين تعتمد على أول مطابقة (First fit) فلو كان حجم الجزء الأول 200 وكانت حالته حرة وطلب توطين عمل بحجم 10 فهذا يعني توليد 190كيلوبايت غير مستغل.