c p p

c p p

کدها و برنامه های سی پلاس پلاس ، ساختمان داده به زبان cpp، کدها و برنامه های اسمبلی،پروژه های آماده سی پلاس ،سی پلاس تحت داس
c p p

c p p

کدها و برنامه های سی پلاس پلاس ، ساختمان داده به زبان cpp، کدها و برنامه های اسمبلی،پروژه های آماده سی پلاس ،سی پلاس تحت داس

الگوریتم های زمان بندی CPU

زمان بندی پروسس ها


سیستم عامل ها برای آنکه بتوانند چندین برنامه را با هم اجرا کنند ، از روش های زمان بندی استفاده میکنند  . این روشها باید تعیین کند که کدام برنامه زودتر اجرا شود یا به چه ترتیبی برنامه اجرا شوند که بازده CPU بالا باشد و همه برنامه ها به خوبی اجرا شوند .

سه تا از این روشها SJF ,FCFS ,RR هستند .اینجا این سه روش پیاده سازی شده اند و در پایان میبینیم که SJF بهتر است .


این هم برنامه : دانلود

از روش های زمان بندی یکی SJF است که میگورد همیشه پروسه ای با کوتاهترین زمان اجرا باید اول اجرا شود ( با فرض اینکه زمان اجرای آنرا میدانیم یا با روش هایی حدس میزنیم ) ، یکی FCFS است که میگید اولین برنامه ای که درخواست داد باید اول اجرا شود و یکی RoundRobin است که میگوید همه برنامه ها بترتیب ورود به صف ، در یک بازه زمانی خاصی میتوانند از CPU استفاده کنند .

اینجا این سه روش پیاده سازی شده اند . یک صف پروسس ها داریم و یک تولید کننده که پروسس ها را وارد آن میکند و یک الگوریتم زمان بند که پروسس ها را اجرا میکند . در پایان اجرا ، گزارش برنامه در فایل خروجی ثبت میشود که سه متغیر را نشان میدهد : میانگین زمان هایی که پروسس ها برای بدست آوردن CPU (درآن روش)در انتظار بودند ،میانگین زمان هایی که یک پروسس درخواست داد تا زمانیکه به پایان رسید ، و میانگین تعداد پروسس های اجرا شده در واحد زمان .  با مقایسه این سه متغیر برای 5000 پروسس میبنیم که SJF ازهمه بهتر است ،(ولی میدانیم که عملاپیاده سازی نمیشود ).

در این برنامه یک کلاس الگوی Lister هست که لیستها از آن ساخته میشوند ، و یک کلاس PID که برای پروسس هاست و یک کلاس event . برای آنکه همزمانی پیاده سازی شود دوراه وجود دارد، یکی آنکه دریک حلقه while زمان را هربار یک واحد جلو ببریم و چک کنیم چه اتفاقی میفتد . و یک اینکه  درلحظه میدانیم اتفاق بعدی ای که میفتد چیست ، پس منتظر رسیدن آن زمان نمیشویم، زمان را مستقیما تا آنجا جلو میبریم .این روش با همین کلاس event پیاده سازی میشود . هر پروسس که تولید میگردد مثلا در روش FCFS میداند که چند ثانیه بعد نوبت اجرا اش است پس event خود را وراد eventList میکند و در حلقه while این event ها از لیست خوانده و اجرا میشوند .( چی داری میگی؟ )امیدوارم هر راه گم کرده ای که اومد اینجا ازش استفاده مثبت ببره .بای تا یه قرن دیگه .


این هم برنامه : دانلود

نظرات 6 + ارسال نظر
شارپ جمعه 24 اردیبهشت‌ماه سال 1389 ساعت 12:54 ب.ظ

مرسی

سارا سه‌شنبه 11 خرداد‌ماه سال 1389 ساعت 01:05 ب.ظ

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

در Visual C++ نوشته شدن

در windows 7,vista اجرا میشن

خروجی شون چندتا فایل txt هست در همون پوشه

hami سه‌شنبه 14 دی‌ماه سال 1389 ساعت 08:02 ب.ظ

آقا من 7 .64 بیتی دارم
اجرا نمیشه فایل exe اش
میشه به میلم بگی چیکار کنم

برو روی VMWARE اجراش کن،(تو این نرم افزار یه ویندوز 32 بیتی رو نصب کن و داخل اون اجرا کن)
یا تو ویندوز خودت سورسشو دوباره کامپایل و build کن!

رسول دوشنبه 24 بهمن‌ماه سال 1390 ساعت 12:05 ق.ظ

با سلام
عنوان پروژه من:بررسی وپیاده سازی الگوریتم های زمانبندی cpuدرسیستم های پردازش موازی ومقایسه کارآمدی آنها از طریق شبیه سازی.بنده می خواستم ببینم آیا می توانید کمکی کنی...؟؟؟

نه

+656f پنج‌شنبه 3 اردیبهشت‌ماه سال 1394 ساعت 04:23 ق.ظ

باز نمیشه که

رضا جمعه 20 فروردین‌ماه سال 1395 ساعت 09:56 ب.ظ

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

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد