Ebben a cikkben megismerjük az ütemezési algoritmust, az úgynevezett körvonalas ütemezési algoritmust, mi az a kör-robin? Hogyan írjunk programot? Stb. Kezdjük.
Mi az a kör Robin ütemezése?
A Round Robin Scheduling egy ütemezési algoritmus, amelyet a rendszer a CPU kihasználtságának ütemezésére használ. Ez egy megelőző algoritmus. Minden kvantum nevű kéréshez van rögzített időszelet. A munkaütemező elmenti a jelenleg végrehajtott munka előrehaladását, és áttér a sorban lévő következő feladatra, amikor egy adott folyamat egy adott idő kvantumra fut.
mi az absztrakció a c ++ - ban
Egyetlen folyamat sem fogja sokáig tartani a CPU-t. A kapcsolást kontextuskapcsolónak nevezzük. Valószínűleg ez az egyik legjobb ütemezési algoritmus. Ezen algoritmus hatékonysága a kvantumértéktől függ.
KEREK ROBIN ÜTEMEZÉS ALGORITMUS
- Először van egy sorunk, ahol a folyamatok sorrendben kerülnek rendezésre.
- Az egyes folyamatok végrehajtásához kvantumértéket rendelünk.
- Az első folyamatot a kvantumérték végéig hajtják végre. Ezt követően egy megszakítás jön létre, és az állapot mentésre kerül.
- Ezután a CPU a következő folyamatra lép, és ugyanezt a módszert követi.
- Ugyanazokat a lépéseket ismételjük, amíg az összes folyamat véget nem ér.
Tekintsük a példakódot
#include int main () {int i, limit, total = 0, x, counter = 0, time_quantum int wait_time = 0, turnaround_time = 0, érkezési_idő [10], burst_time [10], temp [10] float average_wait_time, average_turnaround_time printf ('nAdja meg a folyamatok összes számát: t') scanf ('% d', & limit) x = határérték (i = 0 i0) {temp [i] = temp [i] - time_quantum total = total + time_quantum} if (temp [i] == 0 && számláló == 1) {x-- printf ('nProcess [% d] tt% dtt % dttt% d ', i + 1, sorozatidő [i], összesen - érkezési idő [i], összesen - érkezési idő [i] - sorozat - idő [i]) várakozási idő = várakozási idő + összes - érkezési_ idő [i] - sorozat - idő [i] átfutási idő = átfutási idő + összes - érkezési_idő [i] számláló = 0} ha (i == korlát - 1) {i = 0} más, ha (érkezési_idő [i + 1]<= total) { i++ } else { i = 0 } } average_wait_time = wait_time * 1.0 / limit average_turnaround_time = turnaround_time * 1.0 / limit printf('nnAverage Waiting Time:t%f', average_wait_time) printf('nAvg Turnaround Time:t%fn', average_turnaround_time) return 0 }
KIMENET:
MAGYARÁZAT:
A fenti kódban arra kérjük a felhasználót, hogy adja meg az egyes folyamatok számát, érkezési idejét és tört sorozat idejét. Ezután a körbefutó algoritmus segítségével kiszámoljuk a várakozási időt és a fordulási időt.
A fő rész itt a fordulási idő és a várakozási idő kiszámítása. A megfordulási időt a teljes teljes idő összeadásával és az érkezési idő levonásával számítják ki.
mi a különbség az absztrakt osztály és az interfész között
A várakozási időt úgy számítják ki, hogy levonják az érkezési és a sorozatidőt az összesből, és hozzáadják t0 a várakozási időt. Így történik a körmérkőzés ütemezése.
ELŐNYÖK:
- Alacsony rezsi a döntéshozatalhoz.
- Más algoritmusokkal ellentétben minden folyamatnak azonos prioritást biztosít.
- Az éhezés ritkán fordul elő ebben a folyamatban.
HÁTRÁNYOK:
- A rendszer hatékonysága csökken, ha a kvantumérték alacsony, mivel gyakori váltás történik.
- A rendszer nem reagálhat, ha a kvantumérték magas.
Ezzel a cikk végére értünk.
Remélem, hogy ezt informatívnak és hasznosnak találta, kövesse nyomon további hasonló témájú oktatóanyagokat. Megtekintheti edzésprogramunkat to alapos ismereteket szerezhet a jQuery-ről, annak különféle alkalmazásaival együtt élő online képzéshez 24/7 támogatással és egész életen át elérhető hozzáféréssel.Végezze el a fenti kódot különböző karakterláncokkal és módosításokkal. Most már jól értjük a mutatóval kapcsolatos összes kulcsfontosságú fogalmat.
mi a big data hadoop
Van egy kérdésünk? Említse meg őket ennek a blognak a megjegyzés rovatában, és mi kapcsolatba lépünk Önnel.