Osztott rendszerek, algoritmusok
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 rendszerOperating System – OS Olyan program, amely ellenőrzi a számítógép alapvető műveleteit, a periferiális egységeket, az adatszerkezeteket, lehetővé teszi a felhasználóval (operátor) történő kapcsolattartást, és programokat futtat. Kezdetben az egyes számítógép-típusokhoz külön operációs rendszereket írtak, de vannak elfogadott szabványok is (MS-DOS, UNIX), amelyek gyakorlatilag minden – arra fizikailag alkalmas – gépen futtathatók. 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 feladatot. A két alapvető típus:
- hálózati operációs rendszerek
- osztott (operációs) rendszerek
Hálózati operációs rendszerek
Ez az egyszeribb 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 (loginMíg az egyes hosztokat a hosztcímük egyértelműen meghatározzák, addig a hosztokat több felhasználó használja, tehát a hozzájuk kapcsolódó felhasználókat is meg kell különböztetnünk egymástól. Erre azok felhasználói neve (login- vagy felhasználónév), vagyis az adott hoszton egyedi azonosító-név szolgál.) tartozó kezelői jogokNovell Netware-nél, mivel számos felhasználó osztozik a rendszer erőforrásain ezért biztosítani kell a rendszer egyes részei eléréseinek a védelmét is. Ezen védelmek közül csupán egyik lehetőség az ún. jogok használata. A könyvtárak és az azokban lévő fájlok elérését és kezelését jogokhoz kötik. Ezek a jogok egy 8 elemű kétállapotú [RWCEMFAS] jelölésű vektorral írhatók le. A jelölésben szereplő rövidítések jelentése: R(ead) A felhasználó megnyithatja és olvashat a könyvtárban lévő fájlokból. W(rite) A felhasználó megnyithat és írhat a könyvtárban lévő fájlokba. C(reate) Joga van a könyvtárban fájlokat létrehozni. Lezárás után W jog kell az újraíráshoz! E(rase) Joga van a könyvtárat illetve a könyvtárban lévő fájlokból törölni. M(odify) A felhasználónak joga van a könyvtár fájljainak attribútumát változtatni. F(ile Scan) A felhasználónak joga van keresni a könyvtár fájljai között. A(ccess Control) Joga van a kezelői jogokat a könyvtár alkönyvtáraira átörökíteni. S(upervisory) Összes jog biztosított, és átadható a felhasználónak. A használatot biztosító tényleges jogok a felhasználónak adott kezelői jogok, és a könyvtár örökölt jogmaszkjának eredőjéből (ÉS kapcsolatából) adódnak. A rendszergazda minden felhasználónak ad kezelői jogokat és a felhasználók által elérhető könyvtárak jogait is meghatározza. Ezen könyvtárak alatt létrehozott új alkönyvtárak a felettük lévő könyvtár jogait öröklik (örökölt jogmaszk). Tényleges jogok = kezelői jogok ÉS könyvtár örökölt jogmaszk Hasonló módon működik más, fejlett hálózati operációs rendszerek esetében is a különböző jogosítványok kiosztása, ellenőrzése és érvényesítése. 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 telnetA telnet elsősorban egy protokoll - mégpedig a távoli bejelentkezés protokolljának - neve, de így hívják az ezt megvalósító programot is. A telnet protokoll azt írja le, hogy a számítógép-hálózatokban hogyan lehet egy távoli kiszolgáló szolgáltatásait igénybe venni. A telnet program segítségével be tudunk jelentkezni a hálózat más számítógépeire - természetesen ez csak akkor lesz sikeres, ha ott rendelkezünk felhasználói azonosítóval. A bejelentkezés után úgy dolgozhatunk, mintha az adott számítógép előtt ülnénk. illetve az FTPFile Transfer Protocol Az egymással összekapcsolt Internet gazdagépek között az állományok átvitelét vezérlő protokoll, amelynek működése az úgynevezett ügyfél-kiszolgáló (client-server) modellen alapul. Az FTP segítségével a távoli gazdagépen a könyvtárak azonosítása, a tartalmuk listázása, a könyvtárak váltása, létrehozása, illetve letörlése is megoldott. Használatával érvényes azonosító és jelszó birtokában egy távoli gépre bejelentkezhetünk, és így bizonyos állományokhoz hozzáférhetünk. A publikus, bármely személy számára hozzáférhető gazdagépekre az anoním FTP használatával is bejelentkezhetünk. A szolgáltatást ilyenkor általában az anonymous bejelentkezési névvel vehetjük igénybe, ekkor a kiszolgáló gép szabadon elérhető állományai között tallózhatunk. általánosan igaz, hogy minden egyes felhasználó csak a jogai által engedélyezett állományokhoz férhet hozzá. . Használata az e-mail-el szemben már folyamatos hálózati kapcsolatot igényel. Adatátviteli sebesség igénye is jelentősebb, hiszen elfogadható időn belül kell átvinnünk esetleg több száz kilobájtnyi adatot. Néhány kbit/s-os átviteli sebesség már elfogadható. Az ftp protokoll két átviteli módban működhet: ascii és binary. Az előbbi, mivel 7 bites kódokat használ, szövegállományok átvitelére alkalmas, az utóbbi bármilyen általános fájlra. Fontos továbbá, hogy egyes rendszerek (pl. Unix) különbséget tesznek kis és nagybetűk közt, azaz a fájl nevében tetszőlegesen lehetnek kis és nagybetűk.. Ezek az erőforrások tipikusan egy felhasználónévMíg az egyes hosztokat a hosztcímük egyértelműen meghatározzák, addig a hosztokat több felhasználó használja, tehát a hozzájuk kapcsolódó felhasználókat is meg kell különböztetnünk egymástól. Erre azok felhasználói neve (login- vagy felhasználónév), vagyis az adott hoszton egyedi azonosító-név szolgál./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óEgy adott szolgáltatás igénybevételének jogát biztosító karaktersorozatok együttese. A leggyakrabban ez egy bejelentkezési névnek felel meg, amellyel egy adott felhasználó arra a számítógépre jelentkezhet be, ahol felhasználóként szerepel. Az azonosítót, amely általában a bejelentkezési nevet és a jelszót együtt jelenti, a felhasználó a hálózati szolgáltatójától kapja. Ennek birtokában a minket megillető erőforrásokat használhatjuk. 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óInformációnak nevezünk mindent, amit a rendelkezésünkre álló adatokból nyerünk. Az információ olyan tény, amelynek megismerésekor olyan tudásra teszünk szert, ami addig nem volt a birtokunkban. Az információ legkisebb egysége a bit. A számítástechnikában a programok is 1 bites információkból épülnek fel., 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 rendszerOperating System – OS Olyan program, amely ellenőrzi a számítógép alapvető műveleteit, a periferiális egységeket, az adatszerkezeteket, lehetővé teszi a felhasználóval (operátor) történő kapcsolattartást, és programokat futtat. Kezdetben az egyes számítógép-típusokhoz külön operációs rendszereket írtak, de vannak elfogadott szabványok is (MS-DOS, UNIX), amelyek gyakorlatilag minden – arra fizikailag alkalmas – gépen futtathatók. 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 inkonzisztenciával bírnak, amiAlternate Mark Inversion: - váltakozó 1 invertálás. A módszer nagyon hasonló az RZ módszerhez, de nullára szimmetrikus tápfeszültséget használ, így az egyenfeszültségű összetevője nulla. Minden 1-es-hez rendelt polaritás az előző 1-eshez rendelt ellentettje, a nulla szint jelöli a 0-át. Természetesen hosszú 0-s sorozatok esetén a szinkronizáció itt is problémás, de a bitbeszúrási módszer itt is használható. már közepes és nagy rendszerek esetén is komoly problémákat okoz.
Osztott (operációs) rendszerek
Ebben az esetben a felhaszná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, mintha a helyi gépen lenne. Az adatok mozgatása az operációs rendszerOperating System – OS Olyan program, amely ellenőrzi a számítógép alapvető műveleteit, a periferiális egységeket, az adatszerkezeteket, lehetővé teszi a felhasználóval (operátor) történő kapcsolattartást, és programokat futtat. Kezdetben az egyes számítógép-típusokhoz külön operációs rendszereket írtak, de vannak elfogadott szabványok is (MS-DOS, UNIX), amelyek gyakorlatilag minden – arra fizikailag alkalmas – gépen futtathatók. mélyebb rétegeinek a feladata, így ezek a rendszerek nagy fokú konzisztenciát biztosítanak. Ez három alapvető technika révén valósul meg:
- az adatok migrálása
- a számítások migrálása
- a folyamatok migrálása
Az adatok migrálása
Ha az A gépen dolgozó felhasználónak szüksége van a B gépen található adatokra, az operációs rendszerOperating System – OS Olyan program, amely ellenőrzi a számítógép alapvető műveleteit, a periferiális egységeket, az adatszerkezeteket, lehetővé teszi a felhasználóval (operátor) történő kapcsolattartást, és programokat futtat. Kezdetben az egyes számítógép-típusokhoz külön operációs rendszereket írtak, de vannak elfogadott szabványok is (MS-DOS, UNIX), amelyek gyakorlatilag minden – arra fizikailag alkalmas – gépen futtathatók. 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 UNIXA unix az Interneten lévő számítógépek legelterjedtebb, nyílt operációs rendszere, amelyet 1970 körül fejlesztettek ki a Bell Laboratóriumban. A unixot arra tervezték, hogy egyszerre több felhasználó dolgozhasson rajta, és egyszerre több feladatot lehessen vele végrehajtani. A unix operációs rendszernek több fajtája, hasonmása létezik a különböző típusú, architektúrájú számítógépekre. érdemes megemlíteni a Linux operációs rendszert, amely a unixokkal rokonságot mutat. Leglényegesebb tulajdonsága, hogy ingyen terjeszthető. A fejlesztést a hálózaton keresztül - például levelezési listák segítségével - nagyon sok ember végzi./LINUX típusú operációs rendszerOperating System – OS Olyan program, amely ellenőrzi a számítógép alapvető műveleteit, a periferiális egységeket, az adatszerkezeteket, lehetővé teszi a felhasználóval (operátor) történő kapcsolattartást, és programokat futtat. Kezdetben az egyes számítógép-típusokhoz külön operációs rendszereket írtak, de vannak elfogadott szabványok is (MS-DOS, UNIX), amelyek gyakorlatilag minden – arra fizikailag alkalmas – gépen futtathatók. által is használt NFSNetwork File System A Sun Microsystems által kifejlesztett protokoll távoli gépeken, különböző típusú adattárolókon lévő file-ok elérésére és egyszerû manipulálására a hálózaton át. Az Internet egyik szabványává vált. Segítségével úgy dolgozhatunk távoli gépeken lévő file-okkal, mintha azok a saját gépünkön lennének. (Network File SystemNetwork File System A Sun Microsystems által kifejlesztett protokoll távoli gépeken, különböző típusú adattárolókon lévő file-ok elérésére és egyszerû manipulálására a hálózaton át. Az Internet egyik szabványává vált. Segítségével úgy dolgozhatunk távoli gépeken lévő file-okkal, mintha azok a saját gépünkön lennének.).
A számítások migrálása
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.
A folyamatok migrálása
Amikor a felhasználó elindít egy folyamatot, amiAlternate Mark Inversion: - váltakozó 1 invertálás. A módszer nagyon hasonló az RZ módszerhez, de nullára szimmetrikus tápfeszültséget használ, így az egyenfeszültségű összetevője nulla. Minden 1-es-hez rendelt polaritás az előző 1-eshez rendelt ellentettje, a nulla szint jelöli a 0-át. Természetesen hosszú 0-s sorozatok esetén a szinkronizáció itt is problémás, de a bitbeszúrási módszer itt is használható. 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, thread) egy más processzoron folytatódjon. Ennek több oka lehet, mint például:
- a terhelés kiegyensúlyozása, a helyi túlterhelések elkerülése
- a számítási sebesség fokozása a részfolyamatok párhuzamos végrehajtása révén
- a folyamat által támasztott hardverkövetelmények, amelyeknek egy távoli gép (legtöbbször egy specializált kiszolgálóA kiszolgálók (szerverek) olyan nagyteljesítményű programok, illetve számítógépek, amelyek különböző szolgáltatásokat biztosítanak a hálózat felhasználói számára. A szolgáltatások a kliensek segítségével vehetők igénybe. Azért nevezik kiszolgálóknak őket, mert a szolgáltatásokra irányuló kéréseket szolgálják ki.) felel meg
- speciális szoftverkövetelmények, aminek egy más gépen telepített szoftver felel meg
Ez a fajta migráció vagy automatikusan, operációs rendszerOperating System – OS Olyan program, amely ellenőrzi a számítógép alapvető műveleteit, a periferiális egységeket, az adatszerkezeteket, lehetővé teszi a felhasználóval (operátor) történő kapcsolattartást, és programokat futtat. Kezdetben az egyes számítógép-típusokhoz külön operációs rendszereket írtak, de vannak elfogadott szabványok is (MS-DOS, UNIX), amelyek gyakorlatilag minden – arra fizikailag alkalmas – gépen futtathatók. szinten valósul meg, vagy a felhasználó kifejezett 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.
Osztott algoritmusok
Az osztott algoritmusok fejlesztésében nem lehet figyelmen kívül hagyni egy pár fontos különbséget az egyszerű (vagy centralizált) algoritmusokhoz képest:
- A rendszer globális állapotát nem ismerjük
- A döntési folyamatban – az egyszerű algoritmusokkal ellentétben – nem lehet felhasználni a rendszer globális állapotára vonatkozó információkat. Egy hálózatÁltalában hálózaton sok eszköz összekapcsolt együttesét értjük. így egy számítógépes hálózatban, nem meglepő módon, számítógépek vannak egymással fizikai kapcsolatban. Ez alatt persze nem azt kell érteni, hogy minden gép minden másikkal közvetlenül össze van drótozva, hanem azt, hogy elvileg mindegyikük fel tud építeni kapcsolatot bármelyik másikkal. A közvetlen fizikai kapcsolat inkább a helyi hálózatokra jellemző. Mire jó (egyáltalán jó-e) a hálózat? Legfőképpen arra, hogy az összekapcsolódás révén az információ áramlása felgyorsul. Hasznos a hálózat abban a tekintetben is, hogy a számítógépek összekapcsolásával az eredetileg egyedül álló, gyengébb teljesítményű gépek együtt egy nagy teljesítményű rendszert alkotnak, amelynek segítségével különböző feladatok oldhatók meg. Mindezek pedig kifejezetten előnyös tulajdonságok. bármely csomópontja csak a saját állapotát ismeri, ismerheti, a többi csomópontról szerezhető információk esetlegesek, pontatlanok vagy legalábbis a döntéshozatal pillanatában nagy valószínűséggel már elavultak. Még a kommunikációs alrendszer állapotát sem tudja egyik csomópont sem direkt módon megfigyelni, egyedüli lehetőség a beérkező és kimenő információk vizsgálata, összehasonlítása.
- A globális idő hiánya
- Az események, amelyek egy egyszerű algoritmus lépései, egy teljesen rendezett halmaz részei, a rendezési kritérium pedig az események időbeni összefüggése, természetes egymásutánisága. Másképpen bármely két eseményről egyértelműen megállapítható, melyik történt meg hamarább. Ez sajnos egy osztott algoritmus esetében nem így van, ebben az esetben nem beszélhetünk egy teljesen rendezett halmazról. Léteznek esemény-párok, amelyekről az időbeli sorrendiség egyértelműen megállapítható, de vannak mások, amelyek esetében nem. Egyszerű algoritmusok esetében alkalmazható az erőforrások egyszerű megosztása: ha a P folyamat hamarább kérte az adott erőforrást, akkor azt ő kapja meg, és a későbbi Q folyamatnak meg kell várnia, amíg az erőforrás felszabadul. Az osztott algoritmusok esetében ez a stratégia nem elégséges, különböző kiegészítésekre szorul.
- A determinizmus hiánya
- Az egyszerű algoritmusok működése leírható a bemenetek alapján. Ugyanazon adott bemeneti értékek esetén, különböző futtatások során ugyanazt a kimenetet kapjuk. Ettől eltérően egy osztott alkalmazás viselkedése rendszerint nem csak a bemeneti adatoktól függ, tehát nem determinisztikusan viselkedik. Ez elsősorban az algoritmus végrehajtásában résztvevő rendszer-erőforrások változó nagyságának és működési sebességének a következménye. Például egy szerver-folyamat ismeretlen számú kliens-folyamat kéréseit szolgálja ki. A szerverA kiszolgálók (szerverek) olyan nagyteljesítményű programok, illetve számítógépek, amelyek különböző szolgáltatásokat biztosítanak a hálózat felhasználói számára. A szolgáltatások a kliensek segítségével vehetők igénybe. Azért nevezik kiszolgálóknak őket, mert a szolgáltatásokra irányuló kéréseket szolgálják ki. nem várakozhat, míg minden kérés beérkezik, hogy utána a rendszer pontos állapotának ismeretében dolgozza fel a kéréseket, hanem azonnal hozzá kell lásson a kérések kiszolgálásához. A feldolgozási sorrend a kérések beérkezési sorrendje, amiAlternate Mark Inversion: - váltakozó 1 invertálás. A módszer nagyon hasonló az RZ módszerhez, de nullára szimmetrikus tápfeszültséget használ, így az egyenfeszültségű összetevője nulla. Minden 1-es-hez rendelt polaritás az előző 1-eshez rendelt ellentettje, a nulla szint jelöli a 0-át. Természetesen hosszú 0-s sorozatok esetén a szinkronizáció itt is problémás, de a bitbeszúrási módszer itt is használható. nem feltétlenül azonos a kibocsájtás időbeni sorrendjével. Ez elsősorban a kommunikációs sebesség-különbségek rovására írható, ezek a sebességek ismeretlenek és általában időben változnak.
Ezek a különbségek alapvető, konceptuális különbségekhez vezetnek az egyszerű és osztott algoritmusok tervezése során.