CPU Zamanlama Algorithms in OperaAyarlama Sistemleri

CPU Planlama nedir?

CPU Zamanlama baลŸka bir iลŸlem beklemedeyken hangi iลŸlemin yรผrรผtme iรงin CPU'ya sahip olacaฤŸฤฑnฤฑ belirleme sรผrecidir. CPU planlamasฤฑnฤฑn temel gรถrevi, CPU boลŸta kaldฤฑฤŸฤฑnda iลŸletim sisteminin en azฤฑndan yรผrรผtme iรงin hazฤฑr kuyruฤŸunda bulunan iลŸlemlerden birini seรงmesini saฤŸlamaktฤฑr. Seรงim sรผreci CPU planlayฤฑcฤฑsฤฑ tarafฤฑndan yรผrรผtรผlecektir. Bellekte yรผrรผtme iรงin hazฤฑr olan iลŸlemlerden birini seรงer.

CPU Planlama Tรผrleri

Burada iki tรผr Planlama yรถntemi vardฤฑr:

CPU Planlama Tรผrleri

ร–nleyici Planlama

ร–nleyici Planlamada gรถrevler รงoฤŸunlukla รถnceliklerine gรถre atanฤฑr. Bazen, daha dรผลŸรผk รถncelikli gรถrev hala รงalฤฑลŸฤฑyor olsa bile, daha dรผลŸรผk รถncelikli bir gรถrevden รถnce daha yรผksek รถncelikli bir gรถrevi รงalฤฑลŸtฤฑrmak รถnemlidir. DรผลŸรผk รถncelikli gรถrev bir sรผre bekletilir ve yรผksek รถncelikli gรถrevin yรผrรผtรผlmesi tamamlandฤฑฤŸฤฑnda devam eder.

ร–nleyici Olmayan Planlama

Bu tรผr planlama yรถnteminde CPU belirli bir sรผrece tahsis edilmiลŸtir. CPU'yu meลŸgul eden sรผreรง, baฤŸlamฤฑ deฤŸiลŸtirerek veya sonlandฤฑrarak CPU'yu serbest bฤฑrakacaktฤฑr. ร‡eลŸitli donanฤฑm platformlarฤฑ iรงin kullanฤฑlabilecek tek yรถntemdir. Bunun nedeni, รถnleyici planlama gibi รถzel bir donanฤฑma (รถrneฤŸin bir zamanlayฤฑcฤฑ) ihtiyaรง duymamasฤฑdฤฑr.

Planlama ne zaman ร–nleyici veya ร–nleyici DeฤŸildir?

Planlamanฤฑn รถnleyici mi yoksa รถnleyici olmayan mฤฑ olduฤŸunu belirlemek iรงin ลŸu dรถrt parametreyi gรถz รถnรผnde bulundurun:

  1. Bir sรผreรง รงalฤฑลŸma durumundan bekleme durumuna geรงer.
  2. Belirli bir sรผreรง, รงalฤฑลŸma durumundan hazฤฑr durumuna geรงiลŸ yapar.
  3. Belirli bir sรผreรง bekleme durumundan hazฤฑr durumuna geรงer.
  4. ฤฐลŸlem yรผrรผtmeyi tamamladฤฑ ve sonlandฤฑrฤฑldฤฑ.

Yalnฤฑzca 1. ve 4. koลŸullar geรงerlidir; planlamaya รถnleyici olmayan denir.

DiฤŸer tรผm planlamalar รถnleyicidir.

ร–nemli CPU Planlama Terminolojileri

  • Patlama Sรผresi/Yรผrรผtme Sรผresi: ฤฐลŸlemin yรผrรผtmeyi tamamlamasฤฑ iรงin gereken sรผredir. Buna รงalฤฑลŸma sรผresi de denir.
  • VarฤฑลŸ zamanฤฑ: bir sรผreรง hazฤฑr duruma girdiฤŸinde
  • Bitirme zamanฤฑ: iลŸlem tamamlandฤฑฤŸฤฑnda ve sistemden รงฤฑkฤฑldฤฑฤŸฤฑnda
  • ร‡oklu programlama: Bellekte aynฤฑ anda bulunabilen birden fazla program.
  • Meslekler: Herhangi bir kullanฤฑcฤฑ etkileลŸimi olmayan bir program tรผrรผdรผr.
  • Kullanฤฑcฤฑ: Kullanฤฑcฤฑ etkileลŸiminin olduฤŸu bir program tรผrรผdรผr.
  • Proses: Hem iลŸ hem de kullanฤฑcฤฑ iรงin kullanฤฑlan referanstฤฑr.
  • CPU/IO patlama dรถngรผsรผ: CPU ve G/ร‡ etkinliฤŸi arasฤฑnda geรงiลŸ yapan sรผreรง yรผrรผtmeyi karakterize eder. CPU sรผreleri genellikle G/ร‡ sรผresinden daha kฤฑsadฤฑr.

