0% found this document useful (0 votes)
38 views5 pages

Res HW1

Uploaded by

shmmdali18
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views5 pages

Res HW1

Uploaded by

shmmdali18
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

‫با نام خدا‬

‫دانشگاه صنعتی شریف‬

‫دانشکده مهندسی برق‬

‫درس سیستمهای نهفته بیدرنگ‬


‫دکتر ایمان غالم پور‬

‫تمرین سری اول‬

‫نیم سال دوم ‪1402-1401‬‬

‫دستیار آموزشی تمرین‪ :‬سروش نورزاد‬


‫بخش اول – تئوری و تحقیق‬
‫‪ -1‬در خصوص موارد زیر تحقیق کنید‪:‬‬
‫‪ -1‬بخشهای مختلف تشکیل دهنده یک سیستم نهفته‪.‬‬
‫‪ -2‬پنج زبان برنامهنویسی رایج در خصوص طراحی یک سیستم نهفته و سختافزار هدف آنها‪.‬‬
‫‪ -3‬سه روش متفاوت حمله به یک سیستم نهفته‪ .‬به طور خاص حمله ‪.Buffer Overflow Attack‬‬
‫‪ -4‬پنج پروتکل ارتباطی رایج برای اتصال به یک سیستم نهفته‪ .‬به طور خاص ‪.UART‬‬
‫‪ -5‬دست کم یک مورد از اشتباهات ممکن در طراحی یک سیستم نهفته که منجر به خطرات ایمنی میشود‪.‬‬
‫‪ -6‬علت دقیق بروز سانحهی انفجار موشک ‪.Ariane 5‬‬

‫‪ -2‬دادههای ارائهشده در جدول زیر را در نظر بگیرید‪ .‬دو پردازندهی ‪ A‬و ‪ B‬به ترتیب با فرکانسهای کاری ‪ 2GHz‬و‬
‫‪ 1.2GHz‬در دسترس است‪ .‬میخواهیم برنامهای با ‪ 10‬میلیون دستور را روی ‪ A‬و برنامهای با ‪ 6‬میلیون دستور را روی‬
‫‪ B‬اجرا کنیم‪.‬‬
‫‪ -1‬زمان اجرای هر برنامه را برای هر دو حالت محاسبه کنید‪.‬‬
‫‪ -2‬عملکرد هر پردازنده برای هر حالت چند ‪ MIPS‬است؟‬

‫‪Task4‬‬ ‫‪Task3‬‬ ‫‪Task2‬‬ ‫‪Task1‬‬ ‫وظایف‬


‫‪12‬‬ ‫‪18‬‬ ‫‪25‬‬ ‫‪45‬‬ ‫درصد اختصاص فرکانس‬
‫‪2‬‬ ‫‪2‬‬ ‫‪5‬‬ ‫‪3‬‬ ‫حالت اول ‪CPI‬‬
‫‪6‬‬ ‫‪1‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫حالت دوم ‪CPI‬‬

‫بخش دوم ‪ -‬شبیهسازی رایانهای‬

‫تمرین اول‪:‬‬

‫در این تمرین به پیاده سازی برنامه ‪ Scheduler‬برای حالتهای متفاوت خواهیم پرداخت‪ .‬خروجی این برنامه شامل بردارهای‬
‫باینری خواهد بود که هر عددِ یک‪ ،‬نمایانگر یک ‪ job‬در زمانبندی خروجی است‪ .‬ورودی از یک فایل با نام ‪ inputs.txt‬خوانده‬
‫میشود و خروجی مرتبط به آن در فایلی متناسب نوشته خواهد شد‪ .‬بنابراین برنامه شما باید توانایی دریافت یک فایل با نام‬
‫‪ inputs.txt‬و نوشتن خروجی مطلوب هر نوع از ‪ Scheduler‬ها را داشته باشد‪.‬‬

