LU-LSP-b:MD4

From DiLab
Revision as of 14:47, 29 October 2013 by Atis (talk | contribs)
Jump to: navigation, search

Contents

1. Uzrakstīt programmu, kas rezervē atmiņu (drīkst pēc tam neatbrīvot). Uzdevums līdzīgs PD#6, drīkst izmantot tā kodu.

2. Salīdzināt trīs dažādus atmiņas rezervācijas veidus:

  • Ar malloc() funkciju
  • Ar mmap() funkciju (lietojot to bez konkrētas atmiņas adreses norādīšanas, bez "apakšā esoša" faila, un tā, lai varētu rezervēto atmiņu lietot gan lasīšanai, gan rakstīšanai)
  • Ar sbrk() funkciju

Rezervēt atmiņu pa vienam megabaitam (= 1024*1024 baitu).

Katram veidam izpētīt:

  1. Kāds ir maksimālais atmiņas daudzums, ko tādā veidā var alocēt?
  2. Kāds programmas darbības laiks, ja tiek rezervēti 100 megabaiti atmiņas?

Kurš ir ātrākais veids šim kokrētajam lietojumam? Ar kuru veidu var rezervēt visvairāk atmiņas? Uzrakstīt 1-2 teikumu garu skaidrojumu - kāpēc tā?

Padoms. Laiku ērti ir mērīt ar programmu time. (Lai korekti interpretētu programmas dotos rezultātus,. jāsaskaitea kopā "system" un "user" laiks; pirmais atbilst laikam, kas pavadīts sistēmas izsaukumos, otrais: laikam, ko programma patērējusi izpildot pati savu kodu)


3. Izvēlēties vienu no rezervācijas veidiem, un izpētīt, kā uzrakstītajā programmā tiek izmantota statiskā atmiņa (tā atmiņa, kas ir rezervēta jau tās palaišanas brīdī). Ar programmu size vai objdump palīdzību noteikt:

  1. TEXT segmenta izmēru baitos
  2. DATA segmenta izmēru baitos
  3. BSS segmenta izmēru baitos

Iesūtīšana

Iesūtīt:

  1. programmas kodu (C failā)
  2. atbildes uz jautājumiem (e-pasta tekstā)

Uz LSP kursa sākuma lapu.