CPU Planlama Kriterleri

Bir CPU planlama algoritmasฤฑ aลŸaฤŸฤฑdakileri en รผst dรผzeye รงฤฑkarmaya ve en aza indirmeye รงalฤฑลŸฤฑr:

CPU Planlama Kriterleri

Maksimuma รงฤฑkarmak

CPU kullanฤฑmฤฑ:CPU kullanฤฑmฤฑ, iลŸletim sisteminin CPU'nun mรผmkรผn olduฤŸu kadar meลŸgul kalmasฤฑnฤฑ saฤŸlamasฤฑ gereken ana gรถrevdir. Yรผzde 0 ila 100 arasฤฑnda deฤŸiลŸebilir. Ancak RTOS iรงin bu, dรผลŸรผk seviyeli sistem iรงin yรผzde 40 ve yรผksek seviyeli sistem iรงin yรผzde 90 aralฤฑฤŸฤฑnda olabilir.

รœretilen: Birim zamanda yรผrรผtรผlmesini tamamlayan iลŸlemlerin sayฤฑsฤฑ Verim olarak bilinir. Yani, CPU iลŸlemi yรผrรผtmekle meลŸgul olduฤŸunda, o anda iลŸ yapฤฑlฤฑyor ve birim zamanda tamamlanan iลŸe Verim adฤฑ veriliyor.

Azaltmak

Bekleme sรผresi: Bekleme sรผresi, belirli bir prosesin hazฤฑr kuyruฤŸunda beklemesi gereken miktardฤฑr.

Tepki Sรผresi: Talebin gรถnderildiฤŸi andan ilk yanฤฑt alฤฑnana kadar geรงen sรผredir.

Geri DรถnรผลŸ Sรผresi: Geri dรถnรผลŸ sรผresi, belirli bir iลŸlemin yรผrรผtรผlmesi iรงin geรงen sรผredir. BelleฤŸe girmeyi beklerken, kuyrukta beklerken ve CPU รผzerinde yรผrรผtรผlรผrken harcanan toplam sรผrenin hesaplanmasฤฑdฤฑr. ฤฐลŸlemin teslim sรผresi ile tamamlanma sรผresi arasฤฑnda geรงen sรผre, geri dรถnรผลŸ sรผresidir.

Aralฤฑk Zamanlayฤฑcฤฑsฤฑ

Zamanlayฤฑcฤฑ kesintisi, รถnleme ile yakฤฑndan ilgili bir yรถntemdir. Belirli bir iลŸlem CPU tahsisini aldฤฑฤŸฤฑnda, bir zamanlayฤฑcฤฑ belirli bir aralฤฑฤŸa ayarlanabilir. Hem zamanlayฤฑcฤฑ kesintisi hem de รถnleme, bir iลŸlemi CPU patlamasฤฑ tamamlanmadan CPU'yu geri dรถndรผrmeye zorlar.

ร‡ok programlฤฑ iลŸletim sistemlerinin รงoฤŸu, bir iลŸlemin sistemi sonsuza kadar baฤŸlamasฤฑnฤฑ รถnlemek iรงin bir tรผr zamanlayฤฑcฤฑ kullanฤฑr.

Dispatcher nedir?

CPU'nun prosese kontrolรผnรผ saฤŸlayan modรผldรผr. Dispatcher'ฤฑn her baฤŸlam anahtarฤฑnda รงalฤฑลŸabilmesi iรงin hฤฑzlฤฑ olmasฤฑ gerekir. DaฤŸฤฑtฤฑm gecikmesi, CPU zamanlayฤฑcฤฑnฤฑn bir iลŸlemi durdurup diฤŸerini baลŸlatmak iรงin ihtiyaรง duyduฤŸu sรผredir.

