Mga Operating System: Tulo ka Sayon nga Piraso. Bahin 5: Pagplano: Multi-Level Feedback Queue (paghubad)

Pasiuna sa Operating System

Hoy Habr! Gusto nako nga dad-on sa imong atensyon ang usa ka serye sa mga artikulo-paghubad sa usa ka makapaikag nga literatura sa akong opinyon - OSTEP. Gihisgutan sa kini nga materyal nga lawom ang trabaho sa mga operating system nga sama sa unix, nga mao, pagtrabaho kauban ang mga proseso, lainlaing mga scheduler, memorya, ug uban pang parehas nga mga sangkap nga naglangkob sa usa ka modernong OS. Makita nimo ang orihinal sa tanang materyales dinhi dinhi. Palihug timan-i nga ang paghubad gihimo nga dili propesyonal (medyo gawasnon), apan nanghinaut ko nga akong gihuptan ang kinatibuk-ang kahulugan.

Ang trabaho sa lab sa kini nga hilisgutan makita dinhi:

Ubang mga bahin:

Mahimo usab nimo tan-awon ang akong channel sa telegram =)

Pagplano: Multi-Level Feedback Queue

Niini nga lecture atong hisgutan ang mga problema sa pagpalambo sa usa sa labing inila nga mga pamaagi sa
pagplano, nga gitawag Multi-Level Feedback Queue (MLFQ). Ang scheduler sa MLFQ unang gihulagway ni Fernando J. CorbatΓ³ ni adtong 1962 sa gitawag nga sistema
Compatible Time-Sharing System (CTSS). Kini nga mga buhat (lakip ang ulahi nga pagtrabaho sa
Multics) sa ulahi nominado alang sa Turing Award. Ang nagplano mao
sa ulahi milambo ug nakuha ang dagway nga makita na sa
pipila ka modernong mga sistema.

Ang MLFQ algorithm misulay sa pagsulbad sa 2 ka sukaranang nagsapaw-sapaw nga mga problema.
Una, kini misulay sa pag-optimize sa turnaround nga oras, nga, sama sa atong gihisgutan sa miaging lecture, gi-optimize pinaagi sa pamaagi sa pagsugod sa pagsugod sa pila nga labing kadaghan.
mugbo nga mga buluhaton. Bisan pa, ang OS wala mahibal-an kung unsa ka dugay ang usa ka partikular nga proseso modagan, ug kini
gikinahanglan nga kahibalo alang sa operasyon sa SJF, STCF algorithms. Ikaduha, MLFQ naningkamot
paghimo sa sistema nga responsive alang sa mga tiggamit (pananglitan, alang sa mga naglingkod ug
tutok sa screen nga naghulat sa buluhaton nga makompleto) ug sa ingon mamenosan ang oras
tubag. Ikasubo, ang mga algorithm sama sa RR nagpauswag sa oras sa pagtubag, apan labi ka labi
adunay dili maayo nga epekto sa sukatan sa oras sa pag-usab. Mao nga ang among problema: Giunsa ang pagdesinyo
usa ka scheduler nga makatagbo sa among mga kinahanglanon nga wala’y nahibal-an bahin
ang kinaiyahan sa proseso sa kinatibuk-an? Giunsa mahibal-an sa scheduler ang mga kinaiya sa mga buluhaton,
nga gilunsad niini ug sa ingon makahimo og mas maayong mga desisyon sa pagplano?

Ang esensya sa problema: Giunsa pagplano ang paghimo sa mga buluhaton nga wala’y hingpit nga kahibalo?
Giunsa ang pagdesinyo sa usa ka scheduler nga dungan nga nagpamenos sa oras sa pagtubag
alang sa interactive nga mga buluhaton ug sa samang higayon gipamenos ang oras sa pag-turnover nga wala mahibalo
kahibalo sa oras sa pagpatuman sa buluhaton?

Nota: nakakat-on kita gikan sa nangaging mga panghitabo

Ang MLFQ queue usa ka maayo kaayo nga ehemplo sa usa ka sistema nga nakakat-on gikan sa
nangaging mga panghitabo aron matagna ang umaabot. Ang parehas nga mga pamaagi kanunay
makita sa OS (Ug daghang uban pang mga sanga sa siyensya sa kompyuter, lakip ang mga sanga
mga panagna sa hardware ug mga algorithm sa pag-cache). Susama nga mga biyahe
ma-trigger kung ang mga buluhaton adunay mga hugna sa pamatasan ug sa ingon matag-an.
Bisan pa, kinahanglan ka mag-amping sa kini nga teknik tungod kay ang mga panagna dali ra kaayo
mahimong mahimong sayop ug modala sa sistema sa paghimo sa mas grabe nga mga desisyon kay sa
mahimong walay kahibalo sa tanan.

MLFQ: Sukaranan nga mga Lagda

Atong tan-awon ang sukaranang mga lagda sa MLFQ algorithm. Ug bisan pa sa pagpatuman niini nga algorithm
Adunay ubay-ubay, ang sukaranan nga mga pamaagi parehas.
Sa pagpatuman nga atong tan-awon, ang MLFQ adunay daghan
lahi nga mga pila, nga ang matag usa adunay lahi nga prayoridad. Bisan kanus-a,
usa ka buluhaton nga andam na alang sa pagpatuman anaa sa usa ka pila. Gigamit sa MLFQ ang mga prayoridad,
sa pagdesisyon kung unsang buluhaton ang daganan alang sa pagpatay, i.e. buluhaton uban sa mas taas
prayoridad (buhat gikan sa pila nga adunay labing taas nga prayoridad) ilunsad una
pila.
Siyempre, mahimong adunay labaw pa sa usa ka buluhaton sa usa ka gihatag nga pila, busa
para parehas silag priority. Sa kini nga kaso, ang mekanismo gamiton
RR sa pag-iskedyul sa usa ka run sa taliwala niini nga mga buluhaton.
Sa ingon nakaabut kami sa duha ka sukaranan nga mga lagda alang sa MLFQ:

  • Rule1: Kung priority(A) > Priority(B), ang buluhaton A ilusad (B dili)
  • Rule2: Kung ang priority(A) = Priority(B), ang A&B gisugdan gamit ang RR

Base sa ibabaw, ang yawe nga mga elemento sa pagplano sa MLFQ
mga prayoridad. Imbes nga hatagan ug fixed priority ang matag usa
tahas, gibag-o sa MLFQ ang iyang prayoridad depende sa naobserbahan nga pamatasan.
Pananglitan, kung ang usa ka buluhaton kanunay nga naglabay sa trabaho sa CPU samtang naghulat sa input sa keyboard,
Ipadayon sa MLFQ nga taas ang priority sa proseso kay ingon ana
usa ka interactive nga proseso kinahanglan nga molihok. Kung, sa kasukwahi, ang buluhaton kanunay ug
naggamit sa CPU pag-ayo sa taas nga panahon, ang MLFQ mopaubos niini
usa ka prayoridad. Sa ingon, tun-an sa MLFQ ang pamatasan sa mga proseso samtang nagdagan
ug paggamit sa mga pamatasan.
Magdrowing kita og usa ka pananglitan kung unsa ang hitsura sa mga pila sa usa ka punto
oras ug dayon makakuha ka usa ka butang nga sama niini:
Mga Operating System: Tulo ka Sayon nga Piraso. Bahin 5: Pagplano: Multi-Level Feedback Queue (paghubad)

Niini nga laraw, 2 ka proseso A ug B ang anaa sa pinakataas nga priority queue. Proseso
Ang C naa sa tunga-tunga, ug ang proseso D naa sa katapusan sa pila. Sumala sa ibabaw
Sumala sa mga paghubit sa MLFQ algorithm, ang scheduler mopatuman lamang sa mga buluhaton nga adunay pinakataas
prayoridad sumala sa RR, ug ang mga buluhaton C, D mahimong walay trabaho.
Natural lang, ang usa ka static snapshot dili makahatag ug kompletong hulagway kung giunsa ang MLFQ molihok.
Importante nga masabtan kung giunsa ang pagbag-o sa litrato sa paglabay sa panahon.

Pagsulay 1: Unsaon pag-usab sa prayoridad

