Professional Documents
Culture Documents
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 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.
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.
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ó.
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 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:
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.
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 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.
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.
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.
Akkumulátor:
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.
• 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.
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:
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
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
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é.
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.
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ó.
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 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.
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.
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:
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.
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.
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.
Cilinderek:
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 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ő
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.
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 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.
Működése:
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.
Sínvezérlé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.
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.
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.
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.
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.
• 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.
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.
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.
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.
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.
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ő
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ő
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 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.
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.
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.
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 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.
Szintjei:
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.
Útválasztás:
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:
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.
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)
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.
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.
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.
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:
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 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.
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.
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.
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.
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:
Processzorütemezés:
Ü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.
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.
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 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 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.
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.