Dispatcher tarafฤฑndan gerรงekleลŸtirilen iลŸlevler:

  • BaฤŸlam DeฤŸiลŸtirme
  • Kullanฤฑcฤฑ moduna geรงiลŸ
  • Yeni yรผklenen programda doฤŸru konuma taลŸฤฑnma.

CPU planlama algoritmasฤฑ tรผrleri

Esas olarak altฤฑ tรผr vardฤฑr sรผreรง planlama algoritmalarฤฑ

  1. ฤฐlk Gelen ฤฐlk Servis (FCFS)
  2. En Kฤฑsa ฤฐลŸ ร–ncelikli (SJF) Planlama
  3. Kalan En Kฤฑsa Sรผre
  4. ร–ncelikli Planlama
  5. Yuvarlak Robin Planlama
  6. ร‡ok Dรผzeyli Kuyruk Planlama
ร‡izelgeleme Algorithms
ร‡izelgeleme Algorithms

ร–nce gelen alฤฑr

ฤฐlk Gelen ฤฐlk Hizmet, FCFS'nin tam biรงimidir. En kolay ve en basit CPU planlama algoritmasฤฑdฤฑr. Bu tรผr algoritmada, CPU'yu talep eden sรผreรง รถnce CPU tahsisini alฤฑr. Bu planlama yรถntemi bir FIFO kuyruฤŸu ile yรถnetilebilir.

Proses hazฤฑr kuyruฤŸuna girdiฤŸinde PCB'si (Proses Kontrol BloฤŸu) kuyruฤŸun kuyruฤŸuna baฤŸlanฤฑr. Yani CPU serbest kaldฤฑฤŸฤฑnda kuyruฤŸun baลŸฤฑndaki prosese atanmalฤฑdฤฑr.

FCFS yรถnteminin รถzellikleri

  • ร–nleyici olmayan ve รถnleyici planlama algoritmasฤฑ sunar.
  • ฤฐลŸler her zaman ilk gelene ilk hizmet esasฤฑna gรถre gerรงekleลŸtirilir
  • Uygulamasฤฑ ve kullanฤฑmฤฑ kolaydฤฑr.
  • Ancak bu yรถntemin performansฤฑ zayฤฑftฤฑr ve genel bekleme sรผresi oldukรงa yรผksektir.

Kalan En Kฤฑsa Sรผre

SRT'nin tam ลŸekli Kalan en kฤฑsa sรผre'dir. Aynฤฑ zamanda SJF รถnleyici planlama olarak da bilinir. Bu yรถntemde sรผreรง, tamamlanmaya en yakฤฑn olan gรถreve tahsis edilecektir. Bu yรถntem, daha yeni bir hazฤฑr durum iลŸleminin eski bir iลŸlemin tamamlanmasฤฑnฤฑ geciktirmesini รถnler.

SRT planlama yรถnteminin รถzellikleri

  • Bu yรถntem รงoฤŸunlukla kฤฑsa iลŸlerin tercih edilmesinin gerekli olduฤŸu toplu ortamlarda uygulanฤฑr.
  • Bu, gerekli CPU sรผresinin bilinmediฤŸi paylaลŸฤฑmlฤฑ bir sistemde bunu uygulamak iรงin ideal bir yรถntem deฤŸildir.
  • Her iลŸlemi bir sonraki CPU patlamasฤฑnฤฑn uzunluฤŸu olarak iliลŸkilendirin. Bรถylece iลŸletim sistemi bu uzunluklarฤฑ kullanฤฑr ve bu da iลŸlemin mรผmkรผn olan en kฤฑsa sรผrede planlanmasฤฑna yardฤฑmcฤฑ olur.

ร–nceliฤŸe Dayalฤฑ Planlama

ร–ncelikli Planlama ร–nceliฤŸe dayalฤฑ olarak sรผreรงlerin planlanmasฤฑ yรถntemidir. Bu yรถntemde zamanlayฤฑcฤฑ, รถncelik sฤฑrasฤฑna gรถre รงalฤฑลŸacak gรถrevleri seรงer.

ร–ncelik planlamasฤฑ aynฤฑ zamanda iลŸletim sisteminin รถncelik atamalarฤฑnฤฑ iรงermesine de yardฤฑmcฤฑ olur. Daha yรผksek รถnceliฤŸe sahip sรผreรงler ilk รถnce yรผrรผtรผlmeli, eลŸit รถnceliฤŸe sahip iลŸler ise dรถnรผลŸรผmlรผ veya FCFS esasฤฑna gรถre gerรงekleลŸtirilir. ร–ncelik, bellek gereksinimleri, zaman gereksinimleri vb. temel alฤฑnarak belirlenebilir.

