سوال 102

حل تشریحی سوال شماره 102 سیستم‌های عامل

کنکور ارشد مهندسی کامپیوتر 1400

102.

کدام مورد سیستم عامل را مجبور میکند دستورات که به ترتیب در پردازه‌های همروند قرار دارند به همان ترتیب اجرا کند؟ (مقدار اولیه سمافورها a=b=c=0)


1)


2)


3)


4)


پاسخ ها

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

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

چون مقدار اولیه شمارنده سمافورها همگی صفر است، اگر فرایندهای P2 یا P3 یا P4 اجرا شوند هر کدام با فراخوانی wait روی یکی از سه سمافور می­‌خوابند. حال اگر فرایند P1 اجرا شود دستور S1 را اجرا می­‌کند و با فراخوانی signal(a) فرایند P2 را بیدار می­‌کند تا دستور S2 را اجرا ­کند و با فراخوانی signal(b) فرایند P3 را بیدار ­کند و آن هم دستور S3 را اجرا ­کند و با فراخوانی signal(c) فرایند P4 را بیدار ­کند تا دستور S4 را اجرا ­کند. در یک سناریوی دیگر فرض کنید اول فرایند P1 اجرا می­‌شود و دستور S1 را اجرا می­‌کند و با فراخوانی signal(a) مقدار شمارنده سمافور a را که کسی در صف آن خواب نیست، 1 می­‌کند. حال اگر بعداً فرایند P2 اجرا شود با فراخوانی wait روی a نمی­‌خوابد و بقیه نیز به همین ترتیب اجرا می­‌شوند.

سایر گزینه­‌ها نادرست است. مثلاً در گزینه 2، اگر اول فرایند P1 اجرا ­شود و دستور S1 را اجرا ­کند، با فراخوانی signal(a) و signal(b) این امکان را فراهم می­‌کند که دستورات S2 و S3 به هر ترتیبی اجر شوند.

ارسال پاسخ