Niini nga punto kinahanglan nimo nga magdesisyon kung giunsa pagbag-o sa MLFQ ang lebel sa prayoridad
mga buluhaton (ug sa ingon ang posisyon sa buluhaton sa pila) samtang kini nagpadayon sa iyang siklo sa kinabuhi. Kay
kini gikinahanglan aron mahinumduman ang workflow: usa ka piho nga kantidad
interactive nga mga buluhaton nga adunay mubu nga runtime (ug sa ingon kanunay nga pagpagawas
CPU) ug daghang dugay nang mga buluhaton nga naggamit sa CPU sa tanan nilang oras sa pagtrabaho, samtang
Ang oras sa pagtubag dili hinungdanon alang sa ingon nga mga buluhaton. Ug niining paagiha mahimo nimo ang imong una nga pagsulay
ipatuman ang MLFQ algorithm uban sa mosunod nga mga lagda:

  • Rule3: Kung ang usa ka buluhaton mosulod sa sistema, kini ibutang sa pila nga adunay labing taas
  • prayoridad.
  • Rule4a: Kung ang usa ka buluhaton naggamit sa tibuuk nga bintana sa oras nga gigahin niini, nan kini
  • gipakunhod ang prayoridad.
  • Rule4b: Kung ang usa ka Task magpagawas sa CPU sa dili pa matapos ang window sa oras niini, nan kini
  • nagpabilin nga adunay parehas nga prayoridad.

Pananglitan 1: Usa ka dugay nga buluhaton

Sama sa makita sa kini nga pananglitan, ang buluhaton sa pag-admit gitakda nga adunay labing kataas
prayoridad. Pagkahuman sa usa ka window sa oras nga 10ms, ang proseso gipaubos sa prayoridad
tigplano. Pagkahuman sa sunod nga window sa oras, ang buluhaton sa katapusan gipaubos sa
labing ubos nga prayoridad sa sistema, diin kini nagpabilin.
Mga Operating System: Tulo ka Sayon nga Piraso. Bahin 5: Pagplano: Multi-Level Feedback Queue (paghubad)

Pananglitan 2: Naghatag ug mubo nga buluhaton

Karon tan-awon nato ang usa ka pananglitan kung giunsa pagsulay sa MLFQ ang pagduol sa SJF. Sa niana
pananglitan, duha ka mga buluhaton: A, nga usa ka dugay nga buluhaton nga kanunay
nag-okupar sa CPU ug B, nga usa ka mubo nga interactive nga buluhaton. Ibutang ta
nga si A nagtrabaho na sa taudtaod nga panahon sa pag-abot sa buluhaton B.
Mga Operating System: Tulo ka Sayon nga Piraso. Bahin 5: Pagplano: Multi-Level Feedback Queue (paghubad)

Kini nga graph nagpakita sa mga resulta sa senaryo. Buluhaton A, sama sa bisan unsang buluhaton,
Ang paggamit sa CPU anaa sa pinakaubos. Ang buluhaton B moabot sa oras nga T=100 ug moabot
gibutang sa pinakataas nga priority queue. Tungod kay ang oras sa pag-opera niini mubo ra, nan
kini makompleto sa dili pa makaabot sa kataposang pila.

Gikan niini nga pananglitan, ang nag-unang tumong sa algorithm kinahanglan nga masabtan: tungod kay ang algorithm wala
nahibal-an kung ang usa ka buluhaton taas o mubo, unya una sa tanan iyang gihunahuna nga ang buluhaton
mubo ug naghatag kini sa labing taas nga prayoridad. Kung kini usa ka mubo nga buluhaton, nan
dali ra kini mahuman, kung dili, kung kini usa ka taas nga buluhaton, hinay kini nga molihok
priority down ug sa dili madugay mapamatud-an nga siya sa pagkatinuod usa ka taas nga buluhaton nga dili
nagkinahanglan ug tubag.

Pananglitan 3: Unsa man ang I/O?