Round-Robin Planlama

Round robin en eski ve en basit planlama algoritmasฤฑdฤฑr. Bu algoritmanฤฑn adฤฑ, her kiลŸinin sฤฑrayla bir ลŸeyden eลŸit pay aldฤฑฤŸฤฑ yuvarlak-robin ilkesinden gelir. ร‡oฤŸunlukla รงoklu gรถrevlerde algoritmalarฤฑ planlamak iรงin kullanฤฑlฤฑr. Bu algoritma yรถntemi, sรผreรงlerin aรง kalmadan yรผrรผtรผlmesine yardฤฑmcฤฑ olur.

Round-Robin Planlamanฤฑn ร–zellikleri

  • Round robin, saat odaklฤฑ hibrit bir modeldir.
  • ฤฐลŸlenecek belirli bir gรถrev iรงin atanan zaman dilimi minimum olmalฤฑdฤฑr. Ancak farklฤฑ iลŸlemlere gรถre deฤŸiลŸiklik gรถsterebilir.
  • Olaya belirli bir zaman sฤฑnฤฑrฤฑ iรงinde yanฤฑt veren gerรงek zamanlฤฑ bir sistemdir.

ร–nce En Kฤฑsa ฤฐลŸ

SJF, (ร–nce en kฤฑsa iลŸ) ifadesinin tam biรงimidir ve bir sonraki yรผrรผtme iรงin en kฤฑsa yรผrรผtme sรผresine sahip iลŸlemin seรงilmesi gereken bir zamanlama algoritmasฤฑdฤฑr. Bu planlama yรถntemi รถnleyici veya รถnleyici olmayabilir. Yรผrรผtรผlmeyi bekleyen diฤŸer iลŸlemlerin ortalama bekleme sรผresini รถnemli รถlรงรผde azaltฤฑr.

SJF Planlamanฤฑn ร–zellikleri

  • Tamamlanacak zaman birimi olarak her iลŸ ile iliลŸkilendirilir.
  • Bu yรถntemde, CPU mevcut olduฤŸunda, tamamlanma sรผresi en kฤฑsa olan bir sonraki iลŸlem veya iลŸ ilk รถnce yรผrรผtรผlecektir.
  • ร–nleyici olmayan bir politika ile uygulanฤฑr.
  • Bu algoritma yรถntemi, iลŸlerin tamamlanmasฤฑnฤฑ beklemenin kritik olmadฤฑฤŸฤฑ toplu tip iลŸleme iรงin kullanฤฑลŸlฤฑdฤฑr.
  • ฤฐlk รถnce yapฤฑlmasฤฑ gereken ve รงoฤŸunlukla daha kฤฑsa geri dรถnรผลŸ sรผresine sahip olan daha kฤฑsa iลŸler sunarak iลŸ รงฤฑktฤฑsฤฑnฤฑ artฤฑrฤฑr.

ร‡ok Seviyeli Kuyruk Planlama

Bu algoritma hazฤฑr kuyruฤŸunu รงeลŸitli ayrฤฑ kuyruklara ayฤฑrฤฑr. Bu yรถntemde iลŸlemler, iลŸlem รถnceliฤŸi, bellek boyutu vb. gibi iลŸlemin belirli bir รถzelliฤŸine dayalฤฑ olarak bir kuyruฤŸa atanฤฑr.

Ancak bu, iลŸleri zamanlamak iรงin diฤŸer algoritma tรผrlerini kullanmasฤฑ gerektiฤŸinden baฤŸฤฑmsฤฑz bir zamanlama iลŸletim sistemi algoritmasฤฑ deฤŸildir.

ร‡ok Seviyeli Kuyruk Planlamanฤฑn ร–zelliฤŸi

  • Bazฤฑ รถzelliklere sahip iลŸlemler iรงin birden fazla kuyruk tutulmalฤฑdฤฑr.
  • Her kuyruฤŸun ayrฤฑ planlama algoritmalarฤฑ olabilir.
  • Her kuyruk iรงin รถncelikler verilmiลŸtir.

Zamanlama Algoritmasฤฑnฤฑn Amacฤฑ

