Kolmas kodutöö - Salvestusruumi haldus
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 on lihtsuse huvides 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 48 plokiga
- Sisendiks on järjend failide loomise ja kustutamise sündmuste kohta, näiteks A,2;B,3;A,-;C,4;B,+3;D,5;E,15;C,-;F,5
- Järjendis iga paar tähistab faili loomist koos sisu kirjutamisega, kasvatamist või kustutamist
- Paari esimene element on unikaalne ühetäheline faili nimi
- Paari teine element on loodava faili suurus (lihtsa arvu korral), faili kasvatamisel lisatav plokkide arv (kujul +arv) või miinus sellenimelise faili kustutamiseks: A,5 tähendab 5-plokilise faili loomist, A,+2 tähendab failile A 2 ploki lisamist ning A,- tähendab A kustutamist (mitte osalist vähendamist)
- Võib eeldada, et mustris on kuni 10 sündmust
- Võib eeldada, et ühtki faili ei kustutata enne tema loomist
- Võib eeldada, et iga faili kustutatakse maksimaalselt 1 kord (kustutamisel kustutatakse ära kõik tema osad)
- 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 algoritmi tööd mõista)
- Kasutajal peab olema võimalus sisestada (sealhulgas paste) oma pöördusmuster
- 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?
- Lisaks simulatsioonile peab esitama vastuse küsimusele:
- Kummal viisil mõõdetud fragmenteeritus on pöörleva ketta jõudluskao iseloomustamiseks mõistlikum (põhjenda)?
Programmeerimiskeel ja raamistik on vabad.
Tähtaeg: 30.12.2020
Näitemustrile A,2;B,3;A,-;C,4;B,+3;D,5;E,15;C,-;F,5 vastav näidisväljund:
18. Kodutöö 3Solutions for this task can no longer be submitted.