Karon atong tan-awon ang usa ka pananglitan sa I/O. Ingon sa gipahayag sa lagda 4b,
kung ang usa ka proseso nagpagawas sa processor nga wala gigamit ang tanan nga oras sa processor,
unya kini nagpabilin sa parehas nga lebel sa prayoridad. Ang katuyoan niini nga lagda yano ra
- kung ang interactive nga trabaho naghimo sa daghang mga operasyon sa I/O, pananglitan, paghulat
gikan sa yawe sa gumagamit o pagpindot sa mouse, ang ingon nga buluhaton makapalingkawas sa processor
atubangan sa gigahin nga bintana. Dili namo gusto nga ipaubos ang prayoridad sa maong buluhaton,
ug sa ingon kini magpabilin sa samang lebel.
Mga Operating System: Tulo ka Sayon nga Piraso. Bahin 5: Pagplano: Multi-Level Feedback Queue (paghubad)

Kini nga pananglitan nagpakita kung giunsa ang algorithm molihok sa ingon nga mga proseso - interactive nga trabaho B, nga kinahanglan ra ang CPU sa 1ms sa wala pa ipatuman.
Proseso sa I/O ug dugay nang Job A, nga naggugol sa tanang oras niini gamit ang CPU.
Gipadayon sa MLFQ ang proseso B sa pinakataas nga prayoridad tungod kay nagpadayon kini
buhian ang CPU. Kung ang B usa ka interactive nga buluhaton, nan ang algorithm nakab-ot
Ang imong tumong mao ang pagpadagan sa mga interactive nga buluhaton sa madali.

Mga problema sa kasamtangan nga MLFQ algorithm

Sa miaging mga pananglitan nagtukod kami usa ka sukaranan nga bersyon sa MLFQ. Ug murag siya
maayo ug matinuoron ang trabaho niini, nga nag-apod-apod sa oras sa CPU nga patas taliwala
taas nga mga buluhaton ug pagtugot sa mubo o taas nga gidaghanon nga mga buluhaton
pagtrabaho sa I/O sa madali. Ikasubo, kini nga pamaagi adunay daghang
seryoso nga mga problema.
Una, ang problema sa kagutom: kung ang sistema adunay daghang interactive
mga buluhaton, unya ilang ut-uton ang tanan nga oras sa processor ug sa ingon dili usa sa dugay nga panahon
ang buluhaton dili mahimo nga ipatuman (sila gigutom).

Ikaduha, ang mga maalamon nga tiggamit makasulat sa ilang mga programa aron
buang ang scheduler. Ang pagpanglimbong anaa sa pagbuhat sa usa ka butang aron mapugos
Ang scheduler naghatag sa proseso og dugang nga oras sa CPU. Algorithm nga
nga gihulagway sa ibabaw medyo bulnerable sa parehas nga mga pag-atake: sa wala pa ang window sa oras hapit na
natapos, kinahanglan nimo nga maghimo usa ka operasyon sa I/O (sa uban, bisan unsa pa nga file)
ug sa ingon buhian ang CPU. Ang ingon nga pamatasan magtugot kanimo nga magpabilin sa parehas
ang pila mismo ug makakuha usab usa ka mas dako nga porsyento sa oras sa CPU. Kung buhaton nimo
husto kini (pananglitan, ipatuman ang 99% sa oras sa bintana sa wala pa buhian ang CPU),
ang ingon nga buluhaton mahimo ra nga magmonopoliya sa processor.

Sa katapusan, ang usa ka programa mahimong magbag-o sa pamatasan niini sa paglabay sa panahon. Kadtong mga buluhaton
nga gigamit ang CPU mahimong interactive. Sa among pananglitan, parehas
Ang mga buluhaton dili makadawat sa pagtambal nga angay kanila gikan sa scheduler sama sa uban
(Inisyal) interactive nga mga buluhaton.

Pangutana alang sa mamiminaw: unsa nga mga pag-atake sa scheduler ang mahimo sa modernong kalibutan?

Pagsulay 2: Pagdugang sa prayoridad

