Shahriar pirnia http www pirnia net
Download
1 / 25

Shahriar Pirnia http://www.pirnia.net - PowerPoint PPT Presentation


  • 119 Views
  • Uploaded on

Operating system سيستم عامل. Shahriar Pirnia http://www.pirnia.net. زمان بندی پروسسها Process Scheduling.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Shahriar Pirnia http://www.pirnia.net' - ashley


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Shahriar pirnia http www pirnia net

Operating systemسيستم عامل

Shahriar Pirnia http://www.pirnia.net


Shahriar pirnia pirnia

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

Scheduler (زمانبند) : بخشی از سیستم عامل است که تصمیم می گیرد از بین پروسسهای آماده اجرا CPU به کدام یک داده شود . برا ی این تصمیم گیری از الگوریتمی استفاده می شود که الگوریتم زمان بندی (ُScheduling Algorithm) نامیده می شود .

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

1- عدالت ((Fairness : هر پروسس سهم عادلانه ای از CPU را دریافت نماید .

2- کارایی (ٍٍٍٍEfficiency) : CPU بیکار نماند و وقتی پروسس امکان جلو رفتن ندارد CPU به پروسس دیگری داده شود .

3- زمان پاسخ (Response Time) : زمان پاسخ ، زمان پاسخ به فرمانهای Interactive کاربر است .

4- حداقل بودن زمان بازگشت (Turnaround Time) : زمان بازگشت برای یک کار Batch طول زمان از لحظه ورود آن به سیستم تا لحظه پایان یافتن (کامل شدن) آن می باشد .

5- حداکثر شدنThroughput: تعداد کارهایی است که در واحد زمان انجام می شود .

زمانبندی انحصاری (Nonpreemptive) (اجرا تا تکمیل)

زمانبندی

زمانبندی غیر انحصاری (Preemptive)


Shahriar pirnia pirnia

زمانبندی Round Robin :

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

به هر پروسس یک Quantum (کوانتم) یا Time-slice (برش زمانی) CPU داده می شود . اگر پروسس در پایان کوانتم هنوز خاتمه نیافته باشد ، CPU از آن گرفته می شود و به پروسس بعدی در صف داده می شود .

اندازه Quantum چقدر باشد ؟

فرض کنید Context switch ، 5 میلی ثانیه طول بکشد .

اگر طول کوانتم 20 میلی ثانیه باشد

20% = (20 + 5) / 5 = میزان اتلاف

اگر طول کوانتم را 500 میلی ثانیه در نظر بگیریم

1% > 505/5 =( 5 + 500 )/ 5 = میزان اتلاف

اغلب کوانتم برابر 100 میلی ثانیه را مناسب می دانند .


Shahriar pirnia pirnia

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

در زمانبندی Round Robin همه پروسسها دارای اولویت یکسان بودند .

نیاز به اعمال فاکتورهای خارجی منجر به زمانبندی دارای اولویت می شود .

p5

100

p2

80

p3

70

p5

p2

80

p3

70

90

پس از گذشت یک : quantum

p5

80

p2

80

p3

70

پس از گذشت دو : quantum

p5

70

p4

80

p3

70

p5

70

p4

70

p3

70

p5

70

p4

60

p3

70


Shahriar pirnia pirnia

اولویت می تواند به صورت ایستا وپویا نسبت داده شود .

مثال : درکامپیوترهای نظامی

مثال : درسایتهای کامپیوتری کارتهای طلایی نقره ای وبرنز و....

اولویتها میتوانند بطور پویا تعیین شوند مثلا به پروسسهای I/O limited اولویت f/ 1 نسبت دهیم که f کسری ازآخرین کوانتم است که پروسس cpu رادر دست داشته .

اگر کوانتم 100میلی ثانیه باشد وپروسس p1 ، 20 میلی ثانیه ا ز cpu استفاده کرده باشد

f = 20/100

5 = f/1= اولویت p1

اگرکوانتم 100میلی ثانیه باشد و پروسسp2 ، 2میلیثانیه از CPUاستفاده کرده باشد :

f = 2/100

= 1/f =50 اولویت p2


Shahriar pirnia pirnia

میتوان از کلاسهای اولویت ( وپویا نسبت داده شود .priority classes) استفاده کرد :

دراین روش پروسسهادرکلاسهای اولویت قرارداده میشوند . زمانبندی بین کلاسها اولویت داراست ولی زمانبندی درداخل هر کلاس Round Robin است .

Runable Processes

QueueHeaders

Priority 4

(Highest priority)

Priority 3

Priority 2

(Lowest priority)

Priority 1


Shahriar pirnia pirnia

زمانبندی صفحه های چندگانه ( وپویا نسبت داده شود .multiple queues)

CTSSدارای زمانبندی اولویت دار بود ولی سرعت تعویض پروسس در آن کم بود .

طراحان CTSS متوجه شدند اگر به پروسسهای CPU-Limited به جای اختصاص دادن مکرر کوانتم های کوچک کوانتم های طولانی تر داده شود Throughput سیستم بالاتر می رود .

از کلاسهای اولویت استفاده کردند .

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

صف پروسسهایی که 1 کوانتم اجرا می شوند

صف پروسسهایی که 2 کوانتم اجرا می شوند

صف پروسسهایی که 4 کوانتم اجرا می شوند

کاهش اولویت

صف پروسسهایی که 8 کوانتم اجرا می شوند

صف پروسسهایی که 16 کوانتم اجرا می شوند

...

...


Shahriar pirnia pirnia

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

در سیستم XDS 940 : ازکلاسهای اولویت مطابق شکل زیر استفاده می شود .

ترمینال

I/O

کوانتم های کوتاه

کوانتم های طولانی


Shahriar pirnia pirnia

زمانبندی ابتدا کوتاهترین کار در یک کلاس بطور کامل استفاده کند و هنوز کامل نشده باشد در کلاس پایین تر قرار می گیرد .Shortest Job First (SJF) :

این الگوریتم مخصوص کارهای دسته ای (Batch) می باشد.

وقتی چند کار Batch با اولویت یکسان وجود دارد . این الگوریتم می گوید CPU باید به پروسسی داده شود که Turnaround time کوچکتر ی دارد (یعنی آن پروسسی که زودتر خاتمه می یابد.)

Turnaround Time A: 8ثانیه

Turnaround Time B: 12 ثانیه

Turnaround Time C: 16 ثانیه

Turnaround Time D: 20 ثانیه

A

B

C

D

8 4 4 4

(a)

8+12+16+20

T=

=

14 ثانیه

4


Shahriar pirnia pirnia

Turnaround Time D : 4 در یک کلاس بطور کامل استفاده کند و هنوز کامل نشده باشد در کلاس پایین تر قرار می گیرد .ثانیه

Turnaround Time C : 8 ثانیه

Turnaround Time B:12 ثانیه

Turnaround Time A:20 ثانیه

D

C

B

A

4 4 4 8

(b)

4+8+12+20

T=

=

11 ثانیه

4


Shahriar pirnia pirnia

T در یک کلاس بطور کامل استفاده کند و هنوز کامل نشده باشد در کلاس پایین تر قرار می گیرد .

پروسس

زمان

A a a

B b a+b

C c a+b+c

D d a+b+c+d

4a+3b+2c+d

T=

4

آن پروسسی که زمان بازگشت کوتاهتری دارد((Shortest Job) باید ابتدا اجرا شود

(Shortest Job First)


Shahriar pirnia pirnia

زمانبندی تضمین شده در یک کلاس بطور کامل استفاده کند و هنوز کامل نشده باشد در کلاس پایین تر قرار می گیرد . (Guaranteed Scheduling Algorithm )

تضمین کنیم که به پروسس سهم عادلانه ای از وقت CPU را اختصاص دهیم .

اگر n پروسس در حال کار باشند باید هر یک بتوانند 1/n از وقت Cpu را در اختیار گیرند .

زمان نامی پروسس = n/زمان طی شده

زمان واقعی استفاده شده را سیستم عامل ثبت کرده است .

نسبت زمان واقعا استفاده شده به زمان نامی را برای هر پروسس محاسبه می کند :

نسبت 0.5 یعنی پروسس نصف سهم واقعی خود را دریافت کرده و نسبت دو به این معنی است که پروسس دو برابر سهم واقعی خود را به دست آورده است .

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

  • 1.5 0.80 0.75 0.5

  • 1.75 1.2 0.75 0.70 0.6

  • 1.45 1.05 0.72 0.65 0.7


Shahriar pirnia pirnia

زمانبندی بخت آزمایی (قرعه کشی ) در یک کلاس بطور کامل استفاده کند و هنوز کامل نشده باشد در کلاس پایین تر قرار می گیرد . (Lottery Scheduling )

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

پروسسی که این بلیط را دارد cpu به آن داده شود .

جورج اورول (George Orwell) می گوید “همه پروسسها مساویند ولی برخی از پروسسها مساویترند " باید به پروسسهای مهمتر بلیطهای بیشتری بدهیم تا شانس برنده شدن آنها افزایش یابد .

فرض کنید 100 بلیط وجود دارد پروسس A 20 بلیط در اختیار دارد و پروسس B 80 بلیط در اختیار دارد شانس A برای برنده شدن 20% و شانسB 80% است .

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


Shahriar pirnia pirnia

زمانبندی بلادرنگ : در یک کلاس بطور کامل استفاده کند و هنوز کامل نشده باشد در کلاس پایین تر قرار می گیرد .Real-time Scheduling

سیستم بلادرنگ (Real time) سیستمی است که در آن زمان پاسخگویی به وقایع خیلی اهمیت دارد. به عنوان مثال یک نیروگاه اتمی را در نطر بگیرید ، برخی کمیتها باید تحت کنترل دقیق باشند مثلا در اثر پرتاپ نوترونها به اتمها ، نوترونهای جدیدی آزاد می شوند و نوترونهای آزاد شده به اتمهای دیگر برخورد می کند و نوترونهای جدید آزاد میشود و بهمین ترتیب . اگر تعداد نوترونهای آزاد شده از یک حدی بیشتر باشد انفجار نوترونی اتفاق می افتد.پس غلظت نوترونها باید تحت کنترل دقیق باشد . حتی یک ثانیه بعد یا یک دقیقه یا یک ساعت بعد از انفجار اگر پاسخ دهد ، هیچ ارزشی ندارد.

سیستم مانیتورینگ بخش I.C.U یک بیمارستان یک مثال دیگر از سیستم Rea-time است.

سیستمهای Real-time به دو دسته تقسیم می شوند :

بلادرنگ سختHard Real-time

بلادرنگ نرم Soft Real-time


Shahriar pirnia pirnia

بلادرنگ سخت ( در یک کلاس بطور کامل استفاده کند و هنوز کامل نشده باشد در کلاس پایین تر قرار می گیرد .Hard Real-time) سیستمی است که در یک مهلت زمانی یا پاسخ میدهد یا هیچ ، مانند مثالهای فوق.

سیستم بلادرنگ نرم سیستمی است که در بعضی از مواقع آماده نشدن پاسخ در مهلت زمانی تعیین شده قابل تحمل است مانند سیستم پخش یک قطعه موسیقی از روی CD یا پخش یک Video-Clip از روی یک VCD .

- در یک سیستم بلادرنگ وقایعی رخ می دهد ؛ برنامه به تعدادی پروسس تقسیم می شود و هر پروسس برای پاسخگویی به یک نوع واقعه است.

وقایع در یک سیستم بلادرنگ به دو دسته تقسیم می شوند:

متناوبPeriodic

غیر متناوب Aperiodic

وقایع


Shahriar pirnia pirnia

وقایع متناوب با دوره تناوب مشخص تکرار می شوند .

وقایع غیر متناوب به صورت تصادفی رخمی دهند ( زمان رخ داد مشخصی ندارند)

از آنجا که پردارش مربوط به هر واقعه بخشی از زمان CPU را اشغال می کند ، ممکن است پاسخ کلیه وقایع در مهلت مشخص امکان پذیر نباشد . مخصوصا اگر قدرت پردازش بالا نباشد . فرض کنید وقایع متناوب عبارتند از :

E1

E2

.

.

.

Em

E مخفف Event است .

اگر فرض کنیم process مربوط به واقعه i ، Ciثانیه وقت CPU را اشغال می کند؛ آنگاه :

CiFi = زمان اشغال شده در ثانیه از وقت CPU برای واقعه i


Shahriar pirnia pirnia

و کل زمان صرف شده از تکرار می شوند . CPU در یک ثانیه برای پاسخگویی به وقایع عبارتست از :

m

CiFi = C1F1+C2F2+…..CmFm

I =

i=1

بدیهی است اگر مقدار I کوچکتر یا مساوی یک ثانیه باشد یعنی قدرت پردازش سیستم برای پلسخگویی به کلیه وقایع کافی است . لذا شرط اینکه سیستم قادر به پاسخگویی به کلیه وقایع باشد این است که

m

m

Ci /Pi <=1

CiFi <=1 یا

i=1

i=1

در این صورت می گویند سیستم قابل زمانبندی (Schedulable)است .

)از زمان Process Switch صرفنظر شده .)


Shahriar pirnia pirnia

مثال : فرض کنید یک سیستم بلادرنگ از سه واقعه متناوب با دوره های تناوب 100، 200 ،500 میلی ثانیه

تشکیل شده است .اگر هر واقعه به ترتیب به 50 و 30و100 میلی ثانیه زمان CPU نیاز داشته باشد،

(الف) آیا سیستم فایل زمانبندی (Schedulable) است ؟

m

Ci / Pi = c1/p1 + c2/P2 +C3/P3=50/100+30/200+100/500= 0.5+0.15+0.2=0.85<=1

i=1

لذا قابل زمانبندی است

(ب) اگر واقعه چهارمی با دوره تناوب 1 ثانیه اضافه شود آیا سیستم هنوز قابل زمانبندی است؟

m

Ci / Pi = c1/p1 +..+C4/P4=0.85 + C4/1<=1

C4<=150ms

C4<=0.15ثانیه

i=1

لذا فقط در صورتیکه Process مربوطه به P4 حداکثر به 150 میلی ثانیه زمان CPU نیاز داشته باشد ،سیستم قابل زمانبندی است.


Shahriar pirnia pirnia

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

1- الگوریتم نرخ یکنواخت (Rate Monotonic Algorithm) :

یک الگوریتم دارای اولویت است که به هر پروسس ، اولویتی متناسب با فرکانس آن رخداد اختصاص داده شود . به عنوان مثال اگر Process 1 ، دارای دوره تناوب 20 میلی ثانیه است و به آن اولویت 50 داده می شود و به Process2 ، دارای دوره تناوب 100 میلی ثانیه است اولویت 10 داده می شود


Shahriar pirnia pirnia

2- الگوریتم ابتدا زودترین مهلت بلادرنگ : ( Earliest Deadline First)

مهلت برای یک واقعه متناوب برابر زمان رخداد واقعه بعدی خواهد بود . مثال :

450 ms

300

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

این الگوریتم می گوید که لیستی آماده اجرا داشته باشیم که در آن پروسسها به ترتیبمهلتشان Sort شده اند.

سپس پروسسی CPU ميگیرد که اول صف باشد یعنی پروسسی که کمترین مهلت را دارد ( فرصتش ار همه کمتر است).


Shahriar pirnia pirnia

الگوریتم کمترین لختی بلادرنگ : (Least Laxity):

تعریف مقدار لختی یک پروسس :حداکثر مقدار زمانی که پروسس می تواند در آن مدت آماده باقی بماند و اجرا نشود .مثال : اگر یک پروسسی 200 میلی ثانیه وقت CPU نیاز داشته باشد و 250 میلی ثانیه مهلت داشته باشد و لختی آن 50 میلی ثانیه است .

250

50

200

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

الگوریتم کمرین لختی (Least Laxity) می گوید پروسسی انتخاب شود که کمترین لختی را دارد

برخی از مشخصات سیستمهای عامل بلادرنگ عبارتند ار : کوچکی اندازه ، وقفه زمانی سریع ، تعویض متن سریع ، کوتاه بودن فواصل زمانی از کار انداختن وقفه ها


Shahriar pirnia pirnia

برخی از مشخصات سیستمهای عامل بلادرنگ عبارتند ار : کوچکی اندازه ، وقفه زمانی سریع ، تعویض متن سریع ، کوتاه بودن فواصل زمانی از کار انداختن وقفه ها

زمانبندی دو سطحی (Two-Level Scheduling Algorithm):

تاکنون فرض کرده ایم که پروسسهاي آماده اجرا همه در حافظه اصلی قراردارند ، اما اگر حافظه اصلی به اندازه کافی نباشد برخی از پروسسهای قابل اجرا در حافطه جا نمی گیرند و باید روی دیسک نگهداری شوند . زمان تعویض پروسس برای پروسسی که در دیسک ایست بعلت مبادله ار دیسک به حافظه اصلی ، بسیار بزرگتر از حالتی است که به پروسسي Switch کنیم که در حافظه اصلی قرار دارد. از بین پروسسهای آماده اجرا ، زمانبند CPU را به کدامیک اختصاص دهد؟

یک راه استفاده از الگوریتم زمانبندی دو سطحی است :

از 2 زمانبند استفاده می شود :

زمانبند سطح بالا High Level Scheduler

زمانبند سطح پایینLow Level Scheduler


Shahriar pirnia pirnia

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

زمانبند سطح پایین از بین آنها که در حافظه اند ، انتخاب می کند CPU به کدامیک داده شود

Processes in main memory

e,f,g,h

b.c.f.g

a,b,c,d

Processes On Disk

e,f,g,h

a,b,c,d

a,d,e,h

(A) (B) (D)


Shahriar pirnia pirnia

معیارهایی که زمانبند سطح بالاتر در تصمیم گیری استفاده می کند :

1- از لحظه ای که پروسس به داخل یا خارج حافظه مبادله شده ، چه مدت می گذرد؟

2-اخیرا پروسس چه مقدار از زمان CPU استفاده کرده است ؟

3-پروسس چقدر بزرگ است ؟ (پروسسهای کوچک ارزش مبادله ندارد)

4-پروسسس تا چه حد از اولویت برخوردار است ؟


Shahriar pirnia pirnia

سیاست در مقابل مکانیزم در تصمیم گیری استفاده می کند : (Policy Versus Mechanism)

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

مثلا : الگوریتم زمانبندی اولویت است (که در هسته سیستم عامل است) ، سیاست زمانبندی (اینکه به چه پروسسی چه اولویتی تخصیص داده می شود) هم توسط خود سیستم از اولوبت آنها داشته باشد. مثلا در یک سسیستم پایگاه داده یک پروسس اصلی وجود دارد و درخواستهای عامل (هسته سیستم عامل)تعیین می شود.

بعضی مواقع است که یک پروسس چندین فرزند دارد و می تواند ایده جالبی کاربران و غیره به آن داده می شود و پروسسهای جدید به عنوان فرزندان برای انجام درخواستها و امور مختلف ایجاد می شود. در این حالت پروسس اصلی می داند که کدام پروسس چه اولویتی دارد .در این موارد راه حل این است که مکانیزم زمانبندی از سیاست زمانبندی جدا باشد.

مثلا : الگوریتم زمانبندی پارامتر پذیر باشد ؛ اما پارامترها توسط پروسسهای کاربر مقداردهی شود.

در مورد مثال پایگاه داده ها : هسته ممکن است از الگوریتم اولویت دار استفاده کند ولی یک فراخوان سیستمی وجود داشته باشد که از طریق آن یک پروسس بتواند اولویت فرزندان خود را تعیین کند یا تغییر دهد .

در اینجا مکانیزم در درون هسته است ، اما سیاست توسط کاربر تعیین می شود . پروسس پدر می تواند جزئیات چگونگی زمانبندی فرزندان خود را کنترل نماید ، اگر چه که خود او زمانبندی را انجام نمی دهد.