زمان بندی پروسس ها
سیستم عامل ها برای آنکه بتوانند چندین برنامه را با هم اجرا کنند ، از روش های زمان بندی استفاده میکنند . این روشها باید تعیین کند که کدام برنامه زودتر اجرا شود یا به چه ترتیبی برنامه اجرا شوند که بازده CPU بالا باشد و همه برنامه ها به خوبی اجرا شوند .
سه تا از این روشها SJF ,FCFS ,RR هستند .اینجا این سه روش پیاده سازی شده اند و در پایان میبینیم که SJF بهتر است .
این هم برنامه : دانلود
از روش های زمان بندی یکی SJF است که میگورد همیشه پروسه ای با کوتاهترین زمان اجرا باید اول اجرا شود ( با فرض اینکه زمان اجرای آنرا میدانیم یا با روش هایی حدس میزنیم ) ، یکی FCFS است که میگید اولین برنامه ای که درخواست داد باید اول اجرا شود و یکی RoundRobin است که میگوید همه برنامه ها بترتیب ورود به صف ، در یک بازه زمانی خاصی میتوانند از CPU استفاده کنند .
اینجا این سه روش پیاده سازی شده اند . یک صف پروسس ها داریم و یک تولید کننده که پروسس ها را وارد آن میکند و یک الگوریتم زمان بند که پروسس ها را اجرا میکند . در پایان اجرا ، گزارش برنامه در فایل خروجی ثبت میشود که سه متغیر را نشان میدهد : میانگین زمان هایی که پروسس ها برای بدست آوردن CPU (درآن روش)در انتظار بودند ،میانگین زمان هایی که یک پروسس درخواست داد تا زمانیکه به پایان رسید ، و میانگین تعداد پروسس های اجرا شده در واحد زمان . با مقایسه این سه متغیر برای 5000 پروسس میبنیم که SJF ازهمه بهتر است ،(ولی میدانیم که عملاپیاده سازی نمیشود ).
در این برنامه یک کلاس الگوی Lister هست که لیستها از آن ساخته میشوند ، و یک کلاس PID که برای پروسس هاست و یک کلاس event . برای آنکه همزمانی پیاده سازی شود دوراه وجود دارد، یکی آنکه دریک حلقه while زمان را هربار یک واحد جلو ببریم و چک کنیم چه اتفاقی میفتد . و یک اینکه درلحظه میدانیم اتفاق بعدی ای که میفتد چیست ، پس منتظر رسیدن آن زمان نمیشویم، زمان را مستقیما تا آنجا جلو میبریم .این روش با همین کلاس event پیاده سازی میشود . هر پروسس که تولید میگردد مثلا در روش FCFS میداند که چند ثانیه بعد نوبت اجرا اش است پس event خود را وراد eventList میکند و در حلقه while این event ها از لیست خوانده و اجرا میشوند .( چی داری میگی؟ )امیدوارم هر راه گم کرده ای که اومد اینجا ازش استفاده مثبت ببره .بای تا یه قرن دیگه .
این هم برنامه : دانلود
مرسی
سلام خیلی وبلاگتون عالیه مخصوصا الگوریتم های زمان بندی فقط میشه بیشتر توضیح بدید که تو چه محیطی باید اجرا کرد؟
در Visual C++ نوشته شدن
در windows 7,vista اجرا میشن
خروجی شون چندتا فایل txt هست در همون پوشه
آقا من 7 .64 بیتی دارم
اجرا نمیشه فایل exe اش
میشه به میلم بگی چیکار کنم
برو روی VMWARE اجراش کن،(تو این نرم افزار یه ویندوز 32 بیتی رو نصب کن و داخل اون اجرا کن)
یا تو ویندوز خودت سورسشو دوباره کامپایل و build کن!
با سلام
عنوان پروژه من:بررسی وپیاده سازی الگوریتم های زمانبندی cpuدرسیستم های پردازش موازی ومقایسه کارآمدی آنها از طریق شبیه سازی.بنده می خواستم ببینم آیا می توانید کمکی کنی...؟؟؟
نه
باز نمیشه که












سلام من میخوام الگوریتم های زمانبندی روبا حداقل تعداد خط دستور اجرا کنم میشه کمکم کنین؟