24
ل م م عا ت س سی2 ی ن ا ب ی س ر می مدرس: اasheibani.ir . 86 . a sheibani @gmail com مهای ت ی ور گ لرم: ا ها, چ ل ص ف دی ب ی0 مان ر

سیستم عامل 2

  • Upload
    anitra

  • View
    220

  • Download
    2

Embed Size (px)

DESCRIPTION

سیستم عامل 2. فصل چهارم: الگوریتم‌های زمان‌بندی. مدرس: امیر شیبانی asheibani.ir [email protected]. زمان‌بندی FCFS ( FIFO ). اول آمده، اول سرویس داده شده ( First Come – First Served ) هر پردازشی که اولین درخواست CPU را صادر کند، اولین پروسسی خواهد بود که آن را به دست می‌آورد - PowerPoint PPT Presentation

Citation preview

Page 1: سیستم عامل 2

2سیستم عامل

مدرس: امیر شیبانی

[email protected]

فصل چهارم: الگوریتم های زمان بندی

Page 2: سیستم عامل 2

FCFS (FIFO)زمان بندی ( اول آمده، اول سرویس داده شدهFirst Come – First Served)

هر پردازش@ی ک@ه اولین درخواس@تCPU را ص@ادر کن@د، اولین پروسس@ی خواه@د بود که آن را به دست می آورد

انحصاری

متوسط زمان انتظار طوالنی است

جهت سیستم های اشتراک زمانی مناسب نیست

به سادگی پیاده سازی می شود

تمام پردازش های صفReadyاجرا می شوند

می شوداثر اسکورت باعث ایجاد پ@ردازش ی@ک ش@ود، CPU Limitedاگ@ر برن@امگی چن@د دیگ@ر پردازش ه@ای ب@ا

برن@امه ه@ای د@یگ@ر ب@ای@د زم@ان@ زی@ادی@ در @ص@ف انتظ@ار@ ب@ا@قی @بمان@ن@د ت@ا ک@ار پ@ردازش CPU Limitedتمام شود

Page 3: سیستم عامل 2

FCFS (FIFO)زمان بندی

سه پ@ردازش ب@ا زم@ان انفج@ارCPU زی@ر در زم@ان ص@فر وارد سیس@تم شده اند:

اگ@ر پردازش ه@ا ب@ه ت@رتیبP1، P2 و P3 وارد ش@وند ب@ر طب@ق الگ@وریتم FCFS( نمودار زمانی گانت Gantt chartبه صورت زیر خواهد بود )

زم@ان انتظ@ارP1 ص@فر ث@انیه. زم@ان انتظ@ار :P2: 24 ث@انیه. زم@ان انتظ@ار P3: 27ثانیه

P3 P2 P1 پردازش ها

3 3 24 زمان انفجار

0 24 27 30

P1 P2 P3

متوسط زمان انتظار: 3 =

Page 4: سیستم عامل 2

(Round Robin = RRزمان بندی نوبت گردشی )

یکی از ق@دمی ترین، س@اده ترین، ع@ادالنه ترین و رایج ت@رین الگوریتم ه@ای زمانبندی

غیر انحصاری

شبیهFCFS ولی ب@ه ه@ر پ@ردازش ح@داکثر ب@ه م@یزان زم@انی مشخص@ی ،CPUداده می شود بر اساس برش زمانی

میانگین زمان انتظار غالبا طوالنی است

زم@ان پاس@خ غالب@ا کوت@اه اس@ت )ب@ه همین خ@اطر ب@رای سیس@تم های اش@تراک زم@انی مناس@باست(

هنگ@امی ک@ه پردازش@یCPU:را در اختی@ار دارد دو ح@الت ممکن اس@ت رخ دهد پردازش داوطلبان@هCPU)را ره@ا می کن@د )انفج@ار محاس@باتی ج@اری کم@تر از کوانت@وم زم@انی است

