۰
subtitle
ارسال: #۱
  
حافظه مجازی- سراسری کامپیوتر ۸۵
راه حل پارسه خیلی گیج کننده هس
۱
ارسال: #۲
  
RE: حافظه مجازی- سراسری کامپیوتر ۸۵
(۲۴ فروردین ۱۳۹۵ ۰۸:۱۱ ب.ظ)dokhtare payiz نوشته شده توسط: راه حل پارسه خیلی گیج کننده هستعداد قاب هایی که به فرایند ها تا الان واگذار شده:
p1: ۶۰۰ ،p2: ۱۰۰ ،p3: ۲۵۰
حالا حداکثر فضایی که این فرایند ها میخوان:
p1 کلا ۹۵۰ تا قاب میخواد که تا الان ۶۰۰ تا در اختیارش هست و ۳۵۰ تا دیگه میخواد.
p2 کلا ۲۰۰ تا قاب میخواد که تا الان ۱۰۰ تا در اختیارش هست و ۱۰۰ تا دیگه میخواد.
p3 کلا ۵۵۰ تا قاب میخواد که تا الان ۲۵۰ تا در اختیارش هست و ۳۰۰ تا دیگه میخواد.
اینجا
حافظه ی اصلی ۱۲۰۰ تا قاب داره، از بین این ۱۲۰۰ تا ۶۰۰ تا واسه فرایند اول، ۱۰۰ تا واسه فرایند دوم و ۲۵۰ تا واسه فرایند سوم، مجموعا ۹۵۰ تا قاب در اختیار این فرایند ها قرار گرفته و ۱۲۰۰-۹۵۰=۲۵۰ تا قاب داریم،
پس تعداد کل قاب های موجود: ۲۵۰
تعداد قاب های مورد نیاز برای فرایند ها:
p1: ۳۵۰ ،p2: ۱۰۰ ،p3: ۳۰۰
پس با توجه به این که ۲۵۰ تا قاب داریم و p3 و p1 بیشتر از ۲۵۰ تا قاب نیاز دارند و p2 فقط ۱۰۰ تا قاب میخواد، ۱۰۰ تا قاب بهش میدیم تا اجرا بشه، حالا ۱۵۰ تا داریم، بعد از اجرای p2، اون ۲۰۰ تا قابی که در اختیار داره (۱۰۰ تا که داشت و ۱۰۰ تایی که بعدش بهش دادیم) آزاد میشه و حالا ۱۵۰+۲۰۰=۳۵۰ تا قاب داریم، چون p1 و p3 به ترتیب ۳۵۰ و ۳۰۰ قاب میخوان و ما هم ۳۵۰ تا قاب داریم هر دو تاشون حالا میتونن اجرا بشن.
اگه p1 اجرا بشه، یعنی ۳۵۰ تا قاب بهش اختصاص دادیم و بعد از اجراش ۳۵۰+( ۶۰۰ قابی که قبلا داشت) رو آزاد میکنه و بعدش میتونه p3 اجرا بشه و شرایط safe هست.
اگه p3 اجرا بشه بعد از p2، یعنی ۳۰۰ تا قاب بهش اختصاص دادیم و بعد از اجراش ۳۰۰+( ۲۵۰ قابی که قبلا داشت )رو آزاد میکنه و بعدش میتونه p1 اجرا بشه و شرایط safe هست.
حالا :
اگه p4 رو هم داشتیم، کل شرایط بالا رو از نو تکرار میکنیم از جایی که با نارنجی نوشتم اینجا
حافظه ی اصلی ۱۲۰۰ تا قاب داره، از بین این ۱۲۰۰ تا ۶۰۰ تا واسه فرایند اول، ۱۰۰ تا واسه فرایند دوم و ۲۵۰ تا واسه فرایند سوم و ۵۰ تا واسه فرایند چهارم، مجموعا ۱۰۰۰ تا قاب در اختیار این فرایند ها قرار گرفته و ۱۰۰۰-۱۲۰۰=۲۰۰ تا قاب داریم، (این که چرا ۵۰ تا قاب در اختیار فرایند چهارم قرار میدیم رو توضیح میدم در آخر)
پس تعداد کل قاب های موجود: ۲۰۰
تعداد قاب های مورد نیاز برای فرایند ها:
p1: ۳۵۰ ،p2: ۱۰۰ ،p3: ۳۰۰، p4: ۵۵۰
پس با توجه به این که ۲۰۰ تا قاب داریم و p3 و p4و p1 بیشتر از ۲۵۰ تا قاب نیاز دارند و p2 فقط ۱۰۰ تا قاب میخواد، ۱۰۰ تا قاب بهش میدیم تا اجرا بشه، حالا ۱۰۰ تا داریم، بعد از اجرای p2، اون ۲۰۰ تا قابی که در اختیار داره (۱۰۰ تا که داشت و ۱۰۰ تایی که بعدش بهش دادیم) آزاد میشه و حالا ۱۰۰+۲۰۰=۳۰۰ تا قاب داریم، چون p1 و p3و p4 به ترتیب ۳۵۰ و ۳۰۰ و ۵۵۰قاب میخوان و ما هم ۳۰۰ تا قاب داریم، فقط p3 میتونه اجرا بشه.
p3 اجرا میشه و ۳۰۰ تا قاب بهش اختصاص دادیم و بعد از اجراش ۳۰۰+( ۲۵۰ قابی که قبلا داشت) رو آزاد میکنه و بعدش میتونه p1 و هم p4 اجرا بشه و شرایط safe هست.
چرا حالا ۵۰ تا قاب به p4 اختصاص دادیم و نه بیشتر؟
اگه مثلا ۱۵۰ تا قاب به فرایند چهارم اختصاص بدیم که توی گزینه ی دوم اومده، اونوقت کل تعداد قاب هایی که واسمون میمونه از ۲۵۰ تا میشه ۱۰۰ تا، با ۱۰۰ تا میشه p2 اجرا بشه ولی بعدش که ۲۰۰ تاش آزاد میشه کلا ۱۰۰+۱۰۰ یعنی ۲۰۰ تا قاب خواهیم داشت، که حالا نمیشه هیچ فرایندی اجرا بشه و به بن بست میخوریم.
حالا به جای ۱۵۰ هر عدد دیگه ی بزرگتر از ۵۰ هم اگه به فرایند چهارم اختصاص پیدا کنه همچنان دچار بن بست میشیم و شرایط safe نمی مونه.
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close