Difference between revisions of "LU-LSP-b11"

From DiLab
Jump to: navigation, search
Line 20: Line 20:


==== Praktisko darbu iesūtīšanas termiņi ====
==== Praktisko darbu iesūtīšanas termiņi ====
* Lekcijas beigās risinājums tiek apskatīt publiski!
* Lekcijas beigās risinājums tiek apskatīts publiski!
* Praktiskos darbos drīkst nepildīt klasē, bet:
* Praktiskos darbos drīkst nepildīt klasē, bet:
** Par novēlotu iesūtīšanu (lekcijas laikā): -25% no vērtējuma
** Par novēlotu iesūtīšanu (lekcijas laikā): -25% no vērtējuma

Revision as of 15:12, 20 September 2011

Linux sistēmu programmēšana (LSP)

LU DF bakalaura studiju kurss DatZ3122, meklēt eStudijās.


  • Pasniedzējs: Leo Seļāvo (epasts: vards.uzvards @ gmail.com)
  • Asistents: Atis Elsts (epasts: vards.uzvards @ gmail.com)
  • Vērtējums = 40% mājas un praktiskie darbi, 10% dalība klasē, 20% KD1 un 30% KD2(eksāmens).


Praktisko un mājas darbu iesniegšana izpildāma noteiktajos datumos un laikos elektroniski, e-studijās.

  • Iesniegšanas termiņa laiks ir 30 minūtes pirms lekcijas sākuma.
  • Iesniegto failu vārdam jābūt sekojošā formātā, ar _svītru tukšumu vietā, piemēram: "LSP_MD1_Vards_Uzvards.pdf"
  • Ja iesniedzams teksts, piemēram, eseja vai apraksts, tad failam jābūt PDF formātā, ja vien nav prasīts citādi uzdevuma nosacījumos.
  • Ja iesniedzami vairāki faili, piemēram, programmas pirmkods, tad tie iepriekš arhivējami kā *.zip arhīvs ar tādu pat faila vārdu kā aprakstīts iepriekš: "LSP_MD1_Vards_Uzvards.zip".
  • Ja darbs tiek iesniegts ar novēlošanos, rezultāts tiek samazināts par 50%. Ja darbs iesniegts vairāk kā nedēļu pēc termiņa, pasniedzējs darbu var nepieņemt.


Precizēti praktisko darbu vērtēšanas kritēriji

  • No kursa kopējā vērtējuma 20% var saņemt par praktiskajiem darbiem
  • 50% no šiem 20% - par piedalīšanos (iesūtīšanu). Ietilpst tajos 10% no kursa kopējā vērtējuma, kas ir “dalība klasē”
  • 50% - par izpildes kvalitāti. Ietilpst tajos 40% no kursa kopējā vērtējuma, kas ir “par MD un PD”

Līdz ar to, par mājasdarbiem kopā tiek saņemts 30% no kursa kopējā vērtējuma

Praktisko darbu iesūtīšanas termiņi

  • Lekcijas beigās risinājums tiek apskatīts publiski!
  • Praktiskos darbos drīkst nepildīt klasē, bet:
    • Par novēlotu iesūtīšanu (lekcijas laikā): -25% no vērtējuma
    • Par novēlotu iesūtīšanu (tajā pašā vakarā): -50% no vērtējuma
      • “vakars” tiek definēts līdz 5:00 nākošās dienas rītā

Piemērs:

  • Students iesniedz par 80% pareizu uzdevuma risinājumu PD nodarbības pēdējā minūtē
  • Saņem 100%/100% par piedalīšanos un 80% * (0.75) = 60% par darba kvalitāti
  • Kopā saņem 1.6 no 2 punktiem par attiecīgo PD


Kalendārs

Datums, nedēļa Kursa saturs Uzdevumi
06.09.2011.

Ievads kursā. Unix un Linux operētājsistēmu pamatkoncepcijas un vēsture. Linux sistēmprogrammētaja rīki (shell, gcc, make, manpages u.c.)

UNIX čaulas populārākās komandas un lietojumi.

Lekcijas piezīmes un praktiskais darbs #1.

Uzdots MD0 mājas darbs - programmēšanas stils.

13.09.2011.

Vispārīgs pārskats par valodu C.

Lekcijas piezīmes un praktiskais darbs #2.

Uzdots MD1 mājas darbs.

20.09.2011. Mājasdarba #1 analīze. Datu struktūras un algoritmi valodā C. Hash tabulas.

Lekcijas piezīmes un praktiskais darbs #3.

xx.xx.2011. Failu ievada un izvada ātrdarbība ņemot vēra sistēmas arhitektūru. Sistēmas izsaukumi faila ievadam un izvadam. Ātra "cat" sistēmprogrammas realizācija. Programma, procesi, lietotāja un grupas ID. Signāli. "echo" programmas koda analīze.
xx.xx.2011. 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-nodes. Sistēmas izsaukums stat(). Direktoriju struktūra. Izsaukumi opendir(), readdir() un closedir().
xx.xx.2011. Programma rakstīšanai log failā. Log faili. Ekskluzīva rakstīšana ar open(...O_SYNC) un fcntrl() metodēm. 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().
xx.xx.2011.

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.

xx.xx.2011. Vidus semestra kontroldarbs.
xx.xx.2011. Dinamiska atmiņas izdalīšana. Heap, malloc() un free(). Dienesta informacija pie atmiņas izdalīšanas un atbrīvošanas. Brīvas atmiņas saraksti. Prasības malloc() in free() veiktspējai.
xx.xx.2011.
  • Atmiņas fragmentācija. Alokācijas algoritmi kas darbojas uz atmiņas fragmentiem.
  • Daudz-uzdevumu vide. Procesi un procesu kontrole. Pavedieni. Kooperējošies procesi un preemptīvā daudzuzdevumu metode. Komanda ps. getpid() un getppid(). fork().
xx.xx.2011. Daudz-uzdevumu vide. Wait() un Exec(). System().
xx.xx.2011. Klienta un servera arhitektūra. Sockets. Komunikācija starp nesaistītiem procesiem. Daudzlietotāju sistēmas (spēles) arhitektūra).
xx.xx.2011. Serveri, iteratīvie un paralēlie. Klienta programmatūra un tas īpašības. Signāli. Alarm serviss un signāls. Procesa ielādēšana, uzsākšanās un pieci veidi kā process var beigties. exit() un _exit(). Kursa projekta definēšana.
xx.xx.2011. Darbs pie projekta.
xx.xx.2011. Pavedieni.
24.12.2011. - 01.01.2012. Ziemassvētku un Jaungada brīvdienas

 

xx.01.2012. Eksāmens

 

Mājas darbi

  • MD0: Izlasīt kodēšanas stila dokumentus.
  • MD1: Ģimenes koka ģenerēšanas programma.

Literatūra

  • Advanced Programming in the UNIX(R) Envoronment, 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)
  • "Linux system programming" by Robert Love, O'Reilly Media, 2007, ISBN 0596009585
  • "Building Embedded Linux Systems" O'Reilly Media, 2008, ISBN 0596529686

Saites

Atziņas