You are on page 1of 50

1. A processzor felépítése. Utasítások szerkezete, címzési módok.

Utasításszámláló és utasítás-
regiszter. Az utasítás feldplgozás elemi lépései.

A mikroprocesszor olyan nagy banyolultságú eszköz, ami a számítógép központi egységének feladatait látja
el, dekódolja és végrehajtja az utasításokat, vezérli a műveletek elvégzéséhez szükséges belső adatforgalmat
és a csatlakozó perifériális berendezések működését.

A mikroprocesszornak három alapvető funkcionális blokkjuk van:


• regiszterek
• az aritmetikai logikai egység
• vezérlőegység
ezeket egy belső buszrendszer köti össze

A CPU általában több gyors működésű tárolót, regisztert tartalmaz a memóriából jövő adatok tárolására.
Ezek gyors írható-olvasható tárak. Egy regiszter tárolókapacitása többnyire egy szó. A regiszterek egy része
szigórúan meghatározott feladatokhoz van rendelve, a felhasználói programok nem használhatják. Ezek a
rendszerregiszterek . Ezek mellett még általános célú regszterek is vannak adatárolási, címzési, indexelési
célra. Ezeket a a felhasználói programok is látják.

Az utasítás készletben különböző típusú gépi utasítások lehetnek, ezek felépítésükben is eltérheznek.az
utasítás szerkezete határozza meg a CPU számára, hogy a gépi utasítás mely részét hogyan kell értelmezni.

Műveleti rész Módosító rész címrész

• A műveleti rész az elvégzendő feladatot határozza meg pl. összeadás stb.


• A címrész a műveleti végrehajtáshoz szükséges adatok helyét határozza meg.
• A módosító rész esetenként a műveleti rész illetve a címzés értelmezéséhez ad kiegészítő
információkat.

A gépi utasítások abban is különböznek egymástól, hogy az adatokra való hivatkozást milyen formában
tartalmazzák. Ezeket összefoglaló néven címzési módszereknek nevezzük.
Mivel az utasítások címrésze nem a műveletben résztvevő adatok pontos rekeszsorszámát az úgynevezett
abszolút címét tartalmazzák, ezért a processzornak a címzési eljárásra utaló kiegészítő adatok alapján ki kell
számítania.
• Az abszolút címzés
Az abszolút címzés esetében az utasítás címrésze, a műveletben szereplő operanduszok valódi címét
az az a memóriarekesz sorszámát tartalmazza.
A regiszterek abszolút címzését gyakran alkalmazzuk, az abszolút memóriacímzést viszont csak
ritkán, mivel a programokat nem mindig azonos memóriacímre töltjük be, így a
programutasításokban megcímzett adatok fizikai helye is megváltozik.
• Relatív címzés:
relatív címzés esetében a gépi utasítás címrésze az adatnak valamely alapcíméhez vagy báziscímhez
viszonyított relatív címet tartalmazza. Ekkor a tényleges fizikai rekeszcímet a báziscím és a relatív
cím összeadásával kapjuk.
Az aalapcím lehet:
◦ egy kijelölt regiszterben, amit bázisregiszternek nevezünk.
◦ A program kezdetének a címe
◦ az éppen végrehajtott utasítás ( ekkor a báziscímet az utasításregiszter tartalmazza )
Elmondható, hogy a relatív címzést alkalmazzuk akkor, ha biztosítani szeretnénk, hogy a
programjaink tetszőleges memóriacímre betöltve is működjenek. Ekkor a bázisregiszterbe a program
betöltésének kezdőcíme kerül.
• Közvetlen adatcímzés:
( értékadó címzés, álcímzés, literálcímzés)
A lényege, hogy ebben az esetben az utasításban maga az az elem található meg. Amellyel a
műveletet végre kell hajtani.
• Veremcímzés:
A verem ( stack ), vagy egy regiszter a CPU-ban, vagy egy kijelölt memóriaterület a főtárban,
melyből az utoljára beírt adatokat lehet először kiolvasni. LIFO (LAST IN TIME FIRST OUT )
szervezésűnek nevezzük. A verem egyik legfontosabb alkalmazása a CPU állapotának elmentése
( az állapot és az utasításszámláló regiszter tartalma ) ha egy program végrehajtását átmenetileg fel
kell függeszteni.

Utasításregiszter: ( Instroduction Register = IR )

Az utasítások kezeléséhez szüksége van a CPU-nak az utasításregiszterre, amelyben a program aktuálisan


végrehajtott utasítását átmenetileg tárolja.

Utasításszámláló regiszter: ( Program Counter = PC )

A soron következő utasítás címét tárolja, tartalmát a program maga is módosíthatja. ( pl. a program által
végrehajtott elágazási utasítások esetén. )
A program az utasításkódok címeinek sorrendjében hajtódik végre. Az utasításszámláló által címzett első
memóriarekesz elérésekor kihozunk a memóriából egy utasítást, melynek következtében az utasításszámláló
tartalma a kihozott utasítás hosszával megnő, és így a memóriának most azt a rekeszét címzi, ahol a program
szerinti következő utasításkód található.

Az utasítás feldolgozás elemi lépései:

1. Az utasításszámlálóban található cím bekerül a memória címregiszterbe. Ez alapján kiolvassuk a


memóriából az összeadó utasítás gépi kódját, ez a pufferelésre kerül a memória adatregiszterben.
Innen a következő ütemben átkerül az utasítás regiszterbe.
2. Az utasításszámláló regiszter tartalmát megnöveljük a kiolvasott utasítás hosszával ( így ez most a
következő végrehajtandó utasításra mutat ).
3. A CPU értelmezi az utasításregiszterben található utasítás kódját, megállapítja, hogy az összeadás
műveletét kell végrehajtani.
4. A CPU az utasításregiszterben található címek alapján meghatározza az első összeadandó címet a
memóriában, és ezt beírja a memória-címregiszterbe.
5. A CPU kiolvassa az első összeadandó értéket a memóriából, ez bekerül a memória-adatregiszterbe,
majd onnan az akkumulátorba.
6. A CPU az utasításregiszterben található címek alapján meghatározza a második összedó címet a
memóriában, és ezt beírja a memória-címregiszterbe.
7. A CPU kiolvassa a második összeadandót a memóriából, és ez bekerül a memória-címregiszterbe.
8. A CPU műveletvégző egységében ( aritmetikai és logikai egységben – ALU ) megtörténik az
összeadás és ennek eredménye képződik az akkumulátorban.
9. A művelet eredménye visszaírásra kerül a memóriába, az első összeadandó címének megfelelő
helyre. ( Az első összeadandó címe átkerül a memória címregiszterbe, az eredmény a memória-
adatregiszterbe és innen kerül beírásra a memóriába. )
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 ( stack ), vagy egy regisztertár a CPU-ban, vagy egy kijelölt terület a főtárban, melyből az utoljára
beírt adatokat lehet először kiolvasni. Az adatforgalom a bemeneti sorrenddel ellenkező kimeneti sorrendű,
így például az először beírt adatokat lehet majd utoljára kiolvasni a veremből.
Az a verem legegyszerűbb megvalósítása, amikor a főtár egy részét tartalékolják veremműveletek-re. A
verem megcímzése ekkor egy regiszterrel történik, ezt nevezik veremmutatónak ( STACK POINTER )
Veremtár műveletek:
• Írás a verem felső részébe, ezt nevezik adatbevitelnek, vagy PUSH-nak
az adatbevitel művelete azt eredményezi, hogy az akkumulátorban ( vagy más néven CPU
regiszterben ) lévő adatokat beírják abba a memóriarekeszbe, amelyet a veremmutató címez meg.
Ezt kővetően a veremmutató tartalma megnő ( inkrementálódik ), hogy megcímezze a következő
üres tárolóterületet a verem felső részén.
• olvasás a verem felső részéből, ezt nevezik „POP”-nak, vagy adatkihozatalnak.
Először a veremmutató tartalmát eggyel csökkentik, hogy az a verembe utolsónak beírt adatot
megcímezze, azután a veremmutató által megcímzett rekesz tartalmát továbbítják az akkumulátorba
vagy más CPU regiszterbe.
Kaszkád verem:
Ennél a megoldásnál a verem a CPU-ban van és korlátozott számú regiszterből áll. Itt nincs szükség
veremmutató regiszterre, mivel minden esetben a legfelső részbe írják vagy onnan olvassák az adatokat.
Szubrutinok:
A legtöbb programban vannak olyan gyakran alkalmazott utasítás-sorozatok, amelyeket többször
felhasználhatunk a program végrehajtása során, de csak egyszer tárolunk a programmemóriában. Ezeket
nevezzük szubrutinnak.

A vermet kezelő assembly utasítások:


PUSH op
a 2 byte-os operandust a stack-be írja, (az SP értéke 2-vel csökken)
PUSHF
a STATUS stack-be íródik. Ez az utasítás a flag-ek mentésére szolgál.
POP op
a 2 byte-os operandus felülíródik a stack tetején lévı (WORD) szóval,az SP által címzett szó átmásolódik,
majd az SP 2-vel megnő.
POPF
a stack tetején lévı szó felülírja a STATUS-t. Ezzel az utasítással tudjuk a flag-ek tartalmát helyreállítani.
Ezek az utasítások fő haszna az, hogy a szubrutinok az általuk használt regisztereket elmenthetik, majd
futásuk
befejezésekor visszaállíthatják anélkül, hogy erre statikus memóriaterületet kellene igénybe vennünk.
Figyelni
kell a visszaállítás sorrendjére (fordított) is. Minden PUSH-nak kell lennie egy POP párjának is mert
különben
hibásan dolgozhat a program. Ha például egy szubrutint hívunk és utána PUSH nélkül hívunk meg egy
POP-ot
akkor a szubrutinhívás helyett egy ugró utasítás lesz. (Elveszik a visszatérési cím.)
Szubrutin:
Olyan programrész amelyek a feladatban többször előforduló, ismétlődő folyamatokat takar (alprogram).
Ilyenkor ezt csak egyszer írja meg az ember úgy, hogy bárhonnan elérhető és ha szükséges megfelelően
paraméterezhető legyen.
Olyan utasítások sorozata, melyet a program több részéről elérhetünk, és csak egyszer kerül tárolásra. Tehát
az
utasítássorozatok redundanciájának feloldását oldja meg. A hívás visszatérési címe a veremben tárolódik. Ez
alkalmat ad az úgynevezett rekurzív szubrutinok alkalmazására, melyek önmagukat gívják meg. Ez a
módszer
a bonyolultabb (matematikai-rendezési) problémák feloldását segíti elı. Mivel a lokális változók is a
veremben
kapnak helyet, ezért tud „elszállni” a program, ha a lokális változókat felülírjuk, hiszen ilyenkor felülíródhat
a
visszatérési cím is, így visszatéréskor máshova ugrik a vezérlés
Szubrutinhívási és visszatérő utasítások
CALL op
Az IP pillanatnyi értéke a (s soron következő utasítás virtuális címe) a stack-re kerül, majd IP (Instruction
Pointer) utasításszámláló felülíródik az “op”-al, mely lehet direkt cím vagy tetszőleges címzési móddal elért
regiszter- vagy memória operandus. Lehet rövid (szegmensen belüli) vagy hosszú (szegmensközi)
szubrutinhívás.
RET [konstans]
Konstans megadása nélkül: A stack tetején lévő értékkel felülírja az IP (utasításszámlálót) és így a program
visszatér a szubrutin hívása utáni sorra és onnan fut tovább a program.
Konstans megadásával: ugyanúgy működik mint a RET de a visszatérési cím kiolvasása után az SP-t a
konstans
értékével megnöveli. Ezzel a módszerrel lehet a szubrutinnak paramétereket átadni és a szubrutin
végrehajtása
után a paramétereket a parancs automatikusan kiveszi a stack-ből. (Így működik a C nyelv függvény
paraméterátadása). A szubrutin meghívása előtt az átadni kívánt paramétereket lementi a verembe és
meghívja a
szubrutint. A szubrutin végrehajtása után a visszatéréskor a program az átadott paramétereket is kiveszi a
veremből.
Egyes megszakítások is ide sorolhatók mivel a megszakítás végrehajtása után a rendszer onnan folytatja a
program végrehajtását ahol a megszakítás történt. A különbség az, hogy a szubrutinhívást a programozó
előre
betervezte, a megszakítás hívása nem előre tervezett, hanem valamilyen esemény bekövetkeztének a
hatására jön létre.
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:
• a tárolt program elve: az elvégzendő műveleteket be kell vinni a gép tárolójába, azután a gép
vezérlését át kell adni ennek a műveletsorozatnak, azaz a programnak. Ezt követően már a program
irányítja a gépet.
1. adatbeolvasás
2. műveletek elvégzése, részeredmények tárolása
3. végeredmény kijelzés
• a címezhetőség elve: az utasítások és az adatok ugyanolyan módon megcímzett (címmel
sorszámmal ellátott) memóriarekeszekben helyezkednek el, azaz nincs külön hely az utasításokank
és az adatoknak.
A tárolt programokkal működő számítógép elvi felépítése :
◦ az adatok bevitelére és megjelenítésére önálló egységek szolgálnak
◦ vezérlőegység megléte ami a tárolt program alapján vezérli a gép működését
◦ egy önálló műveletvégző egység amely képes az összes aritmetikai és matematikai logikai
művelet elvégzésére.
◦ A gép rendelkezik egy belső tárolóval, ahol az aktuális programok és adatok tárolhatóak
◦ bináris (kettes számrendszer ) alkalmazásával való adat és utasítás leírás, tárolás
• a soros utasítás-végrehajtás elve: ez azt jelenti, hogy a számítógép az utasításokat szigorúan
egymás után hajtja végre (control flow). Ettől eltérés csak egy állapotjelző tartalmának vizsgálta
alapján lehetséges, de ez csak azt jelenti, hogy a műveletsor hajtódik végre, hiszen az utasításfolyam
egy másik ponton folytatódik.
Természetesen a soros utasítás végrehajtás lassúbb mint a párhuzamos, de a jóval kevesebb eszköz kell
hozzá, és az elektronikai eszközök gyorsasága kompenzálja ezt a hátrányt.

• Utasításfolyam: az utasítások egymás utáni sorozata, amelyeket egy program lefutása során hajt
végre a számítógép. (az utasításfolyam nem azonos a programutasítások sorozatával. pl. a ciklusok
utasításai a programban csak egyszer szerepelnek, az utasításfolyamban viszont annyiszor ahányszor
azokat a számítógép végrehajtja).
• Adatfolyam: az utasításfolyam utasításai mindig meghatározott adatokra hivatkoznak, amelyekkel a
műveleteket el kell végezni. Ezek egymásutániságát, amilyen sorrendben rendelkezésre kell állniuk,
nevezzük adatfolyamnak.

A SISD (Single Instruction Stream Single Data Srteam) típusú számítógép egyetlen utasításfolyammal
egyetlen adatfolyamot dolgoz fel, amint azt az alábbi ábra mutatja:

Pl.. Neumann elvű gépek, a PC-k központi feldolgozó egysége (CPU) a Pentium MMX-ig.

A SIMD (Single Istruction Stream Multiple Data Stream) típusú számítógép egyetlen utasításfolyammal
többszörös adatfolyamot dolgoz fel:
Ezek a számítógépek több párhuzamos, egyidejű 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 (pl. Pentium III CPU 3D
grafikus utasításai). Két alaptípusuk van:
• a közös tárolójú (Shared Memory) gépek, és
• az osztott tárolóval (Distrubuted Memory) rendelkező gépek.

A MISD (Multiple Instruction Stream Single Data Stream) típusú számítógép több utasításfolyammal
egyetlen adatfolyamot dolgoz fel:

A Gyakorlatban ilyen gépek nem léteznek. De ide sorolhatjuk a pipeline (futószalag) szervezésű
processzorokat, illetve a hibatűrő architektúrákat, amelyek többszörösen végzik el a műveleteket azonos
adatokon és az eredményeket hibavédelmi célból összehasonlítják.

A MIMD (Multiple Instruction Stream Multiole Data Stream) számítógépek több utasításfolyammal több
adatfolyamot dolgoznak fel:

Ebbe a kategóriába tartoznak a multiprocesszoros számítógépek (több vezérlőegységgel) ás a nem


hagyományos, soros utasítás végrehajtás elvén működő számítógépek (adatvezérelt számítógépek, neutrális
hálók).
Adatok számítógépes ábrázolása:

Fixpontos számábrázolás: ebben az ábrázolási formában a bináris pont helye (ami a bal oldalon található
egészeket elválasztja a jobb oldalon lévő törtektől) rögzített, és a számokat többnyire kettes komplemens
kódban ábrázolják.

A felhasználás szempontjából két fontos jellemző van: az ábrázolandó számok pontossága és ezek
nagysága. E két jellemző az alkalmazott regisztermérettől és a bináris pont helyétől függ, ha a bináris pont a
regiszter bal szélén van, akkor a szám fixpontos tört, ha a regiszter jobb szélén van, akkor fixpontos egész.
Nem minden szám ábrázolható egy adott regiszterméret mellett.

Lebegőpontos számok: hasonló a hagyományos decimális ábrázoláshoz az általános formátum ±f x 2e ,


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 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 számok pontos tárolási formátumát pontosságuk határozza
meg. Leggyakrabban az egyszeres, dupla és bővített (kiterjesztett) pontosságú lebegőpontos számokat
használjuk.

BCD: kódolás 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. Másként: a 0-9 számjegyeket 2-es számrendszerben fejezik ki,
mindegyikben 4 helyi értéket véve.
A BCD számok előjelének jelzésére speciális, úgynevezett vezérlőszó szükséges. Aritmetikai műveletek
esetén speciális szabályokat kell alkalmazni, ennek lényege, hogy 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.

Karakterek kódolása: a számítógépben szöveg és más, nem szám jellegű adat kezelésére binárisan kódolt
karaktereket alkalmazunk. Ehhez szükség van 26 kisbetű, 26 nagybetű, kb. 25 speciális jel, valamint 10
decimális karakterkészletre.
Ez hozzávetőleg 87 karaktert jelent, ennek ábrázolásához 7 bináris digit szükséges (27 = 128).
A számítógépekben általánosan ASCII kódot (Amerikan Standart Code for Information Interchange)
alkalmazunk az adatok ábrázolására. Az ASCII kódnál egy jelkombináció 8 bitből (bájtból) áll 7 bit + 1
paritásbit. (A paritásbit a karakterkódot ellenőrző, hibajelző bitje).
4. Az utasítás feldolgozás gyorsítása párhuzamosítással. A pipelinig lényege, szuperskalár
processzorok. Felépő problémák és kezelésük

Pipelining

A számítógép fejlődéstörténetének meghatározó jellegzetessége az utasítás-végrehajtás gyorsítására való


igény. Ez megoldható a gép működését meghatározó órajelfrekvencia növelésével, ennek viszont
technológia korlátai vannak.

Ezért kerültek előtérbe azok a módszerek, melyek a számítógép gyorsabb művelet-végrehajtását


rendszertechnikai eszközökkel biztosítják. Ennek egyik legfontosabb módszere az utasítás végrehajtás
szintjén az átlapolt feldolgozás, melyet pipeliningnek nevezünk.
A pipelining átlapolt utasítás-végrehajtást, csővonal vagy futószalag feldolgozásnak tekinthetjük

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 és az ehhez szükséges
hardver elem felszabadul, akkor azt igénybe vehetjük egy következő utasítás elemi lépésének végrehajtására.
Másként fogalmazva, egy utasítást, fázisokra bonthatunk, így egy időben, több utasítás különböző fázisai
egymással párhuzamban hajthatók végre azonos órajelciklusban.

