به نام خدا تمرین سری دوم درس سیستمهای عامل دانشگاه صنعتی شریف – دانشکده مهندسی کامپیوتر ترم اول سال تحصیلی 49-49 مهلت ارسال تمرین ها 21آذر ماه ساعت 15:94می باشد. پاسخ تمرینات خود را به آدرس os93941@gmail.comارسال نمایید .دقت کنید که پاسخ ها تنها در قالب یک فایل PDF بوده و نام و عنوان ایمیل ارسالی با فرمت )88101111-HW2( StudentID-HW2ارسال گردد( .پاسخهایی که با این فرمت ارسال نشوند در هنگاه تصحیح با مشکل مواجه خواهند شد). ارسال پاسخها به ازای هر روز تاخیر شامل %19کسر نمره خواهد شد و بعد از چهار روز به آن نمرهای تعلق نمیگیرد. در صورت شباهت تمرینات ارسالی و احراز رونوشت بودن آنها برای هر دو نفر نمره صفر در نظر گرفته میشود. کپی برداری محض از سایتهای اینترنتی نمره ای نخواهد داشت. هرگونه سوال یا ابهام خود را به ایمیل kavousi@ce.sharif.eduارسال کنید. )2مراحل اجرای تعویض زمینه 2را بیان کنید و مشخص کنید در این کار ،چه اطالعاتی باید ذخیره شود؟ )1دالیل اینکه ما باید در طراحی سیستم عامل ،اجازه تعامل 1بین پردازه ها را بدهیم چیست؟ )5مزایا و معایب هرکدام از مفاهیم زیر در پردازه ها را ،هم از دید سیستم و هم از دید برنامه نویس ،توضیح دهید: - ارتباط سنکرون و آسنکرون - بافرینگ 5خودکار و بافرینگ آشکار - ارسال توسط کپی و ارسال توسط ارجاع - پیام با طول ثابت و پیام با طول متغیر 9 9 )9بین دو ریسه ،6چه اطالعاتی به اشتراک گذاشته میشوند و چه اطالعاتی یکتا هستند؟ مزایای برنامه های چند ریسه ای را بیان کنید. 1 Context Switch Cooperation 3 Buffering 4 Explicit 5 Reference 6 Thread 2 1 )9الف) در زمان پایان یافتن پردازه ،چه کارهایی توسط سیستم عامل انجام میشود؟ ب) چه پردازه هایی میتوانند پردازه های دیگر را متوقف 7کنند؟ پ) پردازه پدر 8به چه دالیلی اجرای یک یا چندتا از فرزندان خود را متوقف میکند؟ ت) پردازه های زامبی 4و یتیم 20چه نوع پردازه هایی هستند؟ )6آیا در سیستمهای عامل ،ممکن است ما همزمانی 22داشته باشیم ولی موازات 21نداشته باشیم؟ )7مسئله تولید کننده-مصرف کننده 25را توضیح دهید و بیان کنید که در برنامه زیر چگونه دچار این مشکل میشویم؟ )8تعدادی فایل که هر فایل شامل مجموعه ای از کلمات است ،در اختیار داریم .میخواهیم برنامه ای طراحی کنیم که برای هر فایل، اطالعات آنرا از دیسک خوانده و بر روی آنها پردازشی انجام دهد .بررسی کنید که آیا استفاده از روش چند ریسه ای برای این برنامه ،مفید است یا خیر .کدام روش ،بیشترین تاثیر مثبت را دارد؟ الف) سیستم تک پردازنده با پشتیبانی از ریسه ها در سطح کاربر ب) سیستم تک پردازنده با پشتیبانی از ریسه ها در سطح هسته پ) سیستم چند پردازنده با پشتیبانی از ریسه ها در سطح کاربر ت) سیستم چند پردازنده با پشتیبانی از ریسه ها در سطح هسته 7 Terminate Parent Process 9 Zombie 10 Orphan 11 Concurrency 12 Parallelism 13 Producer-Consumer Problem 8 2 )4میخواهیم برنامه ای بنویسیم که چندین کار را همزمان انجام دهد .با نوشتن برنامه زیر ،به کار خود پایان دادیم. الف) با تحلیل این برنامه ،توضیح دهید که Mutexها چگونه باعث شده اند تا مسئله ناحیه بحرانی 29حل شود؟ ب) مشکل اساسی این برنامه با توجه به نیازی که در صورت سوال مطرح شده است چیست؟ )20نشان دهید الگوریتم پترسون 29صحیح کار میکند. Critical Section Peterson’s Algorithm 14 15 3 )22برنامه زیر به زبان C++و با استفاده از POSIX Threadsنوشته شده است .در این برنامه ،آرایه ای به نام answersتعریف شده است و هر تابع ،بیانگر یک گیت از مدارهای منطقی است که با توجه به نیاز برنامه ،در پاسخ خود ،یکی از خانه های آرایه answersرا مقداردهی میکند و جوابهای نهایی را چاپ میکند .شمای مدار منطقی ای که این برنامه کار آن را انجام میدهد رسم کنید .این برنامه از نظر مبانی چند ریسه بودن ،در کجا مشکل دارد؟ برای افزایش سرعت برنامه ،چه بهبودی میتوان در آن ایجاد کرد؟ )21مشکل وارونگی اولویت 26چگونه در سمافور ها بوجود میاید و چطور میتوان آنرا حل کرد؟ )25مسئله قسمتهای بحرانی 27پردازه ها در طراحی سیستمهای عامل چگونه حل میشود؟ Priority Inversion Critical Sections 16 17 4 )29توابع و فراخوانی های سیستمی در هر سیستم عامل با دیگری متفاوت است .مثال در ویندوز ،نمیتوان از )( forkاستفاده کرد. بررسی کنید که با این وصف ،چگونه میتوان برنامه های چند سکویی 28طراحی کرد؟ )29جلوگیری از اینکه قفل کردن Mutexتوسط دو پردازه با هم اجرا نشود ،در عمل چگونه است؟ Cross-Platform 18 5
© Copyright 2025 Paperzz