۰
subtitle
ارسال: #۱
  
نحوه یافتن مسیر امن (فوری)- کامپیوتر- آزاد ۸۱
روال مسیریابی پارسه رو برای تشخیص امن بودن یا نبودن خیلی متوجه نمیشم. میشه تو این سوال کامل توضیح بدین؟
۱
ارسال: #۲
  
RE: نحوه یافتن مسیر امن (فوری)- کامپیوتر- آزاد ۸۱
در این سوال هر دو موضوع مربوط به الگوریتم بانکدار مد نظر هست :
۱) الگوریتم آزمون امن بودن حالت (در گزینه ی اول)
۲)الگوریتم درخواست منبع(در سه گزینه ی بعدی)
---------
در سوالات مربوط به الگوریتم بانکدار معمولا دو ماتریس Max(حداکثر نیاز هر یک از پردازه ها)، و Allocation(تعداد تخصیص فعلی) و همچنین یکی از بردار های Available(تعداد منابع موجود) ، Resource(تعداد کـــل هر یک از منابع) داده می شود و بقیقه ی ساختمان داده ها از روابط زیر قابل استنتاج است :
[tex]Available\[j\]=Resource\: \[j\]-\sum^n_{i=1}Allocation\: \[i\]\ :\[j\]\: [/tex]
[tex]Need\: \[i\]\: \[j\]\: =Max\: \[i\]\: \[j\]-Allocation\: \[i\]\: \[j\]\: [/tex]
-----
برای بررسی امن بودن/نبودن ابتدا باید ماتریس Need را بدست آوریم طبق فرمول بالا و سپس به دنبال سطری بگردیم که کوچکتر یا مساوی Available باشد
داریم :
[tex]Need=\begin{bmatrix}1&6&5&0\\1&0&3&2\\0&2&2&0\\0&3&4&2\\1&0&0&1\end{bmatrix}[/tex]
نمیدونم چرا تکس نویسیش در نمیاد.اما در کتاب هست ماتریس need.
حالا با مقایسه ی موارد بالا متوجه میشویم که فقط سطر آخر از ماتریس need قابل اجراست چون منابع مورد نیاز آن از منابع موجود کمتر یا مساوی است،سپس : بعد از اجرا و تکمیل شدن پردازه ی انتخاب شده، تمام منابع از قبل تخصیص داده شده به آن سطر(Allocation) به مقدار Available اضافه میشود، که همان حالت به روز شده است، یعنی:
(از ماتریس Need سطر آخر{p5} قابل اجرا بود)،پس از اجرای این سطر مقدار Allocation مربوط به این سطر که برابر است با :
[tex](0\: ,\: 0\: ,\: 1\: ,\: 1)\: [/tex] را به مقدار فعلی اضافه میکنیم و داریم :
[tex]\: Available\: =\: (1\: ,\: 0\: ,\: 3\: ,\: 3)\: [/tex]
حال دوباره به سطر های ماتریس Need نگاه میکنیم تا بفهمیم کدام یک قابل اجراست:داریم:
با این مقدار تنها سطر دوم از ماتریس need قابل اجراست {پردازه p2} و سپس مقدار Allocation پردازه {p2} را به مقدار فعلی Available اضافه میکنیم و به همین ترتیب پیش برید تا یک مسیر امن به دست آورید . . .
۱) الگوریتم آزمون امن بودن حالت (در گزینه ی اول)
۲)الگوریتم درخواست منبع(در سه گزینه ی بعدی)
---------
در سوالات مربوط به الگوریتم بانکدار معمولا دو ماتریس Max(حداکثر نیاز هر یک از پردازه ها)، و Allocation(تعداد تخصیص فعلی) و همچنین یکی از بردار های Available(تعداد منابع موجود) ، Resource(تعداد کـــل هر یک از منابع) داده می شود و بقیقه ی ساختمان داده ها از روابط زیر قابل استنتاج است :
[tex]Available\[j\]=Resource\: \[j\]-\sum^n_{i=1}Allocation\: \[i\]\ :\[j\]\: [/tex]
[tex]Need\: \[i\]\: \[j\]\: =Max\: \[i\]\: \[j\]-Allocation\: \[i\]\: \[j\]\: [/tex]
-----
برای بررسی امن بودن/نبودن ابتدا باید ماتریس Need را بدست آوریم طبق فرمول بالا و سپس به دنبال سطری بگردیم که کوچکتر یا مساوی Available باشد
داریم :
[tex]Need=\begin{bmatrix}1&6&5&0\\1&0&3&2\\0&2&2&0\\0&3&4&2\\1&0&0&1\end{bmatrix}[/tex]
نمیدونم چرا تکس نویسیش در نمیاد.اما در کتاب هست ماتریس need.
حالا با مقایسه ی موارد بالا متوجه میشویم که فقط سطر آخر از ماتریس need قابل اجراست چون منابع مورد نیاز آن از منابع موجود کمتر یا مساوی است،سپس : بعد از اجرا و تکمیل شدن پردازه ی انتخاب شده، تمام منابع از قبل تخصیص داده شده به آن سطر(Allocation) به مقدار Available اضافه میشود، که همان حالت به روز شده است، یعنی:
(از ماتریس Need سطر آخر{p5} قابل اجرا بود)،پس از اجرای این سطر مقدار Allocation مربوط به این سطر که برابر است با :
[tex](0\: ,\: 0\: ,\: 1\: ,\: 1)\: [/tex] را به مقدار فعلی اضافه میکنیم و داریم :
[tex]\: Available\: =\: (1\: ,\: 0\: ,\: 3\: ,\: 3)\: [/tex]
حال دوباره به سطر های ماتریس Need نگاه میکنیم تا بفهمیم کدام یک قابل اجراست:داریم:
با این مقدار تنها سطر دوم از ماتریس need قابل اجراست {پردازه p2} و سپس مقدار Allocation پردازه {p2} را به مقدار فعلی Available اضافه میکنیم و به همین ترتیب پیش برید تا یک مسیر امن به دست آورید . . .
۰
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close