A pipeline alapgondolata tehát a párhuzamosítás, annak kihasználása, hogy az utasítás feldolgozás


különböző fázisait autonóm és párhuzamosan működő hardver alrendszerek hajthatják végre. Ezek
utasításszinten párhuzamos működésű CPU-k, amiket ILP processzoroknak nevezünk.

Szuperskalár processzorok

A több végrehajtó egység párhuzamos működésével történő gyorsításnak két alapgondolata van: a
műveletvégző egységek számának növelése a processzoron belül és kívül.
A párhuzamosítás nem csak úgy hajtható végre, hogy a gép utasításokon belüli elemi lépéseket végrehajtó
hardver egységek átlapolva működnek, hanem a végrehajtó hardver egységeket is lehet még többszörözni.

Pl. Pentium CPU, mely két fixpontos, és egy lebegőpontos művelet végrehajtó egységet tartalmaz. Ezeket
szuperskalár processzoroknak nevezzük, ha egy gépi ciklus esetenként több utasítást is képesek
végrehajtani. Ennek természetesen alapfeltétele, hogy a CPU a műveletvégző egységhez vezető, párhuzamos
működésre képes belső buszokkal rendelkezzen.

Fellépő problémák és kezelésük:

A Pipelining szervezésében megoldandó problémák a következők:

• az utasítások elmei fázisainak megoldásához szükséges idő nagyon 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 feltöltését.
• hardver erőforrások igénybevétele során is előfordulhatnak ütközések pl. buszkonfliktusok.
• „hazard” adatütközés amikor egy utasítás az őt megelőző utasítás eredményeire hivatkozik, de az
még nem készült el.

A bemutatott problémákat vagy sztatikusan, a program fordítása során vagy dinamikusan, azaz futás közben
a hardverrel tudjuk kezelni.
• Nop (NOP = NO OPERATION) utasítások beiktatása a forditóprogramba: a
memóriautasítások olvasásához szükséges többlet-időigény és a hazardok miatti utasításvárakoztatás
„üres” utasítások beiktatásával oldható meg.
• Utasítás átrendezés: a fordítóprogram a program tartalmi megváltoztatása nélkül átrendezi az
utasítássorrendet és a memóriautasítások és a hazardok kezelése miatti várakozási időket hasznos
utasításokkal tölti ki.
• Scoreboarding: minden regiszter könyvelésre kerül, hogy azok az utasítások, melyek egy adott
regiszterre hivatkoznak benne vannak-e a pipelinban. Ha egy másik utasítás egy ilyen regiszterhez
akar hozzáférni, akkor az késleltetésre kerül.
• Data forwarding: ha két egymást követő utasítás számára azonos adat szükséges, akkor az ezek
közötti adatátadást CPU-n belüli áramkörök biztosítják.
• Harvard architektúra: ha az adatokat és utasításokat fizikailag különálló memóriában tároljuk (pl.
L1 szintű különálló adat és utasítás cache)
• Vezérlésátadó utasítások kezelése: a legegyszerűbb a pipeline leállítása vagy törlése. Ennél
hatékonyabb megoldás jelent a vezérlésátadás kezelésére, a spekulatív elágazásfeldolgozás.
1. Statikus esetben a fordítóprogram értékeli ki az ugrási feltételeket és meghatározza a legnagyobb
valószínűséggel előforduló ugrási címeket és ennek megfelelően szervezi a pipeline-t.
2. Dinamikus esetben a program futása közben a processzor egy táblázatban vezeti az ugróutasítások
címeit és ezek kimenetét, és ezt felhasználva próbálja megjósolni az elágazások lehetséges
kimenetelét.

A szuperskalár processzorok esetében több speciális feladatot is meg kellett oldani, melyekkel a skalár
processzoroknál még nem találkozhattunk.

• A párhuzamos dekódolás, elődekódolás: - mivel egy ciklus alatt több utasítást képesek végrehajtani,
ilyen ütemben kell továbbítani a dekódolt utasításokat is, ezért párhuzamos utasításdekódolásra is
szükség van.
• a szuperskalár utasításkibocsátás: - utasítás várakoztatás, regiszterátnevezés, spekulatív elágazás-
kezelés. - változó hosszúságú utasítások és többfajta memóriautasítás kezelés.
• párhuzamos utasítás végrehajtás: - figyelembe kellett venni, hogy az utasítások más sorrendben
fejeződhetnek be mint skalár CPU-k esetében.
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 aritmetikai logikai egység (ALU) a CPU- n belül a számítási és logikai műveleteket végzi el. Alkalmas:
• bináris összeadásra,
• Bool-algebrai (logikai) műveletek elvégzésére,
• komplemensképzésre,
• bitsorozatok léptetésére (bitenként jobbra, balra).
Minden más aritmetikai és logikai művelet (pl. lebegőpontos számokkal végzett műveletek), amelyek
elvégzése a CPU feladata, felbontható a fenti alapműveletekre.

Ennek megfelelően az ALU fixpontos bináris összeadókból, komplementálókból, léptető regiszterekből és a


logikai műveleteket végző részből áll.

A legtöbb ALU a következő utasításokból áll:


1.Egész számú aritmetikai utasítások (összeadás, kivonás, és néha a szorzás és osztás, habár ezek sokkal
költségesebbek)
2. Egyszerű logikai utasítások (ÉS, NEM, VAGY, KIZÁRÓ VAGY)
3. Bitmozgató utasítások (balra vagy jobbra mozgatnak, vagy elforgatnak szavakat speciális bitszámmal,
előjellel, vagy előjel nélkül. Ezek a mozgatások képesek értelmezni a 2-vel való szorzást és osztást is.)

Akkumulátor:

Az akkumulátor a számítógép megkülönböztetett számítási regisztere, a műveletek operandusai, másként a


műveletekben résztvevő mennyiségeket, illetve ezek eredményeit ebben a regiszterben tároljuk, ez CPU-n
belül található. A műveleteket a CPU tulajdonképpen az akkumulátorban tárolt adatokon, vagyis ennek
tartalmával/tartalmán végzi.

Mivel itt több adat helyezhető el mint amennyire a program futásának egységnyi ideje alatt szükség lehet,
gyorsabb hozzáférési időket tesz lehetővé, mintha a memóriából közvetlen hoznánk a soron következő
utasítások adatait, hozzávetőlegesen az elérés ideje kb. annyi amennyi idő alatt a fény 10-30 cm távolságot
tesz meg.

Flag (jelzőbit):

Az állapotinformációval a gép pillanatnyi állapotát jellemezzük. Ezeket az állapotokat egy regiszter bitjeinek
0-ra vagy 1-re állításával kódoljuk. Az állapotbitek értéke általában feltételes elágazó utasításokkal
kérdezhető le és ettől függően változtatható meg az utasítás sorrendje

A jelzőbit olyan állapotinformáció, mely egy rendszer működési módjáról, működési feltételeiről vagy a
működés közben előálló állapotokról (pl. eredmény=0, kivitel/bevitel, műveletek eredményes vagy
eredménytelen végrehajtása stb.) ad felvilágosítást.
Különbséget tehetünk hardver vagy szoftver úton megvalósított jelzőbitek között. A jelzőbitek beállíthatók,
lekérdezhetők, illetve módosíthatók.
6. A vezérlőegység feladata és jelei, vezérlési pontok. Huzalozott és mikroprogranozott műveleti
vezérlés. CISC és RISC processzorok.

Vezérlőegység feladata:

A vezérlőegység (Control Unit = CU) a CPU-n belül értelmezi az utasításokat és végrehajtásuk céljából
összehangoltan vezérli a számítógép többi egységének működését, tekintettel arra, hogy az események a
programnak megfelelően helyes sorrendben és időben.

Biztosítja, hogy a szükséges adatok a megfelelő időpontban és helyen rendelkezésre álljanak, vezérli az
áramkörök működését, kiolvassa annak a memóriarekesznek a tartalmát amely a soron következő utasítást
tárolja. Az utasítás címrésze alapján értelmezi, hogy milyen címen találhatók a műveletben résztvevő adatok,
vezérli ezek kiolvasását, és a megfelelő regiszterbe történő továbbítását.

Az ALU-val végrehajtatja a megfelelő műveletet, biztosítja az eredmény megőrzését és beállítja az


utasításszámláló új tartalmát.

Vezérlőegység jelei és vezérlési pontok:

A vezérlőegység működése során 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, melyek 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özti adatátvitel.
• A processzoron kívüli egységek irányítását szolgáló külső vezérlőjelek, melyek a CPU és a memória
a CPU és az input/output eszközök közötti adatátvitelt, illetve a megszakításkezelést és a
sínvezérlést irányítják.

Huzalozott és mikroprogramozott műveleti vezérlés:

• huzalozott módon azaz hardver áramkörökkel, melyek a processzorba építve irányítják a művelet-
végrehajtás elemi lépéseit. Ez kombinációs és sorrendi áramkörökkel valósítható meg. Ezek
legtöbbször úgynevezett programozható áramkörök.
• Mikroprogramozott módon, mely esetben az utasítás-végrehajtás elemi lépéseit egy mikroprogram
vezérli (ez általában a firmware ROM tárolójában található). Ebben az esetben a gépi kódú utasítás
műveleti jelrésze dekódoláskor egy mikroprogram lefutását kezdeményezi, mely a mikroprogram
tárolóban található. Ennek a mikroprogramnak az utasításai sorban végrehajtva történik meg az
utasítás elemi lépéseinek a vezérlése.
E azt jelenti, hogy a művelet-végrehajtás elemi lépéseit egy mikroprogram vezérlőegység irányítja a tárolt
mikroprogram alapján. Egy számítógép működik a számítógépen belül.

Ebben az esetben viszont szükséges egy mikroprogram tároló és mikropogram regiszter.

Horizontális és vertikális mikroprogramozás:

• horizontális mikroprogramozás egy vezérlési mezőt és a következő mikroutasítás címét tartalmazza


(ha van ilyen) ezek az áramköri megoldások programozható logikával rendelkeznek, amik
működését a vezérlő bitekkel meghatározhatjuk (ÉS ill. VAGY kapuk).
• a vertikális mikroutasítás lényegében úgy épül fel mint egy gépi kódú utasítás. Ennek megfelelően
általában mikroutasítások sorozatából áll. Mikroprogram vezérlő, mikroprogramtár és
mikroutasításszámláló regiszter szükséges hozzá.

CISC és RISC architektúrájú processzorok:


Kezdetben a számítógépeket gépi kódban programozták, majd az assembly nyelv vált elterjedté. A
programozói igények kielégítésére állandóan bővítették a CPU-k utasításkészletét, ennek eredményeként:

• egyre több és bonyolultabb utasítást tartalmazott az utasításkészlet,


• ezek hardver megvalósítását mikroprogramvezérléssel lehetett megoldani, ez azt jelenti, hogy egy
gépi utasítás végrehajtását több elemi lépésre kellett felbontani, és ezek paramétereit a csak
olvasható memóriában tárolták (ROM).
Így alakultak ki a komplex utasításkészletű számítógépek (Complex Instruction Set Computer). Ezek
jellemzői :
• bonyolult mikroprogramok, és
• a „gép a gépben” jellegű működés (a mikroprogramvezérlő felfogható egy miniatűr Neumann elvű
processzorként).
A mikroprogramozott utasításvégrehajtás komoly korlátává vált a számítógép teljesítmény növelésének.
Ezért olyan architektúrát terveztek, melynél:
• csak a gyakori utasítások szerepelnek az utasításkészletben,
• lehetővé válik az mikroprogramozás kiküszöbölése, azaz magas szintű programnyelvről fordítás
lényegében a korábbi mikroutasítások szintjén történik.
Így jöttek létre a redukált utasításkészletű CPU-k (Reduced Instruction Set Computer).

A CISC CPU-k tehát nagy számú utasítást tartalmazó utasításkészlettel rendelkeznek, az utasítások
szerkezete bonyolult, többfajta memóriacímzési módot tesznek lehetővé, az utasítás-végrehajtás
mikroprogramvezérelt. (pl. Pentium CPU család)
A RISC CPU-k utasításkészlete csökkentett, egyszerűsített, a memóriahozzáférés csak két utasítással:
adatbetöltéssel és adatírással történhet, a műveleti vezérlés huzalozott vagy horizontális
mikroprogramvezérelt. (pl. SPARC, POWER PC)

Jellemzőik:

CISC processzorok RISC processzorok


Összetett utasítások, melyek végrehajtása több gépi Egyszerű utasítások, melyek végrehajtása 1 gépi
ciklust igényel. ciklust igényel.
Bármely, erre alkalmas utasítás igénybe veheti a Csak a LOAD/STORE utasítások fordulhatnak a
tárolót. memóriához.
A futószalag feldolgozás kismértékű. Erőteljes futószalag feldolgozás.
Változó hosszúságú utasítások. Rögzített utasításhossz.
Sokféle utasítás és címzési mód. Kevés utasítás és címzési mód.
Bonyolult mikroprogram, egyszerű fordítóprogram. Bonyolult fordítóprogram, egyszerű mikroprogram.
Kis számú regiszter. Nagy méretű regisztertár.
Tárolóvédelem hardver úton. Tárolóvédelem szoftver segítségével.
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.

A számítógép központi egységének főtárolója az aktuálisan az futó programfolyamatokhoz tartozó az adatok


és programok tárolására szolgál.

A jobboldali ágban a nem illékony (non-volatie, NV) áramkörök szerepelnek aszeint felosztva, hogy a
memória tartalma hányszor írható át a felhasználó által. A maszkprogramozott ROM (Read Only Memory)
tartalmát a félvezetőgyár írja be egy technológiai lépés során, így ennek módosítására nincs lehetőség és
költségét tekintve csak igen nagy darabszám mellett gazdaságos.

Az egyszer írható (One Time Programmable, OTP) ROM-ok lebegő-gates konstrukciók, melyeknél azonban
a tokozáson nincs ablak az UV-törléshez, s így az egyszer beírt tartalom nem törölhető.

A legflexibilisebb lehetőséget értelemszerűen a többször írható ROM-ok nyújtják. Ezek közül a mágneses
(MRAM) és ferromágneses (FRAM) megoldások, nem a klasszikus szilicium-technológiával készülnek.
A telepes SRAM egy speciális félvezető konstrukció, ami a „szünetmentes tápegység” megvalósítása egy
tokon belül. A RAM chip fölé egy kis akkumulátort szerelnek. A kiszoruló típusok közé tartozik az ablakos
kivitelű EPROM

Az ábra alapvetően a számítástechnikában felhasznált memóriákat csoportosítja és nem tartalmazza a


multimédia speciális szervezésű memóriáit. Ezek alapvetően ugyanazon működésű cellákból épülnek fel,
csak a tárolt adat felhasználásának jellegétől függően más konstrukcióval rendelkeznek (pl. soros memóriák,
SAM, video RAM).

Memóriák szerkezeti felépítése:

A memóriák leggyakoribb formája a véletlen-hozzáférésű típus, amelynél egyetlen ciklusban bármelyik cella
írható, vagy olvasható.

A közel négyzetes cellamátrix elemeit a dekóderek címezik meg, amelyek közül a sordekóder az első
áramköri egység a jelútban és ennélfogva késleltetési ideje közvetlen módon részét képezi a memória teljes
késleltetésének. Az oszlopdekóder esetében kiolvasáskor a helyzet kedvezőbb, hiszen ennek csak a cellák
kiolvasása után kell az érvényes értéket felvennie. Mint látható, az ábra szerinti alap elrendezésben
címzéskor egyszerre aktiválódik az egy sorban lévő összes cella, melyek közül a számunkra érdekeseket az
oszlopdekóder továbbítja egyesével szavanként programozható szélességű adatonként, vagy átmeneti tárolás
közbeiktatásával.

A lábszám a memóriáknál is egy igen fontos kérdés. Könnyen belátható módon azonos cellaszám mellett az
egybites szervezés a kedvezőbb. Egy másik lehetséges megoldás a multiplex címzési mód, amelynél
ugyanaz a láb (pin) először egy sor, majd egy oszlop kiválasztására szolgál. Ekkor azonban (általános
esetben) két további jel alkalmazására van szükség, amelyek ezen két ütem megkülönböztetésére szolgálnak.
Ezek a RAS és a CAS jelek, amelyek természetesen két további kivezetést igényelnek.

A kiolvasó erősítő a dinamikus memóriáknál érdemel figyelmet, mivel ott egy igen kis jel megbízható
érzékelése a feladat. A memória legfontosabb egysége a cella; ennek mérete, késleltetése,
zavarérzéketlensége alapvetően meghatározza a memória tulajdonságait

SIMM és DIMM memóriamodulok:

A jelenleg alkalmazott memóriamodulok két típusba sorolhatók:


• a SIMM 32 bites memóriamodul
• a DIMM 64 bites szervezésű modul, jellemzően a Pentium gépekhez készültek

ROM és RAM típusok:

1. ROM
◦ PROM: egyszer programozható ROM
◦ EPROM: az adatokat elektromos töltés formájában őrzi meg. Ibolyántúli fénnyel törölhető és
újra írható.
◦ EEPROM: tárolók újraprogramozhatóságuk előtt egy elektronikus impulzussal törölhetők.
Előállítása drága.
2. Fash-memória:
◦ nem „felejtő” félvezető memória, alapját az EPROM technológia szolgáltatja, de az a különbség,
hogy elektronikusan törölhetők és blokkonként olvashatók, nincs szükségük tátellárásra.
3. RAM
◦ SRAM: statikus RAM az adatokat félvezető memóriában tárolják, ahol az állapot mindig
fennmarad a következő írási műveletig vagy addig amég a modul tápfeszültséget kap.
▪ Aszinkron SRAM: nevének megfelelően az aszinkron SRAM működése nincs teljesen
összhangban a processzoréval, ezért a CPU esetenként várakozásra kényszerül.
▪ Szinkron SRAM: szinkron csoportos statikus RAM, ha a CPU nem túl gyors olyan
ütemben szolgáltatja az adatokat, ahogy azt a CPU várja. A memóriát a CPU szinkronizálja.
▪ PB SRAM: (Pipelined Burst Static RAM) esetében a memória áramkörök be/kimeneti
regisztereket is tartalmaznak. E regiszterek feltöltése az első adateléréskor több időt igényel,
de ezt követően a feltöltött regiszterek alapján való adattovábbítás már sokkal gyorsabb.
◦ DRAM: mátrixszervezésű azaz oszlopokból és sorokból épül fel, melyek metszéspontjában
található egy memóriacella.
▪ FPR RAM: (Fsat Page Mode RAM) működésének lényege, hogy ha a DRAM áramkörök
megkapják a sor és oszlopcímet, akkor címfolyamatos olvasásnál az áramkörnek elegendő
megadni a következő oszlopcímet.
▪ EDO RAM: (Extended Data Output RAM) ennél a RAM-nál az adat a memória kimenetén
hosszabb ideig áll rendelkezésre egy másodlagos tároló alkalmazásával. Gyors működést
tesz lehetővé.
▪ SDRAM és BEDO RAM: még gyorsabb hozzáférést biztosítanak, melyet a „burst”, azaz
blokkos (csoportos) hozzáférési technika bevezetésével és a CPU és a memória
működésének szinkronizálásával lehet elérni.

DRAM felépítése:
A statikus RAM-ok megjelenésével kapta a nevét mivel meg kellette különböztetni a két típust. A név arra
utal, hogy ennek a memóriatípusnak a tartalma megsemmisül, ha nem frissítjük fel. A DRAM
mátrixszervezésű azaz oszlopokból és sorokból épül fel, melyek „metszéspontjában található egy
memóriacella (a memóriában az információt egy kondenzátor tárolja).
A cellá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 sorokból kiválasztjuk az adott oszlophoz tartozó cellát.
Ebből következőleg a DRAM áramkörnek nincs szüksége a teljes címre hanem először a sorcímet majd az
oszlopcímet kell rendelkezésére bocsátani. Ezért a processzor által megadott címet egy hardver egységgel
két részre, sor és oszlopcímere kell szétválasztani.

A CPU-k teljesítménye az elmúlt évtizedekben rohamosan nőtt, ezzel a memóriák nem tudtak kellő
mértékben lépést tartani. Ezt a problémát az L1 és L2 cache tárolókkal próbálták megoldani, persze ez sem
jelent végleges megoldást így ez egyre újabb típusok kidolgozását teszi szükségessé.

Ilyen az átlapolás memóriakezelés ( Memory Interleaving) alkalmazása: a memóriát egymástól független


címezhető és olvasható részekre, úgynevezett memóriabankokra osztjuk fel. Amikor a CPU a memóriát
címfolyamatosan olvassa, a 0-ik 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ő. Így címfolyamatos olvasás esetén megközelítőleg
kétszeres sebességgel történhet a kiolvasás
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 algoritmusok.

Cache:

A számítógéparchitektúrák tervezése során 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 adatforgalmak biztosítása, ami lehetővé teszi
a folyamatos CPU működést annak várakozása nélkül.
Ennek a célnak a megvalósítását teszik lehetővé:
• a CPU és központi memória közti, illetve
• a központi memória és a háttértárolók között
elhelyezkedő átmeneti tárolók alkalmazása (cache).

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óriapuffere. A cache önálló vezérléssel rendelkezik ami képessé teszi a különböző
bemásolási és adat-visszaírási stratégiák, algoritmusok kezelésére.

A cache tárolót közvetlenül beépíthetik a CPU-ba, vagy elhelyezhető azon kívül is. Mikroszámítógépeknél a
CPU-ba épített (on-chip) cache tárolót L1 (Level 1)-nek, míg a CPU-n kívülit L2 (Level 2) hívjuk.

Cache működési elve:

Ha CPU a központi tár egy rekeszét olvasni akarja, akkor a gyorsító tár vezérlője ezt és még néhány rekeszt
a cache tárolóba. Mivel a lokalitás elve alapján nagy valószínűséggel feltételezhető, hogy a CPU legközelebb
a soron következő rekeszre lesz szüksége. Ha ez így van akkor a CPU-nak a következő olvasási művelet
során már nem kell várakoznia. Az adatok bemásolása a cache-be blokkonként (a cache sorok méretének
megfelelően) történik és igen rövid idő alatt (csak néhány órajel szükséges hozzá) végrehajtható.
• Cache hit: ha a CPU olyan adatot igényel ami a cache-ben megtalálható akkor találatról beszélünk,
ez a toldalék „tag” alapján állapítható meg.
• Cache miss: az igényelt adat nem található a cache-ben akkor tévesztésről van szó.

Cache felépítése és típusai:

A cache-be lemásolt főtárblokk 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,
másrészt itt kerülnek bitenként kódolva letárolásra a cache blokk adataira vonatkozó érvényességi
információk.
• Az adatrész tartalmazza a bemásolt főtárblokk változatlan vagy CPU által már módisított adatait.

Cache típusai:

• teljes mértékben asszociatív cache: egy főtárbeli blokk a cache bármelyik sorába bemásolható, a
blokk címe (sorszáma) pedig bekerül a cache toldalék részébe. Ha CPU egy adatot keres a cache-
ben, akkor az adat memóriacíméből képzett blokkszám asszociatív módon összehasonlításra kerül a
cache-ben lévő blokkok sorszámával. Az összehasonlítás nagyon gyorsan, minden sorra
vonatkoztatva azonos időben történik meg. Ebben az esetben minden sorra kell egy összehasonlító
áramkör ami viszont nagyon drága megoldás.
• Közvetlen leképzésű: ebben a tárolóban egy blokk csak a cache egy konkrét sorába kerülhet. Ez
gyakorlatilag azt jelenti, hogy a főtárban egymástól azonos távolságban elhelyezkedő blokkok
azonos cache sorba fognak bekerülni, ezért a különböző blokkokban lévő, de azonos sorindexű
blokkban található adatok hozzáférése rendkívül lelassul, mivel ez minden esetben blokkcserét
eredményez a cache-ben. A találati arány rosszabb lesz mint az asszociatív táraknál, viszont nem
kell összhasonlító áramkör ezért nagyságrendekkel olcsóbb megoldás.
• N-utas csoport asszociatív cache: átmenet a két előző tártípus között, ennél a megoldásnál a tár
több sorból álló csoportokra van osztva. Az egy csoporthoz tartozó tárolórész önmagában teljes
asszociatív tárként működik, azaz a bemásolandó adat az egy csoportot alkotó blokkok bármelyikébe
bekerülhet. Annak megállapítsa viszont hogy egy cache-be írandó blokk melyik csoporthoz tartozik
a közvetlen leképzésű memóriacímből képzett index-el kerül meghatározásra. Ezek a tárak
rugalmasabbak mint a közvetlen leképzésűek de kevesebb asszociatív áramkört tartalmaznak, így
egy jó kompromisszumot jelentenek.

Helyettesítési stratégia:

ha egy főtárblokkot be kell másolni a cache-be, az első eldöntendő kérdés, hogy a bemásolandó blokk adatai
a cache melyik sorába kerülhet be, azaz az új blokk adataival, melyik más régebben a cache másolt blokk
adatait lehet felülírni. Különböző stratégiák ismertek, ezek közül a legelterjedtebb az LRU (least recently
used) stratégia, mely esetében a CPU által legrégebben használt blokk adatit kerülnek felülírása. A
legrégebben használt blokk kiválasztáshoz természetesen nyilvántartásra van szükség.

Adataktualizálási stratégiák:

Ha a CPU egy művelet-végrehajtás során megváltoztat egy adatot a cache-ben 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ás vagy write through eljárásnál a gyorsítótárt írásával együtt megtörténik a főtár
írása is. Ennek hatékonyságát javítja a pufferelt közvetlen írás amikor a CPU a megváltoztatandó
főtárbeli adatokat egy pufferbe írja és nem várakozik annak végrehajtására .
• visszaírás vagy write back: ennél az eljárásnál a gyorsítótárban módosított adat csak akkor kerül
visszaírá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 adatblokkal. Ez a módszer gyorsabb a közvetlen átírásnál, viszont
minden cache-beli sor esetében meg kell jegyezni, hogy az adott sor módisításra került-e. Erre a
célra soronként egy kiegészítő bit szolgál. Ezt az eljátást akkor célszerű alkalmazni, ha a gyorsító tár
sorait gyakran kell módosítani.
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épzése, TLB, lapcsere stratégiák).

Egy program végrehajtásához a megfelelő programrészek és az általa feldolgozott adatoknak a főtárba 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 tárba, ha szükség van rájuk. A központi
memória a számítástechnika egész története alatt mindig az egyik legszűkösebb erőforrás volt.

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. Különösen a multiprogramozott és a
multitasking üzemmód kialakulását követően vált jellemzővé, hogy a számítógépen „egyidejűleg” sok olyan
nagy memóriaigényű programfolyamatot kell futtatni, melyek együttesen nem férnek be a főtárba.

A probléma megoldása során a következő szempontokat célszerű figyelembe venni:


• a programok végrehajtása során legtöbbször egy korlátos memóriaterületen belül dolgoznak, amit a
lokalitás elvének is nevezünk.
• az egyes programrészek között igen nagy eltérések lehetnek abból s szempontból, hogy a
programvégrehajtás során milyen gyakran van rájuk szükség. pl.: az operációs rendszer hibakezelő,
analizáló rutinjai. Ez más néven a gyakoriság elve a programvégrehajtásban.

A memóriakapacitás hiánya vezetett oda, hogy az „overlay” technikát kezdték alkalmazni. 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árterület, melyre a ritkábban szükséges programmodulok kerülnek
betöltésre, de csak igény szerint. ( ennek nyilvántartását, méretét kezdetben a program maga végezte el, de
célszerűbbnek mutatkozott ha ezt az operációs rendszer végzi el)

Szegmentálás:

Ha virtuális tár olyan logikai blokkokból áll, melyek 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 ugyan az adat két különböző szegmensen belül is megcímezhető. Ekkor
több programfolyamat közösen használ szegmenseket.

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 fizikai címet a szegmenstáblázat tartalmazza. A szegmentált tárkezelésnél az
átlapolódás és a különböző blokkméret miatt, a bemásolásnál és a háttértár kijelölt részére másolásakor, igen
sok üres hely keletkezhet. Ezt fregmentációnak nevezzük. Ennek időnkénti rendezésére szükség van.

A szegmensek betöltésére a virtuális tárból többfajta stratégia s létezik:


• első szabad helyre: azaz a legelső olyan helyre aminek 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 választjuk ki az első
megfelelő méretű tárrészt.
• legjobb helyre: az összes olyan szabad tárterület közül azt választjuk ki aminél a betöltést követően
a legkevesebb felhasználatlan terület marad az adott tárhelyen belül.
• legrosszabb helyre: ekkor az a cél, hogy a betöltött szegmens mellett a legtöbb szabad hely
maradjon.

A szegmentált virtuális tárkezelés előnye a rugalmasság (a változtatható blokkméret miatt). És az osztott


felhasználás lehetősége az átlapolható szegmensekkel. Viszont a nagyméretű szegmensek cseréje ronthatja a
hatékonyságot és a memória kihasználtsága sem biztosított.

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áli
tárkezelés ezen módját pedig lapozásnak. A főtár a lapmérettel megegyező nagyságú részekre van felosztva,
ezeket lapkereteknek (frame) nevezzük. A cím hasonlóan épül fel, azaz a lap sorszámát és a megcímzett
bájtnak a lap kezdetétől számított címét tartalmazza. A címeket a laptáblázat tartamazza. Minden
programfolyamatnak saját laptáblázata van. Ha egy programfolyamat olyan lapra hivatkozik ami nincs a
főtárban, akkor ez „laphiba” kivételt okoz. Ez egy megszakítást okoz és vezérlést megkapja az operációs
rendszer laphiba kezelő rutinja ami betölti a szükséges lapot.

Virtuális cím leképzése:

A számítógépen futó programfolyamatok utasításai a virtuális címeket, mint logikai címeket tartalmazzák. A
virtuális tár blokkjai akkor kerülhetnek be a főtárba, ha valamilyen programutasításban hivatkozás történik
az adott blokkban található címre és az nem található meg még a központi tárban.

Ez azt jelenti, hogy a programok a virtuális tárakat úgy „látják” mintha az a központi tár lenne. A virtuális
címzéssel elvileg megcímezhető memóriaterületet virtuális tárnak nevezzük. A virtuális címek mennyisége a
kijelölt tár nagyságától függ.

A CPU-nak működése során a valódi vagyis a fizikai címekre van szüksége, ezért a virtuális címeket át kell
alakítani fizikaivá.
Két dologra kell ilyenkor tekintettel lenni:
• a blokkok háttértárolón lévő címét, a fizikai memóriába bemásolt blokkok sorszámát nyilván kell
tartani
• valamint szükség van egy olyan programra vagy hardver egységre ami nyilvántartott virtuális
címeket átalakítja valódi címekké.
A címek fizikai címre történő leképzését a kezdetben még az operációs rendszer végezte, ma viszont
kizárólagosan az a jellemző, hogy ezt a feladatot egy címleképzési áramköröket tartalmazó hardver egység,
az MMU végzi el. Ez az egység végzi a kivételek kezelését is.

TLB:

A TLB a leggyakrabban használt lapok lapcímfordításához szükséges adatait tartalmazza, általában a


processzor és a cache tároló között helyezkedik el.

Lapcsere stratégiák:

A lapcsere folyamán ki kell választani azt a lapot, amelyiket feláldozzuk az új lap betöltése érdekében. A
lapcsere stratégiák alapvető célja az, hogy optimális esetet közelítsék, azaz azt a lapot válasszák áldozatul,
amelyikre a legkésőbb lesz szükség.

Általános esetben két lépésből áll, az áldozat kimentéséből és az új lap beemeléséből.


alapvetően két stratégia követhető:
• igény szerinti lapozás: (demand paging) esetén csak a laphibáknál hivatkozott lapot hozzuk be a
tárba. A módszer előnye, hogy a betöltendő lap kiválasztása nagyon egyszerű, továbbá, hogy csak a
biztosan szükséges lapok kerülnek be a tárba, ugyanakkor az új lapokra hivatkozás mindig laphibát
okoz ami lassítja a rendszert.
• Előretekintő lapozás: (anticipatory paging) ebben az esetben az operációs rendszer megpróbálja
„kitalálni”, hogy a folyamatoknak a közeljövőben mely folyamatokra lesz szükségük.
◦ Optimális: megpróbálja következő használat idejét figyelembe venni. Nagyon nehézkes mivel
csaknem az egész programot szimulálnia kell.
◦ Legrégebbi lap (FIFO): úgy próbálja közelíteni az optimális esetet, hogy a legrégebben a tárban
lévő lapot cseréli le. Megvalósítása egy egyszerű FIFO listával történhet, hibája azonban, hogy
azokat a lapokat is cseréli, amiket a folyamatok gyakran használnak.
◦ Újabb esély (SC): a FIFO algoritmus olyan változata ahol a lapokat csak akkor cseréli, ha
hivatkozás nem történik rá
◦ Legrégebben nem használt (LRU): azt a lapot választja amire a folyamatok a legrégebben
hivatkoztak.
◦ Legkevésbé használt (LFU): ez az algoritmus abból indul ki, hogy a közelmúltban használt
lapokat a folyamatok a közeljövőben is használni fogják.
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).

Az adattárolás elve a mágnese tárolókon:

Az adatrögzítés módja nagyon hasonló a közönséges magnetofonnál használt jelrögzítő technikához, avval a
fontos különbséggel, hogy a számítástechnikában az adatrögzítés mindig digitális. Az informácihordozója
egy hordozóanyagra felvitt vékony, mágnesezhető réteg, illetve annak mágnesezettségi szintje és iránya. A
digitális jelrögzítés miatt csak két szintet különböztetünk meg (logikai igen és a logikai nem szintjét).

Mivel az adathordozó mozog (forog) így a változó mágneses tér az olvasófejekben elektromos jeleket hoz
létre, amelyeket felerősítve és formálva (normalizált formában) használnak fel. A mágneslemez tárcsáira
felírt adatok olvasásakor a hordozó ferritbevonata egy v sebességgel halad el a légrés előtt, és
megváltoztatja az indukciót a légrésben és a fej ferromágneses anyagában is. Ilyenkor a sebességgel arányos
feszültség indukálódik. A feszültség iránya függ az indukcióváltozás irányától.

Mivel a feszültség (amelyből vissza tudjuk állítani a felírt adatokat) csak akkor, indukálódik, ha az indukció
megváltozik, ezért az adatokat is indukcióváltozások formájában kell felírni az adathordozóra. Az adatok
felírás előtti átkódolását írásmódnak nevezzük. Mivel az alkalmazott írásmód befolyásolja az írássűrűséget,
ezért sokféle írásmód terjedt el a mozgó mágnese táraknál.

Merevlemezek fizikai felépítése:

A lemezek területét használat előtt formázni kell, azért hogy kialakuljon az a szabványos jelrögzítési
struktúra (pl. szinkronjelek), amelyek a számítógépek operációs rendszerei, olvasó egységei kezelni tudnak .

Sávok:

A lemezek felülete sávokra van osztva (track), amelyen belül kisebb egységek szektorok kerülnek
kialakításra.
Extra sávok: az adattárolásra szánt sávok mellett, a gyorsabb adatelérés érdekében, külön sávokat használnak
az indextáblázatok kialakításához (index track) továbbá a nagyobb megbízhatóság érdekénben tartalék
sávokat képeznek a meghibásodott és nem használható szektorok, sávok tartalmának átmentéséhez. A
sávokon belüli szektorkezdetek jelölésére két módszer használatos:
• szoft-szektoros
• hard-szektoros

Szektorok:
Egy szektor a legkisebb írható olvasható (címezhető) adatterület, amelyet az olvasóegység, az operációs
rendszer, illetve annak részeként működő BIOS kezelni tud. A szektor a sáv egy szelete. A szektor egyes
részeit, valamint a szektorokat egymástól üres részek, ún. gap-ok választják el.

A szektorok logikai felépítése: két részre tagolt :


• fejrészre: az azonosításhoz szükséges információkat tárolja
• adatrészre: a tárolandó adatsort és az ellenőrzésre szolgáló kódot tartalmazza.

Cilinderek:

ha több lemezfelület áll rendelkezésre a tároláshoz (hajlékonylemezeknél 2, míg a merevlemezeknél 6-8


vagy több), akkor a fizikailag egymás felett elhelyezkedő sávokat együtt cilindernek (cylinder) nevezzük.

FAT (File Allocation Table):

A merevlemezek használatához egy logikai formázást kell végeznünk a lemezen, amely kialakítja az
alkalmazni kívánt fájlrendszert, a fájlok elhelyezkedését a lemez elején létrehozott FAT tábla mutatja. A Fat
hibátlansága a rendszer működésének elengedhetetlen feltétele.

Amikor egy program fájl írását vagy olvasását kéri, az operációs rendszer a kontroller segítségével az a
kontroller segítségével az író/olvasó fejeket a merevlemez fálj alokációs táblája fölé mozgatja. A rendszer
ennek olvasása során állapítja meg, azt a helyet, ahol a létező fájl kezdődik, vagy ahol üres hely van új
állomány létrehozására.

Klaszter:

a logikai lemezkezelés alapegysége a több szektorból álló szektorcsoport, a klaszter (angolul cluster). A
fájlok a lemezen klaszterekre vannak osztva, így az operációs rendszer írni és olvasni a merevlemezt csak
klaszterként tudaj. Egy klaszterben található szektornak a száma a lemez kapacitásától függ, de mindig 2-nek
valamilyen hatványa.

Boot-szeltor:

Minden merevlemez egy fizikai partícióból áll, ennek mérete a lemez teljes területével egyenlő. A fizikai
partíciót fel kell osztani a több logikai partícióra. A logikai partíciókat úgy látjuk, mintha azok külön
merevlemezek volnának. A partíciók felhasználásával több operációs rendszer futtatására is lehetőségünk
nyílik, ha ezeket külön partíciókra helyezzük el.

A merevlemez első szektorában található a mester betöltő bejegyzés (MBR = Master Boot Record), amely a
gép indításánál nyújt információt a betöltendő operációs rendszerről. Az MRB része a partíciós tábla, amely
a lemezen található logikai partíciókat írja le.

A mágneslemez hozzáférési ideje:

A mágneslemez hozzáférési ideje alatt egy szektor 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.

Hozzáférési idő = pozicionálási idő átlaga + forgási idő + adatátviteli idő + vezérlési idő

