A rendszer folyamatai egymáshoz való viszonyukat, a köztük lévő csatolás erősségét tekintve lehetnek függetlenek, versengők vagy együttműködők.
A független folyamatok egymás működését semmilyen módon nem befolyásolják. Végrehajtásuk teljes mértékben aszinkron, azaz egymással párhuzamosan is végrehajtódhatnak, de a végrehajtás egymáshoz viszonyított sebességéről semmilyen feltételezést nem tehetünk. Számunkra az ilyen folyamatok gyakorlatilag érdektelenek, hiszen ezek külön-külön, önálló programokként vizsgálhatók.
A versengő folyamatok nem ismerik egymást, de közös erőforrásokon kell osztozniuk. Versengő folyamatok alakulnak ki például egy kötegelt feldolgozást végző rendszerben, a véletlenszerűen érkező, egymást nem ismerő felhasználói jobok feldolgozásakor. Az egyes jobok részeként elinduló programok ugyanazon a számítógépen hajtódnak végre egy multiprogramozott operációs rendszer felügyelete alatt. Ezeknek a folyamatoknak nem kell tudniuk még azt sem, hogy őket multiprogramozottan fogják végrehajtani, ezért programkódjuk ugyanolyan, mintha egy soros feldolgozást végző rendszerre írták volna. A több egyidejűleg működő folyamat helyes és hatékony futtatásának problémáit az operációs rendszeren belül kell megoldani (például minden folyamatnak külön memóriaterülete legyen, a nyomtatásaik ne gabalyodjanak össze, lehetőleg minden erőforrás munkában legyen stb.). Ezt a bonyolult erőforrás-kiosztási, gazdálkodási, védelmi és koordinációs feladatot az operációs rendszereken belül gyakran együttműködő folyamatokkal oldják meg. Az operációs rendszer saját, belső folyamatait rendszerfolyamatoknak, a többit felhasználói folyamatoknak nevezzük. A korrekt és biztonságos erőforrás-kezelés a folyamatok aszinkron futásának korlátozását, szinkronizálását igényli (például, ha egy folyamat nyomtatni akar, amikor egy másik folyamat éppen összetartozó adatsorozatát nyomtatja ki, meg kell várnia, amíg a másik folyamat nyomtatóhasználata befejeződik).
Az együttműködő folyamatok ismerik egymást, együtt dolgoznak egy feladat megoldásán, információt cserélnek. Az együttműködő folyamatokból álló rendszert tervszerűen bontottuk folyamatokra, amelyektől ezért a tervező szándéka szerinti kooperatív viselkedés várható el. Ezekben az esetekben a folyamatok egymástól való védelmének jelentősége kisebb, párhuzamosan működő programrészekként szálak is alkalmazhatók. Együttműködő folyamatok esetén a folyamatok leírása és az együttműködés műveletei a programkódban is megjelennek, azaz a logikai processzor utasításkészletében szerepelnie kell az ehhez szükséges utasításoknak (például folyamat indítása, erőforrás kizárólagos használatának kérése, üzenetküldés egy másik folyamatnak stb.). Valójában ezeket a műveleteket az operációs rendszer hajtja végre. Az együttműködéshez szükséges funkciókon kívül természetesen a versengő folyamatoknál már említett erőforrás-kezelési feladatokat is el kell látnia az operációs rendszernek.
Együttműködő folyamatok munkájukat információcsere útján tudják összehangolni. A cserélt információ esetenként egyetlen bitnyi, csupán jelzés jellegű, máskor akár több megabájt is lehet.

Előző
Előző