Tartalmi kivonat
Számítástechnika tételek II. 28.1 Mi biztosítja a digitális rendszerek szinkron működését és hogyan ? M /209 A szinkron vezérlés: A sínre kapcsolt, az átvitelben résztvevő eszközök azonos ütemezés alapján dolgoznak. Az ütemezés történhet a vezérlőjelek azonos (pl. felfutó) élével, de lehetséges a jelek ellenkező (felfutó-lefutó) élével is vezérelni az egyes folyamatokat. A memóriaoldal ellentétes éllel való vezérlésével a tároló oldali ütemek száma csökkenthető. A sín ütemezése a processzor órajelével, vagy annak valamilyen leosztott értékével történik. Egyszerűbb működést eredményez, de tervezése sokkal hosszadalmasabb, mivel az egyes fázisok időtartamát szigorúan össze kell hangolni. Használata hasonló típusú eszközök alkalmazásánál előnyös Általában szinkronizált folyamatokat használnak. 28.2 Mi az assembler ? ELAMV /195 Egy gépre orientált, szimbolikus programozási nyelv. Vagyis olyan
formális gépi nyelv, amelynek utasításai egy gépi utasításrendszerhez közel állnak. Utasításainak mindegyike a forrásprogram egy-egy sora Az assembler program forrásprogram, bináris tárgyprogrammá való átalakításához használatos konverterprogram., vagyis az Assembler a forrásprogramon elvégzi a futtatáshoz szükséges előkészületeket: Lefordítja gépi kódra A szimbolikus címekből abszolút címeket állít elő Beépíti a könyvtári eljárásokat Összefűzi a szegmenseket Az egyes sorok négy részre, vagy négy mezőre oszthatók. 28.3 Sorolja fel az utasitásfeldolgozás elemi lépéseit ! 28.4 Utasításcímke Mnemonikus szimbólummező Operandusmező Magyarázat mező M /33,117 Utasításelőkészítés, -lehívás (fetching) Utasításszámláló regiszter tartalmának növelése Műveleti kód értelmezése, dekódolása és az operandus címének meghatározása Művelethez
szükséges adat(ok) előkészítése Végrehajtás (executing) Az eredmény elhelyezése Mire használhatók a logikai függvények ? M /20 Az aritmetikai műveletek elvégezhetőek néhány logikai művelet segítségével (ÉS, VAGY, kizáró VAGY, komplementálás). Az Aritmetikai és Logikai Egység is így végzi el ezeket a feladatokat 28.5 Flag regiszter, flag-típusok és szerepük a gép működésében. M /59 Egy művelet végrehajtásának eredménye alapján bekövetkező állapot jellemzőit tükrözi vissza egy-egy helyiértéke, bitje. Zero flag (az eredmény nulla volta) Overflow flag (a keletkezett számérték túl nagy értéke) Carry flag (átvitel keletkezése) Ha nagy a különböző funkciójú bitek száma, akkor szokták használni. 28.6 Ismertesse a számítógépek tárchierarchiájának elemeit, azok jellemzőit ! M /153 Elemei: Regiszterek: A processzorhoz legközelebb a regiszterek vannak, amelyek viszonylag
kevés (max. néhány 100 byte) adat befogadására alkalmasak. Ugyanakkor az elérési idejük a legkisebb (10-30 nsec) A mai processzorokban és különösen a RISC processzorokban, általában több tucat általános célú regiszter található, amelyek az ún. regisztertárat alkotják Főtár: központi memória, kapacitása néhány byte, elérési ideje: 10-30 nsec. Háttértárolók: több Gigabyte-os tárolóképességűek, 10-30 msec az elérési idejük. Tömegtárolók: mágneslemez, mágnesszalag, optikai tároló. Az adatok csak a tárolóhierarchián végighaladva érhetnek el a processzorhoz. 29.1 Milyen részekből áll egy utasításciklus ? 29.2 M /33 Utasításelőkészítés, -lehívás (fetching) Utasításszámláló regiszter tartalmának növelése Műveleti kód értelmezése, dekódolása és az operandus címének meghatározása Művelethez szükséges adat(ok) előkészítése Végrehajtás (executing) Az eredmény
elhelyezése Mit tartalmaz az operandusmező ? M /80 A parancsvégrehajtáshoz szükséges adatok (operandusok) memóriabeli címét. Vannak több operandus címes parancsok is. 29.3 Melyik vezérlési mód adja a gyorsabb utasítáfeldolgozást, a huzalozott, vagy a mikroprogramozott ? M /34 A huzalozott, mivel ez hardveres módszer a másik pedig beégetett szoftveres. Huzalozott vezérlés: A dekódolás hatására, a vezérlő egység egy bonyolult áramköri rendszer segítségével állítja be a gép egyes részeinek állapotát. Mikroprogramozott vezérlés: Az utasítás műveleti kódja elindít egy kisméretű, elemi lépéseket tartalmazó mikroprogramot és ennek segítségével szabályozza a gép egyes részeinek állapotát. A mikroprogramtárban található, amely csak olvasható, ROM tároló. 29.4 Melyek a legfontosabb állapotjelző bitek és mire szolgál ? M /59 Egy művelet végrehajtásának eredménye alapján bekövetkező állapot jellemzőit tükrözi
vissza egy-egy helyiértéke, bitje. Zero flag (az eredmény nulla volta) Overflow flag (a keletkezett számérték túl nagy értéke) Carry flag (átvitel keletkezése) Ha nagy a különböző funkciójú bitek száma, akkor külön vezérlő regisztert (control regiszter) és állapotjelző regisztert (status, vagy flag regisztert) szoktak használni. 29.5 Szubrutinhívás folyamata, a szubrutinhívó assembly utasítások. ELAMV /213,217,254 Szubrutin: A legtöbb program több, gyakran alkalmazott utasítássorból áll, amelyek mindegyike egyszer rögzítve van már a programmemóriában. Vagyis lehetőség van arra, hogy egy programrész, rutin mint szubrutin legyen értelmezve. Egy számítógépre írt program végső soron nem más mint a szubrutinok lehívásának széleskörű hálózata. Szubrutin lehívás: CALL. Eseménysora: Az utasításszámláló tartalmát tárolják Az első szubrutin utasításcímet töltik be az
utasításszámlálóba. A program végrehajtása a memóriarekeszben tárolt utasításnak megfelelően megy végbe. Az utolsó végrehajtásra kerülő utasítás a visszatérő utasítás kell hogy legyen. Így a program végrehajtása folytatódik a szubrutin lehívását követő utasításnál. A mikroszámítógépek a szubrutin visszatérési címeket a veremben tárolják. Vannak egymásba ágyazott szubrutinok is, amikor az egyik meghívja a másikat Valamint rekurzív szubrutinok, amikor a rutin önmagát hívja meg. Azonnali bevitel: LIM RDATA. Ugrás: JMP ADDR. Ugrás a szubrutinba: JSR SNAME. Helykijelölő direktíva: EQU. Áttöltés: LOOP LNA DC0 Ugrás a szubrutinba: MOVE LIM DC0.BUFA LOOP LNA DC0 Más programoknál: ISR MOVE. 29.6 Mi a vergődés és hogyan lehet megelőzni ? OR /171 A lapcsere algoritmusoknál előforduló hibalehetőség, amikor alacsonyabb prioritású folyamatoktól veszünk el tárat. Ilyen stratégiánál azonban körültekintően kell
eljárni, mert ha egy folyamat rendelkezésére álló keretek száma az abszolút szükséges minimum közelébe kerül, fellép az ún. vergődés (angolul: thrashing), amikor a folyamat több időt tölt lapcserével, mint futással. Globális kiosztásnál egy folyamat vergődése miatt létrejött magas laphiba gyakoriság láncreakciószerűen elterjedhet a rendszerben, ami a központi egység kihasználtságának hirtelen zuhanását eredményezi és megoldást csak a multiprogramozás fokának csökkentése jelent. 30.1 Hogyan csatlakoznak a mikroprocesszorhoz a funkcionális egységek ? M /21,43 A sínrendszeren keresztül kapcsolódnak a központ egységhez. Ezek a következők: Másodlagos-, vagy háttértárolók Perifériák (I/O) Beviteli egységek Kiviteli egységek A mikroszámítógép sínrendszere (bus system) a gép funkcionális egységeit kapcsolja össze egy szabványosított vezetékrendszerrel. A vezetékek száma és funkciója
meghatározott és ez a gyártók által elfogadott, így a gép sínrenszeréhez könnyen csatlakoztatható bármilyen gyártótól származó részegység. Háromféle sín van és mindegyiknek van sín szélessége: Adatsín: adatok továbbítására (16-32 bites) Címsín: cím továbbításra (szélessége meghatározza a memória címezhető tartományát) Vezérlősín: vezérlő jeleket küld a gép különböző egységei számára. Egy több tucat vezetékből álló vezetékrendszer. Összeköti a gép különböző részeit szabályozott, egységes módon. A gép különböző egységei egymás számára csak ezen keresztül továbbíthatnak adatokat vezérlő jeleket. Meg kell oldani az eszközök kijelölését. Meg kell határozni az adatátvitel irányát. Az eszközök működésének összehangolása, szinkronizálása. Előnye a szabványosított jelhasználat és vezetékkiosztás. Emiatt könnyen cserélhetők és csatlakoztathatók az
eszközök illetve azok vezérlő kártyái. Az így felépített gépek karbantartása könnyebbé válik, mivel a hibás részek egyszerűbben behatárolhatók. Struktúra: 30.2 Belső sínrendszer: a processzoron belüli sínrendszer. Kialakítását az elérni kívánt teljesítmény határozza meg. Nagyobb teljesítményű processzoroknál 3-sínes rendszer van A címsín mellett külön adatsín van írásra és olvasásra. Ezzel megoldható a közel egyidejű írás és olvasás Egyszerűbb megoldás a 2-sínes rendszer (adat- és címsín). Közös adat és címsínt csak a nagyon egyszerű processzoroknál alkalmaznak. Külső sínrendszer: a processzor és más eszközök között. Az összekapcsolt területek alapján lehet: Helyi sín (local bus) a processzorhoz közvetlenül kapcsolódó rész (pl.: társprocesszor) Rendszersín (system bus) a processzort köti össze a gép egyéb részeivel (I/O eszközök) Memóriasín (memory bus) nagyobb
rendszernél leválasztják a rendszersínről a memória területét Milyen főbb memóriacímzési műveletek vannak ? OR /155 Alapvető memóriacímzési módszerek: Egyenes címzés: a címek közvetlenül a tárolóhelyre hivatkoznak. Indirekt címzés: a cím tartalma egy újabb cím, ahol az operandus van. Bázisregiszteres: hogy ne kelljen az utasításokban a teljes címtartománynak helyet biztosítani. Tulajdonképpen egy speciális indexregiszter. Eltolásból és offsetből tevődik össze Virtuális címzés: a felhasználó által látott, jóformán korlátlan méretű tárolónak csak egy kis része létezik a rendszerben operatív tárként, nagyobbik része valamilyen háttértárolón (általában) mágneslemezen van. Lehet lapozásos, szegmentálásos és lapozásos és szegmentálásos Abszolút címzés: Az egyszerű, egyfelhasználós számítógéprendszereknél a tárat két részre osztották. Az egyiket a felhasználó kapta, a
másikat az operációs rendszer rezidens része (ami lényegében egy betöltő programból állt) használta. A programok és a tárcímek közötti kapcsolatot már a program írásakor rögzítették, azaz a program csak a tár egy bizonyos területén volt működőképes. Az utasítások közvetlenül címezhették az egész tárat. Az operációs rendszer védelmére egy határregiszter szolgált Amely az operációs rendszer által elfoglalt legnagyobb, vagy legkisebb címet tartalmazta aszerint, hogy az a tár alsó, vagy felső területén helyezkedett el. Privilegizált módban az operációs rendszer a teljes tárhoz hozzáfért A felhasználó programjaiban minden utasításban ellenőrizni kellett a címeket, hogy nem sértik-e az operáció rendszer területét. Áthelyezhető (relatív) címzés: A relatív címzés a legegyszerűbb áthelyezhető címzés. Ennek lényege, hogy a fordítóprogram például 0-tól kezdődő relatív címet állít elő, a végleges
címek kialakítását pedig a tárgyprogram betöltéséig késleltetjük. Ekkor a betöltő egy alkalmas érték hozzáadásával kialakítja az abszolút címeket. Előnye, hogy ha változik a határcím, a programot elegendő csak újratölteni, fordítani nem kell. Partícionálás: A tárkezelés a multiprogramozás miatt a tár több felhasználó közötti megosztásának irányába fejlődött tovább. Az első gyakorlati megoldást az ún swapping (helycsere) jelentette, amely először egy rezidens operációs rendszerrel és határregiszterrel felszerelt hardveren működött időosztásos alapon. A swapping lényege, hogy a felhasználói részt mindig egy felhasználó uralja, a többiek teljes tárterülete a háttértáron várakozik. Felhasználócserénél a rendszer kimásolja a régi, és behozza az új felhasználó “tárképét” Hatékonyabban működött, ha csak a ténylegesen lefoglalt területeket cserélgette. Ekkor alakultak ki a rendszerhívások.
Hatásfokát tovább lehetett növelni azzal, hogy az egyik folyamat beolvasását átfedjük a másik folyamat végrehajtásával. Két pufferterület segítségével egy programterület végrehajtása közben az előző programot kivisszük, a következő programot pedig behozzuk a megfelelő pufferbe. Hátránya, hogy a csere csak passzív folyamatokkal hajtható végre. A megoldás a B/K tevékenység megszorítása: vagy megtiltjuk a swappingot a teljes B/K művelet alatt, vagy a B/K műveletet csak az operációs rendszer puffereivel lehet végezni. Többpartíciós rendszerekben a tár szabad területét több részre (partícióra) osztják és minden partícióban egy-egy felhasználó programja tartózkodhat végrehajtásra várakozva. A multiprogramozás fokát a partíciók száma szabja meg. Kétféle módon oldható meg: statikusan és dinamikusan. A statikus megoldásban rögzített méretű partíciók szerepelnek, a másik megoldásnál változó méretű partíciók.
Rögzített partíciók (MFT): A felosztás során a különböző méretű munkák számára kis, közepes és nagy partíciókat rögzítenek. Az ütemező nyilvántartásba veszi minden munka tárigényét. Ha egy soron következő munka számára szabaddá válik egy méretben megfelelő partíció, a program betöltődik. Az egyik megoldás, hogy mindegyik partícióhoz külön sort szervezünk. A másik megoldás egyetlen sort használ és abból próbálja optimálisan feltölteni a rendelkezésre álló partíciókat, ami szintén többféle algoritmussal mehet végbe. Az MFT algoritmust swappinggal együtt is szokták alkalmazni, ami sok azonos méretű munka esetén lehet előnyös, mert az egy partícióra várakozó munkák közül adott idő alatt több is szóhoz juthat. (Ezt “roll-in/roll-out”nak is nevezik) Ennél a módszernél (, a rögzített a partícióknál) mindenképpen jelentkezik az elaprózódás Változó partíciók (MVT): Az operációs rendszer
nyilvántartja, hogy a tár mely részei szabadok, illetve foglaltak. Amikor egy munka érkezik, megkeresi a számára elegendően nagy szabad területet és abból lefoglal annyit, amennyit a munka igényel. A külső elaprózódás még mindig jelentős, bár a belsőt már kiküszöböltük Ez ellen az “első lehetséges fut”, illetve a “legjobban illeszkedő fut” módszerével igyekeztek védekezni. A rögzített partícióknál jelentős a belső elaprózódás, a változó partícióknál a külső illetve bizonyos esetekben lehet kis mértékű belső is. Tömörítés: A memória elaprózódásának megszűntetésére szolgál. Az önmagukban használhatatlan részekből egy folytonos területet képezünk. Ehhez dinamikus relokációra van szükség Ebben az esetben csak át kell másolni a program- és az adatterület tartalmát és be kell írni a bázisregiszter új értékét. A tömörítést célszerű a sorban álló munkák paramétereinek
figyelembevételével szervezni. Virtuális tárkezelés: A virtuális címzés nem csak a központi tár, hanem a háttértárolók területét is elérhetővé teszi, ugyanazon módszerek alkalmazásával. A végrehajtás alatt álló programrésznek és a feldolgozandó adatoknak legalább a központi memóriában kell lenniük. Ugyanakkor a főtár mérete nem teszi lehetővé, hogy a teljes program és az összes adat egyszerre a tárban legyen. Habár a tárolók mérete egyre növekszik, de a feldolgozó programok mérete és a feldolgozandó adatok mennyisége is folyamatosan növekszik. A központi tár véges kapacitása miatt, az aktuálisan nem használt programokat, adatokat valamilyen háttértárolón kell tárolni és szükség esetén betölteni a központi memóriába. A háttértároló használatának azonban nem kizárólag csak a kapacitáshiány az oka; közrejátszik ebben gazdaságossági és cserélhetőségi ok is. Nagy mennyiségű adatot célszerű alacsony
fajlagos költségű tárolón elhelyezni. A háttértárolón lévő programrészek központi tárba való betöltésére a programozók kedvelt módszere az ún. overlay technika, amelynél az újonnan betöltött programrész egy másik már nem használt rész helyére kerül. Ennek a futtatása igen körülményes, ezért a betöltés automatizálására dolgozták ki “az automatikus overlay technikát” a lapozásos tárolókezelési módszert. Korábban az operációs rendszer részét képezte, majd harveresen oldották meg, majd átkerült a processzor hatáskörébe. Ma már lehetővé vált, hogy a teljes tárolóterületet, vagy annak nagyrészét látszólag közvetlenül címezhessük, azaz látszólag központi tárnak tekintsük. A tár blokkokra van osztva, a változó méretű a szegmens, a rögzített méretű a lap A tárban vannak a lapkeretek, ezeknek van logikai és fizikai címe. Ezekbe a keretekbe lesznek a lapok illetve szegmensek betöltve. Valós cím =
lapkeret kezdőcíme + relatív cím A szegmens- és laptáblák adatai: Logikai blokk sorszáma, kezdőcíme Blokk memóriabeli kezdőcíme Blokk mérete Hozzáférési jogok Állapotjelzők Blokk fizikai címe Van szegmentálás, lapozás és lapozásos szegmentálás. Szegmentálás: Logikai cím = szegmens logikai sorszáma + relatív cím Fizikai cím = szegmens fizikai kezdőcíme(báziscím) + relatív cím Lapozás: Logikai cím = lap logikai sorszáma + relatív cím Fizikai cím = lapkeret fizikai kezdőcíme(báziscím) + relatív cím 30.3 Mit értünk bit alatt ? M /35 A memória legkisebb tárolási egysége, egy bináris jel (0, vagy 1) tárolására szolgáló elemi rész. 30.4 Melyek az utasításfeldolgozás elemi lépései és mi ezek sorrendje ? 30.5 M /21,33,117 A PC tartalma alapján, a feldolgozandó utasítás kikeresése a tárban és átvitele az utasításregiszterbe. A PC tartalmának növelése
1-gyel (1 utasításhosszal). A lehívott utasítás értelmezése, dekódolása, azaz annak meghatározása, hogy milyen feladatot kell a gépnek elvégeznie. A szükséges adat előkészítése a művelet elvégzéséhez. Az utasításban előírt művelet végrehajtása. Az eredményt az előírt helyre helyezi és visszatér az első lépésre. Veremtároló (stack), veremmutató (stack pointer)-kezelő és velük kapcsolatos utasítások. ELAMV /209,289 OR /13,54,102,163,177 A verem olyan LIFO szervezésű regiszter, vagy “memória” a CPU-ban, amely a futó program megszakításakor tárolja a CPU állapotát, a program következő utasításának a címét (azaz az utasításszámláló tartalmát) továbbá megőrzi az indexregiszterek és az akkumulátorok tartalmát. Az utoljára beírt információt lehet először kiolvasni. Az adatforgalom a bemeneti sorrenddel ellenkező kimeneti sorrendű. Az átviteli utasítások különleges utasításai a veremkezelő
utasítások (push, pop). Ezek az átvitelt a verem teteje és egy meghatározott regiszter, általában az akkumulátor regiszter között bonyolítják le. A verem tetejét a verem mutató (stack pointer) jelöli ki. Azt, hogy a megszakító rutinok is megszakíthatók legyenek, úgy oldják meg, hogy az állapotvektort veremként működő tárba mentik. Ez jórészt szoftver úton megy végbe, de az első lépésekhez hardver támogatásra is szükség van. A veremből mindig az utoljára beírt állapotvektor emelhető ki (LIFO=Last In First Out). A veremmutató pedig automatikusan átáll az eggyel mélyebben elhelyezett elemre Az állapotvektor mentése alatt még így is védtelen a rendszer. Az operációs rendszer rendszermagjánál a hívási paramétereket veremtárba helyezik és a hívó szubrutinnak onnan kell azokat elővennie. A paraméterátvételt ezek igényei szerint szervezi A Pascal fordító is használ vermet a szubrutinok számára. A lapozásnál az
operációs rendszer a lapcímeket egy veremben tárolja. Ha egy lapra hivatkozás történik, azt a veremből kivéve ráteszik a verem tetejére. Így a tetején mindig az utoljára, az alján a legrégebben használt lapcím van. Mivel a verem közepéről is ki kell emelni elemeket, ezért célszerű kétszeresen láncolt listával megvalósítani. Veremmutató regiszter: (SP=Stack Pointer), egy speciális tároló, a veremtároló legfelső elemét jelöli ki. A veremtároló általában a főmemóriában van. A verem LIFO (Last-In-First-Out) elérésű A mutató mindig a következő helyre mutat. Utasítások: Írás/adatbevitel: PUSH. Olvasás/adatkihozatal: POP. A veremmutató tartalmát dekrementálni kell a beírás után és inkrementálni kell a kiolvasás után. Létezik kaszkád verem is. Ennél a verem a CPU-ban van és korlátozott számú regiszterből áll Szubrutin lehívás: CALL. 30.6 Hogyan segíti a szegmens szervezés a védelmi funkciók ellátását ? M
/174 Mivel a szegmenstáblázatok a következő adatokat tartalmazzák: 31.1 Mi a különbség az adatkihozási és az utasításkihozási műveletek ciklusai között ? ELAMV /105 31.2 A logikai blokk sorszáma, kezdőcíme A blokk memóriabeli kezdőcíme A blokk mérete Hozzáférési jogok jelzői Állapotjelzők A blokk másodlagos tárbeli fizikai címe (pl.: sáv, szektor) Utasításkihozáskor az utasításszámláló (PC=Program Counter), adatkihozáskor pedig az adatszámláló (DC=Data Counter) tartalma kerül az A0-A15 címző kimenetekre. A CPU-ba belépő információ, ha utasítás, az utasításregiszterbe (I), ha adat, az akkumulátorba (A) kerül megőrzésre (tárolásra). Mi az adatszámláló szerepe a memóriacímzésben ? ELAMV /88 Adatszámláló-regiszter (Data Counter=DC) Az adatok kiolvasásakor, vagy beírásakor azonosított memóriarekesz címét az adatszámláló-regiszter tárolja. Az adatszámláló regiszter
mérete függ a mikroprocesszor által címezhető memóriakapacitástól Egy CPU-ban egy vagy több adatszámláló-regiszter lehet. Egy memóriarekesz tartalmához, vagyis az adatokhoz való hozzáféréshez tehát szükség van akkumulátorra, ahol az adatokat tárolni tudjuk – amelyek a további műveletekhez szükségesek – és adatszámláló-regiszterre, ahol az adatok memóriarekeszének a címét tároljuk. 31.3 Mit értünk byte alatt ? M /35 A fizikailag legkisebb legkisebb egységként kezelt tárolóterületet rekesznek (location cell) nevezzük. Ennek mérete az egyes géptípusoknál más és más lehet. De általában 8 bit 31.4 Mit értünk mikroprogramozott műveleti vezérlés alatt ? 31.5 Horizontális mikroprogramozás: a vezérlési mező minden egyes bitje egy-egy vezérlési pontot engedélyezhet, vagy tilthat. Ha csak több lépésben oldható meg, akkor a következő utasítás címét is Ha a párhuzamosítás mértéke csökken, akkor
kétszer kell a tárolóhoz fordulni (utasítás, adat). A mikroutasításoknak a vezérlőbiteken kívül, a következő mikroutasítás címét is tartalmaznia kell. Így a mikrovezérlő egy címregisztert is tartalmaz. A szélsőségesen horizontális és az egyszerű horizontális vezérlési struktúrák meglehetősen merevek és kevésbé változtathatók; egy adott hardver felépítéséhez alkalmazkodók. Vertikális mikroprogramozás: a hozzá tartozó mikroutasítások csak egy-egy művelet végrehajtását engedélyezik, így a gépi kódú utasítás végrehajtása több mikroutasítás egymás utáni végrehajtását igényli. Tartalmazhat mikroeljárást, mikroszubrutint hívó utasítást is, azaz felépítése teljesen hasonlóvá válik a makrószintű gépi kódú programokéhoz. Ebben az esetben a mikroprogram automatikus végrehajtása miatt, a mikrovezérlőben mikroutasításszámláló regiszterre is szükség van. A további részműveletekre bontás a
mikrovezérlő bonyolultságát növeli. A párhuzamosítás lehetősége csak a mikroműveletek végrehajtásában marad meg. A vezérlőegység regisztertárakat tartalmaz Néhány bit mint műveleti jelrész értelmezett. A vezérlési mezők tartalma további dekódolást igényelhet Feltételes vezérlésátadó és szubrutinhívó mikroutasítások feldolgozására is szükség van. Tipikus számítógéparchitektúrák és azok jellemzői. M /128 M /46 Neumann-elv (egy utasításfolyam egy adatfolyam (SISD)) 31.6 A tárolt program elve Vezérlésáramlásos (control-flow) Közös tároló: a program utasításait és az adatokat is tartalmazza binárisan. Aritmetikai és logikai műveletvégző egység Bivitelre/kihozatalra önálló egységek Harvard elvű gépek: külön program és külön adattároló van. Csökken a közös tároló és a közös sínrendszer használatából eredő szűk keresztmetszet hatása, így
nő a teljesítmény. Vektorosak: matematikai műveleteknél lehetőség van számsorozatok vektorok feldolgozására. Lehetőség van átlapolt (pipelining) végrehajtásra és ezzel a teljesítmény növelésére. A folyamatok kezelése oldaláról ’egy utasításfolyam több adatfolyam’ (SIMD) elvű. Minél több elem feldolgozását lehet átlapolni, annál inkább növekszik a processzor teljesítőképessége. Ugyanakkor meg kell oldani a vektorelemek tárolóból történő lehívásának és visszatöltésének hatékony módját is. A műveletvégző egység előtt és után ún. regiszterláncot alkalmaznak az adatok ideiglenes tárolására A tárolóterületet több részre osztják fel (memory interleaving). A vektorprocesszorok teljesítőképességét erősen rontja az, ha skalár mennyiségekkel kell dolgoznia. Többprocesszorosak: a vektorszámítógépek továbbfejlesztett változatának tekinthetők. A gépek több processzorral és ehhez kapcsolódó
memóriamodullal rendelkeznek.A vektor- és mátrixműveletek végrehajtása nagymértékben gyorsítható, ha valóban párhuzamos műveletvégzés történik. Folyamatkezelés szempontjából az ’egy utasításfolyam több adatfolyam’ (SIMD) csoportba tartoznak. A processzorok és a memória, valamint a központi egység és a processzorok között nagysebességű adatátvitelt kell megvalósítani. Tömbprocesszoros: a műveletvégző egységek egymástól független módon működnek. Asszociatív: hagyományos cím szerinti adatvisszakeresés helyett a tartalom szerinti címzést alkalmazzák. Szisztolikus: csak a szomszédos egységekkel tartanak kapcsolatot, eredményeiket a szomszédos egységeknek adják át. Üzenetátadásos: minden processzora alkalmas önálló feladat feldolgozására. Így a processzorok között feladatmegosztás lehetséges. Lényeges: Hogy milyen módon használják a processzorok a tárolót és milyen módon létesítenek
egymással kapcsolatot. A folyamatok kezelése szempontjából a ’több utasításfolyam, több adatfolyam’ kategóriába tartoznak. A kapcsolatok megvalósítására szolgáló hálózat statikus, vagy dinamikus kialakítású lehet. Az adatok továbbítása üzenetek formájában történik. A transzputer egyetlen chipen van elhelyezve Megosztott memória esetén a megfelelő teljesítőképesség több, párhuzamosan kiépíthető kapcsolat esetében érhető el. Adatvezérelt: a (data flow) számítógép alapjaiban különbözik a Neumann-elvű gépektől. A számítógép logikai struktúráját az elvégzendő műveletek egymáshoz kapcsolódását leíró adatáramlási gráf határozza meg. A csomópontokhoz vannak hozzárendelve a műveletek(utasítások) A gráf éleihez a csomópont által igényelt adatok (tokenek), illetve a művelet eredményeként keletkező adatok vannak hozzárendelve. Az adatáramlási gráf alapján készíti el a fordítóprogram annak
programgráfját, amely kijelöli a műveletet és a kapcsolódó adatcsomagokat (tokeneket). Az adatvezérelt számítógépek multiprocesszoros rendszerek, amelyben a processzorokat egy kapcsolóhálózaton keresztül kötik egymáshoz és minden ütemben az adatok (tokenek) egy-egy processzor-pár között mozognak a tokenekben előírt módon. Mutassa be a címszámítás módját szegmens szervezés esetén ! M /173 A táblázatok egy-egy szegmenshez, tartozó adatsorát szegmensdeszkriptornak (descriptor) nevezzük. A szegmenstáblázatok az alábbi adatokat tartalmazhatják: A logikai blokk sorszáma, kezdőcíme A blokk memóriabeli kezdőcíme A blokk mérete A hozzáférési jogok jelzői Állapotjelzők A blokk másodlagos tárbeli fizikai címe Szegmentálás: Logikai cím = szegmens logikai sorszáma + relatív cím Fizikai cím = szegmens fizikai kezdőcíme(báziscím) + relatív cím 32.1 Mi a különbség a mikroprogramozás és az
assembly nyelven történő programozás között? M /128, ELAMV /195 A mikroprogram egy gépi kódban írt program, amely a processzor egy területén (CU,ROM) van letárolva, az assembler nyelven írt programot makroprogramnak nevezzük és ez a RAM-ban van letárolva. Ennek minden utasítása egy teljes mikroprogramot indít el. 32.2 Hogyan működik egy veremtár ? 30.5 A verem olyan LIFO=Last In First Out szervezésű regiszter, vagy “memória” a CPU-ban, amely a futó program megszakításakor tárolja a CPU állapotát, a program következő utasításának a címét (azaz az utasításszámláló tartalmát) továbbá megőrzi az indexregiszterek és az akkumulátorok tartalmát. Az utoljára beírt információt lehet először kiolvasni. Az adatforgalom a bemeneti sorrenddel ellenkező kimeneti sorrendű. A lapozásnál az operációs rendszer a lapcímeket egy veremben tárolja. Ha egy lapra hivatkozás történik, azt a veremből kivéve ráteszik a verem tetejére.
Így a tetején mindig az utoljára, az alján a legrégebben használt lapcím van. Mivel a verem közepéről is ki kell emelni elemeket, ezért célszerű kétszeresen láncolt listával megvalósítani. Veremmutató regiszter: (SP=Stack Pointer), egy speciális tároló, a veremtároló legfelső elemét jelöli ki. A veremtároló általában a főmemóriában van. A verem LIFO (Last-In-First-Out) elérésű A mutató mindig a következő helyre mutat. 32.3 Mit értünk cím alatt ? M /35, OR /10 Minden fizikailag önállóan kezelhető tárolóhely (rekesz), címmel (address) rendelkezik, amely alapján a tárolóhelyet a processzor ki tudja választani és abban adatot tud elhelyezni, vagy adatot tud onnan kiolvasni. A rekesz címeit 0-val kezdődő, szigorúan növekvő sorszámok alkotják. 32.4 Mi a mikroprogram és a mikroutasításoknak milyen utasításszerkezetei használatosak ? M /58,122 A vezérléshez felhasznált programot nevezzük mikroprogramnak, amelynek
egy-egy utasítása a mikroutasítás. A programot csak olvasható formában tároljuk a vezérlőegységen belül a ROM tárolóban A vezérlőegység azon részét, amely a műveleti vezérlést oldja meg mikrovezérlő(egység)nek nevezik. Végrehajtáskor a program utasításai alapján vezérlőjeleket ad ki, amelyek a számítógép vezérlési pontjaihoz kapcsolódó elemi műveletek, tevékenységek engedélyezésére szolgálnak. A mikroutasítás feladata: adatutak engedélyezése tiltása. Fajtái: Horizontális mikroprogramozás: a vezérlőbiteken kívül a következő utasítás címét is tartalmazniuk kell. Szélsőségesen horizontális mikroprogramozás: a mikroutasítás csak vezérlőbiteket tartalmaz. Vertikális mikroprogramozás: a gyorsabb működée miatt a vezérlőegység az adatok tárolására regisztertárakat alkalmaz. A mikroutasítások felépítésében néhány bit, mint műveleti jelrész értelmezett, amely megadja azt, hogy az
utasításban lévő vezérlési mezők előírásait milyen módon kell értelmezni. 32.5 A hagyományos (Neumann-elvű) számítógépek funkcionális felépítése, részei (jellemzői, funkcionális egységei – központi egység, tárolók, perifériák – jellemző tulajdonságok). M /29,46 Jellemzői : a gép tartalmaz egy közös tárolót amely egyaránt tárolja a végrehajtandó program utasításait,valamint az utasítások által feldolgozandó adatokat is. a gép vezérlő egysége a tárolt program utasításait egyenként sorra véve oldja meg a kívánt feladatot. a program utasításai által megkívánt aritmetikai és logikai műveletek elvégzésére egy önálló egység szolgál. az adatok és a program bevitelére illetve kihozatalára önálló egységek szolgálnak. Korlátok : A hagyományos felépítésű számítógép eredeti formájának hibája, hogy a rendelkezésre álló erőforrásokat rosszul használja ki,és egy
időben csak egy program hajtható végre,így tehát az erőforrások nem megoszthatók.Ezt küszöböli ki az operációs rendszer Párhuzamosítási lehetőségek: 32.6 Multiprogramozott üzemmód Multifunkciós processzor Processzor és I/O műveletek átlapolt végrehajtáshoz spooling technika Utasítások átlapolt feldolgozásához pipelining feldolgozás Mi a holtpont, és milyen feltételek mellett alakulhat ki ? OR /133 A holtpont jelenség az erőforrásokkal gazdálkodó, megosztott használatukat lehetővé tevő algoritmusok mellékhatása, melynek kezelése egyetlen fejlett operációs rendszerből sem hiányozhat. Egy folyamathalmaz akkor kerül holtponthelyzetbe, ha mindegyikük egy olyan esemény bekövetkezésére vár, amit csak a halmaz valamelyik folyamata válthatna ki, de erre nincs lehetőség. Az erőforrásokkal kapcsolatban az esemény értelemszerűen azok lekötése és elengedése lehet. A dinamikus lefoglalási stratégiának
megfelelően egy folyamat a következő sorrendben kerül egy erőforrással kapcsolatba: Igénylés Használat Felszabadítás Egy rendszer csak akkor kerülhet holtponthelyzetbe, ha a következő négy feltétel egyidejűleg teljesül: Kölcsönös kizárás van (legalább egy erőforrás nem osztható módon foglalt) Várás közben lekötés történik. Van olyan folyamat, amely leköt legalább egy erőforrást, miközben várakozik más folyamatok által használt erőforrásokra. Rablás nincs. Az erőforrások egy folyamattól erőszakkal nem vehetők el Ciklikus várakozás lép fel. Létezik a folyamatok olyan halmaza (p0,p1pN), hogy p0 a p1 által lefoglalt, p1 a p2 által lefoglalt,pN a p0 által lefoglalt valamelyik erőforrásra várakozik. A ”ciklikus várakozás” tartalmazza a “várás közbeni lekötést”. 33.1 Mi az assembly nyelv lényege ? ELAMV /113,195 Egy gépre orientált, szimbolikus programozási nyelv. Vagyis
olyan formális gépi nyelv, amelynek utasításai egy gépi utasításrendszerhez közel állnak. Utasításainak mindegyike a forrásprogram egy-egy sora Az assembler program forrásprogram, bináris tárgyprogrammá való átalakításához használatos konverterprogram., vagyis az Assembler a forrásprogramon elvégzi a futtatáshoz szükséges előkészületeket: Lefordítja gépi kódra A szimbolikus címekből abszolút címeket állít elő Beépíti a könyvtári eljárásokat Összefűzi a szegmenseket Az egyes sorok négy részre, vagy négy mezőre oszthatók. 33.2 Utasításcímke Mnemonikus szimbólummező Operandusmező Magyarázat mező Mi a veremmutató ? M /35,59 ELAMV /209 Veremmutató regiszter: (SP=Stack Pointer), egy speciális tároló, a veremtároló legfelső elemét jelöli ki. A veremtároló általában a főmemóriában van. A verem LIFO (Last-In-First-Out) elérésű A mutató mindig a következő helyre mutat. 33.3
Mit értünk a tárolók címtartománya alatt ? ELAMV /69 A memóriában minden bináris digitet kikereshetővé címezhetővé kell tenni. A legkisebb címezhető információegység egy szó. Minden szónak saját címe van A szavak sorrendben címezhetők Az első szónak van a legalacsonyabb címe, az utolsónak a legmagasabb. A legmagasabb cím értékét a memória mérete határozza meg (memóriakapacitás). Egy írható/ovasható memóriamodul általában több chipből áll Minden cím tartalmazza a chip másrészt az aktuális cím kiválasztására vonatkozó adatokat (chipkiválasztó bit, címbit). A szó címbitjeinek a száma a chip méretétől függ A chipek száma és a kiválasztható bitek száma határozza meg a címezhető memóriakapacitást (címtartomány). 33.4 Mit értünk a pipeling fogalom alatt ? M /133 Pipelining: A RISC és a CISC processzorok teljesítőképességét is alapvetően befolyásolja a folyamatok párhuzamosítása. A nagyfokú
párhuzamosítás a processzorokra általánosan jellemző A feldolgozási folyamatok a programok utasításainak végrehajtását, a benne előírt műveletek elvégzését jelentik. A folyamatok párhuzamosítási lehetősége ezek részfázisokra való bontahatóságából adódik. A folyamatot olyan lépésekre kell bontani, amelyek mindegyike önálló részt képez, más és más erőforráshoz kapcsolódik. Így amint felszabadul valamelyik erőforrás, azt a másik folyamat hasonló feladatot elvégző fázisa igénybe veheti. Az egyik fázis eredménye a következő fázis induló adatát képezi Ez az átlapolódó megoldás azt eredményezi, hogy egy-egy feldolgozási folyamat végrehajtási időtartama ugyan nem változik, de ugyanannyi idő alatt lényegesen több folyamat fejezhető be. Ezt az átlapolt feldolgozási módszert nevezik pipelining (adatcsatornás, futószalag) feldolgozásnak. Kétféle módon történhet: Aszinkron ütemezéssel: az egymást
követő fokozatok jelzik egymásnak elemi feldolgozási lépésük elkészültét. A feldolgozás folyamatos Szinkron ütemezéssel: az egyes fokozatok azonos időben kezdik feldolgozási lépéseiket, a feldolgozási folyamat ütemezését mindig a legtöbb időt igénybe vevő egység szabja meg. A folyamat szinkronizálásában a legnagyobb problémát az jelenti, hogy az egyes szakaszok időszükséglete igen nagy mértékben eltérhet egymástól. Ez különösen a CISC processzoroknál gond, a RISC processzoroknál az utasítások egyenlő hosszúságúak. Van multifunkcionális, egyfunkciós és lineáris pipeline. 33.5 Feltételes és feltétel nélküli assembly vezérlő utasítások. ELAMV /264 Feltételes vezérlésátadó (ugró) utasítás: hatására a processzor valamilyen, az utasítás műveleti jelrésze által előírt feltétel teljesülését ellenőrzi és amennyiben az teljesül, akkor az utasításban megadott című utasításokkal folytatódik a
program végrehajtása, egyébként pedig a soron következő utasítással. Nem tartalmaz címmódosítást. Az utasítás logikája azt mondja ki, hogy ha az adott állapotfeltételek teljesülnek, akkor a sorozat legközelebbi utasítását át kell ugorni, ha az adott állapotfeltétel nem teljesül, akkor a sorozat következő utasítását végre kell hajtani. Feltétel nélküli vezérlésátadó (ugró) utasítás: melynek végrehajtása után a processzor a program egy másik pontjától folytatja az utasítások feldolgozását; ezeknél az utasításoknál az utasításszámláló regiszter (PC) tartalmát tölti fel a gép az utasításban szereplő címmel, amely a következő végrehajtandó utasítás címe lesz. A feltételes átugrás után közvetlenül beiktatva egy feltétel nélküli átugrást, létrehozzuk a feltételes elágazás-utasítás inverzét. Alakjuk: OP Parancs címke Feltételes: JA JNA JNC JC JZ JNZ JG JNG JGE JNGE LABEL ugrás, ha előjel
nélkül nagyobb ugrás, ha előjel nélkül kisebb vagy egyenlő ugrás, ha előjel nélkül nagyobb vagy egyenlő ugrás, ha előjel nélkül kisebb ugrás, ha egyenlő ugrás, ha nem egyenlő ugrás, ha előjelesen nagyobb ugrás, ha előjelesen kisebb, vagy egyenlő ugrás, ha előjelesen nagyobb, vagy egyenlő ugrik, ha előjelesen kisebb Feltétel nélküli: LOOP csökk. cx értékét, ha#0 ugrás a megadott címre LOOPZ addig tart amíg cx nem éri el a 0-t LOOPNZ az előző ellentéte REP kar. művelet ismétlése amíg cx#0 REPZ azonos LOOP út. említettekkel REPNZ azonos LOOP út. Említettekkel CALL rövid (ip értéket verembe menti), távoli (cs értékét is menti) ugrás 33.6 Hogyan zárja ki a holtpont kialakulási lehetőségét a bankár algoritmus ? OR /138 Ennek lényege, hogy egy jó bankár sohasem helyezi ki úgy a pénzét, hogy ne tudja minden ügyfele igényét kielégíteni. Az alapelv az, hogy minden belépő folyamat erőforrástípusonként
deklarálja maximális igényét, ami természetesen nem haladhatja meg a rendszer teljes állományát. Ha a folyamat erőforrást igényel, azt kell eldönteni, hogy az igény kielégítése még biztonságos állapotban hagyja-e a rendszert. Ha igen, az erőforrást megkapja, különben addig vár, amíg ezen helyzet megváltozásához elegendő erőforrás fel nem szabadul. A szükséges adatok: 34.1 34.2 M: erőforrástípusok száma N: a folyamatok száma Készlet: M elemű vektor (erőforrásból rendelkezésre álló mennyiség) Max.: n*m méretű mátrix (a folyamatok maximális igénye) Lekötés: n*m méretű mátrix (a pillanatnyilag lekötött erőforrások száma) Szükséglet: n*m méretű mátrix (a még ki nem elégített erőforrások mennyisége) Igény: n*m méretű mátrix (pillanatnyi igény típusonként) Milyen információkat adatokat helyeznek el a ROM-ban éa a RAM-ban ? /124,129 M /36 ELAMV ROM: olyan tár, amelynek
tartalma az üzemszerű használatkor csak olvasható, azaz amelynek tartalma csak arra feljogosított felhasználó által vagy meghatározott működési feltételek teljesülésekor módosítható. Leggyakrabban mikroprogramtárként és karaktergenerátorként alkalmazzák Tartalmát általában a gyártó írja be. RAM: közvetlen elérésű írható/olvasható tár. A közvetlen elérésű tárnál valamennyi rekesz hozzáférési ideje azonos, azaz bármely tárolt adat azonos idő alatt olvasható ki, illetve írható be. Mi a szubrutin ? ELAMV /213 Szubrutin: A legtöbb program több, gyakran alkalmazott utasítássorból áll, amelyek mindegyike egyszer rögzítve van már a programmemóriában. Vagyis lehetőség van arra, hogy egy programrész, rutin mint szubrutin legyen értelmezve. Egy számítógépre írt program végső soron nem más mint a szubrutinok lehívásának széleskörű hálózata. Szubrutin lehívás: CALL. Eseménysora: Az
utasításszámláló tartalmát tárolják Az első szubrutin utasításcímet töltik be az utasításszámlálóba. A program végrehajtása a memóriarekeszben tárolt utasításnak megfelelően megy végbe. Az utolsó végrehajtásra kerülő utasítás a visszatérő utasítás kell hogy legyen. Így a program végrehajtása folytatódik a szubrutin lehívását követő utasításnál. A mikroszámítógépek a szubrutin visszatérési címeket a veremben tárolják. Vannak egymásba ágyazott szubrutinok is, amikor az egyik meghívja a másikat Valamint rekurzív szubrutinok, amikor a rutin önmagát hívja meg. 34.3 Mit értünk szó alatt ? M /36 Az aritmetikai műveletvégzés során egy-egy számadat leírására nem elegendő 1 byte, ezért egy egységként 2-4-8 byte-ot használ a processzor. Ezt a feldolgozásoknál, adatátviteleknál használt méretet nevezik szónak. 34.4 A feltétel nélküli vezérlésátadó utasítások feldolgozásánál milyen módszereket
alkalmaznak leginkább ? ELAMV /265 Feltétel nélküli vezérlésátadó (ugró) utasítás: melynek végrehajtása után a processzor a program egy másik pontjától folytatja az utasítások feldolgozását; ezeknél az utasításoknál az utasításszámláló regiszter (PC) tartalmát tölti fel a gép az utasításban szereplő címmel, amely a következő végrehajtandó utasítás címe lesz. A feltételes átugrás után közvetlenül beiktatva egy feltétel nélküli átugrást, létrehozzuk a feltételes elágazásutasítás inverzét. 34.5 Adatmozgató és aritmetikai assembly utasítások. ELAMV /104,136,233,271 MOV a második operandus tartalmát az elsőbe írja MOVS a DS:SI által címzett byte-ot ES:DI címre írja MOVSB MOVSW STOS al illetve ax tartalmát ES:DI címre írja STOSB STOSW LODS DS:DI által címzett byte (word) tartalmát al illetve ah regiszterbe tölti LODSB LODSW LEA a kijelölt cél operandusba tölti a forrásoperandus offset címét LDS 4
byte-os memória 1. és 2 Byte-ja kerül megadott regiszterbe, 3 és 4 a ds reg-be LES 4 byte-os memória 1. és 2 Byte-ja kerül megadott regiszterbe, 3 és 4 a ds reg-be XLAT a bx+al címen lévő adatot tölti al regiszterbe XCHG megcseréli a forrás és a cél operandus értékét LAHF a flag regisztert az ah regiszterbe másolja SAHF ah regisztert a flag regiszterbe másolja CBW az ah regisztert feltölti al regiszter felső bitjével PUSH sp értékét csökkenti kettővel és a kiválasztott 16 bites regisztert a verem tetejére írja PUDHF a flag regiszter tartalmát írja a stackre POP kiolvassa az sp által mutatott értéket és a kiválasztott regiszterbe tölti, sp növelése kettővel POPF a veremből leemelt értéket a flag regiszterbe tölti majd sp növelése kettővel 34.6 Ismertesse a hierarchikus katalógusban az abszolút és relatív fájl elérés elvét és módszereit ! Minden állományrendszernek, esetleg minden felhasználónak van egy kiinduló
katalógusa, amit gyökérkatalógusnak neveznek. Ebben szerepelhetnek állományok és ebből elágazó alkatalógusok Ez egy fordított fára emlékeztető hierarchikus alakzatot alkot. A gyökérkatalógus, vagy másnéven alapkatalógus, a főkönyvtár (root directory). Az alkatalógusok az alkönyvtárak Egy állomány pontos leírásához a gyökérből kiindulva kell az alkönyvtárakat mint faágakat végigjárni. Az eléréshez így kijelölt névsorozatot útnévnek nevezzük. Az útnevek megadhatók abszolút útnévvel vagy más néven teljes útnévvel. Ilyenkor az útnevet mindig a főkönyvtárból kiindulva határozzuk meg. A ponttal () jelzett alkönyvtár önmagára mutat Alapértelmezés szerint minden könyvtári név úgy van értelmezve, mintha előtte lenne a “.” Így az alkönyvtárakra közvetlen névvel hivatkozhatunk, hosszú útnév nélkül. Fontos még a kétpont () alkönyvtár, ami a szülőkatalógusra mutat. Ezek segítségével relatív utakat
adhatunk meg a katalógusfában (pl: ABC , .DEF) A relatív útnevek alkalmazása lehetővé teszi, hogy egy feldolgozás állományait a katalógusfa bármely ágához csatlakoztassuk, és emellett, relatív utakon át, minden szükséges állományt elérjünk. Nem kell ismerni az abszolút útneveket. 35.1 Milyen összefüggés van a vezérlőegység kapacitása és a mikrogépünk tudása között ? Minél nagyobb kapacitású a vezérlőegység, annál komplexebb makroutasításokat tud a mikrogépünk végrehajtani. 35.2 Mit nevezünk rekurzív szubrutinnak ? ELAMV /217 Az olyan típusú szubrutint, amely le tudja hívni önmagát, rekurzív szubrutinnak nevezik. 35.3 Mi a különbség a RAM és a ROM tárolók között ? M /36,37 ELAMV /124,129 A RAM véletlen elérésű, írható/olvasható tároló, míg a ROM csak olvasható, általában nem újraírható. 35.4 ROM: olyan tár, amelynek tartalma az üzemszerű használatkor csak olvasható, azaz amelynek
tartalma csak arra feljogosított felhasználó által vagy meghatározott működési feltételek teljesülésekor módosítható. Leggyakrabban mikroprogramtárként és karaktergenerátorként alkalmazzák Tartalmát általában a gyártó írja be. RAM: közvetlen elérésű írható/olvasható tár. A közvetlen elérésű tárnál valamennyi rekesz hozzáférési ideje azonos, azaz bármely tárolt adat azonos idő alatt olvasható ki, illetve írható be. Mit értünk tárhierarchia alatt ? Milyen elemei vannak a processzor köré kialakított tárhierarchiának ? /153 M Az adatok kellő időben és idő alatt való elérésének és elhelyezésének strukturális eszköze a tárhierarchia. A különböző tárolókezelési eljárások, a növekvő tárigény mellett, a processzor köré kiépített tárhierarchia hatékony kezelését vannak hivatva megoldani. Tárkezelés szerepe: mivel a memória a processzor után a második legfontosabb erőforrás, ezért
kezelésének kiemelt fontossága van. Elemei: Regiszterek: A processzorhoz legközelebb a regiszterek vannak, amelyek viszonylag kevés (max. néhány 100 byte) adat befogadására alkalmasak. Ugyanakkor az elérési idejük a legkisebb (10-30 nsec) A mai processzorokban és különösen a RISC processzorokban, általában több tucat általános célú regiszter található, amelyek az ún. regisztertárat alkotják Főtár: központi memória, kapacitása néhány byte, elérési ideje: 10-30 nsec. Háttértárolók: több Gigabyte-os tárolóképességűek, 10-30 msec az elérési idejük. Tömegtárolók: mágneslemez, mágnesszalag, optikai tároló. Az adatok csak a tárolóhierarchián végighaladva érhetnek el a processzorhoz. 35.5 Számrendszerek, számok írásmódja, számrendszerek közötti átszámítások, a véges számábrázolás problémái. M /61,66 A számítástechnikában általában a bináris és hexadecimális számrendszereket
használják. Adatok megjelenítésénél használják a tízes számrendszert is. Az adattárolási módszerek többé kevésbé azonosak az egyes gyártók esetében. A két fő célkitűzés: A tárolás lehetőleg hatékony megoldása Numerikus adatok esetében, a műveletvégzés legegyszerűbb és leggyorsabb módú megvalósítása Számok tárolási módjai: Fixpontos Fixvesszős írásmódnak is nevezzük. Balra találhatók az egészrész számjegyei, jobbra a törtrész számjegyei. A kisebb, kevesebb számjegyből álló számok írásakor alkalmazzuk Lebegőpontos A lebegőpontos, vagy hatványkitevős írásmódot a matematikai, tudományos és műszaki gyakorlatban használják. Elsősorban a nagy és kis számok leírására Három részből tevődik össze: Mantissza: egy tetszőleges fixpontos írásmódú szám. Karakterisztika: a hatványkitevő, amely önmagában egy fixpontos egész szám. A számrendszer alapszáma,
radixa. Normalizált alakban van megadva a szám, ezért pontossága véges nagyon nagy és nagyon kis számoknál. (tárolt számok pontossága, tárolható számok tartománya) Normalizált írásmód Normalizált alakban írja fel a számot. A számítógépes gyakorlatban a gépi tárolási módok miatt, a nullára, illetve kisebb mértékben az egyesekre normalizált forma kap jelentőséget. A számokat olyan hatványkitevős (tehát lebegőpontos) alakra hozzuk, amelyben az egészrész 0 értékű, vagy csak az egyeseknek megfelelő helyiértéken található értékes (azaz nem nulla) számjegy. Decimális bináris átalakítás: 11/2 5/2 2/2 ½ =5 =2 =1 =0 + + + + 1 1 0 1 1011 Véges pontosság problémája: Fix- és lebegőpontos műveletek: A számítógépnél a tárolóhelyek véges hosszúságúak. Problémák lehetnek a tört, túl kis számokkal (underflow=alulcsordulás); a túl nagy számokkal (overflow=túlcsordulás) és a negatív számokkal. Gond lehet a
műveletek elvégzési sorrendjével és az adatok típusával is. Lebegőpontos műveletek: A számok pontosságát a mantisszában szereplő számjegyek száma, a tárolható számok tartományát a karakterisztikában lévő számjegyek száma határozza meg. Tároláskor az ábrázolható tartományok véges sok diszkrét értéke ábrázolható csak, míg a valós számok folytonosan, végtelen számban helyezkednek el az adott tartományban. Az ábrázolható számok diszkrét pontokként helyezkednek el Lehetséges olyan érték, amely nem tárolható, mert két érték közé esik, ilyenkor a legközelebbi számmal helyettesítjük, vagyis kerekítjük. A tárolható számjegyek sűrűsége változó a számegyenes mentén, a kisebb abszolút értékű számok körében nagyobb, mint a nagyobb számok körében. A lebegőpontos szám mantisszájának növelésem, a helyiértékek számának növelése a tárolható számok sűrűségét növeli, azaz a számábrázolás
pontossága nő. A karakterisztika hosszának növelése az ábrázolható számok tartományának alsó, felső határát csökkenti, illetve növeli. 35.6 Ismertesse a láncolt fájl elhelyezés módját ! A láncolt kiosztás minden állomány blokkok láncolt listája, s ezek a lemezen tetszőleges összevisszaságban helyezkedhetnek el. A katalógus az első és az utolsó blokkra utaló mutatót tartalmaz, az állomány minden blokkjában megtalálható a következő blokk sorszáma (címe). Az állomány utolsó blokkjában a mutató értéke (-1) is jelzi a lánc végét. Ennél a módszernél nem probléma az állomány bővítése, csak be kell láncolni egy következő szabad helyet. Külső elaprózódás sem léphet fel Csak szekvenciális állományok esetén biztosít megfelelő hatékonyságot és a mutatók sok helyet foglalnak. Ezenkívül az állomány igen sebezhető. 36.1 Milyen főbb mikroszámítógép típusokat különböztetünk meg ?
36.2 M /23,46 Neumann-elv (egy utasításfolyam egy adatfolyam (SISD)) A tárolt program elve Vezérlésáramlásos (control-flow) Közös tár: a program utasításait és az adatokat is tartalmazza binárisan. Bivitelre/kihozatalra önálló egységek Harvard elvű gépek: külön program és külön adattároló van. Csökken a közös tároló és a közös sínrendszer használatából eredő szűk keresztmetszet hatása, így nő a teljesítmény. Vektorosak: matematikai műveleteknél lehetőség van számsorozatok vektorok feldolgozására. Lehetőség van átlapolt (pipelining) végrehajtásra és ezzel a teljesítmény növelésére. A folyamatok kezelése oldaláról ’egy utasításfolyam több adatfolyam’ (SIMD) elvű. Minél több elem feldolgozását lehet átlapolni, annál inkább növekszik a processzor teljesítőképessége. Ugyanakkor meg kell oldani a vektorelemek tárolóból történő lehívásának és visszatöltésének
hatékony módját is. A műveletvégző egység előtt és után ún. regiszterláncot alkalmaznak az adatok ideiglenes tárolására A tárolóterületet több részre osztják fel (memory interleaving). A vektorprocesszorok teljesítőképességét erősen rontja az, ha skalár mennyiségekkel kell dolgoznia. Többprocesszorosak: a vektorszámítógépek továbbfejlesztett változatának tekinthetők. A gépek több processzorral és ehhez kapcsolódó memóriamodullal rendelkeznek.A vektor- és mátrixműveletek végrehajtása nagymértékben gyorsítható, ha valóban párhuzamos műveletvégzés történik. Folyamatkezelés szempontjából az ’egy utasításfolyam több adatfolyam’ (SIMD) csoportba tartoznak. A processzorok és a memória, valamint a központi egység és a processzorok között nagysebességű adatátvitelt kell megvalósítani. Tömbprocesszoros: a műveletvégző egységek egymástól független módon működnek. Asszociatív: hagyományos cím
szerinti adatvisszakeresés helyett a tartalom szerinti címzést alkalmazzák. Szisztolikus: csak a szomszédos egységekkel tartanak kapcsolatot, eredményeiket a szomszédos egységeknek adják át. Üzenetátadásos: minden processzora alkalmas önálló feladat feldolgozására. Így a processzorok között feladatmegosztás lehetséges. Lényeges: Hogy milyen módon használják a processzorok a tárolót és milyen módon létesítenek egymással kapcsolatot. A folyamatok kezelése szempontjából a ’több utasításfolyam, több adatfolyam’ kategóriába tartoznak. A kapcsolatok megvalósítására szolgáló hálózat statikus, vagy dinamikus kialakítású lehet. Az adatok továbbítása üzenetek formájában történik. A transzputer egyetlen chipen van elhelyezve Megosztott memória esetén a megfelelő teljesítőképesség több, párhuzamosan kiépíthető kapcsolat esetében érhető el. Adatvezérelt: a (data flow) számítógép alapjaiban
különbözik a Neumann-elvű gépektől. A számítógép logikai struktúráját az elvégzendő műveletek egymáshoz kapcsolódását leíró adatáramlási gráf határozza meg. A csomópontokhoz vannak hozzárendelve a műveletek(utasítások) A gráf éleihez a csomópont által igényelt adatok (tokenek), illetve a művelet eredményeként keletkező adatok vannak hozzárendelve. Az adatáramlási gráf alapján készíti el a fordítóprogram annak programgráfját, amely kijelöli a műveletet és a kapcsolódó adatcsomagokat (tokeneket). Az adatvezérelt számítógépek multiprocesszoros rendszerek, amelyben a processzorokat egy kapcsolóhálózaton keresztül kötik egymáshoz és minden ütemben az adatok (tokenek) egy-egy processzor-pár között mozognak a tokenekben előírt módon. Milyen legyen egy egyszerű CPU regiszterkészlete, miért ? M /32,58 Regiszterek: a processzorok ideiglenes adattárolási céljaira szolgálnak az általános célú, vagy
meghatározott funkciójú regiszterek. A belső sínrendszeren keresztül tartanak kapcsolatot a processzor más részeivel Vagy szorosan kapcsolódnak a vezérlő és az aritmetikai egységhez, vagy egy több regiszterből álló tömb egyik egységét képezik. Gyors működésű tárak A legfontosabb regiszterek: 36.3 Milyen típusú ROM tárolókat ismer ? 36.4 Utasításszámláló: (PC=Program Counter, vagy IP=Instruction Pointer) a soron következő utasítás memóriabeli címét tartalmazza. A kezdő értékét kívülről kapja, a program indítása előtt Bázis (cím): az operandusok címzéséhez felhasznált regiszter, amely nem minden processorhoz található meg, vagy más a neve. A báziscím egy alapcím, amelyhez viszonyítva adhatjuk meg az operandus helyét. Indexregiszter(ek): szintén az operandusok címzését segíti elő. Adatsorozatok feldolgozásánál előnyös Nincs mindenhol. Állapotregiszterek(ek), vezérlő
regiszter(ek)(status,flag és control register): egy, vagy több regiszteren belül tárolnak vezérlő és ellenőrző jeleket. A műveletek végrehajtásának eredménye alapján bekövetkező állapot jellemzőit tükrözi vissza. (zero flag, overflow flag, carry flag) Veremmutató regiszter: (SP=Stack Pointer), egy speciális tároló, a veremtároló legfelső elemét jelöli ki. A veremtároló általában a főmemóriában van A verem LIFO (Last-In-First-Out) elérésű A mutató mindig a következő helyre mutat. Pufferregiszter(ek): a processzor belső adat és címsínjét választják el a külső sínrendszertől, vagy más ideiglenes célú tárolásra szolgálnak. M /37 ELAMV /124 ROM (= Read Only Memory): csak olvasható tároló, tartalmát a felhasználó közvetlenül nem tudja módosítani. Csak a gyártás során tölthető fel PROM: Programmable ROM: programozható tár. EPROM: Erasable Programmable ROM: ultraibolya fénnyel, vagy elektronikusan törölhető,
majd újraprogramozható tár. Mi a tárkezelő rendszer feladata ? Milyen jellegű védelmet kell biztosítania a tárkezelő rendszernek ? OR /27,54,58,155 Hogy a legsűrűbben használt rendszerhívások, vagy rendszerszubrutinok állandóan a tárban legyenek és azok szubrutinként legyenek használva. Mivel a tárvédelem az operációs rendszer szubrutinjainak normális behívását megakadályozná, speciális módszert használ a rendszerfunkciók hívására. A behívást rendszerint a hardver erre specializált utasításával, a szoftvermegszakítással oldják meg. A rendszermagot és az operációs rendszer más részeit gyakran bináris programkönyvtárakban tárolják. Az operációs rendszer funkcióit megvalósító rendszermag legnagyobb része mindig a tárban található (rezidens rész), köré azonban igen sok program csatlakozik a működés folyamán. Az ilyen tranziens programokat a rendszermag a tranziens programkönyvtárból hívja be szükség esetén. A
műveletek gyorsítására egyes tranziens programokat állandóan a főtárban tartunk az úgynevezett rezidens területen. A konkurens, vagy többfelhasználós (multiuser) üzemmód megoldása ez biztosítja az erőforrások jobb kihasználtságát a kényszerű várakozási idők kihasználásával. Ezenkívül le kell kezelnie a multitaskingos (töbfeladatos) feladatokat is. Valamint könyvtárszervezés és a programok áthelyezhetősége. Spooling technika megvalósítása: egy lassú perifériára például sornyomtatóra való kivitelnél úgy küszöböli ki a központi egység állandó tétlenségét, hogy a kivitel először egy gyorsabb háttértárra történik (lemezre), majd a főprogram tovább fut és maga a nyomtatás más feladatokkal párhuzamosan a központi egység hulladék idejében hajtódik végre. Swapping Partícionálás Fix partíció (MFT) Változó partíció (MVT) Lapozás Szegmentálás
Virtuális tárkezelés Tömörítés Holtpont kezelés Védelem: a sok egymástól függetlenül, vagy együttműködve lezajló folyamatok mindegyikét meg kell védeni a többiek nem kívánatos mellékhatásától. Az állományokat, a társzegmenseket csak olyan folyamatok kezelhetik, melyek az operációs rendszertől erre felhatalmazást kaptak. Az állomány tulajdonosának joga van előírni, hogy ki férhet hozzá az állományaihoz. Valamint minden programot védeni kell az összes többi programtól, ezért egy helyett két határregiszterre van szükség. A határregiszterek vagy a legkisebb és legnagyobb címet, vagy a legkisebb címet (bázis cím) és a partíció hosszát, az ún. limitet tartalmazzák A lapozással kapcsolatos tárvédelmet laponként valósítják meg egy, vagy két védőbit segítségével. A védőbiteket általában a laptáblában tartják Ezt tovább finomították azzal, hogy csak olvasható, írható-olvasható minősítéseket
lehessen kezelni. Programok és felhasználói feladatok védelme Hierarchikus védelmi rendszer Nem-hierarchikus védelmi rendszer Adatok védelme (hozzáférési jogok) Olvasási jog Írási jog Végrehajtási jog 36.5 Háromállapotú kapcsolóeszközök felépítése és felhasználásuk. 36.6 Milyen elvek alapján juthatnak a folyamatok lapokhoz a valóságos tárban ? OR /161,169 A külső elaprózódás leküzdésének másik, a tömörítésnél általánosabb megoldása, ha feladjuk az egy munkára kiosztott tárterület folytonosságának elvét. A munkához több, a tárban szétszórtan elhelyezkedő blokk tartozik, az operációs rendszer pedig gondoskodik arról, hogy futás közben szükség esetén a vezérlés az egyik blokkból a másikba átkerüljön. A blokkokat lapoknak, a módszert pedig lapkezelésnek, vagy lapozásnak nevezik. Minden a központi egység által generált címet két részre bontunk: egy lapcímre (p) és egy
lapon belüli relatív címre (d). A lapcím adja a laptábla indexét, ahol minden laphoz megtalálható annak fizikai kezdő (bázis) címe (f). Bármelyik lapon belüli fizikai cím tehát f+d A logikai tárat azonos nagyságú lapokra, a fizikai tárat pedig ugyanekkora részekre, ún. keretekre osztjuk A lapméret hardver paraméter A lapméretet azért szokás kettő hatványának választani, mert így a fenti műveletek a bináris címen igen egyszerűen elvégezhetők: a megfelelő számú felső bit adja p-t, az alsó bitek d-t. A munkát laponként betölti a keretekbe, és minden lap betöltése után a keret sorszámát beírja a laptábla megfelelő rovatába. Minden feladathoz külön laptábla tartozik, melyet a regiszterek tartalmával együtt az ütemező a munkavezérlő blokkban tárol. Lapozásnál külső elaprózódás nincs, de fellép egy – munkánként várhatóan fél lapnyi – belső veszteség. Többféle hardverrel támogatott megoldást alkalmaztak. A
laptáblát a tárban tartották és bevezették a laptábla bázis regisztert. 37.1 Mire kell képesnek lennie a RAM-nak ? M /36 RAM (= Random Access Memory): írható-olvasható tároló (regiszter, cache tár, főtár) DRAM: dinamikus RAM alacsony teljesítményigényű, de tartalmát rövid időn belül elveszti, ezért annak tartalmát ciklikusan fel kell frissíteni SRAM: statikus RAM nem igényli az állandó adatújítást és magasabb működési sebességű, egyszerűbb időzítési megoldásokat igényel Az írható-olvasható tárolók általános tárolási célra használhatók. A tárakba történő íráshoz, vagy olvasáshoz meg kell adni a keresett tárolóhely címét, amit a tárolóhoz tartozó címregiszter (MAR=Memory Address Register) fogad be és ennek tartalma vezérli a memória kiválasztó áramköreit. Az adatok számára a tároló bemenete/kimenete az adatregiszter (MDR=Memory Data Register), amely a beírandó, vagy kiolvasott adatot
ideiglenesen fogadja. 37.2 Mi határozza meg egy számítógép címzési módjait ? A processzor típusától és a tárchierarchiától. A címzési módok: Közvetlen: Abszolút címzés esetén a cím pontosan meg van adva a memória(16-32 bit), vagy regisztercím(3-6 bit). Nem mindig előnyös, változtatás esetén a program összes címét módosítani kellene Relatív címzésnél a báziscímhez viszonyított érték lesz megadva. Alapcímként szolgálhat: A pontos cím a báziscím és az utasításban szereplő cím összegeként adódik. Van bázisrelatív (tárolóterületek szegmentálására), programrelatív (ez teszi lehetővé a programok áthelyezhetőségét) és utasításrelatív címzés (relatív ugró utasításokban) Közvetett (indirekt) címzés: Annak a tárolóhelynek a címét adja meg, ahol az operandus címe található. Lehet többszintű is Történhet memória, vagy regiszter felhasználásával. Az itt tárolt mutatók a
pointerek Indirekt címek csoportos tárolására szolgál a vektortáblázat. Literális vagy közvetlen adatcímzésnek nevezik azt amikor az utasításban található az operandus. Az indexelés is a címmódosító eljárások közé tartozik, amely segítségével a megcímzett tárolási hely címértéke folyamatosan növelhető. 37.3 Egy bemenő/kimenő utasításnak hány dolgot kell tartalmazni és mik ezek ? ELAMV /233 Három dolgot kell meghatároznia: 37.4 Az utasítás végrehajtása során kiolvasott adat külső berendezésből származik-e (bemenet), vagy ez egy külső berendezésbe küldendő adat (kimenet) ? Meg kell neveznünk azokat az I/O portokat , amelyeken keresztül a bemeneti és kimeneti műveletek végbemennek. Mi a számítógép rendszeren belül a forrása, vagy a rendeltetési helye azoknak az adatoknak, amelyeket az I/O utasítások továbbítanak ? Milyen főbb csoportjai vannak a tárolóegységeknek ? M /285 ELAMV /66
Hajlékonylemezek (floppy) A hajlékonylemezek (floppy disk) mágnesezhető réteggel ellátott vékony műanyag lemezek vékony papír, vagy műanyag védőtokban elhelyezve. A lemezek írásakor/olvasásakor az író olvasófej hozzáér a lemez felületéhez, ezért a lemezt csak akkor forgatja a meghajtó, amikor adat írás, vagy olvasás zajlik. Így a lemez elérési ideje lényegesen magasabb, mint a merevlemezeké. Merevlemezek (winchester) A merevlemezek állandó sebességgel forognak és az adatok írása/olvasása a felülettől néhány mikron távolságra lévő fej (’repülő fej’) segítségével történik. Minden lemezfekülethez tartozik egy író/olvasófej. A mikroszámítógépekben kizárólagosan használt merevlemez típus a pormentesen zárt tokban elhelyezett lemez az ún. winchester lemez Mind a nagygépek mind a mikroszámítógépek esetében használnak nem cserélhető, fixen beépített merevlemezeket és cserélhető lemezeket. A
merevlemezek kapacitása 20 Mbyte – 10 Gbyte között mozog. Optikai lemezek Optikai lemezek: Az optikai lemezek (optical disk) elterjedése az utóbbi időben következett be, nem csak a hangrögzítés, de az adatrögzítés területén is. Valódi háttértárolókénti használatát még hátráltatja egyrészt az írható/olvasható változat kiforratlansága, másrészt a nagyobb elérési idő és kisebb adatátviteli sebesség, összehasonlítva a mágneslemezekkel. Az optikai lemez felületén az adatrögzítés a hanglemezéhez hasonlóan, spirális pálya mentén történik, amelyre lézersugár segítségével, a rögzítendő adatsornak megfelelően kicsiny lyukakat égetnek. Erről a lemezről készítik a nyomólemezt, illetve annak segítségével az adatlemezt. A műanyag lemez felületére egy igen vékony fényvisszaverő fémréteg kerül, amelyet egy újabb, áttetsző műanyag réteggel védenek a sérülésektől. A törölhető, azaz
írható/olvasható lemezek technológiája magneto-optikai elveket alkalmaz. A lemezek felülete egy vékony, speciális ritkafémmel készült, mágnesezhető réteggel van bevonva, amelyet lézerrel helyileg felmelegítenek és egyúttal mágneseznek is. A fém lehülte után a mágnesezettség megmarad, így az általa rögzített adatsor azután bármikor visszaolvasható. A lemezek kapacitása igen nagy, 550-650 Mbyte között van. 37.5 Mire szolgálnak a regiszterek ? Mit értünk regisztertár alatt ? Regiszterek: a processzorok ideiglenes adattárolási céljaira szolgálnak az általános célú, vagy meghatározott funkciójú regiszterek. A belső sínrendszeren keresztül tartanak kapcsolatot a processzor más részeivel Vagy szorosan kapcsolódnak a vezérlő és az aritmetikai egységhez, vagy egy több regiszterből álló tömb egyik egységét képezik. Gyors működésű tárak A legfontosabb regiszterek: Utasításszámláló: (PC=Program
Counter, vagy IP=Instruction Pointer) a soron következő utasítás memóriabeli címét tartalmazza. A kezdő értékét kívülről kapja, a program indítása előtt Bázis (cím): az operandusok címzéséhez felhasznált regiszter, amely nem minden processorhoz található meg, vagy más a neve. A báziscím egy alapcím, amelyhez viszonyítva adhatjuk meg az operandus helyét. Indexregiszter(ek): szintén az operandusok címzését segíti elő. Adatsorozatok feldolgozásánál előnyös Nincs mindenhol. Állapotregiszterek(ek), vezérlő regiszter(ek)(status,flag és control register): egy, vagy több regiszteren belül tárolnak vezérlő és ellenőrző jeleket. A műveletek végrehajtásának eredménye alapján bekövetkező állapot jellemzőit tükrözi vissza. (zero flag, overflow flag, carry flag) Veremmutató regiszter: (SP=Stack Pointer), egy speciális tároló, a veremtároló legfelső elemét jelöli ki. A veremtároló általában a főmemóriában van A verem
LIFO (Last-In-First-Out) elérésű A mutató mindig a következő helyre mutat. Pufferregiszter(ek): a processzor belső adat és címsínjét választják el a külső sínrendszertől, vagy más ideiglenes célú tárolásra szolgálnak. A processzorhoz legközelebb a regiszterek vannak, amelyek viszonylag kevés (max. néhány 100 byte) adat befogadására alkalmasak. Ugyanakkor az elérési idejük a legkisebb (10-30 nsec) A mai processzorokban és különösen a RISC processzorokban, általában több tucat általános célú regiszter található, amelyek az ún. regisztertárat alkotják 37.6 Digitális kapcsolóeszközök típusai, jellegzetességeik. 37.7 Mikor beszélünk kiéheztetésről ? A készenléti sorban minden feladathoz egy egész szám van rendelve. Ez jelöli a feladat fontosságát A CPUt minden esetben a legmagasabb prioritású feladat kapja A prioritás belülről vagy kívülről adható meg A belső prioritást a feladat különböző paramétereiből
határozza meg a rendszer. A külső prioritást viszont a rendszeren kívül álló szempontok alapján adják meg. Egy tipikus probléma az ún kiéheztetés, mivel egy kész állapotban lévő folyamat várakozási ideje nem korlátos. (A folyamatosan érkező nagyobb prioritású folyamatok a kisebb prioritásúakat hosszú várakozásra kényszeríthetnek.) Erre megoldás az öregedés Minden 5 perc várakozás után a feladatok prioritását eggyel növeljük.További finomítás a kizárás, ami azt jelenti, hogy egy új nagyobb prioritású folyamat kiszoríthatja az aktív kisebb prioritásút. 38.1 Mi az interfész áramkör ? A mikroszámítógép központi része és a hozzá csatlakozó egységek között információátvitel céljából biztosítani kell az egyes egységek illesztését és a rendszer összehangolt működését. Ezért a mikroszámítógép a bemeneti és kimeneti készülékekhez, valamint az érzékelőkhöz vezérlő és illesztő – interfész
- áramkörökön keresztül csatlakozik. Az interfész két funkcionális egység összekapcsolhatóságát és együttműködését biztosító előírások összesége. Ezen előírások kiterjednek többek között – hardver esetén – a fizikai-mechanikai jellemzőkre (pl. csatlakozók), a definiált jelekre, azok elektromos jellemzőire, az egyes funkciókat realizáló jelfrekvenciákra, valamint – szoftvernél is – a definiált műveletek (pl. kapcsolatfelvétel, adatátvitel, szétkapcsolódás) megvalósítására. A mikroprocesszoros rendszerek és a környezetük között biztosítják az adatátvitelt. Vagyis az interfész két rendszer, vagy egy rendszer egyes egységei közötti képzelt felületnek az a része, amelyen keresztül az információ átvitele az igényelt illesztés biztosításával (kódátalakítás, sebességváltoztatás stb.) történik 38.2 Mi indokolja különböző címzési módok szükségességét ? Az utasítások címrésze
általában nem az operandusok pontos címét tartalmazza, hanem a processzornak a címzés módjára utaló kiegészítő információk alapján, meghatározott módon ki kell számítania. A pontos címek kiszámítására alkalmazott eljárásokat nevezik címmódosítási eljárásoknak. A címmódosítás oka lehet: 38.3 Az utasítás címrésze nem elegendően hosszú, hogy minden memóriacím leírható legyen azon. Adatsorozat elemein kell. Általában azonos műveletet végrehajtani Ciklikus műveletsort kell elvégeztetni az adatokkal. Az elkészült program áthelyezhetőségét kell biztosítani. Mit értünk a tárolóeszközök elérési ideje alatt ? Az az időtartam, amely a kiolvasás megkezdése és az adatnak a tároló kimenetén való megjelenése között eltelik. Alapvetően a tár típusától, megvalósításától, esetenként az adatelérés módjától is függ 38.4 Cache tárak: az adatáramlás folyamatosságának
biztosítására, az egyes tárolási szintek közé kisebb kapacitású, a felhasználók számára láthatatlan gyors működésű tárak kerülnek pufferelési céllal Főtár: a program végrehajtásához közvetlenül szükséges programrészek és adatok tárolására szolgál, kapacitása néhány Mbyte, elérési ideje 70-100 nsec. Regiszterek: a processzorhoz legközelebb állnak és befogadóképességük néhány 100 byte, de elérési idejük a legkisebb 10-30 nsec. Háttértárak: az éppen nem szükséges adatok tárolására szolgál, kapacitása több Gbyte, 10-30 msec elérési idejűek. Tömegtárolók: a háttértárakat egészítik ki, kapacitásuk az igényektől és lehetőségektől függ, 100 msectól néhány percig terjed az elérési idő. Mire szolgálnak a cache-tárak ? Milyen elv szerint történik az adatok visszakeresése ? Az adatáramlás folyamatosságának biztosítására, pufferelési céllal, az egyes tárolási szintek közé kisebb
kapacitású, a felhasználó számára láthatatlan, gyors működésű tárolók kerülnek. Ezeket a tárakat nevezik cache-táraknak, gyorsító táraknak. A felhasználó számára nem érhető el Ha keresett adat a cache tárban található (cache-hit, read/write hit), akkor azt onnét veszi ki a processzor. Ha nincs a cache tárban a keresett adat, (cache-miss, read/write-miss esete), akkor az, a memóriából kiolvasva, egyúttal a cache-tárba is beírásra kerül. Elhelyezkedés: lehet a processzorba beépített (on-chip cache) és lehet azon kívüli (off-chip cache) Az adatátvitel a cache-tároló és a memória között mindig blokkos formájú. Ezek csak egymást követő byte-ok lehetnek a memóriában. Szolgálhatnak kizárólag utasítások tárolására, de tárolhatnak utasításokat és adatokat együtt is, illetve lehetnek ezek külön tárban is. A visszakeresés módja ún. tartalom szerinti (asszociatív, CAM=Content Address
Memory) A processzor ellenőrzi az adatok egyezőségét. Akkor működik hatékonyan, ha a keresett adat a kiolvasások többségében a cache-ben és nem a memóriában található. Tár tartalom cserekor fontos, a találati arány fenntartása érdekében a megfelelő helyettesítési stratégia (replacement policy). Lényeges hogy biztosítva legyen a cache –tár és a memória azonos részeinek egyezősége. A processzor és a cache-tár működési sebessége azonos kell hogy legyen. A cache tár típusai: Teljesen asszociatív (fully associative) cache: A teljesen asszociatív tárban a beolvasott blokk bárhová elhelyezhető, bármelyik sorba kerülhet. Az elhelyezés sorát az elhelyezési algoritmus határozza meg. A teljesen asszociatív cache tár előnye a rugalmasság a betöltésnél, de a visszakereséshez ugyanannyi összehasonlító áramkör kell, mint ahány sora a cache-tárnak van és ez költséges. Emiatt az ilyen cache táraknál,
általában, 64 sornál többet nem alkalmaznak. A cache-tárban minden blokkhoz (esetleg minden byte-hoz) használnak egy érvényességi jelzőbitet (V=valid bit), amely arról ad információt, hogy az adott sor blokkja ténylegesen az adott blokkot tartalmazza-e; a másik jelzőbit a módosítási jelzőbit (D=dirty bit), amely arról informál, hogy történt-e módosítás a blokk valamelyik byte-ja esetében. Közvetlen leképzésű (direct mapping) cache: A közvetlen leképzésű cache-tárnál egy-egy blokk csak meghatározott helyre kerülhet. A blokkok helyét a cache-ben a blokksorszám (28 bit) alsó 8 bitje, mint sorindex (line index) határozza meg. Tehát ebben a megoldásban a blokk csak abba a sorba kerülhet, amelyet a sorindex meghatároz. Amikor a processzor egy adatot keres a cache-ben, akkora memóriabeli címből előállított sorindex alapján kijelöli a keresett sort, majd a felső 20 bitet (lapsorszámot) összehasonlítja a cache-beli lapsorszámmal. Ez
így egyetlen összehasonlítást eredményez. A közvetlen leképzésű cache-tároló előnye a gyors visszakeresés, ugyanakkor igen nagy hátránya a kötött blokkhelyek miatti merevsége. Csoport asszociatív (set associative) cache: Csoport asszociatív cache-tár átmenet a teljesen asszociatív és a közvetlen leképzésű cache-tár között. A cache nagyobb, n sorból álló csoportokra van osztva, amelyek önmagukban, mint teljesen asszociatív tárolók működnek, azaz a csoporton belül n hely bármelyikére kerülhet a blokk. Az elhelyezést a választott helyettesítési algoritmus határozza meg. A csoport asszociatív cache esetében, amikor a processzor egy adatot keres a cache-ben, akkor a memóriabeli címből képzett csoportindex alapján kijelöli az indexnek a megfelelő csoportot, majd a memóriacím felső 22 bitjét (lapsorszámot) összehasonlítja a cache-beli lapsorszámokkal. Ez az összehasonlítás a csoport összes sorában egyidőben történik,
azaz a cache-hez egy olyan áramkör tartozik, amely jelen esetben 4 párhuzamos, összehasonlító áramkört tartalmaz. A csoport asszociatív cache rugalmasabb, mint a közvetlen leképzésű tároló és ugyanakkor kis számú összehasonlító áramkör kell hozzá és viszonylag gyors. Szektor leképzésű (sector mapping) cache: A csoport asszociatív cache-tárhoz hasonló, köztes megoldást képző és ma a mikroprocesszorokban ritkábban használt megoldás a szektor leképzésű cache-tár. Ennél a változatnál a processzor a csoport helyét jelöli ki asszociatív módon és azon belül a blokk helye, a lapon belüli elhelyezkedésének megfelelően kötött. Tehát az előző megoldás fordítottja a szektor leképzésű cache-tár A visszakeresés módja az ún. tartalom szerinti, ami azt jelenti, hogy a vizsgált adatnak a cache-ben tárolt adattal való egyezőségét vizsgálja a processzor a kiolvasásakor. Ez a vizsgálat a cache-tárak esetében a keresett adat
címének az összehasonlítását jelenti a cache-ben tárolt címekkel, vagy azok egy részével. 38.5 Fontosabb félvezető technikák, jellemzőik, hatásuk a számítógépiparra. A félvezetők olyan anyagok (elem, vegyület), amelyeknek vezetőképessége tiszta állapotban a fémeké és a szigetelőanyagoké között van és benne a szabad töltéshordozók koncentrációja a hőfok emelkedésével nő. Olyan anyagokat, amelyekben a töltéshordozók ionok, általában nem tekintünk félvezető anyagoknak. Félvezető anyagok: Kémiai elemek: Si (szilícium), Ge (germánium), Se (szelén) Kémiai vegyületek: szulfidok, oxidok, telluridok stb. Intermetallikus ötvözetek: gallium-arzenid, indiumantimonid stb. Vannak N (a vezetést a túlnyomó többségben lévő mozgékony elektronok okozzák) és P (a vezetést a túlnyomó többségben lévő mozgékony pozitív lyukak okozzák) típusú félvezetők. Fő fejlesztési irányok a félvezető technikában:
Integráltsági fok növelése Vonalvastagság csökkentése Szeletátmérő növelése A technológiai műveletek automatizálása Rendszertechnikai egyszerűsítések Felhasználói igényre készülő áramkörök kidolgozása Új technológiai eljárások kidolgozása Az integráltsági fok növelésével egyre inkább a szilárd anyagon belüli szerkezet kialakításából áll egy digitális technikai berendezés elektronikai része. Az integrált áramkörök belső felépítése is egyre tökéletesebbé válik, mert nemzetközi versenyt kell minden áramkörnek kiállnia, a piacok megszerzése érdekében. A technológiai fejlesztések az egyes paraméterek (pl: gyorsaság) javítása mellett továbbra is az integráltsági fok növelésére irányulnak. Az integráltsági fok növelésével javul a megbízhatóság, nő a jobb minőségű készülékek iránti kereslet és így az ár is. Az előállítási és üzembehelyezési, és szervízköltségek
csökkennek. A fejlesztési és gyártási idő 60-80%-kal csökken Nő az alkalmazhatóság időtartama A korábban kialakult technológiák és konstrukciós megoldások felhasználhatók a mikroprocesszorok gyártásához. 38.6 Milyen műveletek végezhetők állományokon ? A mai mágneslemeze rendszerekben általában a következő öt állományművelet (adatkezelési művelet) képezi az alapot. 39.1 Állomány-létrehozás: fizikai helykijelölés, katalógus bővítés. Írás: egy adott állomány adott blokkjára vonatkozik. A cím megadását egy mutatóval oldják meg Az állománymutató mindig az állomány adott blokkjára mutat. A művelet mindig a következő blokkra állítja. Olvasás: egy blokkra vonatkozik. A címkezelés azonos az írásnál leírtakkal Pozícionálás: az állománymutató értékének beállítása. Ez a blokkok közvetlen elérését teszi lehetővé Egy védelmi mechanizmus akadályozza meg, hogy a saját területén
kívülre mutasson. Állomány törlése: a lefoglalt tárolóhely felszabadítása, valamint a katalógus módosítása. Miből áll egy interfészrendszer ? Az interfészrendszer: kábelek, csatlakozók, meghajtó- és vevő áramkörök, jelvezeték-előírások, időzítési és vezérlési egyezmények olyan készlete, amely biztosítja az egyes rendszertechnikai egységek közötti egyértelmű, rendezett és szervezett információcserét. Az interfész egy rendszer olyan eleme, amely biztosítja, hogy rajta keresztül egy készülék üzeneteket vehet fel, feldolgozhat és adhat. Vagyis az interfésszel olyan adatátviteli rendszer alakítható ki, amelyen keresztül az összekötött rendszertechnikai egységek, készülékek közötti információáramlás egyértelműen folyik. A PORT a mikroprocesszornak az a része, amely a perifériális eszközökkel tart kapcsolatot. Perifériakiválasztó multiplexereket, teljesítmény- és szintillesztést végző meghajtókat
tartalmaz. Biztosítja az illesztett csatlakozást a CPU és a perifériális egységek között. 39.2 Mi az utasítás-hurok ? Egy hátultesztelős ciklus. Amíg nem teljesül a feltétel, addig visszacsatolás történik 39.3 Mit értünk ciklusidő alatt ? A központi tár működésének egyik fontos jellemzője a ciklusidő. Az az időtartam, amely a kiolvasás megkezdése és az adatnak a tároló kimenetén való megjelenése között eltelik plusz a kiolvasás utáni feléledési idő, amelyre egyes memóriáknak szüksége van a következő memóriához fordulást megelőzően. 39.4 Mit értünk szegmens alatt ? Milyen a szegmensek mérete ? Milyen a szegmentált tárkezelés helykihasználása ? A szegmens olyan adatblokk, amelynek mérete nem rögzített, választható. A kialakított szegmensek átlapolódóan is megadhatók; ez egyben azt is jelenti, hogy két szegmensen belül is megcímezhető ugyanaz az adat. A szegmens egy változó méretű lap Minden szegmenshez
egy név és egy hossz tartozik Lehet egy eljárás, egy modul, egy táblázat, vagy a főprogram is. A szegmensekre nevükkel, elemeikre pedig a relatív távolsággal hivatkozhatunk. Logikai cím = szegmens logikai sorszáma + relatív cím Fizikai cím = szegmens fizikai kezdőcíme(báziscím) + relatív cím A táblázatok egy-egy szegmenshez, vagy laphoz tartozó adatsorát szegmens-, vagy lapdeszkriptornak (descriptor) nevezzük. A szegmens-, illetve laptáblázatok az alábbi adatokat tartalmazhatják: A logikai blokk sorszáma, kezdőcíme A blokk memóriabeli kezdőcíme A blokk mérete A hozzáférési jogok jelzői Állapotjelzők A blokk másodlagos tárbeli fizikai címe A háttértárolón lévő programrészek központi tárba való betöltésére a programozók kedvelt módszere az ún. overlay technika, amelynél az újonnan betöltött programrész egy másik már nem használt rész helyére kerül. Ennek a futtatása igen körülményes,
ezért a betöltés automatizálására dolgozták ki “az automatikus overlay technikát” a lapozásos tárolókezelési módszert. Korábban az operációs rendszer részét képezte, majd harveresen oldották meg, majd átkerült a processzor hatáskörébe. Ma már lehetővé vált, hogy a teljes tárolóterületet, vagy annak nagyrészét látszólag közvetlenül címezhessük, azaz látszólag központi tárnak tekintsük. A tár blokkokra van osztva, a változó méretű a szegmens, a rögzített méretű a lap A tárban vannak a lapkeretek, ezeknek van logikai és fizikai címe. Ezekbe a keretekbe lesznek a lapok illetve szegmensek betöltve. A szegmentált tárkezelésnél, az átlapolódó és nem egyforma hosszú szegmensek miatt, idővel igen sok üres, nem használt hely keletkezik a központ memóriában. Egy új szegmens elhelyezése ezért gondot okozhat a memóriakezelő rendszernek. Az elaprózódott, üres helyek felszámolására és összefüggő, foglalt és
szabad terület kialakításához, időnként szükséges a memória átrendezése. Ezt a lépést nevezik szemétgyűjtésnek “garbage collection”. 39.5 Fontosabb félvezető technikák, jellemzőik, hatásuk a számítógépiparra. A félvezetők olyan anyagok (elem, vegyület), amelyeknek vezetőképessége tiszta állapotban a fémeké és a szigetelőanyagoké között van és benne a szabad töltéshordozók koncentrációja a hőfok emelkedésével nő. Olyan anyagokat, amelyekben a töltéshordozók ionok, általában nem tekintünk félvezető anyagoknak. Félvezető anyagok: Kémiai elemek: Si (szilícium), Ge (germánium), Se (szelén) Kémiai vegyületek: szulfidok, oxidok, telluridok stb. Intermetallikus ötvözetek: gallium-arzenid, indiumantimonid stb. Vannak N (a vezetést a túlnyomó többségben lévő mozgékony elektronok okozzák) és P (a vezetést a túlnyomó többségben lévő mozgékony pozitív lyukak okozzák) típusú félvezetők. Fő
fejlesztési irányok a félvezető technikában: Integráltsági fok növelése Vonalvastagság csökkentése Szeletátmérő növelése A technológiai műveletek automatizálása Rendszertechnikai egyszerűsítések Felhasználói igényre készülő áramkörök kidolgozása Új technológiai eljárások kidolgozása Az integráltsági fok növelésével egyre inkább a szilárd anyagon belüli szerkezet kialakításából áll egy digitális technikai berendezés elektronikai része. Az integrált áramkörök belső felépítése is egyre tökéletesebbé válik, mert nemzetközi versenyt kell minden áramkörnek kiállnia, a piacok megszerzése érdekében. A technológiai fejlesztések az egyes paraméterek (pl: gyorsaság) javítása mellett továbbra is az integráltsági fok növelésére irányulnak. Az integráltsági fok növelésével javul a megbízhatóság, nő a jobb minőségű készülékek iránti kereslet és így az ár is. Az
előállítási és üzembehelyezési, és szervízköltségek csökkennek. A fejlesztési és gyártási idő 60-80%-kal csökken Nő az alkalmazhatóság időtartama A korábban kialakult technológiák és konstrukciós megoldások felhasználhatók a mikroprocesszorok gyártásához. 39.6 Mi a célja a felhasználói felületnek, milyen részekből áll ? Hogy a felhasználó minél kényelmesebben, interaktívan kommunikálhasson a számítógéppel. Ebben segítik az ablakok, menük és a kis képecskék, az ikonok. A menük vagy kihúzható “redőnyökön”, vagy külön átlapoló ablakokban jelennek meg. 40.1 Milyen lépésekből állnak a programozott I/O adatátviteli műveletek ? A periféria állapotát leíró információ vétele és vizsgálata. Adatküldés a számítógéptől a perifériához. Adatvétel a perifériától. A programozott adatátvitelre az I/O eszközök közvetlen irányítása a jellemző, a programból periféria utasítások
segítségével lehet elérni a beviteli/kimeneti eszközöket. Az I/O utasításokban a perifériát meg kell címezni; ez a cím vagy az I/O port sorszáma, vagy a memória egy tárolóhelyének (memory mapped addressing) a címe. A perifériautasítások a processzor egy regisztere és a periféria regisztere között valósítanak meg átvitelt. A programozott adatátvitel nem túl előnyös, mert lassú átvitelt eredményez és a processzor idejét teljesen leköti. Az átvitelt mindig a processzor kezdeményezi Az előbbiek miatt nem túl gyakran alkalmazzák. 40.2 Hogyan vesszük figyelembe az állapotjelzőket ? Állapotregiszterek(ek), vezérlő regiszter(ek)(status,flag és control register): egy, vagy több regiszteren belül tárolnak vezérlő és ellenőrző jeleket. A műveletek végrehajtásának eredménye alapján bekövetkező állapot jellemzőit tükrözi vissza. (zero flag (az eredmény nulla volta), overflow flag (a szám túl nagy értéke), carry flag
(átvitel keletkezése)). A flag regiszter tartalma: NT: feladatkapcsolás IOPL: I/O művelet a megadott priv. szint alatt nem engedélyezettek Carry: akkor kap 1-es értéket, ha a legfelső helyiértéken átvitel keletkezik Pparity: az eredményben lévő 1-esek párosságát jelzi Auxiliary: az alsó 4 bitről a felső 4 bitre történt átvitelt jelzi, (BCD kódú számolásnál) Zero: az eredmény 0 értékét jelzi Sign: az eredmény negatív értékét jelzi Overflow: az eredmény túlcsordulását jelzi Vezérlési feladatokat látnak el a következők: 40.3 Trap: beállítása esetén az utasítás végrehajtása után leáll a processzor Interrupt: a megszakításkérelmek feldolgozása engedélyezett Direction: karaktersorozatokon végzett műveletekkor az irány kijelölésére szolgál Mi a feladata a címregiszternek ? A MAR=Memory Addres Register olyan regiszter, amely a gép memóriájához tartozik és azokat a
memóriarekesz címeket tárolja, amelyek a következő írási/olvasási műveletekhez szükséges információkat (adatokat tárolja). 40.4 Mi az előnye, illetve hátránya a szegmentált tárkezelésnek ? A szegmentált tárkezelésnél az átlapolódó és nem egyforma hosszú szegmensek miatt, idővel, igen sok üres hely marad a központi memóriában. Egy új szegmens elhelyezése ezért gondot okozhat a memória kezelő egységnek (MMU). A szegmensek betöltésére, elhelyezésére a következő módszereket alkalmazzák: Első szabad hely (first fit): a memória kezdetétől keres és az első olyan szabad helyre teszi, ahová a méreténél fogva helyezhető. Következő szabad hely (next fit) az üres tárolóhely keresése nem elölről, hanem az előző szegmens elhelyezésétől kezdődően Legjobb hely (best fit) az a hely ahová a szegmenst betöltve a legkevesebb szabad hely marad Legrosszabb hely (worst fit) itt az a cél, hogy a legtöbb szabad
hely maradjon Előnyei: Átlapolhatóság Osztott felhasználás Az adatok jellege szerinti elkülönült adatkezelés lehetősége Védelmi lehetőség Hátrányai: 40.5 Megmaradt a külső elaprózódás Lapozásnál időnként “laphiba” léphet fel Digitális kapcsolóeszközök típusai, jellegzetességeik. A digitális áramköröket számjegyekkel felírt értékei jellemzik. A logikai áramkörök diszkrét értékű bemenő jelekből meghatározott matematikai logikai funkcióknak megfelelő kimenőjelet állítanak elő. A jeleket az áramkör valamely elektromos jellemzőjéhez rendeljük hozzá. Általában kétértékű logikai rendszert használnak, ahol leggyakrabban a feszültség a választott elektromos jellemző. A működés hasonló jellegű egy kapcsolóéhoz, amellyel a logikai döntéseket elektromosan valósítják meg. Két különböző állapot megnevezése: 1 vagy 0; igen – nem; igaz – hamis. A logikai áramkörök a
három alapvető logikai funkciót, az ÉS (AND), a VAGY (OR) és a NEM (NOT) műveletet végzik el. Ennek a három alapműveletnek a kombinációi az összetettebb logikai műveletek. 40.6 Milyen követelményeket kell teljesítenie egy interaktív rendszer felhasználói felületének ? Ablakkezelés, menürendszer, ikonok kezelése. Párbeszédes üzemmód biztosítása, azonnali reagálás a felhasználó tevékenységeire. Több felhasználós illetve több feladatos üzemmód megoldása A felhasználók egy terminálszámmal és egy bejelentkezési, vagy számlázási névvel lesznek azonosítva. Ezenkívül az egyes “munkalépéseknek” van egy folyamatazonosítója. Lényegében a parancsállományok teszik lehetővé a kötegelést. Többcélú operációs rendszerekben az egyedi alkalmazásokhoz úgynevezett alrendszereket hoznak létre. A munka egységeként tekintjük egy feladat megoldását a forrásprogram lefordításától az eredmények kiszámításáig. A
rendszerfolyamatokat rendszertaszkoknak nevezzük Ezenkívül interaktív programfejlesztő alrendszerre is szükség van, amelynek szolgáltatásait a programozók kiszolgálásához igazították. Ezenkívül szükség van rendszerinformációk kilistázására, erőforrások (adatállományok, könyvtárak stb.), lefoglalására, hozzárendelésére és segédprogram funkciók végrehajtására. 41.1 Mikor idézhet elő az eszközlekérdezési művelet jelentős időkésedelmet, és hogyan lehet csökkenteni ? Onnan kezdve, amikor az adott eszköz jelzi készségét az adattovábbításra, illetőleg amikor a program érzékeli ezt a készséget, és az adttovábbításra a valóságban is sor kerül. Néhány mirkroprocesszor típusnál az eszköz állapotának ellenőrzési idejét egyszerű tesztelési hálózattal csökkenthetik. Ez a hálózat az összes eszközre vonatkozóan közös, és jelzésre használható fel, például amikor valamelyik eszközre külön figyelni
kell. A lekérdezést el tudja kerülni mindaddig, amíg valamelyik eszköz nem jelzi, hogy figyelni kell rá Egyegy eszköz kiszolgálása, illetőleg az időkésedelem jelentős lehet Egy egyszerű program esetében az állapot ellenőrzését addig ismételjük, amíg az adott eszköz a műveletre készen nem áll. Az állapotellenőrző hurok drasztikusan leállítja a program végrehajtását, és így a hasznos adatfeldolgozási idő elfogadhatatlan pazarlását idézheti elő. Bonyolultabb rendszerek az állapotellenőrzési műveletet más mikroprocesszoros műveletekkel kapcsolják össze, így a processzoridőt hatékonyabban használhatják ki. DMA hozzáféréssel is lehet csökkenteni (Direct Memory Access=direkt memória hozzáférés). 41.2 Mi az ugrás ? Ugrásutasítás: Ezzel az azonnali adatok betölthetők az utasításszámlálóba; eltérően a többi azonnali utasítástól ez a kettő módosítja a programvégrehajtási sorozatot, a következő végrehajtott
utasítást majd abból a memóriarekeszből kell kihozni, amelynek a címét azonnali utasítással vittük be az utasításszámlálóba. Ugrás a szubrutinba utasítás: Az ugrás a szubrutinba utasítás annyiban különbözik az előzőtől, hogy az utasításszámláló meglévő tartalmát meg kell őrizni mielőtt az új azonnali adatot betöltjük az utasításszámlálóba; mivel mikroszámítógépünk rendelkezik egy veremmel az utasításszámláló tartalmát oda irányítjuk és az azonnali adatot csak ezután töltjük be az utasításszámlálóba. A legtöbb mikroszámítógép utasításkészlete nem az azonnali utasítások kategóriájában tartalmazza az ugrás és ugrás szubrutinba utasításokat. 41.3 Mely eszközöket soroljuk a perifériák körébe ? 41.4 Képernyős kijelző (monitor, display): az adatok grafikus, vagy szöveges megjelenítésére szolgál. Billentyűzet (keyboard): kisebb mennyiségű adat
bevitelére, a gép vezérlésére. Nyomtatók (printer), rajzgépek (plotter): az eredmények szöveges, vagy grafikus megjelenítésére nyomtatott formában. Digitalizáló berendezés: a rajzok pontjainak egyenkénti bevitelére. Szkenner (scanner): rajzok, grafikák, fényképek raszteres bevitelére. Egér (mouse), trackball: grafikus képernyőn a kurzor mozgatására, a gép vezérlésére. Fényceruza (light pen): látszólag közvetlenül lehet vele a képernyőre írni. Távközlési csatoló, modem: a távközlési hálózathoz való csatlakozáshoz. Hálózati csatoló: a helyi hálózathoz való csatlakozáshoz. Mit értünk lap alatt ? Mekkora a lapok szokásos mérete ? Mit értünk lapkeret alatt ? A lapok (page) olyan adatblokkok, amelyek mérete azonos és rögzített. A lap mérete 512 byte és 8Kbyte között mozog. A lapok nem átlapolhatók és meghatározott, a lappal megegyező méretű helyekre kerülhetnek a memóriában . Ezeket a helyeket lapkereteknek
(frame) nevezzük 41.5 Háromállapotú kapcsolóeszközök felépítése és felhasználásuk. 41.6 Milyen segédprogramok, alrendszerek lehetnek az operációs rendszerek kísérői ? Az alrendszerek homogén alkalmazói kör speciális igényeinek egyszerűsített kiszolgálását teszik lehetővé. Szolgáltatásaik alapja az operációs rendszeri interfész, amelyre egy új réteget tesznek. Ez az ún alrendszeri réteg, szolgáltatásait az alrendszeri interfészen át lehet elérni. Egy magasabb szintet képező rétegben van Tipikus alrendszerek az univerzális operációs rendszerek programfejlesztő alrendszerei. Az alrendszerek tipikus szolgáltatásai: Szövegszerkesztők Interpreterek Fordítók, szerkesztők, betöltők egy nyelvhez A technikai megvalósítást tekintve egy alrendszer: Integrált programcsomag egy funkcióhalmazra, amely összefüggő feladatkört fed le A felhasználóknak az eredeti operációs rendszer interfészétől
eltérő – egyszerűbb – interfészt biztosít. A rendszerszolgáltatások: Általánosan, relative ritkán használt szolgáltatások, amelyeket minden felhasználó elérhet Alrendszeri szolgáltatások: Intenzíven használt, de csak a felhasználók szűk köre érheti el A legrugalmasabb megoldást az alrendszeri interfész kiépítése tudja biztosítani, mert: A rendszerkiterjesztés problémája a minimumra csökkenthető 42.1 Az alkalmazók kiszolgálásának szervezése optimalizálható Új alkalmazások implementálása felhasználóspecifikus alrendszeri interfész kiépítésével érhető el Milyen részegységeket tartalmaznak általában az I/O portok ? Azokat a regisztereket, amelyeken keresztül a periféria és a processzor között a kapcsolat létrehozható, I/O portoknak nevezik. A következő típusú regiszterek alkotják: 42.2 Parancs (command) regiszter: írható regiszter, egyes bitjei az
eszközvezérlőnek szóló előírásokat jelentenek. Állapot (status) regiszter: olvasható regiszter, az eszközvezérlő segítségével a periféria állapotáról ad információt. Adatkimenet (data output) regiszter: a kiírandó adatot fogadja be átmenetileg. Adatbemenet (data input) regiszter: a beolvasott adatot fogadja be átmenetileg. Miért fontosak a feltételes elágazások a mikroszámítógépeknél ? Mert lehetővé teszik, hogy az utasításvégrehajtási sorozat az állapotjelzők állásától függjön. Alapvetően fontosak, mert ezekkel határozható meg, hogy mi történjen, ha egy végrehajtásra kerülő utasításnak egynél több lehetséges eredménye lehetséges. Ennek jellegét éppen azok az állapotjelzők (flags) mutatják, amelyekre a feltételes elágazó-utasítások reagálnak. 42.3 Mi a csatorna lényege ? (szelektor, multiplexor) A nagyszámítógépek a csatornarendszert (chanel system) használják fel a kapcsolat kialakítására. Az
adatcsatornák önálló vezérlő egységgel rendelkeznek és megfelelő program alapján, önállóan irányítják az adatátvitel folyamatát a processzor munkájától függetlenül, a memória és a periféria között. Az adatátvitel indítása előtt a processzor az átvitel programját átadja a csatornavezérlőnek, majd elindítja azt, a továbbiakban a csatorna már önállóan dolgozik tovább. Amíg be nem fejezi a kijelölt átviteli feladatot A gépek kétféle csatornát használnak: 42.4 Szelektor csatornát: nagy sebességű kapcsol a processzorhoz és egy időben csak egy perifériával tud kapcsolatot tartani. Multiplexor csatornát: amely a lassú perifériákat (nyomtató, terminálok stb.) köti össze a processzorral, mégpedig időosztásos üzemmóddal, azaz felváltva létesít kapcsolatot az egyes perifériákkal. Mi a lapozásos tárkezelés lényege ? Milyen lapbetöltési módszert használnak a lapozásos tárkezelésnél ? A külső
elaprózódás leküzdésének másik, a tömörítésnél általánosabb megoldása, ha feladjuk az egy munkára kiosztott tárterület folytonosságának elvét. A munkához több, a tárban szétszórtan elhelyezkedő blokk tartozik, az operációs rendszer pedig gondoskodik arról, hogy futás közben szükség esetén a vezérlés az egyik blokkból a másikba átkerüljön. A blokkokat lapoknak, a módszert pedig lapkezelésnek, vagy lapozásnak nevezik. Minden a központi egység által generált címet két részre bontunk: egy lapcímre (p) és egy lapon belüli relatív címre (d). A lapcím adja a laptábla indexét, ahol minden laphoz megtalálható annak fizikai kezdő (bázis) címe (f). Bármelyik lapon belüli fizikai cím tehát f+d A logikai tárat azonos nagyságú lapokra, a fizikai tárat pedig ugyanekkora részekre, ún. keretekre osztjuk A lapméret hardver paraméter A lapméretet azért szokás kettő hatványának választani, mert így a fenti műveletek a
bináris címen igen egyszerűen elvégezhetők: a megfelelő számú felső bit adja p-t, az alsó bitek d-t. A munkát laponként betölti a keretekbe, és minden lap betöltése után a keret sorszámát beírja a laptábla megfelelő rovatába. Minden feladathoz külön laptábla tartozik, melyet a regiszterek tartalmával együtt az ütemező a munkavezérlő blokkban tárol. Lapozásnál külső elaprózódás nincs, de fellép egy – munkánként várhatóan fél lapnyi – belső veszteség. Többféle hardverrel támogatott megoldást alkalmaztak. A laptáblát a tárban tartották és bevezették a laptábla bázis regisztert. Új lap betöltésére mindig a felmerülő igény esetében kerül sor, mert nehéz megítélni az esetleg következőnek igényelt lap sorszámát. A lap mérete is nagyobb annál, mint amit érdemes esetleg feleslegesen betölteni. Az igény felmerülése a lapváltási eljárást indítja el, amely a kívánt adatot tartalmazó lapot betölti a
memóriába. A lapváltási igény felmerülésekor egy utasítás végrehajtásának folyamatát kell felfüggeszteni és később visszatérni rá. 42.5 Számrendszerek, számok írásmódja, számrendszerek közötti átszámítások, a véges számábrázolás problémái ? A számítástechnikában általában a bináris és hexadecimális számrendszereket használják. Adatok megjelenítésénél használják a tízes számrendszert is. Az adattárolási módszerek többé kevésbé azonosak az egyes gyártók esetében. A két fő célkitűzés: A tárolás lehetőleg hatékony megoldása Numerikus adatok esetében, a műveletvégzés legegyszerűbb és leggyorsabb módú megvalósítása Számok tárolási módjai: Fixpontos Fixvesszős írásmódnak is nevezzük. Balra találhatók az egészrész számjegyei, jobbra a törtrész számjegyei. A kisebb, kevesebb számjegyből álló számok írásakor alkalmazzuk Lebegőpontos A lebegőpontos, vagy
hatványkitevős írásmódot a matematikai, tudományos és műszaki gyakorlatban használják. Elsősorban a nagy és kis számok leírására Három részből tevődik össze: Mantissza: egy tetszőleges fixpontos írásmódú szám. Karakterisztika: a hatványkitevő, amely önmagában egy fixpontos egész szám. A számrendszer alapszáma, radixa. Normalizált alakban van megadva a szám, ezért pontossága véges nagyon nagy és nagyon kis számoknál. (tárolt számok pontossága, tárolható számok tartománya) Normalizált írásmód Normalizált alakban írja fel a számot. A számítógépes gyakorlatban a gépi tárolási módok miatt, a nullára, illetve kisebb mértékben az egyesekre normalizált forma kap jelentőséget. A számokat olyan hatványkitevős (tehát lebegőpontos) alakra hozzuk, amelyben az egészrész 0 értékű, vagy csak az egyeseknek megfelelő helyiértéken található értékes (azaz nem nulla) számjegy. Decimális bináris
átalakítás: 11/2 5/2 2/2 ½ =5 =2 =1 =0 + + + + 1 1 0 1 Véges pontosság problémája: Fix- és lebegőpontos műveletek: 1011 A számítógépnél a tárolóhelyek véges hosszúságúak. Problémák lehetnek a tört, túl kis számokkal (underflow=alulcsordulás); a túl nagy számokkal (overflow=túlcsordulás) és a negatív számokkal. Gond lehet a műveletek elvégzési sorrendjével és az adatok típusával is. Lebegőpontos műveletek: A számok pontosságát a mantisszában szereplő számjegyek száma, a tárolható számok tartományát a karakterisztikában lévő számjegyek száma határozza meg. Tároláskor az ábrázolható tartományok véges sok diszkrét értéke ábrázolható csak, míg a valós számok folytonosan, végtelen számban helyezkednek el az adott tartományban. Az ábrázolható számok diszkrét pontokként helyezkednek el Lehetséges olyan érték, amely nem tárolható, mert két érték közé esik, ilyenkor a legközelebbi
számmal helyettesítjük, vagyis kerekítjük. A tárolható számjegyek sűrűsége változó a számegyenes mentén, a kisebb abszolút értékű számok körében nagyobb, mint a nagyobb számok körében. A lebegőpontos szám mantisszájának növelésem, a helyiértékek számának növelése a tárolható számok sűrűségét növeli, azaz a számábrázolás pontossága nő. A karakterisztika hosszának növelése az ábrázolható számok tartományának alsó, felső határát csökkenti, illetve növeli. 42.6 Imertesse a holtpont megelőzési módszerek működési elvét ! Azt kell biztosítani, hogy a négy szükséges feltétel közül legalább egy ne teljesüljön. 43.1 A kölcsönös kizárás feltételnél nem lehet semmit tenni. A várás közbeni lekötésnél biztosítani kell, hogyha egy folyamat erőforrást igényel ne tartson egy másikat lekötve. Ha egy folyamat már lekötött valamilyen erőforrást és újabb olyan erőforrást
igényel, amit nem lehet azonnal hozzárendelni, akkor az összes eddig lekötött erőforrását el kell rabolni. A “ciklikus várakozás” kiküszöbölésére az összes erőforrásra teljes rendezettséget kell létrehozni. Minden erőforrástípushoz egy egyedi egész számot rendelünk, melynek segítségével bármely két erőforrásról eldönthető, hogy a mi rendezési sorrendünk szerint melyik előzi meg a másikat. Hogyan megy végbe az I/O port kiválasztása ? A processzor számára az I/O portok elérésére két lehetőség van: 43.2 Közvetlen I/O (input/output) utasításokkal, amelyek segítségével az eszközvezérlő regiszterébe közvetlenül írhatunk, vagy onnét olvashatunk, vagy Tárolóhoz rendelt módon (memory mapped addressing), azaz valamilyen tárolócímen keresztül, ugyanúgy, mint ahogy bármelyik közönséges tárolóhelyet is el lehet érni. A memóriacímeknek ez a halmaza lehet része a tényleges memóriacímeknek, de lehet a
perifériáknak önálló címtartománya is, mint például az Intel processzorok esetében. Melyek azok a feltételek, melyek mellett létrejön egy elágazás ? A kiválasztott elágazás feltételei: Elágazás nullánál (Z) egyenlő 0-val Elágazás nullánál (Z) egyenlő 1-gyel Elágazás átvitelnél (C) egyenlő 0-val Elágazás átvitelnél (C) egyenlő 1-gyel Elágazás túlcsordulásnál (O) egyenlő 0-val Elágazás túlcsordulásnál (O) egyenlő 1-gyel Elágazás előjelbitnél (S) egyenlő 0-val Elágazás előjelbitnél (S) egyenlő 1-gyel 43.3 Mit értünk szelektor csatorna alatt ? Szelektor csatorna: nagy sebességű perifériákat kapcsol a processzorhoz és egy időben csak egy perifériával tud kapcsolatot tartani. 43.4 A lapozási igény által megszakított utasításfeldolgozás milyen módszerekkel folytatható ? Melyik módszert alkalmazzák leginkább ? A lapváltási igény felmerülésekor egy utasítás végrehajtásának folyamatát kell
felfüggeszteni és később visszatérni rá. A felfüggesztett utasítás végrehajtására két módszer közül lehet választani: Az utasítás folytatása a felfüggesztési fázistól (ez az operandus előkészítési fázis többnyire); ez esetben a felfüggesztési időpontra vonatkozó állapotjellemzőket el kell menteni, majd a folytatáskor visszatölteni. Az utasítás újrakezdése a lapváltás után; ez egyszerűbb megoldás, mert a felfüggesztett utasítás mikroprogramját előlről lehet indítani, kevesebb állapotjelzőt kell tárolni, ugyanakkor a felfüggesztés pillanatában vissza kell állítani az utasítás megkezdése előtti állapotot; többnyire az utasítás újrakezdését alkalmazzák megoldásként. 43.5 Adatmozgató és aritmetikai assembly utasítások. 43.6 Hogyan növelhető az adattárolás biztonsága ? Egyéb (numerikus és alfanumerikus ábrázolástól eltérő) adattárolási módokkal: 44.1 Jelölt
adattárolás (tagged storage): a tárolt adat kiegészül olyan információkkal, amelyek az adatfelhasználás módját befolyásolják és meghatározzák. Előnye a hibaelhárítási lehetőség, a közvetlen hardverszintű és irányítású konverzió lehetősége; hátránya a kiértékelési időtöbblet, a merevebb struktúra, külön költségek. Deszkriptoros tárolási forma (data descriptor): egyszerűbb adatstruktúrák kezelését biztosítja kiegészítő információk (hozzáférési jogok, felhasználási cél, tárolási hely stb.) hozzáadásával Részben hardveres, részben szoftveres megoldású. Összetett strukturális forma (object-oriented, capability addressing schemes): a szoftverszintű adatkezelést segíti, de csak akkor hatékony igazán, ha hardveresen támogatott. Az objektum formában történő megközelítés (összetett adatstruktúra) előnyei: A kapcsolódó információkat egy egységben tárolja. Az objektum létrehozása/törlése nem
külön-külön adattörléssel valósul meg. Az objektum összes adatának elérése egyidőben lehetséges. Konverziója speciális utasítással oldható meg. Az elemeire vonatkozó, további öndefiniáló információkat tartalmazhat. Külön elérési jogokkal rendelkezhet. Milyen okai lehetnek a programmegszakítás kérésének ? Az esemény kiváltója lehet: Maga a program, például valamilyen futás közbeni hiba (nullával osztás, túlcsordulás stb.) esetében, amelynek kezelésére egy kiszolgáló eljárást (trap, exception kezelés) indít el a processzor; ezek szinkron események, mert a program azonos helyén következnek be minden futtatáskor. Lehet a hardver, például valamelyik periféria, amely az adatátvitel lebonyolításának idejére, a program futásának idejére, a program futásának ideiglenes felfüggesztését kezdeményezi; ezek szinkron események. A programmegszakítás kérésének okai: 44.2 Ki
kell szolgálni egy megszakítást kérő készüléket, mert ha ez nem történik meg, a rendszer hatékonysága romlik. Pl: megváltozik a szabályozott rendszerünk külső mért adata, ami szerint szabályozni kell, ha erről nem értesül a gépünk, akkor a régi adat szerint hibásan fog szabályozni. A jelenleg futó program folytatása valamilyen akadály miatt nem lehetséges, az akadály elhárításához szoftver beavatkozás szükséges. A futó program befejeződött. A kezelő közölni kíván valamit a rendszerrel. Milyen egy adatátviteli programhurok ? Elágazási logika: LOOP LNA DCO SNA DC1 AIB H’FF betölti a következő bemeneti adat byte-ot, majd inkrementálja DCO-t tárolja a következő bemeneti adat byte-ot, és inkrementálja DC1-et létesíts elágazást a hurokhoz, ha A1=0 AIB utasítás dekrementálja az A1 tartalmát Átugrási logika: LOOP LNA DCO SNA DC1 AIB H’FF 44.3 betölti a következő bemeneti adat byte-ot, majd inkrementálja DCO-t
tárolja a következő bemeneti adat byte-ot, és inkrementálja DC1-et ugord át a következő utasítást, ha A1 nem egyenlő nullával AIB utasítás dekrementálja az A1 tartalmát Mit értünk multiplexor csatorna alatt ? Multiplexor csatorna: a lassú perifériákat (nyomtató, terminálok stb.) köti össze a processzorral, mégpedig időosztásos üzemmóddal, azaz felváltva létesít kapcsolatot az egyes perifériákkal. 44.4 Mit jelent a virtuális címek leképezése fizikai címekre ? Egylépcsős címleképezés : Alakalmazásakor a szegmens vagy laptáblázat tartalmazza a központi tár memóriabeli szegmens vagy lapkezdet címét. Szegmensek : A szegmenssorszám 8 bitje alapján a táblázatnak 256 bejegyzése lehetmés egy-egy szegmens maximális mérete a relatív cím alapján 224 = 16 Mega Byte lehet. Lapok : A laptáblázatnak 224 = 16 Mega Byte bejegyzése lehet‚ s mérete maximum 212 = 4 Kilo Byte lehet. Többépcsős címképzés : Ezek az eljárások
vegyítik a szegmenscímzést a lapcímzéssel. 44.5 Feltételes és feltétel nélküli assembly utasítások. A feltételes elágazás lehetővé teszi, hogy az utasításvégrehajtási sorozat az állapotjelzők állásától függjön. Alapvetően fontosak a mikroszámítógépeknél is, mert ezekkel határozható meg, hogy mi történjen, ha egy végrehajtásra kerülő utasításnak egynél több lehetséges eredménye lehetséges. A feltételes átugrás-utasítás nem tartalmaz címmódosítást. Az utasítás logikája azt mondja ki, hogy ha az adott állapotfeltételek teljesülnek, akkor a sorozat legközelebbi utasítását át kell ugorni, ha az adott állapotfeltétel nem teljesül, akkor a sorozat következő utasítását végre kell hajtani. A feltételes utasítás után közvetlenül beiktatva egy feltétel nélküli ugrást, létrehozzuk a feltételes elágazás utasítás inverzét. 44.6 Mi történik egy állomány nyitásakor illetve bezárásakor ? 45.1
Mit kell végrehajtani egy megszakításkérés következtében ? Lényege : A megszakítási rendszer lényege hogy a folyamatok közben keletkező eseményeket a processzor valamilyen úton fel tudja dolgozni.Erre szolgál a számítógép megszakítási rendszere,mely a megszakítási kérelemkor jelet küld a processzornak. Kiszolgálása : 45.2 az eszközváltó beállítja az interrupt vonalat,jelezve ezzel a megszakítást. a processzor visszaigazolja a kérelem elfogadását. az eszközvezérlő az adatvonalra helyezi a megszakítási vektor sorszámát. a processzor eltárolja a megszakítási vektor sorszámát. a processzor elmenti az utasításszámláló és az állapotregiszter tartalmát a veremtárolóba. a vektortáblából a processzor a sorszám alapján kikeresi a kiszolgáló rutin kezdőcímét,és betölti az utasításszámláló regiszterbe,majd elkezdi a kiszolgáló rutin végrehajtását. a megszakított
feldolgozás részeredményeinek elmentése a regiszterből a verembe. a megszakítást kérő eszköz azonosítása egy külön tárolóhely felhasználásával. a kiszolgáláshoz szükséges paraméterek begyűjtése. a megszakítást okozó esemény kezelése. a megszakítás befejeztének jelzése. a felfüggesztett feldolgozás adatainak a visszatöltése a regiszterekbe. a kiszolgáló rutin befejezése és visszatérés a feldolgozó programhoz. az elmentett utasításszámláló és állapotregiszter visszatöltése a feldolgozás folytatására. Mit tesz lehetővé a kiszámított ugrás ? Az akkumulátorok és az utasításszámláló közötti adatátvitel lehetővé teszi, hogy a program-logika kiszámítsa az ugrás-címeket. Ez nagyon jól hasznosítható az elágazás-táblázatokban 45.3 Milyen perifériális kapcsolati rendszert alkalmaznak a mikroszámítógépek esetében ? A mikroszámítógépek perifériái közös sínrendszerre (buszrendszerre) csatlakozó
vezérlőkön keresztül kapcsolódnak a processzorhoz. Tehát a processzor a perifériális eszközöket egy-egy vezérlő (controller) egységen keresztül éri el és irányítja. Ezek a vezérlők vagy magában a perifériában találhatók és a központi egységgel egy szabványos csatlakozón keresztül tartanak kapcsolatot, vagy önálló egységként helyezkednek el a központi egységhez csatoltan. 45.4 Milyen módon lehet szétválasztani a program- és adattárolási területet a címzés segítségével ? Milyen előnye van a program- és az adattárolási terület szétválasztásának ? Az írható-olvasható tárolók általános tárolási célra használhatók. A tárakba történő íráshoz, vagy olvasáshoz meg kell adni a keresett tárolóhely címét, amit a tárolóhoz tartozó címregiszter (MAR=Memory Address Register) fogad be és ennek tartalma vezérli a memória kiválasztó áramköreit. Az adatok számára a tároló bemenete/kimenete az
adatregiszter (MDR=Memory Data Register), amely a beírandó, vagy kiolvasott adatot ideiglenesen fogadja. Azoknál a gépeknél, amelyeknél a külön tárolás megoldott, azaz önálló memóriablokkok vannak az utasítások és az adatok tárolására, a processzornak a memóriához forduláskor tudnia kell, hogy programutasítást, vagy adatot kell elérnie. Ennek legegyszerűbb megoldási módja, hogy a használható címtartomány felezésével, a cím legfelső bitjét a választás (P/D* - program/data) vezérlésére használjuk fel. Ez a megoldás megakadályozza a program esetleges felülírását is. 45.5 Veremtároló (stack), veremmutató (stack pointer)-kezelő és velük kapcsolatos utasítások. A verem olyan LIFO szervezésű regiszter, vagy “memória” a CPU-ban, amely a futó program megszakításakor tárolja a CPU állapotát, a program következő utasításának a címét (azaz az utasításszámláló tartalmát) továbbá megőrzi az indexregiszterek és
az akkumulátorok tartalmát. Az utoljára beírt információt lehet először kiolvasni. Az adatforgalom a bemeneti sorrenddel ellenkező kimeneti sorrendű. Az átviteli utasítások különleges utasításai a veremkezelő utasítások (push, pop). Ezek az átvitelt a verem teteje és egy meghatározott regiszter, általában az akkumulátor regiszter között bonyolítják le. A verem tetejét a verem mutató (stack pointer) jelöli ki. Azt, hogy a megszakító rutinok is megszakíthatók legyenek, úgy oldják meg, hogy az állapotvektort veremként működő tárba mentik. Ez jórészt szoftver úton megy végbe, de az első lépésekhez hardver támogatásra is szükség van. A veremből mindig az utoljára beírt állapotvektor emelhető ki (LIFO=Last In First Out). A veremmutató pedig automatikusan átáll az eggyel mélyebben elhelyezett elemre Az állapotvektor mentése alatt még így is védtelen a rendszer. Az operációs rendszer rendszermagjánál a hívási
paramétereket veremtárba helyezik és a hívó szubrutinnak onnan kell azokat elővennie. A paraméterátvételt ezek igényei szerint szervezi A Pascal fordító is használ vermet a szubrutinok számára. A lapozásnál az operációs rendszer a lapcímeket egy veremben tárolja. Ha egy lapra hivatkozás történik, azt a veremből kivéve ráteszik a verem tetejére. Így a tetején mindig az utoljára, az alján a legrégebben használt lapcím van. Mivel a verem közepéről is ki kell emelni elemeket, ezért célszerű kétszeresen láncolt listával megvalósítani. Veremmutató regiszter: (SP=Stack Pointer), egy speciális tároló, a veremtároló legfelső elemét jelöli ki. A veremtároló általában a főmemóriában van. A verem LIFO (Last-In-First-Out) elérésű A mutató mindig a következő helyre mutat. Utasítások: Írás/adatbevitel: PUSH. Olvasás/adatkihozatal: POP. A veremmutató tartalmát dekrementálni kell a beírás után és inkrementálni kell a
kiolvasás után. Létezik kaszkád verem is. Ennél a verem a CPU-ban van és korlátozott számú regiszterből áll Szubrutin lehívás: CALL. 45.6 Hogyan befolyásolhatja a felhasználó a rendszermag felépítését ? Rendszermag: Az operációs rendszer hierarchikus struktúrálódású. Vannak olyan közös rutinok, amelyeket a számítógépes rendszer minden eleme közösen használ. Minthogy ezekhez minden felhasználónak hozzá kell férnie, csak megfelelően alacsony hierarchaiszinten helyezkedhetnek el. Az operációs rendszeri réteg ennek folytán struktúrált architektúrájú. A felsőbb szoftverréteg rutinjai az alsóbb (al)rétegek szolgáltatásaira épülnek Az operációs rendszeri réteget megvalósító szoftver igen változó méretű szokott lenni, az elvárt szolgáltatásoktól függően. A bináris programméretek 1 kilobájttól akár több megabájtig terjedhetnek és igen sok programmodulból tevődhetnek össze. A közösen használt rutinok
kétfélék lehetnek: Hardver utasításkészlet bővítmény Hardver sorrendképző és multiprogramozást támogató A nagyméretü rendszermagok tipikus funkcióhalmaza: 46.1 Mikroprogramok Megszakításkezelés Hívó- és hívott folyamatok állapotának vezérlése Folyamatszinkronizáció A védelmi rendszer működtetése Erőforrás-kezelés Ütemezések Eseménystatisztika Rendszerkönyvtárak kezelése Mikor válik lehetővé egy programmegszakítás ? A rendszernek meg kell oldania: A keletkezési hely meghatározása (melyik eszköz kezdeményezte a megszakítást). A megszakítási lehetőségek szabályozása, maszkolása. A prioritások szabályozása. Többszörös megszakításkiszolgálás (újabb megszakítási kérelmek kezelése). Keletkezési helye: Szoftver módszer: a kérelem helyének megállapítására. Egy program, többnyire az operációs rendszer részét képező rutin,
bizonyos időközönként sorra megvizsgálja, a megszakítási kérelem szempontjából szóbajöhető eszközök állapotjelzőjét és amelyik az igényt jelzi, ott elindítja a kiszolgáló programot (lekérdezéses megszakításkezelés (polling interrupt)). Hardver módszer: egy megszakításvezérlő szabályozza programmal, vagy anélkül a megszakítás kiszolgálását. A megszakítási kérelem (INT jel) vezérlő általi elfogadását egy visszaigazolás (JACK jel) követi.A megszakítási vezérlő egy vagy több megszakítási vezetékkel rendelkezik A kiszolgálás módját a adott rendszer nagymértékben meghatározza. Lehet egy, vagy több megszakítási vonal, valamint van vektoros módszer is. 46.2 Mi a regiszter-regiszter átviteli utasítás jelentősége ? A központi egység (CPU) regisztereire vonatkozó utasítások lehetnek olyanok, amelyek adatokat visznek át egyik regiszterből a másikba és olyanok, amelyek másodlagos memória-referencia
műveleteket végeznek el egy központ egységen belül. Sokszor igen hasznos, ha az akkumulátorok tartalmát ki tudjuk cserélni Az akkumulátorokból az adatszámlálókba való adatátvitel lehetővé teszi a program-logika számára, hogy változtatható címeket hozzon létre az akkumulátorokban, azután átvigye ezeket a címeket az adatszámlálóba, a változtatható bennefoglalt címzéshez. Az ellenkező irányú adatátvitel lehetővé teszi, hogy egy adattárolót ideiglenes tárolóként használjunk az akkumulátorokban lévő adatok számára. Ennek előfeltétele, hogy a szóban forgó adatszámlálót nem alkalmazzuk bennefoglalt címzésre. 46.3 Milyen módszerekkel növelhető a hagyományos számítógépek kihasználtságának mértéke? A hagyományos felépítésű számítógép eredeti formájának legnagyobb hátránya, hogy a rendelkezésre álló erőforrásokat igen rosszul használja ki, egy időben csak egy program végrehajtása lehetséges és az
erőforrások nem megoszthatóak. A rendelkezésre álló eszközök jobb leterhelését megfelelő szervezéssel, amelyet egy bonyolult vezérlő programrendszer, az operációs rendszer valósít meg, javítani lehet. Ennek segítségével a szabad időtartamok felhasználhatók más, következő programok feldolgozására. Ez egy látszólagos, párhuzamos feladatmegoldást eredményez, azonban csak az erőforrások váltakozó használata valósul meg az operációs rendszer vezérlésével. A memóriának, mint erőforrásnak a használatát javítja az a megoldás, amit memory interleaving-nek neveznek. Ennek lényege, hogy a memóriát elérés, címzés szempontjából több részre osztják és az egymást követő (egyidejű) tárolóhoz fordulásokat más és más tároló rekeszhez irányítja a processzor. Így nem okoz gondot egyidejűleg több utasítás előkészítése a feldolgozáshoz. 46.4 Milyen védelmi funkciókat tölt be a memóriakezelő rendszer ? Milyen
védelmi rendszereket használnak a tárolt adatok védelmére ? A tárolókezelő rendszer feladatai között a címkiszámítás mellett, a tárolt adatok, programok védelme is fontos szerepet tölt be. Ez a következő területekkel való foglalkozást jelenti: A memóriaterület védelme: ez a címzések helyességének ellenőrzését jelenti, amelyet az MMU-nak mindig el kell végeznie, megakadályozandó a nem létező és hibásan megadott címek használatát. Ezzel a kérdéssel külön nem kell foglalkozni, mert a megoldás adott. A rendszerprogramok védelme a felhasználó beavatkozásaitól. A felhasználók (pontosabban feladataik) egymástól való védelme. A tárolt adatokhoz történő hozzáférési lehetőségek ellenőrzése. Adatok védelme: A feladatok által használt adatok védelme érdekében, a szegmensekhez, lapokhoz való hozzáférési jogokat szabályozza a védelmi rendszer. A leggyakoribb hozzáférési jogok: Olvasási
jog (read access): a tárolóhoz (laphoz, szegmenshez) forduló feldolgozás tetszőleges adatot kiolvashat az adott területről. Írási jog (write access): a feldolgozás átírhatja a tárolóterület adatait, beírhat új adatokat, törölheti az ott lévő adatokat. Végrehajtási jog (execute access): a feldolgozás a tárolóterületen található kódot elindítja. Végrehajtási jog csak programot tartalmazó laphoz, vagy szegmenshez rendelhető hozzá, adatszegmenshez nem. Az elérési jogokat a szegmensekhez, lapokhoz tartozó leírók (deszkriptorok) tartalmazzák, ezért a folyamatoknak előbb a deszkriptortáblákban kell ellenőrizniük a jogosultságukat az adott tárolórészhez. A szegmentált tárolókezeléshez kapcsolódó védelem valamivel jobb, mint a lapokhoz tartozó, mert az előbbivel például teljes programot védhetünk, míg a lapozás módszernél minden laphoz külön hozzá kell rendelni a védelmet, és ez kevésbé biztonságos. További gond,
hogy a védelemnek ez a formája tárolóterülethez van hozzárendelve és nem a felhasználóhoz. Ennek kiküszöbölésére alkalmaznak kétszintű védelmi rendszert, amelyben a felhasználóhoz kapcsolódó jogokat a szegmens- és lapelérési jogoktól külön tárolják. 46.5 Szubrutinhívás folyamata, a szubrutinhívó assembly utasítások. Az ugrás szubrutinba utasításnál az utasításszámláló tartalmát meg kell őrizni mielőtt az új, azonnali adatot betöltjük az utasításszámlálóba; mivel mivel mikroszámítógépünk rendelkezik egy veremmel az utasításszámláló tartalmát odairányítjuk és az azonnali adatot csak ezután töltjük be az utasításszámlálóba. A legtöbb mikroszámítógép utasításkészlete nem az azonnali utasítások kategóriájában tartalmazza az ugrás és ugrás szubrutinba utasításokat. Azonnali bevitel: LIM RDATA R-rel jelöljük az A0-t, A1-et, DC0-t, DC1-et, DC2-őt, vagy SP-t. A DATA vagy egy szám, vagy egy
számot jelentő szimbólum, ez egyenlő egy 8-bites értékkel, ha R A0 vagy A1 és minden más esetben egy 16 bites értékkel nő. Ugrás: JMP ADDR ADDR az azonosító jele annak az utasításnak, amelynek a végrehajtása soron következik. Ugrás szubrutinba: JSR SNAME SNAME az azonosító jele a szubrutinon belül elsőnek végrehajtott utasításnak. 46.6 Mi a tárvédelem feladata ? Hogy megvédje az egyes felhasználók tárterületeit egymástól, valamint a hogy egy adott felhasználó párhuzamosan futó programjai ne zavarják egymást, ezenkívül, hogy egyik felhasználói program se sértse az operációs rendszer területét. Abszolút címzésnél a határregisztert kellett figyelni, hogy a program nem sérti-e az operációs rendszer területét. Az MFT és MVT algoritmusnál egy helyett két határregiszterre van szükség, hogy minden program védve legyen a másiktól. A lapozással kapcsolatos tárvédelmet laponként valósítják meg egy vagy több
védőbit segítségével. A védőbiteket általában a laptáblában tartják A védelmet általában tovább finomították, általában hardver támogatással, hogy csak olvasható, írható-olvasható és végrehajtható minősítéseket lehessen kezelni. 47.1 Milyen megszakítástípusok lehetnek egy multiprocesszoros rendszerben ? Multiprocesszoros rendszerben egynél több I/O eszköz van a rendszerben, amely megszakításokat generál. Három fő típusa lehet: 47.2 Külső megszakítás: egy vagy több I/O eszköz generálja. Belső megszakítás: maga a mikroprocesszor generálja, hogy sajátos feltételek vagy hibák előfordulását jelezze, például: energiakimaradást, a rendszer meghibásodását, az adattovábbításban előforduló különböző hibákat. Szoftver által generált, szimulált megszakítás: elősegíthetik a programhibák kiküszöbölését, vagy amelyekkel megszakíthatják a szervíztesztek futtatását. Hogyan
törlöm a regisztert ? Kell, hogy minden akkumulátor nullázható legyen; ez gyakori igény például egy összeadás elvégzése előtt vagy egyszerűen csak egy kezdő lépés. A címregiszterek nullázása nem szükséges, mivel ezeknél a leggyakrabban elvégzendő művelet az adat betöltése. Törlést csak akkor alkalmazunk, ha két akkumulátor van. CLA CLB töröld A0-t. töröld A1-et. (Nincs operandusuk.) 47.3 Mit értünk kötegelt feldolgozás (batch processing) alatt ? Időnként vannak olyan nagymennyiségű munkák, amelyeket egyszerre kell elvégezni. Az operációs rendszer egymástól független munkák végrehajtására vonatkozó igényeket fogad, s ezekből olyan kötegeket hoz létre, melyeket azután a körülményeknek megfelelő időpontban hajt végre. A kötegelt rendszerek sajátsága, hogy a programozókat elválasztja a géptől – általában a géptermekből is kitiltották őket – a számítógépes rendszer kezelését pedig az e célra
kiképzett gépkezelők (operátorok) végzik. A programozó dolga az, hogy egy futás eredményeiből minél gyorsabban előállítsa a következő gépi futás anyagát, hiszen elsődleges cél a számítógéprendszer folyamatos leterhelése. Ezt már az egyfelhasználós rendszereknél is meg tudták közelíteni, de csak a multiprogramozás elterjedése, valamint egyes tevékenységek párhuzamossá tétele hozott igazi eredményt. A programozó által összeállított köteg tulajdonképpen “vezérlőnyelven” (munkavezérlő nyelv) írott program, amely a végrehajtáshoz szükséges adatokat vagy az ezek tárolási helyét megadó utalásokat is tartalmazza. A kötegelt rendszerek vezérlőnyelve horizontális jellegű, mert kevés számú parancsból építkezik (vertikális struktúra), de az egyes parancsok igen bonyolultan paraméterezhetők (horizontális struktúra). A kötegelt rendszerek fejlettségi szintjét elég jól jellemzi az erőforráskezelés
automatizálásának és dinamikusságának mértéke, s ezen belül különösen fontos a tárkezelés. A fix, majd a változó partíciók használata után a virtuális címzés jelentette a fejlődést A kevésbé fejlett rendszerek túl hosszú ideig lekötik a folyamatok számára az általuk igényelt erőforrásokat, ami rontja az erőforrások kihasználtságát, de javítja az átbocsátó képességet az alacsonyabb rendszeradminisztrációs terhelés miatt. 47.4 A hierarchikus rendszerben mely programok rendelkeznek a maximális prioritással ? Az operációs rendszer programjai. 47.5 Flag regiszter, flag-típusok és szerepük a gép működésében. Állapotregiszterek(ek), vezérlő regiszter(ek)(status,flag és control register): egy, vagy több regiszteren belül tárolnak vezérlő és ellenőrző jeleket. A műveletek végrehajtásának eredménye alapján bekövetkező állapot jellemzőit tükrözi vissza. (zero flag, overflow flag, carry flag) Egy művelet
végrehajtásának eredménye alapján bekövetkező állapot jellemzőit tükrözi vissza egy-egy helyiértéke, bitje. Zero flag (az eredmény nulla volta) Overflow flag (a keletkezett számérték túl nagy értéke) Carry flag (átvitel keletkezése) Ha nagy a különböző funkciójú bitek száma, akkor szokták használni. 47.6 Milyen lapcsere stratégiákat ismer ? Milyen adatokkal jellemezhetők az egyes módszerek? FIFO: (First-In-First-Out) előbb be-előbb ki Belady féle anomália léphet fel. Bizonyos helyzetekben a keretek számának növelésével nem csökken, hanem növekszik a laphibák aránya. 48.1 OPT: optimális csere algoritmus, azt a lapot kell lecserélni, amelyet a folyamat a leghosszabb ideig nem igényel. Azonban ismerni kell előre a címhivatkozások sorozatát, ezért az algoritmust csak összehasonlító értékelésre használják. Hogyan ismerjük fel a megszakításforrást ? Keletkezési helye: Szoftver
módszer: a kérelem helyének megállapítására. Egy program, többnyire az operációs rendszer részét képező rutin, bizonyos időközönként sorra megvizsgálja, a megszakítási kérelem szempontjából szóbajöhető eszközök állapotjelzőjét és amelyik az igényt jelzi, ott elindítja a kiszolgáló programot (lekérdezéses megszakításkezelés (polling interrupt)). Hardver módszer: egy megszakításvezérlő szabályozza programmal, vagy anélkül a megszakítás kiszolgálását. A megszakítási kérelem (INT jel) vezérlő általi elfogadását egy visszaigazolás (JACK jel) követi.A megszakítási vezérlő egy vagy több megszakítási vezetékkel rendelkezik A kiszolgálás módját a adott rendszer nagymértékben meghatározza. Lehet egy, vagy több megszakítási vonal, valamint van vektoros módszer is. Egy megszakítási vonal esetén: a keletkezés helyének meghatározása történhet szoftver úton, lekérdezéses módszerrel
(polling), amely esetben a beérkező INT jel egy kiszolgáló rutint indít el a processzor segítségével, hardver úton a visszaigazoló JACK vezeték segítségével, sorosan történik (daisy chain), oly módon, hogy a visszaigazoló jel a kiszolgálást kérő eszköztől már nem halad tovább, hasonlóan a sínkérelmek kiszolgálásához. Ez pedig elindítja a kiszolgáló rutint Több megszakítási vonal esetén: minden eszköz saját megszakítást kérő vezetékkel rendelkezik, a kérelem helye egyértelműen megállapítható és a hozzá tartozó kiszolgáló rutin elindítható. A vektoros módszer esetén: a megszakítási rendszerek legáltalánosabban használt formája. Ennél a változatnál, a megszakítást kérő eszköz valamilyen módon a kiszolgáló rutin kezdőcímét határozza meg a megszakítási vezérlő és a processzor számára. A következő formákat alkalmazzák: 48.2 A megszakítást kérő eszköz az őt kiszolgáló rutint
elindító, ún. hívó utasítást (pl: CALL INT RUT) teljes egészében átadja a processzornak végrehajtásra. A megszakítást kérő eszköz annak a tárolóhelynek a címét (pl.: ADR) adja át a processzornak, amelyben a kiszolgáló rutint hívó utasítás található. A megszakítást kérő eszköz az őt kiszolgáló rutinnak a kezdőcímét adja át a processzornak, amely azt mint a soron következő utasítás címét betölti a PC-be. A megszakítást kérő eszköz egy sorszámot ad át a processzornak, amely sorszám a megszakításokat kiszolgáló rutinok kezdőcímeit tartalmazó táblázatban, a megszakítási vektortáblában, kijelöli az adott eszközt kiszolgáló rutin kezdőcímét. A megszakítást kérő eszköz az előző módszernek megfelelően egy sorszámot ad át a processzornak, amely a vektortáblázatban kijelöli a kiszolgáló rutin kezdőcímét, a különbség csak annyi, hogy ebben az esetben a vektortáblát a processzor tárolja belső
táblázatában. Hogyan léptetek a regiszterben ? A léptető (SHIFT) és körbeléptető (ROTATE) műveletek nagyon fontosak a szorzási és osztási algoritmusnál, valamint a számítási műveleteknél. A léptetés , illetve körbeléptetés bekövetkezhet az “átvitel” állapoton keresztül, ebben az esetben a lépetetés, illetve a körbeléptetés azonos műveletté válik. Egy másik változat elágaztat egy bitet az átvitel státuszba, de a régi átvitel állapotot kizárja a léptetésből vagy körbeléptetésből. Léptető és körbeléptető utasítások: SHRA SHRB SHLA Léptesd A0 tartalmát jobbra. Léptesd A1 tartalmát jobbra. Léptesd A0 tartalmát balra. SHLB RORA RORB ROLA ROLB SRCA SRCB SLCA SLCB SRBA SRBB SLBA SLBB SRAA SRAB SLAA SLAB SR4A SR4B SL4A SL4B SR4 SL4 48.3 Léptesd A1 tartalmát balra. Léptesd körbe A0 tartalmát jobbra. Léptesd körbe A1 tartalmát jobbra. Léptesd körbe A0 tartalmát balra. Léptesd körbe A1 tartalmát balra.
Léptesd A0 tartalmát jobbra átvitelen keresztül. Léptesd A1 tartalmát jobbra átvitelen keresztül. Léptesd A0 tartalmát balra átvitelen keresztül. Léptesd A1 tartalmát balra átvitelen keresztül. Léptesd A0 tartalmát jobbra elágazó átvitellel. Léptesd A1 tartalmát jobbra elágazó átvitellel. Léptesd A0 tartalmát balra elágazó átvitellel. Léptesd A1 tartalmát balra elágazó átvitellel. Léptesd A0 tartalmát jobbra, aritmetikai léptetés. Léptesd A1 tartalmát jobbra, aritmetikai léptetés. Léptesd A0 tartalmát balra, aritmetikai léptetés. Léptesd A1 tartalmát balra, aritmetikai léptetés. Léptesd A0 tartalmát jobbra 4 bittel. Léptesd A1 tartalmát jobbra 4 bittel. Léptesd A0 tartalmát balra 4 bittel. Léptesd A1 tartalmát balra 4 bittel. Léptesd A0 és A1 tartalmát jobbra 4 bittel. Léptesd A0 és A1 tartalmát balra 4 bittel. Mit értünk multiprogramozás alatt ? Ha az egyik munka (job) nem csinál éppen semmit, akkor átkapcsol az
operációs rendszer egy másikra. Az épp futó program a folyamat, vagy process. Van egyfelhasználós és többfelhasználós (multiuser: különböző alkalmazások aszinkron végrehajtására képes), valamint egyáramú és többáramú (multitasking) operációs rendszer. Vannak olyanok, amelyek egyszerre mind a két típust támogatják 48.4 Időosztásos: A számítógéprendszer interaktív használatát több felhasználó számára párhuzamosan teszi lehetővé. Ennek érdekében az operációs rendszer a központi egység megfelelő ütemezésével és multiprogramozás alkalmazásával a gép idejét több felhasználó között osztja meg. Az időszelet elmúlásával másik folyamatra kapcsolnak át. (Gyakran kötegelt üzemmódról is gondoskodnak a rutinszerűen ismétlődő munkák végrehajtására.) Interaktív rendszerek, ahol a felhasználó állandó és folyamatos kapcsolatban áll a programjával annak írása és végrehajtása során. A parancsok
azonnal online módon hajtódnak végre Sok parancs van, ezek paraméterezése általában egyszerű Valós idejű: Egyes speciális feladatok gépesítésére szolgálnak. Az adatok a gépbe érzékelőkről (általában mérőműszerekről) érkeznek. Az operációs rendszer feladata az adatok elemzése és – szükség esetén – olyan vezérlő mechanizmusok aktiválása, melyek befolyásolhatják az érzékelők által mért értékeket. Pl.: forgalmi rendszerek, ipari folyamatok vezérélése, kísérletek irányítása stb A munkák elvégzését szigorú időkorlát köti. Eseményvezérelt Az operációs rendszer nem vezérli a feldolgozást, hanem fogadja és teljesíti a kérelmeket. Az emberi beavatkozást igyekszik minimalizálni, azonban ez teljesen mégsem nélkülözhető. A hangsúly a biztonságos üzemen van, ezért a méretezést csúcsterhelésre végzik Milyen módon működik a nem-hierarchikus védelmi rendszer ? A nem-hierarchikus rendszerekben, minden
feladathoz (task-hoz) egy műveleti tábla van hozzárendelve, amely meghatározza azokat a task által elvégezhető műveleteket, amelyek más feladatokat érintenek Ahhoz, hogy egy olyan műveletet végezhessen egy feladat, amely egy másik feladatot is érint, rendelkeznie kell ennek lehetőségével a műveleti táblájában. Ezt a fajta védelmet, amely igen bonyolult rendszert alkot, hardver úton még nem, csak csak operációs rendszer segítségével hozták eddig létre. 48.5 Forgató- és léptetőutasítások. Az operandusok bitjeit jobbra, vagy balra egy, vagy több helyiértékkel eltolják, körbeforgatják. Azaz az egyik oldalon kilépő bitet a másik oldalon belépteti. Az utasítások végrehajtásakor a kilépő bitek egyúttal az átvitel bitbe is belépnek. 48.6 Balra léptetéskor a legalsó helyiértékre 0 lép be, a kilépő legfelső bit az átvitel bitbe íródik. Logikai jobbra léptetéskor baloldalon, a legmagasabb
helyiértékre 0 lép be és a legalsó helyiértéken kilépő bit az átvitel bitbe íródik. Aritmetikai jobbra léptetéskor baloldalon mindig a legfelső helyiérték bitje lép be ismétlődően és a a legalsó helyiértéken kilépő bit az átvitel bitbe íródik. Balra forgatáskor a legfelső helyiértéken kilépő bit a legalacsonyabb helyiértéken, jobbról belép, ugyanakkor az értéke az átvitel jelzőbitbe is beíródik. Jobbra forgatáskor a legalacsonyabb helyiértéken kilépő bit a legfelső helyiértéken, balról belép, ugyanakkor az értéke az átvitel jelzőbitbe is beíródik. Mi a parancsértelmező feladata ? Egy-egy utasítás feldolgozása az utasítás előkeresését, értelmezését és az előírt feladat végrehajtását jelenti. Egy utasítás feldolgozása az alábbi részekből tevődik össze: Utasításelőkészítés, -lehívás Utasításszámláló regiszter tartalmának növelése Műveleti kód értelmezése,
dekódolása és az operandus címének meghatározása Művelethez szükséges adat(ok) előkészítése Végrehajtás Az eredmény elhelyezése Az utasításfeldolgozás soros megoldása: Amennyiben nincs külön program- és adattároló (Neumann-elvű számítógép), akkor ugyanabból a tárolóból kell előkeresni az utasítást és az adatokat is. Ez csak egymást követően, sorosan történhet meg Az utasításfeldolgozás párhuzamos megoldása: Az utasítás előkészítése, az adatok előkészítése és a műveletek végrehajtása gyakorlatilag párhuzamosan történik, azt lehet mondani, hogy egy utasításfeldolgozási ciklusban történik az utasítás teljes feldolgozása. 49.1 Milyen módszerek vannak egy megszakítás forrásának felismerésére ? Keletkezési helye: Szoftver módszer: a kérelem helyének megállapítására. Egy program, többnyire az operációs rendszer részét képező rutin, bizonyos időközönként sorra megvizsgálja, a
megszakítási kérelem szempontjából szóbajöhető eszközök állapotjelzőjét és amelyik az igényt jelzi, ott elindítja a kiszolgáló programot (lekérdezéses megszakításkezelés (polling interrupt)). Hardver módszer: egy megszakításvezérlő szabályozza programmal, vagy anélkül a megszakítás kiszolgálását. A megszakítási kérelem (INT jel) vezérlő általi elfogadását egy visszaigazolás (JACK jel) követi.A megszakítási vezérlő egy vagy több megszakítási vezetékkel rendelkezik A kiszolgálás módját a adott rendszer nagymértékben meghatározza. Lehet egy, vagy több megszakítási vonal, valamint van vektoros módszer is. Egy megszakítási vonal esetén: a keletkezés helyének meghatározása történhet szoftver úton, lekérdezéses módszerrel (polling), amely esetben a beérkező INT jel egy kiszolgáló rutint indít el a processzor segítségével, hardver úton a visszaigazoló JACK vezeték segítségével, sorosan
történik (daisy chain), oly módon, hogy a visszaigazoló jel a kiszolgálást kérő eszköztől már nem halad tovább, hasonlóan a sínkérelmek kiszolgálásához. Ez pedig elindítja a kiszolgáló rutint Több megszakítási vonal esetén: minden eszköz saját megszakítást kérő vezetékkel rendelkezik, a kérelem helye egyértelműen megállapítható és a hozzá tartozó kiszolgáló rutin elindítható. A vektoros módszer esetén: a megszakítási rendszerek legáltalánosabban használt formája. Ennél a változatnál, a megszakítást kérő eszköz valamilyen módon a kiszolgáló rutin kezdőcímét határozza meg a megszakítási vezérlő és a processzor számára. A következő formákat alkalmazzák: A megszakítást kérő eszköz az őt kiszolgáló rutint elindító, ún. hívó utasítást (pl: CALL INT RUT) teljes egészében átadja a processzornak végrehajtásra. A megszakítást kérő eszköz annak a tárolóhelynek a címét
(pl.: ADR) adja át a processzornak, amelyben a kiszolgáló rutint hívó utasítás található. A megszakítást kérő eszköz az őt kiszolgáló rutinnak a kezdőcímét adja át a processzornak, amely azt mint a soron következő utasítás címét betölti a PC-be. A megszakítást kérő eszköz egy sorszámot ad át a processzornak, amely sorszám a megszakításokat kiszolgáló rutinok kezdőcímeit tartalmazó táblázatban, a megszakítási vektortáblában, kijelöli az adott eszközt kiszolgáló rutin kezdőcímét. A megszakítást kérő eszköz az előző módszernek megfelelően egy sorszámot ad át a processzornak, amely a vektortáblázatban kijelöli a kiszolgáló rutin kezdőcímét, a különbség csak annyi, hogy ebben az esetben a vektortáblát a processzor tárolja belső táblázatában. 49.2 Melyek a műveleti utasítások tárgykódjai ? 49.3 Multiprogramozásnál milyen módszereket használnak a processzor idejének szétosztására? Ha egy
munka (job) végrehajtása közben várni kell valamire, akkor átvált az operációs rendszer egy másik feladatra. Az átkapcsolás amennyiben az új munka is várakozási állapotba kerül további munkák indítását eredményezheti. Amikor a felfüggesztett munkák közül valamelyik folytathatóvá válik, akkor azt folytatni kell, esetleg az éppen aktív munka felfüggesztése árán is. Az éppen futó program a folyamat (process) Ez a program dinamikus megfelelője, program működő állapotban. Alapelve: a kényszerű várakozási idők kihasználása. Van egy vezérlőfolyamat, az operációs rendszer (alsó szintű) ütemezője, ami a vele párhuzamosan futó folyamatok (futó programok) haladását irányítja. Ehhez valamilyen ütemezési stratégiát használ fel. Az ütemezést a folyamatok különböző sorokba való rendezésével és a megfelelő sorkezelő algoritmus segítségével oldják meg. Az ütemezés két esetleg három szinten megy végbe A magas
szintű ütemező a várakozó munkákból kiválasztja a készenléti sorba kerülőket. Az alacsony szintű pedig ebből a sorból aktivál egy-egy folyamatot. Ennek feladata az egyenletes terhelés biztosítása A leggyakoribb algoritmusok: Előbb jött-előbb fut: az először jött fut. (csorda hatás) A legrövidebb előnyben: a legrövidebb fut. Prioritás alapú vezérlés: minden feladathoz egy egész számmal kifejezett prioritás tartozik, ez jelöli a feladat fontosságát, mindig a legmagasabb prioritású feladat fut. (kiéheztetés, öregedés) Körbenjárásos üzem: az alacsony ütemező körben jár és minden folyamat megkapja maximum egy időszeletre a központi egységet. Nagyobb számítógépes rendszereknél a munkákat két vagy több csoportra oszthatják. Például az előtérben futó interaktív és a háttérben futó kötegelt munkák szétosztására. A több sorral dolgozó ütemező a készenléti sort több, különálló sorra
osztja. A visszacsatolásos többszintű soroknál az alapelv, hogy ha egy folyamat túl sok CPU időt használ, átkerül egy alacsonyabb prioritású sorba. 49.4 Milyen módon biztosítják az adatokhoz való hozzáférés ellenőrizhetőségét ? A feladatok által használt adatok védelme érdekében, a szegmensekhez, lapokhoz való hozzáférési jogokat szabályozza a védelmi rendszer. A leggyakoribb hozzáférési jogok: Olvasási jog (read access): tetszőleges adat olvasás. Írási jog (write access): új adat felvétel és módosítási lehetőség. Végrehajtási jog (execute access): végrehajtható egy program. Az elérési jogokat a szegmensekhez, lapokhoz tartozó leírók (deszkriptorok) tartalmazzák, ezért a folyamatoknak előbb a deszkriptortáblákban kell ellenőrizniük a jogosultságukat az adott tárolórészhez. 49.5 Perifériakezelő assembly utasítások. Egy mikroszámítógéprendszer használhatatlan lenne, ha nem rendelkezne olyan
eszközzel, amellyel adatokat kaphat külső berendezésekből és adatokat továbbíthat azokhoz. Ez a bemenet/kimenet, amit a bemenő/kimenő utasítások határoznak meg. Rövid (short) bemenet: INS P P 0, 1 és 2 értéket vehet fel. Ez határozza meg a három I/O port egyikét Hosszú (long) bemenet: IN P A P 0 és 255 között vehet fel értékeket. Rövid (short) kimenet: OUTS P P 0, 1 és 2 értéket vehet fel. Ez határozza meg a három I/O port egyikét Hosszú (long) kimenet: OUT P A P 0 és 255 között vehet fel értékeket. 49.6 Ismertesse az eszközvezérlők és a megszakításkezelők szerepét ! A processzornak a leggyakrabban a memóriával kell kapcsolatot teremtenie, de ugyanilyen fontos a gép számára a perifériákkal lebonyolított adatforgalom is. A legnagyobb gondot az eszközök eltérő sebessége okozza, de problémát jelent az eszközök változatossága is. Az eltéréseket csökkenti a közös sín használata, illetve az eszközt a sínhez
illesztő vezérlő egység. Az eszközök kapcsolatát a processzorral az eszközvezérlőkben található regiszterek segítségével oldják meg. Parancs (command) regiszter: írható regiszter, egyes bitjei az eszközvezérlőnek szóló előírásokat jelentenek. Állapot (status) regiszter: olvasható regiszter, az eszközvezérlő segítségével a periféria állapotáról ad információt. Adatkimenet (data output) regiszter: a kiírandó adatot fogadja be átmenetileg. Adatbemenet (data input) regiszter: a beolvasott adatot fogadja be átmenetileg. A megszakításos adatátvitelnél a periféria kezdeményezi az átvitelt. Az ilyen átvitelek lebonyolításához az I/O portoknak regiszterekkel kell rendelkeznie. Az átvitel kezdetén, a megfelelő utasítás kiadásával a processzor jelzi az I/O eszköz számára az átvitelre vonatkozó indítási igényét. Az I/O eszköz ezután az átvitel kezdetére alkalmas időpontot a processzor felé küldött
megszakítási kérelmével jelzi. A megszakítás kiszolgálása eredményezi az adatátvitelt. A megszakításos adatátvitel előnye, hogy a processzor lényegesen kevesebb időt tölt az adatátvitel irányításával. 50.1 Mi történik, ha egyszerre több megszakításkérés érkezik ? A megszakítási kérelem feldolgozása szempontjából a megszakítási rendszer lehet egy vagy többszintű. Az egyszintű megszakítási rendszerben nincs lehetőség a kiszolgáló rutin felfüggesztésére egy újabb megszakítási kérelem által. A többszintű rendszerekben a megszakítást kiszolgáló rutin is megszakítható, de csak bizonyos szabályok betartásával. Ezek az alábbiak: 50.2 A kiszolgáló rutin a vele egyező, vagy a nála alacsonyabb prioritású megszakítási kérelmeket letiltja. A kiszolgáló rutin a folyamat kezdetekor ideiglenesen alacsonyabb prioritási szintre sorolja magát, így a vele egyező, vagy nála magasabb prioritású kérelmek
megszakíthatják a kiszolgálás folyamatát. A kiszolgáló rutin ideiglenesen új prioritásokat rendel az egyes eszközökhöz és így a kiszolgálás alatt más prioritási rend érvényesül mint egyébként. Hogyan kezeljük a megszakításokat a mikroszámítógépünkben ? A megszakítási kérelem helyének és a kiszolgáló rutin kezdőcímének megállapítása után, a processzor elindíthatja magát a kiszolgáló eljárást. Hardver által : Az eszközvezérlő beállítja az INT vonalat, jelezve evvel a megszakítási kérelmet. A processzor visszaigazolja (IACK) a megszakítási kérelem elfogadását. Az eszközvezérlő az adatvonalra helyezi a megszakítási vektor sorszámát. A processzor tárolja a megszakítási vektor sorszámát. A processzor elmenti az utasításszámláló (PC)- és az állapot- (PSW) regiszterek tartalmát a veremtárolóba. A vektortáblából a sorszám alapján kikeresi a kiszolgáló rutin kezdőcímét és
azt betölti az utasításszámláló regiszterbe; majd elkezdi a kiszolgáló rutin végrehajtását. Szoftver által: A megszakított feldolgozás részeredményeit elmenti a regiszterekből a verembe, vagy a tárolóba. Ha a megszakítást kiszolgáló rutin több eszközhöz is tartozhat, akkor a megszakítást kérő eszköz azonosítására egy külön tárolóhely felhasználásával, amely az eszközazonosítót tárolja. A kiszolgáláshoz szükséges egyéb paraméterek összegyűjtése. A megszakítást okozó esemény kezelése, megszűntetése. A megszakítás kiszolgálása, befejeztének jelzése. A felfüggesztett feldolgozás adatainak a visszatöltése a regiszterekbe. A kiszolgáló rutin befejezése, visszatérés a feldolgozó programhoz. Hardver által: 50.3 Az elmentett PSW és PC visszatöltése, a feldolgozás folytatása. Mit értünk a prioritásos multiprogramozási módszer alatt ? Prioritás alapú vezérlés: minden
feladathoz egy egész számmal kifejezett prioritás tartozik, ez jelöli a feladat fontosságát, mindig a legmagasabb prioritású feladat fut. Az SJF (Shortest-Job-First=legrövidebb előnyben) algoritmus általánosítása. A prioritás belülről (SJF, időhatárok, állományok száma, B/K igényesség, tárigény alapján) vagy kívülről (felhasználó privilégiuma, magasabb díjtétel, feladat objektív fontossága, üzletpolitika alapján) adható meg. Problémája az ún. kiéheztetés Egy kész állapotban lévő folyamat várakozási ideje nem korlátos A folyamatosan érkező nagyobb prioritású folyamatok egy alacsony prioritású munkát hosszú várakozásra kényszeríthetnek. Megoldása egyszerű, be lehet vezetni az öregedés fogalmát a készenléti sorban eltöltött idő alapján. Minden 5 perc várakozás után eggyel növeljük a prioritását Így minden feladat sorra kerül További finomítása az ún. kizárás Ha a várakozási sorba az éppen
aktív folyamatnál nagyobb prioritású folyamat érkezik, akkor az kiszorítja az aktív folyamatot és megkapja a CPU-t. 50.4 Mit szabályoznak a hozzáférési jogok ? A feladatok által használt adatok védelme érdekében, a szegmensekhez, lapokhoz való hozzáférési jogokat szabályozza a védelmi rendszer. A leggyakoribb hozzáférési jogok: 50.5 Olvasási jog (read access): tetszőleges adat olvasás. Írási jog (write access): új adat felvétel és módosítási lehetőség. Végrehajtási jog (execute access): végrehajtható egy program. Fontosabb félvezető technikák, jellemzőik, hatásuk a számítógép iparra. A félvezetők olyan anyagok (elem, vegyület), amelyeknek vezetőképessége tiszta állapotban a fémeké és a szigetelőanyagoké között van és benne a szabad töltéshordozók koncentrációja a hőfok emelkedésével nő. Olyan anyagokat, amelyekben a töltéshordozók ionok, általában nem tekintünk félvezető anyagoknak.
Félvezető anyagok: Kémiai elemek: Si (szilícium), Ge (germánium), Se (szelén) Kémiai vegyületek: szulfidok, oxidok, telluridok stb. Intermetallikus ötvözetek: gallium-arzenid, indiumantimonid stb. Vannak N (a vezetést a túlnyomó többségben lévő mozgékony elektronok okozzák) és P (a vezetést a túlnyomó többségben lévő mozgékony pozitív lyukak okozzák) típusú félvezetők. Fő fejlesztési irányok a félvezető technikában: Integráltsági fok növelése Vonalvastagság csökkentése Szeletátmérő növelése A technológiai műveletek automatizálása Rendszertechnikai egyszerűsítések Felhasználói igényre készülő áramkörök kidolgozása Új technológiai eljárások kidolgozása Az integráltsági fok növelésével egyre inkább a szilárd anyagon belüli szerkezet kialakításából áll egy digitális technikai berendezés elektronikai része. Az integrált áramkörök belső felépítése is egyre
tökéletesebbé válik, mert nemzetközi versenyt kell minden áramkörnek kiállnia, a piacok megszerzése érdekében. A technológiai fejlesztések az egyes paraméterek (pl: gyorsaság) javítása mellett továbbra is az integráltsági fok növelésére irányulnak. Az integráltsági fok növelésével javul a megbízhatóság, nő a jobb minőségű készülékek iránti kereslet és így az ár is. Az előállítási és üzembehelyezési, és szervízköltségek csökkennek. A fejlesztési és gyártási idő 60-80%-kal csökken Nő az alkalmazhatóság időtartama A korábban kialakult technológiák és konstrukciós megoldások felhasználhatók a mikroprocesszorok gyártásához. 50.6 Mik a rendszerhívások és miért van rájuk szükség ? A rendszerhívások azok a programutasítások, szolgáltatásokat tudunk lekérni. Két fő típusa van: amelyekkel programunkból operációs rendszeri Rendszerprimitívek: az operációs rendszerek (vagy alrendszerek)
azon funkcióit, melyeknek algoritmusa homogén (egy célnak szentelt) kód, és igénybevételét nem kell diszpécserrel ütemezni, primitív műveleteknek nevezzük. A végrehajtás során nem keletkezhet olyan helyzet, amelyben a rutin végrehajtása megakad. A primitív funkciók csak meglehetősen rövid lélegzetű rutinok lehetnek Szinte kötelezően tárrezidensek és gyorsan kell reagálniuk. Folyamatként futó rutinok: azokat a rendszerhívásokat, amelyek aktivizálása során bejegyzések keletkeznek a diszpécser vezérlőtáblázataiban, folyamatként futó rutinoknak nevezzük. A megszakításokat sosem tiltják le működésük teljes idejére. Elakadásokat tartalmaz, amelyekből csak megszakítás útján lehet kikeveredni. Mindig a rendszermag részét képezik Többféle privilégiumot is elvezhetnek. Leírásuk vagy egy táblázatban van, vagy egy speciális mutatólánc segíti a megtalálást Elegendően nagy prioritással kell biztosítani az
elsőbbséget. A CPU valamelyik privilegizált üzemmódját használják, így a szükséges vezérlőtáblázatokhoz közvetlenül hozzáférhetnek és egyes rendszerprimitíveket is közvetlenül hívhatnak. Ez egyszerűsítést és jelentős sebességnövekedést eredményez