LU-LSP-b12:L07
Praktiskais darbs #7
1. Uzrakstīt programmu, kas alocē atmiņu (drīkst pēc tam neatbrīvot). Uzdevums līdzīgs PD#6, drīkst izmantot tā kodu.
2. Salīdzināt dažādus atmiņas alokācijas veidus. Katram veidam izpētīt,
- Kāds ir maksimālais atmiņas daudzums, ko tādā veidā var alocēt?
- Kāds programmas darbības laiks uz max daudzumu?
Laiku ieteicams mērīt ar programmu time. Lietošana - ja programma saucas pd7, tad
$ time ./pd7
Uzrakstīt secinājumus: savas hipotēzes "kāpēc tā notiek".
Allocēt atmiņu pa vienam megabaitam (= 1024*1024 baitu). Salīdzināt šādus veidus (doti koda fragmenti):
malloc():
void *p = malloc(MB); if (p == NULL) break;
mmap():
void *p = mmap(NULL, MB, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); if (p == (void *) -1) break;
sbrk():
void *p = sbrk(MB); if (p == (void *) -1) break;
3. Izpētīt, kā uzrakstītajā programmā tiek izmantota atmiņa tās palaišanas brīdī. Ar programmas objdump palīdzību vai citā veidā noteikt:
- .text segmenta izmēru baitos
- .data segmenta izmēru baitos
- .bss segmenta izmēru baitos
Iesūtīšana
Iesūtīt kodu uz kursa asistenta e-pastu, faila nosaukums LSP_PD7_Vards_Uzvards.c,
Analīzi iesūtīt vēstules tekstā.
Subject "LSP PD7 Vards Uzvards".