HW3.pdf

‫به نام او‬
‫سری سوم تمرینات درس سیستمهای عامل‬
‫(فصل ششم و هفتم کتاب درسی)‬
‫دانشگاه صنعتی شریف – دانشکده مهندسی کامپیوتر‬
‫ترم اول سال تحصیلی ‪19-19‬‬
‫توضیحات ‪:‬‬
‫تمرین ها در ‪ 4‬سوال تنظیم شده و مهلت ارسال آن ها تا روز ‪ 12‬آذر ‪ 2932‬می باشد‪.‬‬
‫تمامی سواالت نیازمند پاسخ تشریحی میباشند؛ پاسخ تمرینات خود را تا تاریخ مذکور به آدرس ایمیل‬
‫‪[email protected]‬ارسال نمایید؛ دقت کنید که پاسخ ها در یک فولدر زیپ با فرمت ‪HW9-StdID‬‬
‫در ایمیلی تحت همین عنوان ارسال گردد ؛ ارسال پاسخ ها تا دو روز بعد از تاریخ فوق به ازای هر روز مشمول ‪%12‬‬
‫کسر نمره خواهد شد و پس از این مهلت به آن نمره ای تعلق نخواهد گرفت؛ در ضمن در صورت شباهت تمرینات‬
‫ارسالی و احراز رونوشت بودن آن ها برای هر دو نفر نمره صفر در نظر گرفته می شود؛ هر گونه سوال یا ابهام در‬
‫زمینه تمرینات را از طریق آدرس ایمیل فوق با بنده در میان بگذارید‪.‬‬
‫‪ -2‬اگر مقادیر اولیه سمافورهای ‪ S‬و ‪ N‬به ترتیب ‪ 2‬و ‪ 0‬باشد و دو روال زیر به طور همروند اجرا شوند کدام گزینه درست‬
‫است ؟‬
‫‪Procedure producer‬‬
‫‪Begin‬‬
‫‪Repeat‬‬
‫;)‪Wait(S‬‬
‫;)‪Wait(N‬‬
‫;‪Take‬‬
‫;)‪Signal(S‬‬
‫;)‪Signal(N‬‬
‫‪Foreever‬‬
‫‪End‬‬
‫‪ -2‬راه حل کامالً درست است‪.‬‬
‫‪Procedure producer‬‬
‫‪Begin‬‬
‫‪Repeat‬‬
‫;‪Produce‬‬
‫;)‪Wait(S‬‬
‫;‪Append‬‬
‫;)‪Signal(N‬‬
‫;)‪Signal(S‬‬
‫‪Forever‬‬
‫‪End‬‬
‫‪ -1‬امکان بن بست وجود دارد‪.‬‬
‫‪ -1‬امکان عدم تامین انحصار متقابل وجود دارد‪.‬‬
‫‪ -4‬امکان گرسنگی ‪ Consumer‬وجود دارد‪.‬‬
‫‪ -1‬برنامه زير طبق مراحل زير اجرا مي شود‪ ،‬كدام يك از اعداد زير نمي تواند يك خروجي معتبر براي آن باشد؟‬
‫خروجي ها ‪00 - 01 - 010 - 38 - 011 :‬‬
‫داليل خود را براي هركدام از خروجي ها بیان كنید‪.‬‬
‫;‪const int n=05‬‬
‫;‪int tally‬‬
‫)(‪void total‬‬
‫{‬
‫;‪int count‬‬
‫;‪for (count=1; count<=n; count++) tally++‬‬
‫;)‪print(tally‬‬
‫}‬
‫)(‪void main‬‬
‫{‬
‫;‪tally=5‬‬
‫‪cobegin‬‬
‫{‬
‫;)(‪total(); total‬‬
‫}‬
‫}‬
‫‪ - 9‬وضعیت ناامن در الگوریتم بانکدار یعنی‪:‬‬
‫‪ )2‬بن بست رخ داده است ولی هنوز کشف نشده است‪.‬‬
‫‪ )1‬بن بست رخ خواهد داد مگر آنکه مراقب درخواست های جدید باشیم‪.‬‬
‫‪ )9‬حتی اگر مراقب درخواست های جدید باشیم بازهم ب نبست رخ خواهد دارد و دیگر کار تمام است‪.‬‬
‫‪ )4‬هیچکدام‬
‫‪ 8 – 4‬فرايند ‪ P2‬و‪ P1‬و‪ P9‬و سه منبع ‪ R2‬و ‪ R1‬و ‪ R9‬مفروضند؛‬
‫ماتريس‪Allocation‬‬
‫بیانگر منابع تخصیص داده شده‪ ،‬ماتريس‬
‫بیانگر منابع آزاد و ماتريس ‪ Request‬بیانگر درخواست هايي است كه در گذشته به سیستم عامل داده شده هستند؛ وضعیت زير ‪:‬‬
‫‪ )0‬امن است ‪ ) 2‬بن بست است ‪ )8‬نا امن است ولي بن بست نیست ‪ )4‬هیچ كدام‬
‫‪A‬‬
‫‪R2 R9‬‬
‫‪R0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪Request‬‬
‫‪R0 R2 R9‬‬
‫‪Allocation‬‬
‫‪R0 R2 R9‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪P2‬‬
‫‪2‬‬
‫‪1‬‬
‫‪2‬‬
‫‪P2‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪P1‬‬
‫‪1‬‬
‫‪2‬‬
‫‪1‬‬
‫‪P1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪P9‬‬
‫‪2‬‬
‫‪1‬‬
‫‪2‬‬
‫‪P9‬‬
‫‪A‬‬