Difference between revisions of "LU-LSP-b12"

From DiLab
Jump to: navigation, search
Line 174: Line 174:
== Saites ==
== Saites ==


* 2011. gada kurss [[LU-LKP-b11:index | Linux sistēmas programmēšana]]
* 2011. gada kurss [[LU-LSP-b11 | Linux sistēmas programmēšana]]


* 2010. gada kurss [[LU-LKP-B10:index | Linux kodola programmēšana]]
* 2010. gada kurss [[LU-LKP-B10:index | Linux kodola programmēšana]]

Revision as of 12:34, 4 September 2012

Linux sistēmas 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 = 15% praktiskie darbi, 25% mājas darbi, 10% dalība klasē, 20% KD1 un 30% KD2(eksāmens).

Praktisko un mājas darbu iesniegšana

  • Darbi jāiesniedz uz kursa asistenta e-pastu Atis-email.gif
  • Darbi jāiesniedz kā pielikums e-pasta vēstulei
  • E-pasta tēmai jābūt formā "LSP MD1 Vārds Uzvārds" vai "LSP_MD1_Vārds_Uzvārds", aizstājot MD1 ar faktisko darba kodu, un ierakstot savu vārdu un uzvārdu
  • Faila nosaukumam jābūt formā LSP_MD1_Vards_Uzvards.c
  • Nevajag arhivēt failus, ja vien tas nav prasīts uzdevuma nosacījumos

Praktisko darbu vērtēšanas kritēriji

  • No kursa kopējā vērtējuma 15% var saņemt par praktisko darbu kvalitatīvu izpildīšanu
  • Papildus par praktiskajiem darbiem saņem plusiņus, kas ietilpst 10% no kopējā vērtējuma "par darbu klasē". Tie pienākas ikvienam, kas iesniedz PD patstāvīgu risinājumu lekcijas laikā.
  • Ja lekcijas beigu daļā PD risinājums tiek apskatīts publiski, PD jāiesūta līdz šim laikam. Vēlāk iesniegti darbi netiek vērtēti.
  • Vēlāk (arī stipri) iesūtīti darbi var tikt izlaboti, bet netiek vērtēti.

Mājas darbu vērtēšanas kritēriji

  • No kursa kopējā vērtējuma 25% veido mājas darbi
  • Mājas darbu iesniegšanas termiņa laiks ir 30 minūtes pirms lekcijas sākuma
  • Ja darbs tiek iesniegts ar novēlošanos (kaut vai 1 min), rezultāts tiek samazināts par:
    • 10% dienā pirmo piecu dienu laikā pēc termiņa, un
    • 50% vēlāk nekā piecas vai vairāk dienas pēc termiņa.
    • Visi mājas darbi jāiesūta līdz kursa beigās noteiktam deadline, vēlāk iesniegtie netiek vērtēti.


Kalendārs

Datums, nedēļa Kursa saturs Uzdevumi
04.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.

11.09.2011.

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

xx.09.2011. Datu struktūras un algoritmi valodā C. Hash tabulas.
xx.09.2011. Darbs ar failiem; sistēmas izsaukumi faila ievadam un izvadam. Linux piedāvātās programmas darbam ar failu izvadu/ievadu (cat, tail, head, less, cp u.c.). Failu ievada un izvada ātrdarbība, ņemot vērā sistēmas arhitektūru.
xx.10.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.10.2011. Programma rakstīšanai log failā. Log faili. Ekskluzīva rakstīšana ar open(...O_SYNC) un fcntl() 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.10.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.10.2011. 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().
xx.11.2011. Vidus semestra kontroldarbs.
xx.11.2011. 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() in free() veiktspējai.
xx.11.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.11.2011. Daudz-uzdevumu vide. wait() un exec(). system().
xx.11.2011. Klienta un servera arhitektūra. Sockets. Komunikācija starp nesaistītiem procesiem. Daudzlietotāju sistēmas (spēles) arhitektūra).
xx.12.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.12.2011. Pavedieni.
xx.12.2011. Kursa kopsavilkums. Darbs pie kursa projekta.

Vienota komunikācijas protokola definēšana kursa projektam.

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.

Eksāmens izpaužas kā kursa projekta aizstāvēšana.


Literatūra

  • 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)
  • "Linux system programming" by Robert Love, O'Reilly Media, 2007, ISBN 0596009585
  • "Building Embedded Linux Systems" O'Reilly Media, 2008, ISBN 0596529686

Saites

Linux veiktspējas analīze

Atziņas