8. feladat
Feladva dec. 07 -
13., 2009
Határidő jan. 16., 2010
Ütemezés szimulálása
Feltöltendő állomány(ok) neve: S08_nn_xxxxxxx_aa.c, ahol nn - feladat száma; xxxxxxx - felhasználó azonosítója a linux szerveren; (aa - az illető állomány funkcionalitásának valamilyen ismertető jegye több modul használata esetén)
Az alábbi feladatokból mindenki a sorszámának megfelelőt oldja meg. Az 1-8 feladatok szövege csupán a használt ütemező algoritmus milyenségét illetően tér el, a többi közös.
1-8 . Írjunk kliens-szerver rendszert, amelyik az ütemezést szimulálja
- kliens
- generálja (vagy megkapja paraméterként) a folyamat típusát (interaktív vagy kötegelt munka)
- várja a szerver válaszát, kiírja a folyamat azonosítóját és egy megfelelő üzenetet, hogy a szerver fogadja a kéréseit.
- generálja az igénylések számát (minden kliens többször fogja a vezérlést igényelni, változó időre), minden kéréshez új processzoridőt generál (processzoridő - azaz hány időegységre igényli a processzort), elküldi a kérést a szervernek, várja annak válaszát, kiírja az azonosítóját és a választ, majd küldi a következő kérést, és így tovább.
- miután elküldte az összes kérését, és az utolsó választ is kiírta, befejeződik.
- befejezéskor kiszámolja és kiírja, interaktív folyamat esetén az átlagos válaszidőt, kötegelt munka vagy rendszerfolyamat esetén pedig a fordulási időt
- szerver
- fogadja a kéréseket
- kiírja a kapott kéréseket, feltüntetve a kliens folyamatazonosítóját, illetve a folyamat típusát, visszaküld a kliensnek egy üzenetet, közölve, hogy várja a kliens kéréseit
- a beérkezett igényeket a megfelelő várakozási sor(ok)ba helyezi
- Ütemezi a következő folyamatot az alábbi algoritmus alapján:
1. Round Robin (időszelet: 2)
2. Round Robin (időszelet: 4)
3. Virtuális Round Robin (időszelet: 4) (megj.: feltételezzük, hogy az egymást követő kérések között a folyamat valamilyen I/O művelt miatt van blokálódva)
4. Shortest Process Next
5. Shortest Remaining Time Next
6. Highest Response Ratio Next
7. Feedback algoritmus (3 prioritási sor, mindenikben 2 az időszelet)
8. Feedback algoritmus (3 prioritási sor (1..3), az i. prioritási sorhoz rendelt időszelet 2i)
- kiírja a képernyőre az éppen aktív folyamatot és a várakozási sor(ok) tartalmát
- minden egyes folyamat esetén nyilvántartja a kérés érkezése óta eltelt időt
- amikor egy kliens kérését sikerült kielégítse (az sikerült megkapja a kért processzoridőt), üzenetet küld a kliensnek, melyen keresztül közli, hogy kérése teljesült, és elküldi a kérés érkezése óta eltelt időt.
-
Egy speciális üzenet esetén a szerver fejeződjön
be, törölve a használt erőforrásokat (vigyázzunk rá, hogy a még
nyilvántartásban szereplő kliensek előbb kapják meg a megfelelő
üzeneteket).
Segédanyag - lásd: a tantárgy honlapjára feltett fóliák (foliak.htm) -> 9. Ütemezés