| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

Alocation of Frames

Page history last edited by PBworks 16 years, 3 months ago

 

بسم الله الرحمن الرحيم

Allocation Of Frames

كل مهمة تحتاج عدد قليل من الصفحات(pages) , ذلك لإكمال على الأقل أمر واحدة(1 instruction) .
على سبيل المثال:
سابقاً شركة IBM 370  تستخدم لكل أمر 6 صفحات (for each instruction 6 pages)
 
هناك مخططين رئيسيين لتخصيص الصفحات (two major allocation schemes) :
وهما
1-     التخصيص الثابتfixed allocation
   2-إعطاء الأولوية في التوزيع(priority allocation )
 
وفي الذاكرة التخيلية (virtual memory )لدينا مشكلتين:
وهما
page replacement ( استبدال الصفحات(: وتعني مَن مِن الصفحات استبدلها؟!!
واستطعنا حلها بمجموعة من الخوارزميات منها (FIFO  الداخل أولاً خارج أولاً(
والمشكلة الثانية هي free allocation (التخصيص الحر) : تعني كم مِن الصفحات لكل تطبيقapplication ؟!
وهذا هو الهدف منassembly instruction move  وهو نقل الصفحات من مكان إلى آخر وهذا الأمر يحتاج إلى 2page  لتحديد destination (المقصد أو الهدف(   , وحتى يعمل هذا الأمر  بكفاءة يحتاج إلى 6 pages  .
لنفرض أعطيت هذا الأمر 4  صفحات(frame )وهو بحاجة إلى 6  حتى يعمل بشكل أفضل
إذن كيف سيعمل ؟؟!!!
سأوضح ذلك بالرسم التالي :
 
نعلم أن الأمر نقل(move)  يحتاج إلى  6صفحات نفرض أن الصفحات المطلوبة هي كالتالي AABBCC وأعطيته فقط  4صفحات BBCC  فقط؟

A

 

 

A

 

B

B

C

C

لو أعطينا هذا الأمر فقط4frame يحصل التالي:
1- عندما يُتَرْجم الأمر(decode instruction) يتضح أنه يحتاج يرسل مثلا للخانة A والأمر لايملك سوى 4page إذن يعملpage fault ثم استبدال replacement)) يبدل الصفحةB بـA ثم يُعمل ترجمة( ( decode مرة أخرى للأمر(instruction ) يتضح أنه بحاجة إلى B مرة أخرى إذن للمرة الثانية يلجأ للـpage fault ثم replacement   وهكذا دواليك .
 
 
نلاحظ: الأمرinstruction)  ) إلى الآن لم يُنفذ لأننا لم نعطيه الصفحات((frame  الكافية لتشغيله لذلك كل تطبيق (application ) لابد أن يكون له حد أدنى لعدد الصفحات pages .

أذن اذا وجد برنامج(program) وسوف أحدد له عدد الصفحات(Frames) هنالك طريقتين:

الأولى: التخصيص الثابت(fixed allocation (
كل البرامج تأخذ عدد معين من frameبغض النظر عن حجم البرنامج.
 
الثانية: إعطاء الأولوية في التوزيع(priority allocation )
البرامج تعطى frame  بحسب الأولويات.
 
وفيما يلي شرح لكل طريقة:

أولا: التخصيص الثابتfixed allocation

عدد ثابت لجميع المهام مثلاً: لدينا 5 مهام لكل مهمة 5frame  .
أي توزيع الصفحات بالتساوي وهذه الطريقة غير جيدة لأنه قد يحصل أن يكون هناك مهمات بأحجام صغيرة وتُعطى صفحات (pages) كثيرة , فالأفضل نعطي عدد الصفحات frames) )بحسب حجم المهمة بحيث لكل مهمة العدد المناسب لها من الصفحات pages)  )كيف نعمل ذلك؟!!
ظهر لدينا مايسمى بـالتوزيع النسبي Proportional allocation  وينص على :
بناء على حجم المهمة process وحجم غيره نعطيه نسبة ..ويتم ذلك:
 بالشكل التالي

 

 
مثلا: الذاكرة مقسمة إلى قسمين القسم السفلي بدايته من الصفر إلى عدد معين وهو مخصص لنظام التشغيل (OS) وسبب وضعه هنا للمقاطعة(interrupt) والمساحة الفارغة المتبقية نقسمها إلى frames  فلو كان عدد frame الفارغة هو64 ومهمتان(2 process) ,المهمة الأولى تحتاج 10pages  والمهمة الثانية تحتاج إلى 127 pages  وكلتا المهمتين سيدخلون إلى الذاكرة RAM , والمساحة الفارغة في الذاكرة هي 64 ؟؟
لحل ذلك نقول:
بناء على حجم المهمة (process )نأخذ نسبة معينة ثم نضربها في حجم الذاكرة المسموح وهو 64..
والحل موضح بالشكل:
 
  

 

ثانياً: إعطاء الأولوية في التوزيع(priority allocation )

 

هنا التعديل لايعتمد على حجم المهمة إنما يأخذ parameter  ثابتة وهي process of priority والغي الحجم فعليا.
فإذا وُجِد مهمة p1 تولد page fault  فالمفترض أن تعمل استبدال replacement فيتم البحث عن مهمة أخرى الأولوية لها متدنية ويتم استبدالها .
على سبيل المثال:
عندي برنامج Antivirus (المضادات)فله أولوية عالية أعلى من الـWORD فان شغلنا word يأخذ مساحة في الذاكرة أما الـAntivirusعندما يعمل scanيأخذ مجموعة من الصفحات framesفأعطيه frame حتى وان كان صغيراً لأن أولويته عالية.

Global vs. Local Allocation

هناك نوعين من الاستبدال(replacement) : 
1- Global Allocation(الاستبدال العالمي):
عندما المهمة تختار الاستبدال(replacement)لاتنظر فقط للصفحة التابعة لها إنما تنظر لصفحتها والصفحات الأخرى,أي ممكن المهمة تأخذ frameمن مهمة أخرى .
مشكلة هذه الطريقة: المهمة دائماً تأخذ من مهام أخرى لعمل استبدال(replacement), فبالتأكيد يوجد مهمة الأولوية لها متدنية, وهذا يؤدي إلى حدوث المجاعة(starvation)حيث أن المهمة التي يتم أخذ الصفحات منها تتأثر ويحصل لها مجاعة وظلم.
2-    Local Allocation(الاستبدال المحلي):
عندما المهمة تختار الاستبدال(replacement)تنظر فقط للصفحات التابعة لها.
*************************

اتمنى أن أكون وفقت فيما طرحت

أخيرا أقول:

الحمدالله على كل حال وأن أخطأت فمن نفسي وأن أصبت فمن الله

 
كتبته: منى عبد الرحمن البريه
المصدر:المحاضرات
OPerating system concept

 

Comments (3)

Anonymous said

at 4:39 pm on Dec 14, 2007

جزاك الله خير شرحك واضح

Anonymous said

at 5:27 am on Dec 16, 2007

شاكرة لكي أختي مرورك وتعليقك

Anonymous said

at 2:54 pm on Dec 23, 2007

Please fix the text format!

You don't have permission to comment on this page.