سوال 100

حل تشریحی سوال شماره 100 مجموعه دروس تخصصی مشترک

کنکور ارشد مهندسی فناوری اطلاعات (IT) 1400

100.

الگوریتم زیر که تغییر یافته الگوریتم پترسون برای حل ناحیه بحرانی است برای دو فرایند i و j ارائه شده است. (مشابه آن برای J وجود دارد که اندیس‌های i و j تعویض می‌گردد.) کدام گزینه درست است؟ (فرض کنید که الگوریتم پترسون درست عمل می‌کند.)

process i

do {

turn=i ;

while(turn==j);

turn=j;

}while(true);

1)

دقیقا یک شرط لازم حل ناحیه بحرانی را نقض می‌کند.

2)

دقیقا دو شرط لازم حل ناحیه بحرانی را نقض می‌کند.

3)

هر سه شرط حل ناحیه بحرانی را نقض می‌کند.

4)

شروط لازم ناحیه بحرانی را دارد و راه حل مناسب است.

پاسخ ها

1 پاسخ
دکتر ابوالفضل حقیقت
دکتر ابوالفضل …سه شنبه 15 اردیبهشت 1405

گزينه 1 درست است.

این روش شرط انحصار متقابل را نقض می­کند. فرض کنید فرایند Pi بخواهد وارد ناحیه بحرانی شود و turn=i=0 شود. شرط while (turn==1) برقرار نبوده و وارد ناحیه بحرانی می­شود. حال فرض کنید فرایند Pj بخواهد وارد ناحیه بحرانی شود و turn=j=1 شود. شرط while (turn==0) برقرار نبوده و فرایند دوم هم وارد ناحیه بحرانی می­شود (شکست انحصار متقابل). واضح است که فرایند بیرون ناحیه بحرانی مانع از ورود دیگری به ناحیه بحرانی نیست و شرط پیشرفت برقرار است. بن­بست هم در turn وجود ندارد. چون turn نمی­تواند همزمان 0 و 1 باشد.

ارسال پاسخ