Atong sulayan nga usbon ang mga lagda ug tan-awon kung makalikay ba kita sa mga problema
pagpuasa. Unsa ang atong mahimo aron masiguro nga kini adunay kalabutan
Ang mga buluhaton sa CPU makakuha sa ilang oras (bisan kung dili dugay).
Ingon usa ka yano nga solusyon sa problema, mahimo nimong isugyot matag karon ug unya
ipataas ang prayoridad sa tanan nga mga buluhaton sa sistema. Adunay daghang mga paagi
Aron makab-ot kini, atong sulayan ang pagpatuman sa usa ka butang nga yano isip pananglitan: paghubad
ang tanan nga mga buluhaton gihatagan dayon sa labing taas nga prayoridad, busa ang bag-ong lagda:

  • Lagda5: Human sa usa ka panahon S, ibalhin ang tanang buluhaton sa sistema ngadto sa pinakataas nga pila.

Ang among bag-ong lagda nagsulbad sa duha ka problema sa usa ka higayon. Una, ang mga proseso
gigarantiyahan nga dili gutomon: ang mga buluhaton nga naa sa labing taas nga prayoridad bahinon
Ang oras sa CPU sumala sa RR algorithm ug sa ingon ang tanan nga mga proseso makadawat
oras sa CPU. Ikaduha, kung ang pipila ka proseso nga gigamit kaniadto
ang processor ra ang mahimong interactive, magpabilin kini sa pila nga adunay labing kataas
prayoridad human makadawat sa usa ka higayon nga pagtaas sa prayoridad ngadto sa pinakataas.
Atong tan-awon ang usa ka pananglitan. Niini nga senaryo, hunahunaa ang usa ka proseso nga gigamit
Mga Operating System: Tulo ka Sayon nga Piraso. Bahin 5: Pagplano: Multi-Level Feedback Queue (paghubad)

CPU ug duha ka interactive, mubu nga proseso. Sa wala sa numero, ang numero nagpakita sa kinaiya nga walay prayoridad nga promosyon, ug sa ingon ang dugay na nga buluhaton nagsugod sa pagkagutom human sa duha ka interactive nga mga buluhaton moabut sa sistema. Sa numero sa tuo, ang usa ka pagtaas sa prayoridad gihimo matag 50ms ug sa ingon ang tanan nga mga proseso gigarantiyahan nga makadawat sa oras sa CPU ug ilunsad matag karon ug unya. Ang 50ms sa kini nga kaso gikuha ingon usa ka pananglitan; sa tinuud kini nga numero labi ka taas.
Dayag nga, ang pagdugang sa periodic nga pagtaas sa oras nga gipadulngan sa S
usa ka lohikal nga pangutana: unsa nga kantidad ang kinahanglan itakda? Usa sa gipasidunggan
Ang mga inhenyero sa sistema nga si John Ousterhout nagtawag sa ingon nga gidaghanon sa mga sistema nga voo-doo
makanunayon, tungod kay sila sa usa ka paagi nanginahanglan itom nga salamangka alang sa husto
nagpasundayag. Ug, sa walay palad, ang S adunay ingon nga baho. Kung imong gibutang ang bili usab
dako - taas nga mga buluhaton magsugod sa kagutom. Ug kung imong gibutang ang kantidad nga ubos kaayo,
Ang mga interactive nga buluhaton dili makadawat sa tukma nga oras sa CPU.

Paningkamot 3: Mas Maayo nga Accounting

Karon aduna kitay laing problema nga sulbaron: unsaon nga dili
tugoti ang atong scheduler nga mailad? Ang mga tawo nga mabasol niini nga posibilidad mao
mga lagda 4a, 4b, nga nagtugot sa usa ka trabaho sa pagpabilin sa prayoridad, pagpalingkawas sa processor
sa dili pa matapos ang gitakdang oras. Unsaon pag-atubang niini?
Ang solusyon sa kini nga kaso mahimong giisip nga usa ka mas maayo nga accounting sa oras sa CPU sa matag usa
lebel sa MLFQ. Imbes kalimtan ang oras nga gigamit sa programa
processor alang sa gigahin nga panahon, kini kinahanglan nga tagdon ug maluwas. Pagkahuman
nahurot na sa proseso ang gigahin nga oras niini, kinahanglan nga ipaubos kini sa sunod
lebel sa prayoridad. Karon dili igsapayan kung giunsa paggamit sa proseso ang oras niini - kung giunsa
kanunay nga pag-compute sa processor o ingon sa usa ka gidaghanon sa mga tawag. Sa ingon,
lagda 4 kinahanglan nga isulat pag-usab sa mosunod nga porma:

  • Lagda4: Human magamit sa usa ka buluhaton ang gigahin nga oras niini sa kasamtangang pila (bisan pila ka beses nga gibuhian ang CPU), ang prayoridad sa kana nga buluhaton gipaubos (kini naglihok sa pila).