و یافت@ه پای@ان ت@ه ص@ف CPUکوانت@وم زم@انی ب@ه پ@ردازش و پ@ردازش پس گرفت@ه می ش@ود از می رود

،اگ@ر ی@ک فرآین@د ت@ازه وارد و ی@ک فرآین@د ق@دیمی ه@ر دو در ی@ک زم@ان ب@ه انته@ای ص@ف برس@ندفرآی@ندی @که تا@زه وارد ش@ده، @در @صف، جلوتر @قرار می @گیرد

Page 5: سیستم عامل 2

(Round Robin = RRزمان بندی نوبت گردشی )

انفج@اری زی@ر در لحظ@ه ص@فر وارد سیس@تم ب@ا زمان ه@ای پ@ردازش سه می ش@وند. متوس@ط زم@ان پاس@خ، می@انگین زم@ان انتظ@ار و متوس@ط زم@ان

میلی ثانیه به دست آورید4 با کوانتوم RRاجرای آن ها را در سیستم

)حل

:)متوسط زمان پاسخ )برگشت

زم@ان انتظ@ار: مجم@وع پریوده@ای ص@رف ش@ده در ح@الت انتظ@ار در ص@فاست

P3 P2 P1 پردازش ها

3 3 24 زمان انفجار

0 4

P1 P2

7

200

P3

10

0

P1

14

16

P1

18

12

P1

22

8

P1

26

4

P1

30

0

ا جرا 24+3+3=میانگینزمان3

=10

Page 6: سیستم عامل 2

چند نکته

متوسط زمان انتظار + متوسط زمان اجرا = متوسط زمان پاسخ )برگشت(

:عموما منظور از زمان پاسخ در مساله ها همان زمان برگشت است

زمان ورود پردازش به سیستم – زمان خروج پردازش از سیستم= زمان برگشت پردازش

در فرم@ول ب@اال اگ@ر زم@ان ورود پ@ردازش ب@ه سیس@تم را ندهن@د، ص@فر در نظر می گیریم

:زمان انتظار

طول اجرای پردازش – زمان ورود پردازش – زمان خروج پردازش = زمان انتظار

Page 7: سیستم عامل 2

(Round Robin = RRزمان بندی نوبت گردشی )

4 پ@ردازش را ب@ا زمان ه@ای انفج@ار محاس@باتی زی@ر در نظ@ر بگیری@د ک@ه در میلی ثانی@ه 7 ت@ا 1زم@ان ص@فر وارد سیس@تم ش@ده اند. ب@رای کوانتوم ه@ای

می@انگین زم@ان برگش@ت را محاس@به کنی@د )زم@ان برگش@ت = م@دت زم@ان تحویل پردازش به سیستم تا تمام شدن آن(

)حل

P4 P3 P2 P1 پردازش ها

7 1 3 6 زمان انفجار

0 2

P1 P2

4

P3

5

P4

7

P1

9

P2

10

P4

12

P1

14

4105203 0

P4

16

P4

17

10

17+5+10+14=متوسطزمانرگشتب4

=11 .5

6+3+1+7=متوسطزماناجرا4

=4 .25

11=متوسطزمانانتظار .5−4 .25=7 .25

Page 8: سیستم عامل 2

(Round Robin = RRزمان بندی نوبت گردشی )

1 2 3 4 5 6 710

10.5

11

11.5

12

12.5

این شکل نشان می دهد که میانگین زمان برگشت یک مجموعه پردازش الزاما در اثر افزایش کوانتوم کم

نمی شود

کوانتوم زمانی

تش

گر بن

ما ز

نگی

انمی

Page 9: سیستم عامل 2

(SJFزمان بندی اول کوتاهترین کار )انحصاری

CPU محاس@باتی انفج@ار کوچک@ترین ک@ه می ش@ود داده پردازش@ی ب@ه بعدی را دارد

باش@ند داش@ته یکس@انی محاس@باتی انفج@ار م@دت پ@ردازش دو اگ@ر زمانبندی می شوندFCFSبراساس

