http://andromeda.df.lu.lv/wiki/index.php?title=LU-LSP-b11:L07&feed=atom&action=history
LU-LSP-b11:L07 - Revision history
2024-03-29T10:57:57Z
Revision history for this page on the wiki
MediaWiki 1.31.0
http://andromeda.df.lu.lv/wiki/index.php?title=LU-LSP-b11:L07&diff=2942&oldid=prev
Atis: typos
2011-10-18T14:06:21Z
<p>typos</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Revision as of 14:06, 18 October 2011</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===Praktiskais darbs #7 - atmiņas alokācija ===</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===Praktiskais darbs #7 - atmiņas alokācija ===</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>1. Uzrakstīt programmu, <del class="diffchange diffchange-inline">ka </del>alocē atmiņu (drīkst to pēc tam neatbrīvot). Par pamatu var izmantot šo skeletu:</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>1. Uzrakstīt programmu, <ins class="diffchange diffchange-inline">kas </ins>alocē atmiņu (drīkst to pēc tam neatbrīvot). Par pamatu var izmantot šo skeletu:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>  #include <stdio.h></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>  #include <stdio.h></div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l23" >Line 23:</td>
<td colspan="2" class="diff-lineno">Line 23:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>  }</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>  }</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>2. Eksperimentāli noskaidrot, cik daudz atmiņas iespējams alocēt ''heap'' segmentā (var <del class="diffchange diffchange-inline">lieto </del>malloc()). Salīdziniet - vai un kā šis apjoms mainās, ja:</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>2. Eksperimentāli noskaidrot, cik daudz atmiņas iespējams alocēt ''heap'' segmentā (var <ins class="diffchange diffchange-inline">lietot </ins>malloc()). Salīdziniet - vai un kā šis apjoms mainās, ja:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>** Atmiņa tiek alocēta "vienā gabalā" (one chunk)</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>** Atmiņa tiek alocēta "vienā gabalā" (one chunk)</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>** Atmiņa tiek alocēta pa 1MB lieliem gabaliem (many chunks)</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>** Atmiņa tiek alocēta pa 1MB lieliem gabaliem (many chunks)</div></td></tr>
</table>
Atis
http://andromeda.df.lu.lv/wiki/index.php?title=LU-LSP-b11:L07&diff=2941&oldid=prev
Atis at 12:14, 18 October 2011
2011-10-18T12:14:34Z
<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Revision as of 12:14, 18 October 2011</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l44" >Line 44:</td>
<td colspan="2" class="diff-lineno">Line 44:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>5. Neobligāts papilduzdevums. Pieņemsim, ka kodā ir definēta konstante MAX_MEM_SIZE. Ierobežot programmas tālākajā izpildes gaitā maksimāli alocēto atmiņas apjomu ar šo konstanti.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>5. Neobligāts papilduzdevums. Pieņemsim, ka kodā ir definēta konstante MAX_MEM_SIZE. Ierobežot programmas tālākajā izpildes gaitā maksimāli alocēto atmiņas apjomu ar šo konstanti.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">==== Iesūtīšana ====</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Risinājumus nosūtīt uz kursa asistenta e-pastu, '''rakstot atbildes vēstules tekstā'''. E-pasta "Subject" obligāti iekļaut burtus "LSP".</ins></div></td></tr>
</table>
Atis
http://andromeda.df.lu.lv/wiki/index.php?title=LU-LSP-b11:L07&diff=2939&oldid=prev
Atis: New page: ===Praktiskais darbs #7 - atmiņas alokācija === 1. Uzrakstīt programmu, ka alocē atmiņu (drīkst to pēc tam neatbrīvot). Par pamatu var izmantot šo skeletu: #include <stdio.h> ...
2011-10-18T12:13:04Z
<p>New page: ===Praktiskais darbs #7 - atmiņas alokācija === 1. Uzrakstīt programmu, ka alocē atmiņu (drīkst to pēc tam neatbrīvot). Par pamatu var izmantot šo skeletu: #include <stdio.h> ...</p>
<p><b>New page</b></p><div>===Praktiskais darbs #7 - atmiņas alokācija ===<br />
<br />
1. Uzrakstīt programmu, ka alocē atmiņu (drīkst to pēc tam neatbrīvot). Par pamatu var izmantot šo skeletu:<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
#include <string.h><br />
<br />
#define SIZE ...<br />
<br />
#define ALLOC(size) ...<br />
<br />
#define FILL(ptr) ...<br />
<br />
int main(void)<br />
{<br />
printf("allocating...\n");<br />
<br />
...<br />
<br />
printf("done\n");<br />
return 0;<br />
}<br />
<br />
2. Eksperimentāli noskaidrot, cik daudz atmiņas iespējams alocēt ''heap'' segmentā (var lieto malloc()). Salīdziniet - vai un kā šis apjoms mainās, ja:<br />
** Atmiņa tiek alocēta "vienā gabalā" (one chunk)<br />
** Atmiņa tiek alocēta pa 1MB lieliem gabaliem (many chunks)<br />
* Secinājumi?<br />
<br />
3. Salīdziniet programmu ātrdarbību:<br />
** 1. variants - atmiņa tiek alocēta, bet netiek izmantota.<br />
** 2. variants - atmiņa tiek alocēta un tiek izmantota (piemēram, aizpildīta ar 0)<br />
* Salīdziniet uz 100MB atmiņas alokāciju. Ieteicams izpildes laika novērtēšanai izmantot programmu "time".<br />
Izmantojot proc failusistēmu, novērtējiet (1) kopējās alocētās virtuālās atmiņas (VmSize), (2) ''resident set size'' izmērus (VmRSS) abos gadījumos. Secinājumi?<br />
<br />
4. Eksperimentāli noskaidrot, cik daudz atmiņas iespējams alocēt stekā. Padoms - atmiņas alokācijai stekā izmantot funkciju alloca()!<br />
* Kas notiks, ja programmas darbības laikā tiks izsaukta šāda funkcija:<br />
void f() {<br />
char array[100 * 1024 * 1024];<br />
memset(array, 0, sizeof(array));<br />
}<br />
* Izskaidrot, kāpēc. Kas mainītos, ja mainīgais array būtu deklarēts kā "static"?<br />
<br />
<br />
5. Neobligāts papilduzdevums. Pieņemsim, ka kodā ir definēta konstante MAX_MEM_SIZE. Ierobežot programmas tālākajā izpildes gaitā maksimāli alocēto atmiņas apjomu ar šo konstanti.</div>
Atis