• pozicionálási idő: az az idő, míg az író/olvasó fej rááll a megfelelő sávra


• forgási idő: amíg a megfelelő szektor az író/olvasó fej alá kerül
• átviteli idő: egy szektor méretének megfelelő mennyiségű adat átvitele.
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és tipusai.

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 CPU-nak állandóan
ellenőriznie kellene, hogy a felhasználó mikor nyomott le egy billentyűt. Ez pedig igen nagy pazarlás lenne a
CPU teljesítményével.

A megszakítást kiváltó események és kezelésük: a számítógépes programok végrehajtása során felléphetnek


olyan események, melyek kezelése csak az utasítás-végrehajtás normális menetének átmeneti
felfüggesztésével lehetséges. Ezek bekövetkezhetnek:
• meghatározott programhibák esetén (mikor egy program aritmetikai műveletében 0-val akar osztani)
• meghatározott műveletek befejezésekor, melyek bekövetkezésére számítani lehet, de az időpontja
pontosan nem tervezhető. (mikor egy periféria jelzi, hogy befejezett egy feladatot)
• szándékosan azaz program-vezérelt módon (mikor programhibák felderítése céljából a
programfutást lépésenként hajtjuk végre)
• teljes mértékben véletlenül és váratlanul (súlyos hardverhiba, áramkimaradás)

Az utasítások szabályszerű feldolgozását megszakító eseményeknek két alapvető típusa van:


• a programfutáshoz képest külső eredetű megszakítás (egy I/O eszköz adatátviteli igényt jelez)
• az utasítások szabályszerű végrehajtását megakadályozó kivételek exeption, melyet a CPU egy
utasítás végrehajtása során észlel.

Mivel a megszakítások és kivételek fellépése a program végrehajtás szempontjából véletlenszerűen


következnek be és egy befutott kérelem miatti programfelfüggesztés ide je alatt is jöhetnek újjabb kérelmek,
ezért ezeket osztályozni szükséges abból a szempontból, hogy ezeket a kérelmeket a CPU tilthatja vagy nem:
• léteznek olyan események, melyek megszakítási igénye átmenetileg letiltható. Ezeket maszkolható
megszakítási kérelemnek nevezzük, mivel engedélyezésük vagy tiltásuk egy regiszter bitjének
beállításával történhet.
• Olyan események, melyek megszakítási kérelme nem tiltható le és minden esetben ki kell szolgálni.
Ezeket nem maszkolható megszakításoknak nevezzük (pl. súlyos hardverhibák)
Kivételek esetében a kivételt kezelő különleges programrész lefutása után a CPU ismét megkisérli a
megszakított utasítás végrehajtását.

Pentium CPU-család által dedikált kivételek:


• faults: (hibák) amik megengedik a az utasítás újraindítását, a kivételkezelő rutin visszatérési címe a
hibát kiváltó utasításra mutat.
• Traps: (csapdák)
• aborts: ami engedélyezi a kivételt kiváltó program folytatását
• programozott kivételek, melyek például az INT és az IRET utasítások generálnak.

A megszakítás kiszolgálása:

A megszakításkiszolgálást gyakran aszinkron alprogram végrehajtásnak is nevezzük, mivel mert időben nem
jósolható, hogy egy megszakítást kiváltó esemény mikor fog megtörténni. Valamint egy meghatározott
típusú megszakítást mindig azonos megszakításkiszolgáló programegység (szubrutin) végrehajtását fogja
eredményezni.

A megszakításkérelmeket úgynevezett vektoros módon dolgozzák fel, ami azt jelenti, hogy a
megszakításkérelem a megszakításkezelő rutin kezdőcímét egy vektor elemeként azonosítja a CPU számára
(másként: a megszakítást vezérlő a CPU-nak a vektor egy elemét meghatározó sorszámot ad át, mely a
memóriában található megszakítási vektortáblában kijelöli a kiszolgáló rutin címét)
A hardver által:
• az eszközkezelő jelzi a CPU-nak a megszakításkérelmet (INT jel)
• a CPU visszaigazolja az elfogadást (IACK jel)
• az eszközkezelő a sínre küldi a megszakítási vektor elemének sorszámát
• a CPU tárolja a küldött vektor elemének sorszámát
• a CPU elmenti a verembe az utasításszámláló és az állapotregiszter tartalmát
• a CPU a megszakítási vektor elemsorszáma alapján a kezelő rutin kezdőcímét betölti az
utasításszámláló regiszterbe és ezzel megkezdődik annak végrehajtása
az operációs rendszer által:
• a megszakított program adatainak elmentése verembe
• a megszakítás okának behatárolása
• a kiszolgáláshoz szükséges adatok összgyüjtése
• a megszakítást okozó események kezelése
• a megszakított program adatainak visszatöltése
• a megszakításkezelő rutin befejezésének jelzése
a hardver által:
• az elmentett állapot és utasításszámláló regiszter tartalmának visszatöltése és a megszakított
program folytatása.

Megszakításvezérlő felépítése és működése: ez az eszköz végzi a megszakítás kiszolgálásához szükséges


legfontosabb hardver feladatokat.
• fogadja a megszakításkérő vezérlővonalakon (IRQ) 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ését a CPU-val
• ha az IACK (Interrupt Acknowlegment) vezetéken a CPU visszaigazolja, hogy kész a kérés
fogadására, akkor a megszakításvezérlő átadja a CPU-nak a megszakításhoz tartozó megszakítás
vektor címét.

Elvi felépítése:

Amennyiben egy számítógépben több megszakításvezérlő is megtalálható, akkor ezek legtöbbször master-
slave kapcsolatban állnak egymással.
12. Az I/O adatátvitel típusai. A közvetlen memória-hozzáférés (DMA) lényege és végrehajtása. A
DMA-vezérlő regiszterei és működése.

A mikroszámítógépek és perifériáik közti adatátvitelt három fő módszerrel oldhatjuk meg:


• programozott bemeneti/kimeneti (I/O) adatátvitelnél az összes adatátvitellel kapcsolatos műveletet a
számítógép programja vezérli.
• megszakítással kezdeményezett I/O adatátvitelnél egy programmegszakítás előzi meg. Ekkor egy
I/O eszköz kényszeríti a CPU-t, hogy félbehagyja az éppen futó program végrehajtását, majd az I/O
eszköz kérését végrehajtsa.
• közvetlen memória hozzáférés esetén (DMA=Direct Memory Access) közvetlen adatátvitel jön létre
a memória és a bemeneti/kimeneti készülékek között a CPU igénybevétele nélkül.

A közvetlen memória-hozzáférés (DMA) és vezérlője.

A közvetlen memória-hozzáférés lényege, ahogy a CPU egy I/O művelet végrehajtásához szükséges
információt átadja egy, a CPU-tól független működésű DMA vezérlőnek Direct Memory Access), mely 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 tulajdonképpen egy
egyszerűsített CPU-ként is felfogható. Ezáltal a CPU felszabadul más feladatok végrehajtására.

A CPU és a DMA vezérlő egymással a kapcsolatot a megszakítási rendszeren keresztül tartja, így például a
DMA vezérlő egy I/O művelet befejezését egy megszakításkérelemmel jelzi. A DMA vezérlő rangsorolja az
adatátviteli igények kiszolgálását. Az adatátviteli állapot nyilvántartására a DMA egy címregisztert és egy
számlálóregisztert alkalmaz, melynek tartalma minden egyes átvitt adat után aktualizálásra kerül.

Ezen kívül a DMA még három további regisztert is tartalmaz:


• DMA módregiszter: mely az adatátvitel irányára (memóriába írás vagy onnan történő olvasás)
vonatkozó információkat tartalmazza.
• DMA maszkregiszter: az egyes DMA átvitelt kérő vezérlővonalak letiltását (maszkolását)
tartalmazza.
• DMA állapotregiszter: a vezérlő állapotával kapcsolatos információk tárolására szolgál (pl. meliyk
vonalon érkezett a kérelem, befejeződött-e az átvitel).

Működése:

Miután a CPU a készülékhez tartozó, megfelelőregisztereket – mutatók, számlálók – beállította a


készülékvezérlőn, vagy a DMA-vezérlőn, a készülékvezérlő a pufferből közvetlenül a memóriába vagy a
memóriaterületről a saját pufferébe tölt egy (a puffer méretének megfelelően tipikusan 128 byte és 4 Kbyte
közötti méretű) adatblokkot anélkül, hogy a CPU-t megzavarná a működésében. Legfeljebb buszciklust kell
lopjon a CPU elöl az átvitelhez. A DMA-átvitel befejeződése után a perifériavezérlő, vagy a külön DMA-
vezérlő blokkonként egyetlen megszakítással jelzi a műveletet befejeződé
13. A sín (busz) feladata, logikai felépítése, típusai. Sínvezérlés (szinkron, asszinkron). Master és Slave
eszközök. Buszarbitáció ( soros és párhuzamos sínfoglalás).

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.
A sínrendszer fogalmába beleértjük a kommunikációs kapcsolatok szabványosított szabályait is, amit
sínprotokollnak (bus protocoll) nebezünk.

Logikai felépítés: az átvitt információk jellege szerint három részre osztható.


• Címsin: mely a címek átvitelét biztosítja. A CPU címkészletének (pl. 32 vagy 64 bites CPU-k)
megfelelően általában 32 vagy 64 címvezetéket tartalmaz.
• Adatsín: mely az adatok átvitelét biztosítja, szélessége általában 32 vagy 64 bit.
• Vezérlősín: mely a számítógép részegységei között a vezérlőinformácíók adatátvitelét biztosítja.
Ezek lehetnek például:
◦ adatátvitel, azaz az I/O eszközöket vezérlő jelek,
◦ a megszakítási rendszerhez tartozó vezérlőjelek,
◦ a DMA vezérlőjelei, valamint
◦ a sínvezérlőjelek (pl. a sínhasználat kérése és ennek visszaigazolása),
◦ szinkronizációs jelek.

Sínrendszer típusai:
• belső sínrendszer, mely a processzoron belül, a processzor különböző részeit kapcsolja össze.
Sebessége (órajele) megegyezik a processzoréval.
• külső sínrendszer, mely a processzort köti össze a központi egység különböző részegységeivel.
Sebességét a CPU órajelének osztásával határozzuk meg.

A külső sínrendszer a sebessége és az összekapcsolt eszközök alapján kétfajta lehet:


• helyi sín vagy local bus, mely a CPU-hoz közvetlenül kapcsolódó rendszerelemeket (memória,
grafikus kártya. Stb.) köti össze. A helyi sínen keresztül az adatátvitel a CPU órajelével szinkronban
történik és a busz adatátviteli bit szélessége is megfelel a CPU működésének (32 bites CPU-nál 32
bit)
• rendszersín vagy system bus, melyet egy sínvezérlő egység hajt meg és alapvetően az I/O eszközök
csatlakozását szolgálja.
• az I/O eszköz saját sínrendszere (pl. SCSI lemezcsatoló busza)
• számítógéprendszerek közötti buszok (intersystem bus)

Ezt az architektúrát továbbfejlesztette a k. 180 gyártó által elfogadott PCI szabvány.

Sínvezérlés:

Az adatátvitelben résztvevő eszközöknek összehangoltan kell működniük. Ehhez megfelelő konvenciók és


algoritmusok kellenek, melyek á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.

Az adatátvitel vezérlésének két formája lehet:

• a szinkron sínvezérlés: ebben az esetben 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 visszacsatolás.

Előnye a gyorsasága, hátránya viszont, hogy közös órajelet kell biztosítani az összes sínre kapcsolt
eszköz számára.

• Asszinkron sínvezérlés: esetén, 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.

Előnye, hogy nem kell azonos órajelet biztosítani az összes sínre kapcsolt eszköz számára, és
nagyon eltérő sebességű eszközök kiszolgálását is lehetővé teszi. Hátránya viszont az asszinkron
sínvezérlésnek, hogy a protokollba be kell építeni a relatíve bonyolult asszinkron „handshake”
eljárást.

Master és Slave eszközök:

A sínt egy időben csak egy eszközpár használhatja. Ezek közül a 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ő:

• MASTER:
◦ elindít és befejez egy busztaranzakciót,
◦ címet küld.
• SLAVE:
◦ válaszol az igényekre és a címekre,
◦ a sínre teszi illetve fogadja az adatokat.

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ín használatára. Ezt az eljárást nevezzük sín arbitrációnak.
Ha csak egy buszrendszer 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.

A buszrendszerek megosztása a masterek között a legegyszerűbb módon időosztással történhet, amikor