‫فایل ‪ : inputs.txt‬در هر خط از این فایل یک مسئله ‪ Scheduling‬نوشته خواهد شد‪ .‬بنابراین هر خط از این فایل شامل سه‬
‫‪ list‬از اعداد میباشد که با ‪ Semicolon‬از یکدیگر جدا شدهاند‪ .‬به شکل زیر‪:‬‬

‫;‪T; C; D‬‬ ‫→‬ ‫‪e.g.‬‬ ‫→‬ ‫;]‪[5, 9, 20]; [2, 2, 5]; [3, 6, 5‬‬
‫که ‪ C ، T‬و ‪ D‬به ترتیب بردارهای دوره تناوب وظایف‪ ،‬میزان ‪ Job‬ها و ‪ Deadline‬های وظایف هستند‪.‬‬
‫فایل خروجی‪ :‬در هر خط از این فایل‪ ،‬خروجیِ یک مسئلهی ورودی نوشته خواهد شد (طبق ترتیبِ نوشته شدنِ مسائل در ورودی)‪.‬‬
‫اگر مسئله ورودی شامل ‪ n‬وظیفه باشد‪ ،‬هر خط شامل ‪ n+1‬بردار خواهد بود که ‪ n‬بردار اول‪ ،‬زمانبندی انجام شده برای وظایف‬
‫خواهد بود و بردار ‪ ، n+1‬بردار ‪ job‬های از دست رفته است‪:‬‬

‫;‪Task1Timetable; Task2Timetable; ….; Missed_jobs‬‬


‫به طور مثال برای مسئله فوق‪ ،‬خروجی برای حالت ‪ EDF‬به شکل زیر خواهد بود (چهار بردار زیر در یک خط نوشته میشوند)‪:‬‬

‫‪[1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,];[0,0,0,0,0,0,0,1,1,‬‬
‫‪0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,];[0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,‬‬
‫‪0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,];[0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,‬‬
‫;]‪0,0,0,0,0,0,0,0,0,0,0,‬‬
‫با استفاده از این بردارها به راحتی میتوان خروجی نهایی را در یک تصویر نمایش داد‪ .‬به طور مثال‪ ،‬خروجی فوق به شکل زیر قابل‬
‫نمایش خواهد بود‪:‬‬

‫با توجه به موارد اعالم شده‪ ،‬برنامهای را برای زمانبندیهای ‪ DM ، RM‬و ‪ EDF‬طراحی کنید‪.‬‬

‫همچنین یک ‪ Scheduler‬مجزا برای حالت ‪ RM‬طراحی کنید که حالت ‪ Interrupt-Driven Aperiodic‬را پشتیبانی‬
‫میکند‪ .‬به منظور سادگی بیشتر‪ ،‬تنها یک ‪ Task‬غیرمتناوب خواهید داشت که در زمان تصادفی و به طول تصادفی وارد پردازنده‬
‫میشود‪ .‬فایل ورودی این بخش‪ ،‬همان فایل ورودی سایر بخشها خواهد بود و تنها در فرمت خروجی این بخش تفاوت ایجاد‬
‫خواهد شد‪ .‬در این خروجی‪ ،‬قبل از بردار ‪ job‬های از دست رفته‪ ،‬بردار وظیفه ‪ Aperiodic‬قرار خواهد گرفت‪ .‬به شکل زیر‪:‬‬

‫;‪Task1Timetable; Task2Timetable; ….; AperiodicTaskTimetable; Missed_jobs‬‬


‫به طور مثال یک نمونه از خروجیهای این ‪ Scheduler‬میتواند به شکل زیر باشد‪:‬‬

‫نکات تکمیلی‪:‬‬

‫‪ -‬حداقل وظایف تعریف شده برای هر مسئله ‪ 3‬خواهد بود‪.‬‬


‫‪ -‬بردار ‪ D‬باید در ورودی قرار داشته باشد‪ .‬در پیادهسازی برنامه ‪ RM‬الزم نیست این بردار را استفاده کنید‪.‬‬
‫‪ -‬نیازی به رسم تصویر خروجی مسئله نیست و فایل خروجی با محتویات باینری به عنوان جواب مسئله کافیست‪.‬‬
‫‪ -‬در ‪ Scheduling‬رعایت ترتیبِ بردارهایِ خروجیِ وظایفِ یک مسئله‪ ،‬در هر خط از خروجی اهمیتی ندارد‪ .‬تنها نکتهی مهم‪،‬‬
‫آن است که آخرین بردار هر خط‪ Job ،‬های ‪ Missed‬شده باشد (ترتیب خطوط ورودی و خطوط خروجی یکسان است)‪.‬‬

‫تمرین دوم (امتیازی)‪:‬‬

‫یک ‪ RM Polling Server Scheduler‬بنویسید که دارای شرایط زیر میباشد‪:‬‬

‫‪ -‬این ‪ Scheduler‬زمانبندی چهار وظیفه را بر عهده دارد و وظیفه اولویت مرتبه سوم ‪ Aperiodic‬میباشد‪.‬‬
‫‪ -‬در این پردازنده‪ ،‬وظیفهی ‪ Aperiodic‬میتواند در طول بازهی شبیهسازی چندین مرتبه رخ دهد‪.‬‬
‫‪ -‬در این سناریوی خاص‪ ،‬وظیفه ‪ Aperiodic‬دارای ددالین خواهد بود؛ برخالف سایر وظایف موجود در پردازنده که بدون‬
‫ددالین هستند (زمانبندی ‪.)RM‬‬
‫‪ -‬نیازی به خواندن یا نوشتن ورودی به فایل نیست‪ .‬اما خروجی این تمرین باید به شکل یک تصویر رسم شود‪.‬‬
‫به طور مثال یک نمونه از این خروجیهای قابل قبول این برنامه به شکل زیر خواهد بود‪:‬‬

‫نکاتی در خصوص شبیه سازیها‪:‬‬

‫‪ -‬برنامه مورد نظر را با استفاده از ‪ Python v3‬بنویسید‪.‬‬


‫‪ -‬طول بازهی ‪ Scheduling‬را در تمام شبیه سازیها ‪ 40‬در نظر بگیرید‪.‬‬
‫‪ -‬در فایل های ارائه شده به شما تابع خواندن و نوشتن بردارهای ورودی و خروجی طبق استانداردِ ارائه شده‪ ،‬در اختیار قرار داده‬
‫شدهاند و می توانید از این توابع بهره بگیرید‪ .‬همچنین برای قابل فهم کردن روند کلی برنامه مد نظر توابع ناقصی در اختیار قرار‬
‫گرفته شده که میتوانید با کامل کردن آنها به تمارین شبیهسازی پاسخ دهید‪ .‬استفاده کردن از این فایلها اختیاری است‪.‬‬
‫‪ -‬از آنجایی که تصحیح بعضی بخشها به طور خودکار صورت میگیرد‪ ،‬ممکن است بعضی از مسائل دارای چند جواب صحیح‬
‫بوده باشد و جواب شما نیز صحیح بوده و به عنوان غلط تلقی گردد‪ .‬پس در صورتی که از درست بودن پاسخ خود مطمئنید‪،‬‬
‫حتما به اشتباه رخ داده اعتراض کنید (لیست مسائل مورد استفاده برای تصحیح‪ ،‬پس از تصحیح و نمرهدهی اعالم خواهد شد)‪.‬‬

‫تذکر نهایی‪ :‬فایلهای پایتون و گزارش کامل تمرین‪ ،‬که شامل پاسخ به سواالت‪ ،‬ارائهی نتایج شبیهسازیها و توضیحات جانبی‬
‫دیگر (چگونگی اجرای برنامه و غیره) می باشد را به شکل یک فایل ‪ RAR‬و طبقِ فرمت نامگذاری ذکر شده در فایل قوانین تمارین‬
‫در سامانهی ‪ CW‬بارگزاری نمایید‪.‬‬

‫با تشکر‬

You might also like