Difference between revisions of "LU-LSP-b11"

From DiLab
Jump to: navigation, search
(Kalendārs)
Line 30: Line 30:
| 13.09.2011.
| 13.09.2011.
|
|
C elementi, kompilēšana un saites, atmiņas sadalījums procesā. [[LU-LSP-b11:L02 | Lekcijas piezīmes]]
C elementi, kompilēšana un saites, atmiņas sadalījums procesā. [[LU-LSP-b11:L02 | Lekcijas piezīmes un praktiskais darbs]]
|
|
Uzdots [[LU-LSP-b11:MD#MD1 | MD1]] mājas darbs.
<!--Uzdots [[LU-LSP-b11:MD#MD1 | MD1]] mājas darbs.-->
|-
|-
| xx.xx.2011.
| xx.xx.2011.
| MD1 risinājums. Datu struktūras un algoritmi, datu tipi, kļūdu analīze, buferizēts un nebuferizēts failu ievads un izvads.
| Datu struktūras un algoritmi, datu tipi, kļūdu analīze, buferizēts un nebuferizēts failu ievads un izvads.
|
|
<!--
* '''Jānodod''' [[LU-LSP-b11:MD#MD1 | MD1]].
* '''Jānodod''' [[LU-LSP-b11:MD#MD1 | MD1]].
* Uzdots [[LU-LSP-b11:MD#MD2 | MD2]].
* Uzdots [[LU-LSP-b11:MD#MD2 | MD2]].-->
|-
|-
| xx.xx.2011.
| 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.
| 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.
|
|
* '''Jānodod''' [[LU-LSP-b11:MD#MD2 | MD2]].
<!--* '''Jānodod''' [[LU-LSP-b11:MD#MD2 | MD2]].-->
|-
|-
| xx.xx.2011.
| 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().
| 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().
|
|
* Uzdots [[LU-LSP-b11:MD#MD3 | MD3]].
<!--* Uzdots [[LU-LSP-b11:MD#MD3 | MD3]].-->
|-
|-
| xx.xx.2011.
| 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().
| 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().
|
|
* '''Jānodod''' [[LU-LSP-b11:MD#MD3 | MD3]].
<!--* '''Jānodod''' [[LU-LSP-b11:MD#MD3 | MD3]].-->
|-
|-
| xx.xx.2011.
| xx.xx.2011.
Line 59: Line 60:
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.
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.
|
|
* Uzdots [[LU-LSP-b11:MD#MD4 | MD4]]. Procedūru izsaukumu steka izdruka.
<!--* Uzdots [[LU-LSP-b11:MD#MD4 | MD4]]. Procedūru izsaukumu steka izdruka.
|-
|-
| xx.xx.2011.
| xx.xx.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()''.
| 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()''.
|
|
* '''Jānodod''' [[LU-LSP-b11:MD#MD4 | MD4]].
<!--* '''Jānodod''' [[LU-LSP-b11:MD#MD4 | MD4]].
* Uzdots [[LU-LSP-b11:MD#MD5 | MD5]]. myExit - setjmp() un longjmp() lietojums.
* Uzdots [[LU-LSP-b11:MD#MD5 | MD5]]. myExit - setjmp() un longjmp() lietojums.-->
|-
|-
| xx.xx.2011.
| xx.xx.2011.
| Vidus semestra '''kontroldarbs'''.
| Vidus semestra '''kontroldarbs'''.
|
|
* '''Jānodod''' [[LU-LSP-b11:MD#MD5 | MD5]].
<!--* '''Jānodod''' [[LU-LSP-b11:MD#MD5 | MD5]].-->
|-
|-
| xx.xx.2011.
| xx.xx.2011.
Line 81: Line 82:
* Daudz-uzdevumu vide. Procesi un procesu kontrole. Pavedieni. Kooperējošies procesi un preemptīvā daudzuzdevumu metode. Komanda ps. getpid() un getppid(). fork().
* Daudz-uzdevumu vide. Procesi un procesu kontrole. Pavedieni. Kooperējošies procesi un preemptīvā daudzuzdevumu metode. Komanda ps. getpid() un getppid(). fork().
|
|
* Uzdots [[LU-LSP-b11:MD#MD6 | MD6]]. Atmiņas fragmentācijas algoritmu novērtējums
<!--* Uzdots [[LU-LSP-b11:MD#MD6 | MD6]]. Atmiņas fragmentācijas algoritmu novērtējums-->
|-
|-
| xx.xx.2011.
| xx.xx.2011.
| Daudz-uzdevumu vide. Wait() un Exec(). System().
| Daudz-uzdevumu vide. Wait() un Exec(). System().
|
|
* '''Jānodod''' [[LU-LSP-b11:MD#MD6| MD6]].
<!--* '''Jānodod''' [[LU-LSP-b11:MD#MD6| MD6]].-->
|-
|-
| xx.xx.2011.
| xx.xx.2011.
Line 99: Line 100:
| Darbs pie projekta.
| Darbs pie projekta.
|
|
* '''Jānodod''' projekta specifikācija un esseja.
<!--* '''Jānodod''' projekta specifikācija un eseja.-->
|-
|-
| xx.xx.2011.
| xx.xx.2011.
Line 107: Line 108:
| 24.12.2011. - 01.01.2012.
| 24.12.2011. - 01.01.2012.
| Ziemassvētku un Jaungada brīvdienas
| Ziemassvētku un Jaungada brīvdienas
|
&nbsp;
|-
|-
| xx.01.2012.
| xx.01.2012.
| '''Eksāmens'''
| '''Eksāmens'''
|
&nbsp;
|-
|-
|}
|}
Line 122: Line 127:


* [[LU-LSP-b11:MD#MD0 | MD0]]: Izlasīt kodēšanas stila dokumentus.
* [[LU-LSP-b11:MD#MD0 | MD0]]: Izlasīt kodēšanas stila dokumentus.
<!--

* [[LU-LSP-b11:MD#MD1 | MD1]]: Ģimenes koka ģenerēšanas programma.
* [[LU-LSP-b11:MD#MD1 | MD1]]: Ģimenes koka ģenerēšanas programma.


Line 138: Line 143:
** [[LU-LSP-b11:PD_client_server | PD: Klienta un servera arhitektūra]] (praktiskā darba piezīmes)
** [[LU-LSP-b11:PD_client_server | PD: Klienta un servera arhitektūra]] (praktiskā darba piezīmes)
** [http://selavo.lv/~kursi/LSP/md7 MD7 projekta grupu risinājumi]
** [http://selavo.lv/~kursi/LSP/md7 MD7 projekta grupu risinājumi]
-->


== Literatūra ==
== Literatūra ==

Revision as of 22:18, 12 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.


Kalendārs

Datums, nedēļa Kursa saturs Uzdevumi
06.09.2011.

Ievads Unix un Linux operētājsistēmās un to programmēšanā. UNIX čaulas populārākās komandas un lietojumi. Lekcijas piezīmes un PD1.

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

13.09.2011.

C elementi, kompilēšana un saites, atmiņas sadalījums procesā. Lekcijas piezīmes un praktiskais darbs

xx.xx.2011. Datu struktūras un algoritmi, datu tipi, kļūdu analīze, buferizēts un nebuferizēts failu ievads un izvads.
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

 

Lekciju piezīmes

  • 1. lekcija: Ievads Linux operētajsistēmā
  • 2. lekcija: C elementi, kompilēšana un saites, atmiņas sadalījums procesā.

Praktiskie un mājas darbi

  • MD0: Izlasīt kodēšanas stila dokumentus.

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 Device Drivers," 3rd ed. by J. Corbet, A. Rubini and G. Kroah-Hartman,
  • "Linux system programming" by Robert Love, O'Reilly Media, 2007, ISBN 0596009585
  • "Understanding the Linux Kernel," 3rd ed. by D. P. Bovet and M. Cesati, O'Reilly Media, 2005, ISBN 0-596-00565-2
  • "Linux kernel development 3rd ed." by Robert Love, Addison Wesley Professional, ISBN 0672329468
  • "Building Embedded Linux Systems" O'Reilly Media, 2008, ISBN 0596529686
  • "Structure and Interpretation of Computer Programs," second edition Harold Abelson and Gerald Jay Sussman with Julie Sussman (online version)


Saites

Atziņas