minden master meghatározott időszeletre megkapja a buszhasználat jogát (statikus módszer). Csak abban az
esetben hatékony, ha a masterek adatátviteli igénye kb. azonos. 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 priotitású és
gyors eszköz pl. CPU mellett a többi master „nem jut szóhoz”)
• egyenletes buszhasználati jog elosztás ( pl. a masterek igényei jelentkezésük időpontja 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.

Másik fontos kérdés, hogy ha egy master lefoglalja a buszt, akkor mennyi időre kapja meg a buszhasználat
jogát.
A lefoglalt busz felszabadításának módszerei:
• release on request: a master csak annyi időre foglalja a buszt, amíg azt másik master nem igényli.
• Release when done: a master egy tranzakcióra kapja meg a buszt.
• Preemption: ha egy magasabb prioritású master jelentkezik, ez folyamatban lévő tranzakciót
megszakítja.

Dinamikus buszhasználat szétosztás csak akkor lehetséges, ha :


• minden master jelzi a buszfoglalási igényt
• csak akkorm használhatja, ha igényének visszaigazolását megkapta
• a masternek jelzést kell küldenie, ha a tranzakció befejeződött.

A buszarbitráció lehet:
• központosított, ekkor a számítógéprendszerben csak egy arbiter van. Ez lehet önálló hardveregység,
vagy egy másik egységnek a részegysége.
• szétosztott, akkor több arbiter egység található a rendszerben

Központosított busz arbitráció esetén a buszhasználatot igénylő masterek egy „request” jellel jelzik az
igényeiket az arbiternek, mely meghatározott algoritmus szerint kiválaszt egy mastert és az igény
lefoglalását a „grat” jellel igazolja vissza. Ez három eljárás alapján lehetséges:
• soros kiszolgálás: 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. Ennek előnye az egyszerűségében van, a
hátránya, hogy a kis prioritású eszközök sokáig várhatnak.
• 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 sínvezérlés prioritás szerint engedélyezi a sín
igénybevételét. (egyszerű körbejáró eljárás, LRU).
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 a vevő szinkronizálása.

Az interfész két rendszer vagy egy rendszeren belüli felületnek az a része, amelyen keresztül az adatok
átvitele az igényelt illesztés biztosításával történik, amely biztosítja az egyes rendszertechnikai egységek
közötti egyértelmű, rendezett és szervezett információcserét.

Az I/O eszközök és a processzorok 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, mely az eszközvezérlő által végrehajtandó műveletekhez szükséges
információkat tárolja
• állapot (status) regiszter, melyben az eszközvezérlő az I/O eszköz aktuális állapotára vonatkozó
információkat tárolja (például egy merevlemezre egy blokk kiírása megkezdődött, vagy a
nyomtatóból kifogyott a papír),
• az adatkiírás illetve beolvasás pufferregiszterei, melyek a folyamatban lévő I/O műveletek adatit
tárolják

A processzor az eszközvezérlőket alapvetően két módon irányítja:


• közvetlen I/O utasításokkal (miután az állapotregiszter lekérdezésével megállapította, hogy az
eszköz az utasítás végrehajtására képes állapotban van), a parancsregiszter beállításával és a
pufferregiszterek írásával vagy olvasásával,
• közvetett módon: amikor a címzés úgy történik, mintha az I/O eszköz tárolója a főtár része lenne
(memory mapped addressing, ilyen például a grafikus memória.

Az I/O eszközök címzése:

A processzor az eszközöket két módon címezheti meg:

• közvetlen I/O címekkel, ekkor az I/O utasítások a processzor utasításkészletében szerepelnek (ez pl.
az Intel CPU-ra jellemző
• közvetett módon (memory mapped addressing), mely esetben a címzés úgy történik mintha az I/O
eszköz tárolója a főtár része lenne (ez a RISC processzorokra jellemző) a közvetett I/O eszköz
esetén:
◦ ha az írási/olvasási cím az I/O címtartományba esik, ennek értelmezése automatikusan I/O
művelet,
◦ az I/O címtartományt az operációs rendszer védi,
◦ az I/O eszközökkel a felhasználói programok az operációs rendszer közbeiktatásával
kommunikálnak.

A PORT a számítógép olyan interfésze, amely a perifériális eszközökkel tart kapcsolatot. Ez biztosítja a
szabványos csatlakozást a CPU és a perifériális egységek között, a rendszersín közbeiktatásával. Az I/O
PORT pufferei a külső buszrendszer adatvezetékeihez csatlakoznak.

Az I/O PORT nincs állandóan aktív kapcsolatban az adatvezetékekkel, mert általában azokon keresztül
bonyolódik le pl. a CPU és a memóriák közti adatforgalom is. A CPU az I/O eszközzel való műveletvégzés
igényének megfelelő időben választja ki csak az I/O PORT-ot. Amikor a külső eszköz adatot továbbít a
mikroszámítógépbe, azt az I/O puffer tárolja. Majd az adatátvitel ezt követően valósul meg. Az I/O pufferk
ugyan úgy címezhetőek a sín címvonalaival, mint a memóriarekeszek. Ez egyszerűen megoldható, ha a
mikroszámítógépünk legnagyobb helyi értékű címvezetéke logikai 0 értékű, akkor ez memóriamodult, ha
logikai 1 akkor pedig I/O puffer jelent.

I/O portok kiválasztására használnak különálló logikát is, e célból két külön vezérlővonal csatlakozik a
CPU-hoz. Ekkor:
• az IOSEL vezérlővonal jelszintje jelzi, hogy a címvezeték az I/O PORT puffert kiválasztó kódot
tartalmazzák
• az IROW vezérlővonallal az írás és olvasás műveletei különböztethetők meg. Ha logikai értéke 1,
akkor akkor az I/O puffer adatot olvas, ha 0 az érték akkor ennek tartalma kerül a külső adatbuszra.

A CPU kimeneti jelei vezérlik a külső eszközt, de azok csak állapotaikról tájékoztatják a CPU-t, ebből
értelmezi azt, hogy melyik eszközön lehet adatátvitelt végrehajtani.

A soros és párhuzamos adatátvitel:

Az eszközvezérlőben a CPU és a periféria interfészek közötti adatátvitel két -féle módon történhet:
• amikor a periféria interfész és a periféria a között az adatokat bitenként sorban egymás után visszük
át, ezt soros adatátvitelnek nevezzük,
• 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.

Az elnevezés is innen fakad, a soros működésút soros, a párhuzamost pedig párhuzamos portnak szoktuk
nevezni.

A párhuzamos adatátvitelnek megvan az az előnye, hogy gyorsabb a sorosnál, mivel egy lépésben egy
bitcsoportot viszünk át. Ehhez viszont legalább annyi vezetéket (adatutat) és áramkört kell biztosítaniaz
adatok átviteléhez, mint ahány bitből áll az átvitt bitcsoport.
Soros esetben viszont szélsőséges esetben egy vezetékpár is elegendő az adatátvitel összeköttetéséhez, ami
jelentősen csökkenti a költségeket, ezt figyelembe véve csak a közvetlenül a gép környezetében lévő
eszközöknél alkalmaznak párhuzamos átvitelt (pl. nyomtató).

Az elmúlt évek technikai fejlődése egyre nagyobb sebességű soros adatátvitel megvalósítását tette lehetővé,
ilyen pl. az USB átvitel, ami mára szinte kiszorította a párhuzamos átvitelt.

Az adó és a vevő szinkronizálása:

az adatfolyam értelmezéséhez az szükséges, hogy az adó és a vevő azonos frekvenciájú órajelet


alkalmazzon. Erre az egyik megoldás az lehet, hogy az adatok átvitelét szolgáló jelvezeték mellett még egy
vezetéket alkalmazunk, melyen az órajelet is átvisszük az adó és a vevő között, ez viszont nem a
leggazdaságosabb megoldás.

Hatékonyabb az a megoldás mikor az átvitt bitsorozatot használjuk fel az adó és a vevő órajelének
összehangolásához, szinkronba hozásához. Ez azt jelenti, hogy előírunk egy speciális bitsorozatot, amit
szinkronizáló jelnek nevezünk, aminek feladata az adó és a vevő működésének szinkronizálása, az
órajelképzés időbeli összehangolása. A szinkronizáláshoz megfelelő szabályrendszert is ki kell dolgozni, ez
vezetett el a kommunikációs protokollok alkalmazásához, ez tartalmazza a vevő és az adó oldal
szinkronizálásához szükséges adatokat. pl.:
• azok az eljárások, melyekkel az adó jelzi, hogy adatokat kíván küldeni, a vevő pedig visszaigazolja,
hogy képes fogadni adatokat,
• az adatátvitel során fellépő hibák felismerési, illetve kijavítási szabályai.

A párhuzamos átvitelnél ellenben vezérlővonalakon keresztül megoldott ez a probléma, ezért ott


szerencsésebb eset áll fent.

Soros példa: RS-232-C kommunikációs protokoll, ami részletesen meghatározza az adatátvitel mechanikai,
villamos, funkcionális és eljárási szabályrendszerét. Dokumentációja csak több ezer oldal terjedelmű
leírásban határozható meg.
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.

Minden multimédia rendszer legfontosabb kimenetei perifériája a megjelenítő egység, ami alatt egy monitor
és az azt meghajtó grafikus kártya együttes értendő. A monitoron jelenik meg a grafikus kártya által
előállított számítógép kimenet.

A monitor lelke a katódsugárcső, melyben elektronágyúk találhatóak. Minden elektronágyú elektronsugarat


bocsát ki, mellyel bombázza a monitor falát borító foszfort. Ezek mikor sugárzás éri őket fényt bocsátanak
ki. Annak érdekében, hogy a színek is megjelenítésre kerüljenek három -féle foszforanyagot alkalmaznak, a
piros a kék és a zöld alapszínekhez. Minél erősebb az elektronsugár intezitása annál erősebb fényt bocsát ki a
foszfor. Ebből következőleg a három típusú foszfor által kibocsátott színek keveréke adja az adott területen
megjelenő színt.

Különböző színek előállításához az egyes elektronsugarak intenzitását változtatni kell, ezt a számítógép
videokártyájáról érkező analóg jelek vezérlik. A képernyőn az elektronsugarak egyszeri átfutása egy
képkocka kirajzolása. A képkocka kirajzolása után az elektronsugár a képernyő bal felső sarkába tér vissza
és onnan kezdi el a következő képkocka kirajzolását. Napjainkban a képváltások száma másodpercenként
60-ról indul.

A monitortechnika jelenkori vívmányai

Plazmaképernyő

A plazmaképernyők két üveglapból állnak, amelyek között egy 0,2 mm nagyságú, gázzal töltött
részecskéből álló mozaik található, és ezt az egész felületet elektromos vezetőrács tartja feszültség alatt. Az
egyes célozható részecskékben elektromos kisüléseknek köszönhetően a gáz ultraibolya sugarakat bocsát ki,
amelyektől a részecskék foszforrétege világítani kezd.

Folyadékkristályos képernyő

A folyadékkristályos képernyők (liquid crystal display, LCD) üvegfelületekbe zárt szerves anyagokat,
úgynevezett folyadékkristályokat használnak, amelyek molekuláris tulajdonságai a kemény kristályok
tulajdonságaihoz hasonlók. Ha feszültség alá kerülnek, a folyadékkristályok az elektromos mező irányába
rendeződnek, így más optikai tulajdonságaik lesznek.

Elektrolumineszcens képernyő

Az elektrolumineszcens képernyőkben (ELD) olyan anyagot használnak, amelyre fotólitográfiai módszerrel


egy sor vékony rétegű félvezető áramkört visznek fel. A réteg olyan anyagokból áll, amelyek kellő
elektromos feszültség hatására fényt bocsát ki. A képpontok vezérlése tranzisztor áramkörökkel történik.

LED képernyő

A LED képernyők minden képpontja három színes (RGB) LED-ből és egy fehér LED-ből (a fényesség
szabályozására) áll. Ezek a fénydiódák képezik az aktív színmátrixot. VGA felbontáshoz legalább 1,2 millió
tranzisztor szükséges.

A TFT képernyő

Ma a létező legjobb képernyő hordozható számítógépek (lap-topok) számára. Az egyes képpontokat


felgőzölt, átlátszó, vízszintes és függőleges vezetőpályákon irányítják. A keskenyfilm tranzisztor (TFT)
minden kereszteződési pontnál ki- és bekapcsolja az elektromos mezőt a folyadékkristályok polarizálásának
érdekében, minek következtében a fényerő, a szín és az élesség lényegesen jobb lesz, mint a jóval
egyszerűbb DTSN képernyőké.
A TFT-ken belül is több típust különböztetünk meg, de működési elvük alapvetően nem különbözik
egymástól:
Az LCD-ben
Egy aktív szűrő bizonyos mennyiségű fehér háttérfényt enged át. Ez minden egyes képpont piros, kék és
zöld részét a fény szűrésével éri el.
Ezek a kristályszerű, hosszúkás alakú molekulák természetes állapotukban a felszínnel párhuzamosan
helyezkednek el, de a helyzetüket egészen precízen lehet irányítani egy – az első szűrő mögött elhelyezkedő
– finoman rovátkázott felszínnel, mivel a molekulák ezeket a rovátkákat követni fogják, amikor
kölcsönhatásba lépnek vele.

A TFT

(Thin Film Transistor) technológia belépése rendkívüli javulást eredményezett a színes panelek
képminőségében: akár 25 milliszekundumos válaszidőt is képesek voltak elérni. A TFT panelekben, egy
külön tranzisztormátrixot találunk, amely az LCD – hez csatlakozik – minden egyes képpont alapszínéhez
egy tranzisztor tartozik. Ezek hajtják meg a képpontokat, és megszüntetik az LCD – ék eddigi problémáit,
például a lassú válaszidőt vagy a szellemképet. A TFT – ék jóval vékonyabbak, mint a klasszikus LCD – ék,
így könnyebbek is. Egy 15 hüvelykes TFT monitorban 1024 x 768 x 3 darab tranzisztorra van szükség, ami
több mint 2 milliót jelent, és ezek mindegyikének tökéletesnek kell lennie. Ezt a tranzisztormátrixot
egyetlen, igen drága szilíciumlapon kell létrehozni. Bizonyos darabszámú hibás elem esetén az egész lap
használhatatlanná válik a megjelenítés szempontjából. Ebből kifolyólag a kárba ment lapkák száma
viszonylag magas, és ezért kerülnek még ma is viszonylag sokba a TFT panelek.

A grafikus kártya:

a számítógépből érkező grafikus jeleket a grafikus kártya fogadja. A kártya az átvett digitális jelekből
digitális-analóg átalakító segítségével analóg jeleket állít elő. A digitális-analóg áramkörök az egyes
színekhez tartozó digitális jelekből a színnek megfelelő analóg jelet állítják elő, ezek vezérlik a monitorok
elektronsugarainak az intenzitását.

A grafikus kártyák működését a videó BIOS funkciói határozzák meg. Ezeket a funkciókat használják a
programok, amikor a grafikus kártyával kapcsolatba lépnek.
A grafikus kártyák alapvető jellemzői a következők:
• felbontás,
• megjelenítendő színek száma,
• megjelenítés módja.

A grafikus kártya felbontása a képernyő függőleges és vízszintes irányban megjelenítendő képpontok


számát határozza meg. Minél nagyobb egy adott kártya felbontása, annál jobb minőségű a számítógép
képernyőjén megjelenő kép, mert a kép kirajzolásához több képpont kerül felhasználásra.

A képpontokhoz tartozó színinformáció mennyisége határozza meg a képen megjelenő színek számát. A
színek száma a színmélység. A grafikus kártya videomemóriájában tárolja a képpontok színinformációit.
Minél nagyobb a videomemória, annál nagyobb helyen lehet színinformációt tárolni. Egy képpont
színinformációja 1, 2, 4, 8, 16, vagy 24 bit hosszú lehet.

Ha a színinformáció mennyisége 1 bit akkor ez a bit csak arra használható, hogy jelezze, hogy az adott
képpont megjelenjen-e vagy pedig kioltott állapotban legyen a képernyőn. A 8 bit színinformáció 256 szín,
míg a 256 bit már 65 534 szín megjelenítését teszi lehetővé a 24 bit pedig már átlépi az emberi szem
megkülönbözetőképességét, ezért ennek gyakorlati alkalmazása már a tudományos kutatások kategóriájába
tartozik.
Egy grafikus kártya általában többféle felbontást támogat. Minden felbontáshoz tartozik egy pixel szám,
ennek függvényében határozható meg a videomemória minimális mérete.
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 CRC.
Modemek feladata. ISDN, ATM, DSL technológiák.

A távközlés területén nagyon sokáig az analóg átvitel volt a jellemző. A jeleket valamilyen fizikai
jellemzőjük időben folytonos váltakozásával vitték át (pl. feszültség). A digitális elektronika és a
számítógépek gyors fejlődése során, a telefonközpontok közötti nagy sebességű trönkökön folyamatosan a
digitális átvitelre tértek át.

A digitális átvitel több szempont alapján is jobb az analógnál. Először is nagyon kicsi a hibaaránya. Analóg
áramkörök esetén erősítőket használtak a vonalon fellépő csillapítások kompenzálására, azaz a jel
regenerálására. Mivel a hiba halmozódik, ezért a sok erősítőn átmenő jelek várhatóan komolyan torzultak.
Ezzel szemben a digitális jelek tökéletesen helyreállíthatóak, hiszen két lehetséges értékük van, az 1 és a 0.
ezért itt nem lép fel halmozódó hiba.

A digitális egy másik előnye az, hogy egyetlen eszköz hatékonyabb kihasználásával, különböző típusú
adatok kevert átvitelére van lehetőség (hang, zene, adat). A meglévő vonalakon is nagyobb adatátviteli
sebesség érhető el.

Kezdetben a szövegátvitelt valósították meg, ezért az átvitt információ egysége a bitcsoport volt, amely a
szöveg karaktereit kódolta. Ezt karakterorientált átviteli eljárásnak nevezzük. A hálózatok elterjedésével a
szöveges jellegű információk átvitele mellett egyre nagyobb arányban volt szükség más jellegű adatok
átvitelére is, így szükségessé vált egy olyan átviteli eljárás ami tetszőleges bitszámú üzenetátvitel tesz
lehetővé. Az ilyen átvitelt bitorientált eljárásoknak nevezzük.

A jel regenerálásához elegendő egy összehasonlításon alapuló döntést hozni. Valamint ahogyan a digitális
technikai eszközök ára töretlenül esik, ugyan úgy csökken a hozzá kapcsolódó kapcsolástechnikai eszközök
ára is.

Zajok hatása kapacitás:

A csatornán történő információátvitel során az adó megváltoztatja a csatorna fizikai közegének valamilyen
tulajdonságát, ami a közegen továbbterjed és a vevő ezt az állapotváltozást érzékeli
amikor egy jelet viszünk át egy fizikai csatornán, három akadállyal kell szembenéznünk: a csillapítással,
sávkorlátozással, és a zajokkal. A jelek átvitele a csatornán soha sem tökéletesek. Az átviteli közeg több
-féle hibát torzítást vihet a jel hordozójába. Ezek az alábbiak lehetnek:
• a környezet termikus vagy véletlenszerű zajai, amelyek szuperponálódnak az adatokat hordozó
jelekre. Az ilyen jelek statisztikus eloszlása valamilyen általánosan ismert statisztikai eloszlásnak
fele meg, jól kezelhetőek statisztikai módszerek segítségével (egyenletes eloszlás, gauss elosztás)
• környezetben jelentkező csoportos véletlenszerű hibák, zavarok. Az így keletkező nagy amplitúdójú
zajok a csatornán átvitt teljes jelsorozatot megsemmisítheti.
• Az átviteli közeg nemlineáris tulajdonságából adódó, különböző frekvencián különböző csillapítások
formájában jelentkező torzítás. Ez egy inverz függvénnyel semlegesíthető
• az átviteli közeg különböző frekvenciákon más és más sebességgel viszi át a jeleket. Ekkor a
hullámdiszperzió jelenségét tapasztaljuk meg.

A hírközlés gazdaságossága szempontjából nagyon fontos kérdés, hogy az információ milyen sebességgel
halad át a csatornán. A maximális átviteli sebességet a csatorna kapacitásának nevezzük:
A csatornán átjutó információmennyiség rendszerint nem éri el a maximumot, s így a csatorna kapacitásának
egy része kihasználatlan marad. A kapacitás és a ténylegesen átvitt információ különbségének az arányát a
csatorna redundanciájának nevezzük.
A jel/zaj viszony, vagy zajnívó a hasznos jel és a zaj teljesítményének az aránya. Minél nagyobb a hasznos
jelek energiája, annál biztosabb a vétel. Ha nagy utcazajban kis energiával suttogunk, nagy lesz az
információveszteség.
Átviteli közegek:
Alapvetően két módszert alkalmazhatunk, vezetékes megoldást, valamint valamilyen elektromágneses
sugárzáson alapuló rendszert.
A vezetékes rendszerek telepítése nehézkesebb, épületeken belül kábelcsatornákat kell használni, épületen
kívül közműalagutak, árkok létrehozásával kell vezetni a kábeleket, védeni kell az időjárástól, környezeti
behatásoktól, zavaroktól. Ugyanakkor az így létrehozott rendszerek lehallgatása nehézkesebb, főleg
multiplexelt adatcsatornák, illetve optikai kábelek esetén.

Az elektromágneses sugárzáson alapuló rendszereknél általában bizonyos távolságokon elhelyezett adók és


vevők jelentik az egyetlen beruházást. Az így kisugárzott jelet bárki foghatja a megadott határokon belül,
viszont ezt le is lehet hallgatni, ezért megfelelő titkosítási eljárások használata szükséges.

Típusai:
• csavart érpár UTP
• koaxális kábel
• optikaim kábel
• lézer megoldások
• infravörös
• rádióhullám
• szort spektrumú sugárzás
• műholdas átvitel.

Vonalak megosztása
Ahhoz, hogy információcserét valósíthassunk meg két végpont között, szükségünk van a végpontok között
az összeköttetést biztosító vonalakra. Sok esetben azonban a kommunikáció jellegéből fakadóan nincs
folyamatos információcsere rajta, azaz a legtöbb kapcsolatban a vonalhasználat csak időszakosan
jelentkezik. Nem ésszerű tehát egy kommunikációs csatorna számára kisajátítunk egy teljes vonalat. Ezek a
vonalak igen jelentős költséggel épültek meg, célszerű minél jobban kihasználni azokat.
Amennyiben különválasztjuk a funkciókat, a csatornára, amelyeken az információcsere történik, és a
felhasznált, tényleges, fizikailag létező összeköttetéseket biztosító vonalakra, akkor lehetőség nyílik a
gazdaságosabb kihasználásra. Mivel az adó és vevő oldal számára csak a végeredmény, az információ a
fontos, ezért egy vonalon több csatorna is kialakítható, a megvalósítás pedig többféleképpen is elképzelhető.
 Multiplexelés. A fizikai közeget több csatorna között osztjuk meg, annak érdekében, hogy a vonalat
több adó és több vevő vehesse igénybe. A multiplexelés olyan eljárás, amelynek során egy
adatvonalat előre meghatározott, rögzített módszer szerint elemi adatcsatornákra osztjuk fel. Minden
bemenõ elemi csatornához egy kimenõ csatorna is tartozik. A mutiplexelést lehet az
időtartományban és a frekvencia tartományban is elvégezni, így beszélhetünk frekvenciaosztásos és
az idõosztásos multiplexelési módszerekről, valamint illetve ezek kombinációjáról.
 Az üzenet és csomagkapcsolási módszerek alkalmazásával hatékony vonal kihasználás érhető el.
Az átviendő információt kisebb adagokra kell bontani, a vonalon aztán egymás után átvinni, majd a
darabokból újra összerakni. A csomagok folyamatos áramlása az adó és a vevő számára úgy tűnik,
mint folyamatos összeköttetés.
 A vonalkapcsolás-nak hívott módszer a harmadik lehetőség. Az adatvezetéket a kommunikálni
szándékozó felek csak a kommunikáció időtartamára kapják meg. Tehát az adatvezeték nem egy
adóhoz és egy vevőhöz tartozik, hanem csak annak függvényében, hogy szükségük van-e rá,
valamint más nem használja-e a vonalat. A kapcsolat a kommunikáció befejezésekor megszűnik.
Digitális jelek kódolása

A fizikai vonalon való átvitelhez a bitek ábrázolására több lehetőség is van, amely közül a legegyszerűbb az,
mikor minden bitet, értékétől függően két feszültségszinttel ábrázoljuk. Szokásos az 1 állapot MARK-nak, a
o-át SPACE-nek nevezni.

Létező megoldásai:
• NRZ nullára vissza nem térő: mindig az a feszültség van a vonalon, amit az ábrázolt bit határoz meg.
Ha egy bit 1-es akkor a feszültség teljes idő alatt azonos szintű, ha 0-s, akkor más szintű. Két vagy
több azonos bit esetén a feszültség azonos szinten van.
• RZ nullára visszatérő: a nulla a nyugalmi állapot, 1 bitnél a bitidő felében felvesz egy
feszültségértéket, a második felében visszatér nulla feszültségre.
• NRZI nullára nem visszatérő megszakadásos: a nulla bitnek nulla felel meg, az egy értékű bithez
nulla vagy feszültségszint tartozik a következő szabály szerint: ha az előző egyeshez nulla szint
tartozott, akkor feszültség lesz, ha az előző egyhez feszültség tartozott akkor nulla lesz a bithez
rendelt feszültség.
• AIM váltakozó invertálás: minden egyeshez rendelt polaritás az előző egyeshez rendelt ellentettje
lesz, a nulla jelöli a nullát. Hosszú nulla sorok esetén bitbeszúrás módszert alkalmazzuk.
• PE Manchester kódolás: ennél a jelátmenet ugrás jelképezi a biteket, de itt az ugrás irányanakm is
jelentősége van pl. 0-1 átmenet egyes bitet, 1-0 átmenet nullát jelöl. Mikor több azonos bit követi
egymást, akkor jelnek a két bit között (félidőben) vissza kell térnie az eredeti jelszintre azért, hogy a
következő bit idején ugyanolyan irányú átmenet következhessen.
• CDP feltételes kétfázisú jel: a nulla bitet az előző bithez tartozó jelváltás azonos iránya, míg az egy
bitet az előző bithez tartozó jelváltás ellentétes iránya mutatja.

A paritásbit és a CRC:

Paritásvizsgálattal: Az adatátvitel során az esetleges átviteli hibák felderítését megkísérelhetjük oly módon,
hogy az átviendõ adatbit-csoportot egy paritás bittel egészítjük ki úgy, hogy az így kiegészített
adatcsoportban lévõ 1 értékû bitek száma páros (páros paritás), vagy páratlan (páratlan paritás) legyen. Ilyen
módon, az ADÓ oldalán mindig biztosítható, hogy az 1-es értékû bitek száma mindig páros/páratlan legyen,
és a VEVÕ oldalon az egy (ill. páratlan számú) bit változása miatti hiba felderíthetõ.Kettős hibát a módszer
nem vesz észre. Paritásbitet a mágnesszalagokon kívül általában az operatív tár védelmére is használnak.
ECR (egyedi bithibák) CRC (Cyclic Redundancy Code) Ellenőrző összegek használatosak akkor, ha a
várható hibák nem függetlenek egymástól, hanem egy adatfolyam egymást növelő bitjei sérülnek. Például
egy hálózati zavar, vagy mechanikai sérülés hatására. CRC.
Modem
Olyan eszköz, amely egy (digitális) bitsorozatot analóg átviteli csatornán történő átvitelre alkalmas analóg
jellé alakít át (modulál), illetve a vett analóg jeleket (digitális) bitsorozattá alakítja vissza (demodulál).
Sebessége szerint megkülönböztetünk kis-, közepes-, és nagy sebességű modemet. Működése során a
bitsorozatot ábrázoló jellel modulálja a hordozó frekvenciát, és ezt a modulált jelet kiadja az átviteli vonalra,
illetve a beérkező frekvenciamodulált jelet demodulálja. A MODEM szó a MOdulátor/DEModulátor szavak
összevonásából származik.
ISDN
Az ISDN telefon a 20. sz. végén használt modern digitális telefon. Az ISDN (Integrated Services Digital
Network) angol rövidítés, jelentése integrált szolgáltatású digitális hálózat.
A fejlett országok telefonközpontjai már digitális rendszerben működtek, a hálózat digitalizálását viszont
csak hosszú idő alatt lehet megvalósítani elsősorban fényvezető kábelekkel. Egy olyan átmeneti megoldást
kellett találni, mely alkalmas a digitális rendszerre hagyományos kábelekkel is. Ez volt az ISDN, mely
tulajdonképpen egy négyvezetékes összeköttetés hagyományos kábelen. A felhasználói (előfizetői) oldal egy
csatlakozó dobozban végződött. Ide kellett bedugni az ISDN telefont (a hagyományos nem jó), amely csak
szerkezetében tér el a régiektől. További csatlakozási lehetőség volt fax, internet és videotelefon részére. Ez
utóbbi használata kizárja a többi egyidejű használatát, a telefon, fax és internet szolgáltatásból egyidejűleg
bármely 2 használható. A digitális fax működése is eltér a hagyományostól, a gép felismeri a karaktert (ha
szöveges a dokumentum) és csak annak kódját továbbítja digitálisan. Tehát szöveg küldése vagy fogadása
gyorsabb, közben ráadásul telefonálni vagy internetezni is lehet.
Átkapcsolásra nincs szükség, ha fax hív, automatikusan a fax kapcsolódik. Az ISDN vonalnak 4 egymásután
következő telefonszáma van, valamint különböző csengetések is beprogramozhatók.
ATM
Az ATM rugalmas és testreszabható megoldást nyújt a minőségi szolgáltatások iránti egyre fokozódó
igények kielégítésére olyan hálózatok esetében, amelyek többféle információtípust (adatot, hangot és valós
idejű kép- és hanginformációt) is támogatnak. Az ATM segítségével mindezek az információtípusok
egyetlen hálózati kapcsolaton keresztül továbbíthatók.
Az ATM definíciója
Aszinkron adatátviteli mód (ATM) – egymással kapcsolatban álló technológiákat, köztük a szoftvert, a
hardvert és a csatlakozáshoz szükséges eszközöket jelöli. Az ATM különbözik a jelenlegi LAN- és WAN-
technológiáktól, hiszen kifejezetten a nagy sebességű kommunikáció támogatására tervezték. Az ATM
lehetővé teszi, hogy a hálózatok a leghatékonyabban használják ki a sávszélességet mint erőforrást,
miközben fenntartja a szigorú szolgáltatási követelményekkel rendelkező felhasználók és programok
számára a szolgáltatás minőségét (QoS).
Az ATM alapkomponensei a végponti számítógépek, az ATM-hálózathoz csatlakoztatott számítógépek,
valamint azok az ATM-kapcsolók, amelyek összekötik a végponti számítógépeket és biztosítják az adatok
sikeres továbbítását.
Aszinkron – a rendelkezésre álló sávszélesség nincs felosztva időzítő mechanizmus vagy óra által
szinkronizált rögzített csatornákra vagy tárolóhelyekre. Az aszinkron kommunikációs módszert használó
eszközök között nincs kapcsolat abban a vonatkozásban, hogy milyen sebességgel képesek küldeni és
fogadni az információt. A küldő és a fogadó saját fizikai korlátaik és a hálózati információáramlás
fenntartására való képességük figyelembe vételével egyeztetést végez az adatátviteli sebességet illetően.
Átviteli mód – a küldő és a fogadó közötti információáramlás módját jelöli. Az ATM esetében a
továbbítandó adatok strukturálása és felosztása a kis méretű, fix hosszúságú cellákra vonatkozó koncepció
alapján történik. Azzal, hogy nem a legtöbb létező hálózat esetében alkalmazott változó hosszúságú
csomagküldési mechanizmust használja, az ATM biztosítja, hogy a kapcsolatok egyeztetése és kezelése
során egyetlen adattípus vagy kapcsolat se sajátíthassa ki az adatátviteli útvonalat.
Az ATM előnyei
Az ATM használata a következő előnyökkel jár:
 Nagy sebességű kommunikáció
 Kapcsolatorientált, a telefonos hálózathoz hasonló szolgáltatás
 Gyors, hardver alapú átkapcsolás
 Egyetlen univerzális, más egységekkel együttműködni képes hálózati adatátvitel
 Egyetlen hálózati kapcsolat, amely megbízhatóan alkalmazható hang, kép és adat továbbítására
 A hálózati sávszélesség rugalmas és hatékony lefoglalása
DSL
Hagyományos rézdrótokon keresztüli nagysebességű adatátvitelre képes technológiák gyűjtőfogalma.

A DSL technológiák a hagyományos vonalkapcsolt telefonos megoldásokkal szemben, amelyek a hívó és a


tárcsázott végpont között alakítanak ki egy áramkört, kizárólag a végállomás és a telefonközpont között
építenek fel kapcsolatot, amely jóval zajmentesebb és így nagyobb sebességű kommunikációt tesz lehetővé.

Ezen kívül a DSL kapcsolatokon az ISDN-hez hasonlóan már eleve digitális kommunikáció zajlik a
telefonközpont és a végkészülék között, így külön modemre nincs szükség a számítógép csatlakoztatásához.

A különböző DSL technológiák a legelterjedtebb szélessávú hozzáférési módok közé tartoznak a fejlett
országokban.
17. A számítógép hálózatok architektúrája, az OSI-modell (rétegek, protokollok, rétegszolgáltatások). A
TCP/IP protokoll (feladata, rétegei, információ-áramlás, címzés, útválasztás).

A számítógép hálózatok - a megvalósításuk bonyolultsága miatt - tehát rétegekre osztódnak. Felmerül a


kérdés. Mik legyenek az egyes rétegek feladatai és azok határai hol legyenek?
Több világcég megalkotta a saját elképzelései alapján a saját hálózati architektúráját, de az
eltérések miatt egységesíteni kellett, amit csak nemzetközi szinten lehetett megoldani. Ez a szerep
az ISO-ra (International Standards Organization -Nemzetközi Szabványügyi Szervezet) hárult.
Ez a szervezet nem csak a számítástechnikában, hanem az élet más területein is igyekszik szabványokat
teremteni, mint pl. a csavargyártásban. A hálózatokra vonatkozó rétegmodellt 1980-ban fogalmazta meg
OSI (Open System Interconnection) néven. Ez viszont nem szabvány, hanem csak egy ajánlás. Mindössze
csak azt mondja meg, hogy milyen rétegekre kell osztani egy hálózatot és ezen rétegeknek mi legyen a
feladatuk. Nem kötelezõ betartani. A megvalósított rendszerekben egyes rétegei szinte teljesen üresek,
másokat tovább kellett osztani zsúfoltságuk miatt. Sok hiányossága ellenére a mai napig alapnak tekintik a
gyártók.
Az OSI referencia modell szerint egy hálózatot 7 rétegre osztunk.

A mai modern számítógép hálózatok tervezését strukturális módszerekkel végzik, vagyis a hálózat egyes
részeit rétegekre (layer) vagy más néven szintekre (level) szervezik, melyek mindegyike az előzőre épül. Az
azonos szintű egységek csak egymással kommunikálnak. E kommunikáció szabályait protokollnak
nevezzük. Ezen rétegek és protokollok halmazát hálózati architektúrának nevezzük. (OSI Open System
Interconnection.)
Szintjei:
• 1. alkalmazási réteg: széles körben igényelt szolgáltatásokat tartalmaz. (pl. felhasználói alkalmazás
pl. megírom a levelet a levelező program segítségével.)
• 2. megjelenítési réteg: tömörítést, rejtjelezést végezhet (pl. ellátom digitális aláírással vagy
titkosítom a levelemet, hogy illetéktelenek ne nézegethessék)
• 3. együttműködési réteg: lehetővé teszi, hogy két PC felhasználói kapcsolatot létesítsen egymással
(p. kapcsolatba lépek azzal a számítógéppel ami majd továbbítja a levelemt. Novell TCP/IP)
• 4. szállítási réteg: feladata a végpontok közötti hibamentes átvitel biztosítása, sz összeköttetések
felépítése és bontása, csomagok sorrendhelyes elhelyezése. (megbízható nyugtázott átvitelt kérek).
• 5. hálózati réteg: a kommunikációs alhálózatok működését vezérli. Feladata az útvonalválasztás a
forrás és a célállomás között.
• 6. adatkapcsolati réteg: megfelelő méretűre tördeli az adatokat és előkészíti a legközelebbi megálló
felé történő továbbításra (hardver adatkapcsolati réteg pl. ethernet kártya)
• 7. fizikai réteg: a bitek kommunikációs csatornába bocsátásáért felelős, csatlakozások elektromos és
mechanikai definiálása.

TCP/IP protokoll:

A TCP/IP nem más mint egy protokollkészlet, amelyet arra dolgoztak ki, hogy hálózatba kapcsolt
számítógépek megoszthassák egymást között az erőforrásokat. A fejlesztés az ARPAnet köré csoportosult
kutatók munkája. Valószínűleg az ARPA-net a legismertebb TCP/IP alapú hálózat.

A TCP/IP protokoll két alrendszerének az alábbi feladatai vannak:


1. TCP a küldő számítógépen a továbbítandó adathalmaz feldarabolása adatcsomagokra, és az
adatcsomagok címzése. Az adatokat fogadó számítógépen pedig, a kapott adatcsomagok
összerakása, és így az eredeti adathalmaz előállítása.
2. IP az adatcsomagok irányítása, a kommunikációban résztvevők azonosítása.

Szintjei:

1. Alkalmazási szint: itt vannak a felhasználói és a hálózati kapcsolatokat biztosító programok.


2. Hoszt-hoszt réteg (tarnsport): az OSI modell szállítási hálózati részének felel meg. A létesített és
fenálló kapcsolat fenntartását biztosítja. Két rétegprotokollból áll a TCP azaz a továbbítást
szabályozó eljárás, a másik az összeköttetésmentes szállítási protokoll az UDP.
3. Hálózatok közötti (Internet): az OSI modell hálózati rétegének felel meg, ez a réteg végzi a
csomagok útvonal kijelölését a hálózatok között. Ennek a rétegnek a protokollja az IP másként, az
üzenetvezérlő protokoll cím meghatározó eljárása, a foglalt címet meghatározó eljárás. A rétegben
előforduló események és hibák jelzésére szolgál az ICMP Internet vezérlőüzenet protokoll.
4. Hálózati elérési: (Network Interface): az OSI modell két alsó szintjének felel meg, és ez biztosítja
a kapcsolatot a csomópontok között (pl. Ethernet, Token-Ring, Token-Bus, PPP)

Információ áramlás:

A TCP a kapcsolatban lévő gépeken futó folyamatok kommunikációját biztosítja. Fogadja a tetszőleges
hosszúságú üzeneteket a felhasználói folyamattól és azokat maximum 64 kbájtos darabokra vágja szét.
Ezekhez fejlécet fűz, majd ezeket a darabokat egymástól független datagramokként küldi el. A hálózati réteg
sem azt nem garantálja, hogy a datagramokat helyesen kézbesití, sem a megérkezett darabok helyes
sorrendjét.
A TCP feladata az, hogy időzítéseket kezelve szükség esetén újraadja őket, illetve hogy helyes sorrendben
rakja azokat össze üzenetté. Minden TCP által elküldött bájtnak saját sorszáma van. A sorszámtartomány 32
bit széles, vagyis elegendően nagy ahhoz, hogy egy adott bájt sorszáma egyedi legyen.

Címzés:

A gépek egyedi azonosítására szolgál a címzés mechanizmusa. A jelen keretek között az Ipv4-es szabvány a
legelterjedtebb IP szabvány Az Ipv6-os bevezetés alatt áll. A címek 32 bitesek és három részre osztahtóak.

Előtag: ez azonosítja a címosztályt. A címosztály mutatja meg, hogy az előtag után hány bitet kell hálózati
címként, és hány bitet kell host címként értelmezni.

Network Adress: (hálózati cím) az egyes hálózatok megkülönböztetésére szolgál, valamint a központi
adminisztrációt segíti elő, azaz ne lehessen két gépnek azonos IP címe. A hálózati címet központilag kell
igényelni, és központilag utalják ki sz igénylőnek.

Host Adress: a 32 címbit maradékát teszi ki. Ezt szabadon állítja be a címtartomány igénylő a saját gépein.

Az Ipv4 öt címosztályt definiál, de tulajdonképpen csak három címosztályt használnak.


• A osztályú címtartomány több mint 16 millió állomás címzésére alkalmas, formája A.0.0.0
legfeljebb egy óriási multi kaphat ilyet.
• B osztályú címtartomány több mint 65 ezer állomás címzésére alkalmas formája A.B.0.0 ez is
kitüntetett cím.
• C osztályú címtartományban 254 állomás címezhető meg, formája A.B.C.0 .

Ú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 az útvonal választó az a számítógép, amely ezt
végrehajtja (IMP)

Az útválasztási táblák tárolják az információt az elérendő csomópontokról és azok elérési útvonalairól.

Ha két gép egyazon lokális hálózaton van, akkor útvonal kiválasztás nélkül közvetlen (direkt) összeköttetés
létesíthető köztük.

Különböző hálózatok közötti közvetett (indirekt) útvonal kiválasztásánál először a feladónak meg kell adnia
azt az útválasztót, amihez a csomagot (datagramot) küldi. Majd az útválasztó fogja (esetleg újabb
útválasztókon keresztül) a cél-hálózatra továbbítani a datagramot.
18. Lokális hálózatok szabványos magvalósítása (Ethernet, vezérjeles sín, vezérjeles gyűrű):
protokollok, közeg-hozzáférés módszerek, átviteli közegek, fizikai egységek.

A számítógép hálózatok egyik legdinamikusabban fejlődő területe a kisebb helyi hálózatok, azaz a lokális
hálózatok. Hatékonyan lehet felhasználni a rendszer erőforrásait, nem kell minden programot és adatot egy
gépen tartani a munkához, és amennyiben szükséges megoldható, hogy egy időben több munkaállomásról
tudunk azonos adatokon dolgozni. A perifériák száma csökkenthető, valamint nagyon hatékony
kommunikáció valósítható meg a munkatársak között.

A lokális hálózati szabványok kidolgozása itt is egy „de facto” szabvánnyal indult, amelyet a XEROX cég
fejlesztett ki, és nagyon gyorsan elterjedt. A szabvány kidolgozásakor a gyártásautomatizálásban érdekel
képviselő fő szempontja, hogy a gyártásban részvevő robotok „real time” idejű működésben legyenek
összekötve. Erre az akkori megoldások legtöbbje alkalmatlan volt, így esett a választás két már akkor is
létező szabvány, az IBM által kifejlesztett vezérjeles gyűrű és vezérjeles sín megoldásaira. Ilyen módon
három szabványt fogadtak el, melyekre együttesen az IEEE 802-es szabvány részeiként hivatkoznak. A
szabványokat részekre osztották:

• 802.1: az interfész primitíveket írja le


• 802.2: az adatkapcsolati réteg felső részét, az um logikai kapcsolatvezérlés al-rétegét definiálja.
• 802.3: az Ethernet leírása.
• 802.4: a vezérjeles sín leíráa.
• 802.5: a vezérjeles gyűrű leírása.

Az IEEE 802 tulajdonképpen az OSI modell alsó két rétegében felállított szabványeljárások együttese.

Fizikai réteg: az IEEE 802 három olyan fizikai közeget szabványosított, amelyeket az architektúra fizikai
rétegében használhatnak: a sodort érpár, a koaxiális kábel és az optikai kábelt. A fizikia szabvány így
megadja a kábel és az átvitel típusára, a kódolás módjára és az adat sebességére vonatkozó előírásokat. A
fizikai réteg felelős a két berendezés közti fizikai összeköttetés létrehozásáért megszüntetésért, valamint az
átviteli közegen keresztül bitek átviteléért. Meghatározza az adatkódolást, dekódolást, vezér az eszközök
időzítését.

Közeghozzáférés al-réteg: a lokális hálózatokban lévő eszközök mindegyike a közös fizikai csatornán való
hozzáférésért verseng. Mivel a LAN kialakításokban ezen a szinten számos hozzáférés-vezérlési módszert
használnak, ütközéses és ütközés mentest. A szabvány ezek közül a CSMA/CD, a vezérjeles gyűrűt és a
vezérjeles sín hozzáférés módszerét választotta szabványául.

Logikai kapcsolatvezérlési al-réteg: ez a réteg a felette álló rétegeknek nyújt szplgáltatást ugyanolyan
módon, ahogy azt a hagyományos adatkapcsolati protokoll nyújtje a távolsági hálózatban. Az OSI
referenciamodellt követő LAN kialakításban, a logikai kapcsolatvezérlés feletti réteg maga a hálózati réteg.
Felel az állomások közötti adatblokkok cseréjéért. Ahhoz, hogy meg tudják különböztetni az ugyanazon
állomás által létesített cseretípusokat, bevezették a szolgáltatás-hozzáférési pont fogalmát, ami az
adatcserében résztvevő egyedi elem azonosításáért felel.

Ethernet:
Az Ethernet hálózaton mielőtt egy állomás adni akar, belehallgat a csatornába. Ha a kábel foglalt, akkor az
állomás addig vár, amíg az üressé nem válik, máskülönben azonnal adni kezd. Ha egy üres kábelen két vagy
több állomás egyszerre kezd el adni, ütközés következik be. Minden ütközést szenvedett keretű állomásnak
be kell fejeznie adását, ezután véletlenszerű ideig várnia kell, majd az egész eljárást meg kell ismernie. Az
Ethernet hálózat átviteli sebessége a jelenleg még legtöbbet használt rendszerekben 10/100/1000 Mbit/s
sebességű. Ez persze nem azt jelenti, hogy a hálózatnak ez minden körülmények között az átviteli sebessége,
hiszen egy ilyen hálózat a lehetséges terhelésének csak 60%-án üzemeltethető ésszerűen.

Az Ethernet hálózaton többféle kábeltípus használható:


• vékony koaxális kábel
• vastag Ethernet kábel (erősebb külső zavarok esetén)
• csavart érpár
• optikai kábelekkel

A jelenlegi Ethernet kábelezési technika az üvegszálas gerincvezetéket részesíti előnyben, amelyhez


jelismétlőkön keresztül csavart érpárokkal csatlakoznak a számítógépek, csillag topológiát formálva.
Az Ethernet rugalmasságát növelik a hubok HUB. Ezek az egyik portjukon vett keretet bit-ről bitre
átmásolják a másik portjukra, mintegy meghosszabbítva ezzel az elektromos jellemzők miatt rövidre
korlátozott szegmenst (marha jó:))) szóval az elektromos áram jeleinek frissítését végzik, így nagyobb
távolságban is elmegy a jel). Természetesen az ütközéseket továbbra is időben kell észleni, ezért a
jelterjedési idő nem lehet hosszabb mint 64 byte elküldésének ideje, így négy repeater (HUB) helyezkedhet
el.

A hatékonyságot BRIDGE-k közbeiktatásával fokozhatjuk, ezek csak az egyik szegmensből a másikba


irányuló jeleket engedik át így jelentősen csökken az ütközések száma, ugyanis szétválasztja a szegmensek
forgalmát.
Sajnos az osztott közeg IEEE 802 hátrányi egyre inkább megmutatkoznak, (amikor kedves kollégánk intezív
filmletöltési akcióba kezd, majd ezzel párhuzamosan mások esetleg nagy méretű fájlok másolását végzik,
akkor a hálózat elviselhetetlenül lelassul) ezen a hálózatok szegmentálásáva segíthetünk. így terjedőben
vannak az olyan megoldásom ahol az egyre kisebb szegmensek felállítása a tendencia. Erre a problémára
kínálnak megoldást a SWICH-ek. Ezek funkciójukban tulajdonképpen multipot bridgek-k, ám képesek nem
blokkoló módon továbbítani a kereteket.

A SWITCH-nek szinte mindig van egy vagy több nagy sebességű portja is melyen át egy nem Ethernet
gerinchálózatra csatlakozhat, így az egyes munkaállomások egymással a switch-en keresztül
kommunikálnak, a külvilággal pedig a nagy sebességű gerinchálózaton át

A LAN-ok szervezésében is fejlődő tendenciák mutatkoznak. Mivel egy porton gyakran csak egy állomás
található, egy sor biztonsági funkció implementálható. Megadhatjuk pl., hogy ki kinek küldhet keretet, így az
állomások bár egy LAN-on vannak, mégis leválaszthatjuk egymásról és elkülönített virtuális LAN-okba ún.
VLAN-okba szervezhetjük őket. Ez nem csak a biztonságot de a hatékonyságot is növeli.

