http://andromeda.df.lu.lv/wiki/index.php?title=LU-LSP-b20&feed=atom&action=history
LU-LSP-b20 - Revision history
2024-03-29T08:04:20Z
Revision history for this page on the wiki
MediaWiki 1.31.0
http://andromeda.df.lu.lv/wiki/index.php?title=LU-LSP-b20&diff=9228&oldid=prev
Leo: Created page with "<big> '''Īssaites:''' Kalendārs | Uzdevumi | Resursi | </big> #{{LOCALDAY2}}.{{LOCALMONTH}}.{{padright:|2|{{LOCALYEAR}}..."
2021-01-28T20:02:10Z
<p>Created page with "<big> '''Īssaites:''' <a href="#Kalend.C4.81rs"> Kalendārs</a> | <a href="#Uzdevumi"> Uzdevumi</a> | <a href="#Resursi"> Resursi</a> | </big> #{{LOCALDAY2}}.{{LOCALMONTH}}.{{padright:|2|{{LOCALYEAR}}..."</p>
<p><b>New page</b></p><div><big><br />
'''Īssaites:'''<br />
[[#Kalendārs | Kalendārs]] | <br />
[[#Uzdevumi | Uzdevumi]] | <br />
[[#Resursi | Resursi]] | <br />
</big><br />
[[#{{LOCALDAY2}}.{{LOCALMONTH}}.{{padright:|2|{{LOCALYEAR}} }} | Šodiena: {{LOCALDAY2}}.{{LOCALMONTH}}.{{padright:|2|{{LOCALYEAR}} }}]] : <br />
[[#{{#expr:{{LOCALDAY2}}+1}}.{{LOCALMONTH}}.{{padright:|2|{{LOCALYEAR}} }} | Rītdiena: {{#expr:{{LOCALDAY2}}+1}}.{{LOCALMONTH}}.{{padright:|2|{{LOCALYEAR}} }}]]<br />
(ja ir lekcija)<br />
<br />
{{LUDFKurss|Linux sistēmas programmēšana|LSP|DatZ3122|2DAT3122}}<br />
<br />
* Pasniedzējs: Leo Seļāvo ''(epasts: vards.uzvards @ gmail.com)''<br />
<br />
* {{KursiGGroup|lu-lsp-b}}<br />
<br />
* Vērtējums = 15% praktiskie darbi, 25% mājas darbi, 10% dalība klasē, 20% KD1 un 30% KD2(eksāmens).<br />
<br />
* [[LSP kursa atsauksmes]] no iepriekšējiem gadiem.<br />
<br />
<br />
==== Praktisko un mājas darbu iesniegšana ==== <br />
* Mājas darbus iesniegt e-studijās vai darbu testēšanas serverī, atkarībā no darba specifikācijas.<br />
* Faila nosaukumam jābūt formā LSP_MD1_Vards_Uzvards.c (Mainot atbilstošo uzdevuma kodu un faila formātu pēc nepieciešamības)<br />
* Nevajag arhivēt failus, ja vien tas nav prasīts uzdevuma nosacījumos<br />
<br />
==== Praktisko darbu vērtēšanas kritēriji ====<br />
* Praktisko darbu mērķis ir nostiprināt un parādīt izpratni par apgūto vielu, attiecīgi darbi ir jārisina '''patstāvīgi''', tomēr jautājumu uzdošana pasniedzējam vai kolēģiem ir vēlama.<br />
* Maksimālo vērtējumu par praktisko darbu var saņemt, ja tas iesūtīts līdz praktisko darbu lekcijas beigām (vai brīdim, kad vienojamies, ka publiski apskatīsim PD risinājumu).<br />
* Pēc termiņa praktiskie darbi tiek pieņemti vēl tekošo nedēļu (līdz nākamās lekcijas sākumam) un tiks novērtēti, tomēr vairs ne ar maksimālo atzīmi. <br />
* Papildus praktiskajos darbos un lekcijās var izpelnīties "plusiņus" ar dalību diskusijās, unikālu risinājumu un ideju piedāvāšanu, trāpīgu jautājumu uzdošanu, atbildēšanu uz kolēģu jautājumiem u.t.t., kas savukārt palīdzēs savākt +10% no kopējā vērtējuma "par darbu klasē".<br />
<br />
==== Mājas darbu vērtēšanas kritēriji ====<br />
* Mājas darbu iesniegšanas termiņa laiks ir attiecīgajā datumā 20:00<br />
* Ja darbs tiek iesniegts ar novēlošanos (kaut vai 1 sekundi!):<br />
** Tūdaļ pēc termiņa rezultāts tiek samazināts par '''50%''' <br />
** Nedēļu pēc termiņa darbi vairs netiek pieņemti.<br />
<br />
=Kalendārs=<br />
<br />
{| border=1 cellspacing=0 cellpadding=4 style = 'border-color: #ddd;'<br />
|-<br />
! Datums<br />
! Tēma, saturs<br />
! Uzdevumi<br />
|- style='vertical-align: top;'<br />
|<br />
====05.02.20====<br />
08:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>'''Ievads kursā'''</big><br />
|}<br />
* [https://www.dropbox.com/s/2c87i9k0vc3mthr/L00_Ievads.pdf?raw=1 Slaidi]<br />
<br />
<br />
Unix un Linux operētājsistēmu pamatkoncepcijas un vēsture. Linux sistēmprogrammētaja rīki (shell, gcc, make, manpages u.c.)<br />
<br />
Vispārīgs pārskats par valodu C.<br />
<br />
|<br />
* '''Uzdots: [[LU-LSP-b:MD0 | MD0]] mājas darbs - programmēšanas stils - izlasīt un ņemt vērā turpmākajos darbos.'''<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====06.02.20====<br />
14:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>''' '''</big><br />
|}<br />
<br />
<br />
[PD0] Praktiskais darbs #0:<br />
* Iekārtot darba vidi (linux, teksta redaktors, kompilators)<br />
* izveidot un pašiem nokompilēt ""Hello world"" C valodā<br />
* Iepazīties ar shell komandām un uzdot jautājumus par neskaidrībām: [[LU-LSP-B11:shell-cheatsheet | UNIX čaulas populārākās komandas un lietojumi]]<br />
* Lasīt [https://www.linux.com/what-is-linux Kas tas ir, Linux?] - tagad vai līdz nākamajai lekcijai<br />
* Lasīt [https://web.archive.org/web/20160417114016/http://www.physics.drexel.edu/students/courses/Comp_Phys/General/C_basics/#first C valodas pamācību] no Drexel universitātes.<br />
<br />
|<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====06.02.20====<br />
16:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>'''Datu struktūras un algoritmi valodā C.'''</big><br />
|}<br />
* [https://www.dropbox.com/s/cyebsiafqrkykcq/L01_C_data_algorithms.pdf?raw=1 Slaidi]<br />
<br />
<br />
C standarti, kompilācija, bibliotēkas, linkošana, skalārie un saliktie tipi (t.sk pointeri un masīvi), funkcijas, nosacījumi, cikli<br />
<br />
|<br />
* '''Uzdots: [[LU-LSP-b:MD1 | MD1]] mājas darbs - dzimtas koks.'''<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====12.02.20====<br />
08:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>''' '''</big><br />
|}<br />
<br />
<br />
[PD1] [[LU-LSP-b13:L01 | Praktiskais darbs #1]] - darbs ar tekstu.<br />
<br />
|<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====13.02.20====<br />
14:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>'''Darbs ar failiem.'''</big><br />
|}<br />
* [https://www.dropbox.com/s/1h0o1u3tjj0ph0m/L02_files.pdf?raw=1 Slaidi]<br />
<br />
<br />
Sistēmas izsaukumi un standarta bibliotēkas funkcijas faila ievadam un izvadam. Linux piedāvātās programmas darbam ar failu izvadu/ievadu (''cat, tail, head, less, telnet'' u.c.). Failu ievada un izvada ātrdarbības uzlabošana, buferi., ņemot vērā sistēmas arhitektūru.<br />
<br />
|<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====13.02.20====<br />
16:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>''' '''</big><br />
|}<br />
<br />
<br />
[PD2] [[LU-LSP-b13:L02 | Praktiskais darbs #2]] - failu kopēšana.<br />
<br />
|<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====19.02.20====<br />
08:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>'''Failu sistēma'''</big><br />
|}<br />
* [https://www.dropbox.com/s/mjo8zcjux7ygq5b/L03_file_system.pdf?raw=1 Slaidi]<br />
<br />
<br />
Faila izmēra noteikšana. Failu saites, stingrās un vājās (hard links, soft links). Failu glabāšana un pieeja operētājsistēmā. ''i-node'' jēdziens. Sistēmas izsaukums stat(). Direktoriju struktūra. Izsaukumi opendir(), readdir() un closedir().<br />
<br />
|<br />
* '''Uzdots: [[LU-LSP-b:MD3 | MD3]] mājas darbs - direktoriju koka apstaigāšana.'''<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====20.02.20====<br />
14:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>''' '''</big><br />
|}<br />
<br />
<br />
[PD3] [[LU-LSP-b13:L03 | Praktiskais darbs #3]] - direktoriju koka apstaigāšana.<br />
<br />
|<br />
* '''Termiņš: [[LU-LSP-b:MD1 | MD1]]'''<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====20.02.20====<br />
16:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>'''Failu piekļuves režīmi'''</big><br />
|}<br />
* [https://www.dropbox.com/s/tl0cjj17yn0p859/L04_more_files.pdf?raw=1 Slaidi]<br />
<br />
<br />
Faila piekļuves tiesību režīmi pie open() un umask. Failu un i-node izsaukumi: chmod(), link(), unlink(), remove(), rename(), symlink(), readlink(), utime(), mkdir(), rmdir(), chdir(), getcwd(). Programma rakstīšanai log failā. Log faili. Ekskluzīva rakstīšana ar open(...O_SYNC) un fcntl() metodēm.<br />
<br />
|<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====26.02.20====<br />
08:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>''' '''</big><br />
|}<br />
<br />
<br />
[PD4] [[LU-LSP-b13:L04 | Praktiskais darbs #4]] - programmas analīze.<br />
<br />
|<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====27.02.20====<br />
14:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>'''Atmiņas arhitektūra'''</big><br />
|}<br />
* [https://www.dropbox.com/s/si26ce9jnmrtspa/L05_memory_arch_stack.pdf?raw=1 Slaidi]<br />
<br />
<br />
Atmiņas arhitektūra. Virtuālā atmiņa. TEXT, DATA, HEAP un STACK segmenti. Koplietošanas atmiņa starp procesiem. Procedūru izsaukumi. Parametru nodošana caur steku. Steka satura analīze un piekļuve stekam.<br />
<br />
|<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====27.02.20====<br />
16:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>''' '''</big><br />
|}<br />
<br />
<br />
[PD_A] Praktiskajos darbos apskatīsim MD1.<br />
<br />
|<br />
* '''Uzdots: [[LU-LSP-b:MD4 | MD4]] mājas darbs - atmiņas rezervācijas funkciju salīdzinājums.'''<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====04.03.20====<br />
08:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>'''Virtuālā atmiņa'''</big><br />
|}<br />
* [https://www.dropbox.com/s/b09vpj64cy60kme/L06_memory_paging_protection.pdf?raw=1 Slaidi]<br />
<br />
<br />
Atkārtojums par virtuālo atmiņu un procesa TEXT,DATA, HEAP un STACK segmentiem. Virtuālās atmiņas lapas. Page fault un segmentation fault. Atmiņas aizsardzība. ''setjmp()'' un ''longjmp()''.<br />
<br />
|<br />
* '''Termiņš: [[LU-LSP-b:MD3 | MD3]]'''<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====05.03.20====<br />
14:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>'''KD1'''</big><br />
|}<br />
<br />
<br />
[KD1] Vidus semestra '''kontroldarbs'''.<br />
<br />
|<br />
* '''Kontroldarbs KD1'''<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====05.03.20====<br />
16:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>''' '''</big><br />
|}<br />
<br />
<br />
[PD5] [[LU-LSP-b13:L05 | Praktiskais darbs #5]] - ''setjmp()'',''longjmp()'' un taimera signāls.<br />
<br />
|<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====11.03.20====<br />
08:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>'''Dinamiskā atmiņa'''</big><br />
|}<br />
* [https://www.dropbox.com/s/zqq0jbldw0bciu4/L07_memory_dynamic_reservation.pdf?raw=1 Slaidi]<br />
<br />
<br />
Dinamiskā atmiņas izdalīšana. Heap, malloc() un free(). Dienesta informācija pie atmiņas izdalīšanas un atbrīvošanas. Brīvās atmiņas saraksti. Prasības malloc() un free() veiktspējai.<br />
<br />
|<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====12.03.20====<br />
14:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>''' '''</big><br />
|}<br />
<br />
<br />
[PD6] [[LU-LSP-b13:L06 | Praktiskais darbs #6]] - atmiņas rezervācija.<br />
<br />
|<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====12.03.20====<br />
16:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>'''Atmiņas fragmentācija'''</big><br />
|}<br />
* [https://www.dropbox.com/s/fr3i3tys808343j/L08_memory_algorithms.pdf?raw=1 Slaidi]<br />
<br />
<br />
Atmiņas fragmentācija. Atmiņas rezervēšanas (allocation) algoritmi, kas darbojas uz atmiņas fragmentiem. Atmiņas 'spaiņi'.<br />
<br />
|<br />
* '''Termiņš: [[LU-LSP-b:MD4 | MD4]]'''<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====18.03.20====<br />
08:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>''' '''</big><br />
|}<br />
<br />
<br />
[PD7] [[LU-LSP-b:L07 | Praktiskais darbs #7]] - vienkāršs atmiņas alokators fiksēta izmēra objektiem.<br />
<br />
|<br />
* '''Uzdots: [[LU-LSP-b:MD5 | MD5]] - atmiņas fragmentācijas algoritmu novērtējums ('''grupās''')'''<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====19.03.20====<br />
14:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>'''Atkļūdošana'''</big><br />
|}<br />
* [https://www.dropbox.com/s/9tsu0fecra9f6y0/L09_KD_debugging.pdf?raw=1 Slaidi]<br />
<br />
<br />
Linux atkļūdošanas rīki un to lietošana.<br />
<br />
|<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====19.03.20====<br />
16:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>''' '''</big><br />
|}<br />
<br />
<br />
[PD_D] Izmēģināt [[LU-LSP-b13:LA | atkļūdošanas]] rīkus. Plānot MD5 grupas. Sākt gatavoties Kursa projektam!<br />
<br />
|<br />
* '''Domāt kursa projekta tēmas!'''<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====25.03.20====<br />
08:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>'''Daudz-uzdevumu vide'''</big><br />
|}<br />
* [https://www.dropbox.com/s/qx2ffq19u2rtx86/L10_multitasking_processes_threads.pdf?raw=1 Slaidi]<br />
<br />
<br />
Daudz-uzdevumu vide. Procesi un procesu kontrole. Pavedieni (threads). Kooperējošies procesi un preemptīvā daudz-uzdevumu metode. Komanda '''ps'''. ''getpid()'' un ''getppid()''. ''fork()'', ''exec()'', ''wait()''. ''system()''.<br />
<br />
|<br />
* '''Mājas darba [[LU-LSP-b:MD5 | MD5]] grupu izveidošanas termiņš.<br />
<br />
Katra grupa: lūdzu atsūtiet vienu e-pastu ar paredzamajiem dalībniekiem!'''<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====26.03.20====<br />
14:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>''' '''</big><br />
|}<br />
<br />
<br />
* [PD8] [[LU-LSP-b:L08 | Praktiskais darbs #8]]: Programma kas taisa N pavedienus, kur katrs izdrukā M burtus.<br />
* Izvēles (nav jāiesūta): [[LU-LSP-b:L09b | Praktiskais darbs #9.b]] - steka satura analīze un piekļuve stekam.<br />
<br />
|<br />
* '''Apspriežam kursa projekta tēmas'''<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====26.03.20====<br />
16:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>'''Procesa dzīves cikls'''</big><br />
|}<br />
* [https://www.dropbox.com/s/vkce978v56zk9uw/L11_lifecycle_ipc.pdf?raw=1 Slaidi]<br />
<br />
<br />
Procesa dzīves cikls: Procesa ielādēšana, uzsākšanās un pieci veidi kā process var beigties. exit() un _exit().<br />
<br />
Starpprocesu komunikācija. Klienta un servera arhitektūra. Iteratīvie un paralēlie serveri. Sockets. Komunikācija starp nesaistītiem procesiem.<br />
<br />
Kursa projekta diskusija. Sekojiet kursa Slack kanālam! <br />
* Izvēlētā kursa projekta noteikumu izstrāde<br />
* Sākt darbu pie protokola formulēšanas - kādas ziņas Jūsuprāt nepieciešams sūtīt tīklā, lai programma pilnvērtīgi strādātu.<br />
** Piemēram, [https://docs.google.com/document/d/1Lvo-8oxibzqM8ANdjn8lR4ueCwGLSIcpL1Xtu7InHEs/view iepriekšējā gada noteikumi]<br />
<br />
|<br />
* '''Eksāmena projekts:<br />
* '''Spēles izvēle un noteikumi''' Darbs pie [XX spēles noteikumu dokumenta].<br />
<br />
* '''Sākam diskutēt par protokolu''' - nākamajā lekcijā jānonāk līdz pirmajai protokola versijai!'''<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====01.04.20====<br />
08:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>''''''</big><br />
|}<br />
<br />
<br />
[PD10] [[LU-LSP-b13:L10 | Praktiskais darbs #10]] - starpprocesu komunikācija.<br />
<br />
|<br />
* '''Termiņš: [[LU-LSP-b:MD5 | MD5]]'''<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====02.04.20====<br />
14:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>'''Signāli'''</big><br />
|}<br />
* [https://www.dropbox.com/s/go536558ez25tip/L12_signals_course_project.pdf?raw=1 Slaidi]<br />
<br />
<br />
Signāli. Alarm serviss un signāls. <br />
<br />
Diskusija par komunikācijas protokolu izstrādi.<br />
<br />
|<br />
* '''Termiņš: Kursa projekta spēles noteikumi+uzmetums protokolam GoogleDoc dokumentā.'''<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====02.04.20====<br />
16:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>'''Pavedieni'''</big><br />
|}<br />
* [https://www.dropbox.com/s/deyef80stvuqyu9/L13_posix_threads.pdf?raw=1 Slaidi]<br />
<br />
<br />
Pavedieni. POSIX pavedieni. Mutex. Datu skriešanās (data race condition). Strupceļš (deadlock).<br />
<br />
'''Reading/Reference''':<br />
* [https://www.cs.cmu.edu/afs/cs/academic/class/15492-f07/www/pthreads.html POSIX thread (pthread) libraries]<br />
<br />
|<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====15.04.20====<br />
08:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>''' '''</big><br />
|}<br />
<br />
<br />
Ieskatam servera/klienta komunikācijā [http://selavo.lv/wiki/index.php/LU-LSP-b13:L11 PD11], bet nav jānodod.<br />
<br />
[PD_KP2] Darbs pie kursa projekta.<br />
<br />
|<br />
* '''Termiņš: Spēles protokola gala versija'''<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====16.04.20====<br />
14:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>'''Kursa kopsavilkums'''</big><br />
|}<br />
<br />
<br />
|<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====16.04.20====<br />
16:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>''' '''</big><br />
|}<br />
<br />
<br />
[PD_KP2] Darbs pie kursa projekta.<br />
<br />
'''Reading/Reference''':<br />
* [https://www.cyberciti.biz/faq/linux-install-ncurses-library-headers-on-debian-ubuntu-centos-fedora/ Ncurses library, installation and use]<br />
<br />
|<br />
Termiņš projekta protokolam: 18.04.2020 (sestdiena) 12:00 (pusdienlaikā)<br />
|- style='vertical-align: top;'<br />
|<br />
<br />
====23.04.20====<br />
14:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>'''Konsultācija'''</big><br />
|}<br />
<br />
<br />
Tiks noturēta tiešsaistē, pēc vajadzības<br />
<br />
|<br />
<br />
|- style='vertical-align: top;'<br />
|<br />
====07.05.20====<br />
14:30<br />
|<br />
{| width='100%' style='background-color:#ddd;'<br />
|<big>'''Eksāmens'''</big><br />
|}<br />
<br />
<br />
Eksāmena forma: projektu demonstrācija un prezentācija (darbība, pirmkods, diskusijas).<br />
<br />
Pirms eksāmena kodam kopā ar kompilācijas un palaišanas instrukcijām jābūt iesniegtam e-studijās!<br />
<br />
|<br />
* '''Iesniegt '''eksāmena/projekta failus un aprakstu''' E-studijās'''<br />
<br />
|- style='vertical-align: top;'<br />
|}<br />
<br />
=Uzdevumi=<br />
== Mājas darbi ==<br />
<br />
* [[LU-LSP-b:MD0 | MD0]]: Izlasīt kodēšanas stila dokumentus.<br />
* [[LU-LSP-b:MD1 | MD1]]: Ģimenes koka ģenerēšanas programma.<br />
* MD2 - ''nav uzdots''.<br />
* [[LU-LSP-b:MD3 | MD3]]: Vienādo failu meklēšana direktorijas kokā.<br />
* [[LU-LSP-b:MD4 | MD4]]: Atmiņas rezervācijas funkciju salīdzināšana.<br />
* [[LU-LSP-b:MD5 | MD5]]: Atmiņas fragmentācijas algoritmu novērtējums.<br />
<br />
<!-- * [[LU-LSP-b:MD5 | MD5]]: Procedūru izsaukumu steka izdruka. --><br />
<br />
<br />
Eksāmens izpaužas kā kursa projekta aizstāvēšana.<br />
<!--<br />
* MD7 - projekta protokola specifikācija. Skatīt arī [[LU-LSP-b13:PD_client_server | PD: Klienta un servera arhitektūra]]<br />
** [[LU-LSP-b11:PD_client_server | PD: Klienta un servera arhitektūra]] (praktiskā darba piezīmes)<br />
** [http://selavo.lv/~kursi/LSP/md7 MD7 projekta grupu risinājumi]<br />
<br />
Eksāmens izpaužas kā kursa projekta aizstāvēšana.<br />
--><br />
=Resursi=<br />
== Pamācoši vingrinājumi un piemēri ==<br />
<br />
* Failu I/O buferi un sekas: divi raksta, redzam trīs...<br />
* Aprēķins, cik laika vajag pārkopēt 1 TB pa baitam bez bufera.<br />
* Paging: piemērs 4K x 4K masīva apstaigāšanai, mainot indeksus: 4K vs 16M page faults<br />
<br />
== Literatūra ==<br />
<br />
* Advanced Programming in the UNIX(R) Environment, Second Edition, by W. Richard Stevens, Stephen A. Rago. Addison Wesley Professional, 2005, ISBN 0-201-43307-9. (Indiešu eksemplāram ir ISBN 81-317-0005-4)<br />
<br />
* "Linux system programming" by Robert Love, O'Reilly Media, 2007, ISBN 0596009585<br />
<br />
* [http://www.advancedlinuxprogramming.com/ Advanced Linux Programming] by CodeSourcery LLC,<br />
<br />
* "Building Embedded Linux Systems" O'Reilly Media, 2008, ISBN 0596529686<br />
<br />
* [[Sublime_Text_cheat_sheet]] - Lieliskā Sublime teksta redaktora taustiņu kombinācijas<br />
<br />
* [http://fabiensanglard.net/c/ To become a good programmer...] - C grāmatu saraksts<br />
<br />
{{ProgrammersResorces}}</div>
Leo