Difference between revisions of "LU-LKP-B10:MD6"

From DiLab
Jump to: navigation, search
(New page: {{TocRight}} =MD= ===Mērķi=== * ===Uzdevums=== X ===Jāiesniedz=== * Jāiesniedz C programmas pirmkods un Makefile. * Visi iesniedzamie faili jāsapako arhīvā LKP_MD6_vards_uzvards...)
 
(MD)
 
(One intermediate revision by the same user not shown)
Line 3: Line 3:


===Mērķi===
===Mērķi===
Novērtēt dinamiskās atmiņas izdalīšanas algoritmu veiktspēju.
*


===Uzdevums===
===Uzdevums===
Darbs veicams studentu grupās, kas noteiktas lekcijas laikā.
X

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 fauilos rakstīti skaitļi, katrs savā rindā. Chunks definē sarakstu ar brīvo atmiņas bloku lielumiem. Sizes definē atmiņas pieprasījumus baitos.
md6 -c chunks -s sizes

Pieņemt, ka izdalītās atmiņas kopējais apjoms ir 1024B.

[http://en.wikipedia.org/wiki/Fragmentation_%28computer%29 Fragmentāciju] vērtē kā attiecību starp kopējo pieejamās atmiņas daudzumu un fragmentēto atmiņu. 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).

Testa faili atrodami šeit: http://jupiter.cs.fmf.lu.lv/kursi/lkp/2010/ (mem-frag-tests*)

Raksts par atmiņas fragmentāciju un algoritmiem atrodams [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.45.3382&rep=rep1&type=pdf šeit]


===Jāiesniedz===
===Jāiesniedz===


* Jāiesniedz C programmas pirmkods un Makefile.
* Jāiesniedz C programmas pirmkods un Makefile.
* Testa faili
* Esseja kur izklāstīti testa rezultati. Fails ''pdf'' formātā.
* Visi iesniedzamie faili jāsapako arhīvā LKP_MD6_vards_uzvards.tgz
* Visi iesniedzamie faili jāsapako arhīvā LKP_MD6_vards_uzvards.tgz
* Arhīva fails sūtāms pa epastu piekabē, ar sekojošu "Subject:" LKP MD6 vards uzvards
* Arhīva fails sūtāms pa epastu piekabē, ar sekojošu "Subject:" LKP MD6 vards uzvards
* E-pasta 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. Visu komandas dalībnieku sniegumam summā jābūt 100%.


===Vērtējums===
===Vērtējums===


Uzdevums tiks vērtēts sekojoši:
Uzdevums tiks vērtēts sekojoši:
# 50% - Korekts programmas kods
# 80% - Korektu ievaddatu apstrāde un pareiza rezultātu izdruka.
# 50% - Esseja ar rezultātiem.
# 20% - Nekorektu ievaddatu atpazīšana un kļūdas paziņojuma izdruka.


===Piemēri===
===Piemēri===


md6 -c chunks1 -s sizes1


===Derīga informācija===
===Derīga informācija===

* [http://www.opengroup.org/onlinepubs/009695399/functions/fgets.html fgets()]


* Ieteikums: izstrādājiet programmatūru pakāpeniski. Piemēram, vispirms ielasiet un izdrukājiet datus. Tad pievienojiet datu analīzi un reģistrēšanu savās datu struktūrās. Tad pievienojiet datu analīzi lai tos sakārtotu izdrukai. Testējiet vispirms uz pareiziem datiem. tad uz kļūdainiem datiem.
* Ieteikums: izstrādājiet programmatūru pakāpeniski. Piemēram, vispirms ielasiet un izdrukājiet datus. Tad pievienojiet datu analīzi un reģistrēšanu savās datu struktūrās. Tad pievienojiet datu analīzi lai tos sakārtotu izdrukai. Testējiet vispirms uz pareiziem datiem. tad uz kļūdainiem datiem.

Latest revision as of 20:45, 18 November 2010

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 fauilos rakstīti skaitļi, katrs savā rindā. Chunks definē sarakstu ar brīvo atmiņas bloku lielumiem. Sizes definē atmiņas pieprasījumus baitos.

md6 -c chunks -s sizes

Pieņemt, ka izdalītās atmiņas kopējais apjoms ir 1024B.

Fragmentāciju vērtē kā attiecību starp kopējo pieejamās atmiņas daudzumu un fragmentēto atmiņu. 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).

Testa faili atrodami šeit: http://jupiter.cs.fmf.lu.lv/kursi/lkp/2010/ (mem-frag-tests*)

Raksts par atmiņas fragmentāciju un algoritmiem atrodams šeit

Jāiesniedz

  • Jāiesniedz C programmas pirmkods un Makefile.
  • Testa faili
  • Esseja kur izklāstīti testa rezultati. Fails pdf formātā.
  • Visi iesniedzamie faili jāsapako arhīvā LKP_MD6_vards_uzvards.tgz
  • Arhīva fails sūtāms pa epastu piekabē, ar sekojošu "Subject:" LKP MD6 vards uzvards
  • E-pasta 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. Visu komandas dalībnieku sniegumam summā jābūt 100%.

Vērtējums

Uzdevums tiks vērtēts sekojoši:

  1. 50% - Korekts programmas kods
  2. 50% - Esseja ar rezultātiem.

Piemēri

md6 -c chunks1 -s sizes1

Derīga informācija

  • Ieteikums: izstrādājiet programmatūru pakāpeniski. Piemēram, vispirms ielasiet un izdrukājiet datus. Tad pievienojiet datu analīzi un reģistrēšanu savās datu struktūrās. Tad pievienojiet datu analīzi lai tos sakārtotu izdrukai. Testējiet vispirms uz pareiziem datiem. tad uz kļūdainiem datiem.

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.


Uz LKP kursa sākuma lapu.