Adatkapcsolati protokollok:

Két állomás egyirányú (szimplex), váltakozó irányú (fél-duplex) vagy egyidejű kétirányú (duplex)
üzemmódban kommunikálhat egymással.

Szimpelx: ez a protokoll igen egyszerűen működik. Az adatátvitel mindig csak egy irányban, az adótól a
vevőhöz folyhat, csak egy irányban továbbítódnak az adatok, tehát az adó csak adhat, a vevő csak fogadhat
adatokat. Nincs meghatározva az átviteli sebesség az adót követi a vevő, ez azt jelenti, hogy hálózati rétegük
mindig készen áll, kerethiba nem fordulhat elő.

Fél-duplex: előfordul, hogy a vevő nem képes olyan sebességgel feldolgozni a kapott infprmációt, ahogyan
azt az adó küldi, ezért valamilyen módon le kell lassítani az adót. Ez úgy lehetséges ha vevő képes nyugtát
küldeni az adónak, hogy megkapta a kerete és feldolgozta azt. Tehát az adónak várnia kell, amíg valailyen
nyugtát nem kap.
Full-duplex: a gyakorlatban az adatátvitel kétirányú. Egyazon csatornán küldi az adó az adatkereteket és
ugyan ott kapja a nyugtakereteket. 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ó. Ennél a protokollnál egy időben több adatkeret is
tartózkodhat a csatornán, ez a csúszóablakos protokoll. 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ó listáján az elküldött de még nem nyugtázott keretek szerepelnek, mikor egy nyugta megérkezik a
vételről, a listán ez törlésre kerül, majd egy újabb keret kerülhet a csatornába.

Megsérült keret érkezésekor két lehetőség kínálkozik az ismételt vételre. Hibás keret érkezésekor a
következő kereteket nyugtázatlanul dobja el a vevő, így kényszeríti ismételt küldésre. A másik esetben a
vevő eltárolja a hibás kivételével a kereteket, viszont nyugtát nem küld róla, így az adó képes a hibás keretet
ismételten a csatornára küldeni.

Közeg-hozzáférési módszerek:

Üzenetszórásos csatornával rendelkező hálózatok esetében ténylegesen egy kommunikációs csatorna van és
ezen az egy csatornán osztozik az összes hálózatba kapcsolt számítógép. Ehhez az egy csatornához kell
minden állomásnak hozzáférni, ami az adást jelenti voltaképpen mivel a vétel nem probléma, mivel minden
állomás veszi a többi adását és eldönti neki szól-e

Véletlenszerű átvitelvezérlés: minden állomás a csatornán véletlenszerűen kezd el forgalmazni, ez akkor jár
sikerrel, ha csak egy adó forgalmaz, ellenkező esetben ütközés történik és az adás nem lesz sikeres. Erre a
problémára dolgozták kis a CSMA/CD eljárást. Ennek a módszernek a lényege, hogy mielőtt egy adó
forgalmazni kezd, belehallgat a csatornába és csak akkor kezdi el munkáját ha a csatorna üres. Ha mégis
egyszerre két csatorna tenné ugyan ezt akkor ütközés keletkezik, ezt viszont azzal kompenzálják, hogy ha
nem sikerült az átvitel, akkor egy véletlenül választott időponton belül nem kezdenek újra forgalmazni.

Osztott átvitel-vezérlés: ez a módszer kiküszöböli az ütközéseket oly módon, hogy kiosztja a forgalmazás
megkezdésének jogát egy időosztás alapján, ami körbe-körben jár az egyes állomások között (CSMA/CA)

Két szokásos megvalósítása:

Vezérjeles sín:(Token Bus)

Fizikailag a vezérjeles sín egy lineáris vagy fa elrendezésű kábel, amelyre állomások vannak csatlakoztatva
logikailag gyűrűbe szervezett módon. Mindegyik állomás ismeri a szomszédjainak címét. Amikor a gyűrűt
üzembe helyezik, elsőként a legmagasabb sorszámú állomás küldhet üzenetet. Ez az üzenet tulajdonképpen a
vezérjel. Két értéke lehet: szabad vagy foglalt. Ha egy állomás veszi a vezérjelet, és azt szabadnak találja,
üzenettovábbításra van lehetősége. Ha van elküldendő üzenete, akkor a vezérjelet foglaltra állítja, és azt
hozzáfűzve az üzenethez, elküldi a címzett részére. A vezérjel állomásról állomásra továbbítása egy logikai
gyűrűt képez. Helyi hálózatokra vonatkozó szabványát az IEEE 802.4 szabvány alatt deklarálták.
Vezérjeles gyűrű: (Token Ring)

Az IEEE 802.5 szabványa a vezérjeles gyűrű. E topológiájú hálózatok esetében a leggyakrabban használt
hozzáférési módszer a vezérjel továbbításos eljárás, amelynek során 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, és az üzenettel küldi
tovább vagy kivonja a gyűrűből. 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.

Központosított átvitelvezérlés: ebben az esetben egy állomás irányítja a hálózatot. Ez a vezérlő berendezés
meghatározza a többi állomás számára, hogy mikor van joga üzenetet küldeni, az állomások figyelik ezt a
berendezést.
19.) Az operációs rendszer erőforrás-kezelőjének feladat. A holtpont és kezelésének stratégiái.
Biztonságos állapot. A szemafor használata a termelő-fogyasztó folyamatok esetében.

Az erőforrás-kezelő a rendszermag azon része, amely az erőforrások elosztásáért felelős. 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ő
folyamatokhoz. 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. Vannak esetek mikor a folyamat megszűnik mielőtt, felszabadulnának erőforrásai
(hiba esetén).

Előfordulhat, hogy az 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
hibaüzenetet kap a rendszermagtól. Ha az igény jogos de nem áll rendelkezésre szabad erőforrás, akkor az
igény várólistára kerül.

Megállapíthatjuk, hogy az erőforrás kezelő gondoskodik a számítógép erőforrásainak hatékony, gazdaságos


elosztásáról, illetve az erőforrások használatáért vívott versenyhezetek kezeléséről.

Holtpont: ha több folyamat egy olyan erőforrás felszabadulására vár, amit csak egy ugyancsak várakozó
folyamat tudna előidézni.

Ez abban az esetben fordul elő ha folyamat erőforrás hozzáférését semmilyen módon nem szabályozzuk.
Mikor egy folyamat igénnyel jelentkezik kielégítjük, mikor nincs szabad erőforrás várakoztatjuk, csakhogy
ez nem küszöböli ki azt az esetet amikor két folyamat kölcsönösen lefoglalva tart egy-egy a másik számára
is szükséges erőforrást, így a folyamatok körkörösen egymásra várakoznak, de a lefoglalt erőforrást nem
engedik el még meg nem kapják az igényelt jogot a munkájuk befejezéséhez szükséges erőforrásra.

Ez az eset a túlzottan liberális megközelítésű rendszerkezelés sajátja mely engedi egyszerre több folyamat
versengését az erőforrásokért. Ez a párhuzamosságot megszüntetve megelőzhető.

Kiéheztetés: mikor egy folyamat az erőforrás kezelő stratégiája miatt beláthatatlan ideig nem jut
erőforráshoz.

Amikor megtiltjuk, egyszerre több folyamat is rendelkezzen erőforrással. Ez esetben az erőforrással


rendelkező folyamat sohasem várakozik, minden igénye kielégíthető, a többiek pedig várnak, hogy
befejeződjön, mert akkor ők jutnak az összes erőforráshoz. A módszer a lehetőségét is megszünteti a
holtpont kialakulásának. Viszont többnyire 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 jóval súlyosabb. Amíg az egyik folyamat használhatja az összes erőforrást, a várakozó
folyamatok elszaporodhatnak a várakozási sorban. Az erőforrások felszabadulása után az erőforrás kezelő
valamilyen algoritmus alapján dönt arról, hogy melyik folyamat következik. Ha ez a stratégia nem kellően
demokratikus, vannak kiemelt és háttérbe szorított folyamatok (prioritásos módszer), előfordulhat, hogy egy
folyamat hiába áll sorba, mindig akad egy, amelyik megelőzi. Ilyenkor még csak megbecsülni sem lehet,
hogy a hátrányos helyzetű folyamat mikor futhat. Ez kiéheztetés állapotához vezet.

Holtpont kezelésének stratégiái:

A szélsőséges liberalizmus és a szélsőséges konzervativizmus egyaránt veszélyekkel jár. Alapvetően két


-féle stratégia választható kezelésükre:
• megelőzés: meg kell előzni a holtpont kialakulásának lehetőségét,
• felszámolás: figyelni kell, hogy kialakult-e holtpont és ha igen fel kell számolni.

Alapvetően a megelőzés kevesebb veszteséggel jár mint a kialakult holtpont megszüntetése, de nem minden
esetben alkalmazható.
Holtpont kialakulásához vezető körülmények:

• kölcsönös kizárás van: vannak olyan erőforrások amik nem megoszthatóak,


• várakozás közben lekötés történik: erőforrásra várakozó folyamatok lekötve tarthatnak
erőforrásokat,
• rablás nincs: vannak olyan erőforrások amik erőszakkal nem elvehetőek,
• ciklikus várakozás lehetséges: az erőforrásra várakozó folyamatok körkörösen egymásra
várhatnak.

I. Megelőző stratégiák: könnyű belátni, hogy ha a négy feltétel legalább egyikének kialakulását
megakadályozzuk, nem alakulhat ki holtpont.
A feltételek vizsgálata során az is kiderül, hogy a kölcsönös kizárás és a rabláskizárása összetevőivel
nem tudunk manipulálni, mivel ezek a rendszer sajátosságai.
1. Egyetlen foglalási lehetőség (One-shot allocation): ez a stratégia a várakozás közbeni
erőforrás lekötést tiltja meg azáltal, hogy a folyamatok csak egy lépésben induláskor
foglalhatják le a szükséges erőforrásokat. Ha bármelyik szükséges erőforrás hiányozna a
folyamat várólistára kerül. Holtpont nem alakulhat ki mivel a futó folyamatok nem
kényszerülnek várakozni, és valamivel rugalmasabb, mint a konzervatív eljárás, mivel egy
időben több folyamat is futhat. Viszont az erőforrás kihasználás szempontjából pazarló, mivel
mindig vannak szabad erőforrások a rendszerben.

Kicsit finomított változatában a futása során többször is igényelhet erőforrást, de csak azzal a
feltétellel, ha az előzőleg birtokolt összes erőforrást elengedte.
2. Rangsor szerinti foglalás (Hierarhical allocation): egy folyamat csak olyan osztályból
igényelhet erőforrást, melynek sorszáma magasabb, mint a már birtokolt erőforrások osztálya.
Ez a stratégia 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 folyamatnak egy osztályon belül több erőforrásra van szüksége akkor azt
csak egyszerre igényelheti. Tulajdonképpen azon alapult, hogy a folyamatok csak ramgsor
szerinti növekvő sorrendben igényelhetnek erőforrásokat.

A stratégia hatékonyságát jelentős mértékben befolyásolja a sorszámok kiadásának módja. Ha


egy folyamatnak a meglévőné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.
3. Bankár algoritmus (Banker's algoritm): sohasem elégítünk egy igényt ha az nem biztonságos
állapotot eredményezne. Ez az algoritmus úgy kerüli el a holtpont kialakulását lehetőségét, hogy
a rendszert mindig biztonságos állapotban tartja. Egy állapotot csak akkor tekint biztonságosnak,
ha létezik legalább egy olyan sorozat, amely szerint az összes folyamat erőforrás igénye
kielégíthető. 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
egy rendszerhívás által be is jelentik. A beérkezett erőforrás igény alapján a rendszer kiszámítja,
hogy ha kielégítené ezt a kérést a rendszer biztonságos állapotban maradna-e. Csak ebben az
esetben kezdi el. Ha egy folyamat visszaad erőforrásokat akkor az erőforrás kezelő végignézi a
várólistán lévő folyamatokat, hogy most már kielégíthető-e biztonságosan az igényük.

A módszer legnagyobb hátránya, hogy nem minden folyamat erőforrás igénye tudható előre.
Valamint sok az olyan eset amikor a kért erőforrás már felszabadult de az őt igénylő folyamat
mégsem kaptam meg a futási jogot mivel elképzelhető lett volna a holtpont kialakulása. Ez a
rendszer túlbiztosításra tör. Bonyolult időigényes számítást igényel.
II. Holtpont felszámolása: a megelőző stratégiáknak komoly elvi és gyakorlati problémái is vannak,
tehát ezek csak speciális esetekben alkalmazhatóak, ezért szükséges a holtpont felszámolás
stratégiáival is foglalkozni.
2. Holtpont detektálása: 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. Ezért időnként egy holtpont detektáló
algoritmust kel futtatni. Ez az algoritmus az erőforrás foglalási gráfot ellenőrzi. Mivel a minden
folyamat kérelménél való lefutás nagyon számításigényes lenne, ezért csak meghatározott
időintervallumokban futtatjuk le, bár így lehetnek holtpontok amik nem kerülnek detektálásra.
3. Holtpont megszüntetése: holtpont felszámoláskor mérlegelni szükséges, hogy mennyi
veszteséggel jár mikor felszámoljuk azokat.
▪ Melyikkel hány erőforrást nyerünk: célszerű olyan folyamatot választani ameliyk
megszüntetése sok erőforrást szabadít fel.
▪ Hány további erőforrást igényel még: amelyik sokat igényel még, esetleg több holtpont
kialakulást is előidézheti még.
▪ Mennyi a már elhasznált CPU idő: mennyi munkát veszítek el?
▪ Mennyi idő van még hátra a futásból: nem célszerű olyan folyamat választani ami már
majdnem kész.
▪ Ismételhető/ nem ismételhető: nem célszerű olyan folyamatot választani aminek munkája
nem ismételhető meg.
▪ Folyamat prioritása: célszerű kis prioritásút választani.
▪ Megszüntetése hány további folyamatot érint: nem olyat választunk ami több folyamattal
dolgozott együtt.
Tovább finomítható a módszer ha a folyamatoktól csak néhány erőforrást veszünk el. Vagy
holtpontba lévők közül néhányat egy olyan korábbi állapotból folytatjuk amikor még nem volt
holtpont. Ez viszont nagyon nagy tárigény lép fel.

Szemafor használata a termelő-fogyasztó folyamatok esetében:

Közös erőforrások azokat az erőforrásokat nevezzük, amelyeket egynél több folyamat szeretne egy időben
használni. Az ilyen erőforrások vezérlésekor különösen a nem megosztható, más néven kölcsönös kizárást
igénylő erőforrások esetében merülnek fel nehézségek. 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 megoldani, hogy egy kritikus szekcióban
mindenképpen csak egy folyamat tartózkkodhasson.

Tipikus esete a termelő fogyasztó probléma, ahol is a helyzetet egy szemafor beiktatásával oldják fel. Ez a
szemafor egy változó a memória olyan területén amit mind a fogyasztó, mind a termelő lát. Itt más csak egy
probléma vár megoldásra, kezelni kell azt az esetet amikor a két folyamat közel azonos időben kezdi el
vizsgálni a szemafor állapotát. Biztosítani kell, hogy a szemafor kiolvasása, vizsgálata és feloldása egy
művelet legyen úgynevezett oszthatatlan művelet legyen. Sok számítógép utasításkészletében találunk
olyan utasítást ami ezt a műveletsort valósítja meg.

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
a P primitív egy szemafor lefoglalását végzi, míg a V a felszabadítását méghozzá a szükséges várakozású
ciklus alkalmazása mellett.

Az olyan tárolók esetében ahol egy időben több adathalmaz is elhelyezhető, szükséges az úgynevezett
tárolásvezérlő szemafor. Mivel tele tár esetén szükségtelen a termelő folyamatnak versenyeznie, hiszem
nem tud több üzenetet küldeni a tárba, viszont a fogyasztó zavartalanul működhet.
20.) A magas, közbenső és alacsony szintű ütemezők feladata egy operációs rendszerben. A folyamatok
állapotai. Ütemezési algoritmusok.

