إدارة الذاكرة: الفرق بين النسختين

[مراجعة غير مفحوصة][مراجعة غير مفحوصة]
تم حذف المحتوى تمت إضافة المحتوى
ط روبوت: تصحيح العناوين
CipherBot (نقاش | مساهمات)
سطر 5:
ويتم في هذه الإدارة تخصيص مسجلين لكل جزء تسمى مسجلات الحدود(Bound register) وذلك لحماية الأعمال والمحافظة على عدم تداخلها حيث يخزن في المسجل الأول عنوان البداية للجزء وفي المسجل الثاني يخزن عنوان النهاية لنفس الجزء وعند تنفيذ تعليمة لبرنامج معين يتم مقارنة العنوان الذي ترتبط به التعليمة بالقيم المخزنة في المسجل الأول والمسجل الثاني للتأكد من أن العنوان يقع في المدى المخصص للجزء الذي يحتفظ بالبرنامج المحدد.
ولتنفيذ عمليات التوطين في الذاكرة لنفترض وجود الأجزاء المبينة في الشكل (4-2)ولنفترض أنه في لحظة ما كانت هذه الأجزاء خالية من البرامج.
تتم عملية متابعة الذاكرة وتنفيذ عمليات التوطين والترحيل وذلك باستخدام جدول الحجز(allocation table) والذي يحتوي على مجموعة من المداخل:رقم الجزء,الجزء، حجم الجزء,الجزء، موقع الجزء,الجزء، حالة الجزء مستخدم أو غير مستخدم.
 
لنفرض الآن أنه طلب تنفيذ الأعمال الآتية
سطر 13:
لتحميل العمل الأول يتم البحث في جدول التوطين عن أول جزء حجمه أكبر أو يساوي الحجم 40 وبهذا يحمل هذا العمل في الجزء الثالث وتعدل حالة هذا الجزء إلى مستخدم وبهذه الطريقة يحمل العمل الثاني في الجزء الأول والعمل الثالث في الجزء الخامس و تظهر الذاكرة بعد عملية التحميل كما هو مبين في الشكل (5-2) وتبقى بهذا الفرصة مهيأة لتحميل عملين آخرين في الجزء الثاني والرابع
 
لاحظ إنه بعد عملية الحجز تم توطين الأعمال الثلاثة في الذاكرة,الذاكرة، لاحظ أيضاً أن الجزء الأول يحتوي على فراغ غير مستغل حجمه 10k والجزء الثالث على فراغ حجمه 45k والجزء الخامس على فراغ حجمه 234k . وفي هذه الإدارة تبقى هذه الفراغات ضمن الجزء ولا يمكن استغلالها ويسمى هذا الفراغ بالفراغ الداخلي(internal fragment) فلو افترضنا الآن وجود عمل بحجم 250k ويحتاج هذا العمل للتنفيذ فإنه لن ينفذ بالرغم من وجود فراغات ومساحات حرة حجمها(مجموع )أكبر من حجم العمل المطلوب .
أما عملية الحجز فيمكن تلخيصها في الخطوات التالية:
# طلب بتوطين عمل بحجم X بايت.