Atong tan-awon ang usa ka pananglitan:
Mga Operating System: Tulo ka Sayon nga Piraso. Bahin 5: Pagplano: Multi-Level Feedback Queue (paghubad)Β»

Gipakita sa numero kung unsa ang mahitabo kung sulayan nimo nga limbongan ang scheduler, sama sa
kung kini uban sa miaging mga lagda 4a, 4b ang resulta sa wala makuha. Malipayon nga bag-o
ang lagda mao ang resulta sa tuo. Sa wala pa ang proteksyon, ang bisan unsang proseso makatawag sa I/O sa dili pa mahuman ug
sa ingon modominar sa CPU, human makapahimo sa pagpanalipod, sa walay pagtagad sa kinaiya
I/O, mobalhin gihapon siya sa pila ug sa ingon dili makahimo sa dili matinud-anon
pagkuha sa mga kapanguhaan sa CPU.

Pagpauswag sa MLFQ ug uban pang mga problema

Uban sa mga kalamboan sa ibabaw moabut ang bag-ong mga problema: usa sa mga nag-unang
Mga pangutana - kung giunsa ang pag-parameter sa ingon nga scheduler? Mga. Pila ra dapat
mga pila? Unsa ang kinahanglan nga gidak-on sa bintana sa programa sulod sa pila? Giunsa
Ang prayoridad sa programa kinahanglan kanunay nga dugangan aron malikayan ang kagutom ug
tagda ang kausaban sa kinaiya sa programa? Walay yano nga tubag niini nga mga pangutana
tubag ug mga eksperimento lang nga adunay mga load ug sunod nga configuration
planner mahimong mosangpot sa pipila ka makatagbaw nga balanse.

Pananglitan, kadaghanan sa mga pagpatuman sa MLFQ nagtugot kanimo sa pag-assign og lain-laing
mga agwat sa oras alang sa lainlaing mga pila. Kasagaran ang taas nga prayoridad nga pila
mubo nga mga agwat ang gireseta. Kini nga mga pila naglangkob sa mga interactive nga buluhaton,
Ang pagbalhin tali sa kung diin medyo sensitibo ug kinahanglan nga 10 o mas ubos
ms. Sa kasukwahi, ang ubos nga prayoridad nga mga pila naglangkob sa dugay na nga mga buluhaton nga gigamit
CPU. Ug sa kini nga kaso, ang taas nga mga agwat sa panahon mohaum kaayo (100ms).
Mga Operating System: Tulo ka Sayon nga Piraso. Bahin 5: Pagplano: Multi-Level Feedback Queue (paghubad)

Sa kini nga pananglitan adunay 2 nga mga buluhaton nga nagtrabaho sa taas nga prayoridad nga pila 20
ms, gibahin sa 10ms windows. 40ms sa tunga nga pila (20ms window) ug sa ubos nga prayoridad
Ang window sa queue time nahimong 40ms diin ang mga buluhaton nakakompleto sa ilang trabaho.

Ang pagpatuman sa Solaris OS sa MLFQ usa ka klase sa time-sharing schedulers.
Ang tigplano maghatag ug usa ka set sa mga lamesa nga naghubit sa eksakto kung unsa kini kinahanglan
ang prayoridad sa proseso nagbag-o sa dagan sa kinabuhi niini, kung unsa ang kinahanglan nga gidak-on
gigahin nga bintana ug kung unsa ka sagad kinahanglan nimo nga ipataas ang mga prayoridad sa buluhaton. Administrator
Ang mga sistema mahimong makig-uban sa kini nga lamesa ug hinungdan nga molihok ang scheduler
lahi. Sa kasagaran, kini nga lamesa adunay 60 ka mga pila nga adunay hinay nga pagtaas
gidak-on sa bintana gikan sa 20ms (taas nga prayoridad) ngadto sa pipila ka gatus ka ms (ubos nga prayoridad), ug
uban usab ang pagpausbaw sa tanang buluhaton kausa kada segundo.

