Neljas kodutöö
Kirjutada graafilise kasutajaliidesega simulaator failisüsteemi ühetasemelise indekseeritud paigutuse visualiseerimiseks.
- Vaja on näidata paigutust iga sammu järel.
- Paigutusest peab olema aru saada, mis alad kuuluvad missugusele failile.
- Vaja on simuleerida ainult andmeplokkide paigutust (indeksid ise on kusagil väljaspool ja neile pole vaja plokke hõivata).
- Faili plokid ei pea paiknema sidusalt, selleks on meil kusagil mõtteline indeks.
- Uue loodava faili plokkideks võetakse alati esimesed vabad plokid.
- Kasutada on ketas 50 plokiga
- Sisendiks on järjend failide loomise ja kustutamise sündmuste kohta, näiteks A,2;B,3;A,-;C,4;D,5;B,-;E,15
- Järjendis iga paar tähistab faili loomist või kustutamist
- Paari esimene element on faili nimi
- Paari teine element on loodava faili suurus (arvu korral) või miinus sellenimelise faili kustutamiseks: A,- tähendab A kustutamist
- Eeldame, et mustris on kuni 10 sündmust ja iga loodav fail on unikaalse ühetähelise nimega
- Võib eeldada, et ühtki faili ei kustutata enne tema loomist
- Võib eeldada, et iga faili kustutatakse maksimaalselt 1 kord
- Kui mingil sammul uue faili jaoks ruumi ei jätku, tuleb sellest teada anda ja töö katkestada
- Kasutaja saab valida 3 valmis pöördusmustri vahel (kolm päringute näitejärjekorda, mis aitavad algoritmide tööd mõista)
- Kasutajal peab olema võimalus sisestada (sealhulgas paste) oma pöördusmuster
- Eeldame, et faili pikkust pole pärast loomist vaja muuta
- Visualiseering peab kajastama ketta seisu iga loomise või kustutamise sündmuse järel ning iga kettaploki kohta peab olema aru saada, mis failile see kuulub (või on vaba)
- Simulatsiooni lõpuks peab lisaks välja arvutama ja kasutajale näitama lõppseisu fragmenteerituse kahel erineval viisil:
- Kui suur protsent allesjäänud failidest on fragmenteerunund (koosnevad rohkem kui ühest fragmendist)?
- Kui suur protsent kasutatud ruumist kuulub fragmenteerunud failidele?
- Küsimus: kummal viisil mõõdetud fragmenteeritus on pöörleva ketta jõudluskao iseloomustamiseks mõistlikum (põhjenda)?
Programmeerimiskeel ja raamistik on vabad.
Tähtaeg: 28.12.2018
Näitemustrile A,2;B,3;A,-;C,4;D,5;B,-;E,15 vastav näidisväljund:
19. Kodutöö 4Solutions for this task can no longer be submitted.