Egy multiprogramozott operációs rendszer minden időpillanatban folyamatok egy csoportjának


végrehajtásával foglakozik, amelyeket egyetlen fizikai processzoron futtat. A multiprogramozás foka a
rendszerben egy adott pillanatban jelenlévő – tehát megkezdett de még be nem fejezett – folyamatok száma
az operációs rendszer egyik alapvető feladata az erőforrás-gazdálkodás és kiosztás. Két alapvető erőforrás a
CPU és a memória. Ezek kiosztása még együttműködő folyamatok esetén is általában a versengés elvén
történik, hiszen a folyamatok kódjában rendszerint nem jelenik meg külön utasítás ezek lefoglalására, illetve
felszabadítására.

Amikor egy folyamat létrejön a rendszerben, létrejön számára egy logikai memória és egy logikai
processzor, melyhez fizikai megfelelőket kell rendelni. A logikai memória létrehozása a fizikai rendszer
tekintetében azt jelenti, hogy a folyamat megkapja a fizikai tár egy részét, ahova a kódja és változói,
megfelelő kezdőértékekkel betöltődnek. A processzorért csak azok a folyamatok versenghetnek, melyek
következő végrehajtandó kódrésze a memóriában van.

A logikai processzorok látszólag párhuzamosan működnek. Valójában az egyetlen fizikai processzor


egyidejűleg egyetlen folyamat utasításait tudja végrehajtani. Ha a fizikai processzor elég gyakran átkapcsol
egy folyamat egy részletének végrehajtása után egy másik folyamatra akkor egy durvább időléptékben a
folyamatok futása párhuzamosnak látszik. A dolgot úgy is felfoghatjuk, hogy a rendszer legfontosabb egyedi
erőforrása a fizikai processzor, amelyt egyidejűleg egyetlen folyamat használhat, és amelyhez tartozik egy
várakozási sor, ahol a többi, processzorra váró folyamat tartózkodik. A processzor felszabadulásakor az
operációs rendszer választja ki valamilyen algoritmussal a sorban várakozók közül azt a folyamatot, amelyik
a következő időszakra megkapja a processzort.

Magas szintű ütemező: amelyik tipikus a kötegelt feldolgozást végző rendszerekben van jelen, és új jobok
végrehajtásának megérkezéséről (új folyamatok indításáról) dönt. Az elvégzésre váró munkák közül a
választás szempontja, hogy a rendszerben a CPU-intenzív és B/K folyamatok aránya optimális legyen
(optimális job-mix fenntartása). Jó tehát, ha a rendszernek van előzetes információja egy-egy munka CPU,
és B/K-igényéről.

Kitüntetett szerepe van a CPU-ütemezőnek, amit általában rövid távú ütemezőnek hívnak. (a rövid illetve
hosszú elnevezés a futási gyakoriságra utal). A hosszú távú ütemező általában akkor fut le, amikor egy job
végrehajtása befejeződik. A rövid távú ütemező pedig biztosan lefut, amikor egy processzorlöket
befejeződik. A két gyakoriság között nagyságrend különbség van.

Néhány rendszerben működik középtávú ütemező is, amelynek egyik szerepe a multiprogramozás fokának
változtatása jellegzetesen azokban a helyzetekben, amikor a memória válik a rendszer szűk
keresztmetszetévé, illetve ez a helyzet megszűnik. A középtávú ütemező észlelve a memóriaszűkét, egyes
folyamatokat felfüggeszt, memóriaterületüket a háttértárra menti és felszabadítja, átmenetileg kivonja őket
az erőforrásokért folytatott versengésből. A felfüggesztett folyamatok memóriaterületét a többi folyamat
használhatja. Később ha terhelés csökken, a felfüggesztett folyamatok visszatölhetők és folytathatják
működésüket. A felfüggesztendő illetve a visszatöltendő folyamtok kiválasztásának szempontja is a CPU-
intenzív és B/K-intenzív folyamatok kiegyensúlyozása lehet, ami már nemcsak előzetes információkra,
hanem a folyamatok korábbi viselkedésére is alapozhat. A középtávú ütemező akkor is felfüggeszthet
folyamatot, ha az várhatóan igen hosszú várakozásra kényszerül.

Folyamatok állapotai:

Futásra kész (ready): állapotban vannak azok a folyamatok, amelyeknek következő műveletét a CPU
bármikor végrehajtaná. Más szóval a CPU-n kívül minden más erőforrást birtokolnak, amire működésük
adott szakaszában szükségük van.

Futó (running): állapotban egy multiprogramozott rendszerben egyidejűleg egyetlen folyamat lehet,
amelyiknek az aktuális műveletét a CPU éppen végrehajtja.
Várakozó (waiting, blocked): állapotban vannak azok a folyamatok, amelyek nem tudják használni a CPU-
t, mert valamilyen feltétel teljesülésére várakoznak. Ilyen feltétel lehet például egy általunk kezdeményezett
B/K művelet befejeződése, együttműködő folyamatok esetén valamilyen szinkronizációs vagy
kommunikációs művelet végrehajtódása.

Állapotátmenetek:

Futásra kész futó állapotátmenet történik, amikor az operációs rendszer CPU-ütemezője


kiválasztja a folyamatot végrehajtásra. Új futó folyamat kiválasztása mindenképpen szükséges, ha az előző
folyamat befejezte működését, vagy várakozó állapotba került, hiszen ilyenkor a CPU felszabadul.
Futó futásra kész állapotátmenet két ok miatt fordulhat elő:
• az operációs rendszer elveszi a CPU-t a folyamattól (preemptív ütemezés). Amikor a CPU-ütemező
nem érkezés sorrendben hajtja végre a futásra kész folyamatokat, hanem például prioritás szerint,
akkor előfordulhat, hogy egy nálánál magasabb prioritású folyamat átlép várakozó állapotból futásra
kész állapotba. Ha prioritás azonnali érvényesítése fontosabb szempont, mint a CPU munkában
tartása, akkor ezzel kell folytatni.
• A folyamat lemond a CPU-ról (újraütemezést kér). Együttműködő folyamatoknál mikor egy
folyamat hosszú processzorlöketei közben lehetőséget ad más folyamatok futására.
Futó várakozó állapotátmenet akkor következik be, ha a folyamat olyan műveletet indított,
amelynek végrehajtása várhatóan hosszabb CPU tétlenséget okozna. (B/K, üzenetfogadások, ha az üzenet
még nem érkezett meg, stb.)
Várakozó futásra kész állapotátmenet történik, ha a folyamat által várt esemény bekövetkezik
(B/K befejeződik, Üzenet megérkezik, stb.).

Processzorütemezés:

A multiprogramozott operációs rendszerek alapjának a CPU-ütemezés tekinthető. A rövid távú ütemezés


feladata annak eldöntése, hogy a processzort melyik futásra kész folyamat kapja meg. Két alapvető fajtáját
különböztetjük meg. Preemptív ütemezésről akkor beszélünk, ha az operációs rendszer elveheti a futás jogát
az éppen futó folyamattól, futásra kész állapotba teheti, és egy másiknak adhatja át. Nem preemtív
ütemezésről viszont akkor van szó, ha a futás jogát nem veheti el az ütemező, hanem a folyamat egy általa
kiadott utasítás hatására állapotot nem vált.

Ütemezés bekövetkezése:
• a futó folyamat befejeződik
• egy folyamat felébred, futásra késszé válik
• a futó folyamat várakozni kényszerül
• a futó folyamat önként lemond a futás jogáról

Az első és a harmadik esetben mindig környezetváltás történik, hiszen a következő futó folyamat egészen
biztosan nem a korábban futott lesz.

Ütemezési algoritmusok:

Legrégebben várakozó (FCFS): nem preemptív algoritmus, amely a legrégebben várakozó folyamatot
választja ki futásra. Megvalósítása igen egyszerű, a futásra kész folyamatok egy várakozási sor végére
fűződnek fel, az ütemező pedig mindig a sor legelején álló folyamatot kezdi futtatni. Igen nagy lehet a
várakozási idő mivel egy hosszú löketű folyamat feltarthatja a sort

Körbeforgó (RR: Round Robin): preemptív algoritmus, amely az időosztásos rendszerek alapjának
tekinthető. Minden folyamat, amikor futni kezd, kap egy időszeletet (time slice). Ha a CPU lökete nagyobb
ennél, akkor az időszelet végén az ütemező elveszi a folyamattól a processzort. És futásra kész állapotúvá
tett folyamatot a futásra kész sorba teszi. Ha a CPU löket rövidebb az időszeletnél, akkor a löket végén a
rendszer folyamatait újraütemezzük, és a futó folyamat időszelete újraindul.

Nehéz az időszeletek megfelelő mértékének beállítása. Túl hosszú időszelet esetén ugyanis az algoritmus
átmegy FCFS algoritmusba, míg túl kicsi időszelet esetén megnő a környezetváltások száma.
Ökölszabályként elmondható hogy akkor kielégítő az időszelet, ha a CPU-löketek 80-% rövidebb időtartamú
ennél.

Prioritásos ütemezési algoritmusok: ezek közös sajátossága, hogy a futásra kész folyamatok
mindegyikéhez egy, a futás kívánatos sorrendjére utaló számot – priorítást (priority) – rendelünk. Az
algoritmus pedig a futásra készek közül a legnagyobbat választja. Ezek lehetnek időben állandóak (statikus),
vagy időben változóak (dinamikus) priorításúak.

Legrövidebb löketidejű (SJF): nem preemptív algoritmus, amely a futásra kész folyamatok közül a
legrövidebb becsült löketidővel rendelkezőt választja futásra. Komoly problémája, hogy a löketidők
általában nem ismertek.

Legrövidebb határidejű (SRFT): ez az algoritmus az SJF preemptív változata, ha egy új folyamat válik
futásra készé, akkor az ütemező megvizsgálja, hogy az éppen futó folyamat hátralevő löketideje, vagy az új
folyamaté a kisebb, és a rövidebbet indítja el. Egy futó folyamat megszakításához és egy másik elindításához
környezetváltásra is szükség van, ami szintén figyelembe kell venni.

Legjobb válaszarány (HRR): a priorításos algoritmusok nagy hátránya a kiéheztetés, ennek kivédésére
alkalmazzák az öregítés eljárását, ennek során a várakozó folyamatok priorítási szintjét egy beosztás alapján
emeljük a várakozási sorban.

Többszintű algoritmusok:

Sajátossága, hogy a futásra kész folyamatok nem egy, hanem több sorban várakozhatnak. Minden sorhoz
priorítás van rendelve és az ütemező csak akkor választ ki futásra kisebb priorítású sorból folyamatot, ha
nagyobb prioritású sorok üresek. Az egyes sorokon belül különböző kiválasztási algoritmusok működhetnek.

Statikus többszintű sorok (SMQ): ennél az algoritmusnál a folyamatokhoz statikus priorítás rendelődik,
azaz minden folyamathoz elindulásakor rendelünk valamilyen priorítást, amely a folyamat élete során nem
változik. (vagyis valamilyen kritérium alapján egy adott várakozási sorba soroljuk). Komoly hátránya hogy
az alacsony prioritással rendelkező folyamatok nagy várakozási időkre kényszerülhetnek, kiéheznek.

Visszacsatolt többszintű sorok (MFQ): az MFQ ütemezésnél a folyamatokhoz dinamikus prioritás


rendelődik. Ez az ütemezés tehát dinamikus, vagyis a folyamatok a prioritás hozzárendelésüknek
megfelelően dinamikusan átkerülhetnek egyik sorból a másikba. Az egyes sorokon belül általában
preemtptív algoritmusokat alkalmaz, kivéve a legkisebb prioritású sort, amelyen belül az ütemezés történhet
egy egyszerű FCFS által.

Az algoritmus a folyamatokat löketidejük alapján osztályokba sorolja és a rövid löketidejűeket részesíti


előnyben. A folyamatok indulásukkor általában a legmagasabb prioritású sorokban kezdenek, ha azonban
túllépik az időkorlátot, azaz futásukhoz nem elegendő egy időszelet, akkor az operációs rendszer csökkenti a
prioritásukat és eggyel lejjebbi (kisebb prioritású ám nagyon időszelethez társított FCFS-re épülő) sorba
kerül.
21.) Többfeladatos (multitasking) operációs rendszerek feladatai, felépítése. A tárvédelem feladata és
megvalósítása (privilégium szintek, jogosultságok, szegmensek, deszkriptorok, kapuk).

Ha egy rendszerben két (vagy több) önállóan működni képes eszköz van, akkor a munkafolyamatok
párhuzamosítására is lehetőség van. A B/K műveletek alatt központi egység hatékonyságát úgy lehet
növelni, hogy a számítógép egyszerre több munkát kapott. Tehát amíg a processzor az egyik program
számítási lépéseit hajtotta végre, a memória egy másik területére betöltődhetett az újabb munka illetve az
előző munka eredményeinek lemezre mentése alatt a processzor már az új feladaton dolgozhatott.

Egy ilyen átlapolt rendszer azonban csak akkor működik igazán hatékonyan, ha az egyszerre végrehajtott
munkák együttes priféria-idő igénye pontosan megegyezik az együttes CPU idő igényekkel. Ez a feltétel
azonban a legritkább esetben teljesül. Egy munkára vagy a periféria igény jellemző vagy a CPU igénye az
uralkodó. Kétféle program megfelelő aránya akkor biztosítható optimálisan, ha nem csak kettő, hanem több
programot tartunk a „kezünk ügyében”. A több program végrehajtása mellett szól az is, hogy munkák
nemcsak a futás elején és végén igényelhetnek B/K műveleteket, hanem futások során is, így ha az egyik
program éppen töltődik a másik pedig perifériára vár a CPU ismét feladat nélkül marad. Ezért célszerűenek
mutatkozott több feladat egyidejű kiszolgálása.

A többféle periféria megjelenése, valamint a több feladat egyidejű kezelése komoly, minőségi változásokat
követelt meg a számítógép működését vezérlő programtól, a monitor, mint kezelői felület mellett kialakultak
a vezérlőprogram által ellátandó alapfunkciók, amelyeket összefoglaló néven rendszermagnak nevezünk. A
kezelői felület, a burok (shell) és a Mag (kernel) együttese alkotja az operációs rendszert. Az operációs
rendszernek a következő feladatokat kell ellátniuk:
• eszközkezelők: a felhasználó programok elöl el kell fedniük a perifériák különbözőségét, egységes
kezelő 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 válasz: az oprá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özvezlenül
használhatják azokat.
• 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 oszlatni a processzor idejét, illetve vezérelnie kell a munkák
közötti átkapcsolás folyamatát
• 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 rendszervben se tegyenek kárt.
• Állomány és lemezkezelés: rendet kell tartania a hosszabb távra megőrzendő állományok között.
• Felhasználói felület: ennek segítségével a felhasználó közöli tudja a rendszermaggal kívánságait,
illetve annak állapotáról információkat szerezhet.

Tárvédelem feladata és megvalósítása:

Multiprogramozott környezetben meg kell teremteni annak a feltételeit, hogy az egyes folyamatok egymás
memóriaterületeit ne zavarják, még olyankor sem, ha például programhibát tartalmaznak. Vagyis ki kell
alakítani egy jól működő védelmi rendszert. Azonban a folyamatok közötti szeparálás nem szabad, hogy
teljesen zárt legyen, hiszen vannak olyan olyan esetek amikor több folyamat együtt akar működni, egy közös
adatterületen keresztül

tehát a jól működő védelmi rendszernek meg kell akadályozni az ártalmas hozzáféréseket, és ellenőrzött
körülmények között biztosítania kell a folyamat-közti kommunikációt.
Három szintjét különböztetjük meg:
• mikor védeni kell egy folyamat logikai egységeit egymástól.
• Mikor a felhasználói folyamatokat kell védeni egymástól, de biztosítani kell közöttük az igényelt
kommunikáció lehetődégét.
• Mikor védeni kell az operációs rendszert a felhasználói folyamatoktól.
A folyamatok logikai egységeinek védelme:

Tipikus programhiba mikor több adatot töltünk a veremtárba mint amennyit kiolvasunk (stack overflow-
verem túlcsordulás). Hasonlóan veszélyes helyzetet okozhat, ha például egy ugróutasítás rossz címről kezdi
el végrehajtani a feladatsort.

Ez ellen a program logikai egységeinek szegmentálásával védekezhetünk, ahol konkrétan ki kell jelölni a
program logikai egységeit. Ezt egy szegmentációs meghatározással lehetséges megvalósítani, ahol készítünk
egy kódszegmenst (az utasítások számára) egy vagy több adatszegmens és egy stackszegmenst. Ennek
alapján képes az operációs rendszer behatárolni, hogy az általunk definiált tartományban mozognak-e a
folyamataink. Ennek nyilvántartásához készíteni kell egy szegmensleíró táblát (segment descriptor table)
amely minden egyes szegmensről tartalmazza az adatokat. Megadja a szegmens kezdőcímét, hosszát és
típusát. A címek így két részből állnak össze, az első rész a szegmens nevét azaz sorszámát jelenti, míg a
második rész a szegmensen belüli helyéről tájékoztat.

Ezzel a módszerrel a folyamatok logikai részeit már védeni tudjuk egymástól. Az olyan programok számára
pedig amik menet közben módosítják működésüket pedig a szegmensmódosító utasítás bevezetésével
biztosíthatjuk.

A folyamatok védelme egymástól:

A szegmentálás bevezetésével jól el tudjuk különíteni a folyamatokat viszont nem megoldott az egymás
közti kommunikációjuk. Ebben az esetben a különböző folyamatok leírótábláiban kijelölünk közös
memóriaszegmenseket, amit mindkét kommunikálni kívánó folyamat használhat. A szegmenstábla adatait
kiegészítve egy bittel azt is megadhatjuk, hogy az adott folyamat hogyan használhatja a szegmenst.
Hozzáférési jog.

Mivel tulajdonképpen minden szolgáltatás amit egy gép nyújt (nyomtatás, képernyőre írás) egy szegmensen
belül található meg létrehoztak egy közös, úgynevezett globális leírótáblát GDT a minden folyamathoz
rendelt lokális leírótáblán felül.

Az operációs rendszer védelme (prioritások):

Az operációs rendszer folyamatainak célszerű speciális jogokat adni, amit más folyamatok nem kaphatnak
meg (pl. tudja módosítani más folyamatok leírótábláit) ezért célszerű, ha minden folyamathoz egy-egy ún.
prioritási szintet rendelünk. Emellett a szegmensleíró tábla sorait is egészítsük ki egy-egy új mezővel, ami
azt jelzi, hogy legalább milyen prioritási szinttel kell rendelkeznie egy folyamatnak ahhoz, hogy az adott
szegmenst használja.

A globális leírótáblában olyan szegmenseket sorolunk fel, amelyeket elvileg bármely folyamat használhat.
Most, ha minden itt szereplő szegmenshez egy prioritási szintet rendelünk, akkor ez úgy módosul, hogy a
szegmenst a rendszerben szereplő bármely, legalább adott prioritással rendelkező folyamat használhatja, de
más nem.

Öszsetett memóriakezelés: a gyakorlatban a szegmentálást és a lapszervezésű virtuális tárkezelést


együttesen alkalmazzák. A szegmentálást 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óriművelet – a szegmensfordítás kimenet lesz a lapozóegység bemenete. Végül a lapozóegység
kimenete adja meg a keresett memórirekesz fiziki címét az operatív memóriában.

You might also like