Operációs rendszer szintje Operating System Machine (OSM)

Slides:



Advertisements
Hasonló előadás
Nevezetes algoritmusok
Advertisements

Adatelemzés számítógéppel
Adatbázisrendszerek elméleti alapjai 2. előadás
A számítógép műszaki, fizikai része
Hatékonyságvizsgálat, dokumentálás
A számítógép felépítése
A mikroprocesszor 1. rész.
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
Számítógépek felépítése 3. előadás CPU, utasítás ciklus, címzés
Lapcsere stratégiák FIFO, LRU, OPT, SC
Adatbázisrendszerek elméleti alapjai 6. előadás
Táblázat kezelő programok
Adatbázisrendszerek elméleti alapjai 5. előadás
Operációs rendszerek / II. félév. MEMÓRIAGAZDÁLKODÁS A memória hierarchikus szerveződése: –cache memória –központi memória (RAM) –lemezes tároló.
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Máté: Architektúrák13. előadás1 procedure MásodikMenet;  2. menet, vázlat  const méret = 8; EndUtasítás = 99; var HelySzámláló, osztály, hossz, kód:
Máté: Architektúrák10. előadás1 Operációs rendszer szintje Operating System Machine (OSM) Ezen a szinten programozóknak rendelkezésre állnak a felhasználói.
EKG kapuzott (ECG gated) szív vizsgálat
Máté: Orvosi képfeldolgozás1. előadás1. Máté: Orvosi képfeldolgozás1. előadás2 A leképezés fizikai alapjai Fény, fénykép, mikroszkóp Röntgen sugárzás.
A memória.
Az operációs rendszerek
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Utasítás végrehajtás lépései
CISC - RISC processzor jellemzők
Számítógép memória jellemzői
Fuzzy halmazok. 4. előadás2 3 4 Egy hagyományos halmazEgy Fuzzy halmaz.
Felkészítő tanár: Széki Tibor tanár úr
A memóriák típusai, jellemzői
A memória tárolja a végrehajtandó programokat és a feldolgozásra váró adatokat. A számítógép memóriája adattárokból áll. Minden ilyen adattár memóriaelemekből.
Memória hierarchia Tárolókezelő egység
1 Operációs rendszerek Az NT folyamatok kezelése.
A programozás alapjai A számítógép számára a feladat meghatá- rozását programozásnak nevezzük. Ha a processzor utasításait használjuk a feladat meghatározásához,
MI A MEMÓRIA? A memória tulajdonképpen egy logikai áramkör, ami adatok megőrzésére alkalmas. Az adat számunkra most azt jelenti, hogy van-e jel vagy nincs.
Máté: Architektúrák12. előadás1 Operációs rendszer szintje Operating System Machine (OSM) Ezen a szinten programozóknak rendelkezésre állnak a felhasználói.
Számítógép architektúra Címzésmódok. 2007Címzésmódok2-21 Operandusok egy operandus hossza lehet: –1 byte –2 byte (szó) –4 byte egy operandus lehet: –az.
Számítógép architektúrák
1.4. Fordítás, szerkesztés, az objektumkönyvtár használata.
Hernyák Zoltán Programozási Nyelvek II.
A Mikroprocesszor Harmadik rész.
Podoski Péter és Zabb László. Bevezető Algoritmus-vizualizáció témakörében végeztünk kutatásokat és fejlesztéseket Felmértük a manapság ismert eszközök.
Webprogramozó tanfolyam
A Visual Basic nyelvi elemei
Funkciós blokkok A funkciós blokkok áttekintése Az alkalmazás előnyei.
Készítette: Pandur Dániel
Az internetes keresési módszerek
Osztott adatbázisok.  Gyors ismétlés: teljes redukáló  Teljes redukáló költsége  Természetes összekapcsolások vetítése  Természetes összekapcsolások.
Ismerkedjünk tovább a számítógéppel
Barna Róbert KE GTK Informatika Tanszék Pénzügyi feladatok VBA támogatása 7. előadás.
Programozás, programtervezés
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
Számítógép-architektúrák
C Programozási alapok.
Írja fel a tizes számrendszerbeli
Máté: Architektúrák13. előadás1 Assembler egy sor olvasása a beolvasott sor fordítása a lefordított utasítás az object file-ba a sor és a lefordított utasítás.
Memória példák Feladat Egy számítógép rendszermemóriája egycsatornás, 64 bites adategységekkel rendelkező DDR1-DRAM-ra épül, melyben a burst.
HEFOP 3.3.1–P /1.0A projekt az Európai Unió társfinanszírozásával, az Európa terv keretében valósul meg. 1 Számítógép architektúrák dr. Kovács.
Memóriakezelés feladatok Feladat: 12 bites címtartomány. 0 ~ 2047 legyen mindig.
Memóriakezelés feladatok. 1.Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 bájt = 4 kB méretű, a laptábla.
A ROM ÉS A BIOS. K ÉSZÍTETTE R ELL P ATRIK A ROM A ROM egy olyan elektrotechnikai eszköz, amely csak olvasható adatok tárolására alkalmas memória. Tartalma.
1 A számítógépek tárolói. 2 Memória Memóriaszó  A tárak olyan egységei, melyek egyetlen művelettel kezelhetők.  A legrövidebb memóriaszó a byte (bájt)
Programok készítése és futtatása. Integrált fejlesztői környezet (IDE) tartalmaz:  szövegszerkesztőt a program forráskódjának szerkesztésére,  fordítóprogramot.
Programstruktúrák. Program A program utasítások olyan sorozata, amely a számítógépen önállóan képes megoldani egy feladatot. A program háttértáron futtatható.
Memóriakezelés feladatok A jegyzet 2015-ös változata szerinti számozással.
RAM (Random Access Memory)
Programozási nyelvek típusossága.
Számítógépek felépítése 6. előadás virtuális tárkezelés
procedure MásodikMenet; 2. menet, vázlat
Számítógép architektúrák
Memória példák 2019.
Cache példák 2019 (IMSC).
Előadás másolata:

Operációs rendszer szintje Operating System Machine (OSM) Ezen a szinten programozóknak rendelkezésre állnak a felhasználói módban használható ISA szintű utasítások és az operációs rendszer által hozzáadott utasítások: rendszerhívások (system calls). Ezeket az operációs rendszer eljárásai valósítják meg (értelmezés). 432-433 Máté: Architektúrák 12. előadás

Virtuális memória Régen nagyon kicsi volt a memória. Sokszor nem fért el az egész program a memóriában. Overlay (átfedés): A program több része fut ugyanazon a memória területen, mindig az aktuálisan futó rész van a memóriában, a többi rész mágneslemezen van. A programozó dolga a feladat átfedő részekre bontása, és a részek mozgatása a memória és a lemez között. Ma már sokkal nagyobb ugyan a memória, de még sokkal nagyobb lehet a címtartomány (address space). 433-434 Máté: Architektúrák 12. előadás

Lap méret: 512 B – 64 KB (– 4 MB), mindig 2 hatványa. Virtuális címtartomány: azok a címek, amelyekre a program hivatkozni tud. Fizikai címtartomány: azok a címek, amelyek tényleges memória cellát címeznek. A virtuális és fizikai címtartomány ugyanolyan méretű lapokra van osztva (6.3. ábra). A fizikai „lapokat” lapkeretnek (page frame) nevezzük. Lap méret: 512 B – 64 KB (– 4 MB), mindig 2 hatványa. 435-437 Máté: Architektúrák 12. előadás

A virtuális címtartomány sokkal nagyobb, mint a fizikai! Lap Virtuális címek N - … 4 16384 20479 3 12288 16383 2 8192 12287 1 4096 8191 4095 Lapkeret Fizikai címek n - … 4 16384 20479 3 12288 16383 2 8192 12287 1 4096 8191 4095 A virtuális címtartomány sokkal nagyobb, mint a fizikai! Mit kell tenni, ha olyan címre történik hivatkozás, amely nincs a memóriában? 435-437 Máté: Architektúrák 12. előadás

Virtuális címtartomány Egy lapkeret (pl. a 0-4095) tartalmának lemezre mentése. A kérdéses lap megkeresése a lemezen. A kérdéses lap betöltése a lapkeretbe. A memória térkép megváltoztatása: pl. a 4096 és 8191 közötti címek leképezése a betöltött lapkeret címtartományába. A végrehajtás folytatása. Virtuális címtartomány Fizikai címtartomány … 8196 4096 … 8196 4096 434-436 leképezés Máté: Architektúrák 12. előadás