Ang ubang mga tigplano sa MLFQ wala mogamit ug lamesa o bisan unsang espesipiko
mga lagda nga gihulagway niini nga lecture, sa sukwahi, sila kalkulado prayoridad sa paggamit
mga pormula sa matematika. Pananglitan, ang FreeBSD scheduler naggamit ug pormula para sa
kuwentaha ang kasamtangang prayoridad sa usa ka buluhaton base sa kung unsa kadugay ang proseso
gigamit nga CPU. Dugang pa, ang paggamit sa CPU madunot sa paglabay sa panahon, ug uban pa
Busa, ang pagdugang sa prayoridad mahitabo nga medyo lahi kaysa sa gihulagway sa ibabaw. Tinuod kini
gitawag nga decay algorithms. Sukad sa bersyon 7.1, ang FreeBSD migamit sa ULE scheduler.

Sa katapusan, daghang mga scheduler ang adunay ubang mga bahin. Pananglitan, ang pipila
Ang mga scheduler nagreserba sa pinakataas nga lebel alang sa operasyon sa operating system ug sa ingon
Busa, walay proseso sa user ang makadawat sa pinakataas nga prayoridad sa
sistema. Ang ubang mga sistema nagtugot kanimo sa paghatag tambag aron makatabang
ang tigplano makahimo sa hustong pagtakda sa mga prayoridad. Pananglitan, gamit ang command nindot
mahimo nimong madugangan o mapakunhod ang prayoridad sa usa ka buluhaton ug sa ingon madugangan o
pagpakunhod sa kahigayonan sa programa sa paggamit sa oras sa CPU.

MLFQ: Summary

Gihulagway namo ang pamaagi sa pagplano nga gitawag og MLFQ. Iyang pangalan
gilakip sa prinsipyo sa operasyon - kini adunay daghang mga pila ug gigamit ang feedback
aron mahibal-an ang prayoridad sa buluhaton.
Ang katapusang porma sa mga lagda mao ang mosunod:

  • Lagda1: Kung priority(A) > Priority(B), ang buluhaton A ilusad (B dili)
  • Lagda2: Kung ang priority(A) = Priority(B), ang A&B gisugdan gamit ang RR
  • Lagda3: Kung ang usa ka buluhaton mosulod sa sistema, kini ibutang sa pinakataas nga priority queue.
  • Lagda4: Human magamit sa usa ka buluhaton ang gigahin nga oras niini sa kasamtangang pila (bisan pila ka beses nga gibuhian ang CPU), ang prayoridad sa kana nga buluhaton gipaubos (kini naglihok sa pila).
  • Lagda5: Human sa usa ka panahon S, ibalhin ang tanang buluhaton sa sistema ngadto sa pinakataas nga pila.

Ang MLFQ makaiikag alang sa mosunod nga rason - imbes nga magkinahanglan og kahibalo mahitungod sa
kinaiya sa buluhaton nga abante, ang algorithm nagtuon sa nangagi nga kinaiya sa buluhaton ug mga set
mga prayoridad sumala niana. Busa, naningkamot siya sa paglingkod sa duha ka mga lingkuranan sa usa ka higayon - aron makab-ot ang pagka-produktibo alang sa gagmay nga mga buluhaton (SJF, STCF) ug sa matinud-anon nga pagdagan,
Mga trabaho sa pagkarga sa CPU. Busa, daghang mga sistema, lakip ang BSD ug ang ilang mga gigikanan,
Ang Solaris, Windows, Mac naggamit sa pipila ka porma sa algorithm isip scheduler
MLFQ isip baseline.

Dugang nga mga materyales:

  1. manpages.debian.org/stretch/manpages/sched.7.en.html
  2. en.wikipedia.org/wiki/Scheduling_(computing)
  3. pages.lip6.fr/Julia.Lawall/atc18-bouron.pdf
  4. www.usenix.org/legacy/event/bsdcon03/tech/full_papers/roberson/roberson.pdf
  5. chebykin.org/freebsd-process-scheduling

Source: www.habr.com

Idugang sa usa ka comment