Zamanlama algoritmasฤฑ kullanmanฤฑn nedenleri ลŸunlardฤฑr:

  • CPU verimliliฤŸini artฤฑrmak iรงin zamanlamayฤฑ kullanฤฑr.
  • Kaynaklarฤฑ rakip sรผreรงler arasฤฑnda tahsis etmenize yardฤฑmcฤฑ olur.
  • ร‡oklu programlama ile CPU'nun maksimum kullanฤฑmฤฑ elde edilebilir.
  • Yรผrรผtรผlecek iลŸlemler hazฤฑr kuyruฤŸundadฤฑr.

ร–ZET

  • CPU planlamasฤฑ, baลŸka bir iลŸlem beklemedeyken hangi iลŸlemin yรผrรผtรผlmek รผzere CPU'ya sahip olacaฤŸฤฑnฤฑ belirleme sรผrecidir.
  • ร–nleyici Planlamada gรถrevler รงoฤŸunlukla รถnceliklerine gรถre atanฤฑr.
  • ร–nleyici olmayan planlama yรถnteminde CPU belirli bir sรผrece tahsis edilmiลŸtir.
  • Patlama sรผresi, iลŸlemin yรผrรผtmeyi tamamlamasฤฑ iรงin gereken sรผredir. Buna รงalฤฑลŸma sรผresi de denir.
  • CPU kullanฤฑmฤฑ, iลŸletim sisteminin CPU'nun mรผmkรผn olduฤŸu kadar meลŸgul kalmasฤฑnฤฑ saฤŸlamasฤฑ gereken ana gรถrevdir.
  • Birim zamanda yรผrรผtรผlmesini tamamlayan iลŸlemlerin sayฤฑsฤฑ Verim olarak bilinir.
  • Bekleme sรผresi, belirli bir iลŸlemin hazฤฑr kuyruฤŸunda beklemesi gereken miktardฤฑr.
  • Talebin gรถnderildiฤŸi andan ilk yanฤฑt alฤฑnana kadar geรงen sรผredir.
  • Geri dรถnรผลŸ sรผresi, belirli bir iลŸlemin yรผrรผtรผlmesi iรงin geรงen sรผredir.
  • Zamanlayฤฑcฤฑ kesintisi, รถnleme ile yakฤฑndan ilgili bir yรถntemdir.
  • DaฤŸฤฑtฤฑcฤฑ, CPU'nun sรผrece kontrolรผnรผ saฤŸlayan bir modรผldรผr.
  • Altฤฑ tรผr sรผreรง planlama algoritmasฤฑ ลŸunlardฤฑr: ฤฐlk Gelen ฤฐlk Hizmet (FCFS), 2) En Kฤฑsa ฤฐลŸ ฤฐlk (SJF) Planlama, 3) En Kฤฑsa Kalan Sรผre, 4) ร–ncelik Planlama, 5) Dรถngรผsel Robin Planlama, 6) ร‡ok Dรผzeyli Kuyruk Planlama .
  • iรงinde ฤฐlk Gelen ฤฐlk Hizmet Yรถntemi, CPU'yu talep eden sรผreรง รถnce CPU tahsisini alฤฑr.
  • Kalan En Kฤฑsa Sรผrede sรผreรง, tamamlanmasฤฑna en yakฤฑn gรถreve tahsis edilecektir.
  • ร–ncelikli Planlama'da, zamanlayฤฑcฤฑ รถnceliฤŸe gรถre รงalฤฑลŸacak gรถrevleri seรงer.
  • Yuvarlak sฤฑralama zamanlamasฤฑ herkesin sฤฑrayla bir ลŸeyden eลŸit pay almasฤฑ prensibiyle รงalฤฑลŸฤฑr.
  • ร–nce En kฤฑsa iลŸ'te, bir sonraki yรผrรผtme iรงin en kฤฑsa yรผrรผtme sรผresi seรงilmelidir.
  • ร‡ok seviyeli planlama yรถntemi hazฤฑr kuyruฤŸunu รงeลŸitli ayrฤฑ kuyruklara ayฤฑrฤฑr. Bu yรถntemde iลŸlemler belirli bir รถzelliฤŸe gรถre bir kuyruฤŸa atanฤฑr.
  • CPU verimliliฤŸini artฤฑrmak iรงin zamanlamayฤฑ kullanฤฑr.

Bu yazฤฑyฤฑ ลŸu ลŸekilde รถzetleyin: