HW3.pdf

‫به نام خدا‬
‫تمرین سری سوم درس سیستمهای عامل ‪1‬‬
‫دانشگاه صنعتی شریف – دانشکده مهندسی کامپیوتر‬
‫ترم اول سال تحصیلی ‪49-49‬‬
‫‪‬‬
‫‪‬‬
‫مهلت ارسال تمرین ها دوم دی ماه ساعت ‪ 99:34‬می باشد‪.‬‬
‫پاسخ تمرینات خود را به آدرس ‪ [email protected]‬ارسال نمایید‪ .‬دقت کنید که پاسخ ها تنها در قالب یک فایل ‪PDF‬‬
‫بوده و نام و عنوان ایمیل ارسالی با فرمت ‪ )88101111-HW1( StudentID-HW3‬ارسال گردد‪( .‬پاسخهایی که با این‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫فرمت ارسال نشوند در هنگاه تصحیح با مشکل موجه خواهند شد‪).‬‬
‫ارسال پاسخها به ازای هر روز تاخیر شامل ‪ %93‬کسر نمره خواهد شد و بعد از چهار روز به آن نمرهای تعلق نمیگیرد‪.‬‬
‫در صورت شباهت تمرینات ارسالی و احراز رونوشت بودن آنها برای هر دو نفر نمره صفر در نظر گرفته میشود‪.‬‬
‫کپی برداری محض از سایتهای اینترنتی نمره ای نخواهد داشت‪.‬‬
‫هرگونه سوال یا ابهام خود را به ایمیل ‪ [email protected]‬ارسال کنید‪.‬‬
‫‪ )1‬دو عمل ‪ wait‬و ‪ signal‬برای استفاده از دو منبع به طور هم زمان نوشته شده است‪ .‬بجای عبارتهای ‪ c1‬و ‪ c2‬چه شرطی باید‬
‫نوشته شود؟ ( مقدار سمافورهای ‪ mutex‬و ‪ block‬به ترتیب یک و صفر است)‬
‫)‪Signal(S,R‬‬
‫{‬
‫;)‪Wait(mutex‬‬
‫;‪S1=S1+1‬‬
‫;‪R1=R1+1‬‬
‫)‪If(c2‬‬
‫;)‪Signal(block‬‬
‫;)‪Signal(mutex‬‬
‫}‬
‫)‪Wait(S,R‬‬
‫{‬
‫;)‪Wait(mutex‬‬
‫;‪S1=S1-1‬‬
‫;‪R1=R1-1‬‬
‫)‪If (c1‬‬
‫{‬
‫;)‪Signal(mutex‬‬
‫;)‪Wait(block‬‬
‫}‬
‫‪Else‬‬
‫;)‪Signal(mutex‬‬
‫}‬
‫‪ )9‬درستی یا نادرستی عبارات زیر را توضیح دهید‪.‬‬
‫الف) ممکن است الگوریتم زمان بندی ‪ RR‬بهتر از ‪ SRT‬باشد‪.‬‬
‫ب) در الگوریتم ‪ RR‬اگر مقدار ‪ Time Slice‬کم شود‪ ،‬نتیجه بدتر نمیشود‪.‬‬
‫‪ )9‬در الگوریتم سالمندی (‪ )Aging‬اگر ضریب آلفا ‪ 1/9‬باشد و ‪ 3‬اجرای قبلی یک پردازه به ترتیب ‪ 99 ،17 ،31 ،07‬و ‪ 19‬میلی ثانیه‬
‫باشد‪ ،‬پیشبینی زمان بعدی چقدر است؟‬
‫‪ )9‬سیستمی با ‪ 3‬پردازه و ‪ 9‬منبع در حالت زیر قرار دارد‪:‬‬
‫‪Available‬‬
‫‪D‬‬
‫‪0‬‬
‫‪C‬‬
‫‪2‬‬
‫‪B‬‬
‫‪5‬‬
‫‪Max‬‬
‫‪A‬‬
‫‪1‬‬
‫‪D‬‬
‫‪2‬‬
‫‪0‬‬
‫‪6‬‬
‫‪2‬‬
‫‪6‬‬
‫‪C‬‬
‫‪1‬‬
‫‪5‬‬
‫‪5‬‬
‫‪5‬‬
‫‪5‬‬
‫‪Allocation‬‬
‫‪A‬‬
‫‪0‬‬
‫‪1‬‬
‫‪2‬‬
‫‪0‬‬
‫‪0‬‬
‫‪B‬‬
‫‪0‬‬
‫‪7‬‬
‫‪3‬‬
‫‪6‬‬
‫‪6‬‬
‫‪P0‬‬
‫‪P1‬‬
‫‪P2‬‬
‫‪P3‬‬
‫‪P4‬‬
‫‪D‬‬
‫‪2‬‬
‫‪0‬‬
‫‪4‬‬
‫‪2‬‬
‫‪4‬‬
‫‪C‬‬
‫‪1‬‬
‫‪0‬‬
‫‪5‬‬
‫‪3‬‬
‫‪1‬‬
‫‪B‬‬
‫‪0‬‬
‫‪0‬‬
‫‪3‬‬
‫‪6‬‬
‫‪0‬‬
‫‪A‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪P0‬‬
‫‪P1‬‬
‫‪P2‬‬
‫‪P3‬‬
‫‪P4‬‬
‫با استفاده از الگوریتم بانکدار به سواالت زیر پاسخ دهید‪.‬‬
‫الف) آیا سیستم در حالت امن است؟ (با ذکر محاسبات)‬
‫ب) اگر درخواستی از پردازه ‪ P1‬به صورت )‪ (0,4,2,0‬برسد‪ ،‬آیا میتوان فورا به آن تخصیص داد؟ آیا بعد از این تخصیص سیستم در‬
‫وضعیت امن قرار میگیرد؟‬
‫‪ )3‬یک سیستم تک پردازهای ب ا صف بازخورد چند سطحی را در نظر بگیرید‪ .‬به سطح اول و دوم به ترتیب الگوریتم ‪ RR‬با تکه زمانی ‪8‬‬
‫و ‪ 11‬میلی ثانیه داده شده است و سطح سوم بر اساس ‪ FCFS‬زمان بندی شده است ‪ .‬فرض کنید شش کار‪ ،‬همگی در زمان صفر‬
‫وارد سیستم شدهاند و زمان اجرای آنها به ترتیب ‪ 97،93،97،19،0،9‬میلی ثانیه است‪ .‬میانگین زمان بازگشت‬
‫(‪ )turnaround time‬و میانگین زمان انتظار (‪ )waiting time‬این سیستم چقدر خواهد بود؟‬
‫‪ )1‬دو پردازه ‪ P1‬و ‪ P2‬را در نظر بگیرید که از مراحل زیر تشکیل شدهاند‪ .‬مقادیر نوشته شده زمان اجرای پردازه است‪ .‬همچنین‬
‫عملیات ‪ Net‬و ‪ Disk‬به صورت غیر قبضه پذیر انجام میشوند‪ .‬اگر پردازههای ‪ P1‬و ‪ P2‬در زمانهای ‪ 1‬و ‪ 7‬به سیستم رسیده باشند‬
‫و سیاست سیستم ‪ SRT‬باشد‪ ،‬درصد استفاده از پردازنده چقدر خواهد بود؟ (در صورت برابری زمان ‪ job‬ها‪ ،‬پردازه ‪ P1‬پذیرفته‬
‫میشود)‬
‫‪P2‬‬
‫‪P1‬‬
‫‪CPU 5‬‬
‫‪CPU 2‬‬
‫‪DISK 2‬‬
‫‪NET 2‬‬
‫‪NET 2‬‬
‫‪CPU 2‬‬
‫‪CPU 5‬‬
‫‪DISK 2‬‬
‫‪DISK 2‬‬
‫‪CPU 5‬‬
‫‪CPU 2‬‬
‫‪DISK 3‬‬
‫‪NET 3‬‬
‫‪CPU 2‬‬
‫‪CPU 1‬‬
‫‪-‬‬
‫‪ )0‬اگر متغیر ‪( total‬در ابتدا صفر است) یک متغیر مشترک بین دو ریسه باشد و این دو ریسه هم زمان تکه کد زیر را اجرا کنند‪،‬‬
‫‪ total‬در پایان چه مقدارهایی میتواند داشته باشد؟‬
‫)(‪void run‬‬
‫{‬
‫;‪int count‬‬
‫;‪for (count=0;count<50;count++) total++‬‬
‫}‬