Tartalmi kivonat
-1- A 1. A processzor felépítése, utasításkészlete Utasítások szerkezete, címzési módok Utasításszámláló és utasításregiszter Az utasítás-feldolgozás elemi lépései 2 2. A verem fogalma és működése, a veremmutató regiszter A vermet kezelő utasítások A verem alkalmazása szubrutinok kezelésében. A szubrutinra vonatkozó utasítások 3 3. A Neumann-elvek Utasítás- és adatfolyam (SISD, SIMD, MISD és MIMD architektúrák) Adatok számítógépes ábrázolása (fixpontos, lebegıpontos, BCD, vektoros adatok, karakterek). 4 4. Az utasítás-feldolgozás gyorsítása párhuzamosítással A pipelining lényege, szuperskalár processzorok Fellépı problémák és kezelésük. 5 5. Az aritmetikai-logikai egység és regiszterei (akkumulátor, flag) Fixpontos és lebegőpontos műveletek, ezek végrehajtásának egységei. Logikai műveletek 7 6. A vezérlőegység feladata és jelei, vezérlési pontok Huzalozott és mikroprogramozott műveleti
vezérlés CISC és RISC processzorok. 7 7. A központi tár szerepe, áramköri megvalósítása ROM és RAM áramkörök típusai Dinamikus RAM belső felépítése Átlapolt memóriakezelés. 22 8. Gyorsító (cache) tárak feladata és működési elve Cache tárak felépítése és típusai Helyettesítési és adataktualizálási stratégiák. 8 9. A virtuális tárkezelés fogalma és legfontosabb eljárásai (lapozás és szegmentálás, a virtuális cím leképezése, TLB, lapcsere stratégiák). 10 10. Az adatrögzítés elve a mágneses háttértárolókon A merevlemez fizikai felépítése (szektor, sáv, cilinder) és logikai felépítése (klaszter, FAT, bootszektor). A merevlemezes egység teljesítményjellemzői (elérési idő, adatátviteli sebesség) 12 11. A megszakítási rendszer (megszakítások típusai, a megszakítás kiszolgálása, vektortáblázat) és alkalmazásai A megszakítás-vezérlő feladatai. 14 12. Az I/O adatátvitel típusai A közvetlen
memóriahozzáférés (DMA) lényege és végrehajtása A DMAvezérlő regiszterei és működése. 16 13. A sín (busz) feladata, logikai felépítése, típusai Sínvezérlés (szinkron, aszinkron) Master és slave eszközök Buszarbitráció (soros és párhuzamos sínfoglalás). 17 14. Az I/O eszközvezérlők, interfészek feladata, regiszterei, címzése Soros és párhuzamos port és adatátvitel Az adó és vevő szinkronizálása. 20 15. Monitorok típusai, paraméterei, működési elve A monitorvezérlő kártya feladata, felépítése, jellemzıi (felbontás, színmélység, képmemória mérete) és működése. 22 16. Analóg és digitális hírközlési csatornák jellemzése (kapacitás, zajok hatása), átviteli közegek Vonalak megosztásának módszerei. Digitális jelek kódolása A paritásbit és a CRC Modemek feladata ISDN, ATM, DSL technológiák 25 17. A számítógép-hálózatok architektúrája, az OSI-modell (rétegek, protokollok, rétegszolgálatok)
A TCP/IP protokoll (feladata, rétegei, információ-áramlás, címzés, útválasztás). 30 18. Lokális hálózatok szabványos megvalósítása (Ethernet, vezérjeles sín, vezérjeles gyűrű): protokollok, közeghozzáférési módszerek, átviteli közegek, fizikai egységek 35 19. Az operációs rendszer erőforrás-kezelőjének feladata A holtpont és kezelésének stratégiái Biztonságos állapot A szemafor használata a termelő-fogyasztó folyamatok esetében. 37 20. A magas, közbenső és alacsony szintű ütemezők feladata egy operációs rendszerben A folyamatok állapotai Ütemezési algoritmusok. 40 21. Többfeladatos (multitasking) operációs rendszerek feladatai, felépítése A tárvédelem feladata és megvalósítása (privilégiumi szintek, jogosultságok, szegmensek, deszkriptorok, kapuk). 41 -2- 1. A processzor felépítése, utasításkészlete Utasítások szerkezete, címzési módok Utasításszámláló és utasítás-regiszter. Az
utasítás-feldolgozás elemi lépései AU - címszámító és védelmi egység Feladata programutasításokban található címek leképezése a főtár fizikai címeire és a tárolóvédelmi hibák felismerése. CU (Control Unit) - Vezérlőegység A vezérlőegység feladata, a programban lévő utasítások alapján a teljes számítógép részegységeinek irányítása, és összehangolása. • PC = Program Counter, amely a soron következő utasítás tárolóbeli címét tartalmazza. • IR = Instruction Register, amely a memóriából kiolvasott utasítást tárolja. A vezérlési pontok beállítása kétféle módon történhet: • • A huzalozott műveleti vezérlés: áramkörökkel valósítják meg. o Kombinációs hálózat: bemenet -> kimenet o Sorrendi hálózat: bemenet -> kimenet + belső állapot A mikroprogramozott vezérlés: o A horizontális mikroutasítás: egy vezérlési mezőt és a következő mikroutasítás címét tartalmazza. RISC
(csökkentett utasításkészlet) o A vertikális mikroutasítás: lényegében úgy épül fel, mint egy gépi kódú utasítás. CISC ALU (Aritmetikai egység) Végrehajtja végre a gépi utasításban meghatározott műveleteket az utasításban meghatározott adatokon. • Accumulator Register (AC), amely az adatok átmeneti tárolására szolgál • Flag regiszter: állapotjelző regiszter Az ALU áramköri felépítése • összeadó egységek: két 1 bites fixpontos adatelem összeadását végrehajtó áramkör • léptető áramkörök: a regiszterek jobbra vagy balra léptetését hajtják végre • logikai műveleteket végrehajtó áramkörök • átmeneti tárolók: az operandusokat, illetve eredményeket tárol A regiszterkészlet A processzor regiszterei a felhasználói programok szempontjából három kategóriába sorolhatók: • Rendszerregiszterek: amelyek a felhasználói programok számára nem nem elérhetők. • Speciális célú regiszterek: csak
meghatározott utasításokban szerepelhetnek. (flag) o Általános célú regiszterek: korlátozás nélkül használhatók. (akkumulátor regiszter) A belső gyorsító tár L1 cache a főtárból kiolvasott utasítások és adatok átmeneti tárolására szolgál. Ma már az L2 cache-t is van A busz illesztőegység (BIU = Bus Interface Unit) A buszinterfész egység biztosítja a processzor kapcsolódását a külső sínrendszerhez. Az utasítások szerkezete: műveleti kód – címrész – kiegészítő vagy módosító rész Az utasításkészlet Egy CPU utasításkészlete alatt, azoknak az elemi szintű gépi kódú utasításoknak az összességét értjük, amelyek végrehajtására a processzor a legalsó (hardver) szinten képes. Utasítástípusok Adatátviteli, adatmozgató utasítások Az adatátviteli utasításokkal különböző tárolók között lehet mozgatni, másolni az adatokat: memóroa, regiszter, verem Műveleti utasítások Az adatokon elvégzett művelet
alapján a következőképpen csoportosíthatók a műveleti utasítások: • • • • • • aritmetikai utasítások (ADD, SUB, MUL, DIV stb.), logikai utasítások (AND, OR, XOR stb.), léptető és forgató utasítások bitműveleti utasítások karakterlánc (string) műveletek multimédiás és 3D grafikus műveletek vektoros adatokat dolgozzák fel (SIMD utasítások). -3- Vezérlő utasítások Ezekkel az utasításokkal egyrészt a program soros utasítás-végrehajtását lehet vezérelni, másrészt a processzor működését szabályozni. (JMP, JNE, CALL, LOOP, RET, INT) A memória kezelése A számítógép memóriáját úgy tudjuk használni, hogy minden egyes memóriarekeszt megszámozunk. • • Lineáris modell: (linear memory model) azt értjük, ha a memória teljes területének valamely bájtja egyetlen számmal megcímezhetı (kiválasztható). Szegmensen a memória egy összefüggő része: szegmens + offszet cím. A processzor csak a szegmentált
címzést ismeri A címzési módok • • • Az abszolút címzés: Memória rekesz vagy regiszter címe. A relatív címzés: A fizikai memóriacímet a relatív cím és a báziscím összeadásával kapjuk meg! A közvetlen címzés: Ekkor az utasításban, maga az adat található meg A veremcímzés (bővebben lásd a 11-es tételt): • • A memóriaverem címzése: ekkor a RAM egy része van kijelölve veremnek. A kaszkád verem a CPU-ban helyezkedik el, és korlátozott számú regiszterbıl áll. Itt nincsen szükség SP-re Az utasítás-feldolgozás elemi lépései 1. 2. 3. 4. 5. 6. Fetch = Utasítás-kiolvasás – A processzor az utasításszámláló tartalma alapján kikeresi a főtárból az utasítást és átviszi a vezérlőegység utasításregiszterébe (IR). Az utasításszámláló regiszter tartalmának növelése. így a következő végrehajtandó utasítás címét fogja tartalmazni Decode = Dekódolás – a műveleti kód és utasításszerkezet
értelmezése, az operandusok címének számítása. Decode = Dekódolás – Az adatok kiolvasása a főtárból Execute = Végrehajtás – az előkészített operandusokkal. Write back = Visszaírás – A processzor beírja az utasításban előírt tároló helyre a művelet eredményét. 2. A verem fogalma és működése, a veremmutató regiszter A vermet kezelő utasítások A verem alkalmazása szubrutinok kezelésében. A szubrutinra vonatkozó utasítások A verem megvalósítása • • A memóriaverem: ekkor a RAM egy része van kijelölve veremnek. (Veremmutató) A kaszkád verem a CPU-ban helyezkedik el, és korlátozott számú regiszterbıl áll. Itt nincsen szükség SP-re Adatbevitel (PUSH) Ezt követően a veremmutató tartalma automatikusan megnő, hogy megcímezze a következő üres tárolóterületet a verem felső részén. Adatkihozatal (POP) Előszőr a veremmutató tartalmát eggyel csökkenti, hogy az a verembe utolsónak beírt adatot megcímezze,
azután a veremmutató által megcímzett memóriarekesz tartalmát továbbítják az akkumulátorba vagy más CPU regiszterbe. A verem felhasználása Adatok átmeneti tárolása Ha egy regiszter értékét ideiglenesen felülírjuk, az eredeti tartalmat szokás a verembe menteni. A veremnek csak a tetejéhez férhetünk hozzá. Ha egy belső elem értékére van szükségünk (ki nem vehetjük), használhatjuk a BP (Base Pointer - bázismutató) regisztert. A verem alkalmazása szubrutinok kezelésében. A szubrutin visszatérési címeket legtöbbször veremben tároljuk. A CALL szubrutinhíváskor az utasításszámláló regiszter (PC) a verem tetejáre elmentésre kerül. A szubrutinból való visszatéréshez ki kell olvasni a verem tetejét. A szubrutinra vonatkozó utasítások: CALL (hívás) – RET (visszatérés) Egymásba illesztett – egymásba ágyazott – szubrutinok és a veremtár A veremtár alkalmazásának hasznosságát különösen az egymásba ágyazott
szubrutinok esetében érzékelhetjük igazán. Ezek olyan szubrutinok, amelyek maguk is egy szubrutint hívnak meg. Az olyan típusú szubrutint, amely le tudja hívni önmagát, rekurzív szubrutinnak nevezik. -4- 3. A Neumann-elvek Utasítás- és adatfolyam (SISD, SIMD, MISD és MIMD architektúrák) Adatok számítógépes ábrázolása (fixpontos, lebegıpontos, BCD, vektoros adatok, karakterek). A Neumann elvek • • • • • Tárolt program elve: az elvégzendő műveleteket először be kell vinni a számítógép tárolójába, azután a gép vezérlését át kell adni ennek a műveletsornak, azaz a programnak. Címezhetıség elve: az utasítások és az adatok ugyanolyan módon megcímzettek. Önálló adat be/kiviteli egység, vezérlő és művelet-végrehajtó egység: Teljesen elektronikus gép, mely a kettes (bináris) számrendszer alkalmazásával működik Soros utasítás végrehajtás elve: a számítógép az utasításokat szigorúan egymás után
hajtja végre. Utasítás és adatfolyam (SISD, SIMD, MISD, MIMD) SISD (Single Instruction Stream Single Data Stream) Egyetlen utasításfolyammal egyetlen adatfolyamot dolgoz fel: Pentium MMX-ig SIMD Ezek a számítógépek több párhuzamos, egy idejű működésre képes műveletvégző egységet (ALU) tartalmaznak. Vektorműveleteket képesek végrehajtani, gépi utasítás szinten (például a Pentium III processzor 3D grafikus utasításai). MISD A gyakorlatban ilyen gépek nem léteznek. Egyes szakértők ide sorolják a pipeline (futószalag) szervezésű processzorokat MIMD Ebbe a kategóriába tartoznak a multiprocesszoros számítógépek (több vezérlőegységgel) és a nem a hagyományos, soros utasításvégrehajtás elvén működő számítógépek (adatvezérelt számítógépek, neurális hálók). A MIMD gépek memóriakezelése szintén lehet közös vagy elosztott mint a MISD. Az adatok számítógépes ábrázolása (karakterek, számok (fixpontos,
lebegıpontos, BCD), vektoros adatok) A fixpontos számok A szám kettes számrendszerbeli együtthatóit tároljuk helyi értékeiknek megfelelően egy rögzített nagyságú memóriaterületen. A fixpontos számoknál fontos kérdés, hogy melyik pozíción helyezkedik el a szám egész- és törtrészét elválasztó jel. Minden számítógépnél a kettedes pontnak rögzített a helye. A leginkább elterjedt a fixpontos számok egész számként való értelmezése Fixpontos aritmetikai műveletek Két fixpontos szám összeadása a kettes számrendszer szabályai szerint bitenként történik. A kivonás a kettes komplemens hozzáadásával történik. A BCD kódolás A decimális számjegyek olyan bináris ábrázolási módszere, ahol minden decimális számjegyet helyi értékenként 4 bittel ábrázolnak. (Tiltott kódszavak 9 felett.) A bitnégyesek egymáshoz illesztése szerint lehet: • Tömörített BCD: 1 byte-on 2 decimális számot lehet ábrázolni. • Zónázott
BCD: 1 byte, 0-kkal feltöltve BCD aritmetikai műveleteknél speciális szabályokat kell alkalmazni. Az egyes számjegyeknek megfelelő 4-bites egységeket összeadjuk vagy kivonjuk a 2-es számrendszer szabályai szerint, de az átviteleket a 10-es számrendszer szabályai szerint kell képezni a 4 bites egységek között. A csoportok közötti átvitel esetén 6-tal korrigálni kell, mert ami bináris összeadásnál 16-os értéket képvisel, az BCD-ként való értelmezésben csak 10-et. Ez half carry jelzőbit beállításával történik A lebegőpontos számok Az általános formátum: ±f x 2±e, ahol f egy bináris tört, a mantissza vagy törtrész, az e pedig a 2 hatványkitevıje, exponense. Három mezı alkot tehát egy lebegőpontos számot: az elıjel, az exponens és a mantissza. Tehát a lebegıpontos számok számítógépes ábrázolása során 2 fixpontos számot, a mantisszát, és az exponenst kell együtt kezelnünk. A lebegıpontos műveletek visszavezetése
fixpontos összeadásra • Összeadás, kivonás: Ha a művelet operandusainak karakterisztikái nem egyeznek meg, akkor ezt a problémát a mantissza jobbra léptetésével (2-vel való osztás) és a karakterisztika egyidejű balra léptetésével meg tudjuk oldani. • Szorzás, osztás: A mantisszákat fixpontos számként osztani, illetve szorozni kell, a karakterisztikák pedig fixpontos számként kivonásra, illetve összeadásra kerülnek. Karakterek kódolása -5- ASCII karakterkészlet Az ASCII karakterkészlet 128 db, hétbites különböző kódot tartalmaz, amelyek mindegyike egy-egy karaktert jelképez. A 8. bit a paritás ellenőrzésre szolgál Az ANSI szabvány, az ASCII karakterkészletet két fő csoportba sorolja: • Grafikus karakterek (26 kis- és 26 nagybető, írásjelek, 10 szám) • Vezérlő karakterek A vezérlőkaraktereket, további négy kategóriába soroljuk: • információcsere vezérlők: szöveg kezdete, vége • formátumot
befolyásolók: törlés, soremelés, tabulátor • információ elkülönítők: file separator • általános: bell, esc UNICODE Az Unicode jellemzői: • Teljesség: a világ összes írott és holt ABC-jének a kódolását tartalmazza. (Közel 100 ezer) • Egyszerű és hatékony: minden kód azonos, 16 bit hosszú, és egy ténylegesen létező karaktert jelképez. • Pontos: minden karakter szabványos, a nyelvi szakértők által elfogadott. Vektoros adatok kezelése A számítógépes képfeldolgozás és grafika fejlődése arra ösztönözte a hardverfejlesztőket, hogy a multimédiát és a 3D grafikát használó programok műveletigényét az utasításkészletben is érvényesítsék. Emiatt SIMD (egy utasításfolyam, több adatfolyam) típusú gépi utasításokkal egészítették ki az utasításkészletet (pl. a Pentium processzorok MMX = Multimedia Extension utasításkészlete). Így jelentek meg a vektor-adattípusok, amelyek kezelése új feladatot
jelentett. Az MMX és 3D grafikus adatokkal a műveleteket a processzor vektorszámítógépként működve hajtja végre. Vektorszámítógép Ezt hatékonyan elvégezni korábbi osztályozásunk szerint csak olyan SIMD (egyszeres utasításfolyam, többszörös adatfolyam) architektúrájú gépekkel lehet, amelyek a gépi utasítás szintjén képesek vektor- illetve mátrixműveleteket végrehajtani. Ezeket a számítógépeket hívjuk vektorszámítógépeknek. 4. Az utasítás-feldolgozás gyorsítása párhuzamosítással A pipelining lényege, szuperskalár processzorok. Fellépı problémák és kezelésük „Pipelining” (futószalagos feldolgozás) A futószalagos gyártásnál az egyes részműveleteket időben párhuzamosan hajtják végre. A gépi utasítások elemi lépései (előkészítés, dekódolás, operandusok címszámítása stb.) különböző hardver-erőforrásokat igényelnek Ezért, ha egy utasításban egy elemi lépést végrehajtottunk (például
első lépésben már kiolvastuk az utasítást a memóriából) és az ehhez szükséges hardveregység felszabadul, akkor ezt igénybe vehetjük egy következő utasítás elemi lépésének végrehajtására. Szuperskalár processzorok Azokat a processzorokat szuperskalár processzoroknak nevezzük, ha egy gépi ciklus alatt esetenként több utasítást is képesek végrehajtani. A több végrehajtó egység párhuzamos működésével történő gyorsításnak két alapmegoldása van: a műveletvégző egységek számának növelése a processzoron belül és kívül. Párhuzamosítás a CPU-n belül A processzoron belül nemcsak úgy tudunk párhuzamosítani, hogy a gépi utasításokon belüli elemi lépéseket végrehajtó hardveregységek átlapolva működnek (1 db futószalag), hanem a végrehajtó hardveregységeket is még lehet többszörözni (több futószalag). Erre jó példa a Pentium processzor, amely két fixpontos és egy lebegőpontos művelet-végrehajtó
egységet tartalmaz Párhuzamosítás a CPU-n kívül társprocesszorokkal Társprocesszorok alkalmazására mutatnak példát a következők: • Mainframeknél az I/O processzor alkalmazásával a lassú I/O rendszeregységek leválaszthatók a processzorról. • Mikroszámítógépeknél: o műveletvégző társprocesszor, amely önállóan hajtja végre a lebegőpontos műveleteket, o 3D gyorsító társprocesszor a monitorvezérlő kártyában, amely a vektorgrafikus adatokat konvertálja önállóan raszteres, azaz a képernyőn megjeleníthető adatokká, o hangfeldolgozó társprocesszor a hangkártyában. A pipelining működés során fellépı problémák • • • • -6- az utasítások elemi fázisainak végrehajtásához szükséges idő igen eltérő lehet. az utasítás soros végrehajtását a vezérlésátadó utasítások megzavarhatják. a megszakítások, kivételek kezelése is megszakíthatja a futószalag folyamatos működtetését, az
utasításvégrehajtás során sokszor előfordul, hogy egy utasítás a megelőzı utasítás eredményadatára hivatkozik. Az adatfüggıségek kezelésének módszerei: • • • • • NOP utasítások beiktatása a programba (fordítóprogram által): Data forwarding (hardver által): Az „adat előreengedés” azt jelenti, hogy egy utasítás eredményadata a processzoron belül megfelelő áramkörökkel átadásra kerül. Utasítás-átrendezés (fordítóprogram által): A fordítóprogram (ha ez lehetséges) a program tartalmi megváltoztatása nélkül átrendezi az utasítássorrendet. Scoreboarding (hardver által): Ez egy kiegészítı vezérlőegység, amely figyeli, hogy a pipeline-ba egy "beengedni" kívánt utasításban szereplı regisztereket a pipeline-ba korábban már kibocsátott utasítások nem fogják-e módosítani. Regiszter átnevezés A vezérlésátadó utasítások (vezérlésfüggőségek) kezelése A vezérlésátadó utasítások
kezelése a pipeline-ban kiemelt jelentőségű feladat, mivel ebben az esetben – ha az elágazás bekövetkezik – más memóriacímtől kezdve kell tölteni a futószalagot. • • • Pipeline leállítása Pipeline törlése Spekulatív elágazás-feldolgozás A processzor megpróbálja megjósolni – különösen a feltételes ugróutasítások esetében – a vezérlésátadó utasítás várható irányát, kimenetelét. Erre alapvetően két módszer van: o statikus esetben a fordítóprogram értékeli ki az ugrási feltételeket o dinamikus esetben a program futása közben a processzor egy elágazástörténeti táblázatban vezeti az ugróutasítások címeit és ezek kimenetét A VLIW és a szuperskalár processzor-architektúra kialakulása Az elmúlt évtizedekben a processzorok fejlıdésében három jól elkülönülı szakasz különböztethetı meg: • • • A Neumann elvű, soros utasítás-feldolgozású, processzorok az 1980-as évekig uralták a
processzorok piacát. A RISC processzorokkal jelentek meg az utasítás szinten párhuzamos működéső ILP processzorok amelyek már pipelining szervezésőek. Ezek kezdetben még szintén szekvenciális utasítás-kibocsátással működnek, azaz ezek még mindig skalár processzorok. Több pipeline párhuzamos működtetésére képes végrehajtó egységet tartalmazó processzorok az 1990-es években jelentek meg. Ezek lehetőségeit kihasználandó a szekvenciális utasítás-kibocsátást helyettesíteni kellett párhuzamossal Az előbbinek két módszere van: o több műveletet tartalmazó utasításokat bocsátanak ki o amelyek ciklusonként több utasítás végrehajtására képesek A szuperskalár processzorok tervezése során több speciális feladatot is meg kellett oldani, amelyekkel a skalár processzoroknál még nem találkozhattunk. Ezek közül a fontosabbak: Párhuzamos dekódolás A skalár processzornak ciklusonként csak egy utasítást kell dekódolnia. Ennek
során ellenőriznie kell, hogy a kibocsátandó utasítás függ-e a végrehajtás alatt állóktól. A szuperskalár processzornak ciklusonként 4 utasítást kell dekódolnia. Ezért a szuperskalár processzoroknál a függőségvizsgálatok jóval nagyobb feladatot jelentenek, mint a skalár processzoroknál. Ez természetesen időt igényel, ezért dekódolási feladatait az elődekódolással próbálják meg csökkenteni. • A regiszter-átnevezés Az adatfüggőségek a hivatkozott regiszterek között a következő okok miatt léphetnek fel: • Amikor egy utasításnak egy másik, még befejezetlen utasítás eredményadatára van szüksége. • Amikor egy utasításnak egy olyan regisztert kell írnia, amelyet egy megelőző utasítás még használ. • Amikor több utasítás azonos regisztert kíván egy időben írni. A regiszter-átnevezés megvalósítása lehet: • • statikus (fordítóprogram hajtja végre); dinamikus, amikor az átnevezést futás közben a
hardver hajtja végre. Ez jellemző a korszerű processzorokra Párhuzamos végrehajtás, ROB Ha a processzor az utasításokat párhuzamosan hajtja végre, akkor az egyes végrehajtó egységek az utasítások eredményeit az eredeti utasítássorrendtől eltérően is előállíthatják. Ezt csak úgy lehet kezelni, ha az eredményadatok átmenetileg tárolódnak, és végleges helyükre az eredeti utasítássorrendnek megfelelően kerülnek csak beírásra. Ezért fontos: • • -7- a programutasítások soros végrehajtásának helyreállítása (processzor-konzisztencia), a memória-hozzáféréseknek az eredeti utasítássorrend szerinti végrehajtása (memória konzisztencia). A processzor- és memória-konzisztenciát együttesen soros konzisztenciának nevezzük. A soros konzisztencia biztosításának legfontosabb eszköze a szuperskalár processzoroknál az átrendezı puffertár, a ROB (ROB = Re Order Buffer). A ROB működésének megértéséhez figyelembe kell
vennünk a párhuzamos utasításvégrehajtást. Emiatt meg kell különböztetnünk, hogy egy utasítás 5. Az aritmetikai-logikai egység és regiszterei (akkumulátor, flag) Fixpontos és lebegőpontos műveletek, ezek végrehajtásának egységei. Logikai műveletek Az ALU felépítés • • • • összeadó egységek: két 1 bites fixpontos adatelem összeadását végrehajtó áramkör léptető áramkörök: a regiszterek jobbra vagy balra léptetését hajtják végre logikai műveleteket végrehajtó áramkörök átmeneti tárolók: az operandusokat, illetve eredményeket tárol Az ALU regiszterei • • Accumulator Register (AC), amely az adatok átmeneti tárolására szolgál Flag regiszter: állapotjelző regiszter Fixpontos és lebegőpontos műveletek végrehajtása Lásd. a 3 tételt Logikai műveletek A számítógépek művelet-végrehajtásában nagyon fontos szerepük van a logikai műveleteknek. Ezek matematikailag bizonyítható módon visszavezethetők
a két alapműveletre. ÉS/VAGY Azt már láttuk, hogy az összes aritmetikai művelet végrehajtásának 2-es számrendszerbeli algoritmusa visszavezethető fixpontos számokkal végzett bitenként történő összeadásra és shiftelésre. 6. A vezérlőegység feladata és jelei, vezérlési pontok Huzalozott és mikroprogramozott műveleti vezérlés. CISC és RISC processzorok A vezérlőegység (CU) feladata, felépítése, jelei, és a vezérlési pontok. A vezérlőegységnek a feladata a programban lévő utasítások alapján a teljes számítógép részegységeinek (aritmetikai egység, memória, kommunikációs eszközök, háttértár és perifériavezérlések) irányítása, összehangolása. A műveleti vezérlés részleteinek megértéséhez célszerű ismételten áttekinteni, hogy az egyes utasításokat milyen elemi lépésekben végzi el a processzor: 1. 2. 3. 4. 5. 6. Fetch = Utasítás-kiolvasás – A processzor az utasításszámláló tartalma alapján
kikeresi a főtárból az utasítást és átviszi a vezérlőegység utasításregiszterébe (IR). Az utasításszámláló regiszter tartalmának növelése. így a következő végrehajtandó utasítás címét fogja tartalmazni Decode = Dekódolás – a műveleti kód és utasításszerkezet értelmezése, az operandusok címének számítása. Decode = Dekódolás – Az adatok kiolvasása a főtárból Execute = Végrehajtás – az előkészített operandusokkal. Write back = Visszaírás – A processzor beírja az utasításban előírt tároló helyre a művelet eredményét. Vezérlő jelek A vezérlőegység működése során órajel-ciklusonként vezérlőjeleket ad ki a teljes számítógép irányítására. Ezek lehetnek: • • a processzor belső vezérlőjelei, amelyek a processzoron belüli részegységek működését irányítják, például az aritmetikai egység és a processzor regiszterei közötti adatátvitelt, a processzor külső vezérlőjelei: a
processzor és a memória, a processzor és az input/output eszközök közötti adatátvitelt, illetve a megszakítás-kezelést és a sínvezérlést irányítják. Vezérlési pontok Az adatútvonalak lépésenkénti - az órajel ütemében történő - nyitása, zárása vezérlési pontokon keresztül valósul meg. A műveleti vezérlést a számítógépekben kétféleképpen lehet megoldani: • A huzalozott műveleti vezérlés: áramkörökkel valósítják meg. o Kombinációs hálózat: bemenet -> kimenet • -8- o Sorrendi hálózat: bemenet -> kimenet + belső állapot A mikroprogramozott vezérlés: o A horizontális mikroutasítás: egy vezérlési mezőt és a következő mikroutasítás címét tartalmazza. RISC (csökkentett utasításkészlet) o A vertikális mikroutasítás: lényegében úgy épül fel, mint egy gépi kódú utasítás. CISC RISC és CISC összehasonlítása RISC processzorok CISC processzorok Egyszerő utasítások, melyek
végrehajtása egy gépi ciklust igényel. Összetett utasítások, amelyek végrehajtása több gépi ciklust igényel. Csak a LOAD/STORE utasítások fordulhatnak a memóriához. Bármely, erre alkalmas utasítás igénybe veheti a tárolót. Erőteljes futószalag (pipelining) feldolgozás. A futószalag (pipelining) feldolgozás kismértékű. Rögzített utasításhossz. Változó hosszúságú utasítások. Kevés utasítás és címzési mód. Sokféle utasítás és címzési mód. Bonyolult fordítóprogram, egyszerű mikroprogram. Bonyolult mikroprogram, egyszerű fordítóprogram. Nagy méretű regisztertár. Kis számú regiszter. Tárolóvédelem szoftver segítségével. Tárolóvédelem hardverúton. Csökkentett utasításkészlet Nagyszámú utasításkészlet 7. Gyorsító (cache) tárak feladata és működési elve Cache tárak felépítése és típusai Helyettesítési és adataktualizálási stratégiák. A cache tárak szerepe Az egyik
legfontosabb megoldandó kérdés a tároló-hierarchiában elhelyezkedő, különböző sebességű adattároló eszközök közötti adatforgalomnak oly módon történő biztosítása, amely lehetővé teszi a processzor folyamatos, várakozás nélküli működését. Processzor, memória, háttértár A cache vagy más néven gyorsító tárolók az utasítások és adatok átmeneti tárolására szolgáló, viszonylag kisméretű, gyors memóriapufferek, amelyek a főtár blokkjainak másolatát tartalmazzák, önálló vezérléssel rendelkeznek és a felhasználói programok számára láthatatlanok (elérhetetlenek). Mikroszámítógépeknél a CPU és a központi memória között található cache tárat általában több szinten valósítják meg. Így a processzortól kiindulva megkülönböztetünk L1, azaz első szintű cache tárolót és L2 másodszintű cache-t. A programozás és a cache összefüggései A programok egy kis időintervallumban a címtérnek, a
memóriának csak egy relatíve kis részét veszik igénybe. (Ez a programutasításokra és az ezek által felhasznált adatokra is igaz.) Ennek két oldala van: • • Időbeli lokalitás: ha egy adatra vagy egy utasításra hivatkozás történik, akkor ez nagy valószínűséggel rövid időn belül ez újra megtörténik. (Ciklus) Helyi lokalitás: ha egy adatra vagy egy utasításra hivatkozás történik, akkor ez nagy valószínűséggel a környezetében lévő címekre is megtörténik (gondoljunk a soros utasítás végrehajtásra). A cache működésének elve, cache hit és miss Ha a processzor a központi tár egy rekeszét olvasni akarja, akkor a gyorsító tár vezérlője bemásolja ezt és még néhány rekeszt a cache tárolóba. Ugyanis a lokalitás elve alapján nagy valószínőséggel feltételezhető, hogy a processzornak legközelebb a soron következő rekeszre lesz szüksége. Egy cache tároló legfontosabb jellemzıi a következők: • • • • •
• a cache-tár mérete a blokk mérete (az adatcsere a főtár és a cache között mindig blokkos formában történik), egy blokk kikeresésének és azonosításának eljárása a cache tárban, aktualizálási eljárás, amely szerint a processzor által a cache-tárban módosított adatot a főtárba írjuk, a megfelelő helyettesítési stratégia, amivel eldöntjük, hogy a cache-ben melyik blokkot lehet felülírni. a főtár és a cache-tár adategyezőségének biztosítása. Cache hit Ha a processzor olyan adatot igényel, amely a cache-ben megtalálható, akkor találatról vagy cache hit-ről beszélünk. Cashi miss Ha a processzor által igényelt adat nincs meg a cache-ben, ezt tévesztésnek vagy cache miss-nek nevezzük. -9- A találatok és tévesztések aránya határozza meg a cache teljesítményét. Az ezzel összefüggő legfontosabb adatok a következők: A cache tárak felépítése, és működése A cache-be lemásolt főtárblokkok a cache soraiban
kerülnek elhelyezésre. Minden sor két részből épül fel: • a toldalék (tag) egyrészt a főtárból bemásolt blokkra vonatkozó címinformációkat tartalmazza (címrész), másrészt itt kerülnek bitenként kódolva letárolásra a cache blokk adataira vonatkozó érvényességi információk (vezérlő rész); • az adatrész tartalmazza a bemásolt főtárblokk változatlan vagy a processzor által már módosított adatait. A cache tárak típusai Asszociatív tároló A tartalma alapján címezhető. A adatok visszakeresését tartalom szerint végzik, azaz a tárolóban lévő adatokat nem kell megcímezni. Az asszociatív tárolóként működő cache-ek esetében az adatok, amelyek tartalma szerint keresünk vissza, a főtárbeli blokkok címei vagy részcímei. Teljesen asszociatív cache Ha a processzor egy adatot keres a cache-ben, akkor az adat memóriacíméből képzett blokksorszám asszociatív módon összehasonlításra kerül a cache-ben lévő blokkok
sorszámaival. Az összehasonlítás rendkívül gyorsan, minden sorra vonatkoztatva azonos időben történik meg. Közvetlen leképezésű cache Egy blokk csak a cache egy konkrét sorába kerülhet. A főtárban egymástól azonos távolságra elhelyezkedő blokkok azonos cache sorba fognak bekerülni. A különböző blokkokban lévő, de azonos sorindexű blokkokban található adatok hozzáférése rendkívül lelassul, mivel ez minden esetben blokkcserét eredményez a cache-ben. N-utas csoport asszociatív cache Ez a cache tárolótípus tulajdonképpen átmenetet képez a teljesen asszociatív és a közvetlen leképezéső cache tárolók között. A cache több, „n” sorból álló részre, csoportokra van osztva. Az egy csoporthoz tartozó cache tárolórész önmagában teljesen asszociatív tárolóként működik, azaz egy cache-be másolandó blokk a csoporton belül az „n” sor bármelyikébe bekerülhet. Ezek a tárolók rugalmasabbak, mint a közvetlen
leképezésűek, és relatíve kevesebb asszociatív összehasonlító áramkört tartalmaznak, és még viszonylag gyorsak. Ezért a gyakorlatban ez a cache típus terjedt el szélesebb körben Helyettesítési stratégiák Ezek közül a legelterjedtebb az LRU (least recently used) stratégia, amely esetében a processzor által legrégebben használt blokk adatai kerülnek felülírásra. Az új blokknak a cache-be történő beírására szintén többfajta eljárás létezik. A leggyakoribbak: • • a demand fetching: csak a processzor adatigénye esetén keresik ki a főtárból a megfelelő blokkot és töltik be a cache-be. a prefetching: ha be kell tölteni egy blokkot a cache-be, akkor automatikusan betöltésre kerül a főtár következő blokkja is. Adataktualizálási stratégiák. Ha a processzor egy műveletvégrehajtás során megváltoztat egy adatot a cacheben, akkor igen rövid idő alatt a főtár tartalmát is módosítani kell, hogy a két memória tartalma
azonos legyen. Ez két eljárással történhet: közvetlen átírással, illetve visszaírással • • • A közvetlen átírás: a gyorsítótár írásával együtt megtörténik a főtár írása is. Pufferelt közvetlen átírás: a közvetlen átírás módszerének hatékonyságát javítja a pufferelt közvetlen átírás, amely esetben a processzor a megváltoztatandó főtárbeli adatokat egy íráspufferbe írja be, és nem várja meg a főtár írásának a befejeződését. A főtár aktualizálása azonnal megkezdődik, de a sebességkülönbség miatt némi késleltetés is fellép. A visszaírás: a gyorsítótárban módosított adat csak akkor kerül visszamásolásra a főtárba, ha a cache-nek a módosított adatot tartalmazó sorát felül kell írni egy, a főtárból bemásolandó újabb blokkal. A MESI protokoll Multiprocesszoros architektúráknál általában több cache tárolót alkalmaznak, és a főtár megosztott közös használata is lehetséges a
processzorok között. Ezért ez esetben különösen fontosak azok a szabványeljárások, amelyek a főtár és a cache tárak azonosságát biztosítják. Egy ilyen szabványeljárás a MESI protokoll, mely szerint a cache tárak blokkjainak lehetséges állapotai: • • • • módosított: a cache tár blokkja a főtárblokkhoz képest módosítva lett és most ez tartalmazza az aktuális adatokat. kizárólagos: ekkor a cache blokkja megegyezik a főtárblokkal, és ez a blokk másik cache-ben nem található meg. megosztott: ekkor a cache blokk a főtárral egyező érvényes adatokat tartalmaz, de ez a blokk több cache-ben is megtalálható, érvénytelen: amikor a blokk már nem aktuális adatokat tartalmaz (például egy másik cache-ben már módosították). Lemezgyorsító tárak Láttuk már, hogy a mágneslemezes háttértárak elérési ideje több nagyságrenddel nagyobb a főtáréhoz képest. Ezért az adatok írása/olvasása a háttértárolóra, illetve a
háttértárolóról egy nagyteljesítményő processzorhoz képest rendkívül lassú. - 10 - Két különböző típusa van a merevlemez gyorsításnak: • • Gyorsítás programmal: amely az operációs rendszer részét képezi (például DOS esetén SMART DRIVE). Ez esetben a lemezgyorsító tárrészt a főtárból kell kijelölni. Gyorsítás hardvereszközzel: amely előnyösebb és hatékonyabb megoldás. A hardvergyorsítók működésének a lényege a következő: Ha a processzor adatokat akar kiírni a lemezre, akkor a gyorsító vezérlője ezeket letárolja a cache-ben és visszaigazolja a processzornak a lemezművelet végrehajtását. Ezt követően kezdi meg a vezérlő az adatoknak a kiírását a lemezre, és így ennek ideje alatt a processzor folytathatja a műveletvégrehajtást. 8. A virtuális tárkezelés fogalma és legfontosabb eljárásai (lapozás és szegmentálás, a virtuális cím leképezése, TLB, lapcsere stratégiák). A virtuális
tárkezelés Egy program végrehajtásához a megfelelő programrésznek és az általa feldolgozott adatoknak a főtárban kell lenniük. Az aktuálisan nem futtatott programokat és a hozzájuk tartozó adatállományokat egy közvetlen eléréső háttértárolón tároljuk, és csak akkor töltjük be a központi memóriába, ha szükség van rájuk. Az egyre komplexebb alkalmazásokhoz egyre nagyobb méretű programokra volt szükség, a kezelt adatállományok tároló igénye is állandóan növekedett a fejlıdés során. Az overlay technika Alkalmazásakor csak a programrendszer általános, mindig szükséges vezérlő programja kerül betöltésre a főtárba és emellett a főtárban lefoglalásra kerül egy tárolóterület, amelyre a ritkábban szükséges programmodulok (amelyeket ebben az esetben overlaynak neveznek) igény szerint (csak akkor, ha a program futása során szükség van rájuk) kerülnek betöltésre. Jelöljünk ki a háttértárolón a főtár
memóriakapacitásánál jóval nagyobb tárolóterületet úgy, hogy az egy időben aktív programfolyamatokhoz tartozó programok és adatállományok ezen elférjenek. Nevezzük ezt látszólagos, azaz virtuális tárterületnek A háttértárolón kijelölt virtuális tárolót osszuk fel blokkokra, amelynek méretét a lokalitás elvének figyelembevételével határozzuk meg. Látható, hogy a virtuális tárkezelés alapelve és a cache működési elve nagyon hasonló, de lényeges különbségek is vannak: • A főtár és a cache viszony o különböző cache blokkok legtöbbször azonos programfolyamathoz tartoznak. o A cache miss-t a hardver kezeli. o A cache kizárólagosan a tárkezelés céljaira szolgál, a programok nem „látják”. • A főtár és a virtuális tár viszonya o Egy programfolyamat egyidejűleg más folyamatokkal együtt fut, mindegyik folyamathoz önálló virtuális tárterület tartozik. o Ha egy blokk nincs a főtárban (blokkhiba) akkor ezt
az operációs rendszer kezeli. o A mágneslemezen a virtuális táron kívül más adatállományok is megtalálhatók, ezekhez a programokhoz is hozzáférhetnek. o Az előbbiekből következik, hogy a programok a virtuális tárat úgy látják, mintha az a központi tár lenne. A virtuális cím leképezése fizikai címmé Természetesen a processzornak a művelet végrehajtás során a főtár valódi, vagy másképpen nevezve fizikai címeire van szükség. A virtuális címek fizikai címmé történő leképezését az első virtuális tárkezelést alkalmazó számítógépekben még az operációs rendszer végezte. Ma már szinte kizárólagosan ezt a feladatot egy megfelelő címleképezési áramköröket tartalmazó hardver egység végzi Tárkezelés A virtuális tárkezelésnek két alapvetá formája van, a szegmentálás és a lapozás. Szegmentált tárkezelés Ha a virtuális tár olyan logikai blokkokból áll, amelyeknek mérete nem rögzített, akkor ezeket a
blokkokat szegmenseknek, a virtuális tárkezelésnek ezt a formáját pedig szegmentálásnak nevezzük. A szegmensek átlapolódóan is megadhatók, azaz ugyanaz az adat két különböző szegmensen belül is megcímezhető. A szegmentálásnál a logikai cím a szegmens sorszámát és a megcímzett bájtnak a szegmenskezdettől való relatív címét tartalmazza. A szegmens fizikai kezdőcímét a szegmenstáblázat tartalmazza. Ezt követően a fizikai cím = szegmens fizikai kezdőcíme + relatív cím összefüggéssel meghatározható. A szegmentált virtuális tárkezelésnél az átlapolódás és a különböző blokkméret miatt a szegmenseknek a központi tárból történő kivitele, illetve a központi tárba történő bemásolása során a központi tárban sok eltérő méretű üres hely keletkezhet. Ezt fregmentációnak hívjuk. Emiatt időközönként szükség lehet a memória oly módon történő átrendezésére, hogy összefüggő lefoglalt, illetve szabad
területek jöjjenek létre. Ezt a műveletet szemétgyűjtésnek is szokták nevezni - 11 - Lapozás Ha a virtuális tár rögzített méretű nem átlapolható blokkokból áll, akkor ezeket lapoknak nevezzük, a virtuális tárkezelésnek ezt a formáját pedig lapozásnak. A főtár a lapmérettel megegyező nagyságú részekre van felosztva, ezeket lapkereteknek (frame) nevezik A lapozásnál a virtuális cím hasonlóan épül fel, mint azt a szegmentálásnál láttuk, azaz a lap sorszámát és a megcímzett bájtnak a lap kezdetétől számított relatív címét tartalmazza. A központi memóriába beolvasott lap fizikai kezdőcímét a főtárban a laptáblázatok tartalmazzák. Általában szintén a laptáblázat tárolja a főtárban nem szereplő lapok lemezcímét. A laptáblázatban egy érvényességi (valid) bit jelzi, hogy a megcímzett lap betöltésre került vagy sem a főtárba. Minden programfolyamatnak (processznek) saját laptáblázata van, ennek
kezdőcíme sokszor egy regiszterben található. Ha egy programfolyamat egy utasítása olyan virtuális címre hivatkozik, amelynek megfelelő lap nincs a főtárban, akkor ez laphiba kivételt okoz. Ez egy megszakítást eredményez, és a vezérlést megkapja az operációs rendszer laphiba kezelő rutinja, amely a hivatkozott lapot betölti a főtárba. TLB szerepe és felépítése (címfordító cache-tár) A TLB a leggyakrabban használt lapok lapcímfordításhoz szükséges adatait tartalmazza. A TLB a processzor és a cache tároló között helyezkedik el, mivel a programok virtuális, a cache pedig fizikai címeket tartalmaz. A TLB-miss esetében a laptáblázat érvényességi bitjét (Valid Bit) kell kiolvasni és az alapján: Ha a lap a főtárban van, de nincs bejegyzés a TLB-ben (tiszta TLB-miss), akkor a megfelelő bejegyzést a laptáblából be kell írni a TLB-be. • Ha a lap nincs a főtárban, akkor laphiba keletkezett. Ennek kezelése: o A lap címének
meghatározása a háttértárban. o Egy „D” = dirty lap kiválasztása (LRU (Last Recently Used) szerint) a laptáblában és visszaírása a háttértárba. o A hiányzó lap bemásolása a háttértárból a főtárba. A laptábla aktualizálása A TLB aktualizálása Lapozásos virtuális tárkezelésnél fregmentáció, azaz üres kihasználhatatlan memóriaterületek nem képződhetnek, mivel a lapok csak azonos méretű lapkeretek helyére kerülhetnek be a főtárba. • Virtuális tárkezelés szegmentálással és lapozással Ebben az esetben a szegmentáláson belül alkalmazzák a lapozásos virtuális tárkezelést, a virtuális tár szegmensei lapokból épülnek fel. Ekkor a szegmenstábla és a laptábla katalógus a központi tárban, az egyes laptáblázatok viszont a virtuális tárban kerülnek elhelyezésre. A szegmentálás és lapozás együttes alkalmazása esetén a virtuális címből a fizikai cím kiszámítása több lépcsőben történik.
Szegmentálás és lapozás esetén a virtuális cím egy szegmens sorszámot (szelektor) és egy, a szegmens kezdetéhez képest számított relatív címet (offset) tartalmaz. A tárolóvédelmi rendszer A számítógép tárolókezelő rendszerének egyik legfontosabb feladata a programok és adatok védelme, például a szándékos vagy véletlen felülírástól. Ennek különösen azért van jelentősége, mivel az operációs rendszer és a felhasználói programok fizikailag azonos memóriát használnak. A védelmi rendszerrel minimálisan a következő feladatokat kell megoldani: • • • • a hibás vagy nem létező címek kiszűrését, az operációs rendszer védelmét a felhasználói programoktól, a felhasználói programok egymástól történő védelmét, az adatokhoz, programokhoz történő hozzáférés jogosultságainak ellenőrzését. A tárolóvédelem egyik módszere a programfolyamatok, vagy más néven taszkok privilégizált osztályokba történő
besorolása. Ez azt jelenti, hogy minden egyes taszkhoz hozzárendelésre kerül egy privilégizálási szintszám, amelyhez meghatározott jogosultságok, illetve tiltások kapcsolódnak. Napjaink számítógépes rendszereiben minimálisan két privilégizálási szintet különböztetnek meg: • • egy magas jogosultsági szintet az operációs rendszerhez tartozó programok számára, egy alacsonyabb jogosultsági szintet a felhasználói programok számára. A legtöbb számítógép-architektúrában privilégizált utasítások is megtalálhatók. Ez azt jelenti, hogy a processzor utasításkészletében vannak olyan speciális utasítások, melyeket a processzor csak az operációs rendszer privilégizálási szintjén futó taszkok esetén hajt végre. Az azonos privilégizálási szinten futó taszkok tárolóterületét is védeni kell egymástól. Ezért minden egyes taszkhoz speciális védelmi táblázatok kerülnek felépítésre, melyekben található információk
meghatározzák a taszkhoz tartozó szegmensek és lapokhoz történő hozzáférési jogosultságokat. Ezek a következők: • • • - 12 - olvasási jog: azaz a taszkhoz tartozó szegmensek vagy lapok adatait egy másik taszk olvashatja-e, írási jog: a taszkhoz tartozó szegmensek vagy lapok adatait egy másik taszk átírhatja-e, végrehajtási jog: azaz a taszkhoz tartozó tárolóterületen található kódszegmens futtatását egy másik taszk leindíthatja-e. Lapcsere stratégiák • • • • Első szabad helyre: a memória kezdetétől kezdve megvizsgálásra kerül, hogy hol van az első olyan szabad tárterület, amelynek mérete lehetővé teszi a szegmens betöltését Következő szabad helyre: az utolsóként betöltött szegmenstől kezdve vizsgáljuk az első megfelelő szabad helyet. Legjobb helyre: az összes olyan szabad tárterület közül, amelyekben a betöltendő szegmens elfér, azt választjuk ki, amelynél a betöltést követően a
legkevesebb szabad tárterület marad, Legrosszabb helyre: a cél, hogy a betöltést követően a szegmens mellett a lehető legtöbb tárterület maradjon szabadon. 9. Az adatrögzítés elve a mágneses háttértárolókon A merevlemez fizikai felépítése (szektor, sáv, cilinder) és logikai felépítése (klaszter, FAT, bootszektor). A merevlemezes egység teljesítményjellemzői (elérési idő, adatátviteli sebesség). Egy külső tároló egysége a tároló-hierarchiának a következő részegységekből épül fel: • • • magából az adathordozóból. Ezek az adatok rögzítésének fizikai megoldását tekintve lehetnek mágneses vagy optikai tárolók az író/olvasó eszközből, mely az adatokat az adathordozóról beolvassa, vagy kiírja a vezérlő egységből, amely a külső tároló működését szervezi, irányítja. A háttértárolók az adatok visszakeresése szempontjából két kategóriába sorolhatók: • • közvetlen hozzáférésű
eszközök, amelyek a keresett adatot tartalmazó memóriablokkot közvetlenül meg tudják címezni, és az adatot a teljes tároló végigolvasása nélkül közvetlenül ki tudják olvasni vagy írni, soros vagy szekvenciális hozzáférésű eszközök, amelyeknél a keresett adatot csak úgy tudjuk elérni, ha a tárolóeszköz blokkjait sorban egymás után végigolvassuk, míg a megfelelő adatblokkot meg nem találjuk. Az adatrögzítés elve a mágneses háttértárolókon. A merevlemezes tárban (a fémházban), több mágnesezhető réteggel bevont könnyűfém lemez van elhelyezve. A mechanika lezárt fémházban található, így a por a szennyeződés, nem tud bejutni a lemez és az író/olvasó fej közötti keskeny résbe. A lemezek koncentrikus körökre vannak felosztva, ezeket nevezzük sávoknak. A sávok a fejek sugárirányú elmozdulásával érhetők el Az egymás alatti sávok egy cilindert alkotnak, ennek adatai fejmozgás nélkül elérhetőek. Mindegyik
sáv megadott számú, egyenlő kapacitású adattároló helyet tartalmaz, ezek a szektorok. A szektor a lemezen kezelhető legkisebb fizikai adategység Egy szektorhoz való hozzáférésnek (írásnál vagy olvasásnál) a szektort három paraméter megadása azonosítja: • a cilinder száma (C = cylinder), • a fej száma (H = head), • a szektor száma (S = sector). Ezeket az információkat a szektor kezdő része, az ún. szektorfej tartalmazza A lemezen minden szektor két részből áll: a szektorfejből és az adatblokkból. Minden lemezoldalhoz tartozik egy író- és egy olvasó fej. Az összes egyszerre mozdul el, a fejmeghajtó elektronika biztosítja, hogy az összes lemezoldalra egyszerre történjen meg az írás vagy az olvasás. A koncentrikus körök, a sávok (track) mentén tárolt adatokat a sugárirányban mozgó olvasó/író fejek olvassák, illetve rögzítik. A lemez gyorsan forog, és az állandó forgás miatt, az olvasófejek nem érnek hozzá a lemez
felületéhez, hanem úgynevezett „repülő fejeket” használnak. A lemez felülete speciális anyag, amelynek elemi részecskéi a mágneses mezőtől függő irányba állnak be. A fej típusa nyitott lágyvas, amelyen egy tekercset helyeznek el. Ha a tekercsen váltakozó feszültséget kapcsolunk, akkor a vasmag két vége közötti nyílásban mágneses mező indukálódik. Tehát a jelrögzítés alapja az elektromágneses indukció. Írásnál az éppen a fej alatt lévő mágneses részecske irányát a fej tekercsében folyó áram határozza meg. A mágneses jelrögzítés adatkódolási eljárásai A bináris adatokat kódolt formában tárolják a mágneses felületen. Mivel a fluxusváltozás / felület arány egy bizonyos technológiában állandónak tekinthető, ezért a fluxusváltozások számának csökkentésével nagyobb adatsűrűség érhetı el. A legismertebb kódolási eljárások is erre törekednek A fluxus általában egy adott felületen átáramló
anyag vagy energia mennyiségét jelenti. • FM (frekvencia moduláció): Ennél a kódolásnál az alacsony és a magas szinteket eltérő frekvenciájú jelek jelzik. Általában a 0 szinthez alacsonyabb frekvenciájú jel tartozik, mint az 1 szinthez. Ebben az esetben minden bithez tartozik egy szinkronjel, ami kis adatsűrűséget eredményez. • • - 13 - MFM (módosított frekvencia moduláció): Az FM kódolás hiányosságait hivatott kiküszöbölni ez az eljárás, amit úgy értek el, hogy a szinkronjelet csak 0 után hagyták meg. Ezt a kódolást alkalmazták az első merevlemezeknél RLL (Run Length Limited) kódolás: Kifejlesztésénél a cél az volt, hogy a fluxusváltozást további 50%-kal csökkentsék. Ezt az adatok átkódolásával sikerült megoldani. A kódolás elve viszonylag egyszerű, két 1 állapot között meghatározott számú 0 állapotnak kell lennie. Például az RLL 27 kód esetében két 1-es között minimum 2, maximum 7 darab 0
állhat I/O műveletek a merevlemeznél: Minden egyes lemezegységhez tartozik egy lemezvezérlő chip, amely bonyolultsága közelíti a processzorét. Feladatai az írásra, olvasásra, formázásra vonatkozó parancsok fogadása, a hibák felismerése és javítása (pl. ismételt olvasással), a hibás szektorok nyilvántartása és átcímzése, a lemez-cache vezérlése. • • Az alacsony szintű, vagy fizikai formázás (Low Level Format) (ezt gyárilag elvégzik!) lényegében abból áll, hogy felírják a lemezre az azonosítókat, és mindegyik szektorfejbe beírják a sáv számát, a fej sorszámát és a szektor számát (CHS). A merevlemezek használatához egy logikai formázást is kell végeznünk (a felhasználó által!), amely kialakítja a lemezen az alkalmazni kívánt fájlrendszert. A fájlok elhelyezkedését a lemez elején létrehozott 2 db egyforma FAT tábla mutatja A BIOS szintű lemezkezelés A szektorcímzéshez a BIOS az LBA (Logical Block
Address) nevezető címzési módot használja. A BIOS lemezcímzési módozatai: • • CHS (Cylinder/Head/Sector) = a BIOS által értelmezhető, kezelhető méret! Ez a szabványos címzés, ami 504 MB-ot enged, megcímezni! Nincs semmilyen paraméter átalakítás. (Ez a módszer, kb 1993 -ig volt jellemzı, ekkora már megjelentek a több GB-os merevlemezek, így megjelent az EIDE szabvány.) Az EIDE szabvány, ugyanolyan paraméterekkel rendelkezik, mint a CHS, de a nagyobb lemezméret kezeléséhez, szükség volt egy 2 szintű címátfordítás bevezetésére is: o A lemezvezérlő és a BIOS közötti címátfordítás, o A BIOS és az operációs rendszer közötti címátfordítás. 1. LBA (Logical Block Addressing) = A BIOS kérdezi le a lemez paramétereit és a kapott értéket átalakítja, logikai blokksorszámokra. Ez lényegében azt jelenti, hogy a lemez szektorai sorban kapnak egy-egy sorszámot 0-tól kezdve. Ezeket a logikai címeket adja át a BIOS az
operációs rendszernek, mégpedig CHS formában 2. A 48 bites LBA címzés: elég rohamosan, jelentek meg, a 100 GB feletti kapacitással rendelkező merevlemezek is, így szükségessé vált, egy újabb címzési mód bevezetése. Az így kezelhető lemezkapacitás: 144 000 000 GB! De a használatához, szükséges a BIOS és az operációs rendszer egyidejű támogatása! A merevlemez logikai felépítése (klaszter, FAT, bootszektor) Klaszter A logikai lemezkezelés alapegysége a több szektorból álló szektorcsoport, a klaszter. A fájlok a lemezen klaszterekre vannak osztva, így az operációs rendszer írni és olvasni a merevlemezt csak klaszterenként tudja. Partíció Fizikai lemez olyan része, amely logikailag különálló lemezként viselkedik. Legfeljebb négy elsődleges partíciót vagy három elsődleges és egy kiterjesztett partíciót lehet létrehozni. A kiterjesztett partíción egy vagy több logikai meghajtót lehet létrehozni. A létrehozása után
formázni kell, és betűjelet kell hozzá rendelni. MBR (Master Boot Record) A merevlemez első szektorában, van a mester rendszerbetöltő record, amely tartalmazza a lemez partíciótábláját és egy rövid végrehajtható programot (bootkód), amelyről a rendszerindítás elkezdődik. A bootolás az a folyamat, mely a számítógép bekapcsolásától az operációs rendszer betöltődéséig tart. A MBR program leellenőrzi, hogy a partíciós táblában melyik az aktív partíció, és a partíciós táblából kinézi, hogy az aktív partíció a merevlemezen hol helyezkedik el, majd ennek az első szektorát betölti a memóriába. Egy bootolható partíción belül az első szektor(oka)t rendszerbetöltő szektornak nevezik. Bootszektor Egy bootolható partíción belül az első szektor(oka)t rendszerbetöltő szektornak nevezik. FAT A FAT fájlrendszer a Windows NT operációs rendszer által támogatott fájlrendszerek legegyszerűbbike, amelynek legfőbb sajátossága
a fájlkiosztási tábla. A partíció elején található két példányban, majd a gyökérkönyvtár következik A FAT fájlrendszerrel formázott lemezek fürtökre vannak felosztva. A fájlkiosztási tábla frissítése kulcsfontosságú művelet, sok időbe is telik, ám a rendszeres frissítés elmulasztása adatvesztést eredményezhet. A FAT-könyvtár szerkezete nem előre meghatározott, így a fájlok mindig a lemez első nyitott helyére kerülnek. A FAT fájlrendszer csak az Írásvédett, a Rejtett, a Rendszer és az Archiválandó fájlattribútumot képes kezelni. - 14 - A merevlemez teljesítménye A mágneslemez hozzáférési ideje (Disk Access Time) alatt egy adatblokk kiolvasásának idejét értjük. Ez nyilvánvalóan csak átlagértékként értelmezhető, mivel ez nagyon függ az olvasófejnek a kiolvasás megkezdése előtti helyzetétől, amint a következő képletből is kiderül: Hozzáférési idő = Fejmozgatási (pozicionálási) idő átlaga +
Forgási idő átlaga + Adatátviteli idő + Vezérlési idő. 10. A megszakítási rendszer (megszakítások típusai, a megszakítás kiszolgálása, vektortáblázat) és alkalmazásai. A megszakítás-vezérlő feladatai A megszakítási rendszer szerepe A számítógépek különböző részegységei működésének összehangolásában az egyik legfontosabb szerepe a megszakítási rendszernek van. Ha nem lenne megszakítási rendszer, akkor például a processzornak állandóan ellenőriznie kellene, hogy a felhasználó nem nyomott-e le egy billentyőt a billentyőzeten. Ezek bekövetkezhetnek: Megszakítás Amikor a program utasításainak átmeneti felfüggesztését a processzortól független, külső esemény idézi elő. • meghatározott műveletek befejezésekor, amelyek bekövetkezésére számítani lehet, de ezek időpontja pontosan nem tervezhető (erre tipikus példa az, amikor egy periféria jelzi, hogy egy input vagy output műveletet befejezett). •
Géphibák az automatikus hibafigyelő áramkörök jelzései alapján. • Külső források - a külső eszközök által generált megszakító jelek. Pl reset-gomb benyomása, összekapcsolt gépek esetén a másik gép jelzése. Kivételek A programot a programutasítás végrehajtása alatt a processzoron belül fellépő esemény miatt kell megszakítani. A futó program utasítás-végrehajtása vagy végrehajtásának megkísérlése következményeként a CPU-n kialakult állapotok. • Memóriakezelés o lapváltási igény o memóriavédelem megsértése o tényleges tárkapacitás túlcímzése o címzési előírások megsértése ugróutasítás páratlan címre, bájthatárok megsértése o veremtúlcsordulás • Aritmetikai-logikai m űveleteknél o integer és a lebeg őpontos számok túl/alulcsordulása o nullával osztás kísérlete o definiálatlan műveleti kód o Nem létez ő I/O eszköz indítása A megszakítások csoportosítása Szinkron - aszinkron
megszakítások • • Azon megszakítások, amelyek a programnak ugyanazon adatokkal való végrehajtása során mindig ugyanott lépnek fel, szinkron megszakításoknak nevezzük. Ilyen például az integer túlcsordulás Az aszinkron események véletlenszerűen következnek be. Például az I/O egység kérte megszakítások, a hardver-hibák Az utasítások végrehajtása között, illetve közben fellépő megszakítások • • Az utasítások végrehajtása között fellépő megszakítások az éppen végrehajtott utasítás eredményeképpen következnek be (például, túlcsordulás, page fault, tárvédelmi hiba). Az utasítások végrehajtása közben fellépő megszakítások valamely utasítás végrehajtása alatt merülnek fel. Ilyenek, például, a hardver-megszakítások. Ekkor az esetek többségében először befejezésre kerül az éppen végrehajtás alatt álló utasítás, és csak utána kezdődik meg a megszakítás kiszolgálása. A felhasználó
által explicit kért és nem kért megszakítások • • A felhasználó által explicit kért megszakítás, például, az operációs rendszer szolgáltatásának meghívása, a nyomkövetés vagy az utasítás töréspont. A felhasználó által nem kért nem kért megszakítás, például, az integer túlcsordulás, az I/O egység megszakítás, a hardver hiba. A megszakított program folytatódik vagy befejeződik • • A megszakított program folytatódik, folytatódik, például, I/O egység igénye alapján történő megszakítás, operációs rendszer szolgáltatásának meghívása esetén. A megszakított program futása befejez befejeződik hardver hiba esetén. Felhasználó által maszkolható vagy nem maszkolható megszakítások • A felhasználó által maszkolható maszkolható, például, a nyomkövetés, a töréspont. • - 15 - Nem maszkolható maszkolható viszont az I/O egység megszakítási kérése, az operációs rendszer
szolgáltatásának meghívása. A megszakítások kezelése Az IBM PC kompatibilis gépek, ún. „vektoros megszakítási” rendszert alkalmaznak! Azaz a megszakítást vezérlő a processzornak a vektor egy elemét meghatározó sorszámot ad át, amely a memóriában található megszakítási cím vektortáblában kijelöli a kiszolgáló rutin címét. A megszakítás-kiszolgálást gyakran aszinkron alprogram-feldolgozásnak is szokták nevezni. Ennek oka • • Aszinkron a feldolgozás, mert időben nem megjósolható, hogy egy megszakítást kiváltó esemény (például egy billentyűzet leütése) mikor fog megtörténni, Alprogram a feldolgozás, mert egy meghatározott típusú megszakítás mindig azonos megszakítás-kiszolgáló programegység („szubrutin”) végrehajtását fogja eredményezni. A megszakítás kiszolgálásának lépései a következőkből állnak: A hardver által • • • • • • • a megszakításvezérlő beállítja a
megszakításkérő vezérlő vonal jelszintjét, ezzel jelzi a processzornak a megszakításkérelmet (INT jel), a processzor a folyamatban lévő utasítást befejezi, majd visszaigazolja a megszakításkérelem elfogadását (IACK jel), ezt követően a megszakításvezérlő a sínre küldi a megszakítási vektor elemének sorszámát, a processzor tárolja a megszakítási vektor elemének sorszámát, a processzor elmenti a verembe az utasítászámláló és az állapotregiszter tartalmát, a processzor a megszakítási vektor elemsorszáma alapján a megszakításkiszolgáló rutin kezdőcímét betölti az utasítászámláló regiszterbe és ezzel megkezdődik a megszakítás kiszolgáló rutin végrehajtása. az elmentett állapot és utasításszámláló regiszter tartalmának visszatöltése és a megszakított program folytatása. Az operációs rendszer által Egy program, általában az operációs rendszer megadott időközönként megvizsgálja a megszakítás
szempontjából releváns eszközök állapotjelzőjét. A megszakítást kérő eszköz számára elindítja az adott eszközhöz tartozó kiszolgáló programot Amikor a szoftverlekérdezéses módszert alkalmazzuk, akkor a prioritást a lekérdezési sorrenddel határozzuk meg • • • • • • a megszakított program adatainak (regisztereinek) elmentése verembe (ha szükséges), a megszakítás okának behatárolása, a kiszolgáláshoz szükséges adatok összegyőjtése, a megszakítást okozó esemény kezelése, a megszakított program adatainak visszatöltése, a megszakítás kiszolgáló rutin befejezésének jelzése. Prioritási csoportok A védelmi rendszer megsértése és hardver hibák Ezeknek van a legmagasabb prioritásuk. Csak akkor van értelme tovább folytatni az összes többi munkát, ha ezek lekezelése azt lehet ővé teszi. Kritikus időzítés Amikor az adatátviteli vonalakon jön egy üzenet, és egy karakter-alapú kommunikációs illesztő
kéri a megszakítást, akkor rövid idő alatt ki kell szolgálni a megszakítást, mert különben az adat elvész. Teljesítmény • • egy bizonyos felhasználónak valamilyen okból magasabb a prioritása, amiből az következik, hogy az általa üzemeltetett folyamatoknak magasabb prioritást kell biztosítani valamely programnak rendkívül magasak az erőforrás-igényei (például, az operatív tár igénye), és ezért a multiprogramozás kevésbé hatékony. Ekkor a nagy erőforrásigényű folyamatnak adnak jóval nagyobb prioritást A prioritás eldöntésének algoritmusa Fix prioritás A megszakítási források prioritása időben állandó, a megszakítást kérő egységekhez véglegesen hozzá van rendelve. Hátránya, hogy amennyiben egy magas prioritású forrás gyakran kér megszakítást, akkor az elnyomja az alacsonyabb prioritásúakat. Körbeforgó prioritás (rotating) Bizonyos megvalósításoknál több eszköz rendelkezik azonos prioritási szinttel.
Ekkor a csoporton belül a legutoljára kiszolgált megszakítási forrás kerül a prioritási sor végére. Ennek hátránya, hogy sürgős kérés esetén esetleg túl későn kerül kiszolgálásra - 16 - Speciális maszk Ez lehet ővé teszi a processzor számára, hogy bizonyos egységektől érkező megszakítási jelzéseket letiltson. A megszakítási vektortáblázat A megszakításokat kiszolgáló rutinok kezdőcímeit tartalmazó memória-táblázat, amelyre hivatkozó azonosító sorszámot (index) a megszakítás-vezérlő adja át a processzornak. A megszakítás vezérlő felépítése A számítógépek megszakítás-vezérlő egysége végzi a megszakítás kiszolgálásához szükséges legfontosabb hardverfeladatokat: • • • • • fogadja megszakításkérő vezérlővonalakon a megszakításkérelmeket, vizsgálja, hogy az igényelt megszakítás nincs-e maszkolással letiltva, vizsgálja és értékeli a megszakítás prioritását, az INT
(Interrupt) vezetéken közli a megszakítás kérést a processzorral, ha az IACK (Interrupt Acknowlegment) vezetéken a processzor visszaigazolja, hogy kész a kérés fogadására, akkor a megszakításvezérlő átadja a processzornak a megszakításhoz tartozó megszakításvektor címet. 11. Az I/O adatátvitel típusai A közvetlen memóriahozzáférés (DMA) lényege és végrehajtása A DMAvezérlő regiszterei és működése. Az I/O adatátvitel típusai • • • • Programozott I/O átvitel (polling): az adatátvitel a RAM és az I/O eszköz között csak a CPU vezérlésével történhet meg. • A processzor teljes körűen ellenőrzi és vezérli az I/O műveletet. • A periféria állapot regiszter ciklikus lekérdezése folyamatosan terheli a processzort. Ezért ennek a módszernek csak akkor van értelme, ha az I/O eszköz nagyon gyors. Megszakításos I/O átvitel: a processzor jelzi az I/O eszköz számára az adatátviteli igényt, mely, ha felkészült az
adatátvitelre, akkor ezt egy megszakítás kérelemmel jelzi a processzornak. Az adatátvitel befejezését az I/O eszköz szintén megszakítás kérelemmel jelzi. • A felhasználói program a tranzakció idejére megállításra kerül. Közvetlen memória hozzáférés: az I/O eszköz és a főtár közötti adatátvitelt a processzortól függetlenül a DMA vezérlő irányítja. I/O processzor alkalmazásával: amelynek a processzor átadja az I/O művelet végrehajtásához szükséges összes adatot és ezt követően az I/O processzor teljesen önállóan vezérli az I/O művelet végrehajtását. (ez a módszer főleg mainframe-ekre jellemzı) Az I/O műveletekkel kapcsolatos alapfogalmak Az I/O igények csoportosítása: • • • Tranzakció orientált: jellemzője a sok kis változtatás nagy adathalmazokban (pl.: bankautomaták, repülőgép-helyfoglalás) A számítógéprendszer teljesítménye szempontjából a legfontosabb az időegység alatti hozzáférések
száma. Fájl I/O: jellemzője a soros hozzáférés nagy adathalmazokhoz. A legfontosabb az időegység alatt átvitt adatmennyiség Eseményorientált I/O: a számítógépes rendszernek külső eseményekre kell reagálnia (pl.: egér helyzetének megváltoztatása, folyamatvezérlés). Emiatt e rendszerekben a reakcióidő valamint az időegység alatti feldolgozható eseményszám a legfontosabb teljesítményjellemzı. Az I/O egységek osztályozása a kapcsolat jellege szerint: • • • Csak bemeneti (input) Csak kimeneti (output) Be –és kimeneti (I/O) Az I/O egységek osztályozása a művelet résztvevője szerint: • • Ember által használt I/O egység (pl. egér, billentyőzet) Gép által használt I/O egység (pl. merevlemez, szenzor) A közvetlen memória-hozzáférés (DMA) A közvetlen memóriahozzáférés lényege, hogy a processzor egy I/O művelet végrehajtásához szükséges információkat átadja egy, a processzortól független DMA (Direct
Memory Access) vezérlőnek, amely ezt követően az adatátvitelt a memória és az I/O eszköz között önállóan irányítja. Ezáltal a processzor felszabadul más feladatok végrehajtására A DMA hatékonysága nagy adatblokkok átvitelénél mutatkozik meg. A DMA vezérlő felépítése • • Címregiszter: az aktuális cél/forrás memóriacím tárolására szolgál. Számlálóregiszter: a még átvitelre váró adatok tárolására alkalmaz, amelynek a tartalma minden egyes átvitt adat után, aktualizálódik. - 17 - A DMA vezérlő, még további három regisztert tartalmaz: • • • DMA-módregiszter, amely az adatátvitel irányára (memóriába írás, vagy memóriából történő olvasás) vonatkozó információkat tartalmaz, DMA-maszkregiszter, amely az egyes DMA átvitelt kérő vezérlővonalak letiltását (maszkolását) tartalmazza, DMA-állapotregiszter, amely a vezérlő állapotával kapcsolatos információk tárolására szolgál (pl. melyik
DREQ vonalon érkezett a kérés, befejeződött-e az átvitel stb.) Egy számítógépben általában több DMA-vezérlő is megtalálható. A DMA vezérlő működése A közvetlen memória-hozzáféréssel (DMA) végrehajtott I/O művelet lépései a következők: • • • • • Periféria ellenőrzése a processzor ellenőrzi a perifériát, hogy tudja-e fogadni az átvitelt, ezt követően a DMA vezérlő részére átadja az átvitel paramétereit, a DMA buszfoglalási kérelmet jelez (DMA REQUEST), a processzor ezt visszaigazolja (DMA ACKNOWLEDGE), a DMA masterként lefoglalja a buszt, végrehajtja az adatátvitelt, a DMA jelzést küld megszakítással a processzornak az átvitel befejezéséről, processzor ellenőrzi a végrehajtás hibátlan megtörténtét és a buszengedélyezést megszünteti. A buszhasználat megosztása a processzor és a DMA között a következő módszerekkel történhet: • • • Blokkátvitel (blocktransfer) esetén a DMA vezérlő az
adatátvitel teljes idejére lefoglalja a buszt. Cikluslopás (cycle stealing) esetén busz felszabadítása minden szó (bájt) átvitel után megtörténik. Ez átlapolt buszhasználatot jelent a processzor és a DMA vezérlő között. Ütközés esetén a DMA-nak prioritása van Transzport mode esetén a DMA vezérlő használja a buszt (például a processzor utasítás dekódolása és végrehajtása alatt) addig, amíg a processzor nem végez memória-hozzáférést. Ez a mainframe-kre jellemzı 12. A sín (busz) feladata, logikai felépítése, típusai Sínvezérlés (szinkron, aszinkron) Master és slave eszközök. Buszarbitráció (soros és párhuzamos sínfoglalás) A sínrendszer (busz) feladata A számítógép részegységei közötti kommunikációs kapcsolatokat (adatok, címek, valamint a gép vezérléséhez szükséges információk átvitelét) a sín- vagy buszrendszer biztosítja. A sínrendszer a kapcsolatokat biztosító kommunikációs vezetékek mellett
aktív és passzív elektronikai elemeket is tartalmaz, így hozzátartoznak a sínvezérlő áramkörök is, amelyek meghatározott, szabványosított algoritmusoknak megfelelően működnek. Ezért a sínrendszer fogalmába beleértjük a kommunikációs kapcsolatok szabványosított szabályait is, amit sínprotokollnak nevezünk. A sínrendszer logikai felépítése A számítógép részegységeinek kommunikációját biztosító sínrendszer az átvitt információ jellege szerint logikailag három részre osztható: • címsín, amely a címek átvitelét biztosítja • adatsín, amely az adatok átvitelét biztosítja • vezérlősín, amely a számítógép részegységei között a vezérlőinformációk adatátvitelét biztosítja. Ezek lehetnek például: o adatátvitelt, azaz az I/O eszközöket vezérlő jelek, o a megszakítási rendszerhez tartozó vezérlőjelek, o a DMA vezérlőjelei, o a sínvezérlőjelek (pl. a sínhasználat kérése és ennek
visszaigazolása), szinkronizációs jelek A sínrendszer típusai A sínrendszerek között megkülönböztetünk • belső sínrendszert, amely a processzoron belül, a processzor különböző részeit kapcsolja össze. Sebessége (órajele) megegyezik a processzoréval, • külső sínrendszert, amely a processzort köti össze a központi egység különböző részegységeivel. A külső sínrendszer a sebessége és az összekapcsolt eszközök alapján több, hierarchikusan felépülő fajtájú lehet: • • • • rendszersín (system bus), amely a processzorhoz közvetlenül kapcsolódó rendszerelemeket (memória, grafikus kártya stb.) köti össze. Ezen keresztül az adatátvitel a processzor órajelével szinkronban történik és a busz adatátviteli bit szélessége is összhangban van a processzor működésével (32 bites processzoroknál 32 vagy 64 bit). I/O-sín, amelyet egy sínvezérlő egység hajt meg, és alapvetően az I/O eszközök csatlakoztatását
szolgálja, az egyéb I/O eszközök saját sínrendszere (például SCSI lemezcsatoló önálló busza), számítógéprendszerek közötti buszok (intersystem bus). A modern PC-architektúrában is két alapvető busztípus különböztetı meg: • a rendszerbusz (system bus), amely a processzort köti össze a rendszermemóriával (L2 cache és DRAM modulok); • - 18 - az I/O busz, amely a periféria- és háttértár-vezérlésekkel biztosítja a kapcsolatot. Alapfogalmak A buszt, mint architekturális hardver építőelemet, a rákapcsolt eszközök közösen használják. Ezzel kapcsolatosak a buszrendszer használatának előnyei és hátrányai: Előnyök: • • Új egységek egy szabványos illesztıhelyen (pl. PC slot) könnyen hozzákapcsolhatók a buszhoz, költségtakarékos megoldás, mivel ugyanazt az átviteli utat több célra, több eszköz használja. Hátrányok: • • • A sávszélesség (időegység alatt átvitt bájtszám) korlátozott. Az
adatátviteli sebességet a busz hossza és a hozzá kapcsolt egységek száma korlátozza. A busznak különböző sebességű eszközöket (tároló, monitor, egér stb.) kell kezelnie Buszciklus: egy adategység átviteléhez szükséges idő (a ciklusok végén jelennek meg a szükséges jelszintek). Busz tranzakció: a buszigények sorozata, amely az adatátvitel igénylésétől, annak befejezéséig tart (több műveletből, buszciklusból állhat). Egy busztranzakció lépései a következők lehetnek: • sínhasználat igénylése (REQUEST) • sínhasználat jogának odaítélése (ARBITRATION) • címátvitel (ADDRESSING) • adatátvitel (DATA TRANSFER) • hibafelismerés (ERROR DETECTION) • felszabadítása (RELEASE) Takarékosságból sokszor használt a multiplexált tranzakció: a címek és adatok egymás után ugyanazon a vezetékeken keresztül kerülnek átvitelre. Ez egy olcsóbb megoldást jelent, bár ugyanakkor az effektív adatátvitel sebességét
csökkentik. Master és slave eszközök A sínt egyidőben csak egy eszközpár használhatja. Ezek közül az aktív kezdeményező eszköz a master, a kapcsolatban résztvevő passzív eszköz pedig a slave eszköz. A master és slave közötti munkamegosztás lényege a következő: A mikroszámítógépeknél master általában a processzor vagy valamilyen DMA-t használó I/O eszköz, a memória viszont mindig slave szerepkört tölt be a sínhasználat során. Buszarbitráció (soros, párhuzamos) Egyidejűleg több aktív (master) eszköz is igényelheti a sín használatát. Ekkor valamilyen eljárással el kell dönteni, hogy melyik eszköz lesz jogosult a sínhasználatára. Ezt az eljárást nevezzük sín arbitrációnak Ha csak egy buszmaster van, akkor ez az eszköz (legtöbbször a processzor) felügyeli a buszhasználatot, inicializálja és ellenőrzi a buszfoglalást. A slave eszközök válaszolnak az írási és olvasási igényekre Ha több buszmaster van, akkor
csak arbitrációval dönthető el, hogy melyik eszköz kapja meg a buszhasználat jogát. Időosztásos A buszhasználat jogának megosztása a masterek között a legegyszerűbb módon időosztással (time-sharing) történhet, amikor minden master meghatározott időszeletre megkapja a buszhasználat jogát (statikus módszer). Csak akkor hatékony, ha a masterek adatátviteli igénye kb. azonos Dinamikus Dinamikus buszhasználat megosztás esetén a masterek csak akkor kapják meg a sínt, ha azt igénylik. Ez esetben azt a problémát kell kezelni, hogy a buszhasználati igények azonos időpontban is jelentkezhetnek. Ennek módszerei lehetnek: • • prioritások meghatározása a masterek számára: Ez azzal a veszéllyel jár, hogy a magas prioritású és gyors eszközök pl. processzor mellett a többi master nem jut szóhoz. egyenletes buszhasználati jog elosztás: Például a masterek igényei jelentkezésük időpontjai szerint egy várakozó sorba lesznek besorolva.
Ennek az a veszélye, hogy a fontosabb eszközök hosszú ideig várakozásra kényszerülnek A lefoglalt busz felszabadításának legfontosabb módszerei a következők: • • • release on request: a master annyi időre lefoglalja a buszt (akkor is, ha adatot nem forgalmaz), amíg a buszt másik master nem igényli. Ezt alkalmazzák leggyakrabban mikroszámítógépek buszrendszereiben release when done: a master egy tranzakcióra kapja meg a buszhasználat jogát, annak befejezése után felszabadítja a buszt. preemption: ha egy magasabb prioritású master jelentkezik, ez a tranzakciót megszakítja. Ezt blokküzemmódban van értelme alkalmazni. Dinamikus buszhasználat-szétosztás csak akkor lehetséges, ha • • • - 19 - minden master jelzi a buszfoglalási igényt, egy master csak akkor használhatja a buszt, ha igényének elfogadását visszaigazolják, a masternek jelzést kell küldenie, ha a tranzakció befejeződött. Ebből is nyilvánvaló, hogy
léteznie kell egy olyan hardver egységnek, amely a sínfoglalási kérelmeket fogadja, elbírálja és visszaigazolja. Ezt az eszközt buszarbiternek nevezzük Buszarbiter Sínfoglalási kérelmeket fogadó, elbíráló és visszaigazoló hardveregység. A buszarbitráció lehet: • • központosított, ekkor a számítógéprendszerben csak egy arbiter van. Ez lehet egy önálló hardveregység, vagy egy másik hardvereszköznek (legtöbbször a CPU-nak) valamilyen részegysége. szétosztott, akkor a számítógéprendszerben több arbiter hardver egység található (ez multiprocesszoros rendszerek esetén gyakoribb). Központosított busz arbitráció esetében a buszhasználatot igénylő masterek egy request jellel jelzik az igényeiket az arbiternek, amely az arbitrációs algoritmus szerint kiválaszt egy mastert és az igény elfogadását a „grant” jellel igazolja vissza. A soros sínfoglalás Egy közös „request” vezérlővonala van a mastereknek és ezek egy
felfűzött „grant” vezérlővonallal rendelkeznek, Soros kiszolgálás esetén az eszközök sorba vannak kötve, és sorrendjük határozza meg prioritásukat, azaz azt, hogy mikor kaphatnak jogosultságot a sín használatára. Az arbiterhez közelebbi eszköznek van nagyobb prioritása A soros sínfoglalás előnye egyszerűségében van. Hátránya, hogy a kis prioritású eszközök sokáig várhatnak Párhuzamos sínfoglalás Párhuzamos kiszolgálás esetén minden sínhasználatért folyamodó eszköz önálló kérő és engedélyező vezérlővonallal rendelkezik, és a busz arbiter prioritás szerint engedélyezi a sín igénybevételét. A prioritás meghatározása különböző eljárások szerint történhet, például: • • Egyszerű körbejáró eljárásnál minden sínhasználatot követően a korábban legalacsonyabb prioritású eszköz kapja meg a legmagasabb prioritást, az összes többi eggyel alacsonyabb prioritási szintre kerül, az LRU (Last
Recently Used) eljárásnál az az eszköz kapja meg a sínhasználat jogát, amely a sínt legrégebben vette igénybe. Ezekkel az eljárásokkal az eszköz esélyei a buszhasználat elnyerésére időben kiegyenlítődnek. A sínhez csatlakozó eszközök címzése Alapszabály, hogy mindig a master címzi a slave-t. Ez a címzés lehet: • • • helyfüggetlen (minden eszköznek egyértelmő logikai címe van), memory mapped addressing (az eszköz címzése úgy történik, mintha a főtár része lenne), broadcast (az összes slave megcímzése egyidejűleg megtörténik pl. inicializáláskor) Handshaking A sínrendszeren történő adatátvitel hibátlan lefutásának biztosítása a sínprotokoll egyik legfontosabb feladata. E témakörbe tartozik, hogy a buszon kommunikáló ADÓ egységnek valamilyen formában meg kell bizonyosodnia arról, hogy az elküldött adatcsomag megérkezett a VEVŐ egységhez. Az egyszerűsített handshaking-nek az a hiányossága, hogy az ADÓ
nem rendelkezik információval az eljárás folytathatóságáról (azaz arról, hogy sínre teheti-e a következő adatbájtot). Ezért a gyakorlatban legtöbbször az egyszerűsített handshaking továbbfejlesztését, a kétszeres kézfogás (fully interlocked handshaking) eljárását alkalmazzák. Fully Interlocked Handshaking Ennél az adatátvitel következő lépésére csak akkor lehet rátérni, ha az előző adatátvitel igazoltan, hibátlanul befejeződött. Ezt az jelzi, hogy a DAV és a DAC vezérlőjel egyidejűleg újra a 0-szintre áll be. DAV (Data Valid) – érvényes adat DAC (Data Accepted) - adat elfogadva A handshaking eljárást megfelelő áramkörökkel valósítják meg. A kettős kézfogás algoritmusa viszont ahhoz, hogy az eljárás a gyakorlatban is működjön még önmagában még kevés. Gondoljunk arra az esetre, hogy mi történik akkor, ha az ADÓ DAV vezérlőjelét a VEVŐ huzamosabb idő elteltével sem igazolja vissza. Ezt a problémát a
korszerő számítógép-rendszerekben úgy oldják meg, hogy a DAV jellel egyidőben egy számláló (timer) is aktivizálásra kerül. Ezzel figyelhetı, hogy a DAV jel visszaigazolása egy meghatározott időn belül megtörténik-e, és ha nem, akkor ez egy megszakítást eredményez, és egy hibakezelő rutin futását elindítja. A sín vezérlése Az adatátvitelben résztvevő eszközöknek összehangoltan kell működniük. Ehhez megfelelő konvenciók és algoritmusok kellenek, amelyek áramkörökben, elektromos jellemzőkben öltenek testet. A sínen történő adatátvitelben résztvevő eszközök együttműködésének szabályait buszprotokollnak nevezzük. - 20 - Az adatátvitel vezérlésének két formája lehet: Szinkron A szinkron sínvezérlés esetén az eseményeknek rögzített időpontjaik vannak, a sínen kommunikáló eszközök azonos órajellel ütemezettek. Az adás-vétel mindig azonos sebességgel történik, nem kell kapcsolatfelvétel és
visszaigazolás A szinkron sínvezérlés előnye gyorsasága, hátránya viszont, hogy közös órajelet kell biztosítani az összes sínre kapcsolt eszköz számára. Aszinkron Az események tetszıleges időpontban bekövetkezhetnek. Ezért a sínre csatlakozó eszközök zavartalan együttműködéséhez egy kapcsolatfelvétel és vétel visszaigazolási eljárás (handshake) szükséges. Az aszinkron sínvezérlés előnye, hogy nem kell azonos órajelet biztosítani az összes sínre kapcsolt eszköz számára, és a nagyon eltérő sebességű eszközök kiszolgálását is lehetővé teszi. Hátránya viszont, hogy a protokollba be kell építeni a relatíve bonyolult aszinkron „handshake” eljárást. A buszon megvalósított adatátvitelnek két alapeljárása van Blokkátvitel • • • Egy tranzakcióban több memóriaszó átvitelére kerül sor A címet csak egy alkalommal kell kiküldeni A busz csak akkor kerül felszabadításra, ha az utolsó szó is átvitelre
került Megosztott átvitel • • Az I/O eszköz küldi az adatátviteli igényt és a címet, azt a tároló visszaigazolja, azt követően a busz felszabadításra kerül. A tároló jelzi, hogy az adatok átvitelre készen állnak. Az I/O eszköz visszaigazolja az adatok átvételét, majd a busz felszabadításra kerül. 13. Az I/O eszközvezérlők, interfészek feladata, regiszterei, címzése Soros és párhuzamos port és adatátvitel. Az adó és vevő szinkronizálása Az I/O eszközvezérlők Az I/O eszközvezérlők kapcsolják össze a háttértárakat és perifériákat a számítógép I/O sínrendszerével. Ha egy program egy adatot akar pl. beolvasni, akkor az erre vonatkozó parancs az eszközvezérlőnek továbbítja, ez irányítja az I/O eszköz tevékenységét, puffereli a beérkező adatokat, átalakítja (ha szükséges) a sínrendszeren való továbbításhoz szükséges formába. Az I/O interfészek felépítése Az eszközvezérlőket fizikailag
mikroszámítógépes architektúrában sokszor az I/O sínbe behelyezett kártyaként valósítják meg, de elhelyezhetők az alaplapi vezérlőáramkör-készletben (csipkészlet) is. A vezérlő általában egy kábellel csatlakozik az irányított I/O eszközhöz. Az I/O interfészek regiszterei Az I/O eszközök és a processzor kapcsolatát az eszközvezérlőkben található regiszterek biztosítják. Minden egyes eszközvezérlő funkcionálisan legalább a következő típusú átmeneti tárolókat tartalmazza: • • • Parancs (command) regiszter, amely az eszközvezérlő által végrehajtandó műveletekhez szükséges információkat tárolja, Állapot (status) regiszter, amelyben az eszközvezérlő az I/O eszköz aktuális állapotára vonatkozó információkat tárolja (pl. egy merevlemezre egy blokk kiírása megkezdődött, vagy a nyomtatóból kifogyott a papír), Pufferregiszter, az adatkiíráshoz illetve beolvasáshoz, amelyek a folyamatban lévő I/O
műveletek adatait tárolják. Az I/O eszközök címzése, vezérlése Az Input/Output műveletek az I/O portokon keresztül valósulnak meg, amelyek lényegében a perifériákra csatlakoztatott regiszterek! Egy I/O port lehet beviteli-, kiviteli- vagy kétirányú port. A processzor az I/O eszközöket két módon címezheti: Közvetlen I/O címzéssel (I/O címtartománnyal): Ekkor az I/O utasítások a processzor utasításkészletében szerepelnek. Az IBM kompatibilis PC-k, ezt használják Közvetett címzés - Memóriába képzett I/O tartomány Ezt általában a Mackintosh-ok használják. Főként a RISC processzorokra jellemző A memóriába leképzett I/O, plusz programozási rugalmasságot biztosít: bármely, a memóriához hozzáférő utasítás felhasználható egy, a memória címtartományban elhelyezett I/O port elérésére. I/O-címek kiosztása: A címek kiosztása (az esetleges ütközések elkerülése miatt), a gép bekapcsolásakor történik (POST) - 21
- Az operációs rendszer szerepe az I/O műveletekben • • • A védelmi funkció. A taszkok által közösen használt I/O eszközöket a felhasználói programok csak felszabadítást követően vehetik igénybe, ezt az operációs rendszernek ellenıriznie kell. Eszköz specifikus szolgáltatások. (pl kódkonverzió végrehajtása különböző hardver egységek között) Az I/O műveletek hibakezelésének egységes megoldása Az operációs rendszert informálni kell, • ha az I/O eszköz befejezett egy műveletet, • ha az I/O művelet hibátlanul végrehajtásra került. Ezek az információk két módszerrel adhatók át: • Polling alkalmazásával (azaz az eszközök állapotának „körbekérdezésével”). • Vagy az I/O eszköz a megszakítási rendszer segítségével informálja az operációs rendszert az I/O eseményekrıl. Soros adatátvitel A periféria interfész és a periféria között az adatokat bitenként sorba egymás után visszük át, ezt
soros adatátvitelnek nevezzük A soros adatátvitelben mindig két eszköz vesz részt, egyik az adó, a másik a vevő szerepkörét tölti be. A soros adatfolyamban bitsorozatot viszünk át, minden bitet a jel feszültségszintjével adunk meg. Ezért a soros adatfolyam értelmezéséhez a vevőnek fel kell ismernie az adatbitek határait. Erre a célra órajelet alkalmazhatunk Hatékonyabb az az eljárás, amelyben az átvitt bitsorozatot használjuk fel az adó és vevő órajelének összehangolásához, szinkronba hozásához. Ez az jelenti, hogy előírunk egy speciális bitsorozatot, amit szinkronizáló jelnek nevezünk, aminek feladata az adó és vevő működésének szinkronizálása, az órajelképzés időbeli összehangolása. Minden soros adatátvitelhez egy kommunikációs protokollra van szükség, amely a vevő és az adó összehangolt működését biztosítja. Soros adatátvitel távbeszélő vonalakon A MODEM (modulátor/demodulátor) egy analóg-digitális
és digitális- analóg konverziót megvalósító eszköz, Az adatátvitel iránya és egyidejűsége szerint egy összeköttetés lehet: • • • szimplex: ha az adatátvitel csak egy irányban folyhat, azaz az adó és vevő szerepe nem változhat, fél-duplex: ha az adatokat egy vezetéken mindkét irányba továbbíthatjuk, de az adatátvitel egy adott időben csak az egyik irányban folyik. Ebben az esetben tehát az adó és vevő időnként szerepet cserél, teljes duplex: amikor az adatokat egy időben mindkét irányban továbbítani lehet. Ez két vezetéket tételez fel A soros adatátvitelnél az adatok tömörítése is fontos, mert ha sikerül az átviendő adatokat jelentősen összetömöríteni, akkor az adatátvitel kisebb teljesítményő összeköttetések esetén is gyors lehet. A modemek szabványos hibajavító és tömörítő eljárásai az MNP (Microcom Networking Protocol) protokollok. Az adatátvitelnek fontos jellemzője a sebessége, melyet Baud-ban
mérünk. 1 Baud sebességű az az átvitel, mely 1 másodperc alatt 1 jelet visz át. Ha az átvitt jelek bináris értékek, akkor a Baud megegyezik a bit/szekundummal A soros adatátvitel két alaptípusa: Szinkron adatátvitel Az adó és vevő szinkronizálását a SYN bitcsoport = 01111110 érzékelése biztosítja a vevő részéről. Az átviendő érdemi adatokat mindig két SYN jel vezeti be, az átvitt bitek mennyisége rögzített, azaz ezek blokkszervezésűek. Szinkron soros adatátvitel: A szinkron adatátvitel órajellel vezérelt, azaz az egyes adatokhoz tartozó jelek csak egy meghatározott alapidőtartam egészszámú többszörösei lehetnek. Aszinkron adatátvitel Az adatok elejét és végét két speciális jel a START és STOP jel jelzi, az ezek között elhelyezkedő jelek értelmezendők adatként. Ebben az esetben az átvitt bitek mennyisége változó is lehet. Az aszinkron átvitelnél nem szükségképpen van folyamatos kapcsolat az adó és vevő
között, ezek szinkronban csak az adatátvitel ideje alatt vannak. Az adatátviteli eljárások lehetnek karakterorientáltak, ekkor az átvitel egysége az egy karakter kódjának megfelelő bitszám (ez még a távadatfeldolgozás kezdeteitől származtatható, amikor a karakterekből álló szöveges információ átvitele volt a jellemző). A hálózatok, a hang- és képátvitel elterjedésével kerültek előtérbe a bitorientált eljárások, melyek már nemcsak a karakterkódoknak megfelelő számú bitsorozatok lépésenkénti átvitelét is biztosítják, hanem nagyobb mennyiségű bit (például képek) is továbbítható távadatfeldolgozással. Párhuzamos adatátvitel A periféria interfész és a periféria között az adatokat bitcsoportonként egyszerre visszük át, ezt párhuzamos adatátvitelnek nevezzük. - 22 - Ha egy ilyen bitcsoportot egyszerre tudunk átvinni, akkor az információ átviteli sebessége nagyobb lesz. Ehhez azonban annyi, biteket átvivõ
adatutat kell az ADÓ és a VEVÕ között kialakítani, ahány bitbõl áll a bitcsoport. Természetesen külön vezeték(ek) szükségesek a ADÓ-VEVÕ szinkronizmus megvalósítására is. A soros működéső I/O eszköz interfészt soros, a párhuzamos működésőt pedig párhuzamos portnak is szokták nevezni. Párhuzamos port Párhuzamos vagy nyomtatóport (LPT) feladata: 8 bites szavak átvitele kézfogásos eljárással ( küldés, visszaigazolás). USB port Az elmúlt évek technikai fejlődésének eredményeként egyre nagyobb sebességű soros adatátvitel megvalósítására nyílt lehetőség, így a párhuzamos adatátvitel gyorsasága ma már nem jelent előnyt. Erre példa, hogy a mikroszámítógépek körében gyorsan terjed az úgynevezett univerzális soros buszrendszer (USB = Universal Serial Bus), mely az összes kis és közepes teljesítményő periféria csatlakoztatását biztosítja a számítógéphez egy nagysebességű soros adatátvitellel. 14. A
központi tár szerepe, áramköri megvalósítása ROM és RAM áramkörök típusai Dinamikus RAM belső felépítése. Átlapolt memóriakezelés A ROM (Read Only Memory = csak olvasható memória) Gyárilag beprogramozott, csak olvasható és a felhasználó által megváltoztathatatlan memória. Tartalma a számítógép kikapcsolása után is megőrződik. A ROM-ban tároljuk például az operációs rendszer fixen programozott részét (például PC-knél a BIOS-t ) PROM = Programable (programozható) ROM. Ebbe a memóriatípusba a felhasználó egyetlen alkalommal beírhatja a számára állandóan megőrzendő adatokat vagy programokat. Ezt követően a PROM tartalma már nem változtatható; • EPROM = Erasable Programmable ROM tároló az adatokat elektromos töltés formájában őrzi meg. Ez a ROM tároló ibolyántúli (UV) fénnyel törölhető, majd újra írható. Ehhez természetesen megfelelő készülék és szakértelem szükséges • EEPROM = Electrically
Erasable Programmable ROM tárolók újraprogramozásuk előtt egy elektronikus impulzussal törölhetık. A ROM tárolók elérési ideje kialakulásuk idejében a RAM tárolókéval körülbelül azonos volt, ma már viszont lényegesen lassúbbak. Ezért a gyakran használatos programrészeket (pl. PC-knél a BIOS-t) a mai gépekben átmásolják egy RAM területre Ezt árnyék memóriának (shadow) nevezzük. • Flash-memória Az 1980-as évek végén jelent meg a „nem felejtő” félvezető memóriáknak egy új típusa a flash memória. A flash memóriák alapját az EPROM technológia szolgáltatja, de működésükben az a különbség, hogy blokkonként törölhetők és elektronikusan újraírhatók. E memóriatípus előnye az is, hogy nincs szükségük tápellátásra, tartalmukat e nélkül is megőrzik. A RAM (Random Access Memory = véletlen eléréső memória) A programok által írható és olvasható memória. Tartalma a számítógép kikapcsolása után
visszavonhatatlanul elvész Hibafelismerés és javítás A memóriahibák felismerését a paritásellenőrzés szolgálja. Ehhez minden bájt kiegészítésre kerül egy paritásbittel, ami alapján a memóriavezérlő a hibás memóriaműveleteket felismeri. Ez természetesen csak 1 bitnyi hibák esetén lehetséges A statikus RAM A statikus RAM-ok (SRAM) az adatokat félvezető memóriában (flip-flop) tárolják. Ennek állapota mindaddig fennmarad, amíg ezt újabb írással meg nem változtatjuk, vagy a tápfeszültség meg nem szűnik. A statikus chipek nagyon gyorsak, de nagyon drágák A dinamikus RAM felépítése, működése A DRAM IC-kben egy bit tárolását biztosító elemi cella egy kondenzátorból és egy tranzisztorból épül fel. A tranzisztor félvezető eszköz, amelyet túlnyomórészt gyenge villamos jelek erősítésére szolgál. Kondenzátor az az áramköri elem, amely elektromos töltést képes tárolni. Az elemi cellák töltése viszont egy idő után
kisül, ezért ennél a memóriatípusnál a memória tartalmát meghatározott időközönként fel kell frissíteni. A frissítés cellacsoportonként történik, amely idő alatt a memória a processzor számára nem elérhető. A DRAM memóriáknak kiolvasás után szükségük van egy „feléledési” időre. A DRAM mátrix-szervezéső. Ezek szerint a memóriacellát megcímezni két lépcsőben lehet: • • először a mátrix egy sorát címezzük meg, ezt követően a sorból kiválasztjuk az adott oszlophoz tartozó cellát. A szaknyelvben a sorokat lapoknak (page) is szokták nevezni. Ekkor a lapméret az oszlopok számát jelenti A DRAM-tárolómátrixok az IC típusának függvényében több tárolómezből épülnek fel. - 23 - A memóriából való kiolvasáshoz a vezérlő először kiválasztja a megfelelő sort, amihez a megfelelő sorcímet elhelyezi a címvezetéken, és bekapcsolja a RAS (Row Address Strobe) jelet. Ezután várni kell, majd a
címvezetékre kerül az oszlopjel, és a CAS (Column Address Strobe) jel. A memória működésének legfontosabb paraméterei a következők: • • • • • RAS előtöltési idő: Az az időtartam, amely alatt a memória áramkörei visszaállnak az újabb hozzáféréshez szükséges alapértékekre. RAS hozzáférési idő: A RAS vezérlőjel kiadása és az adatvezetéken az adat megjelenése között eltelt idő. CAS hozzáférési idő: A CAS vezérlőjel kiadása és az adatvezetékeken az adat megjelenése között eltelt idő. RAS-CAS késleltetési idő: Az az időtartam, amely után a RAS vezérlőjelet a CAS vezérlőjel követi. Ciklusidő: Két memóriahozzáférés közötti idő. Átlapolt memóriakezelés Ennek alapgondolata a következő: a memóriát egymástól függetlenül címezhető és olvasható részekre, úgynevezett memóriabankokra osztjuk fel. Ennek elvét láthatjuk a következő ábrán, összehasonlítva a hagyományos megoldással:
Feltételezve, hogy a processzor általában a memóriát cím folytonosan olvassa, a 0. memóriabankból kiolvasott adat hozzáférése alatt az 1. memóriabankban lévő következő címen lévő adat már megcímezhető Ez kissé leegyszerűsítve azt jelenti, hogy cím folytonos olvasás esetén az adatok kiolvasása kb. kétszeres sebességgel történhet 15. Monitorok típusai, paraméterei, működési elve A monitorvezérlő kártya feladata, felépítése, jellemzıi (felbontás, színmélység, képmemória mérete) és működése. A monitorok típusai Katódsugárcsöves monitorok (CRT) A monitor a számítógép által küldött szövegek és grafikus képek képernyőn való megjelenítésére szolgáló eszköz. A karaktereket és képeket apró pontokból állítja össze. A katódsugárcsöves monitornál a képernyőre eső elektronsugár felvillantja a katódsugárcső előtt elhelyezkedő foszforréteggel bevont felület egy pontját. Ezekbıl a fénypontokból
áll össze a kép A CRT monitornak az alapja, a televízióhoz hasonlóan, a katódsugárcső. Ennek fő részei: • • • • Elektronágyú, amely egy fűtőszál által felmelegített katód elektronsugarat bocsát ki, amelyet a vezérlő rácsra adott feszültséggel lehet be- illetve kikapcsolni. Színes monitoroknál összesen három elektronágyú van, minden alapszínnek megfeleltethető (piros, zöld, kék) egy. Eltérítő tekercsek, amelyek olyan mágneses teret hoznak létre, amely hatására az elektronsugár a bal felső sarokból kiindulva soronként végigpásztázza az egész képernyőt. Árnyékmaszk, amely a rajta található lyukak segítségével biztosítja, hogy mindegyik elektronsugár csak a neki megfelelő színű foszforpontot találja el. Foszforréteggel bevont üveg képernyő, amelyen a három színes fénykibocsátó anyag úgy van elhelyezve, hogy minden képernyőponthoz tartozzon egy piros, zöld és egy kék foszforpont. Ezen három
alapszínnek a különböző árnyalataiból áll össze a felhasználó számára érzékelhető színes képpont. Folyadékkristályos monitorok (LCD) A folyadékkristályos kijelzők fényáteresztő elven működnek: egy állandó háttérvilágításból két átlátszó lap közé szorított folyadékkristály vezérlésével megfelelő mennyiségű fényt bocsátanak az előlapra. A kijelző minden cellájára alkalmazott feszültség külön vezérelhető, aminek hatására a folyadékkristály-molekulák egy bizonyos irányba állnak be, és így több vagy kevesebb fényt eresztenek át. A folyadékkristályos anyag nyugalmi állapotában igazodik a belső felület által meghatározott irányhoz, így csavart állapotot vesz fel. A kijelző első és hátsó oldalára egy-egy polárszűrőt helyeznek, amelyek a fény minden irányú rezgését csak egy meghatározott síkban engedik tovább. A csavart elhelyezkedéső folyadékkristály különleges tulajdonsága, hogy a
rá eső fény rezgési síkját elforgatja Ha hátul megvilágítják a panelt, akkor a hátsó polarizátoron átjutó fényt a folyadékkristály elforgatja, így a fény az első szűrőn átjut, és világos képpontot kapunk. Ha kristályokra feszültséget kapcsolunk, nem forgatják el a fényt, az eredmény pedig fekete képpont Itt a képpontoknak megfelelő piros, zöld és kék színeket egyszerű színszűrőkkel állítják elő. - 24 - TFT (Thin Film Transistor) monitor Aktív mátrixos technológia, ami azt jelenti, hogy minden cellához tartozik egy tranzisztor, ami a cella ki- és bekapcsolását gyorsítja, és ez által csökkenti a monitor válaszidejét. Az LCD technológián alapuló TFT minden egyes képpontja egy saját tranzisztorból áll, a két üvegfelületre felvitt átlátszó elektróda között elektromos teret létesít, hatására az elektródák között elhelyezkedő folyadék kristályai párhuzamossá rendeződnek, így nem engedik át a
polarizált fényt. A tranzisztorok aktív állapotban nem bocsátanak ki fényt. Az ilyen kijelzőket gyakran aktív-mátrixos LCD-nek is szokás nevezni. Plazmamonitor (PDP) A plazmamonitor nem más, mint piciny fénycsövek alkotta mátrix, amely függőleges és vízszintes elektródamezők között semleges gázt (neon, argon, xenon) tartalmaz. Ha egy cellához tartozó elektródákra magas feszültséget kapcsolnak, akkor a kisülés hatására a cellában lévő gáz nagy UV-sugárzással kíséretében ionizálódik és átmegy plazmába. A plazma által kibocsátott ultraibolya sugarak gerjesztik az üveg felületén lévő színes foszfort, amely világítani kezd. Minden képponthoz három színes (piros, zöld és kék) cella tartozik A PDP működése az LCD-nél is egyszerűbb. A cél az, hogy a három alapszínnek megfelelő képpont fényerejét szabályozni lehessen Mivel minden egyes képpont egymástól függetlenül, akár folyamatos üzemben vezérelhető, a
monitor, villódzástól mentes, akár erős kontrasztarányú, tökéletes színekkel rendelkező képet is adhat, bármely szögből nézve. A plazmamonitorok legnagyobb hátránya a képpontok meglehetősen nagy mérete. Ezért ezeket a lapos kijelzőket nagyméretű televízióknál vagy prezentációs paneleknél alkalmazzák. A plazmakijelzők első, monokróm típusa 1964-ben Gábor Dénes plazmával kapcsolatos kutatásai nyomán készült. A monitorok jellemző paraméterei • • • • • • • • • • • • Képfrissítési ráta: az a sebesség, amely alatt a raszterletapogatás elvén működő monitor elektronsugara a teljes képernyőt végigpásztázza. Mértékegysége a másodpercenként megjelenített teljes képkeretek száma, amely a villogásmentes kép érdekében legalább 25 Hz kell legyen. Manapság azonban a minőségi megjelenítés elfogadott minimuma 75 Hz Folyamatos (non-interlaced) vagy váltott soros (interlaced) képalakítás. Az
interlace üzemmód esetében a monitorok úgy mőködnek, mint a TV: az egyik képfrissítési lépésnél csak a páratlan sorokat rajzolják ki, a következő ütemben pedig a párosakat. Felbontás: a képernyőn megjeleníthető önállóan vezérelhető pixelek számát adja meg sor x oszlop bontásban. Multiszinkron: felbontás változtatásának képessége. A multiszinkronos monitor többféle vízszintes és függőleges szinkronizációs frekvenciával tud működni, mivel automatikusan érzékeli a bejövő videójel szinkronizációs frekvenciáját. Utánvilágítás: a katódsugárcsövekben használt foszfor tulajdonsága, amely által az elektronsugár által felvillantott pont még egy ideig látható marad. A korszerű, magas képfrissítési rátával dolgozó monitoroknál ez az érték nem túl nagy Alacsony sugárzás: a monitor által keltett elektromágneses tér megfelel az erre vonatkozó munkavédelmi elıírásoknak. Képernyőméret (képátló): a
képcső látható része átlójának collban kifejezett értéke. Képarány: A kijelző oldalhosszúságainak aránya. A legáltalánosabb a 4:3 arány, illetve a 16:9 Kontraszt: A részletgazdagságot jellemzı tulajdonság. Válaszidő: LCD paneles monitorok jellemzője. Azt az időt jelöli, amennyi ahhoz kell, hogy egy képpont fényereje megváltozzon Fényerő: A monitor fényességét jellemzi. Látószög: Az a paraméter, mely megadja, hogy a monitor milyen szögből látható. Videókártya A videokártya felépítése A monitorvezérlő kártya feladata a monitoron megjelenítendő kép előállítása. Ez a kép pontokból tevődik össze, amelyeket pixeleknek neveznek. A korszerű grafikus kártyák minden pixelt önállóan képesek vezérelni, a régi kártyák karakteres üzemmódja ma már kevésbé használt. A megjelenítésre előkészített kép digitális változatát a kártya RAM memóriájában tárolják, amely így egy képkeret puffer (frame buffer)
szerepét tölti be. Ebben a videomemóriában minden pixelnek egy n bites bejegyzés felel meg, amelynek a hossza (a színmélység) n meghatározza az ábrázolható színek számát (2 ). A 16 bites színmélységet "High Colour"-nak neveznik, a 24 bitest pedig - amely valósághű megjelenítést tesz lehetővé - "True Colour"nak. (A három alapszínnek megfelelően minden bejegyzés három, ez utóbbi esetben egy-egy bájtos mezőre oszlik) A videokártya paraméterei (felbontás, színmélység, képmemória) A monitorvezérlő kártya lényeges jellemzője a felbontás, amely a megjeleníthető pixelek számát adja meg sor x oszlop formában. Az eddigiekből következik, hogy a videomemória mérete, a felbontás és a színmélység között a következő összefüggés áll fenn: Videómemória mérete (bájt) = sorok száma X oszlopok száma X színmélység / 8 VGA A kártya 640x480 felbontásban tud megjeleníteni egyszerre 16, illetve 256 féle színt
egy 262 144 színt tartalmazó palettáról. SVGA - 25 - Ez a szabvány több felbontást tartalmaz: a kisebb monitorokon használható 800x600-tól a nagyobb monitorokra alkalmas 1024x768 vagy 1280x1024-en át akár az 1600x1200-ig. A kártya képmemóriájának mérete határozza meg a színmélységet és a kép felbontását, de ez utóbbi nem lehet nagyobb a használt monitor maximális fizikai felbontásánál. A videokártya működése A monitorvezérlő kártya a következő fő elemekbıl épül fel: • AGP interfész: puffereken keresztül biztosítja a kártya kapcsolatát az AGP sínnel. • Videomemória (frame buffer): RAM memória a megjelenítendő kép digitális tárolására és a 2D és 3D gyorsító algoritmusokhoz. • Grafikus processzor: vezérli a frame buffer feltöltését, és hardver alapon egyre több grafikus algoritmust (2D és 3D gyorsítás) is realizál; • Video-ROM: a kártyához tartozó video ROM-BIOS-t, valamint a grafikus módok és a
karakterkészletek definícióit tartalmazza; • RAMDAC: a képernyőn történő megjelenítéshez szükséges digitális-analóg konverziót végzi, előállítva az analóg RGB jeleket a monitor számára. A monitorvezérlő kártyák teljesítményében a műszaki paraméterek mellett meghatározóak a driverek. A driver lefordítja az alkalmazás által kívánt képet a grafikus processzor által értelmezhető utasításokra. A 3D gyorsítás A 2D/3D gyorsítás lényege, hogy a két-, illetve a háromdimenziós képek elıállításához szükséges számítások egy részét a grafikus kártyán lévő csip veszi át, ezáltal tehermentesítve a központi processzort. Általában a CPU végzi el a 3D ún. modellterében lévő mértani alakzatokkal kapcsolatos számításokat (például nagyítás, mozgatás, forgatás), míg a grafikus processzor feladata a monitoron megjelenı kép pixeleinek a kiszámítása (renderelés). A 2D gyorsítás olyan feladatokat végez el, mint
a Windows-ablakozás alapfunkciói (pl. egy ablak eltolása), vagy a vonalhúzás és színkitöltés. A 3D gyorsító a rendereléshez olyan technikákat használ mint: • textúrakezelés: mintázatok, kétdimenziós kép felületekre való leképzése; • mip-mapping: textúra több felbontásban való használata közelítésnél/távolodásnál; • anisotrop filtering: ferde textúrán levı felirat szőrése; • bilinear filtering: négy szomszédos texel (textúra-pont) átlagolása; • bump-mapping: a mélység illúziójának keltése egy felszínen; • anti-aliasing: az élek "kisimítása"; • z-buffering: minden pixelhez egy z-érték kiszámítása és tárolása a láthatóság • (takarási viszonyok 3D-ben) megállapítása végett; • Gouraud árnyékolás: árnyékolt kép kiszámítása intenzitás-interpolálással. A grafikus kártyák kényelmes felhasználásához szükség van - a már említett driver programon kívül - egy alkalmazói
program interfészre (API), amely lehetővé teszi, hogy az alkalmazás szabványos parancsokat használjon a kép megjelenítésére. Ilyen csatolóprogram a Direct X (Windows alatt) és az Open GL (Unix alatt): 16. Analóg és digitális hírközlési csatornák jellemzése (kapacitás, zajok hatása), átviteli közegek Vonalak megosztásának módszerei. Digitális jelek kódolása A paritásbit és a CRC Modemek feladata. ISDN, ATM, DSL technológiák Az analóg jelek A rádió- és a televízióadást, a telefonforgalmat a közelmúltig a levegőn és vezetékeken keresztül, elektromágneses hullámok formájában továbbították. Ezeket a hullámokat analógnak nevezzük, mert a formájuk megegyezik az adókészülék által átalakított fényés hanghullámokéval A fény- és hanghullámok méretének és alakjának változásával arányosan változik az adást vivő jel Más szóval az elektromágneses hullámok analóg módon változnak a fény- és a hanghullámokkal.
Az elektromágneses hullámok növekvő rezgésszám (frekvencia) szerint az alábbiak: • rádióhullámok (hosszú-, közép-, rövid- és ultrarövidhullámok), • mikrohullámok, • infravörös sugárzás, • látható fény, • ultraibolya sugarak, • röntgensugarak, • γ-sugarak, • kozmikus sugarak. Az analóg sávszélességet azzal mérjük, hogy az egyes jelek mennyit foglalnak el az elektromágneses spektrumból. Az analóg sávszélesség alapegysége a hertz (Hz), más néven periódus per másodperc. Analóg kód: amplitúdóban és időben folytonos (véges idő alatt végtelen információt hordoz, de a mindig jelenlevő zajok miatt csak véges használható fel). - 26 - Digitális kód: amplitúdóban és időben diszkréten értelmezett (véges idő alatt véges információt hordoz). Analóg jelből digitális jel mintavételezéssel (adott időpontban mekkora a jel analóg értéke) majd kvantálással (a mintavett analóg érték n bites digitális
számmá alakításával) nyerhető. Zaj Az átvitel során a jelhez zaj adódik, amelyet szintén felerősít az erősítő. Mennél több analóg jelfeldolgozó áramkörön halad át az analóg jel, annál jobban romlik a jelnek a zajhoz képesti értéke (jel/zaj viszony.) A zajforrások sokfélék lehetnek Analóg áramköröknél a hálózati 50Hz az egyik nagy zajforrás. Rádiós átvitelnél a légköri zavarok okoznak jelentős zajt De ha minden külső zajt sikerülne is kiküszöbölni, maguk az áramkörök akkor is termelnének valamekkora zajt (termikus zaj). A digitális átvitel A digitalizált információ az analóghoz képest sok nagyságrenddel pontosabban vihető át, ill. dolgozható fel A digitális információ helyes átvitelét egyrészt áramkörileg az analóghoz képest sokkal nagyobb biztonsággal meg lehet oldani, mert 1 bitnyi információ továbbításakor csak 2 érték fordulhat elő pl. a 0-át és az 1-et reprezentáló feszültség vagy áram
érték, és ez viszonylag nagy zaj mellet is jól megkülönböztethető megfelelő áramköri megoldásokkal. Másrész megfelelő kódolásal az előforduló hibákat jelezni, sőt javítani is lehet. A digitális jelkezelés esetében minden információ továbbítása bitek formájában történik, függetlenül az információ fajtájától. Még a legkisebb sávszélességő digitális csatornán keresztül is korlátlan mennyiségű információ vihetı át. Adatátviteli közeg - Vezetékes Csavart érpár (UTP, STP) A csavarr érpár két szigetelt, egymásra spirálisan felcsavart rézvezeték. Ha ezt a sodrott érpárat kívülrõl egy árnyékoló fémszövet burokkal is körbevesszük, akkor árnyékolt sodrott érpárról (STP) beszélünk. A csavarás a két ér egymásra hatását küszöböli ki, jelkisugárzás nem lép fel. Az épületekben lévõ telefon hálózatoknál is csavart érpárokat használnak. Ma már akár 100 Mbit/s adatátviteli sebességet is lehet
ilyen típusú vezetékezéssel biztosítani. Alkalmasak mind analóg mind digitális jelátvitelre is, áruk viszonylag alacsony. A zavarokkal szemben való érzékenységük tovább növelhetõ, ha árnyékolást alkalmazunk a csavart érpár körül. A kategóriák közötti egyetlen lényeges különbség a csavarás sűrűsége. Minél sűrűbb a csavarás, annál nagyobb az adatátviteli sebesség. Koaxális kábelek A koaxiális kábelek három igen lényeges jellemzõje van: a hullámellenállás, a hosszegységre eső késleltetési idő és a hosszegységre eső csillapítás. Egy kábel hullámellenállása megegyezik annak az ellenállásnak értékével, amellyel a kábelt lezárva nem alakulnak ki állóhullámok. Az egyszeres árnyékoló harisnya nem fed tökéletesen, nem véd teljesen a környezet zavaraitól, ezért kettős árnyékoló harisnyát vagy egyszeres és kétszeres alumíniumfólia árnyékolást használnak olyan kábelekben, amelyeket zavarokkal erõsen
terhelt környezetben alkalmaznak. Alapsávú koaxiális kábelek Az alapsáv elnevezés még abból az idõbõl származott, amikor telefonbeszélgetésekre alkalmazták a kábeleket. Az alapsávú koaxiális kábeleket leggyakrabban helyi számítógép-hálózatok kialakítására alkalmazzák. Az átviteli sávszélesség nagymértékben függ a távolságtól. Tehát kisebb távolságon nagyobb sebesség is elérhetõ Ethernet hálózatokban az alapsávú koaxiális kábelek két típusa ismert az ún. vékony (10Base2) és a vastag (10Base5) A típusjelzésben szereplõ 2-es és 5-ös szám az Ethernet hálózatban kialakítható maximális szegmenshosszra utal: vékony kábelnél ez 200 méter, vastagnál 500 méter lehet. • • A vékony koaxiális kábeleket az Arcnet és Ethernet helyi hálózatok kialakításánál használnak. Csatlakozásra BNC dugókat és aljzatokat használnak. Mivel a csatlakozások mindig a kábelezés legkritikusabb pontjai, célszerűbb a
biztonságosabb kötést biztosító sajtolt (krimpelt) csatlakozók használata, a csavaros vagy forrasztott BNC csatlakozókkal szemben. A vastag koaxiális kábelekt is az Ethernet hálózatok kialakításánál alkalmazzák. A vastag kábel előnye, hogy lényegesen kisebb a csillapítása mint a vékony változatnak, ezért nagyobb távolságok hidalhatók át vele. Mivel a kábel vastagságánál fogva merev, ezért nehezen szerelhetõ. Csatlakozások kialakítása is speciális: ún vámpírcsatlakozókat alkalmaznak Ez a kábelre kívülről rásajtolt csatlakozó, amely a rásajtoláskor úgy szúrja át a kábel szigetelését, hogy a külső árnyékolással és a belső vezetékkel is önálló elektromos érintkezést biztosít. Szélessávú koaxiális kábelek A másik fajta koaxiális kábelrendszer a kábeltelevíziózás szabványos kábelein keresztüli analóg átvitelt teszi lehetõvé. Digitális jelek analóg hálózaton keresztül átviteléhez minden
interfésznek tartalmaznia kell egy konvertert, amely a kimenő digitális jeleket analóg jelekké, és a bemenõ analóg jeleket digitális jelekké alakítja. Az egyes csatornák egymástól függetlenül képesek pl analóg televíziójel, csúcsminõségű hangátviteli jel, vagy digitális jelfolyam átvitelére is. Az alapsávú és a szélessávú technika közötti egyik legfontosabb különbség az, hogy a szélessávú rendszerekben analóg erősítõkre van szükség. Ezek az erõsítõk a jelet csak az egyik irányba tudják továbbítani, ezért csak szimplex adatátvitelt képesek megvalósítani - 27 - Üvegszálas kábel A jelenlegi legkorszerűbb vezetékes adatátviteli módszer, az üvegszál technológia alkalmazása. Az információ fényimpulzusok formájában terjed egy fényvezető közegben, praktikusan egy üvegszálon. Az átvitel három elem segítségével valósul meg: fényforrás - átviteli közeg - fényérzékelő. A fényforrás egy LED dióda,
vagy lézerdióda. Ezek a fényimpulzusokat a rajtuk átfolyó áram hatására generálják A fényérzékelõ egy fotótranzisztor vagy fotodióda, amelyek vezetési képessége a rájuk esõ fény hatására megváltozik. Az átviteli közeg egyik oldalára fényforrást kapcsolva a közeg másik oldalán elhelyezett fényérzékelő a fényforrás jeleinek megfelelõen változtatja az vezetőképességét. Fényveszteség három részbõl áll: • • • Visszaverõdés (reflexió): A két közeg határán következik be. A határfelületek gondos összeillesztésével minimálisra csökkenhetõ Csillapítás: A közegben jön létre. Az üvegben lévõ szennyezõdések okozzák Közegek határfelületén átlépõ fénysugarak. Ha a közeg határfelületére érkező fénysugár beesési szöge elér egy kritikus értéket, akkor a fénysugár már nem lép ki a levegőbe, hanem visszaverődik az üvegbe. Az üvegszálban az adóból kibocsátott számos fénysugár fog ide-oda
verõdni, az ilyen optikai szálakat többmódusú üvegszálnak nevezik. Ha azonban a szál átmérõjét a fény hullámhosszára csökkentjük, akkor a fénysugár már verődés nélkül terjed. Ez az egymódusú üvegszál Ahogy az eddigiek szerint is nyilvánvaló, az üvegszálon adott hullámhosszú fényt használva csak egyirányú adatátvitel képzelhetõ el. Ha az üvegszálon több eltérő hullámhosszú fényt viszünk át, akkor hullámhossz multiplexelést valósítunk meg, és több csatorna alakítható ki egy üvegszálon. Természetesen ilyenkor a fény be- és kicsatolása fényszűrőkön, prizmákon keresztül valósítható meg Adatátviteli közeg – Vezeték nélküli Infravörös, lézer átvitel A lézer és infravörös fényt alkalmazó ADÓ-VEVÕ párok könnyen telepíthetõk háztetõkre, a kommunikáció teljesen digitális, a nagyobb távolság áthidalását lehetővé tévő energiakoncentrálás miatt rendkívül jól irányított, amely szinte
teljesen védetté teszi az illetéktelen lehallgatás, illetve külsõ zavarás ellen. Sajnos a láthatósági feltételek miatt az eső, köd légköri szennyezõdések zavarként jelentkeznek. Rádióhullám Nagyobb távolságok áthidalására gyakran használják a mikrohullámú átvitelt. A jelismétlést itt relézõ állomásokkal oldják meg Problémaként jelentkeznek a viharok, villámlás, egyéb légköri jelenségek. A frekvenciasávok kiosztása átgondolást igényel és hatósági feladat. Szórt spektrumú sugárzás Kisebb távolságokra (kb. 1 km távolságig), lokális hálózatoknál használt megoldás, Széles frekvenciasávot használ, amit egy normális vevő fehér zajnak érzékel. (Azonos amplitúdó minden frekvencián) A szórt spektrumú vevő felismeri és fogja az adást Antennaként megfelel egy darab vezeték. Műholdas átvitel A műholdakon lévő transzponderek a felküldött mikrohullámú jeleket egy másik frekvencián felerősítve
visszasugározzák. Hogy a földön lévő műholdra sugárzó, illetve a műhold adását vevő antennákat ne kelljen mozgatni, geostacionárius pályára állított műholdakat használnak. Az Egyenlítõ fölött kb 36000 km magasságban keringő műholdak sebessége megegyezik a Föld forgási sebességével, így a Földrõl állónak látszanak. A hírközlési vonalak megosztása Meg kell különböztetnünk a csatornákat, amelyeken az információcsere történik, és a felhasznált, tényleges, fizikailag létező összeköttetéseket biztosító vonalakat. Vonalak csatornák közötti megosztásának lehetőségei: Multiplexelés Az adott vonal előre meghatározott, rögzített módszer szerinti felosztását csatornákra több adó, illetve vevő között multiplexelés-nek nevezzük. Frekvencia osztásos multipkexelés Az adó oldalon a csatornák jeleit egy-egy vivőfrekvenciára ültetik (a vivőfrekvenciát a jelekkel modulálják), ezeket összegzik, az összegzett
jelet átviszik a vevő oldalra, és ott ezeket szűrőkkel választják szét. Időosztásos multiplexelés A nagyobb sávszélességű adatvonalat időben osztják fel több, elemi adatcsatornára. - 28 - Kapcsolási módok Vonalkapcsolt hálózat Erre a hálózattípusra legjobb példa a telefonhálózat. A fizikai kapcsolat csak az összeköttetés idejére áll fenn Amíg ez a két eszköz beszél egymással, más eszközök nem csatlakozhatnak a vonalra. Ezután a két állomás úgy képes kommunikálni, mintha pont - pont összeköttetés valósult volna meg közöttük. Üzenetkapcsolás Ennél a kapcsolási módnál nincs szükség előre kiépített fizikai összeköttetésre adó és vevő állomás között. Az ilyen típusú kapcsolási hálózatok esetében, ha valamely állomás korlátozatlan hosszúságú üzenetet kíván küldeni egy másiknak, akkor az üzenethez csatolja a címzett azonosítóját, majd az üzenet az átvivőhálózatra kerül, amelyen át
csomópontról csomópontra halad, míg a rendeltetési állomásra nem ér. A módszer előnye: Az üzenet azonnal indulhat az adó állomásról, amint az első vonalszakasz felszabadul, és nem kell megvárni a teljes útvonal szabaddá válását. Nem szükséges, hogy az üzenet továbbításakor a címzett szabad legyen Az esetleg foglalt címzett felszabadultáig az üzenet a kapcsolók egyikén várakozik. Csomagkapcsolt hálózatok A tetszőleges hosszúságú üzenetek meghatározott terjedelmű csomagokban érkeznek meg, mivel a csomag hossza maximálva van. Amennyiben a csomagkapcsoló hálózatban a csomagméretet meghaladó üzenetet kell átvinni, akkor a forrásállomás az üzenetet részekre tördeli. Az egyes üzenetdarabok így elszakadhatnak egymástól, és csak a célállomásnál áll össze belõlük a teljes egész eredeti üzenet. Egy csomagkapcsolásos hálózat egyidejûleg több üzenetet továbbít az átviteli vonalakon. Ezt az átviteli eljárást
multiplexelés-nek nevezik. A csomagkapcsolás nagyon hatékonyan képes a vonalak kihasználására, mivel az adott két pont közötti összeköttetést több irányból érkező és továbbhaladó csomag is használja. Két jellegzetes változata létezik: Összeköttetés nélküli Az összeköttetés nélküli hálózatban a csomagok átvitelét az ún. datagramszolgálat végzi Datagramnak a teljes rendeltetési címet tartalmazó csomagot nevezzük A csomagok külön továbbítódnak, és útközben a sorrendjük is változhat. Hátránya a bonyolult csomagösszeépítés Virtuális összeköttetés A csomagok átvitelét egy virtuális adatáramkör biztosítja. Ez hívás útján jön létre, és a bontásig áll fenn Ezen a rögzített adatúton kerülnek át a csomagok, amelyeknek csak az adatáramkör azonosítóját kell tartalmazniuk a teljes cím helyett. A virtuális összeköttetést az jellemzi, hogy a csomagok ugyanabban a sorrendben érkeznek meg rendeltetési
helyükre, mint ahogyan elindultak. Digitális jelek vonali kódolása A vonali kódolás a digitális jelátvitelben az a művelet, mely során a továbbítandó bitsorozathoz egy olyan jelsorozatot - vonali szimbólumsorozatot - rendelünk, mely az átviteli úton (a csatornán) a legkisebb torzítással halad át. Sebesség definíciók a digitális jelátvitelben: • bitsebesség: az időegység alatt továbbított információ mennyisége [bit/s] • jelzési sebesség: az időegység alatt továbbított vonali szimbólumok száma [Baud] NRZ - Non Return to Zero Nullára nem visszatérő kódolásnál mindig az a feszültségszint van a vonalon, amelyet az az adott bit meghatároz. RZ – Return to Zero Nullára visszatérő kódolás az előzőhöz képest annyi változást tartalmaz, hogy a 0 szintet 0V, az 1 szintet viszont a bitidő felében +V, a félében pedig 0V jelenti. NRZI Az 1 bit érték átviteli idejében a megelőző időtartamban alkalmazott feszültségszint
ellentettjét alkalmazzuk, a 0 bit érték átviteli idejében pedig tovább tartjuk a megelőző bit időtartamban alkalmazott feszültségszintet. Sok „0” bit átvitele során nem biztosít szinkronizációt AMI Váltakozó MARK invertálás kódolás már szimmetrikus feszültséget használ. Minden logikai 1 értékű bit szintje az előző 1-esének az ellentetje. (+V / 0 / -V) HDB3 Nagy sűrűségű bipoláris 3 - A módszer majdnem az AMI -val azonos, de a kódolásba beépítették a hosszú nulla sorozatok kezelését. Mikor 4 egymás utáni 0 bit következik, az utolsót megváltoztatjuk 000K-ra, ahol K polaritása azonos az előző 1-eshez rendelt polaritással. A két egymás utáni azonos polaritásból a VEVÕ már tudja, hogy a második nem 1-et hanem 0-át jelöl Így már mindig van hosszabb nulla sorozatoknál is jelváltás, - 29 - Manchester Az Ethernet hálózatok ezt a kódolási eljárást alkalmazzák. Itt a biteket nem jelszintek, hanem a jelváltások
iránya határozza meg A lefutó él a logikai 0, a felfutó pedig a logikai 1 szintet jelöli. Amennyiben az egymást követő bitek azonos értékűek, akkor a jelnek a bitidő felénél vissza kell térnie az előző szintre. A módszer alkalmas akár mágneses jelrögzítésre is Hibakezelés Hibakorlátozás és hibakezelés fajtái: • • HIBAJELZÉS: a redundancia alapján a hibát a vevő jelzi: o Paritásvizsgálat (kódszóban lévő 1-esek száma a paritásbittel együtt páros (vagy páratlan). o Tömbparitás vizsgálat (hossz- és keresztirányban) sokkal hatékonyabb mint az előző. o CRC - Egy k bitből álló keret egy r bitből álló redundanciával kiegészítve (k+r) bites blokk kerül átvitelre. A redundancia polinom osztással képződik. A keret bitjeit elosztjuk egy generátor polinommal A VEVÖ a (k+r) bitből álló sorozatot ugyanazzal a genrátor polinommal osztja. Ha az osztás maradékmentes, akkor feltételezhető, hogy nincs hiba HlBAJAVITÁS: a
redundancia alapján a hibát a vevő ki is javitja, nagy redundanciát igényel. Hamming távolság Hamming távolság: hány bitben különbözik két kódszó. Bitenkénti kizáró vagy kapcsolatot képezve (XOR) az egyesek száma Pl. ASCII kódoknál ez 1 Ha paritásbitet vezetünk be, akkor a Hamming-távolság 2 lesz MODEM A modem (a modulátor és demodulátor szavakból összetett szó) egy olyan berendezés, ami egy vivőhullám modulációjával a digitális jelet analóg információvá, illetve a másik oldalon ennek demodulációjával újra digitális információvá alakítja. Az eljárás célja, hogy a digitális adatot analóg módon átvihetővé tegye. Néhány elterjedtebb modem, amik különböző átviteli közegben működnek: telefonos, ADSL. kábel, rádiós és mikrohullámú modem A modem terminológia Baud ráta Elsőként a baud ráta és másodpercenkénti bitek száma kifejezéseket vesszük, amelyek a másodpercenkénti jelváltozást jellemzik. Egy
egyszerű rendszerben, ahol a jelváltozás egy bit információt jelez a két mérőszám egybeesik. Falf-duplex, full-duplex A half-duplex esetben az összeköttetésben egyidejűleg az adatot csak egy irányban lehet küldeni, de full-duplex módnál mindkét irányban küldhetők az adatok egyidejűleg. Modem protokollok Modulációs szabványok A full-duplex egyidejű jelátvitelt jelent. Minden modemnek, amelyik ugyanabban az időben küldi a jeleket, amikor a másik, szét kell választani az adott jeleket a vett jelektől. Ehhez a modemek az ún echo törlést alkalmazzák Az adott jeleket az echózó áramkör kivonja a vett jelekből, mielőtt a vett jeleket feldolgozná. Hibajavító szabványok A hibajavító szabványok nélkül a modemek képtelenek hibátlanul működni. A zaj és egyéb vonali rendellenességek megakadályozzák a hibátlan adatátvitelt. Magasabb sebességeken a modemek érzékenyebbek a hibákra A V42 hibajavító szabvány a CRC-t használja
Adattömörítő szabványok Az eljárását tekintve az adattömörítés nem más, mint az adatokban levő redundacia kiküszöbölése átkódolással rövidebb kódba. Az áteresztő képesség arányosan növekszik a kód hosszának csökkenésével. Megjegyezzük, hogy a tömörítési arány függ az adattípustól. Az adattömörítő algoritmus az adatokban ismétlődő mintákat az azoknak megfelelő rövidebb szimbólumokkal helyettesíti ISDN Az ISDN rendszer a modemek alternatívája Az ISDN telefonrendszer az összes analóg szolgáltatást digitálisra váltja fel. Az ISDN-ben a jelek digitálisak az otthoni telefontól vagy számítógéptől kezdve az egész hálózaton át. Az ISDN-nek nincs szüksége modemre Ha digitális adatot akarunk átküldeni a partnerünknek az ISDN vonalon keresztül, akkor a vevőnek is rendelkezni kell digitális összeköttetéssel vagy interfésszel. Létezik néhány modem, amelyik mind a digitális, mind az analóg átvitelre alkalmas
Minden ISDN összeköttetés igényel egy hálózati terminátort (ami egy fekete doboz az ISDN vonal aktív végén) és egy terminál adaptert, ami egy interfész az ISDN vonal és a számítógép között). ADSL Adatátvitelre nem csupán a távbeszélö szolgáltatást lehetőve tevő rézvezető, hanem a kábeltelevíziós hálózat koaxiális kábeli is felhasznalható. - 30 - Az ADSL (aszimmetrikus digitális előfizetői vonal) egy kommunikációs technológia, ami a hagyományos modemeknél gyorsabb digitális adatátvitelt tesz lehetővé a csavart rézérpárú telefonkábelen. Az ADSL jellemzője a DSL megoldásokon belül, hogy a letöltési és a feltöltési sávszélesség aránya nem egyenlő (vagyis a vonal aszimmetrikus), amely az otthoni felhasználóknak kedvezve a letöltés sebességét helyezi előnybe a feltöltéssel szemben, általában 8:1 arányban. ATM Aszinkron átviteli mód Az alkalmazásokat megvizsgálva, azok alapvetően kétféle digitális
átvitelt igényelnek: • • Állandó bitsebességet biztosítót: pl. telefon, telefax, TV átvitel Változó bitsebességet biztosítót: pl. az interaktív szöveg és képátvitel Ilyenkor sokszor lökésszerűen egy állandó bitsebességű átvitel zajlik, amit hosszabb szünet követ. Video átvitelnél is elegendő csak a kép teljes változásakor átvinni a képet, közben csak a változásokat. A kis csomagméret miatt a csomagok továbbítása a jóval nagyobb sebességet biztosító céláramkörökkel lehetséges. Jellemzői: • Adattovábbítás előtt logikai kapcsolatfelépítés • Gyors aszinkron csomagkapcsolás • Adatkapcsolati szinten nincs hibavédelem és forgalomirányítás • A fejrészben foglalt hálózati feladatok minimálisak • Az információmezõ viszonylag rövid • Minden ATM összeköttetés két pont közötti összeköttetést jelent • Minden két pont közötti összeköttetés egyirányú, duplex összeköttetéshez egyidejűleg
két egyirányú kapcsolat szükséges 17. A számítógép-hálózatok architektúrája, az OSI-modell (rétegek, protokollok, rétegszolgálatok) A TCP/IP protokoll (feladata, rétegei, információ-áramlás, címzés, útválasztás). Hálózatok Hálózatok topográfia szerint • • • LAN (Local Area Network/Helyi hálózat): általában épületeken belüli, kis kiterjedésű hálózat. MAN (Metropolitan Area Network/ Nagyvárosi hálózat): Nagyobb távolságokra lévő gépek, LAN hálózatok sszeköttetéséből kialakult hálózati egység. WAN (Wide Area Network/ Nagy/Széles kiterjedésű hálózat): Egymástól nagyon-nagy távolságra lévő hálózatokat/gépeket köt össze, ez már behálózhatja az egész világot Hálózatok topológia szerint A hálózati alkatrészek fizikai elrendezését értjük, topológia alatt. • • • • • Csillag topológia: A csillag alakzat a legidősebb módja a hálózat építésének. Központja a szerver, melyre a
kliensek külön csatlakoznak. Ezt a szervert másnéven HUB-nak is szokás nevezni, míg a lienseket NODE-nak Minden egyes node külön kapcsolódik a hálózathgoz. Ezeket a gépeket koaxiális kábelel szokták összekötni A központi csomópont viselkedhet passzívan, ekkor a küldő csomópontnak képesnek kell lennie arra, hogy kezelje azt az esetet, amikor a saját, már egyszer elküldött üzenetét bizonyos késleltetéssel ismételten megkapja. Ezt nevezik üzenet visszhangnak. Aktív hálózati csomópont esetén ez előző jelenség nem lép fel Gyűrű topológia: Minden állomás, a HUB-ot is belértve két szomsédos állomással áll közvetlen összeköttetésben. Körkörös gyűrű az összeköttetés, ebből kifolyólag a hálózatnak nincs végpontja. Ennek az az oka, hogy az adatok, csak és kizárólag egy irányba haladhatnak. Az üzeneteket mindig a szomszéd kapja meg, és ha ez nem neki szólt, adja tovább Bármely részen lévő hiba folyamán az egész
hálózat működése leáll. Sín topológia: Egyetlen a "busznak" nevezett átviteli közeget használ. Ezen a buszon minden gépnek egyedi címe van, amivel azonosítja magát a hálózaton. Ezeket a gépeket koaxiális kábelel szokták összekötni Fa topológia: A fahálózat jellemzõje a központi, kiemelt szerepkört betöltõ számítógép. Van egy gyökér, amelyre rákapcsolódnak a kisebb központok. Azután ezekre a kisebb központokra kapcsolódnak a kliens gépek vagy még kisebb szerverek. Tehát a munkaállomások hierarchikus rendben kapcsolódnak egy vagy több másik munkaállomáshoz Egy-egy ilyen ágat alhálózatnak is nevezünk. Minden összekötött gép között csak egyetlen út van Teljesen összekapcsolt: Minden csomópont pár össze van kapcsolva. Az ilyen topológia alapján tervezett és megvalósított hálózatok általában nagyon drágák, cserébe viszont kimagaslóan megbízhatók, ami annak köszönhető, hogy több kapcsolaton is
eljuthatnak az információk a csomópontok között. Fentiek miatt ezek a hálózati topológiák a katonai célú hálózatokban terjedtek el. Adatkapcsolati protokollok • • Korlátozás nélküli, egyirányú protokoll: Az adó csak adhat, a vevő csak vehet. Váltakozó irányú (fél-duplex) vagy más néven egyirányú "megáll" protokoll: Többször elõfordul, hogy a vevő nem képes olyan sebességgel feldolgozni a kapott információt, amilyen sebességgel azt az adó küldte. Ezért valamilyen módon le kell • • - 31 - lassítani az adót, hogy a vevő képes legyen a kereteket feldolgozni. Ez egy módon lehetséges, ha a vevő valamilyen nyugtát küld az adónak, hogy megkapta a keretet és feldolgozta, és csak ezután indulhat a következõ keret. Kétirányú (full duplex) protokollok: A gyakorlatban az adatátvitel legtöbbször kétirányú. Egyazon a csatornán küldi el az adó az adatkereteket, és küldi vissza a vevő a nyugtakeretet. A
két keret megkülönböztethető egymástól a keret fejrészében elhelyezett jelző alapján, ami a keret vételekor azonosítható. csúszóablakos protokoll (full duplex): Az eddigi esetekben a csatornán mindig csak egy adatkeret és a rá válaszoló nyugtakeret haladt. A csatorna jobb kihasználása érdekében azonban több keret is tartózkodhat a csatornán egyszerre A protokollban minden egyes, az adótól kiinduló keret kap egy 0-7 közötti sorszámot. Így a sorban elküldendő keretek sorszámaiból egy aktualizált listát tart fenn az adó. A listába szereplő sorszámú keretek az adási ablakba esnek Az adó adási ablakában az elküldött, de még nem nyugtázott keretek vannak. Mikor egy nyugta megérkezik az ablak alsó fele feljebb csúszik, lehetővé téve egy újabb keret elküldését. A vevő egy vételi ablakot tart fenn, amely a fogadható keretek sorszámait tartalmazza. Közeg-hozzáférési módszerek Véletlen átvitel-vezérlés Mindegyik
állomás a csatornán véletlenszerűen kezd adni. Ebben az esetben az ütközések elkerülhetetlenek • • • Az ütközés figyeléses ütközést jelző (CSMA/CD): Mielõtt egy állomás elküldené keretét, elõször lefüleli a csatornát, hogy van e más állomás, ami használja a közeget. Ha egyik állomás sem használja a csatornát, akkor elküldi üzenetét Azonban elõfordulhat olyan eset, hogy egyszerre két vagy több állomás akarja igénybe venni a csatornát. Ekkor az állomás megszakítja az üzenetküldést. Azok az állomások, amelyek ismételt üzenetküldésre kényszerülnek, az újabb adás elõtt egy véletlenszerûen megválasztott ideig várakoznak. Minden állomáshoz eljut az üzenet, de a cím alapján eldönti, hogy neki szól-e vagy sem Utóbbi esetben eldobja a csomagot. Réselt gyűrű: o Gyűrűn felfűzött állomások résnek nevezett rögzített hosszúságú kereteket adnak körbe. o Résenként egy foglaltságot jelző marker. o
Üzenetek a rés méretére kell darabolni. o Küldő állomás feladata, hogy a visszaérkezett keretet kiürítse. o Ha egy rés nem jut alaphelyzetbe, akkor egy kijelölt állomás egy idő után törli a tartalmát. Regiszter beszúrásos gyűrű: Ez az eljárás a léptetőregiszter késleltető funkcióján túl, annak tárolási képességét is kihasználja. A hálózati illesztőben két regiszter: egy léptető és egy tároló-regiszter található Ha az állomás szeretne csomagot küldeni, akkor az a kimeneti tároló regiszterbe kell beírnia. Üzenet küldése csak akkor következhet be, ha a léptető-regiszterből az előzőleg vett csomag utolsó bitje is kiléptetésre került. A kimenetre kerül az üzenet, eközben a bemeneten esetlegesen vett információ feltölti a léptető regisztert. Miután kiürült a kimeneti regiszter, a vett információ küldésre kerülhet. Osztott átvitel-vezérlés Ez a módszer elvben kiküszöböli az ütközéseket, azzal a
megvalósítással, hogy a csatornához való hozzáféréshez mindig csak egy állomásnak van joga egy adott idõpontban. Ez a jog állomásról állomásra egymás után halad • Vezérjeles gyűrű (Token Ring): Egy vezérjel (token) halad körbe, állomásról állomásra. A vezérjel egy kis üzenet, amely a gyűrű foglaltságáról ad információt. Ha jelzése szabad, akkor a token-t vevő állomás elküldheti üzenetét A token-t foglaltra állítja. Az üzenet a gyűrűn halad körben állomásról állomásra Amikor a gyűrűben az üzenet visszaér az elküldõ állomáshoz, akkor kivonja az üzenetét a gyűrűből, a token-t szabadra állítja, és továbbküldi az immár szabad jelzést adó vezérjelet más állomásnak. • Vezérjeles sín: A működése hasonlít a vezérjeles gyűrű működésére, azonban ez a sín topológiájú hálózatokra került kifejlesztésre. A sínre fűzött állomások egy logikai gyűrűt képeznek úgy, hogy az utolsó állomás
után az első következik • Az ütközés figyeléses ütközést elkerülő (CSMA/CA): A CSMA/CD protokoll nagy számú hoszt esetében már nem működik kielégítıen. Túlságosan sok hoszt kerül versengési állapotba, és így kénytelen lesz várakozni Megoldás: az ütközés lehetőségének elkerülése. Az ütközés elkerülését úgy oldják meg, hogy az adás befejezése után a hosztok egy logikai listában elfoglalt helyüktől függő ideig várakoznak, és csak utána kezdik meg az adást. Központosított vezérlés közeghozzáférés Ebbe a csoportba tartoznak az olyan protokollok, melyek úgy kerülik el az ütközést, hogy egy központi egység szabályozza az állomások csatornahasználatát. • Lekérdezéses (polling) vezérlés: Ezekben a hálózatokban van egy főállomás (master), és vannak a mellékállomások (slave). A főállomás lekérdezi sorban a mellékállomásokat, hogy akarnak-e küldeni üzenetet. • Vonalkapcsolás: Fizikai
kapcsolat létesül az adó és a vevő között, az összeköttetés idejére. Megvalósul az adatátvitel az összeköttetésen keresztül. Az adatátvitel befejeződésével a kapcsolat lebomlik • Idősztásos többszörös hozzáférésű eljárás: Elsődlegesen busz felépítésű hálózatoknál alkalmazzák. Az állomások egy adott időszeletben adhatnak. Ha nincs üzenet, akkor az az időszelet kihasználatlan marad Az OSI modell A számítógépek kommunikációjához szükséges hálózati protokollt határozza meg. Az OSI modellje a különböző protokollok által nyújtott funkciókat egymásra épülő rétegekbe sorolja. Minden réteg csak és kizárólag az alsóbb rétegek által nyújtott funkciókra támaszkodhat, és az általa megvalósított funkciókat pedig csak felette lévő réteg számára nyújthatja. Ma a teljes OSI modell egy részhalmazát használják csak. Széles körben elterjedt nézet, hogy a specifikáció túlzottan bonyolult, és a teljes
modell megvalósítása nagyon időigényes lenne, ennek ellenére sokan támogatják. - 32 - Alkalmazási réteg Hálózati virtuáéis terminal, levelezés, állománytovábbítás. Az alkalmazási réteg széles körben igényelt protokollokat tartalmaz. Például több száz inkompatibilis termináltípus létezik ma a világon Meglehetősen bonyolult lenne egy olyan alkalmazás írása, amely csak egy részén működne helyesen. Ennek megoldására definiálni kell egy hálózati virtuális terminált, és a többi programot ezt felhasználva kell megírni. Más típusú alkalmazási rétegfeladat az állománytovábbítás, elektronikus levelezés, távoli bejelentkezés, katalógusok, nyilvántartások kezelése. Megjelenítési réteg Az információk megjelenítéséért felel. Ide tartozik például a kódátalakítás, fordítás, tömörítés, stb Viszonyréteg A viszonyréteg lehetővé teszi, hogy különböző gépek felhasználói viszonyt létesítsenek
egymással. Egy viszony például alkalmas arra, hogy egy felhasználó bejelentkezzen egy távoli időosztásos rendszerbe, vagy hogy állományokat továbbítson két gép között. A viszonyréteg egyik szolgáltatása a párbeszéd szervezése. A viszonyok egyidőben egy- és kétirányú adatáramlást is lehetővé tehetnek A viszonyréteg egy másik szolgáltatása a szinkronizáció. Szállítási réteg Hoszt-hoszt kapcsolat megvalósítása. Felel két felhasználó közötti, előre egyeztetett minőségű adatátviteli szolgáltatásért. Feladata a szolgáltatási osztály kiválasztása, az átvitel felügyelete, a minőség fenntartása, megszűnés esetén jelzés. A szállítási réteg alapvető feladata, hogy a viszonyrétegtől kapott adatfolyamot kisebb darabokra vágja szét, ha szükséges, akkor a túloldalon ezeket sorrendhelyesen visszaállítsa. Biztosítania kell a hibamentes adatátvitelt Hálózati réteg Csomagok átvitele, kapcsolatok felépítése.
Feladata a csomópontból csomópontba történő irányítás, útválasztás. Felelős két hálózati felhasználó közötti hálózati összeköttetés létesítéséért, megszüntetéséért és az összeköttetésen keresztüli adatátvitelért. Adatkapcsolati réteg Keretképzés, hibamentes továbbítás. Csomópontból csomópontba való megbízható adatátviteli szolgáltatásért felel, védi a felsőbb rétegeket a fizikai rétegtől. Adatbitek hibamentes átviteléért felel. Fizikai réteg Felel a fizikai átviteli közegen keresztüli bitfolyam átviteléért. A fizikai réteg feladata a bitek kommunikációs csatornára való juttatása. Biztosítania kell, hogy az adó oldalon kibocsátott 1-et a vevő is 1-nek és ne 0-nak vegye. Ez a réteg határoz meg minden, az eszközökkel kapcsolatos fizikai és elektromos specifikációt, beleértve az érintkezők kiosztását, a használatos feszültség szinteket és a kábel specifikációkat. A rétegek közötti
kommunikáció A rétegek közötti kommunikáció ún. szolgálatok segítségével valósul meg A szolgálatok a rétegek ki/bemeneti pontján ún SAP-ján (Sevice Access Point) keresztül érhetõk el. Ezek mindig két szomszédos réteg között találhatók Lényegében a két réteg közötti kommunikáció ténylegesen ezeken a pontokon keresztül valósul meg. TCP/IP protokoll Nem követi az OSI modellt. Unixos gépekre dolgozták ki eredetileg A TCP feladata az, hogy időzítéseket kezelve szükség szerint újraadja őket, illetve hogy helyes sorrendben rakja azokat össze az eredeti üzenetté. Alkalmazási réteg Hálózat használata, Telnet, SMTP (e-mailek továbbítása), FTP (állományátvitel) Az alkalmazási réteg a felhasználó által indított program és a szállítási réteg között teremt kapcsolatot. Ha egy program hálózaton keresztül adatot szeretne küldeni, az alkalmazási réteg továbbküldi azt a szállítási rétegnek. Szállítási réteg (TCP)
Hoszt-hoszt kapcsolat Az egymásnak üzenetet küldő két végpontot összekötő réteg. Nem vizsgálja a végpontok közötti állomásokat, csak azzal foglalkozik, hogy a végpontok között megvalósuljon az adatátvitel. Internet réteg ( IP) Csomagtovábbítás A szállítási rétegtől kapott header-adat pároshoz hozzáteszi a saját fejlécét, amely arról tartalmaz információt, hogy az adatot melyik végpont kapja majd meg. Az OSI modell hálózati rétegének felel meg. Feladata, hogy a felsőbb rétegektől kapott csomagokat, az Interneten alkalmazott címzés, az IP cím alapján továbbküldje a cél felé, vagyis csomagokra bontsa a TCP-szegmenseket, és elküldje őket bármely hálózatról. Az internet réteg a szállítási rétegtől kapott minden egyes csomag elküldése előtt megvizsgálja, hogy a csomagot milyen útvonalon kell továbbítani. - 33 - Adatkapcsolati réteg Az adatot keretekre bontja. Az adatkapcsolati réteg szintén hozzárakja a kapott
adathoz a saját fejlécét, és az adatot keretekre bontja. Ha a kapott adat túl nagy ahhoz, hogy egy keretbe kerüljön, feldarabolja és az utolsó keret végére egy úgynevezett tail-t kapcsol, hogy a fogadó oldalon vissza lehessen állítani az eredeti adatot. Fizikai réteg Keretátvitel közegen. A fizikai réteg továbbítja az adatkapcsolati rétegtől kapott kereteket a hálózaton. A fogadó oldalon ugyanez a folyamat játszódik le visszafelé, míg az adat a fogadó gép alkalmazásához nem ér. Eredetileg a fizikai és az adatkapcsolati réteg egy réteg volt, neve „Hoszt és hálózat közötti réteg”. IP csomag fejléce • • • • • • • • • • • Verzió: Ez a mező teszi lehetővé, hogy azonos hálózatban eltérő IP verziók működhessenek, IHL: Az IP fejléc hossza nem állandó, ez a mező hordozza a fejléc hosszára vonatkozó információt. Szolgálat típus: 8 bites: A három bit egyenként a késleltetésre, átbocsátásra és a
megbízhatóságra vonatkozott. Egy csomag prioritizálásánál ezekkel lehetett kiválasztani, hogy a szolgáltatás mely minőségi eleme fontos a kézbesítésnél. Mivel sok eszköz figyelmen kívül hagyta, jelentését végül megváltoztatták. Ma egyszerűen szolgáltatási osztályhoz tartozást jelöl, ami a fenti információkat is magába foglalja. Teljes hossz: A csomag teljes hosszát tartalmazza bájtban megadva, beleértve a fejlécet és az adatrészt is. Azonosító: Erre a mezőre a célhosztnak feltétlen szüksége van ahhoz, hogy a felsőbb protokollok darabolt üzeneteit össze tudja állítani. Minden datagram szétdarabolása után az összes darab ugyanazzal az azonosítóval kerül továbbításra DF (Do not fragment): Egyetlen jelzőbit, beállításával az üzenet darabolását lehet tiltani. Ilyenkor a routerek elkerülik a kiscsomagos hálózatokat. MF (More Fragments): Szintén egyetlen bit, mely jelzi, hogy létezik még több darabja az üzenetnek.
Egy darabolt üzenet minden darabjának a fejléce tartalmazza, kivéve az utolsót. Darabeltolás: Megadja, hogy a feldarabolt datagramnak a csomagban szállított része honnan kezdődik. Elengedhetetlen információ a datagram összeállításához a vételi oldalon. Az eltolást itt 8 bájtos egységekben kell értelmezni Élettartam: Ezzel a mezővel korlátozzák egy csomag hálózatban eltölthető idejét, illetve egyúttal a megoldás azt is biztosítja, hogy ne maradhassanak a hálózatban vég nélkül keringő csomagok. Kezdőértéke 255 lehet maximálisan, melyet minden router csökkent eggyel továbbításkor. Ha eléri a nullát, egyszerűen eldobja Protokoll: Ez a mező jelzi, hogy a csomag milyen protokoll számára szállít. Fejrész ellenőrző összeg: Csak a fejrészre vonatozik! Az élettartam mező miatt minden alkalommal újra kell számolni. TCP/IP címrendszere Címosztályok Az IP címek szigorú szabályok szerint strukturált halmazokban lévő számok,
és pillanatnyilag még 32 bitesek. Egyesek speciális célokra vannak fenntartva, a többiek pedig hálózati osztályokba vannak rendezve. A hálózat minden gépéhez hozzá kell rendelni (legalább) egy egyedi számot a hálózati környezet számára. Az IP címeket négy darab 8-bites számmal írjuk le A cím 32 bites, amely 4 darab 8 bites számból áll. Az egyes elemek 0 és 255 közötti értéket vehetnek fel (pl: 62225225) Host cím: 192.16817 = 11000000 10101000 00000001 00000111 Hálózati cím + net id (hálózati azonosító) + host id A: 0 – 7 – 24 B: 10 – 14 – 16 C: 110 – 21 – 8 D: 1110 – 28 Többes címzés E: 11110 – 27 Lefoglalva A hálózat és az azon belüli hoszt címének szétválasztására címmaszkot használnak. A hálózati cím leválasztására bitenkénti ÉS műveletet végeznek az IP cím és címmaszk között. Ha a címmaszk negáltjával végezzük a maszkolást, akkor a hoszt címét kapjuk meg. A 127-tel (01111111) kezdődő
címek a loopback (visszairányítás) címek, nem használhatók a hálózaton kívül, a hálózatok belső tesztelésére szolgálnak. A gazdagép címrészbe 1-eseket írva lehetséges az adott hálózatban levő összes gazdagépnek üzeneteket küldeni. Ezt hívják broadcastnak. Pl a 1526672255 IP címre küldött üzenetet a 1526672 című hálózatban lévő összes gép megkapja Ha a gazdagép címrésze 0, az az aktuális gépet jelöli. Ha a hálózati cím 0, akkor az az aktuális hálózatot jelöli Pl a saját gépről a 0000 címre küldött üzenet a saját gépre érkezik meg. DNS DNS egy - funkciójában a telefonkönyvhöz hasonló, de más felépítésű - osztott, hierarchikus felépítésű adatbázis. Adatbázis, mert lényegében az IP címek és könnyen megjegyezhető nevek egymáshoz tartozó párjait tartalmazza. Osztott, mert nem egyetlen névszolgáltató (name server) számítógépen lévő állományban található, hanem az adatbázist ilyen
névszerverek százezrei szolgáltatják nevek millióiról. - 34 - A hierarchia csúcsát root-nak, gyökérnek nevezzük. Az ez alatti neveket top level domén-eknek, TLD-knek mondjuk Ezek a TLD-k két módon szerveződnek és kapták nevüket: • • A jelölt szervezet tevékenysége szerint: pl.: com - vállalatok, edu - egyetemek, oktatási intézmények, mil - katonai szervezetek, gov – kormányhivatalok. Az USA-n kívüli domén-ok számára az ISO 3166 szabványban meghatározott kétkarakteres országkódokat használják. IP cím név hozzárendelés Az Interneten nemcsak arra van szükség, hogy név alapján az IP címet kapjunk, hanem a fordítottjára is, azaz hogy IP cimekből domén neveket kapjunk. Ez a szolgáltatás az inverz vagy reverz feloldás A névszerverbe való regisztrálás már nyilvánosságot jelent, nyomon követhető. Nem véletlen, hogy a varez oldalak többsége, csak IP cím alapján érhető el. Útválasztás A csomagkapcsolt
rendszerekben az útválasztás (routing) azt a folyamatot jelöli, amivel kiválasztjuk az útvonalat (path), amin a csomagot továbbküldjük és a útvonal választó (router) az a számítógép (IMP), amely ezt végrehajtja. Az útválasztó olyan eszköz, amelynek több hálózati csatolója van, és mindegyik más (helyi) hálózathoz csatlakozik. Az útválasztó csomagokat fogad el a hozzá csatlakozó hálózatok gépeitől, és továbbítja ezeket valamelyik hálózati csatolóján. Azt hogy melyiken küldje tovább a memóriájában lévő útválasztási tábla (routing table) alapján határozza meg. Közvetlen (direkt) összeköttetés: Ha a két gép egyazon lokális hálózaton van. Különböző hálózatok közötti - Közvetett (indirekt) útvonal-kiválasztás: a feladónak meg kell adnia azt a útválasztót, amihez a csomagot (datagramot) küldi. Ha nem talál táblabejegyzést az adott hálózatra vonatkozólag, akkor három dolog történhet: • Az
útválasztó hibaüzenetet küld a feladónak ("Nem ismerek ilyen hálózatot") és a csomagot eldobja. • Felvesszük a nem szerelő hálózatot az útvonalon lévő útválasztók táblázataiba, hogy a routolás megvalósulhasson. • Számos útválasztóban megadható egy. ún alapértelmezés szerinti átjáró (default router) Útválasztó algoritmusok Nem adaptív/statikus algoritmusok Nem támaszkodnak mérésekre vagy becslésekre az aktuális forgalomról és topológiáról. Ehelyett az I-től J-ig használandó útvonalat (minden I-re és J-re) előre, offline módon számolják ki, és a hálózat indításakor letöltik az útválasztókba. Mivel a statikus útválasztás nem reagál a hibákra, főként olyan helyzetekben hasznos, ahol az útválasztás egyértelmű. Determinisztikus forgalomirányítás Olyan rögzített eljárás, amelyet a változó feltételek nem befolyásolnak. Vannak olyan forgalomirányító módszerek, amelyeknél nincs szükség
semmilyen forgalomirányítási táblára, a hálózati topológia ismeretére, minden csomópont autonóm módon, azonos algoritmus alapján dolgozik. • • A véletlen forgalomirányító eljárás: az ez alapján működő rendszerben a továbbítandó csomagot a csomópont egy véletlen folyamat segítségével kiválasztott az érkező vonaltól eltérő más vonalon küldi tovább. Mivel a hálózat által ilyen módon szállított csomagok véletlen bolyonganak ésszerűnek látszik, ha a csomagokhoz hozzárendeljük a mozgásuk során bejárt szakaszok számát és töröljük azokat a csomagokat, amelyek lépésszáma elér egy előre meghatározott értéket. Ez az eljárás nem garantálja a csomagok kézbesítését, de nagyon egyszerűen realizálható, és nem túl bonyolult hálózatokban jól működhet. Az elárasztásos forgalomirányító eljárás: ez sem igényel semmi ismeretet a hálózatról. A csomópontok, mikor egy csomagot továbbítanak, a bejövő
csomagot minden vonalra kiküldenek, kivéve ahonnan érkezett. A lépések száma itt is korlátozva van. Jelentős érdeme a módszernek, hogy a csomag legalább egy példányban mindenképp a legrövidebb úton ér célba. Adaptív forgalomirányítás A hálózati forgalomhoz alkalmazkodik. A probléma a hálózat elosztott jellegéből ered. Mikor a csomópontok irányítási döntéseket hoznak, olyan eseményeket kell figyelembe venniük, amelyek a hálózat távoli részében történtek, és amelyekről vagy egyáltalán nem rendelkeznek semmiféle információval, vagy a meglevő információjuk már időszerűtlen. Központi adaptív forgalomirányítás A központosított adaptív forgalomirányításban minden egyes csomópont helyzetjelentést állít össze, és abban a folyó sorhosszakat, a hálózat elemeinek meghibásodásait, stb. elküldi a hálózat forgalomirányító központjába A központ ezek alapján átfogó képet alakít ki a hálózatról, és
valamennyi forgalmi áramlat részére meg tudja határozni a legkedvezőbb útvonalat. Ezeket a legjobb utakat a hálózat csomópontjai forgalomirányítási táblák formájában kapják meg. Elszigetelt adaptív forgalomirányítás Minden csomópont hoz irányítási döntéseket, de csak helyi információk alapján. • Forró krumpli: Lényege, hogy a beérkezett csomagokat abba kimeneti sorba rakja, amely a legrövidebb, legrövidebb ideig égeti a kezét, gyorsan megszabadul tőle. Lényeges, hogy nem foglalkozik az irányokkal • - 35 - fordított tanulás módszere: A hálózatban minden csomópont egy csomagot indít el, amely tartalmaz egy számlálót és az elindító azonosítóját. A számláló értéke minden csomóponton történő áthaladáskor nő eggyel Amikor egy csomópont (IMP) egy ilyen csomagot vesz, akkor ezt elolvasva tudja, hogy a csomagot küldő hány csomópontnyi távolságra van tőle. Elosztott adaptív forgalomirányítás A csomópontok
információt cserélnek azért, hogy az irányítási döntéseket a helyi és a kapott információkra együtt alapozhassák. A megvalósított hálózatokban mindeddig legnépszerűbb az elosztott adaptív forgalomirányító eljárás. Az algoritmus fő célkitűzése az adatforgalom részére a legkisebb késleltetéssel járó útvonalak keresése. E célból minden egyes csomópontban egy táblázatot hozunk létre, amely minden egyes célállomáshoz megadja a legkisebb késleltetésű útvonalat, s ezzel együtt a továbbításhoz szükséges idő legjobb becsült értékét. A hálózat működésének kezdetén a késleltetések a hálózat topológiája alapján becsült értékek, később azonban, mihelyt a csomagok célba értek, a becsült késleltetési időket felváltják a hálózatban ténylegesen mért továbbítási idők. Az eredeti algoritmus szerint a késleltetési táblák adatait a szomszédos csomópontok rendszeresen megküldik egymásnak. Amikor a
késleltetési táblákat megküldték, a csomópontok áttérnek a késéseket újraszámító fázisba, amelyben a saját sorhosszaikat és a szomszédos csomópontok által küldött késleltetési értékeket figyelembe veszik. A táblák ilyen, szinkron karbantartása helyett az aszinkron karbantartás a célravezetőbb. Ez utóbbi azt jelenti, hogy a csomópontoknak csak akkor kell továbbítaniuk a késleltetési táblákat, ha számottevő változást észlelnek a forgalom intenzitásában, vagy a hálózat elemeinek működési körülményeiben. A késleltetési táblák újraszámítására csak akkor kerül sor, ha jelentősebb helyi változás történt, vagy ha módosított késleltetési tábla érkezik valamelyik szomszédos csomóponttól. 18. Lokális hálózatok szabványos megvalósítása (Ethernet, vezérjeles sín, vezérjeles gyűrű): protokollok, közeg-hozzáférési módszerek, átviteli közegek, fizikai egységek. Hálózatok Hálózatok összeköttetése
• • • • • • Jelismétlők (regeater): lásd Ethernet, feladatuk a jelregenárálás, bitek továbbítása az egyik hálózatból a másikba. A híd (bridge): Két hálózat adatkapcsolati szintű összekapcsolását végzi. Egy Ethernet és egy vezérjeles sínű hálózat között a híd teremti meg a kapcsolatot. Lényegében egymásba átalakítja az eltérő keretformátumokat Az Ethernet egyik fő tulajdonsága, az osztott közeg, egyre inkább jelent hátrányt, mint előnyt. Ha valaki intenziven másol vagy éppen letölt valamit a helyi kiszolgálóról a hálózat lelassul, a sok ütközés miatt. Ezen a hálózat szegmentálásával segíthetünk. Hidak (bridge-k) közbeiktatásával a szegmensek belső forgalma nem terheli a többi szegmenst. Minél szegmentáltabb a hálózat, annál kevésbé osztott a közeg és annál jobb a hálózat hatásfoka Switch (hálózati kapcsoló): Ezek funkciójukban tulajdonképpen több portos bridge-k, ám képesek nem
blokkoló módon továbbítani a kereteket. Azaz, ha egy switch-nek hét portja van, akkor egyidőben képes keretet továbbítani Útválasztókat (router): Akkor kell alkalmazni, ha az összekötendő hálózatok különböző adatkapcsolati, de azonos hálózati réteggel rendelkeznek. Pl Ethernet és X25-ös hálózat között útválasztó alakitia az Ethernet kereteket X25-ös keretekké Atiárók (gateway): Akkor használnak, ha olyan hálózathoz csatlakoznak, amely felépítése nem követi az OSI modell HUB: Ha a kialakítást megnézzük akkor a csillag formájú hálózat a küllős kerékhez hasonlít, ahol a küllők végén vannak az egyedi végpontok. Mindegyik munkaállomás a kábelhez egy hálózati adapteren keresztül kapcsolódik, és az összes kábel a középen lévő dobozba-hasonlóan mint a küllők a kerékagyba- kapcsolódik. Ezt az egységet hívják HUB-nak Minden hub egymással uplinkelhető (összeköthető). A hub-ok teljesítménye csökken, ha egyre
több felhasználót kötünk rá. Ne felejtsük el, ezek a hub-ok félduplexek, ami azt jelenti, hogy váltakozva, mindig csak az egyik irányban áramlanak rajtuk keresztül az adatok. Ha a teljes duplex kommunikációra, azaz mindkét irányban történő egyidejű adatátvitelre van szükségünk, akkor switch-et válasszunk Lokális hálózatok fizikai egységei • • • • Adagterkártya: Ezt a speciális perifériakártyaként kapható eszközt, az adapterkártyát, a hálózat állomásaként használni kívánt valamennyi személyi számítógépbe beépítik. Az adapterkártya tartalmazza a logikai kapcsolatvezérlést, és a közeghozzáférést vezérlő funkciókat megvalósító hardvert és förmvert (firmware). Kábelrendszer: Azt a kábelt, ill. vezetéket és csatlakozószerelvényeket jelenti, amelyet a hálózatban lévő eszközök összekapcsolására használnak. Koncentrátorok és erősítők: Egyes lokális hálózati kialakitások koncentrátorokat,
ill. hozzáférési egységeket használnak, hogy a hálózati jelek erősítése és elosztása megoldott legyen, illetve a hálózatban levö eszközök egy központi helyen kerüljenek összeköttetésbe egymással. Ezeket szokták HUB-oknak, jelismétlőknek is nevezni Médiakonverterek: Ezek az eszközök különféle fizikai hálózatok összekapcsolását teszik lehetővé, azadatátviteli közegek összekapcsolásával. Elsődlegesen a jelek elektromos illesztését biztosítják a közegek között Ügyfél-kiszolgáló kapcsolat (kliens-szerver) Dedikált szerveren kizárólag a szerverfunkciókat megvalósító program fut, és felhasználói munkára nem alkalmas, ellentétben a nem dedikált szerverrel, ahol a kiszolgáló alkalmas a szerverfunkciók ellátására is. A kiszolgálókat a végzett tevékenységük alapján a következőképpen csoportosíthatjuk: • Beléptető, vagy hitelesítő kiszolgáló: Adatbázisban tárolja a hálózati erőforrások és
felhasználók jogosultságait, és kérésre ezt szolgáltatja. • • - 36 - Fájl vagy nyomtató kiszolgáló: Tárolja, és jogosultságtól függően felkínálja a tárolt állományait a felhasználóknak. A nyomtató szerver kezeli a hálózatban lévő nyomtatók használatát, és az alkalmazások nyomtatókra való várakozása miatt kialakuló nyomtatási sorokat. Alkalmazás kiszolgáló: A szerveren található különféle alkalmazások felhasználók által történő alkalmazását kezeli. Egyenrangú kapcsolat (peer-tO-peer) A peer-to-peer halozatok tulajdonsagai: • minden peer egyenrangú és a halózatban egyszerre múködhet szerverként és kliensként. • mindegyik peer megtartja az ellenörzést a saját gépe felett, vagyis önállóak maradnak, maguk hatarozzák meg, hogy mikor, kivel és mit cserélnek ki, illetve, hogy mikor csatlakoznak a hálózathoz • a peereknek nem kell allandoan csatlakoztatva lenniúk • a peerek közti kommunikació
közvetlen, nem halad át valamilyen szerveren, amely lassitana azt, minden tevékenység a hálózat végpontjaiban történik • az eddigiekböl következik, hogy a hálózat dinamikus felépitésú, igy kúlönbözó idöpontokban eltérö lehet a felépitése Közeg-hozzáférési módszerek Lásd a 17. tételt Az Ethernet hálózat Az Ethernet napjaink legelterjedtebb adatkapcsolati szintû technológiája. Rendkívül elterjedt helyi hálózati technika, amely 10 Mbit/s névleges átviteli sebességet biztosít koaxiális árnyékolt kábelen. Az Ethernet jelzõt sokan általánosságban az összes CSMA/CD alapú eljárás megnevezésére használják. Az Ethernet az OSI hivatkozási modell két legalsó rétegét kielégítõ protokoll gyûjtemény Kezdetben sín elrendezésû, alapsávon működõ üzenetszórásos hálózat volt, szemben a mai csillagtopológiájú Ethernettel. Üzenetszórásos jellege a sín topológiából adódott, mivel minden állomás egy kábelre volt
felfûzve. Az Ethernet elemei szegmensek. A nagyobb távolság áthidalható, ha több szegmens kialakítására kerül sor A szerverben ilyenkor szegmensenként külön hálózati kártya szükséges. A közeg egy speciális koaxiális kábel volt, amely akár 2,5 km hosszú is lehetett (500 méterenként egy ismétlővel). A kábelre csavarozott adóvevőkkel legfeljebb 256 gépet lehetett csatlakoztatni. Kábelek • • • • • • • • 10 Base5 - vastag koaxkábel: (10 Mbit/s-os sebesség) A klasszikus Ethernet hálózatnál az idõközben jelentõségét vesztett 10Base5 vastag koaxkábelt alkalmazták. A kábel nem közvetlenül a hálózati kártyához csatlakozott, hanem minden számítógép csatlakozása esetén közbe kellett iktatni egy egységet. Kb 500 m 10 Base2 - vékony koaxiális kábel: Alacsony költségének és egyszerû telepítésének köszönhetõen még ma is alkalmazzák. Ezzel a kábellel vannak összekapcsolva a számítógépeken lévõ
hálózati kártyák, amelyekhez a kábel BNC csatlakozókkal vagy T-elosztókkal csatlakozik. Egy szegmens hossza a 185 métert nem haladhatja meg 10 BaseT - 8 eres csavart: Az igazán modern és megbízható változat. Ez az Ethernet hálózat 8 eres csavart érpárt használ a kapcsolatok kiépítésénél. A gépek fa vagy csillag alakban vannak elrendezve Ez azt jelenti, hogy minden gépet külön kábel köt össze egy központ elosztóval, hub-bal. 10 BaseF – üvegszálas: Az Ethernet újabban üvegszálas kábelen is működik, ami nem annyira a sebesség miatt, mint inkább a nagyobb távolság miatt figyelemreméltó. Így a hálózat központjától néhány km távolságra levõ egységeket is 1 üvegszálas szegmens közbeiktatásával könnyedén bekapcsolhatjuk a forgalomba. 100 BaseT – fast Ethernet: A növekvõ igények elindították az Ethernet hálózat továbbfejlesztését. Ennek egyik állomása a Fast Ethernet, ami mindent érintetlenül hagy, csak a
szegmensek mérete csökken a tizedére és az átviteli sebesség a tízszeresére. 1000 BaseT – Gigabit Ethernet: Egyenes folytatása a korábbi 10 és 100 Mbit/s sebességű szabványoknak. Miközben 1000 Mbit/s (1Gbit) nyers adatátviteli sebességet nyújt, teljes kompatibilitást biztosít a korábbi eszközökkel. UTP: ez a legelterjedtebb, a csavart érpár STP: árnyékolt csavart érpár Ethernet csomagok Az Ethernet hálózat az adatokat, a továbbítandó információt csomagokra, ún. keretekre bontja Ezeket a kereteket továbbítja a kábelen. A keret az adatbájtok mellett a szükséges kísérõ információkat is tartalmazza Minden Ethernet keretnek minimálisan 64 byte hosszúnak kell lennie, és minden állomás a hálózaton egy egyedi 48 bites címet azonosít. Minden Ethernet csomagnak egy 14 oktettes fejléce van, amely a forrás- és a célgép címét, valamint egy típuskódot tartalmaz. A hálózaton lévõ gépek csak az olyan csomagokat figyelik,
amelynek célmezõjében a saját Ethernet címüket találják. Jelenleg a legtöbb hálózat fizikai és adatkapcsolati szinten Ethernet kártyákat használ. Valamennyi helyi hálózat típus közül az Ethernet a legnépszerûbb. Sokoldalúsága, hogy különbözõ hálózati protokollokat is megenged IEEE 802 szabvány 802.3-es szabvány A CSMA/CD (Ethernet) leirása. Nagyon fontos itt megjegyezni, hogy a 8023 szabvány és az Ethernet nem azonos fogalmak. Az Ethernet egy termék, azaz a 8023-as szabvány megvalósítása - 37 - 19. Az operációs rendszer erőforrás-kezelőjének feladata A holtpont és kezelésének stratégiái Biztonságos állapot. A szemafor használata a termelő-fogyasztó folyamatok esetében Az OS. erőforrásai (alapfogalmak) A számítógépekben többféle ún. erőforrás található Ezeket az erőforrásokat különféleképpen csoportosíthatjuk Csoport 1 • • Hardver erőforrások: Vannak a hardver erőforrások, ezek közé tartoznak
például a processzor, a memória, a nyomtató és az egyéb perifériák. Szoftver erőforrások: Ezek közé a különböző közösen használható programok, adatállományok, adatbázisok tartoznak. Ma a számítógépek árának egyre kisebb részét jelenti a hardver és egyre nő a szoftvertermékek súlya. Csoport 2 • • Hagyományos erőforrások: Az operációs rendszer nélkül is léteznek, például nyomtatók, szövegszerkesztők. Operációs rendszer által létrehozott erőforrások: Az operációs rendszer saját magának, illetve a futó folyamatoknak a vezérlésére többféle táblázatot, adatstruktúrát stb. is létrehoz Ilyenek például a már látott fájl leírótáblák, lemez adatblokkok, a perifériaműveletek gyorsításához használt pufferek, folyamatvezérlő blokkok, laptáblák, szegmensleíró táblák stb. Az operációs rendszereknél szintén egyre inkább előtérbe kerül ezek fontossága és minél hatékonyabb használata, hiszen
ezáltal lehet gyorsítani a rendszer működését. Csoport 3 • • Megoszhatók: Vannak olyan erőforrások, például a processzor és a memória, melyek használata a folyamatok között (időben) megosztható. Nem megoszthatóak: Vannak azonban olyan erőforrások, melyek nem megoszthatók a folyamatok között. Csoport 4 • • Nem megszakítható (non-peemptive): a folyamatok sorban egymás után használhatják őket. Megszakítható (preemptive): az őket használó folyamatoktól – természetesen az elvétel szabályait betartva – bármikor elvehetők, használatuk megszakítható. Az OS erőforrás-kezelője Az erőforrás kezelő gondoskodik a számítógép erőforrásainak – a futó folyamatok igényei alapján történő – hatékony, gazdaságos elosztásáról, illetve az erőforrások használatáért vívott versenyhelyzetek kezeléséről. Ha egy folyamat erőforrást igényel, az erőforrás kezelő dönti el, hogy a kérés kielégíthetı-e.
Pozitív döntés esetén az erőforrás tulajdonjoga bejegyződik a folyamatleíró blokkba, és az erőforrás is hozzárendelődik az őt kérő folyamathoz. Használat után a folyamat egy újabb rendszerhívást ad, melynek hatására az erőforrás kezelő felszabadítja az erőforrást Előfordulhat azonban, hogy az erőforrás igényt nem lehet kielégíteni. Ha a folyamatnak nincs joga a választott erőforrás használatához vagy az éppen nem működőképes, az elutasítás tartós vagy végleges. A folyamat ekkor egy hibaüzenetet kap a rendszermagtól A másik esetben, ha az igény jogos, de a kért erőforrás éppen foglalt, a folyamat az igény kielégítéséig az erőforrás-várólistára kerül. Holtpont Az erőforrás kezelésnek a következő módszere végtelenül egyszerűnek tűnik: ha van szabad erőforrás, kielégítjük a kérést, ha nincs, a folyamat várakozni kényszerül. Ez a probléma leginkább liberális megközelítése, azonban korlátai elég
hamar megmutatkoznak Holtpont esetén a folyamatok körkörösen egymásra várakoznak, az erőforrás foglalási gráfban a nyilak mentén körbejárható zárt görbe, hurok jelenik meg. Először foglaljuk össze, mi is vezethetett a holtpont kialakulásához: • • • • Vannak olyan erőforrások, amelyek nem megoszthatók. Az erőforrásokra várakozó folyamatok várakozás közben lefoglalva tartanak erőforrásokat. Vannak olyan erőforrások, amelyek nem preemptívek, azaz erőszakkal nem elvehető erőforrások. Az erőforrásokra várakozó folyamatok körkörösen egymásra várnak. Ahhoz, hogy a rendszerben holtpont kialakuljon, e négy feltétel egyidejű teljesülése szükséges! Kiéheztetés A leginkább konzervatív megoldás az, ha megtiltjuk, hogy egyszerre több folyamat is rendelkezzen erőforrással. Ez esetben az erőforrással rendelkező folyamat sohasem várakozik A módszer egyik hátránya, hogy többnyire a rendszerben a rendelkezésre álló
erőforrások száma jóval nagyobb, mint amit egy folyamat igényel, így az erőforrások jó része kihasználatlanul áll. Ez még a kisebbik baj, a biztonságért a rendszer lelassulásával fizetünk. A másik hátrány sokkal súlyosabb. Amíg az egyik folyamat használhatja az összes erőforrást, a várakozó folyamatok elszaporodhatnak a várakozási sorban, a várakozási sor hosszúra nyúlhat. Ha egyfolyamat az erőforrás kezelő startégiája miatt belátható időn belül nem jut erőforráshoz, akkor kiéheztetésről beszélünk. - 38 - Holtpont kezelő stratégiák A szélsőséges liberalizmus és a szélsőséges konzervativizmus tehát egyaránt veszélyekkel jár, valamilyen közbülső megoldást kell találni. Alapvetően kétféle stratégia választható: vagy meg kell előzni a holtpont kialakulását, vagy folyamatosan figyelni kell, hogy kialakult-e holtpont, és ha igen, meg kell tenni a megfelelő lépéseket a holtpont felszámolására. Látni
fogjuk, hogy a holtpont megelőzése kevesebb veszteséggel jár, mint a már kialakult holtpont megszüntetése, de sajnos, nem mindig tehető meg, ezért kell a holtpont felszámolásával is foglalkoznunk majd. Holtpont megelőző stratégiák • • • Egyetlen foglalási lehetőség: A folyamatok csak egy lépésben (célszerűen induláskor) foglalhatják le az összes szükséges erőforrást. A módszer további előnye az, hogy egy folyamat, ha már megszerezte az összes szükséges erőforrást, soha többé nem kell, hogy erőforrásra várakozzon, azaz gyorsan lefuthat. A módszer nagy hátránya, hogy az erőforrás kihasználás szempontjából nagyon pazarló. További hátrány, hogy nem mindig mérhető fel előre egy folyamat erőforrás igénye A legkedvezőtlenebb tulajdonság azonban a kiéheztetés veszélye. Ha egy folyamat sok és népszerű erőforrást igényel, előfordulhat, hogy soha nem jön el az a pillanat, amikor mindegyik egyidejűleg áll
rendelkezésre. Megjegyzés: a módszernek létezik egy „finomított” változata is. Eszerint egy folyamat futása során többször is igényelhet ugyan erőforrásokat, de csak azzal a feltétellel, hogy előzőleg az összes birtokolt erőforrását elengedte. Rangsor szerinti foglalás: A ciklikus várakozás lehetőségének kiküszöbölésével alkalmas a holtponthelyzetek megelőzésére. Lényege, hogy az erőforrások osztályaihoz egy-egy növekvő sorszámot rendelünk úgy, hogy a leggyakrabban használt erőforrások kapják a legkisebb sorszámokat. Ha egy folyamatnak egy osztályon belül több erőforrásra van szüksége, azokat csak egyszerre igényelheti. A megelőzési stratégia azon az elven alapul, hogy a folyamatok csak rangsor szerint növekvő sorrendben igényelhetnek erőforrásokat. A módszer hatékonyságát jelentősen befolyásolja a sorszámok kiadásának módja. Ha egy folyamatnak a meglévőknél alacsonyabb sorszámú erőforrásra van
szüksége, fel kell szabadítania erőforrásokat egészen addig a szintig, míg az igénylési feltételek nem teljesülnek. A bankár algoritmus: Úgy kerüli el a holtpont kialakulásának lehetőségét, hogy a rendszert mindig ún. biztonságos állapotban tartja. Egy állapotot akkor tekintünk biztonságosnak, ha létezik a folyamatoknak legalább egy olyan sorrendje, amely szerint haladva az összes folyamat maximális erőforrás igénye kielégíthető. Az algoritmus csak akkor működik, ha a folyamatok indulásukkor tudják, hogy a különböző erőforrásokból egyszerre maximálisan hányat fognak igényelni, és ezt az operációs rendszernek be is jelentik. Az algoritmus indulásához még két dolgot ki kell számolni: az egyik az, hogy pillanatnyilag az egyes erőforrás fajtákból hány szabad van, míg a másik az, hogy az egyes erőforrásokból az egyes folyamatok még mennyit igényelhetnek. Holtpont felszámolási stratégiák Mint láttuk, sajnos a holtpont
megelőző stratégiák mindegyikének komoly elvi és/vagy gyakorlati problémái vannak, tehát ezek csak speciális körülmények között alkalmazhatók. Ezért beszélnünk kell arról is, hogy mit tegyünk akkor, ha a rendszerben holtpont már kialakult. Először is képesnek kell lennünk észrevenni, detektálni, ha egy holtpont kialakult. Ehhez az operációs rendszernek folyamatosan nyilván kell tartania az erőforrások szétosztását és a ki nem elégített igényeket. Ezen adatokból kiindulva időnként egy ún holtpont detektáló algoritmust kell lefuttatni. Ezen algoritmusok két leggyakrabban használt változata közül az egyik a bankár algoritmushoz nagyon hasonló (csak nem kell tudni hozzá a folyamatok maximális igényeit, ami a problémát jelentette), míg a másik a már említett erőforrás foglalási gráfot ellenőrzi, hogy nem tartalmaz-e hurkot. Holtpont detektáló algoritmusok futtatása: • Amikor egy erőforrás igényt nem tudunk azonnal
kielégíteni: Bár így vehetjük észre leghamarabb a holtpontot, de ilyen eset nagyon gyakran történik, ezért ez a megoldás nagyon lelassítaná rendszerünk működését. • Periódikus futtatás: Viszonylag ritkán. Ezzel meg nyilván az a baj, hogy ez alatt az idő alatt esetleg több holtpont is kialakulhatott és akár elég régóta blokkolhatja is a folyamataink működését. Áldozat kijelölési szempontok: • • • • • • • Melyikkel hány erőforrást nyerek: célszerű olyan folyamatot választani, amely sok erőforrást használt, mert valószínű, hogy az így nyert erőforrás mennyiség elég lesz a többi futásához Hány további erőforrást igényel még: célszerű olyan folyamatot kiválasztani, amely még sok erőforrást fog igényelni, hiszen valószínőleg ez hajlamos lesz arra, hogy újabb holtpontot okozzon Mennyi már elhasznált CPU időt ill. I/O munkát vesztek a megszüntetéssel: célszerű olyan folyamatot választani, amellyel
keveset, hiszen így kevesebb munkát kell majd újra elvégezni Mennyi idő van még hátra a futásából: nem célszerű olyan folyamatot kiválasztani, amely már majdnem kész Ismételhető / nem ismételhető folyamat-e: nem célszerű olyan folyamatot választani, amely munkája nem ismételhető meg A folyamat prioritása: célszerű kis prioritású folyamatot választani Megszüntetése hány további folyamatot érint: egy olyan folyamat megszüntetése, amely sok más folyamattal dolgozott együtt, az együttműködő folyamatok megszüntetését okozhatja. Lehet, hogy nincs is szükség a folyamat teljes megszüntetésére, elég ha néhány erőforrást elveszünk tőle. Ez persze veszteséget jelent, de sokszor sokkal kevesebbet, mint ha a folyamatot teljesen megszüntetnénk. Az áldozat kijelölési szempontok ilyenkor is a fentiekhez hasonlók lehetnek. Sokszor azonban még erre sincs szükség, elég ha a holtpontban lévő folyamatokat – vagy közülük
néhányat – egy olyan korábbi állapotból folytatunk, amikor még nem volt holtpont. Ehhez az kell, hogy a folyamatok állapotát periodikusan elmentsük, ezek az ún - 39 - ellenőrző pontok. Így lesz a legkisebb a felélesztési veszteség, de ez a módszer hatalmas tárigényt igényel és sok plusz idővel jár, ezért általában csak a különlegesen nagy megbízhatóságot igénylő rendszerek esetében alkalmazzák. Végezetül meg kell említeni a holtpontkezelés két legnagyobb veszélyét. • Alulszabályozás: ha olyan túlbiztosításra törekszünk, hogy ezáltal ugyan holtpont nem fog kialakulni, de a rendszer lehetőségeit távolról sem tudjuk kihasználni, például nem működtetünk párhuzamosan eszközöket, feleslegesen várakoztatunk folyamatokat stb. Ezt okozhatja például az egyetlen foglalási stratégia • Túlszabályozás: ha olyan bonyolult, számítás- és/vagy memóriaigényes algoritmust választunk, hogy maga az algoritmus futtatása
lassítja le katasztrofálisan a rendszert. Szemafor (alapfogalmak) Közös erőforrásoknak azokat az erőforrásokat nevezzük, amelyeket egynél több folyamat szeretne egy időben használni. Általánosságban a kölcsönös kizárást igénylő erőforrások kezelését végző programrészeket kritikus szekciónak nevezzük. Azt kell majd biztosítani, hogy egy kritikus szekcióban mindenképpen csak egy folyamat tartózkodhasson. Tegyük fel, hogy van két folyamatunk, mely egy közös memóriaterületen, az ún. postaládán keresztül kommunikál egymással Az egyik folyamat – az ún. termelő folyamat – adatokat ír a közös memóriaterületre, míg a másik folyamat – az ún fogyasztó folyamat – ezeket az adatokat kiolvassa onnan. Plasztikusabban fogalmazva, a termelő leveleket tesz a postaládába, míg a fogyasztó kiveszi azokat onnan. Nyilvánvaló, hogy a postaláda ebben a példában egy kölcsönös kizárást igénylő erőforrás, hiszen amíg például
a termelő nem fejezte be a levél beírását, a fogyasztó nem olvashatja azt ki onnan, illetve fordítva, amíg a fogyasztó nem fejezte be az előző levél kivételét, nem teheti be a termelő a következőt. A szemafor használata (termelő-fogyasztó folyamatok esetén) Rendeljünk az adott postaládánkhoz egy szemafort. Ez a szemafor egy változó a memória egy olyan helyén, amelyet mind a termelő, mind a fogyasztó elér. (Tipikusan például a postaláda eleje vagy vége) Mondjuk azt, hogy ha a szemafor értéke 0, akkor tilosat mutat, ha értéke 1, akkor szabadot. Mivel ez a szemafor kétféle dolgot tud jelezni - később majd lesznek komplikáltabb szemaforok is - ezért ezt bináris szemafornak hívjuk. A fentiek majdnem mindig jól működnek, kivéve azt az esetet, ha a két folyamat közel egyszerre akar a postaládához férni. Tegyük fel, hogy a termelő jött egy picivel előbb, kiolvasta a szemafor értékét. Azonban míg vizsgálja, hogy szabad-e, jön a
fogyasztó, és az is kiolvassa a szemafort. Mi okozhatta a problémát? Az, hogy a szemafor kiolvasása, vizsgálata és lefoglalása nem egy művelet volt, hanem egy megszakítható műveletsor. Ha azt biztosítani tudnánk, hogy a lépések megszakíthatatlanok legyenek, azaz ún oszthatatlan művelet legyen, meglenne a megoldás. Ez azonban minden esetben hardver támogatást igényel. Sok számítógép utasításkészletében találunk olyan utasítást, amelyek a fenti vagy ahhoz nagyon hasonló műveletsort valósítanak meg. Ezt az utasítást sokszor „TEST AND SET”, azaz „vizsgáld meg és állítsd be” utasításnak hívják Mivel a szemaforok lefoglalása és felszabadítása nagyon gyakori feladat többfolyamatos rendszerekben, ezért sok operációs rendszer ehhez támogatást nyújt, mégpedig az ún. P és V primitívek formájában P és V primitívek A P primitív egy szemafor lefoglalását végzi, míg a V primitív a szemafor szabaddá tételét intézi. (A
primitív a számítástechnikában oszthatatlan, „atomi” műveletet jelö.) lFormájukat tekintve a P és a V primitívek egy-egy függvénynek felelnek meg, amelyeknek egy paraméterük van, az állítani kívánt szemafor neve. Egyrészt, könnyű belátni, hogy a megoldásunk akkor is működik, ha nem egy termelő és egy fogyasztó folyamatunk van, hanem akár az egyikből, akár a másikból, akár mindkettőből több is hozzá akar férni a postaládához. Másrészt azt sehol sem használtuk ki, hogy az erőforrásunk egy memóriaterület volt, csak arra kell vigyázni, hogy a szemafor vagy egy olyan memóriaterületen legyen, amit mindazon folyamatok használhatnak, akik magát az erőforrást is vagy magában az erőforrásban legyen elhelyezve például egy vezérlőregiszter formájában. Harmadszor pedig gondoljunk bele a következőbe: ha a szabad érték = 1, a tilos érték pedig = 0, akkor a szemafor tilosra állítása azt jelenti, hogy 1-es helyett írunk be
0-t, míg a szabadra állítása azt jelenti, hogy 0 helyett teszünk be 1-est. Vagyis az első esetben eggyel csökkentettük, míg a második esetben eggyel növeltük a szemafor korábbi értékét. Hát akkor menjünk tovább! Képzeljük el, hogy most egy olyan postaládánk van, amelybe nem egy, hanem több, mondjuk N levél fér el. Nyilvánvaló, hogy a postaládához való hozzáférést úgy lehet gyorsítani, hogy mielőtt harcba szállnánk a postaláda használati jogáért, megnéznénk, hogy az általunk kívánt művelet egyáltalán elvégezhető-e. Torlódásvezérlő szemafor Ennek megvalósítására rendeljünk a postaládához két újabb, ún. torlódásvezérlőszemafort Az egyik szemafort hívjuk mondjuk TELEnek, és mutassa ez a postaládában lévő levelek, azaz tele helyek számát, míg a másikat ÜRES-nek, mely mutassa a postaládában lévő üres helyek számát. Ezek a szemaforok többértékű, azaz nembináris szemaforok lesznek, hiszen 0 és a
postaláda kapacitását jelző N közötti értékeket vehetnek fel (a 0-t és az N-et is beleértve). - 40 - 20. A magas, közbenső és alacsony szintű ütemezők feladata egy operációs rendszerben A folyamatok állapotai. Ütemezési algoritmusok A folyamatok kezelése A folyamatok és a processzor kapcsolata igen szoros, a folyamatok minden utasítását a processzor hajtja végre. Egy folyamat elindításától befejezéséig folyamatosan igényli a processzor közreműködését. A kihasználtság és a sebesség tehát egyaránt fontos, az operációs rendszereknek, mindkét feltételt teljesíteniük kell. Az idővel való gazdálkodást ütemezésnek (scheduling) nevezzük. Az ütemezés során a folyamatok állapota változik meg Attól függıen, hogy milyen állapotok között történik váltás, az ütemezők több szintjét definiálhatjuk. Magas szintű ütemező (hosszútávú) A főütemező választja ki a háttértáron lévő programok közül azt, amelyik
az operációs rendszer közvetlenebb felügyelete alá kerülhet, elkezdődhet a végrehajtása, azaz folyamattá válhat. A főütemező működésére az operációs rendszer időléptékével mérve viszonylag ritkán van szükség, ezért hosszú távú ütemezőnek is nevezik. Mivel nem áll rendelkezésre elegendő információ a program igényeiről, így a főütemező kénytelen az érkezési sorrend, vagy az előre meghatározott prioritás alapján dönteni. Interaktív rendszerek esetén még ennyit sem lehet tenni, mert a felhasználó önkényesen, kénye-kedve szerint dönthet, hogy melyik programját indítja. Tisztán interaktív rendszereknél magas szintű ütemező - feladat híján - nincs is, legalábbis döntési jogkörrel nem rendelkezik. Az operációs rendszernek azonban mindenképpen rendelkeznie kell egy olyan komponenssel, amely a futni készülő programokból folyamatokat készít: betölti őket a memóriába és folyamatleíró blokkot (PCB) rendel
hozzájuk. Folyamatleíró blokk (PCB) A PCB minden információt tartalmaz, ami a folyamat futásához szükséges. Az operációs rendszer szempontjából a PCB maga a folyamat, a folyamat állapota kizárólag attól függ, hogy az operációs rendszer éppen mit kezd a folyamatleíró blokk adataival. Ha az adatok a processzor regisztereibe kerülnek, akkor a folyamat fut, egyébként a PCB feltehetően valamelyik várakozási sor egyik elemét alkotja. A várakozási sor (queue) a leggyakoribb olyan adatstruktúra, mellyel az operációs rendszerek ütemezésével kapcsolatban találkozhatunk. Egyszerre csak egy folyamat futhat, a többi valahol várakozik A lista adattípus kiválóan alkalmas előre nem meghatározható számú elem rendezett tárolására. Könnyő hozzáfűzni, beékelni elemet, könnyő az elemek sorrendjét megváltoztatni. Az operációs rendszernek mindössze az első adat címét kell ismernie, és máris mindent tud a folyamatokról. Környezetváltás
Az operációs rendszer olyan folyamatok összessége, amelyek felhasználói folyamatokkal végeznek műveleteket. A felhasználói folyamatok, illetve az őket reprezentáló folyamatleíró blokkok tehát a rendszerfolyamatok változóinak tekinthetők. A PCB-k, illetve a benne foglalt adatok képezik az operációs rendszer folyamatainak környezetét, kontextusát. Ha a rendszerfolyamat egy másik felhasználói folyamattal akar foglalkozni, a környezetét kell átkapcsolni. Ez a művelet a környezetváltás A folyamatok állapotai • • • Futásra kész (ready): Ebben az állapotban - a processzoron kívül - minden erőforrás a folyamat rendelkezésére áll. A folyamatok létrejöttüket követően a futásra kész állapotba kerülnek. Fut (running): A processzor annak a folyamatnak az utasításait hajtja végre, amelyik ebben az állapotban van. Várakozik (blocked): Ha futó folyamat olyan erőforrást igényel, amelyik pillanatnyilag nem áll rendelkezésre, vagy a
további futásához szüksége van egy másik folyamat által szolgáltatandó eredményre, ebbe az állapotba kerül. Az állapot átmenetek: • • • • Elindul (dispatch): A központi egység felszabadulása esetén az alacsonyszintű ütemező a futásra kész állapotban lévő folyamatok közül választja ki azt, amelyik a FUT állapotba kerülhet. Megszakad (timer runout): Ha a futó folyamat számára biztosított idő lejár, visszakerül a futásra kész állapotba. (Ehhez a rendszernek, illetve a folyamatnak megszakíthatónak (preemptív) kell lennie). Vár (wait, block): Amennyiben olyan erőforrásra van szüksége, amely éppen foglalt, a fut állapotból a várakozik állapotba jut. Feléled (awake): A várt esemény bekövetkezése esetén a folyamat futásra kész állapotba kerül, vagyis újra beáll a processzorra várakozó folyamatok sorába. Közbenső ütemező (középtávú) Az alapállapotok tárgyalásánál a futás megszakadásának lehetséges
okaiért egyrészt a futó folyamatot (befejeződik, perifériára vár), másrészt az operációs rendszer kifejezetten a processzor kezelésével foglalkozó rendszerfolyamatát, az alacsony szintű ütemezőt tettük felelőssé. Léteznek azonban más okok is Nagyobb rendszereknél indokolt egy olyan mechanizmus megvalósítása, mely folyamatosan figyeli a rendszer terhelését, és ha a normális működés zavarait észleli, beavatkozik. Ha túlságosan sok folyamat került futásra kész állapotba, előfordulhat, hogy egyiknek sem jut megfelelő mennyiségű erőforrás, és a processzor idejének javát rendszeradminisztrációval, például környezetváltásokkal tölti. - 41 - A középtávú, vagy más néven közbenső szintű ütemező ilyenkor beavatkozik, és egyes folyamatok felfüggesztésével vagy a prioritási szintek időszakos változtatásával helyreállítja a hatékony működés feltételeit. Például egy gyakran futó, magas prioritású folyamat
prioritását ideiglenesen csökkenti vagy egy kiéheztetéstől szenvedő, alacsony prioritású folyamat prioritását ideiglenesen növeli. Sok esetben a holtpont detektálásáról és a holtpontot okozó folyamatok felfüggesztéséről is a közbülső szintű ütemező gondoskodik. Alacsony szintű ütemező (rövidtávú) Az alacsony szintű ütemezés célja, hogy az operatív tárban lévő, kiszolgálásra váró, azaz futásra kész folyamatok számára biztosítsa a processzor használatának jogát, azaz tegye lehetővé az azokban található utasítások végrehajtását. Az alacsony szintű ütemezővel szemben támasztott legfőbb követelmény a gyorsaság, hiszen ha a folyamatok közötti átkapcsolás túl hosszú időt venne igénybe, a rendszer hatékonysága jelentősen csökkenne. Az alacsony szintű ütemező feladata tehát, hogy a processzort a futásra kész folyamatok között igazságosan és hatékonyan ossza el. Sokféle statisztika készíthető,
azonban talán az alábbiak a legjellemzıbbek: • • • Várakozási idő: megadja, hogy a folyamat mennyi időt töltött tétlen várakozással. Átfutási idő: a folyamat érkezésétől annak befejezéséig eltelt idő. Válaszidő: az az idő, amely a folyamat rendszerbe érkezésétől (indításától) az első futás kezdetéig telik el. A fenti paramétereken kívül mindhárom esetben nagyon tanulságos a szórás, illetve a folyamat igényére vonatkoztatott arányszám is. Ütemezési algoritmusok (folyamatoknál) Előbb jött, előbb megy (FCFS) A legegyszerűbben megvalósítható ütemezési módszer. Semmi más nem kell hozzá, mint egy jól ismert várakozási sor A folyamatok egyszerűen érkezési sorrendben kapják meg a processzort, és azt egészen addig maguknál tarthatják, amíg be nem fejeződnek, vagy egy periféria művelet miatt várakozni nem kényszerülnek. A módszer működéséből fakadó előnye, egyszerűsége mellett az, hogy biztosan
mindegyik folyamat sorra kerül előbb–utóbb. De az is látszik, hogy inkább utóbb. Ha egy nagy futási idejű folyamat keveredik a rendszerbe, folyamatok egész sorát tarthatja fel (kamion hatás). A várakozási idő a kezdési idő és az érkezési idő különbsége. Ennél a módszernél egy folyamat csak akkor kezdődhet, ha a másik már befejeződött. Legrövidebb előnyben (SJF) Míg az előző módszer relatíve a leghosszabb folyamatoknak kedvez, ez az ütemezési eljárás előnyben részesíti a rövid processzoridő igényő munkákat azaz a várakozó folyamatokközül mindig a legrövidebbnek adja oda a processzor használati jogát. Ha több egyforma idejű folyamat is lenne, közülük az futhat, amelyik előbb érkezett. Nem ismerhető az idő, hosszú folyamat kiéhezhet. Az SJF algoritmus garantálja a legrövidebb átlagos várakozási időt. Az SJF algoritmusnak elképzelhető preemptív változata is, azaz ha egy folyamat futása közben érkezik egy
nálánál rövidebb időigényű folyamat, azonnal megkapja a vezérlést. Körben járó algoritmus (RR) A körben járó algoritmus az hátulsó pár előre fuss elvet valósítja meg. Azért, hogy mindegyik folyamat viszonylag egyenletes sebességgel folyamatosan előre haladhasson, az RR módszer használatakor egy bizonyos időszelet eltelte után az ütemező elveszi a futó folyamattól a processzort (az algoritmus tehát, az eddigiekkel szemben, preemptív). Az addig futó folyamat a várakozási sor végére kerül, a következő folyamat futhat, de ő is csak maximum egy időszeletnyiig. Minden egyes folyamatváltásnál környezetváltásra is sor kerül, ami az időszelet nem megfelelő megválasztása esetén túlsúlyba is kerülhet. Preemptív módszerek Az ütemezési módszereknél használt másik tulajdonság a preempció. Ez azt jelenti, hogy ha az éppen futó folyamatnál fontosabb érkezik, akkor az azonnal megszakítja az éppen futót. A fontos folyamatok még
inkább előtérbe helyezhetk, természetesen a kevésbé fontosak kárára, hiszen most már az sem garancia a folyamat lefutására, ha megkapta a processzort, mert bármikor jöhet egy nála fontosabb, amelyik elveheti azt tőle (azaz itt még inkább előtérbe kerül a kiéheztetés). 21. Többfeladatos (multitasking) operációs rendszerek feladatai, felépítése A tárvédelem feladata és megvalósítása (privilégiumi szintek, jogosultságok, szegmensek, deszkriptorok, kapuk). Multiprogramozás, multitasking A multiprogramozásos rendszerekben egy időben több programfolyamat kerül betöltésre a számítógép memóriájába, amelyek valamilyen eljárás szerint osztozkodnak a programfutáshoz szükséges erőforrásokon A multiprogramozott üzemmódnak két lényeges feltétele, hogy a memória a programfolyamatoknak megfelelően részekre (partíciók) legyen osztva, és az I/O műveletet végrehajtó egységek önálló vezérléssel rendelkezzenek, azaz a
processzortól függetlenül is képesek legyenek a feladatvégrehajtásra. A multiprogramozott üzemmódnak két, lényegében különböző változata van, amelyek abban különböznek, hogy az erőforrások szétosztása (hozzárendelése) milyen módon történik meg az egyes programfolyamatok között. • • - 42 - Prioritásos elv: az egyes feladatoknak megfelelő programfolyamatoknak prioritása van, azaz fontosságuknak megfelelő sorrendben kapják meg a számítógép erőforrásait (processzor, memória, I/O vezérlések). Időosztásos elv: az egyes feladatoknak megfelelő programfolyamatokhoz időszeletek kerülnek hozzárendelésre, amelyek meghatározzák, hogy az adott feladat mennyi időre veheti igénybe a processzort. Ezen az elven működik az összes korszerő operációs rendszer. (Time sharing) Természetesen a két elv együttesen is alkalmazható, azaz time-sharing esetén is lehet a programfolyamatoknak prioritása. Többfeladatos OS-ek. (alapok) A
kezelői felület, a burok (shell) és a mag (kernel) együttese alkotja az operációs rendszert. Az operációs rendszereknek a hardver, illetve a szoftver oldalról nézve következő feladatokat kellett ellátniuk: • Eszközkezelők (Device Driver): A felhasználói programok elől el kell fedniük a perifériák különbözőségét, egységes kezelői felületet kell biztosítani. • Megszakítás kezelés: Alkalmas kell legyen a perifériák felől érkező kiszolgálási igények fogadására, megfelelő ellátására. • Rendszerhívás: Az operációs rendszer magjának ki kell szolgálnia a felhasználói alkalmazások erőforrások iránti igényeit úgy, hogy azok lehetőleg észre se vegyék azt, hogy nem közvetlenül használhatják a perifériákat. • Erőforrás kezelés: Az egyes eszközök közös használatából származó konfliktusokat meg kell előznie, vagy bekövetkezésük esetén fel kell oldania. • Processzor ütemezés: Az operációs rendszerek
ütemező funkciójának a várakozó munkák között valamilyen stratégia alapján el kell osztani a processzor idejét, illetve vezérelnie kell a munkák közötti átkapcsolási folyamatot. • Memóriakezelés: Gazdálkodnia kell a memóriával, fel kell osztania azt a munkák között úgy, hogy azok egymást se zavarhassák, és az operációs rendszerben se tegyenek kárt. • Állomány- és háttértárkezelés: Rendet kell tartania a hosszabb távra megőrzendő állományok között. • Felhasználói felület: A parancsnyelveket feldolgozó monitor utódja, fejlettebb változata, melynek segítségével a felhasználó közölni tudja a rendszermaggal kívánságait, illetve annak állapotáról információt szerezhet. Az operációs rendszerek fejlıdésének következő lépése az interaktív multiprogramozás megjelenése volt. Az eddigi rendszerek a programok futtatását jól támogatták, azonban a programok fejlesztését alig. A kötegelt rendszerek korában a
programozó közvetlenül nem befolyásolhatta a program futását, nem ellenőrizhette a részeredményeket, nem állíthatta le a folyamatot egyes kritikus lépéseknél. Az interaktivitás lehetőségének megteremtése természetesen az operációs rendszert sem hagyta érintetlenül: • Válaszidő: Az operációs rendszernek emberi mércével is elfogadható válaszidővel kellett reagálnia a felhasználói beavatkozásokra, ez pedig az eddigi órák, napok helyett másodperceket jelentett. • Időosztás: A számítógépnek nemcsak akkor vannak adminisztratív feladatai, ha egy program éppen írni vagy olvasni akar, hanem időről időre foglalkoznia kell a terminálok előtt ülő türelmetlen felhasználókkal is, a perifériák között megjelenik az óra, amely az idő felosztását vezényli (időosztás, time sharing). • Felhasználói felület: A kötegelt rendszerekben alkalmazott parancsnyelvet ki kellett váltania egy olyan parancsértelmezőnek (command
interpreter), amely lehetővé teszi, hogy a felhasználó közölhesse óhajait a számítógéppel. • Felhasználói adminisztráció: Az operációs rendszernek a munkafolyamatokon kívül a felhasználókat is könyvelnie kell. Felvetődnek a felhasználói jogosultsággal kapcsolatos biztonsági kérdések. Igényként jelentkezik az egy gép termináljai előtt ülő felhasználók egymás közötti kommunikációja. Valósidejű (real time) rendszerek Az interaktív rendszerek speciális esete. Abban különböznek az interaktív rendszerektől, hogy egy kiszolgálás kérésre adott válasz egy szigorúan meghatározott időn belül meg kell érkezzen. Pl egy számítógép által vezérelt mérőrendszer vagy gyártósor Az interaktív rendszerek a kötegelt rendszerek mellett jelentek meg, nem kiszorítva azokat. A személyi számítógépek esetén ugyan ma dominál az interaktivitás, azonban nagyobbacska gépeknél a kötegelt futtatásnak (természetesen a
többfeladatos kötegelt futtatásnak) mindmáig van létjogosultsága. Tárvédelem, többfeladatos OS-eknél. Valóságos tárkezelés - Virtuális tárkezelés Valóságos tárkezelés A valóságos tár elnevezés a virtuális tártól való megkülönböztetést szolgálja. A kétféle módszer között a leglényegesebb eltérés az, hogy a valós tárkezelés esetében az éppen végrehajtott folyamathoz tartozó programutasításoknak és adatoknak teljes egészében az operatív memóriában kell tartózkodniuk, míg virtuális tárkezelés esetén csak az éppen végrehajtás alatt álló rész van az operatív tárban, a program és az adatok többi része a háttértáron található. Virtuális tárkezelés Ahhoz, hogy sok folyamat futhasson, sok folyamatot kell betölteni a memóriába, azaz nagyon nagy memóriára van szükség. Szerencsére a folyamatokra igaz az úgynevezett lokalitási elv, amely azt mondja ki, hogy ha egy program adott pontján vagyunk, akkor nagy
valószínűséggel, viszonylag hosszú ideig ennek a pontnak egy nem túl tág környezetében fogunk maradni. Osszuk fel az operatív memóriát és a virtuális memóriát is egyforma méretű, viszonylag kis egységekre, lapokra. Az operatív memóriában hozzunk létre minden folyamathoz egy laptáblát, amely minden sorában a lap operatív tárbeli kezdőcíme mellett tartalmazzon még egy olyan vezérlés jellegő bitet is, amely azt mutatja, hogy az adott lap bent van-e (present) az operatív tárban vagy nincs. Laphibánál nem csak a kért lapot hozzuk be, hanem a környezetében lévő néhány lapot is. - 43 - Először vizsgáljuk meg, hogy tényleg szükséges-e a kicserélendő lapot minden esetben kimenteni a háttértárra, mielőtt felülírnánk! Ha addig, amíg a lap az operatív memóriában volt, nem írtunk rá, akkor felesleges kimenteni, Ennek megfelelően célszerű a kicserélendő lap meghatározásakor figyelembe venni, hogy lehetőleg minél
többször „nem piszkos” lapot írjunk felül. Rögzített címzés - Áthelyezhető címzés Rögzített címzés Amíg egy számítógépen csak egy felhasználó dolgozhatott és ő is csak egyetlen, viszonylag kicsi programot futtathatott, a memóriakezelés különösebb gondot nem okozott. Az operációs rendszer állandó területen, például a memória legelső, legkisebb című rekeszein helyezkedett el, a felhasználói program használhatta az operációs rendszer végétől egészen a legnagyobb címig az egész memóriát. A program változóinak, illetve vezérlésátadásainak címe így már fordítás közben meghatározható volt. A felhasználói program az operációs rendszert rendszerhívások által érte el. A rendszerhívás első dolga, hogy a processzort védett üzemmódba kapcsolja, így biztosítva az operációs rendszer számára az egész memória elérését. Természetesen a határregiszter tartalmának változtatása is szigorúan az operációs
rendszer feladata volt. Áthelyezhető címzés Az első korlát, amibe a rögzített címzésű rendszerek beleütköztek, az volt, hogy az operációs rendszer mérete nem bizonyult állandónak. Ez önmagában még nem lett volna baj, de a programozók is hamar megelégelték, hogy egy-egy operációs rendszer módosítás után mindig módosítaniuk kellett programjaikat. A megoldás viszonylag egyszerű volt. A programok fordításakor a fordítóprogram már nem közvetlen fizikai címeket generált, hanem a program elejéhez képesti relatív címeket. Ahhoz, hogy ezekből a relatív címekből fizikai címeket kapjunk, most már csak azt kellett tudni, hogy hol kezdődik a program a memóriában. A bázisregiszter tartalmazza a program kezdő- vagy más néven báziscímét. A processzor minden memória műveletnél automatikusan hozzáadja a bázisregiszter tartalmát az utasításban szereplő címhez és az így kapott összeg lesz az a fizikai memóriacím, amihez fordul.
Átlapoló (overlay) módszer Az eddigiekben olyan kicsi programokról volt szó, amelyek teljes egészükben belefértek a memóriába. A programozók természetesen nem elégedtek meg ezzel Ezért azonban meg kellett dolgozniuk. Úgy kellett a feladatokat szervezni, hogy az olyan méretű blokkokból álljon a program, melyek külön-külön már elhelyezhetők legyenek, azaz beférjenek a rendelkezésre álló memóriaterületre. Az ilyen programozáshoz az operációs rendszer semmiféle támogatást nem adott, mindenről a programozónak kellett gondoskodnia, de megérte: a program mérete meghaladhatta a memória méretét. Még egy nagyon fontos és előremutató dolog történt. A háttértár, amely eddig csak a programok tárolására szolgált, először vesz részt a program futtatásában aktív szereplőként. Tárcsere (swapping) A következő kihívást az jelentette, amikor egy időben több felhasználó programjának futtatását kellett biztosítani, persze
egymástól függetlenül. A feladat megoldásának legegyszerűbb és legősibb módja, ha minden felhasználó kap egy bizonyos időszeletet, majd ha az lejárt, az általa használt egész memóriaterületet az operációs rendszer a háttértárra másolja, és onnan betölti a következő felhasználóhoz tartozó memóriatartalmat. Így mindegyik felhasználó úgy dolgozhat, mintha az egész memória az övé lenne. A memóriatartomány ki-be másolását tárcserének (swapping) hívjuk, a másolás eredményeképpen keletkezı állományt cserefájlnak (swap file). A módszer nagy hátránya, hogy lassú, hiszen az időszelet lejártakor a teljes memóriaterületet a háttértárra kell másolni, illetve onnan betölteni, ami nagyon sokáig tart! Segíteni lehet a dolgon úgy, ha az operációs rendszer elég okos, és csak azokat a memóriarészeket mozgatja, amelyek változtak, de ennek menedzselése bonyolult. Állandó partíciók - Rugalmas partíciók Állandó
partíciók Ha a felhasználói folyamatok számára rendelkezésre álló memóriaterületet egymástól független részekre, partíciókra osztjuk, több program memóriában tartására is lehetőség nyílik. Egy-egy partíció úgy viselkedik az őt birtokló folyamat számára, mintha teljesen önálló memória lenne, a partíción belül lehetőség van az átlapoló vagy a tárcsere technika alkalmazására is. Rugalmas partíciók Az állandó partíció mérethátrányait jórészt kiküszöböli, ha a partíciók számát és nagyságát nem rögzítjük szigorúan, azok rugalmasan alkalmazkodhatnak az aktuális feltételekhez. A teljesen szabadon kezelt méret és kezdőcím azonban túl bonyolult címszámítást igényelne, ezért a partícióméretet célszerű valamely kettő hatvány egész számú többszörösére választani (pl. 2048) Az operációs rendszer ebben az esetben nyilvántartja a partíciók foglaltságát, és az érkező folyamatoknak a befejezett
folyamatok után fennmaradó lyukakból választ helyet, persze, csak ha van olyan szabad terület, ahová az befér. Rugalmas partíciók esetén az újonnan érkező folyamat memóriabeli elhelyezésére hasonló stratégiák alkalmazhatók mint amit a lemezkezelés során a folytonos fájl elhelyezésnél. Lapozás (paging) Osszuk fel a rendelkezésre álló operatív memória területet egyforma és viszonylag kisméretű egységekre, úgynevezett lapokra. Egy folyamat memóriában való elhelyezésekor most már nem szükséges az, hogy akkora összefüggő szabad memóriaterület álljon rendelkezésre, amennyit a folyamat igényel, hanem elég az, hogy összességében legyen ennyi hely. Mivel az egyes folyamatok most már nem folytonosan helyezkednek el, nem elég már csak azt megjegyezni, hogy hol kezdődnek és milyen hosszúak, hanem sajnos nyilván kell tartani, hogy az egyes részek hol helyezkednek el. Erre a célra szolgálnak a laptáblák A címszámítás úgy
történik, hogy a processzor által kiadott logikai címet formálisan két részre osztjuk. A cím első része adja meg a lapszámot, míg a második része a lapon belüli eltolást. Ezek után megnézzük a laptábla lapszámadik sorát, és az ott található - 44 - számérték megmutatja a lap fizikai kezdőcímét az operatív memóriában. Ehhez a számértékhez kell hozzáilleszteni (úgy mondjuk, hogy „hozzáadni”, holott ez nem összeadást, hanem hozzáillesztést jelent!) a lapon belüli eltolás értékét. Lapkiosztási elvek • • • • • Egyenletes elosztás: Minden folyamat ugyanannyi kerettel gazdálkodhat. Ez a legegyszerűbb, de egyben a legkevésbé kifinomult megoldás is, hiszen lehetnek kis folyamatok, amelyek dúskálnak a lapokban, és nagyok, amelyek állandóan laphibákkal kénytelenek küszködni. Arányos lapkiosztás: Jobb, igazságosabb elosztást tesz lehetővé, ha a folyamatok virtuálismemóriaigényeinek figyelembe vételével
döntünk. Azaz egy folyamat minél nagyobb virtuálismemória-területet használ, annál több keretet kap Prioritás figyelembevétele: A magasabb rendű folyamatok joggal követelhetnek extra előnyöket, tehát a hasonló igényű, de alacsonyabb prioritású folyamatoknál több lapot. Az azonos fontosságú folyamatokat természetesen arányosan, vagy egyenletes elosztással kezeli. Lokális elosztás: A rendelkezésre álló lapok száma egy folyamat számára a futás során állandó Globális lapkiosztás: Az operációs rendszer nem oszt ki minden lapot, csak a minimálisan szükségeseket, a fennmaradó szabad lapokból a folyamatok dinamikus igényeit elégíti ki. Ha egy folyamat bármely okból olyan kevés laphoz jut, hogy csaknem mindig laphibát okoz, fut ugyan, de, mint láttuk, futása akár tízezerszer is lassabb lehet, mint normális esetben. Ezt a jelenséget nevezik vergődésnek (trashing) Lapcsere algoritmusok • • • • • Az optimális stratégia
(Optimal - OPT): Azt a lapot kell kicserélni, amelyikre a legtávolabbi jövőben lesz szükség, hiszen így a bent maradó lapokkal a lehető legtovább ki tudjuk elégíteni a lapok iránti igényeket laphiba nélkül. Előbb jött - előbb megy (First In First Out - FIFO): Tartsuk nyilván, hogy milyen sorrendben hoztuk be a lapokat, és lapcsere esetén a legrégebben behozottat cseréljük le. Legrégebben használt (Last Recently Used – LRU): Tartsuk nyilván, hogy egy lapot mikor használtak, és azt a lapot cseréljük ki, amelyet a bent lévők közül a legrégebben használtunk utoljára. A módszer tehát viszonylag kevés laphibát eredményez, de cserébe az adminisztrációs terhek szinte elviselhetetlenül növekedtek. Második esély (Second Chance - SC): Az eljárás a FIFO elven alapul, egy kis kiegészítéssel. Minden laphoz - a laptáblába helyezzünk el egy ún „hivatkozás” bitet, amelyet, ha a lapot használjuk, automatikusan 1-esbe állítunk Laphiba
esetén keressük meg azt a lapot, amely a FIFO sor elején áll. Ha ennek a lapnak a hivatkozás bitje = 1, akkor mégse őt válasszuk áldozatul, hanem tegyük be a FIFO sor végére (mintha most érkezett volna), de 0-ás hivatkozás bittel. Azaz adjunk neki egy újabb esélyt. Ezt folytassuk addig, amíg a FIFO sor elejére egy olyan lap nem kerül, amelynek hivatkozás bitje = 0, és azt cseréljük le. Mostanában nem használt: Az LRU módszer enyhített, könnyebben megvalósítható változata. Az operációs rendszer, ha a folyamat egy lapra hivatkozik, a laptábla erre a célra fenntartott, egy bites mezőjét igazra állítja. Lapcsere esetén, ha lehetséges, azok közül a lapok közül kell választani, melyek „használt” bitje nulla. Ha egy laphoz már legalább egyszer fordultak, a jelzőbit állapota igaz. Hogy egy lap ne maradhasson örökre a tárban, a lapcsere algoritmus lapcserekor az összes lap jelzőbitjét nullázza. A mostanában kifejezés tehát azt
takarja, hogy az előző lapcsere óta használták vagy nem használták a kérdéses lapot. Tárvédelem, szegmentálás A tárvédelemnek általában három különböző szintjét szoktuk megkülönböztetni: • Védeni kell egy folyamat különböző logikai egységeit egymástól. • Védeni kell a felhasználói folyamatokat egymástól, de biztosítani kell közöttük az igényelt kommunikáció lehetőségét. • Védeni kell az operációs rendszert a felhasználói folyamatoktól. Tipikus hibák: • • Verem túlcsordulás: amikor rosszul használjuk a veremtárat, és több adatot töltünk be oda, mint amennyit onnan kiolvasunk, ezáltal a veremtárban lévő adatok egy idő után teljesen megtöltik azt, majd elkezdik felülírni a veremtár előtt lévő más adatokat vagy utasításokat (stack overflow) Ugróutasításban rossz cím: ezáltal beleugrunk az adatok közepébe és elkezdjük azokat „végrehajtani”. Ennek a fordítottja is gyakran előfordul,
vagyis amikor egy memóriába író utasításnak adunk meg rossz címet és az adatunkkal véletlenül felülírjuk a programunk valamelyik utasítását. Hogyan lehet ezek ellen védekezni? A fordítóprogram jelölje ki a program logikai egységeit, azaz szegmentálja a programot. Vagyis készítsen egy kódszegmenst (az utasítások számára) egy vagy több adatszegmenst és egy veremszegmenst. A programozónak/fordítóprogramnak olyan címeket kell használnia, amelyek - logikailag - két részből állnak: az első rész a szegmens sorszámát jelenti, a második rész pedig azt, hogy a szegmensen belül melyik sort akarjuk elérni (eltolás). Általában nagy baj, ha egy adatmozgatás során felülírunk egy utasítást. Ugyanakkor azonban viszonylag gyakran alkalmazott programozói fogás, hogy egy program menet közben szándékosan módosítja önmagát. (Így működnek például azok a mesterséges intelligenciával rendelkező programok, amelyek tanulni képesek.) A
szegmentálás bevezetésével az ilyen és hasonló programozói trükkök előtt is becsuktuk a kaput. A megoldás viszonylag egyszerű Be kell vezetni egy olyan utasítást, amely segítségével egy utasítás erejéig módosíthatjuk az utasításhoz rendelt szegmens típusát. Mivel ezeket az utasításokat általában a módosítani kívánt utasítások elé kell írni, ezért ezeket szegmensmódosító prefix utasításoknak (segment override prefix) hívjuk. A másik védelmi feladatunk, hogy a folyamatok memóriaterületeit megvédjük egymástól, de biztosítsuk a szükséges folyamatközti kommunikáció lehetőségét. A megoldás gyakorlatilag már készen van, egy pici ötletre van csak szükség. Ne egy darab szegmensleíró táblánk legyen, amely az összes folyamat összes szegmensét leírja, hanem rendeljünk egy-egy szegmensleíró táblát minden folyamathoz. - 45 - Az operációs rendszer egy sok olyan szolgáltatást nyújt amelyeket több folyamat is
használ. Ahhoz, hogy ezeket - és más hasonló segédprogramokat - minden folyamat használni tudja, minden egyes folyamat leírótáblájában szerepeltetni kell őket. Ez azonban nagy pazarlás. Ezért azt szokták tenni, hogy létrehoznak egy közös, mindenki által használható, úgynevezett globális leírótáblát Az operációs rendszer védelme - prioritások Azonban az operációs rendszer folyamatainak célszerű speciális jogokat biztosítani, amelyeket más folyamatoknak nem adunk meg (például, tudja módosítani más folyamatok leírótábláit). Ezért célszerű, ha minden folyamathoz egyegy ún prioritási szintet rendelünk. Emellett a szegmensleíró tábla sorait is egészítsük ki egy-egy új mezővel, amely azt jelzi, hogy legalább milyen prioritási szinttel kell rendelkeznie egy folyamatnak ahhoz, hogy az adott szegmenst használja. Ez az ún prioritás (priority) mező is a védelmi bitek között helyezkedik el. Ezek után a címszámítás során azt
is ellenőriznünk kell, hogy a szegmenst használni akaró folyamat tényleg megfelelő prioritási szintű-e. A címszámítás gyorsítása szegmentálásnál A szegmentálás bevezetésével hasonló probléma merül fel, mint a lapozásnál. Ugyanis ahhoz, hogy a memóriából megkapjunk egy adatot, először a szegmensleíró táblához kell fordulnunk, majd csak ezután érhetjük el a keresett információt. Vagyis a memória hozzáférés ideje legalább kétszeresére nő. A szegmensek logikailag összetartozó dolgokat tartalmaznak, ezeken belül a lokalitási elv sokkal erősebb, mint a tulajdonképpen véletlenszerően szétszabdalt programrészeket tartalmazó lapok esetében. Itt nem kell olyan bonyolult struktúra, mint amilyen a TLB volt, elegendő, ha kialakítunk egy kódszegmens regisztert - amelyben az éppen futó folyamat kódszegmensének az adatai (kezdőcím, hossz, védelmi bitek) vannak, illetve ehhez hasonlóan egy stack szegmens regisztert és egy vagy
néhány adatszegmens regisztert. A címszámításnál hasonlóan járunk el, mint a lapozásnál Párhuzamosan elkezdjük a címszámítást a szegmensleíró táblán keresztül, illetve megnézzük az adott típusú szegmensregiszter(eke)t. Mivel itt most regisztereket használunk, ezért ezek sebessége még a TLB-énél is több nagyságrenddel nagyobb, azaz gyakorlatilag „nulla idő alatt” megkapjuk a kért szegmenscímet, másrészt - éppen a szegmensen belüli szoros logikai összetartozás miatt - a találati arány gyakorlatilag 100% lesz. Például szinte az egyetlen eset, amikor a kódszegmens regiszter rossz értéket tartalmaz az az, amikor a folyamat elindítása/újraindítása után az első utasítását végrehajtjuk. Ilyenkor a kódszegmens regiszter még az előzőleg futott folyamat kódszegmensének adatait tartalmazza, vagyis az új folyamat kódszegmensének adatait csak a leírótáblából kapjuk meg, de ezt mindjárt be is írjuk a kódszegmens
regiszterbe és ott most már mindig megtaláljuk, amíg a folyamatunk fut. Hasonló a helyzet a folyamat indulását/folytatását követő első veremművelet illetve első néhány adatművelet esetén a verem- illetve adatszegmens regiszterekkel kapcsolatban. Összetett memóriakezelés A gyakorlatban a szegmentálást és a lapszervezéső virtuális tárkezelést együttesen alkalmazzák. Mint azt láttuk, a szegmentálás elsősorban a védelmi rendszer része, azaz segítségével azt lehet eldönteni, hogy egy adott memóriaterülethez valakinek joga van-e hozzáférni. Ha a válasz igen, akkor meg kell keresni, hogy ténylegesen hol van a keresett memóriarész Ennek eldöntésére pedig a virtuális tárkezelés szolgál. Tehát a processzor által kiadott logikai cím először a szegmentáló egységbe kerül, majd - ha engedélyezett a memóriaművelet - a szegmensfordítás kimenete lesz a lapozóegység bemenete. (Ilyenkor ezt a címet lineáris címnek nevezzük Ez
arra utal, hogy a virtuális memóriát egy nagyméretű, folytonos memóriaként képzeljük el.) Végül a lapozóegység kimenete adja meg a keresett memóriarekesz fizikai címét az operatív memóriában