LU-LSP-b:MD5
MD
Mērķi
Novērtēt dinamiskās atmiņas izdalīšanas algoritmu veiktspēju.
Uzdevums
Darbs veicams studentu grupās, kas noteiktas lekcijas laikā.
Izveidot testa vidi dinamiskās atmiņas izdalīšanas algoritmiem. Vide ir programma, kam kā ieejas dati ir divi teksta faili "chunks" un "sizes". Abos failos rakstīti skaitļi, katrs savā rindā. "Chunks" definē sarakstu ar brīvo atmiņas bloku lielumiem. "Sizes" definē atmiņas pieprasījumus baitos.
md5 -c chunks -s sizes
Pieņemt, ka izdalītās atmiņas kopējais apjoms ir 1024 baiti.
Fragmentāciju vērtē kā attiecību starp kopējo pieejamās atmiņas daudzumu un fragmentēto atmiņu. (Uzmanību! Kontroldarba uzdevumā dotā fragmentācijas aprēķināšanas formula ir pārāk vienkāršota un nav tieši izmantojama šim uzdevumam!) Ja visi testa atmiņas pieprasījumi ietilpst atmiņā, tad testu rezultāti neatšķirsies, ja lietotas vienlīdzīgas datu struktūras atmiņas rezervēšanai. Toties, ja visi pieprasījumi nesaiet, tad uzskaitiet to apjomu kas nesaiet atmiņā lai salīdzinātu algoritmus.
Izvērtēt sekojošus algoritmus, un noteikt labāko pēc veiktspējas (ātrdarbības) un pēc fragmentācijas. Vērtējumam jānorāda konkrēti un salīdzināmi veiktspējas rezultāti katram algoritmam un katram testam.
- BestFit
- WorstFit
- FirstFit
- NextFit
- Jūsu alternatīvais risinājums (ja tāds ir).
Vairāki publiski pieejami testa failu komplekti atrodami šeit: http://jupiter.df.lu.lv/kursi/lsp/2013/mem-frag-tests/
Raksts par atmiņas fragmentāciju un algoritmiem atrodams šeit
Jāiesniedz
- Jāiesniedz:
- C programmas pirmkods un jūsu testa failu komplekts saarhivēts zip arhīvā ar nosaukumu "LSP_MD5_komandasnosaukums.zip"
- Eseja, kur izklāstīti testa rezultāti (fails pdf formātā) ar nosaukumu "LSP_MD5_komandasnosaukums.pdf"
- Rezultāti sūtāmi estudijas.lu.lv, iepriekš pa epastu ar subject "LSP MD5 komanda" uzrakstot komandas sastāvu un pašu izdomātu nosaukumu e-pasta tekstā, lai varu izveidot komandu iesniegšanas iespēju.
- Esejas tekstā jānorāda visi komandas dalībnieki, dalībnieku skaits, kā arī katra procentuālais ieguldījums, piemēram 50/100 nozīmē 50% no visa projekta paveica konkrētā persona. Visu komandas dalībnieku sniegumam summā jābūt 100%.
Vērtējums
Uzdevums tiks vērtēts sekojoši:
- 50% - Korekts programmas kods
- Komandrindas interfeiss
- First fit realizācija
- Next fit realizācija
- Best fit realizācija
- Worst fit realizācija
- Citu algoritmu realizācija, ja tāda ir
- Fragmentācijas mērījumi
- Laika mērījumi
- Komentāri kodā
- 50% - Eseja ar rezultātiem.
- Algoritmu apraksts
- Mērījumu / eksperimenta apraksts
- Fragmentācijas novērtējums un secinājumi
- Ātrdarbības novērtējums un secinājumi
- Kopējie secinājumi algoritmu izvēlei
- Rakstīt īsi, bet aptveroši! (Tā, lai visi punkti būtu pieminēti.)
Piemēri
md5 -c chunks1 -s sizes1
J&A (jautājumi un atbildes)
J: Uzdevums pārāk grūts, vai var pagarināt termiņu?
A: Noteiktais termiņš paliek spēkā. Iesaku risināt savlaicīgi, lai pietiek laika neparedzētu problēmu risināšanai.
J: Vai jārealizē arī atmiņas atbrīvošanas?
A. Nē, tas nav obligāti.
J: Vai dienesta informācija jāglabā dotajos chunkos?
A. Nē, "chunk" izmērs norāda izmantojamās brīvās atmiņas daudzumu. Brīvs "chunk" ar izmēru n vienmēr var tikt izmantots, lai rezervētu no 1 līdz n baitus atmiņas.
Uz LSP kursa sākuma lapu.