A virtuális címek fizikai címekre történő leképezését az MMU (Memory Management Unit – memória kezelő egység végzi. Memória térkép (memory map) vagy laptábla (page map) kapcsolja össze a virtuális címeket a fizikai címekkel. Pl., 4 KB-os lapméret 32 bites virtuális cím esetén 1 millió virtuális lap van, ezért 1 millió bejegyzésű laptáblára van szükség. 32 KB fizikai memória esetén csak 8 lapkeret van, ezért a leképezés megoldható 8 cellás asszociatív memóriával is (a gyakorlatban több ezer lapkeret van, és az asszociatív memória igen drága). 435-437 Máté: Architektúrák 12. előadás

Asszociatív memória kulcs kulcsmező szelektor össze-hasonlító tartalom 449, 536 Máté: Architektúrák 12. előadás

20 bites virtuális lapszám Jelenlét/hiány (present/absent) 15 bites fizikai cím Laptábla 1 … 4 3 1 110 2 … 1 20 bites virtuális lapszám 12 bites offset 32 bites virtuális cím 437-440 6.4. ábra Máté: Architektúrák 12. előadás

6.5. ábra virtuális lap Laptábla … lap keret … lap keret 15 14 1 4 13 12 11 5 10 9 8 3 7 6 2 lap keret fizikai memória … 6. virtuális lap 7 5. virtuális lap 6 11. virtuális lap 5 14. virtuális lap 4 8. virtuális lap 3 3. virtuális lap 2 0. virtuális lap 1 1. virtuális lap 437-440 Máté: Architektúrák 12. előadás

Laphiba (page fault): a lap nincs a memóriában. Kérésre lapozás (demand paging): lapozás csak laphiba esetén. A program egyetlen bájtja sem kell bent legyen a memóriában, csak a másodlagos tárolón. Időosztásos rendszereknél nem kielégítő! Munka halmaz (working set): a legutóbbi k memória hivatkozásban szereplő lapok halmaza (az operációs rendszer feladata megállapítani). Időosztásos rendszerekben ezek a lapok előre visszatölthetők. Ha a munkahalmaz nagyobb, mint a lapkeretek száma, akkor gyakori lesz a laphiba. A nagyon gyakori laphibát vergődésnek (thrashing) nevezzük. 437-440 Máté: Architektúrák 12. előadás

Lapkezelési eljárások: melyik lap helyett töltsük be a kért lapot? LRU (Least Recently Used, legrégebben használt): általában jó, de nem jó pl. 9 lapon átnyúló ciklus esetén, ha csak 8 memória lap van (6.6. ábra). 7. Virtuális lap 6. Virtuális lap 5. Virtuális lap 4. Virtuális lap 3. Virtuális lap 2. Virtuális lap 1. Virtuális lap 0. Virtuális lap 7. Virtuális lap 6. Virtuális lap 5. Virtuális lap 4. Virtuális lap 3. Virtuális lap 2. Virtuális lap 1. Virtuális lap 8. Virtuális lap 7. Virtuális lap 6. Virtuális lap 5. Virtuális lap 4. Virtuális lap 3. Virtuális lap 2. Virtuális lap 0. Virtuális lap 8. Virtuális lap 441-442 Máté: Architektúrák 12. előadás

FIFO (First-in First-Out, először be, először ki): egyszerűbb (de most ez se jobb, mint LRU). Csak a módosult (dirty, szennyezett) lapokat kell visszaírni, a tisztát (clean) nem (szennyezés bit). Most is előnyös, ha az utasítások és az adatok elkülönülten helyezkednek el a memóriában: az utasításokat nem kell visszaírni. 441-442 Máté: Architektúrák 12. előadás

Lapméret és elaprózódás Ha egy program k lapon fér el, akkor általában a k-dik lap nincs tele. Ha a lap mérete n, akkor programonként átlagosan n/2 bájt kihasználatlan: belső elaprózódás (internal fragmentation). A belső elaprózódás ellen a lap méretének csökkentésével lehet védekezni, de ez a laptábla méretének növekedéséhez vezet. A kis lap előnytelen a lemez sávszélességének kihasználása szempontjából, viszont kisebb a vergődés kialakulásának valószínűsége. 443 Máté: Architektúrák 12. előadás

Egy fordítóprogramnak a következő célokra kellhet memória (6.7. ábra): Szegmentálás Egy fordítóprogramnak a következő célokra kellhet memória (6.7. ábra): szimbólum tábla, forrás kód, konstansok, elemzési fa, verem. Rögzített memória felosztás esetén ezek egyike kicsinek bizonyulhat, miközben a többi nem használja ki a rendelkezésére álló tartományt. Virtuális címtartomány Szabad Jelenleg használt Verem terület Elemzési fa Konstans tábla Forrás szöveg 443-444 Szimbólum tábla Máté: Architektúrák 12. előadás

Szegmentálás (6.8. ábra) Szegmentált memóriában minden tábla a többitől függetlenül nőhet vagy zsugorodhat. Szim-bólum tábla 20 K 16 K 12 K 8 K 4 K Hívási verem Forrás szöveg Elemzési fa Konstans tábla 443-444 0. szegmens 1. szegmens 2. szegmens 3. szegmens 4. szegmens Máté: Architektúrák 12. előadás

kód: csak végrehajtható, nem írható, nem olvasható, Szegmens (6.8. ábra) A programozó számára látható logikai egység. Minden szegmens címtartománya 0-tól valamilyen maximumig terjed. A szegmens tényleges mérete ennél kisebb lehet. A program számára a címtartomány két dimenziós: (szegmens, offset). Általában egy szegmensben csak egyféle dolgok vannak: vagy kód vagy konstans vagy … Különböző tárvédelmi lehetőségek: kód: csak végrehajtható, nem írható, nem olvasható, konstans: csak olvasható … 444-446 Máté: Architektúrák 12. előadás

A szegmentálás és a virtuális memória összehasonlítása (6.8. ábra) Szempontok Lapozás Szegmentálás Tudnia kell róla a programozónak? Nem Igen Hány lineáris címtartomány létezik? 1 Több Meghaladhatja-e a virtuális címtartomány nagysága a fizikai memória méretét? Könnyen kezelhetők a változó méretű táblák? Mi ennek a technikának a lényege? Nagy memória szimulálása Több címtartomány biztosítása 444-446 Máté: Architektúrák 12. előadás

A szegmentálás megvalósítása Lapozással: Minden szegmensnek saját laptáblája van. A szegmens néhány lapja a memóriában van. Cseréléssel: Teljes szegmensek mozognak a memória és a lemez között. Ha olyan szegmensre hivatkozunk, amely nincs a memóriában, akkor betöltődik. Külső elaprózódáshoz (external fragmentation) vezethet (6.10. ábra). Lyukacsosodásnak (checkerboarding) is nevezik. 447-449 Máté: Architektúrák 12. előadás

Összepréselés: idő igényes, de időnként kell. Legjobb illesztés (best fit) és első illesztés (first fit) algoritmus. Az utóbbi gyorsabb és jobb is az általános hatékonyság szempontjából. 447-449 Máté: Architektúrák 12. előadás

A szegmens regiszter tartalmazza a szelektort. Pentium II (6.12-14. ábra) A szegmens regiszter tartalmazza a szelektort. 13 1 2 Index Szelektor: 0: GDT 1: LDT Védelmi szint: 0-3 A szelektor (6.12. ábra) indexe választja ki a leírót (descriptor) a lokális (LDT, Local Descriptor Table) vagy globális leíró táblából (GDT, Global Descriptor Table). (6.13. ábra). A 0. leíró használata csapdát eredményez (hiba). 450-452 Máté: Architektúrák 12. előadás

Ha P=0, csapda: be kell tölteni a szegmenst. BASE 0-15 LIMIT 0-15 B 24-31 G D L 16-19 P DPL TYPE B 16-23 0: LIMIT értéke bájtokban 1: LIMIT értéke lapokban (lap ≥ 4 KB) 0: 16 bites szegmens r. 1: 32 bites szegmens r. Szegmens típusa, védelme Védelmi szint (0-3) 0: a szegmens nincs a memóriában 1: a szegmens a memóriában van Ha P=0, csapda: be kell tölteni a szegmenst. 450-452 Máté: Architektúrák 12. előadás

Lapozást tiltó flag (a globális vezérlőregiszter bitje): 32 bites lineáris cím Szelektor Bázis cím Limit Más mezők Offset Leíró + 6.14. ábra Ha offset (a szegmens elejéhez viszonyított relatív cím) a szegmens határán túl van, csapda (hiba). Lapozást tiltó flag (a globális vezérlőregiszter bitje): Ha engedélyezett: lineáris cím = virtuális cím Ha tiltott: lineáris cím = fizikai cím 450-452 Máté: Architektúrák 12. előadás

Lapkönyvtár (page directory 6.15. ábra) A 32 bites lineáris címek és a 4 KB-os lapok miatt egy szegmenshez egymillió lap is tartozhat. Túl sok! Minden futó programhoz egy lapkönyvtár tartozik. Minden bejegyzés egy laptáblára mutat, vagy sehova. Lineáris cím 10 12 DIR PAGE OFF Lapkönyvtár 1023 … 2 1 32 bit Laptábla 1023 … 2 1 32 bit Lapkeret 4095 … 2 1 32 bit 452-453 Máté: Architektúrák 12. előadás

Csak a ténylegesen használt virtuális lapokhoz kell laptábla Csak a ténylegesen használt virtuális lapokhoz kell laptábla. A lapkönyvtárnak azokhoz a mutatóihoz, amelyek nem mutatnak sehova, nem kell helyet foglalni a laptábla számára (rövid szegmenshez csak két ezer, és nem egy milliós bejegyzésű tábla kell). A táblákban minden bejegyzéshez 32 bit áll rendelkezésre. A mutatókhoz nem használt biteket a hardver az operációs rendszer számára hasznos jelzésekkel tölti ki (védelem, szennyezettség, hozzáférés, …). Speciális hardver támogatja a legutóbb használt lapok gyorsabb elérését. 452-453 Máté: Architektúrák 12. előadás

A Pentium II védelmi rendszere (6.16. ábra) A futó program pillanatnyi szintjét a PSW tartalmazza. A program a saját szintjén lévő szegmenseket szabadon használhatja. Magasabb szinten lévő adatokhoz hozzáfér, de az alacsonyabb szinten lévők kezelése csapdát okoz. Más szinten lévő eljárás hívásánál CALL helyett szelektort kell alkalmazni, ez egy hívás kaput (call gate) jelöl ki (más védelmi szintre csak szabványos – tehát ellenőrzött – belépési ponton lehet áttérni). 0 1 2 3 szint A szintek egy lehetséges felhasználása: Felhasználói programok Osztott könyvtár Rendszer hívások Kernel 453-454 Máté: Architektúrák 12. előadás

Az UltraSPARC II virtuális memóriája Virtuális cím 64 bites, egyelőre 44 bitre korlátozva. Virtuális címtartomány megengedett zónák 243-1 264-243 264-1 44 bitre korlátozva ez a címtartomány folytonos. Fizikai címtartomány maximum 41 bites. A kód és adat lapokat külön kezeli. 454-457 Máté: Architektúrák 12. előadás

Lapméret: 8, 64, 512 KB és 4 MB (6.17. ábra). Lap mérete Virtuális lap címe (bit) OFFSET (bit) Fizikai lap címe (bit) 8 KB 51 (31) 13 → 28 64 KB 48 (28) 16 25 512 KB 45 (25) 19 22 4 MB 42 (22) 454-457 44 bitre korlátozva maximum 41 bit Máté: Architektúrák 12. előadás

A memória kezelő egység (MMU) három szinten dolgozik: A legutóbb használt lapokat gyorsan megtalálja (hardver). A kód és az adat lapokat teljesen külön kezeli. A nem nagyon régen használtakat már lassabban (hardver segítséggel). A nagyon régen használtakat csak hosszas keresés után (szoftveres úton). 454-457 Máté: Architektúrák 12. előadás

Környezet (context): processzus szám. TLB (Translation Lookaside Buffer) a legutóbb használt 64 lap címét tartalmazza (6.18. ábra). Érvényes Virtuális lap Környezet Fizikai lapkeret Flag-ek Környezet (context): processzus szám. Asszociatív memória: Kulcs a keresett virtuális lap és a környezet. TLB hiány (TLB miss) esetén: csapda. 455-456 Máté: Architektúrák 12. előadás

TLB hiány esetén TSB folytatja a keresést (szoftver). TSB (Translation Storage Buffer): olyan, mint egy direkt leképezésű gyorsító tár (operációs rendszer építi fel, és kezeli). Virtuális lap címe Virtuális lap tag Fizikai lapkeret Flag-ek Érvényes Környezet tag line 455-456 TSB találat esetén egy TLB sor helyébe beíródik a kért lapnak megfelelő bejegyzés. Máté: Architektúrák 12. előadás

TSB hiány esetén a fordító tábla (translation table) alapján keres TSB hiány esetén a fordító tábla (translation table) alapján keres. Ennek a táblának a szerkezetét az operációs rendszer határozza meg. Egy lehetséges megoldás a tördeléses eljárás. Ebben az esetben a memóriába töltött virtuális lapok és a nekik megfelelő fizikai lapkeretek sorszáma listákba van helyezve. Ha a virtuális lap sorszáma p-vel osztva q-t ad maradékul, akkor csak a q-adik listát kell végignézni. Ha ez se találja a keresett lapot, akkor nincs a memóriában (lap hiba). 455-456 Máté: Architektúrák 12. előadás

Virtuális memória és gyorsító tár Két szintű hierarchia: Virtuális memória használatakor az egész programot lemezen tartjuk, fix méretű lapokra osztjuk. Lap hiány esetén a lapot a memóriába töltjük (operációs rendszer). Gyorsító tár esetén a memóriát gyorsító sorokra osztjuk. Gyorsító tár hiány esetén a sort a gyorsító tárba töltjük (hardver). 457 Máté: Architektúrák 12. előadás

A következő feladatokat kell megoldania: Szerkesztő A következő feladatokat kell megoldania: az azonos nevű és osztályú szegmens szeletek egymáshoz illesztése a szegmens szeletek definíciójában megadott módon, a GROUP pszeudo utasítással egy csoportba sorolt szegmensek egymás után helyezése, a relokáció elvégzése, a külső hivatkozások (EXTRN) feloldása. Az object file nemcsak a lefordított utasításokat tartalmazza, hanem további – a szerkesztőnek szóló – információt is. A103, 537-543 Máté: Architektúrák 12. előadás

Futtatható bináris program Szerkesztő Lehetővé teszi a program akár különböző nyelveken készített részleteinek összeillesztését (7.13. ábra). 1. Forrás modul 2. Forrás modul 3. Forrás modul 1. Fordító 2. Fordító 3. Fordító 1. Tárgy modul 2. Tárgy modul 3. Tárgy modul Szerkesztő Futtatható bináris program A103, 537-543 Máté: Architektúrák 12. előadás

Két menetben dolgozik: Az első menetben táblázatokat készít (térkép – map és globális szimbólum tábla). A második menetben a táblázatokban elhelyezett információk alapján elvégzi a szerkesztést. A103, 537-543 Máté: Architektúrák 12. előadás

A térkép (map) szegmens szeletenként a következő információt tartalmazza: modul név, szegmens név, osztály, illesztés típusa, kombinációs típus, hossz, kezdőcím, relokációs konstans. Az első menet végén a térképet átrendezi, majd kitölti kezdőcímeket és a relokációs konstansokat. A103 Máté: Architektúrák 12. előadás

A globális szimbólum tábla a PUBLIC változókból: A PUBLIC utasítás nem tartalmazza a típust és a szegmens nevét, de az assembler ismeri, és el tudja helyezni a tárgy (object) modulban. A cím a táblázat összeállításakor még relokálatlan címet jelent. Az első menet végén ebben a táblázatban is elvégezhető a relokáció. modul név szegmens név szimbólum típus cím . . . A104 Máté: Architektúrák 12. előadás

Definiálatlan külső hivatkozások. Moduláris programozás. Az assembler az EXTRN utasítás alapján a következő információt adja át: Definiálatlan külső hivatkozások. Moduláris programozás. Object könyvtárak. hivatkozás1 hivatkozás2 . . . szimbólum típus szegmens név offszet cím A104-105 Máté: Architektúrák 12. előadás

Dinamikus szerkesztés Nagyméretű programokban bizonyos eljárások csak nagyon ritkán szükségesek. Csatoló táblázat (Linkage Segment): minden esetleg szükséges eljáráshoz egy csatoló blokkot (struktúrát) tartalmaz. CSAT_STR STRUCT CIM DD FAR PTR CSATOLO NEV DB ’ ’; 8 szóköz CSAT_STR ENDS A108 Máté: Architektúrák 12. előadás

Pl. a dinamikusan szerkesztendő ALFA eljáráshoz az: ALFA CSAT_STR <, ’ALFA’> csatoló blokk tartozhat. Az eljárás csatolása, hívása: MOV BX, OFFSET ALFA CALL [BX].CIM Első híváskor a CSATOLO kapja meg a vezérlést. A csatolandó eljárás neve a [BX].NEV címen található. A név alapján betölti és a programhoz szerkeszti a megfelelő eljárást. A108 Máté: Architektúrák 12. előadás

A szerkesztés végeztével CIM -et a most a programhoz szerkesztett eljárás kezdőcímére változtatja, és erre a címre adja a vezérlést: JMP [BX].CIM JMP , és nem CALL, hogy a veremben a CSATOLO -t hívó programhoz való visszatérés címe maradjon. További hívások esetén a CSATOLO közbeiktatása nélkül azonnal végrehajtásra kerül az imént csatolt eljárás. A108 Máté: Architektúrák 12. előadás

CSATOLO használhatja és módosíthatja a program szerkesztésekor készült térképet (map) és a globális szimbólumok táblázatát. Szokásos megszorítás: a csatolandó eljárás nem tartalmazhat EXTRN utasítást, és egyetlen, a memóriába bárhová betölthető modulból áll. Ekkor a szerkesztés magára a betöltésre, és ennek a tényét rögzítő adminisztrációra egyszerűsödik. A dinamikusan szerkesztett eljárásokat könyvtárakba szokás foglalni (pl.: .dll), az eljárások általában többszöri belépést tesznek lehetővé (re-entrant). A108 Máté: Architektúrák 12. előadás

A csatoló paraméterként kapja meg a felhívandó eljárás nevét. Továbbfejlesztés: A csatoló paraméterként kapja meg a felhívandó eljárás nevét. A csatoló program hoz létre egy csatoló táblázatot. A csatoló a táblázatban ellenőrzi, hogy csatolva van-e a kívánt eljárás. Ha nincs, akkor elvégzi a csatolást, ha pedig csatolva van, akkor közvetlenül meghívja az eljárást. A108 Máté: Architektúrák 12. előadás

Menü vezérelt rendszer esetében, ha a kiválasztott menü elemhez tartozó szövegből generálni lehet az – esetleg csatolandó, majd – végrehajtandó eljárás nevét és az eljárást tartalmazó file nevét, akkor a program bővítését, javítását a megfelelő file-ok hozzáadásával vagy cseréjével és a menü szöveg file-jának cseréjével akár üzemelés közben is elvégezhetjük. A108 Máté: Architektúrák 12. előadás

A csatolt program törlése: a törlendő eljárás csatoló blokkjában a CIM visszaállítása – illetve a csatoló tábla törlése – után az eljárás törölhető. Szokásos, hogy egy dinamikusan szerkesztendő eljáráshoz tartozik egy számláló, melynek értéke a csatolás előtt 0. A hívó program először „bejelenti” az igényét az eljárásra. Ha a számláló 0, akkor megtörténik a csatolás, és mindenképpen: számláló ++. Ha a továbbiakban már nem igényli az eljárást, akkor „elengedi”: számláló --. Ha a számláló =0, akkor senki sem igényli az eljárást, tehát törölhető. A108 Máté: Architektúrák 12. előadás

Cím hozzárendelés (binding) Időosztásos (time sharing) rendszer. Egy program elindításakor többek között a következő feladatokat kell végrehajtani: betöltés – indítás – felfüggesztés – kimentés a program folytatásakor: visszamentés – futtatás – felfüggesztés – kimentés Általában nem biztosítható, hogy a visszamentett program a memóriának ugyanarra a területére kerüljön vissza, ahol korábban futott! A106, 543-549 Máté: Architektúrák 12. előadás

A cím hozzárendelés különböző időpontokban történhet: Ha pl. a programunk egy JMP L ugró utasítást tartalmaz, akkor L-hez valamikor hozzá kell rendelnünk egy konkrét fizikai címet – bindig = (cím) hozzárendelés. A cím hozzárendelés különböző időpontokban történhet: Program írásakor (gépi kódú programozás): Manapság már ritka. Fellelhető a szegmens definícióban alkalmazható AT kifejezés kombinációs típusban. A106-107 Máté: Architektúrák 12. előadás

Fordításkor: pl. szintén az AT kifejezés kombinációs típussal kapcsolatban, ha a szegmensben szimbolikus címzést használnak. Általánosan használt volt, amikor még nem különült el a fordítás és szerkesztés folyamata. Szerkesztéskor: Ma ez a cím hozzárendelés egyik legelterjedtebb módja. Általában ez valósul meg az assembly programokban is. A107 Máté: Architektúrák 12. előadás

Betöltéskor: Ekkor a betöltő átveszi a szerkesztő feladatainak egy részét, pl. a FAR típusú cím konstansok értékének kiszámolását, hiszen ezek értéke a betöltés helyétől függ. A program betöltése valamivel hosszabb időt vesz igénybe, előnye viszont, hogy a betöltési cím tetszőleges lehet. A107 Máté: Architektúrák 12. előadás

A címzéshez használt bázis regiszter kitöltésekor: Ez a módszer már biztosítja az időosztásos rendszerben futtatható alakú programok elkészítését, de a FAR címek nagy problémát jelentenek, mert a program áthelyezésekor módosítandók a FAR címek. Megfelelően kialakított hardver: pl. a Motorola 680x0 processzor család rendelkezik egy program bázis regiszterrel. Minden utasítás tartalmaz egy bitet, hogy a benne szereplő hivatkozás módosítandó-e a program bázis regiszterrel. A107 Máté: Architektúrák 12. előadás

Az utasítás végrehajtásakor: Ehhez a cím hozzárendelést két lépésben valósítják meg. Először a szimbolikus címet virtuálissá alakítják (történhet pl. fordítási vagy szerkesztési időben), majd a virtuális címet fizikai címmé. Ez utóbbi a lap (page) tábla kitöltésekor, tehát gyakran az utasítás végrehajtásának megkezdése után történik. Amikor ugyanis a hivatkozott lap még nincs a memóriában, akkor azt az utasítás végrehajtása előtt be kell tölteni, a lap táblának a megfelelő elemét módosítani kell (cím hozzárendelés), majd ezután történhet a megkezdett utasítás végrehajtásának befejezése. A107-108 Máté: Architektúrák 12. előadás

Milyen utasítások érhetők el operációs rendszer szinten? Feladatok Milyen utasítások érhetők el operációs rendszer szinten? Mi az overlay technika lényege? Mi a virtuális címtartomány? Mi a fizikai címtartomány? Mi a lap és mi a lapkeret? Mi a lapozás? Mi a memória térkép (laptábla)? Mi az MMU? Hogy működik az asszociatív memória? Mi a laphiba? Mi a kérésre lapozás? Mi a munka halmaz (working set)? Máté: Architektúrák 12. előadás

Mikor alakul ki vergődés? Milyen lapkezelési eljárásokat ismer? Feladatok Mikor alakul ki vergődés? Milyen lapkezelési eljárásokat ismer? Mi a belső elaprózódás? Mi az előnye, és mi a hátránya a kis lapméretnek? Mi a szegmens címzés? Hogy valósítható meg a szegmentálás? Mik a szegmentálás előnyei? Mi a külső elaprózódás? Mi az összepréselés (compaction)? Hogy valósul meg a szegmens címzés a Pentium II-n? Mi a szelektor? Milyen információt tartalmaz a Pentium II szelektora? Milyen mezőket tartalmaz a kódszegmensek leírója? Máté: Architektúrák 12. előadás

Hogy képződik a lineáris cím? Feladatok Mire szolgál az LDT (Local Descriptor Table) és a DDT (Global Descriptor Table)? Hogy képződik a lineáris cím? Hogy valósul meg Pentium II-n a virtuális címzés? Milyen a Pentium II védelmi rendszere? Hogy hívható más védelmi szintű eljárás? Jellemezze az UltraSparc II virtuális memóriáját! Mi a TLB (Translation Lookaside Buffer)? Milyen memóriában van a TLB? Mi történik TLB hiány esetén? Hogy szervezett a TSB (Translation Storage Buffer)? Mi történik TSB hiány esetén? Hasonlítsa össze a virtuális memóriát a gyorsító tárral! Máté: Architektúrák 12. előadás

Mi teszi lehetővé a moduláris programozást? Feladatok Mi teszi lehetővé a moduláris programozást? Milyen előnyi vannak a moduláris programozásnak? Mire szolgál a szerkesztő? Milyen feladatai vannak a szerkesztőnek? Hogy működik a szerkesztő? Milyen táblázatokat készít a szerkesztő? Milyen információt tartalmaz a térkép (map)? Milyen információt tartalmaz a globális szimbólum tábla? Milyen információt helyez el az assembler az EXTRN utasítás alapján az object kódban? Mit nevezünk definiálatlan külső hivatkozásnak? Mire szolgálnak az object könyvtárak? Máté: Architektúrák 12. előadás

Mi a cím hozzárendelés (binding)? Mikor történhet a cím hozzárendelés? Feladatok Mi a cím hozzárendelés (binding)? Mikor történhet a cím hozzárendelés? Mi a hátránya a fordításkor történő cím hozzárendelésnek? Mi a hátránya a szerkesztéskor történő cím hozzárendelésnek? Mi a hátránya a betöltéskor történő cím hozzárendelésnek? Mi a hátránya a címzéshez használt bázis regiszter kitöltéskor történő cím hozzárendelésnek? Mi a program bázis regiszter? Mi a program bázis regiszter előnye? Máté: Architektúrák 12. előadás

Mi a dinamikus szerkesztés? Feladatok Mi a dinamikus szerkesztés? Mikor előnyös a dinamikus szerkesztés használata? Milyen dinamikus szerkesztési módokat ismer? Hogy nézhet ki a csatoló táblázat? Hogy hívható fel egy dinamikusan szerkesztendő eljárás? Milyen megszorításokat szokás alkalmazni dinamikusan szerkesztendő eljárások esetén? Milyen előnyökkel jár a dinamikus szerkesztés menü vezérelt rendszerek esetén? Hogy törölhető egy csatolt eljárás? Hogy ellenőrizhető, hogy törölhető-e egy csatolt eljárás? Máté: Architektúrák 12. előadás