Sočasnost (concurrency): prekrivanje obstoja (in občutek hkratnega izvajanja) več procesov
Vzporednost (parallelism): dejansko hkratno izvajanje več procesov (na več procesorjih)
Porazdeljenost (distribution): izvajanje več procesov v več vozliščih omrežja
- Sočasnost brez vzporednosti: večopravilnost - prepletanje izvajanja ukazov
- Sočasnost z vzporednostjo: prekrivanje izvajanja ukazov (večprocesorski sistem)
- Vzporednost brez sočasnosti: vzporednost na nivoju ukazov
Težave: deljenje globalnih virov, smrtni objem, …
Odnosi med procesi:
- tekmovalnost: procesi ne vedo drug za drugega tekmovanje za vire
- sodelovanje: medprocesna komunikacija ali deljeni viri
Sočasno izvajanje ukazov
Prepletanje izvajanja - multiprogramiranje: en procesor za več procesov
Izvedba ukazov različnih procesov se poljubno prepleta - razvrščevalnik določi vrstni red izvajanja niti
Prekrivanje izvajanja - multiprocesiranje: več procesorjev za več pocesov
Izvedba ukazov različnih procesov se poljubno prekriva
Souporaba vira
Sočasna uporaba vira s strani več procesov lahko pride do nepričakovanih vrednosti vira (odvisna od konkretne arhitekture procesorja, prevajalnika, …)
Tvegano stanje (race condition): rezultat souporabeskupnega vira je odvisen od prepletanja izvajajočih se ukazov
Krtični odsek (critical section): del programske kode, kjer se sočasno uporablja skupni vir (lahko vodi v tvegano stanje)
Vzajemno izključevanje (mutual exclusion): zagotovilo, da se znotraj KO sočasno nahaja največ 1 proces - vstop v KO je možen le, če ni noben drug proces v njem
Izzivi kritičnih odsekov
Stradanje (starvation): proces, ki želi vstopiti v KO, ne pride na vrsto (zaradi prioritet)
Staranje: procesom, ki ne dobijo vira, vsake toliko časa povečamo prioriteto
Smrtni objem (deadlock): procesi ne morejo nadaljevati izvajanja, ker ciklično čakajo drug na drugega
- Zaznavanje: ignoriranje (npr. Unix, Windows)
- Reševanje: ukinjanje nekega procesa v ciklu / obnavljanje stanja (rollback) / …