Processes and threads. Purpose of programming with processes and threads. Life cycle and scheduling of processing and threads in operating systems. Examples of thread usage. Creating and terminating threads. Thread synchronization. Shared variables, critical sections. The problem of mutual exclusion and possibilities of addressing it. Semaphores, mutexes, condition variables. Pairwise simulations of different synchronization mechanisms in computer systems. Threads in UNIX systems. Threads in Java. Monitor. Thread safety.. Deadlock, livelock, polling. Correctness of multithreaded programs. Efficiency of multithreaded programs. Parallel scientific computing with shared memory. Related information technologies. Parallel programming.
Type of methodology: Combination of lecture and hands-on
Participants receive the certificate of attendance: Yes
Paid training activity for participants: Yes, for all
Participants prerequisite knowledge: Numerical methods (linear algebra, statistics) Domain-specific background knowledge