Kratka vsebina predmeta
Vsebina:
- Arhitektura vzporednih sistemov.
- Sočasnost, procesi in niti: prepletanje, vzporedenje, vrstni red izvajanja, preklapljanje med nitmi.
- Delo z nitmi: ustvarjanje, pridruževanje, težave.
- Sočasen dostop do skupnih podatkov: tvegano stanje in medsebojno izključevanje, atomične operacije.
- Sinhronizacija dogodkov: smrtni objem, pogojne spremenljivke, pregrada.
- Vzorci: semaforji, izdelovalec-porabnik, bralci in pisatelji, bazen nalog.
- Večnitnost v praksi: varno delo z nitmi, prednosti večnitnih programov, modeli večnitnih programov
- Porazdeljeni sistemi: prednosti in izzivi, mrežni protokoli, sistemi odjemalec-strežnik, klicanje oddaljenih funkcij (RPC).
- Modeli sistemov in napake: sinhroni, delno sinhroni in ne sinhroni, odpoved sistema, napake in odpornost na napake, bizantinske napake in problem dveh generalov.
- Čas in razvrščanje dogodkov: fizične ure, univerzalni čas, sinhronizacija in polzenje časa, protokol NTP, vzročnost.
- Logični čas: Lamportova ura, vektorske ure, protokol širjenja informacij.
- Podvajanje in sklepčnost: konsistentnost replik, branje po pisanju, podvajanje z avtomati stanj, podvajanje z voditeljem.
- Soglasje: izbiranje voditelja, algoritem Raft.
- Porazdeljeni sistemi na primerih iz prakse: soglasje, vzročno širjenje, dvostopenjsko potrjevanje.
- Arhitektura grafičnih pospeševalnikov.
- Programiranje grafičnih pospeševalnikov.
Content:
- Parallel systems architecture.
- Concurrency, processes and threads: interleaving, parallelism, execution order, pre-emption.
- Working with threads: creation, joining, and problems.
- Concurrent access to shared data: race condition and mutual exclusion, atomic operations.
- Event synchronisation: deadlock, conditional variables, barrier.
- Patterns: semaphores, producer-consumer, readers and writers, task pool.
- Multithreading in practice: thread-safe programming, advantages of multithreaded programs, multithreaded program models
- Graphical accelerator architecture.
- Graphical accelerator programming, offload model.
- Distributed systems: benefits and challenges, network protocols, client-server systems, remote function calling (RPC).
- Systems models and faults: synchronous, partially synchronous and non-synchronous, system failure, faults and fault tolerance, Byzantine faults and the two-generals problem.
- Clock time and event classification: physical clocks, universal time, time synchronisation and drift, protocol NTP, causality.
- Logical time: Lamport clock, vector clocks, broadcast.
- Replication and quorums: replica consistency, read-after-write consistency, state machine replication, leader-based replication.
- Consensus: leader selection, the Raft algorithm.
- Distributed systems use cases: consensus, causal propagation, two-stage commit.
Zadnja sprememba: torek, 26. september 2023, 12.14