در ح@الت کلی این زمان بن@دی از نظ@ر می@انگین زم@ان انتظ@ار ی@ا می@انگین انحص�اریزم@ان برگش@ت، بهینه ت@رین )کم@ترین( ح@الت الگوریتم ه@ای

است.

به خصوص مناسب سیستم های دسته ای استاز قبل زمان اجرای کارها مشخص و معین است

Page 10: سیستم عامل 2

SJFمشکالت

CPUآگاهی از طول درخواست بعدی 1.در صورت لزوم باید آن را پیشبینی کنیم

طول انفجار بعدی خیلی شبیه طول انفجارهای قبلی باشد

ی@ا قحطی زدگی )2. ( فراین@دهای ط@والنی در Starvationامک@ان گرس@نگی صورت ورود دائم فرایندهای کوچکتر

Page 11: سیستم عامل 2

(SJFزمان بندی اول کوتاهترین کار ) اگ@ر بگیری@د. نظ@ر در را زی@ر انفج@اری زمان ه@ای ب@ا پ@ردازش چه@ار

زمان بن@دی دس@ت SJFالگ@وریتم ب@ه را می@انگین انتظ@ار زم@ان باش@د به دست آورید.FCFSآورید. همین زمان را در الگوریتم

)حل

P4 P3 P2 P1 پردازش ها

3 7 8 6 زمان انفجار

0

P4

3

P1

9

P3

16

P2

216+9+3+0=میانگینزمانانتظار4

4=7

0

P1

6

P2

14

P3

21

P4

221+14+6+0=میانگینزمانانتظار4

4=10 .25

Page 12: سیستم عامل 2

(SJFزمان بندی کوتاهترین زمان باقیمانده )

شبیهSJFاما غیر انحصاری

ممکن اس@تCPU از ی@ک برنام@ه در ح@ال اج@را توس@ط برنام@ه جدی@دی که نیاز به زمان کمتری جهت تکمیل دارد گرفته شود

در سیستم های اشتراک زمانی نیز استفاده می شود

مانن@د مش@کل SJFبه ب@روز احتم@ال و داریم آین@ده تخمین ب@ه نی@از گرسنگی نیز وجود دارد

در مقایس@ه ب@اSJF زم@ان ک@ل به@تری را ارائ@ه می کن@د زی@را ب@ه ک@ار کوت@اه نسبت به کار بلند در حال اجرا اولویت می دهد

به خ@اطر همین پس گرفتن ه@ایCPU و مقایس@ه های زم@انی بیش@تر، روش SRT از SJFپرهزینه تر است

Page 13: سیستم عامل 2

(SJFزمان بندی کوتاهترین زمان باقیمانده )

چه@ار پ@ردازش زی@ر را در نظ@ر بگیری@د و می@انگین زم@ان انتظ@ار را ب@رای ح@التSRT و SJF.به دست آورید

)حلSRT:

P4 P3 P2 P1 پردازش ها

5 9 4 8 زمان انفجار

3 2 1 0 زمان ورود

0

P1

1

P2

5

P4

17

P3

26

7

2

3

P2

3

2

P2

10

P1

0

P1

1 5

P4

17

P3

26

P2

10

P1

:p1زمان انتظار :p2زمان انتظار 10 - 1

1 - 1

:p4زمان انتظار 3 - 5

:p3زمان انتظار 2 - 17

2+15+0+9=میانگینزمانانتظار4

=6 .5

Page 14: سیستم عامل 2

(SJFزمان بندی کوتاهترین زمان باقیمانده )

چه@ار پ@ردازش زی@ر را در نظ@ر بگیری@د و می@انگین زم@ان انتظ@ار را ب@رای ح@التSRT و SJF.به دست آورید

)حلSJF:

P4 P3 P2 P1 پردازش ها

5 9 4 8 زمان انفجار

