Az operációs rendszerek elsődleges feladata erőforrások létrehozása és elérésének biztosítása a felhasználó számára. Ez fokozottan igaz hálózatok esetében, ahol nem csak a helyi gép erőforrásait (perifériák, számítási kapacitás, memória, háttértár, nyomtatók, adatok, programok) kell a felhasználó számára elérhetővé tenni, hanem a helyi hálózaton, és az ehhez kapcsolódó más hálózatokon, és végső soron az Interneten található erőforrásokat is. Ezeket az un. osztott rendszereket és az ezeken található erőforrásokat két alapvető típusú operációs rendszer segítségével érhetjük el. Ezek elsősorban abban különböznek egymástól, hogy ezt a megosztási problémát mennyire "rejtik el" a felhasználók elől, másképpen mondva mennyire "transzparensen" kezelik ezt a bonyolult felatatot. A két alapvető típus:
Ez az egyszerőbb eset. Itt a felhasználó folyamatosan tudatában van annak, hogy több gép erőforrásait használja, sőt, pontosan tudnia kell, hogy az elérni kívánt erőforrás hol található. Tipikus esetben a helyi gép erőforrásait is csak bejelentkezés után érheti el, és a bejelentkezési azonosítójához (login) tartozó kezelői jogok alapján használhatja az egyes rendszer-erőforrásokat, vagy ójabb bejelentkezés, autentikálás után érheti el azokat. Ennek egyik tipikus formája a telnet illetve az FTP. Ezek az erőforrások tipikusan egy felhasználónév/jelszó páros ismeretével és felhasználásával érhetőek el, de ma már léteznek ennél pontosabb és megbízhatóbb (bár igaz, drágább) eljárások is, amelyek közül a legelterjedtebbek az azonosító chipkártyák és a különböző biometrikus eljárások, mind például az ujjlenyomat- olvasók, arc- és hangazonosító rendszerek, szivárványhártya (irisz) leolvasók és társaik.
Ezeknek a rendszereknek az elsődleges célja az adat-megosztás és kisebb mértékben a perifériák (tipikusan nyomtató és háttértár) megosztása. Nyilvánvaló, hogy a felhasználónak viszonylag pontosan kell tudnia az elérni kívánt információ, erőforrás helyét, és nyilvánvaló a rendszer egyik nagy hátránya is: ugyanannak az adathalmaznak - például egy üzleti levélnek - a hálózaton elszórva több változata is létezhet. Ezeket a változatokat nem lehet az adott keretek között csak külső - tehát nem az operációs rendszer belső - szolgáltatások, programok segítségével lehet egységesen kezelni, az ebből származó problémákat megoldani. Tehát ezek a rendszerek magas fokú potenciális inkonszisztenciával bírnak, ami már közepes és nagy rendszerek esetén is komoly problémákat okoz.
Ebben az esetben a felhásználó elől az erőforrások megosztásának egész problematikája, az erőforrások fizikai helye el van rejtve. A felhasználó számára minden erőforrás úgy jelenik meg, minha a helyi gépen lenne. Az adatok mozgatása az operációs rendszer mélyebb rétegeinek a feladata, így ezek a rendszerek nagyfokú konzisztenciát biztosítanak. Ez három alapvető technika révén valósul meg:
Ha az A gépen dolgozó felhasználónak szüksége van a B gépen található adatokra, az operációs rendszer két módon oldhatja meg a problémát: vagy ideiglenesen átmásolja a teljes állományt az A gépre, amíg a felhasználónak szüksége van rá, a háttérben gondoskodva a felmerülő szinkronizálási problémák megoldásáról, vagy csak az állomány azon kis részét másolja ideiglenesen át, amire éppen szükség van. Manapság a második eljárás az elterjedtebb, az eredetileg a SUN által kifejlesztett, manapság az összes UNIX/LINUX típusú operációs rendszer által is használt NFS (Network File System).
Néha sokkal célravezetőbb a számításokat egy más géppel elvégeztetni, mind amelyiken a felhasználó pillanatnyilag dolgozik. Például hatalmas adatmennyiségek feldolgozására van szükség egy távoli gépen. Vagy a távoli gépen sokkal nagyobb szabad számítási kapacitás van, mint a helyi gépen. Ilyen esetekben praktikusabb, ha a távoli gép végzi a számításokat, a hálózaton csak a végeredmény "utazik". Ez legtöbbször az un. RPC (Remote Procedure Call) technika révén valósul meg, de számos más, itt nem részletezett eljárás is létezik.
Amikor a felhasználó elindít egy folyamatot, ami a helyi processzoron fut, nem biztos, hogy itt is ér véget. Előnyös lehet, hogy az egész folyamat, vagy annak egy része (szál, theread) egy más processzoron folytatódjon. Ennek több oka lehet, mint például:
Ez a fajta migráció vagy automatikusan, operációs rendszer szinten valósul meg, vagy a felhasználó kifelyezett kérésére. Egyik legismertebb megvalósítás az un. PVM (Paralell Virtual Machines), a SUN fejlesztése, amely segítségével egyszerűen lehet a folyamatok migrálására képes programokat fejleszteni.
Az osztott algoritmusok fejlesztésében nem lehet figyelmen kívül hagyni egy pár fontos külömbséget az egyszerű (vagy centralizált) algoritmusokhoz képest: