HW3.pdf

‫به نام خدا‬
‫تمرین سری سوم درس سیستم های عامل‬
‫دانشگاه صنعتی شریف – دانشکده مهندسی کامپیوتر‬
‫ترم دوم سال تحصیلی ‪39-39‬‬
‫‪‬‬
‫مهلت ارسال تمرین ها ‪ 11‬اردیبهشت ماه ‪ 1939‬ساعت ‪ 29:33‬می باشد‪.‬‬
‫‪‬‬
‫پاسخ تمرینات خود را به آدرس ‪ [email protected]‬ارسال نمایید‪ .‬دقت کنید که پاسخ ها تنها در قالب یک‬
‫فایل ‪ PDF‬بوده و نام و عنوان ایمیل ارسالی با فرمت ‪) StudentID-HW3‬مثال ‪ )88101111-HW3‬ارسال گردد‪.‬‬
‫( پاسخهایی که با این فرمت ارسال نشوند در هنگاه تصحیح با مشکل موجه خواهند شد( ‪.‬‬
‫‪‬‬
‫ارسال پاسخها به ازای هر روز تاخیر (حتی یک ساعت) شامل ‪ %23‬کسر نمره خواهد شد و بعد از چهار روز به آن نمره‬
‫ای تعلق نمیگیرد‪.‬‬
‫‪‬‬
‫در صورت شباهت تمرینات ارسالی و احراز رونوشت بودن آنها برای هر دو نفر نمره صفر در نظر گرفته میشود‪.‬‬
‫‪‬‬
‫کپی برداری محض از سایتهای اینترنتی نمره ای نخواهد داشت‪.‬‬
‫‪‬‬
‫هرگونه سوال یا ابهام خود را به ایمیل ‪ [email protected]‬ارسال کنید‬
‫‪ -1‬فرض کنید زمان بندی پردازنده به صورت ‪ time sharing‬است و دو صف اولویت در سیستم داریم و مادامی که پردازه‬
‫ای با اولویت باالتر داریم ‪،‬پردازه هایی که در صف با اولویت پایین تر هستند را اجرا نمی کنیم ‪ .‬پردازه های این دو صف ‪،‬‬
‫یک ناحیه ی بحرانی مشترک دارند ‪ .‬در چه صورت ممکن است با وجود خالی نبودن صف اولویت باالتر ‪ ،‬پردازه ای با‬
‫اولویت پایین تر را اجرا کنیم؟‬
‫‪ -2‬اگر متغیر ‪( total‬که در ابتد ا صفر است) یک متغیر مشترک بین دو ریسه باشد و این دو ریسه هم زمان تکه کد زیر را‬
‫اجرا کنند ‪ total ،‬در پایان چه مقدار هایی می تواند داشته باشد ؟‬
‫{)(‪void run‬‬
‫;‪int count‬‬
‫)‪for (count =0 ; count<50;count++‬‬
‫;‪total++‬‬
‫}‬
‫‪ -9‬آیا ممکن است با وجود تنها یک پردازه در سیستم ‪ deadlock ،‬رخ دهد ؟ توضیح دهید ‪.‬‬
‫‪ -9‬کدام الگوریتم زیر میتواند موجب قحطی‪ 1‬شود؟ توضیح دهید این اتفاق در چه صورتی ممکن است بیفتد؟ درصورتیکه‬
‫راهحلی برای رفع این مشکل وجود دارد ‪ ،‬آن را بیان کنید‪.‬‬
‫‪starvation‬‬
‫‪1‬‬
‫‬‫‬‫‬‫‪-‬‬
‫‪FCFS‬‬
‫‪SJF‬‬
‫‪Round Robin‬‬
‫‪Priority‬‬
‫‪ -3‬دو عمل ‪ wait‬و ‪ signal‬برای استفاده از دو منبع به طور هم زمان نوشته شده است ‪ .‬به جای عبارت های ‪ c1‬و ‪ c2‬چه‬
‫شرطی باید نوشته شود ؟(مقدار سمافورهای ‪ mutex‬و ‪ block‬به ترتیب یک و صفر است ‪) .‬‬
‫)‪Signal(S,R‬‬
‫)‪Wait(S,R‬‬
‫{‬
‫{‬
‫;)‪Wait(mutex‬‬
‫;)‪Wait(mutex‬‬
‫;‪S1=S1+1‬‬
‫;‪S1=S1-1‬‬
‫;‪R1=R1+1‬‬
‫;‪R1=R1-1‬‬
‫)‪If(c2‬‬
‫)‪If(c1‬‬
‫;)‪Signal(block‬‬
‫{‬
‫;)‪Signal(mutex‬‬
‫;)‪Signal(mutex‬‬
‫}‬
‫;)‪Wait(block‬‬
‫‪} else‬‬
‫;)‪Signal(mutex‬‬
‫}‬
‫‪ -6‬چهار شرطی که باید همزمان برقرار باشند تا بنبست‪ 2‬رخ دهد را بهاختصار توضیح دهید‪.‬‬
‫‪ -7‬درستی یا نادرستی عبارات زیر را با ذکر دلیل مشخص کنید‪:‬‬
‫الف ) در یک گراف اختصاص منابع‪ 9‬اگر یک دور به وجود بیاید یعنی بنبست رخداده است‪.‬‬
‫ب) وضعیت ناامن در الگوریتم بانکدار یعنی بنبست رخداده است ولی هنوز کشف نشده است‪.‬‬
‫پ) درصورتیکه با الگوریتم بانکدار وضعیتی را ناامن تلقی کنیم ‪ ،‬حتماً بنبست رخ خواهد داد‪.‬‬
‫‪deadlock‬‬
‫‪Resource- Allocation graph‬‬
‫‪2‬‬
‫‪9‬‬
‫‪ -8‬سهراه حل برای جلوگیری از بنبست‪ 9‬ارائه دهید و بیان کنید که هرکدام از این راهحلها کدامیک از شروط ایجاد بنبست‬
‫را از بین میبرد؟‬
‫‪ -3‬راههای بازگرداندن سیستم به وضعیت بدون بنبست بعد از رخداد بنبست را توضیح دهید‪.‬‬
‫‪ -11‬سیستمی با ‪ 3‬پردازه و ‪ 9‬منبع در حالت زیر قرار دارد ‪ ،‬آیا سیستم در حالت امن است؟ (با ذکر محاسبات)‬
‫‪D‬‬
‫‪0‬‬
‫‪D‬‬
‫‪2‬‬
‫‪0‬‬
‫‪4‬‬
‫‪2‬‬
‫‪4‬‬
‫‪C‬‬
‫‪1‬‬
‫‪0‬‬
‫‪5‬‬
‫‪3‬‬
‫‪1‬‬
‫‪B‬‬
‫‪0‬‬
‫‪0‬‬
‫‪3‬‬
‫‪6‬‬
‫‪0‬‬
‫‪A‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪Allocation‬‬
‫‪P0‬‬
‫‪P1‬‬
‫‪P2‬‬
‫‪P3‬‬
‫‪P4‬‬
‫‪D‬‬
‫‪2‬‬
‫‪0‬‬
‫‪6‬‬
‫‪2‬‬
‫‪6‬‬
‫‪C‬‬
‫‪1‬‬
‫‪5‬‬
‫‪5‬‬
‫‪5‬‬
‫‪5‬‬
‫‪B‬‬
‫‪0‬‬
‫‪7‬‬
‫‪3‬‬
‫‪6‬‬
‫‪6‬‬
‫‪A‬‬
‫‪0‬‬
‫‪1‬‬
‫‪2‬‬
‫‪0‬‬
‫‪0‬‬
‫‪Max‬‬
‫‪P0‬‬
‫‪P1‬‬
‫‪P2‬‬
‫‪P3‬‬
‫‪P4‬‬
‫‪A‬‬
‫‪1‬‬
‫‪Available‬‬
‫‪C‬‬
‫‪2‬‬
‫‪B‬‬
‫‪5‬‬
‫‪deadlock prevention‬‬
‫‪9‬‬