3 2 1 0 زمان ورود

0

P1

12

P3

26

8

P2

17

P4

:p1زمان انتظار :p2زمان انتظار 0 - 01 - 8

:p4زمان انتظار 3 - 12

:p3زمان انتظار 2 - 17

9+15+7+0=میانگینزمانانتظار4

=7 .75

Page 15: سیستم عامل 2

(HRRNزمان بندی باالترین نسبت پاسخ )

انحصاری

بعضی از مشکالتSJFرا رفع می کند درSJF نظ@ر اف@راطی خ@وبی نس@بت ب@ه کاره@ای کوت@اه و نظ@ر اف@راطی ب@دی

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

درHRRN بوده و از فرمول زیر محاسبه می شوددینامیک اولویت ها

چون زم@ان س@رویس در مخ@رج اس@ت پس کاره@ای کوت@اهتر اول@ویت بیش@تریداشته و زودتر اجرا می شوند

چون زم@ان انتظ@ار در ص@ورت اس@ت، کاره@ای ط@والنی ن@یز ک@ه زم@ان زی@ادیب@االخره د@ر ی@ک@ ا@نتظ@ار بوده@ ان@د @اول@ویت @بیش@تری@ کس@ب ک@رده @و د@ر ص@ف

زمان معین اجرا می شوند

=اولویت زمانسرویسزمانسرویس+زمانانتظار

Page 16: سیستم عامل 2

(Priority Schedulingزمان بندی اولویت )

)هم انحصاری و هم غیر انحصاری )اغلب به صورت انحصاری

وق@تی پردازش@ی وارد ص@ف آم@اده می ش@ود، اگ@ر اول@ویت پروس@س جدی@دبیشتر از پردازش در حال اجرا باشد:

:در سیستم غیرانحصاریCPUبالفاصله به پردازش جدید تعلق می گیرد

در سیستم انحصاری: پردازش جدید در جلو صف آماده قرار می گیرد

.مشکل اصلی این الگوریتم قحطی زدگی )گرسنگی( است( تکنی@ک س@الخوردگی از این مش@کل می ت@وان اس@تفاده agingبرای ح@ل )

ک@رد. یع@نی ب@ه ت@دریج اول@ویت پردازش ه@ایی ک@ه م@دت زی@ادی در سیس@تم منتظر بوده اند را افزایش دهیم.

در سیس@تم عامل هایWindows NT و UNIX ت@رکیب الگوریتم ه@ای RR و اولویت به کار رفته است

Page 17: سیستم عامل 2

(Priority Schedulingزمان بندی اولویت )

اول@ویت الگ@وریتم در زی@ر موجودن@د. پردازش ه@ای انحص@اری ی@ک سیس@تم در می@انگین زم@ان انتظ@ار را ب@ه دس@ت آوری@د )ع@دد کوچک@تر نمای@انگر اول@ویت بیش@تر

است(.

)حل

P5 P4 P3 P2 P1 پردازش ها

5 1 2 1 10 زمان انفجار

2 4 3 1 3 اولویت

0

P2

1 6

P1

18

P4

19

P5

16

P3 :p1زمان انتظار :p2زمان انتظار 6 - 00 - 0

:p4زمان انتظار 0 - 18

:p3زمان انتظار 0 - 16

18+16+6+1+0=میانگینزمانانتظار5

=8 .2 :p5زمان انتظار

0 - 1

Page 18: سیستم عامل 2

Multiple Queuesزمان بندی صف های چندگانه

تجزی@ه جداگان@ه مختلفی ب@ه ص@ف های آم@اده الگ@وریتم، ص@ف این در می ش@ود و ه@ر پ@ردازش وارد ی@ک ص@ف می گ@ردد. اول@ویت ص@ف ها ب@ا هم

فرق داشته و هر صف الگوریتم زمان بندی خود را دارد

متف@اوت دس@ته های ب@ه س@ادگی ب@ه را فرآین@دها بت@وان ک@ه هنگ@امی طبقه بندی کرد

پردازش ه@ای ب@ه نس@بت بیش@تری اول@ویت مح@اوره ای پردازش ه@ای مثال دسته ای دارند

هیچ فرآین@دی در ص@ف پ@ایین تر نمی توان@د اج@را ش@ود مگ@ر آنک@ه ص@ف هایباالیی خالی شده باشند

در این دیدگاه، صف ها نسبت به یکدیگر انحصاری هستند از ط@رف دیگ@ر می ت@وان وقتCPU 80 را بین ص@ف ها تقس@یم نم@ود. مثال

درص@د را ب@ه ص@ف پ@ایین اختص@اص 20 را ب@ه ص@ف ب@اال و CPUدرص@د وقت داد

Page 19: سیستم عامل 2

Multiple Queuesزمان بندی صف های چندگانه

صف پردازش های سیستم

صف پردازش های محاوره ای

صف پردازش های ویرایشی

صف پردازش های دسته ای

باالترین اولویت

کمترین اولویت

Page 20: سیستم عامل 2

(MFQزمان بندی صف های چندگانه با فیدبک )

در روش قبلی هنگ@امی ک@ه پردازش@ی وارد ص@فی می ش@ود، نمی توان@داز آن صف خارج و وارد صف دیگری شود.

در این روش پردازش ها می توانند بین صف ها جابه جا شوند زی@ادی وقت ک@ه پ@ایین تری CPUپردازش@ی اول@ویت ب@ا ب@ه ص@ف را گرفت@ه

فرستاده می شود. فراین@دی ک@ه در ص@ف ب@ا اول@ویت پ@ایین، م@دت زی@ادی منتظ@ر ب@اقی مان@ده ب@ه

صف با اولویت بیشتری فرستاده می شود

الگ@وریتم زمان بن@دی ه@ر ص@ف عموم@اRR اس@ت، ب@ه همین دلی@ل غ@یر انحصاری است

کوانتوم صف های اولیه کمتر از کوانتوم صف های انتهایی است

.سیستم، زمانی به سراغ صف پایین می رود که صف باال تهی باشد یک پ@ردازش در ص@ف پ@ایین توس@ط ی@ک پ@ردازش جدی@د در ص@ف ب@اال، کن@ار

گذاشته می شود

Page 21: سیستم عامل 2

(MFQزمان بندی صف های چندگانه با فیدبک )

کوانتوم = 8

کوانتوم = 16

FCFS

= باالترین اولویت صف0

= اولویت متوسط صف1

= کمترین اولویت صف2

Page 22: سیستم عامل 2

(Lottery Schedulingزمان بندی شانسی )

انحصاری

سیستم عامل به هر پردازش تعدادی عدد می دهد

تع@داد اع@داد نس@بت داده ش@ده ب@ه ه@ر پ@ردازش وابس@ته ب@ه اول@ویت آناست

هر چه اولویت پردازش بیشتر باشد، اعداد بیشتری به آن داده می شود

سپس ب@ه ط@ور اتف@اقی ی@ک ع@دد تولی@د ش@ده و پردازش@ی ک@ه آن ع@دد را را در اختیار می گیردCPUدر اختیار دارد،

Page 23: سیستم عامل 2

LPT (Longest Processing Time)زمان بندی

اغلب ب@ه ص@ورت انحص@اری اس@ت و ب@رای سیس@تم های چن@د پردازن@ده ایاستفاده می شود

،باقیمان@ده کاره@ای بین از می گ@ردد، آزاد پردازن@ده ای ک@ه هرگ@اه طوالنی ترین کار برای اجرا انتخاب می شود

Page 24: سیستم عامل 2

الگوریتم های زمان بندی:الگوریتم های انحصاری

FCFS – SJF – Priority – HRRN – MLQ – Lottery و LPT

:الگوریتم های غیر انحصاریRR – SRT و MLFQ