Kurss ir veltīts mūsdienu operētājsistēmu arhitektūrai un zema līmeņa programmēšanai Unix un MS Windows operētājsistēmām. Šajā kursā iegūtās zināšanas sniedz speciālistam iespēju maksimāli izmantot operētājsistēmas isepējas, lai izstrādātu ātrus, efektīvus, uzticamus un drošus programmatūras risinājumus. Kurss aptver operētājsistēmu arhitektūras jēdzienus, operētājsistēmu klasifikāciju, failu sistēmas, procesus, pavedienus, atmiņu; veido prasmes un iemaņas atmiņas vadībā, procesu vadībā un to mijiedarbībā, pavedienu vadībā un sinhronizācijā; sniedz pieredzi un praktiskās zināšanas par programmēšanu sistēmas līmenī Unix un MS Windows operētājsistēmās.
Kurss ir veltīts mūsdienu operētājsistēmu arhitektūrai un zema līmeņa programmēšanai Unix un MS Windows operētājsistēmām. Šajā kursā iegūtās zināšanas sniedz speciālistam iespēju maksimāli izmantot operētājsistēmas isepējas, lai izstrādātu ātrus, efektīvus, uzticamus un drošus programmatūras risinājumus. Kurss aptver operētājsistēmu arhitektūras jēdzienus, operētājsistēmu klasifikāciju, failu sistēmas, procesus, pavedienus, atmiņu; veido prasmes un iemaņas atmiņas vadībā, procesu vadībā un to mijiedarbībā, pavedienu vadībā un sinhronizācijā; sniedz pieredzi un praktiskās zināšanas par programmēšanu sistēmas līmenī Unix un MS Windows operētājsistēmās.

System Programming

( ECT = 4 ECTS + optional 2 ECTS).

Part 1. Operating system architecture (2 ECTS).

The concept of kernel objects, and how to work with them; Principles of processes and threads; WinApi functions to manage processes, threads, registry; threads synchronization; Low-level work with files; Principles of work with memory.

Part 2. Concurrent Programming (in Pyton) (2 ECTS).

Introduction to parallel architectures; Parallel programming concepts; Design patterns for parallel programming; Programming hands-on; Debugging parallel programs; Performance monitoring and optimizations; Parallelizing compilers.

Part 3.(optional) Distributed systems (2 ECTS).

Networking: network protocols, point-to-point communication; Marshaling: JSON, Google protocol buffers; Remote procedure calls; Distributed objects; Web services; Clock synchronization; Event ordering: Logical clocks, Vector clocks; Distributed transactions; Concurrency control.