ciklusos helye

A tanulmány az előző példában megbeszélések ütemezése programot várhatóan elme lehet a következő módon javítani: amikor a végén a tömb, mely tárolja az összes, nem tudja megállítani a programot, és állítsa be a behelyezés index (SPOS) és kitermelése (RPO) úgy, hogy rámutattak, hogy az elején a tömb. Ez kerül a tetszőleges számú queue elemek amennyiben időben lehívása. Ez a végrehajtási szakasz az úgynevezett ciklikus sorban. mivel a tömböt használjuk, mintha ez egy nem-lineáris listát és a gyűrű.






Szervezni ütemező ciklikus viszont qstore () és qretrieve () kell újraírni az alábbiak szerint:

Ebben a változatban minden túltöltött felvétel közben az index előtt közvetlenül kitermelése az index; különben még mindig van, hogy helyezze be az eseményt. A várólista üres, amikor RPO egyenlő SPOS.

Talán a leggyakrabban használt ciklikus sorban operációs rendszer tárolja olyan információt, amely a lemezre, és a fájlt vagy a konzolra. A ciklikus sorban is használják a valós idejű feldolgozás programok továbbra is meg kell feldolgozni az információt, puffer míg kérelmek I / O Sok szövegszerkesztők használja ezt a technikát során formázás a bekezdés vagy a vonal igazítását. A szövegbevitel nem jelenik meg a képernyőn, amíg a folyamat befejeződik. Ehhez az alkalmazás ellenőrzi a billentyűket, miközben más feladatokat. Ha bármelyik gombot megnyomja, a beírt karaktert gyorsan helyezzük a sorban, és a folyamat folytatódik. Annak befejezésekor, a karakterek kivont a sorban.






Hogy érzi magát a gyakorlatban ez a használat a gyűrűs robban, nézzük meg egy egyszerű program, amely két folyamatokat. Az első folyamat program megjelenít egy számot 1-től 000 A második folyamat 32 helyen a karakter a sorban, mivel ezek nélkül belépett megjeleníti azokat a képernyőn, amíg a felhasználó rákattint . Input karakterek nem jelennek meg, mint az első eljárás elsőbbséget élvez kijelzőn. megnyomása után karakter a sorban letöltődik és nyomtatott.

A program működik, a fent leírtak szerint, meg kell használni a két funkciót, amelyek nincsenek definiálva a szabványos C nyelvet: _kbhit () és _getch (). _kbhit () függvény igaz, ha a gomb megnyomása, a billentyűzet; máskülönben hamis. _getch () függvény olvas be karaktereket, de nem ismétli meg a képernyőn. A szabványos C nyelv nem egy függvény, hogy ellenőrizze az állam a billentyűzet vagy karakter olvasó nélkül jelenik meg a képernyőn, mert ezek a funkciók függ az operációs rendszer. Azonban a legtöbb könyvtárak, fordítóprogram funkciók e feladatok elvégzésére. Jelenleg itt van egy kis programot összeállítani a Microsoft fordító.




Kapcsolódó cikkek