Skip to content

Project of Realtime Systems course - Sharif University of Technology

License

Notifications You must be signed in to change notification settings

titansarus/Realtime-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open in Visual Studio Code

پروژه‌ی پایانی درس سامانه‌های بی‌درنگ

دانشكده مهندسی کامپيوتر

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

اعضای تیم

شرح پروژه

چهار عدد ساعت را به گونه‌ای طراحی کنید که بر روی چهار thread مجزا، زمان چهار کشور متفاوت را نشان دهند. این ساعت‌ها دارای اولویت‌های متفاوت هستند برای مثال در یک لحظه خاص ممکن است ساعت شماره‌ی یک، اولویت بیشتری نسبت به ساعت‌های دیگر داشته باشد و در چند لحظه‌ی بعد ممکن است ساعت شماره‌ی سه اولویت بیشتری نسبت به سایر ساعت‌ها داشته باشد (دقت کنید که زبان برنامه‌نویسی که استفاده می‌کنید باید قابلیت اولویت بندی threadها را داشته باشد). برای تست این برنامه می‌توان یک process سنگینی را اجرا کرد به گونه‌ای که میزان استفاده از CPU را ۱۰۰٪ کند. در این شرایط، ساعتی که بیشترین اولویت را دارد باید همچنان بی‌وقفه به کار خود ادامه دهد اما ساعت‌هایی که اولیت کمتری دارند باید thread خود را متوقف کنند تا ساعت با اولویت‌ بیشتر بتواند بدون مشکل کار کند. زمانی که میزان استفاده از CPU به زیر ۹۰٪ آمد ساعتی که اولویت دوم را دارد شروع به کار می‌کند و اگر کمتر از ۷۰٪ شد، هر چهار ساعت دوباره شروع به کار می‌کنند.


راهنمایی:

برای این کار می‌توانید از Real time Java و یا thread_priority در Rust استفاده کنید. البته این دو مورد فقط پیشنهاد هستند. شما می‌توانید از هر زبانی که قابلیت اولویت بندی thread را داشته باشد استفاده کنید.

توجه:

۱. به دلیل اینکه شما برنامه خود را بر روی یکی از سیستم‌عامل‌های مدرن (Windows, Mac, Linux) اجرا می‌کنید، ممکن است حتی با ۱۰۰٪ شدن میزان استفاده از CPU هم هیچکدام از ساعت‌ها دچار مشکل نشوند و اصلا نیازی به متوقف کردن هیچکدام از ساعت‌ها نباشد اما به هرحال ما فرض می‌کنیم که این برنامه بر روی یک سیستم نهفته با سخت‌افزار محدود و یک RTOS درحال اجرا است درنتیجه باید ساعت‌هایی که اولویت کمتری دارند را متوقف کنید.

۲. لطفا حتما از زبان‌ها و ابزارهایی استفاده کنید که قابلیت اولویت‌دهی به thread داشته باشند (صرفا threadها را دستی stop و resume نکنید. threadها باید دارای اولویت باشند).

۳. اگر ساعت‌‌ها گرافیکی باشند و threadهایی که وظیفه نمایش ساعت بصورت گرافیکی دارند را اولویت بندی کنید (مثلا thread که مسئول نگه داشتن زمان در یک ساعت است همچنان کار کند اما thread که مسئول نمایش ساعت بصورت گرافیکی است متوقف شود) نمره امتیازی دارد.

۴. کد باید دارای داکیومنت باشد و روند کامل پیاده‌سازی، عملکرد و اولویت دهی به threadها شرح داده شود.

About

Project of Realtime Systems course - Sharif University of Technology

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages