Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Jó tanácsok ! ☺ Államvizsga menete: Az Államvizsga reggel 8 órakor kezdıdik és körülbelül délig-egyig tart. Egy napon átlagosan 12-14 ember vizsgázik. A sorrendet magatok között Ti döntitek el, ezt nem szabja meg az Elnök. Belépsz, húzol a tételek közül Leülsz kidolgozni a tételeid Ügyelj rá, hogy minél több dolgot írjál le, de nem kell a legapróbb részletekig. (nem kisregény kell) Próbálj meg inkább vázlatszerően a lényegre törıen írni minél többet, hogy lássák képben vagy, tudod mi tartozik a témához. Ügyelj az olvashatóságra. Mikor szólítanak a felkészülés alatt leírtakat le kell adnod a kérdezı tanároknak és még a diplomamunkádat véded ık áttanulmányozzák amiket írtál. A vizsga 20 perc, ebben benne van a védés és a felelés a két tételbıl. Védésnél készülj fel rá, hogy alaposan átolvasták a munkádat, nagyon alaposan kikérdeznek. Azok csak városi legendák, hogy csak az elejét meg a végét olvassák el mindenhol a munkáknak. Itt biztos lehetsz benne, hogy alaposan átrágják és a legapróbb hibákat is észrevételezik. Az enyémet is átnézettem 3 barátommal, akik a téma mesterei, de még így is találtak benne támadható részt, pedig csak egy eldugott alpont volt a közepén és mégis elolvasták és alaposan kikérdezték. Ha nem Te írtad, azt nyomban kiderítik !!! Abban sem reménykedj, hogy valami spéci témát választottál, ezért úgysem tudnak hozzászólni. Éppen ellenkezıleg, még kíváncsibbak lesznek, és minden dologra rákérdeznek, minden részlet érdekelni fogja ıket, viszont nagyon tudják értékelni az ilyen témákat. Mikor végeztél a védéssel, következik az „A” tételbıl való felelés. A leadott felkészülési papírod alapján belekérdeznek a téma sőrőjébe. Tehát nem mőködik az, hogy elkezdet mondani, mint a vízfolyás a bemagolt tételt és mehetsz. Az sem mőködik, hogy csak az elejét tanulod meg a tételeknek, és rákezdesz nyomni a szöveget abban bízva, hogy már úgy is 1000 szer hallották, ezért úgy is hamarosan azt mondják „elég”. Össze-vissza kérdeznek a tételbıl és ha látják rajtad, hogy csak a bemagolt szöveget nyomod, de lövésed sincs, hogy igazából mirıl beszélsz, akkor véged van. Kapsz egy következı lehetıséget majd. Tehát nem igaz az a legenda sem, hogy ha végigmentél a 4 éven, úgysem rántanak meg az államvizsgán. De igen. Mikor én vizsgáztam volt olyan közöttünk, akinek nem az elsı próbálkozása volt, és sajnos nálunk is voltak, akiknek nem sikerült. Az egyik barátom csoportjában 6 embert rántottak meg, de 1-3 az átlag. Viszont, ha látják, hogy tudod a tételt és azt is, hogy mirıl beszélsz (légy határozott), akkor nem faggatnak sokáig, még pár kérdés és jöhet a „B”. Ott ugyanazt javasolom, mint az elıbb. Puska készítésére ne pazarolj idıt, mert teljesen felesleges, nincs lehetıséged használni !!! Nem vihetsz be magaddal semmit, mindent adnak és figyelnek rátok. Inkább foglald el magad hasznosabban. ☺ Attól nem kell tartanod, hogy szívózni fognak. Nagyon korrektnek találtam a bírálatot és vizsgát is, tehát ha becsületesen tanultál és felkészültél nincs mitıl tartanod. Tanuláskor próbálj meg a tételekhez a fejedben vagy papíron vázlatpontokat készíteni, és ez alapján megtanulni a tételt. Próbáld meg saját szavaiddal kifejezni magad, ne ragaszkodj a tétel pontos szövegéhez, így tudod legjobban kifejezni, hogy érted és tudod a témát! Majd ha mindenki végzett, kb fél óra-óra az eredményhirdetés ! Remélem Te is hasznát tudod venni a munkámnak, mert sokat dolgoztam vele. ☺ Próbáltam a minél érthetıbben fogalmazni, kiegészíteni a legfrissebb tudásanyaggal. Sok sikert Neked ! (
[email protected])
1
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Egy kollega esete: nagyon szuper diplomamunkát írt, teljesen lenyőgözte a vizsgáztatókat, ha lehetett volna 6-ra osztályozzák. Felelésnél az A tételét tudta is, a B-hez viszont szinte semmit sem írt és a kérdésekre sem tudott válaszolni (pedig inkább segítı jellegő kérdések voltak), ezért sajnos meghúzták! A legközelebb már a diplomamunka nem válthat ki semilyen hatást, mert csak a tételekbıl kell neki vizsgázni, és mivel már elıtte elhasalt nem számíthat a bizottság segítıkészségére, jóindulatára sem. Tanúság: Minden tételhez pár értelmes mondatot tudjon írni mindenki, mert ha a diplomamunkád lenyőgözte ıket és nem túl szırösszívő bizottságot sikerült kifogni (minden nap másik van), akkor elég lehet annyi is (szerintem ıt is átengedték volna). Akinek viszonylag kevés a dolgozata (oldalszámra) vagy kevésnek tőnik a saját rész (amennyi pluszt Te adtál a témához), az készüljön fel rá, hogy jobban megrángathatják. A fórumokban egyre több vizsgázó írja azt a módszert, hogy kidolgozáskor a tétel azon részérıl nagyon keveset vagy abszolút nem írt, amelyet a legjobban tudott, így igen nagy a valószínősége annak, hogy belekérdeznek abba a „hiányzó” részbe és akkor le lehet hengerelni ıket. ☺ Természetesen ez nem ment meg a tanulástól, hiszen a sikeres alkalmazáshoz tudni kell a tétel többi részét is, de arra mindenképpen jó, hogy esetleg jobb jegyet lehessen szerezni. Ui: Arra kérlek, ha a tételeimbıl tanultál, tiszteld meg annyival a munkámat, hogy küldesz egy mail-t, hogy milyenre sikerült a vizsga. ☺ Jó tanulást ! ☺ Vélemény:
Kedves leendı Kollega !
A fórumban állandóan visszatérı téma, hogy mennyit érnek majd a munkaerı piacon a diplomával. Nos az a helyzet, hogy nincs miért szégyenkeznünk, és szó sincsen a „GDF-es kíméljen” szituációról. Ilyen hirdetést még senki sem látott, valószínőleg csak a szájhagyományban létezik, amelyet az iskolától keserő szájízzel távozott diákok terjesztenek. Nekem is vannak a baráti körömben olyan emberek, akik belevágtak a GDF-be, mert úgy hallották, hogy könnyő, majd a saját bırükön tapasztalták meg, hogy ez nem igaz. Az állandó UV-k után abbahagyták a sulit, magyarul mondva kibuktak, de persze ık ezt mindenfelé úgy adták tovább, hogy otthagyták a sulit mert nagyon gyenge volt. Ez a hiedelem valószínőleg arra vezethetı vissza, hogy az iskola úttörı szerepet vállalt a költségtérítéses képzésben. A rendszerváltáskor csak államilag támogatott felsıoktatás létezett, amely kis keretszámával nem tudta kielégíteni a hírtelen felmerülı magasan képzett szakemberek iránti igényeket. Ekkor lépett színre a GDF, amely költségtérítés ellenében bárki számára elérhetıvé tette a felsıfokú képzésben való részvételt. Akkor ezt a modellt és a sulit sok támadás érte, és a modell ellenzıi úgy tüntették fel, mintha az ember pénzért megvenné a diplomáját, persze errıl szó sem volt, sıt pár éven belül az összes intézmény átvette a GDF modelljét. Továbbá a távoktatás és az e-learing bevezetésében is a GDF az élenjáró, de ahogyan a mondás is tartja „senki sem lehet próféta a saját hazájában”. Egy komoly munkáltató amúgy sem a diploma kiállítóját, hanem a tudást nézi, a felvételiken hamar kiderül, hogy rendelkezel-e a megfelelı tudással. Ez nem iskolafüggı, hanem szorgalomfüggı. Minden sulit végig lehet csinálni bukdácsolva és jelesre is, minden suliban lehet puskázni is, és mindenhol vannak laza meg kemény tanárok. Mikor elkezdtem a jelenlegi munkahelyemen dolgozni, a felvételinél sem volt érdekes a kiállító iskola, és annak ellenére, hogy rajtam kívül még 6 diplomás (BME, JATE, DE, …) jelentkezett az állásra mégis engem választottak anno, mert én értem el a legtöbb pontszámot, én tudtam ıket legjobban meggyızni a tudásomról. A legtöbb suli csak abban különbözik a GDF-tıl, hogy jobban szívatják és megvágják a delikvenseket. Ha hiszitek, ha nem még a tananyag is ugyan az, sıt még a tankönyvek is szinte ugyanazok, sıt még az Államvizsga tételek is nagyon hasonlóak !!! http://www.doksi.hu/get.php?lid=133 A másik nagyon fontos, hogy a szakma is elismeri és média is elismerıen szól a GDF-rıl. A HVG minden évben „minısíti” az iskolákat és felállít egy képzeletbeli rangsort, amelynél a GDF rendre az elıkelı élbolyban , sıt dobogós helyen található. A GDF honlap „Rólunk írták” részében elolvashatod. A Népszabadság is monitorozta a Diplomák „elismertségét” és szintén hasonló eredményt ért el, ennek jó példája a rendkívül magas 95%-os elhelyezkedési arány. A szakmai is jó véleménnyel van az iskoláról, mert sok elismert cég kötött együttmőködési szerzıdést az iskolával, és vesznek részt a képzési programokban, esetleg ajánlanak munkahelyet az államvizsga után. A szakmai versenyekben is jó helyezések születnek, sıt a legnagyobb, a Microsoft által meghirdetett szakmai versenyben is pár évvel ezelıtt egy GDF-es diák nyert.
2
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Nemzetközi szinten is elismerik a GDF-et, ennek legékesebb bizonyítéka az hogy 2006 év végén ,megkapta Oxfordban a legkiválóbb európai felsıoktatási intézményeknek járó Socrates-díjat (szakmai folyóiratok foglalkoztak is vele). Harmadik nagyon fontos dolog az, hogy az új felvételi rendszerben, az iskolák minısítésének mérıszámaként azt emelik ki, hogy hány diák jelöli meg felvitelikor elsı helyen az adott intézményt és ennek megfelelıen osztják szét az államilag finanszírozott helyeket (ezzel a szétosztással nem értek egyet, de ez más kérdés). Nos itt is remek eredmény született, mert a mőszaki informatikus hallgatók választásaiban a 3. helyezést ért el a fıiskola. Ennek megfelelıen az államilag támogatott helyek a következıképpen alakultak: Elsı a Mőszaki Egyetem villamosmérnöki kara: 526 fıvel, a második a Budapesti Mőszaki Fıiskola Neumann Informatika kara 332 fıvel, és ezt követi a GDF 268 fıvel. (2007-2008 tanév) Ha megnézitek a statisztikai adatokat a Felvi-n vagy a suli honlapján, akkor láthatjátok, hogy az elmúlt 15 évben kb. 60000 ezren iratkoztak be a suliba és ebbıl csak kb. 9000-nek sikerült végigcsinálni és államvizsgázni. Tehát ebbıl is tisztán látszik, hogy nem könnyő elvégezni a sulit és milyen magas a kibukások aránya. Az én osztályomban kb. negyvenen voltunk, de a végére csak 15-en maradtunk, és végül csak ötünknek van meg eddig a diplomája. A többieket meghúzták a vizsgákon, így el-elmaradoztak a vizsgákkal és egyre csak halmozták az elmaradásaikat és végül sokan belefáradtak az állandó pótolgatásokba. Sajnos ık is azt hitték, hogy befizetik a tandíjat és tanulás nélkül is lehet diplomájuk. Tévedtek. Szóval ne dıljetek be mindenféle bizonytalan eredető mende-mondának amelybıl süt a rosszindulat !!! Tanulj becsületesen, és ne csak ezért izgulj vizsgán, hogy görbüljön, mert akkor bármilyen diploma is lesz a kezedben a tudásod semmit sem fog érni.
3
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A1. A számítógépek architektúrája, az egyes egységek feladata. A számítógépek nagyon sokat változtak az elmúlt évtizedek során, azonban ez a változás kapacitásukat, sebességüket érintette elsısorban, mőködési elvükben követték Neumann János által 1945-ben kidolgozott szabályokat. Ezek közül a legfontosabbak: 1. Tárolt program: az utasításokat az adatokkal azonos módón, közös, nagy kapacitású memóriában, numerikus adatok formájában kell tárolni 2. Kettes számrendszer: Az adatol és program kódok ábrázolására a kettes számrendszert kell alkalmazni 3. Vezérlıegység: szükség van egy olyan vezérlıegységre, mely különbséget tud tenni utasítás és adat között, majd önmőködıen végrehajtja az utasításokat 4. ALU: a számítógép tartalmazzon egy olyan egységet, amely az aritmetikai mőveletek mellett képes elvégezni az alapvetı logikai mőveleteket is 5. Perifériák: szükség van olyan ki/bemeneti egységekre, amelyek biztosítják a kapcsolatot az ember és a számítógép között. CPU tölti be a vezérlıegység és az ALU feladatát. Napjainkban a legtöbb számítógépben egyetlen mikroprocesszor látja el ezt a funkciót. A CPU értelmezi és hajtja végre az utasításokban kódolt aritmetikai és logikai mőveleteket, vezérli az adatforgalmat a memória és a perifériák között. Memória: szavanként címezhetı tárolóegység, melynek rekeszei tárolják az utasításokat és az adatokat egyaránt. Az, hogy egy rekesz tartalma adat vagy utasítás, csak értelmezés kérdése, hiszen az ábrázolás módja azonos. A memóriáknak gyorsan olvashatónak és írhatónak kell lenniük, hiszen hozzáférési idejük alapvetıen meghatározza az utasítássorozat végrehajtásának sebességét. Perifériák: alapvetı feladata a kapcsolattartás a külvilággal, a felhasználóval. Számtalan típus képzelhetı el. A felhasználókkal való közvetlen kapcsolattartásra szolgál a billentyőzet, az egér, a monitor, nyomtató, rajzgép, scanner, stb., a hosszú távú archiválást a mágnesszalagos egységek és optikai lemezek szolgálják. A perifériák közül az operációs rendszerek szempontjából kiemelkedı fontosságúak a mágneslemezes háttértárak, mint az adat- és programtárolás alapvetı eszközei. Busz: (vagy másik nevén Sín) biztosítja a funkcionális egységek közötti kapcsolatot. Kisség leegyszerősítve a dolgot, felfogható egy vezetékkötegként, melyen az adatok, címek, és vezérlıjelek eljuthatnak a címzettjükhöz. A buszon keresztül kommunikáló eszközöknek természetesen közös nyelven kell beszélniük, azaz meghatározott jelszinteket, sebességet, kódolást kell használniuk. Az adatok bevitelére négy alapvetı funkcionális egysége van Architektúra - Központi egység (CPU)
• • •
- Vezérlı egység (CU) - Aritmetikai és logikai mőveletvégzı egység (ALU)
- Regiszterek - Központi tár (memória) - Másodlagos- vagy háttértárolók - Perifériák (I/O)
• •
- Beviteli egységek (Input Units) - Kiviteli egységek (Output Units)
Központi egység (CPU) Minden adatáramlás a processzor felügyelete alatt történik. A processzor biztosítja a számítógép összehangolt mőködését. A vezérlı egység és aritmetikai egység mőködéséhez használ regisztereket. Ezek a regiszterek gyors mőködéső tárolóhelyek. A mikroprocesszor a memóriából kapott adaton a programnak megfelelıen logikai és számítási mőveleteket végez, az eredmények alapján kiválasztja a következı lépést.
4
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Központi tár (memória) Legfontosabb erıforrás a processzor mellett. A tárolóban található a végrehajtás alatt levı program és a feldolgozásban használt adatok. Memória áramkörök többfajta módon mőködhetnek, a különbség a sebességben, a megbízhatóságban, és az árban is megnyilvánulnak. A dinamikus RAM (DRAM) memóriában a biteket cellákba osztva tárolják elektromos töltés formájában. Minden egyes cella egy kis felülető félvezetı kondenzátorból és egy tranzisztorból áll. A kondenzátor töltött vagy kisütött állapota felel meg a bit értékének (logikai 1 vagy 0). A kis kapacitás sajnos magától is ki tud sülni, ezért szükséges frissíteni a cellák tartalmát, ezért van a névben a "dinamikus" jelzı. A statikus RAM (SRAM) memóriák nem igényelnek frissítést, ezáltal sokkal gyorsabbak. Kisebb viszont a kapacitása és drágább az elıállítása. Ezért ezeket a memóriákat általában cache memóriáknak szokás alkalmazni. A legkisebb tárolási egysége az egy bináris jel, a bit. Fizikailag legkisebb egységként kezelt tárolóterület a rekesz (1 byte). Minden rekesz címmel rendelkezik, amely alapján a tárolóhelyet a processzor ki tudja választani, és abban adatot tud elhelyezni vagy kiolvasni. A rekeszek címet 0-val kezdıdı, szigorúan növekvı sorszámok alkotják. Címezhetı tartomány – megadja, hogy hány bináris értéket lehet felhasználni a cím értékének leírására Szó – logikai adat-mértékegység. Az aritmetikai mőveletvégzés során egy-egy számadat leírására nem elegendı egy byte, ezért egységként 2-4-8 byte-ot használ a processzor. Memória típusok RAM (írható és olvasható) - dinamikus RAM (DRAM) – alacsony teljesítményigényő, tartalmát rövid idı alatt elveszti, ezért annak tartalmát ciklikusan fel kell újítani. Kis mérete miatt (1 tranzisztor) nagy mérető tárakat lehet belıle kialakítani. - statikus RAM (SRAM) – gyors mőködési sebességő, nem igényli az állandó adatújítást (=bistabil multivibrátor) ROM (csak olvasható) - csak egyszer tölthetı fel a gyártás során (ROM) - a felhasználó által egyszer feltölthetı (PROM) - speciális módon törölhetı és programozható (EPROM) - felhasználó által újraírható (FLASH ROM) A központi tár jellemzıi - elérési idı (access time): idıtartam, amely a kiolvasás megkezdése és az adatnak a tároló kimenetén való megjelenése között eltelik - ciklusidı (cycle time): magába foglalja a kiolvasás utáni feléledési idıt (recovery time), amelyre egyes memóriáknak szüksége van a következı memóriához fordulást megelızıen Pár éve a SDRAM (Synchronous Dinamic Random Access Memory) volt az uralkodó. A SDRAM-ok többsége DIMM (Dual Inline Memory Modul) modulként készül. Központi memóriának úgynevezett dinamikus RAM-ot használnak. Ez a CMOS RAM-mal szemben igen rövid idı - a másodperc tört része - alatt elveszíti tartalmát, ezért frissíteni kell. Az alaplap áramkörei gondoskodnak errıl, a frissítés tulajdonképpen nem más, mint a memória kiolvasása. Létezik olyan memória modul is, amely maga végzi a frissítést, nem terhelve vele az alaplap áramköreit. A SDRAM az adatátvitelt a rendszer órajeléhez szinkronizálja. A ma kapható memóriamodulok többségén van egy SPD nevő kiegészítı memóriachip, amely tudatja az alaplappal a hozzá tartozó idızítési (frrissítési, írási, olvasási) beállításokat, így ennek beállításával nem kell a BIOS setup-jában foglalkozni. A DDR SDRAM és az RDRAM hasonló elven mőködik: a jel mindkét oldalát adathordozóként használja, így megduplázódik az adatátvitel. A DDR SDRAM elsı két verziója a PC1600 (DDR PC100) és a PC2100 (DDR PC 133) nevet viseli. Az 1600 és 2100 az adatátvitelre utal, azaz 1,6 és 2,1 GB/s-ra. Az RDRAM (Direct Rambus DRAM) adatátviteli sebessége 1,6 Gbájt, azaz 10-szerese az SDRAM-nak. A Rambus végül nem terjedt el a magas ára miatt, hanem a DDR második kiadása hódította meg a piacot. A DDR2 SDRAM a DDR SDRAM-nál újabb fejlesztéső, alacsonyabb feszültségen mőködı, kevesebbet fogyasztó memóriatípus. A memóriamodulok foglalatai régebben nem tetszılegesen voltak feltölthetık: A SIMM memóriamodulokra volt érvényes az, hogy általában csak párosával és egyforma nagyságú memóriamodulokat tehettünk be. A DIMM moduloknál már nincs ilyen megkötés. A memória mérete is döntıen befolyásolhatja az alaplap teljesítményét. A ma kapható legnagyobb memóriamodul a 2 Gbájtos. Az sem kizárt, hogy 2010 -re megjelenik az 5 Gbájtos modul is. A memória az amivel nem érdemes spórolni, mivel ez az egyik legolcsóbb része a PC-nek. Ma már az 512 Mbájt abszolút minimumnak tekinthetı. A legjobb, ha legalább 1 Gb memóriát használunk, az új gépeket már így szerelik.
Háttértárak Igen nagy mennyiségő adatot kell tárolni, ezért a központi tár nem elegendı, igen korán igénybe vettek többnyire mágneses alapon mőködı tároló eszközöket (merev- illetve hajlékonylemezek)
5
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Merevlemezek: Kevés elektronikai eszköz büszkélkedhet olyan sikertörténettel, mint a merevlemez. Az '50-es években született elképzelésbıl a '80-as évek közepe óta a PC-k egyik legalapvetıbb részegysége vált, amelynek tárolókapacitása és sebessége folyamatosan növekedik, fizikai mérete és ára azonban egyre csökken. 1997 óta a meghajtók tárolókapacitása óriási, éves szinten mintegy 100 - 150 százalékos ütemben fejlıdik, vagyis a merevlemezek mérete hozzávetıleg minden nyolc hónapban megduplázódik. Mőködés: Á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 segítségével történik. Minden lemezfelü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 merevlemez, az ún. winchester lemez. A nagygépek és a mikroszámítógépek esetében használnak fixen beépített merevlemezeket és cserélhetı lemezeket. A merevlemezek kapacitása 20 Mbyte és 420 Gbyte között mozog. Hajlékonylemezek (floppy disk): Mágnesezhetı réteggel ellátott vékony mőanyag lemezek 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 csak akkor forgatja a meghajtó, amikor adatírás vagy - olvasás zajlik. A lemez elérési ideje lényegesen nagyobb, mint a merevlemezeké. A hajlékonylemez elsısorban a mikroszámítógépek adatbeviteli, - kihozatali adathordozója. A ma használt floppy disk-ek mérete 5.25", illetve 3.5" átmérıjő és kapacitásuk 360 Kbyte - 1.44 Mbyte között van. Használnak 21 Mbyte kapacitású 3.5"-es lemezeket is (zip drive, a drive, külön meghajtó kell). Manapság Flash Drive-t vagy memóriakártyákat használunk. Optikai lemezek: nagy az elérési idı (15 msec), kicsi az adatátviteli sebessége (40x = 6 Mb/sec), több 650 Mb – 4,7 GB nagyságúak. (Típusai: csak olvasható (egyszer írhatók) a CD-vagy DVD-ROM-ok, magnetooptikai (MO), újraírható lemezek (CD-RW), DVD-RW ). Mágnesszalagtár: archiválásra szolgáló eszköztár (streamer). Perifériák (monitor, billentyőzet, egér, nyomtató, scanner) A számítógép külvilággal való kapcsolattartás eszközei alkotják együtt a perifériákat. A processzor a perifériális eszközöket egy-egy vezérlı egységen (controller) keresztül éri el és irányítja. A vezérlık önálló egységként helyezkednek el a központi egységhez kapcsoltan, vagy pedig magában a perifériában találhatók és a központi egységgel egy szabványos csatlakozón keresztül tartanak kapcsolatot. A perifériák egyre több feladatot, vezérlési funkciót látnak el, saját vezérlıjük irányítása alatt. Elegendı a szabványos csatlakozási felület kialakítása a központi egység és a periféria között. A perifériák a közös sínrendszerre csatlakozó vezérlıkön keresztül kapcsolódnak a processzorhoz. A perifériális eszközöket a processzor kontrolleren keresztül éri el és irányítja. Nagyszámítógépeknél a csatornarendszert 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ítva azt, a továbbiakban a csatorna már önállóan dolgozik tovább, amíg be nem fejezi a kijelölt átvételi feladatot. Ekkor jelzést küld a processzornak, amely további igény esetén ismét elindít egy adatátviteli folyamatot. A mikroszámítógépek perifériái a közös sínrendszerre (bus system) csatlakozó vezérlıkön keresztül kapcsolódnak a processzorhoz. Monitor: az adatok grafikus vagy szöveges megjelenítésére szolgál. Billentyőzet: kisebb mennyiségő adat bevitelére, valamint a gép közvetlen vezérlésére szolgál. Nyomtató, plotter: az eredmények szöveges vagy grafikus megjelenítésére használatosak nyomtatott formában. Szkenner: rajzok, grafikák, fényképek vagy szöveg raszteres (bittérképes) bevitelét teszi lehetıvé. Egér, trackball: mutatóeszközök, amelyek segítségével a grafikus képernyın mozgatott kurzorral, rámutatással kijelölhetık a mőveletek, így a program és a gép irányítása billentyőzet nélkül történik. Modem: amelyen keresztül a számítógép közvetlenül kapcsolódhat a távközlési hálózatokhoz (kapcsolt telefonhálózat, bérelt adatvonalak, csomagkapcsolt hálózat) és ezeken keresztül más számítógépes rendszerekhez. A külsı modemek külön készülékben helyezkednek el, mőködtetésükhöz külön áramforrásra is szükség van és a számítógép soros vagy USB portjára kapcsolódnak. A belsı modemek csupán egyetlen bıvítıkártyából állnak, amelyet a számítógép belsejébe kell beszerelni. A belsı modemeket csak a telefonvonalra kell csatlakoztatni, nincs szükségük külön áramforrásra. Hálózati kártya: helyi számítógépes hálózathoz (LAN = Local Area Network) kapcsolható a számítógép.
6
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A2. I/O adatátviteli lehetıségek (soros, párhuzamos), adatvédelem. A perifériák és a periféria interfészek közötti adatátvitelre két, lényegében különbözı megoldás létezhet: - a periféria interfész és a periféria között az adatokat bitenként sorba egymás után visszük át, ezt soros átvitelnek nevezzük - a periféria interfész és a periféria között az adatokat bitcsoportonként egyszerre visszük át, ezt párhuzamos átvitelnek nevezzük Párhuzamos adatátvitel A mikroszámítógépes rendszerekben a legnagyobb számban a Párhuzamos adatátvitel lehet - programozott I/O átvitel, - megszakításos (IRQ), - közvetlen tároló hozzáféréses (DMA) Programozott I/O átvitel (polling): - a processzor teljes körően ellenırzi és vezérli az I/O mőveletet - a periféria állapot regiszter ciklikus lekérdezése folyamatosan terheli a processzort (ezért ennek csak akkor van értelme, ha az I/O eszköz nagyon gyors) A programozott I/O adatátvitel lehet feltétlen vagy feltételes. 1. Feltételen adatátvitel: az adatok küldésére és fogadására mindig kész perifériát feltételez, tehát nem szükséges állapot ellenırzés (pl.: számítógép jelzılámpái – LED kijelzık) 2. Feltételes adatátvitel: a CPU elıször megvizsgálja a periféria állapotregiszterét, s az adatátvitel csak akkor következik be, ha a periféria készen áll. Ennek lépései - periféria állapotát leíró adatok kiolvasása és vizsgálata - adatok küldése a számítógépbıl vagy a perifériától 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. Megszakításos (IRQ): A periféria a számára kijelölt megszakítás kérı vonalon értesíti a megszakítás vezérlın keresztül a processzort, ha adatátvitelt igényel. A kérés elfogadása esetén a CPU egy idıre félre teszi éppen végzett munkáját, kiszolgálja a perifériát, majd folytatja ott, ahol abbahagyta. A processzor ez esetben nincs teljesen kiszolgáltatva a perifériának, viszont a programok közötti átkapcsolás, a visszatéréshez szükséges információk elmentése adminisztrációt, szervezést igényel, idıt vesz el. (A megszakításos adatátvitel elınye a programozott I/O átvitellel szemben, hogy a processzor lényegesen kevesebb idıt tölt az adatátvitel irányításával. Ugyanakkor továbbra is a processzoron keresztül zajlik az átvitel és a nagyobb sebességő eszközök esetében már nem kellıen megbízható ez az eljárás.) Lépései: - megszakítja a futó programot - tárolja a futó program adatait - elindítja a kiszolgáló rutint (adatátvitelhez) - befejezi a megszakítást (ha befejezte az adatátvitelt) - folytatja a megszakított programot Közvetlen memória hozzáférés DMA: Lényege, hogy a processzor egy I/O mővelet végrehajtásához szükséges információkat átadja egy, a processzortól független DMA (Direct Memory Access) vezérlınek, mely ezt követıen az adatátvitelt a memória és az I/O eszköz között önállóan irányítja. Ezáltal a processzor felszabadul más feladatok végrehajtására. Lépései: - ellenırzi a perifériát, hogy tud-e fogadni - DMA buszfoglalási kérelmet jelez, a processzor visszaigazolja - DMA kizárólagosan lefoglalja a buszt, és végrehajtja az átvitelt - DMA jelzi a processzornak a befejezést - processzor ellenırzi az átvitelt, és a buszt szabaddá teszi Ilyen például a floppy vezérlı (DMA 2).
7
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Soros adatátvitel Nagyobb távolságú adatátvitelnél a párhuzamos nem lehetséges, ilyenkor az adatokat bitenként, a kiegészítı ellenırzı jelekkel együtt, idıben egymás után továbbítja a számítógép. Mivel a számítógépen belül az adattovábbítás párhuzamos formában történik, ezért a soros adatátvitelhez elıbb szükség van egy párhuzamossoros, illetve ilyen jelek fogadásakor, egy visszaalakító soros-párhuzamos átalakításra. A nagyobb távolságra történı adattovábbításhoz, a telefonvonalakat lehet igénybe venni, amelyek használatához a jeleket rá kell “ültetni” egy hangfrekvenciás hordozójelre. Az erre a célra szolgáló eszköz a modem. A modem (modulator/demodulator) által használt leggyakoribb modulációs eljárások a frekvencia, az amplitúdó és a fázismodulációs eljárás. Színuszos vivıjel ananlóg modulációja három féle lehet: Ha a moduláló jel a vivı jel 1. 2. 3.
amplitúdóját változtatja, akkor amplitúdó moduláció (AM) frekvenciáját változtatja, akkor frekvencia modulációról (FM) fázisát változtatja, akkor fázis modulációról (PM)
A két, modemen keresztül összekötött, berendezés egymással félduplex, illetve duplex üzemmódban tud kapcsolatot tartani. A félduplex üzemmódnál az adattovábbítás mindkét irányban lehetséges, de felváltva (adóvevı pl.). A teljes duplex lehetséges, de egyidıben mindkét irányban lehet adatokat továbbítani. Az összekötéshez 2, vagy 4-vezetékes rendszer szükséges. A félduplex üzemmódhoz 2, a duplexhez 4-vezetékes kapcsolat kell. Az átvitel formája, elektromos jellemzıi szabályozottak. Az átvitel módját meghatározó szabályrendszert nevezik protokollnak. A soros adatátvitel lehet aszinkron és szinkron ütemezéső. Szinkron átvitel: Szinkron adatátvitelnél, az egymást követı jelek ütemezetten, órajellel vezérelve, szinkronizáltan követik egymást. Az adatok átvitele blokkos formában történik, amelyet kiegészítenek még szinkronizáló bitekkel is ( SYN SYN ADATOK SYN SYN ADATOK )Ezt a formát nevezik “frame”-nek, keretnek. 1. blokk 2. blokk Az egyes adatokhoz tartozó jelek csak egy meghatározott alapidıtartam egész számú többszörösei lehetnek (órajel miatt).
Aszinkron átvitel: Az aszinkron ütemezéső adatátvitelnél, a karakterek ütemezés nélkül követik egymást, az átvitt bitek mennyisége változó is lehet. A start/stop bitek miatt a jelsorozat eléggé redundáns, tehát információtartalom szempontjából felesleges jeleket is tartalmaz, ugyanakkor a vevı oldalon nincs szinkronizálva a vétel és emiatt nagyobb sebességő átvitel nem biztonságos. Az aszinkron átvitelnél nem szükségképpen van folyamatos kapcsolat az adó és a vevı között, ezek szinkronban csak az adatátvitel ideje alatt vannak. A szinkronizálást a start jel eredményezi. START adatok STOP SZÜNET START adatok STOP Az aszinkron soros átvitelhez használt átviteli sebességek: 110-19200 (bit/s). Az átvitel egyik formája a karakter orientált protokoll (COP= character oriented protocol), amelynek használata esetén a grafikus adatok továbbítása körülményessé válik. Ezért azok átviteléhez a bit orientált protokollt (BOP= bit oriented protocol) használják. Ilyen, az ISO által is elfogadott bit orientált protokoll a HDLC (high-level data link protocol) protokoll. Szabványosított interface: A soros adatátvitelek lebonyolításához a soros kimeneteket/bemeneteket (interfaceeket) szabványosították. A mikroszámítógépek környezetében használt szabványosított soros csatlakozási felületek az Electronic Industries Association által kidolgozott: RS 232C (20 vezetékes), és az RS 449 (30 vezetékes) szabvány. Összehasonlítva: A szinkron átvitelnél a redundancia alacsonyabb, de a kapcsolódó hardver bonyolultabb. Az alkalmazható sebesség magasabb, mint az aszinkron átviteleknél. A használt sebesség értékek: 4800, 9600 (bps), vagy magasabb érték.
8
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Adatvédelem Minél kevésbé megbízható egy eszköz vagy adatátviteli rendszer, annál nagyobb szükség van az adatok védelmére, hibák javítására, detektálásra. Ilyen eljárások: Adatszintő védelem: - Paritásbit – egyetlen bithiba: értéke 1, ha az ellenırzött adatblokkban páros számú egyes van, 0 ha páratlan. Figyelése paritásellenırzı áramkörrel valósul meg. - Hibajavító kódok – független hibák: alapja a Hamming távolság - Ellenırzı összegek (CRC) – összefüggı hibák: algoritmus alapján Eszközszintő védelem - Lemeztükrözés – lemez megkettızése - RAID – adatok redundáns elosztása 0, 1, 1+0 A RAID (Redundant Array of Inexpensive or Independent Disks) napjaink egyik fontos technológiája. Segítségével sérülés-biztos merevlemez-rendszereket hozhatunk létre, melyek elengedhetetlenek bizonyos kritikus alkalmazásoknál, vállalatoknál vagy hálózatoknál. A RAID technológia lényege a nevében is benne van: több független merevlemez összekapcsolásával egy nagyobb mérető és megbízhatóságú logikai lemezt hozunk létre. A módszer kidolgozásánál a tervezık többféle célt tőztek ki: • • •
Nagy tárterület létrehozása, a logikai diszk haladja meg az egyes fizikai lemezek méretét Redundancia, azaz nagyfokú hibatőrés, az egyes lemezek meghibásodásával szembeni tolerancia Teljesítménynövelés, azaz az összekapcsolt lemezek együttes teljesítménye haladja meg az egyes lemezekét (pl. írási és olvasási mőveletek átlapolása).
Adatvédelemhez tartozik a tárkezelı rendszer is. A tárkezelı rendszer feladatai közé tartozik a felhasználói programok, adatok védelme is. Ez a következıket jelenti:
a memóriaterület védelme - a címzések helyességét ellenırzi a rendszerprogramok védelme a felhasználó beavatkozásaitól a felhasználók feladataik egymástól való védelme a tárolt adatokhoz való hozzáférési lehetıségek védelme
A védelmi módszerek két típusa alkalmazott: hierarchikus. A programok más rutinokat csak a saját védelmi szintjükön, vagy magasabb szinten hívhatnak. Adatokat csak saját szintjükön, vagy alacsonyabb szinten érhetnek el. A szintek közötti védelmet az egyes szintek saját veremtárolója is biztosítja. A feladatok közti védelmet az egyes feladatok saját deszkriptor táblája (LDT) biztosítja. nem hierarchikus. Minden feladathoz(taszkhoz) egy mőveleti tábla van rendelve, amelye meghatározza azokat a taszk által elvégezhetı mőveleteket, amelyek más feladatokat érintenek. Az adatok védelme érdekében a szegmensekhez, lapokhoz adott hozzáférési jogokat szabályozza a védelmi rendszer. Ilyen jogok:
olvasási írási végrehajtási
9
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A3. Processzorok címzési lehetıségei. A számítógép mőködését parancsokkal tudjuk meghatározni. A parancsok végrehajtását teszi lehetıvé a processzor, mely beolvassa az utasításokat a memóriából, dekódolja és végrehajtja. Az utasítások abban különböznek egymástól, hogy az adatokat milyen formában tartalmazzák. Ezeket összefoglaló néven címzési eljárásoknak nevezzük. Címzési eljárások: 1. Abszolút címzés 2. Relatív címzés - bázisrelatív - programrelatív - utasításrelatív 3. Közvetlen adat (literális) címzés 4. Verem címzés 5. Közvetett címzés 6. Index címzés 1., Abszolút címzés Az utasítás címrészében az operandus valódi, pontos címe található. Ez a memóriára (memory direct), vagy a processzor valamelyik regiszterére (register direct). Regiszterek abszolút címzését a programokban gyakran alkalmazzuk, abszolút memória címzést viszonylag csak ritkán. Ennek oka, hogy a programokat nem mindig azonos memóriacímre töltjük be (szabad hely miatt) így az egyes programbetöltési címtıl függıen a programutasításokban megcímzett adatok fizikai helye is megváltozik. Pl.: MOV AX,DX (= DX regiszter tartalmát vidd át az akkumulátorba) 2., Relatív címzés Az utasítás címrésze egy relatív értéket tartalmaz, amelyet egy másik (alap) címhez képest kell értelmezni. Relaítv cím + alapcím = az operandus címe. Az alapcím helye alapján megkülönböztetünk - bázisrelatív (bázisregiszterben van az alapcím) - programrelatív (program memóriabeli kezdetének, töltési helyének címe) - utasításrelatív: az éppen végrehajtott utasítás (ekkor a báziscímet az utasításszámláló regiszter tartalmazza) Fıként vezérlésátadó (ugró) utasítások alkalmazzák. Akkor használjuk ezeket, ha biztosítani szeretnénk, hogy a program a memória tetszıleges helyére betöltve is futóképes legyen. Pl.: MOV AX, [ BP +4] (= a BP bázisregiszterben található címhez adj hozzá 4-et és az így keletkezett tartalmat töltsd be az akkumulátorba) 3., Közvetlen adat címzés (értékadó, álcímzés, literális) Az utasítás magára az adatra hivatkozik, amellyel a mőveletet végre kell hajtani. Ezt a címzési eljárást a programokban például a regiszterek konkrét számértékekkel (konstansokkal) való feltöltésére használjuk. A számérték nagysága erısen korlátozott, mivel az utasítás címrészébe kerül. Általában kisebb értékő konstansokkal való munkához lehet alkalmazni, gyorsasága és kis helyigénye miatt. Pl.: MOV AX, 0 (= nullát tölts be az akkumulátorba) 4., Verem címzés A verem (stack) egy regisztertár a CPU-ban, vagy egy kijelölt memóriaterület a fıtárban, amelybıl az utoljára beírt adatot lehet elıször kiolvasni. (LIFO) A verem egyik legfontosabb alkalmazása a CPU állapotának (az állapot és utasításszámláló regiszter tartalma) elmentése abban az esetben, ha egy program végrehajtását átmenetileg fel kell függeszteni. Memóriaverem: a fıtár egy részét tartalékoljuk veremmőveletre, címzése regiszterrel történik, ezt nevezzük verem mutatónak (stack pointer) Kaszkádverem: ekkor a verem a CPU-ban van és korlátozott számú regiszterbıl áll. Veremmőveletek: - írás (adatbevitel vagy PUSH) - olvasás (adatkihozatal vagy POP)
10
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A verem memóriacímzése esetén a veremmutató tartalmát növelni (inkrementálni) kell beírás után, és csökkenteni (dekrementálni) kell kiolvasás elıtt. A veremtárat használjuk szubrutinok tárolására is, ilyenkor a program csak egyszer tölti be, de meghívni többször is tudja a szubrutint. 5., Közvetett (indirekt) címzés A közvetett cím egy olyan memóriaterületet címez meg, amelyben az adat tényleges címe van. A közvetett címet sokszor pointernek vagy mutatónak is szokás nevezni. 6., Index címzés A feldolgozások széles körében van szükség arra, hogy adatsorozatokon kelljen elvégezni valamilyen mőveletet. Ezekben az esetekben azt kell megoldani, hogy valamilyen egyszerő formában, utasítással ciklikusan sorra elı tudjuk venni az egyes tárolóhelyeken lévı adatokat. Az indexelt utasításokat adatsorozatokon végzett mőveletekor, ciklusokban tudjuk elınyösen használni. Az adatsorozat elsı elemének tárolási címét tartalmazza az utasítás címrésze és az indexregiszterben (IX) található az ettıl való eltérés, azaz hogy hányadik elemet kell a sorozatból feldolgozni. Az indexregiszter tartalmának folyamatos növelésével (vagy csökkentésével) végig tudunk haladni az összes adaton, tárolóhelyen. Mivel egy-egy adat elıkeresése után mindig növelni (csökkenteni) kell az indexregiszter tartalmát, ezért alkalmaznak olyan megoldásokat is, ahol ez a növelés automatikusan megtörténik. Ezt a lehetıséget nevezik autóindexelésnek. A tárolóhely pontos címe az utasítás címrésze tartalmának (mint alapcímnek) és az indexregiszter tartalmának összeadásával jön létre. Az indexregiszter tartalmát folyamatosan növelve, végig lehet járni a teljes adatsort. Az indexelt utasítás és a relatív címzési mód igen hasonlít egymáshoz, mert mindegyiknél egy alapcímtıl való eltérés adja meg a pontos tárolóhely címet. Azonban lényeges különbség van a kétféle címzési lehetıség között. A relatív címzésnél az alapcím egy regiszterben van és ennek értékét nem változtatjuk folyamatosan, az indexelt utasítások esetében az alapcím az utasításban van és a folyamatosan változó rész az indexregiszterben található.
11
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A4. Mikroprocesszorok belsı funkcionális egységei. A mikroprocesszoroknak három alapvetı funkcionális blokkjuk van: aritmetikai egysége (Arithmetic Logic Unit), vezérlıegység (Control Unit), regiszterek. Ezen kívül tartalmaz még: - busz illesztı egység (BIU = Bus Interface Unit) - címszámító és védelmi egység (AU = Adress Unit) - belsı gyorsítótár (L1 cache) - belsı sínrendszer, mely az elızı részegységek kommunikációját biztosítja
Aritmetikai egység (ALU) Az utasításokban elıírt aritmetikai vagy logikai mőveleteket hajtja végre. Bináris mőveletek elvégzésére alkalmas, és a kettes számrendszer alapján történı mőveletvégzés mellett többnyire a decimális aritmetika szerint is képes mőveleteket végrehajtani. A mikroprocesszorok aritmetikai-logikai egysége (ALU), mint a mőveletvégzés eszköze, a legegyszerőbb esetben is néhány fı részegységet biztosan magában foglal. ALU fı részegységei: - összeadó egység, amely két operandus összeadására szolgál - léptetı áramkörök, amelyek a regiszterek tartalmát mőveletvégzés közben jobbra, vagy balra léptetik, azaz tulajdonképpen 2-vel osztják, vagy szorozzák azt - logikai áramkörök a logikai mőveletek megoldásához - regiszterek, az adatok ideiglenes tárolására. Ezek lehetnek az ALU részét képezı, kizárólagos használatú regiszterek, mint pl. többnyire az akkumulátor regiszter (AC), vagy a processzor általános célú regiszterei közül egy, vagy több.
Az aritmetikai mőveletek végrehajtásakor, az eredményétıl függıen, az állapotregiszter egyes jelzıbitjeit a processzor beállítja. A mőveletek eredményét visszatükrözı legfontosabb jelzıbitek a következık: - átvitel (carry): ha az eredmény legmagasabb helyértékén átvitel keletkezik, 1-es értéket vesz fel - nulla (zero): ha az eredmény nulla értékő, 1-es értéket vesz fel - elıjel (sign): ha az eredmény negatív, akkor az értéke 1-es lesz - túlcsordulás (overflow): ha az eredmény nagyobb, mint a tárolható legnagyobb érték, akkor értéke 1-es lesz. Vezérlı egység (CU): Feladata a program utasításai, vagy külsı kérések (periféria megszakítási kérelme, sín igénybevételi kérése) alapján, vezérlı jelek segítségével a gép részeinek irányítása. Ez magában foglalja: - az ALU mőveleteinek irányítását, - az egyes útvonalak nyitását/zárását valamint - a külsı egységek, a memória, az I/O eszközök vezérlését.
12
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Vezérli a mőveletek elvégzéséhez szükséges belsı adatforgalmat. A vezérlı egység irányítja a processzor és az I/O eszközök közötti adatátvitelt, valamint a tárolt program alapján a mőveletek végrehajtását és az ALU mőködését. A gép vezérlése legtöbbször mikroprogram alapján történik. Minden egyes utasítás mőveleti kódja egy kis kapacitású ROM tárban, a mikroprogramtárban elhelyezkedı mikroprogramot indít el, amelynek minden lépése a vezérlıjeleknek egy sorát eredményezi. A vezérlıjelek lehetnek - belsı vezérlı jelek: melyek a processzoron belüli részegységek mőködését irányítják (pl.: aritmetikai egység és a processzor regiszterei közötti adatátvitelt) - külsı vezérlı jelek: melyek o a processzor és a memória, o a processzor és az I/O eszköz, o illetve a megszakításkezelést és a sínvezérlést irányítják
Regiszterek A processzor regiszterei a felhasználói programok szempontjából három kategóriába sorolhatók: - rendszerregiszterek, melyek a felhasználói programok számára nem láthatók, nem elérhetık (pl.: IR utasításregiszter) - speciális célú regiszterek, melyek a felhasználói programokban csak meghatározott utasításokban szerepelhetnek (pl.: flag vagy státuszregiszter) - általános célú regiszterek, melyek a felhasználói programok utasításaiban korlátozás nélkül használhatók (pl.: akkumulátor regiszter)
További általános részegységek: - A busz interfész egység (BIU = Bus Interface Unit) biztosítja a processzor kapcsolódását a külsı sínrendszerhez. - A címszámító és védelmi egység (AU = Adress Unit) feladata a programutasításokban található címek leképzése a memória fizikai címeire, s a tárolóvédelmi hibák felismerése. - A belsı sínrendszer a CPU-n belüli adatforgalmat lebonyolító áramkörök összessége. - A belsı gyorsító tároló (L1 cache) memóriából kiolvasott utasítások és adatok átmeneti tárolására szolgál. A pentium PRO processzorok óta az L2 cache is a processzoron belül található.
13
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A5. A Mikroszámítógépek tároló-hierarchiájának elemei, mőködésük módja és jellemzıi a hozzáférései idıkkel (regisztertár, cache-tárak, RAM-ROM típusok, háttértárak).
Megnevezés Kapacitás Elérés Átvitel Néhány száz B 1-5 ns REGISZTER 16-31 kB / 256-512 kB 15 ns / L1 / L2 CACHE Néhány 10 kB-64 MB 200 ns ROM 32-512 MB 60-70 ns / 15-20 ns DRAM / SRAM 1,44 MB 300 ms 50 kB/s FDD 40 GB-1TB* 10 ms – 30ns 2 MB/s – 133 Mb/s HDD 2 GB 1s 2 MB/s DAT 650-700 MB 100 ms 1 MB/s CD 4,7GB 100 ms 1 MB/s DVD *2007 júniusában mutatták be az 1 TerraByte-os merevlemezt, amely újra a többlemezes felépítést valósítja meg. Regiszterek A CPU-hoz legközelebb lévı tárolok, amelyek viszonylag kevés adat befogadására képesek (általában egy szó). Az elérési idejük ugyanakkor ezeknek a legkisebb. Regisztertár: A processzorban egy-egy szónyi adat tárolására több gyors mőködéső tár szolgál, melyek együttesen alkotják a regisztertárat. A CPU-k teljesítményének fokozására az elmúlt években növelték a regiszterek darabszámát, így alakultak ki a regisztertárak (regisztertömbök). Fontos: általános célúak legyenek, háromcímes elérési lehetıség biztosítása(egy utasításon belül megadható két operandus és az eredmény címe is), minél nagyobb méret. Kezelési technikák Regiszterbank: A regisztertömb nem átlapolódó, azonos mérető részekre, ún. bankokra van felosztva, melyek mérete 2 valamely hatványa. Az aktuálisan használt bank kezdetét a bank-mutató (current bank pointer) jelöli ki. Ablaktechnika: A regisztertömb egy-egy azonos mérető de átlapolható része látható a processzor számára. A méret 2 valamely hatványa. Az aktuális ablak kezdetét az ablak-mutató (current window pointer) jelöli ki. A szubrutinok közötti paraméterátadás megkönnyítésére használható ez a technika. Blokktechnika: A regisztertömb tetszıleges mérető átlapolható részekre van felosztva. Az aktuális blokk kezdetét a blokk-mutató (current block pointer) jelöli ki. ROM csak egyszer tölthetı fel a gyártás során (ROM) a felhasználó által egyszer feltölthetı (PROM) speciális módon törülhetı és újraprogramozható (EPROM) elektromosan törölhetı, és újraírható (EEPROM) DRAM / SRAM (írható és olvasható) - dinamikus RAM (DRAM) – alacsony teljesítményigényő, tartalmát rövid idı alatt elveszti, ezért annak tartalmát ciklikusan fel kell újítani. Kis mérete miatt (1 tranzisztor) nagy mérető tárakat lehet belıle kialakítani. - statikus RAM (SRAM) – gyors mőködési sebességő, nem igényli az állandó adatújítást (=bistabil multivibrátor) Ismert típusai DRAM: FPRAM – Fast Page RAM (gyors lapozású memória) EDORAM – Extended Data Out RAM (kiterjesztett adatkimenetelő memória) SDRAM – Syncronous DRAM (szinkron DRAM) DDR SDRAM RDRAM – (Direct Rambus DRAM) nem terjedt el DDR2 SDRAM SRAM: Aszinkron SRAM (processzorral nem szinkronban mőködik) (Egyéb speciális típus: VRAM – videókártyán lévı RAM)
14
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
L1 / L2 CACHE L1: Belsı cache (processzorban) L2: általában processzoron kívüli, Pentium PRO –tól a processzoron belül van már Általában gyors eléréső SRAM-okból áll, ma már létezik speciális cache is, pl.: merevlemez cache. (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ú, felhasználó számára “láthatatlan”, gyors mőködéső tárolók kerülnek, melyeket cache-táraknak nevezünk) Szerepe: A cache tárak az utasítások és adatok átmeneti tárolására használhatók. Típusai: - teljesen asszociatív. A beolvasott blokkok bárhova elhelyezhetıek, bármelyik sorba kerülhetnek. Az elhelyezés sorát a helyettesítési algoritmus határozza meg. -
közvetlen leképezéső. Egy-egy blokk csak meghatározott helyre kerülhet. A blokk helyét a blokksorszám alsó 8 bitje határozza meg. A blokk tehát abba a sorba kerülhet, amelyet a sorindex meghatároz. A 16 adatbyte mellett a blokksorszám 20 + 8 bitje, valamint a jelzıbitek is tárolásra kerülnek. A 28 bites blokksorszám itt egy 20 bites lapsorszámra, és az azon belüli 8 bites blokksorszámra bomlik.
-
csoport asszociatív. Átmenet a teljesen asszociatív és közvetlen leképezéső cache tár között. A cache nagyobb sorokból álló csoportokra van osztva, melyek önmagukban is mint teljesen asszociatív tárként mőködnek, azaz egy csoporton belül bárhova kerülhet a blokk. Az elhelyezést a választott helyettesítési algoritmus határozza meg.
-
szelektor leképezéső. Köztes megoldást képzı, de ma már ritkábban használt cache tár.
DAT (Mágnesszalag): archiválásra szolgáló eszköz (streamer). Mágneslemez: Lehet hajlékony- vagy merevlemez. Az adattárolás koncentrikus sávok (track) mentén történik. Egymás alatt elhelyezkedı sávok a cilinderek (cylinder). A sávok szektorokra vannak felbontva, amelyek egyenként általában 512 bájt hosszúságúak. FDD (Hajlékonylemez, floppy) Mágnesezhetı réteggel ellátott vékony mőanyag lemezek 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 csak akkor forgatja a meghajtó, amikor adatírás vagy -olvasás zajlik. A lemez elérési ideje lényegesen nagyobb, mint a merevlemezeké. A hajlékonylemez elsısorban a mikroszámítógépek adatbeviteli, -kihozatali adathordozója. Mára ez a technológia kihalóban van, mert kapacitása kicsi, és árában (3500 Ft) sokkal nagyobb kapacitású és gyorsabb PenDrive eszközt lehet vásárolni. Az új számítógépekbe már bele sem építik, csak ha kérjük. HDD (Merevlemez, winchester) Á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 segítségével történik. Minden lemezfelü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 merevlemez, az ún. winchester lemez. A nagygépek és a mikroszámítógépek esetében használnak fixen beépített merevlemezeket és cserélhetı lemezeket. (Programok tárolása, adatok tárolása és archiválása, virtuális memória) Merevlemezekrıl bıvebben: http://kac.duf.hu/~balage/szakdoga/hdd.htm#transferrate CD / DVD Olvasás elve, hogy a lemezt letapogató lézersugár a felületrıl visszaverıdve különbözı fázisban érkezik vissza az érzékelıhöz, attól függıen, hogy kiemelkedés vagy térköz halad el alatta. (Írottnál a mágnesezetség változik.) A manapság két új szabvány verseng a BlueRay és a HD-DVD, de már megjelent azok versenytárs is a holografikus lemez amely a Hitachi-Maxell fejlesztése és a Tapestry Disc nevet kapta, 13 centiméter átmérıjő, 3,5 milliméter vastag átlátszó lemez a három dimenziós technológiának köszönhetıen 64 DVD-nyi adat hordozására alkalmas, és sokkal nagyobb adatátviteli sebességre képes, mint elızı generációs társai. Másik trónkövetelı a TerraDisk amely adattároló kapacitása hússzorosan, de elvileg akár százszorosan is felülmúlhatja a jelenlegi legnagyobb, 50 gigabájtos duplarétegő blu-ray lemezekét. A TeraDisc rikító sárga színe nem(csak) figyelemfelkeltı fogás a cég részérıl, hanem a lemez anyagának, a polimer-polimetil-metarkrilátnak jellegzetessége. Az információt fotokémiai úton viszik fel az egyes rétegekre: a polimer molekuláit az író
15
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
lézerrel megvilágítva, azok képtelenek lesznek az olvasó lézer fényének fotonjait elnyelni - az ilyen módon kezelt, illetve érintetlenül hagyott felületek jelképezik az egyeseket és nullákat (ez azt is jelenti, hogy újraírható lemezekre egyelıre ne számítsunk). A különleges alapanyagnak és az adatrögzítéshez használt fotokémiai eljárásnak hála, több száz adattároló réteg lehet egyetlen lemezen. Az elsı TeraDisc lemezek és olvasók 2009ben kerülhetnek piacra, a gyártó becslése szerint 3000 dollár körüli áron, míg a legkisebb kapacitású, 600 gigás lemezek ára 30 és 60 dollár közé várható. Az elsı szimulációk szerint a TeraDisc ötven évig képes az adatok megırzésére, bár elvileg erre a cd lemezek is képesek. SSD: Flashmemóriás tárolóegységekbıl álló termékcsalád a Solid State Drive. A mozgó alkatrészt nem tartalmazó, energiatakarékos és strapabíró SSD-k eltávolítható rokonaikhoz, a pendrive-okhoz hasonlóan USB interfészen keresztül kommunikálnak, de van olyan változat is, amely Ultra-ATA66 interfésszel rendelkezik. Ezeket az adattárolókat azonban a gépek (elsısorban notebookok, de akár szerverek, útválasztók vagy vékony kliensek) beépítve tartalmazhatják. Az Solid State Drive egységek elsıdleges feladata a rendszer betöltési idejének, illetve a gyakran használt állományok elérési idejének gyorsítása. A flashmemóriát tartalmazó kiegészítı háttértár elınyeit mindazonáltal leginkább a noteszgépek tulajdonosai értékelhetik, a hordozható számítógépeknél ugyanis a gyorsabb fájlmőveletek mellett hosszabb akkumulátoros üzemidıt is szavatol ez a technológia. Az új tárolócsalád 1,2,4,8,32,64 gigabájtos kapacitással kerül forgalomba, A Solid State Drive eszközök a gyártók szerint az átlagosnál jóval hosszabb élettartammal bírnak – ez számokban kifejezve közel ötmillió üzemórát jelent két meghibásodás közt (MTBF). A megbízható mőködésre további garancia a gyártó szigorú ellenırzési folyamata, melyen mindegyik SSD-nek át kell esnie, mielıtt elhagyja a gyárat. Az írási sebessége 45 MB/s, az olvasási tempó 64 MB/s. Ezek az értékek többszörösei az azonos mérető merevlemezekének, ugyanakkor az SSD tárolók energiafogyasztása csúcsüzemben is csak harmada a lemezes egységekének. A gyártók a következı évekre az SSD-k piacának robbanásszerő, évi 200 százalékot meghaladó növekedését jósolják, ami jó hír az árak szempontjából, hiszen végre széles körben elérhetıvé válhat ez a tárolótípus. A 64 GB-ost fıként noteszgépekbe szerelik, míg kisebb, 8–16 GB-os változatai médialejátszókba, navigációs eszközökbe, videokamerákba kerülhetnek. Tárhierarchia: A tárolók, a processzoron kívül, a számítógépek legfontosabb erıforrásainak számítanak, ezért azok használatának hatékony formáit külön célszerő vizsgálni. Lényeges szempont az utasítások és az adatok használati gyakoriságuknak megfelelı elhelyezése, azaz minél gyakrabban van szükség rájuk, a processzorhoz annál közelebb és a processzor által annál rövidebb idı alatt elérhetıknek kell lenniük. Fordítva is igaz, hogy ha nincs szükség valamilyen programrészre, vagy adatra, akkor az kerüljön ki a processzor közvetlen közelébıl, átadva a helyet a nála fontosabb adatnak. A nagy kapacitású tárolók elérési ideje általában nagyságrendekkel nagyobb, mint a processzor közvetlen közelében lévı a különbözı tárolóeszközökön. A processzorhoz legközelebb a regiszterek vannak, amelyek viszonylag kevés adat befogadására alkalmasak, ugyanakkor az elérési idejük a legkisebb (1-5 ns). A program végrehajtásához közvetlenül szükséges programrészek és adatok tárolására a központi memória szolgál, amelyek kapacitása néhány Mbyte és elérési ideje 10-20 nsec. Az éppen nem szükséges adatok tárolását a nagykapacitású háttértárolók biztosítják több Gbyte-os tárolóképességgel és 10-20 msec elérési idıvel. Ezt egészítik ki az ún. tömegtárolók, amelyek összkapacitása végül is csak az igényektıl és a lehetıségektıl függ. Ezek elérési ideje nagyon változó néhány 100 msec-tól néhány percig is terjedhet. Az adatok csak a tárolóhierarchián végighaladva kerülhetnek feldolgozásra a processzorban. Fizikai megvalósítás: A mágneses elvő adatrögzítés a leggyakrabban alkalmazott jelrögzítési forma. A jelrögzítés formája digitális megoldású. Ennél a formánál két mágnesezettségi szintet használnak (irányuk lehet: párhuzamos és merıleges).A két mágnesezettségi jelszint között átmenet akkor következik be, ha a rögzítendı jelsorozatban 1-
16
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
es szerepel. Adattárolás elıtt a lemezek felületét formázni kell, hogy kialakuljon a szabványos jelrögzítési forma. A lemez felülete sávokra van osztva, melyen belül szektorok kerülnek kialakításra. Ha több lemez áll rendelkezésre, akkor az egymás feletti szektorokat cilindereknek nevezzük. Igen gyakran külön sávokat használnak az indextáblázatok, és a meghibásodott sávok átmentéséhez. A szinkronizáció mellett a sávok kezdetét is jelezni kell az olvasó rendszer számára. Ennek végrehajtására kétféle módszer használatos: soft szektoros (minden szektort valamilyen egységes jelsorozat vezet be) és hard szektoros (a szektorok kezdetét valamilyen fizikai jel határozza meg).A szektorok két részbıl állnak: fejrész (melyben az azonosításhoz szükséges információk vannak) és adatrész (melyben maga a tárolandó adatsor található).
17
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A6. A hálózat fogalma és célja, hálózattípusok (LAN stb.), hardver és szoftver feltételek, jogosultságok. Egymással (szoros) kapcsolatban lévı önálló számítógépek rendszere. A hálózat célja: • az erıforrások megosztása • nagyobb megbízhatóságú mőködés • költségmegtakarítás • adatbázisok elérése (több pontról!) • kommunikációs közeg kialakítása • terhelésmegosztás Hálózattípusok: Területi kiterjedés alapján (mekkora területen helyezkedik el): LAN (Local Area Network) - kis kiterjedéső hálózat, lokális hálózat; jellemzıje az egyedi kábelezés és az ebbıl következı gyors adatátvitel. Mérete 1 szobától kezdve néhány kilométerig terjed. MAN (Metropolitan Area Network) - városi mérető hálózat; egy város nagyságrendjét lefedı hálózat. Fontossá teszik a térinformatikai rendszerek, melyek összefognak egy települést. Másik tipikus alkalmazás a világhálózatok kiindulási pontjaihoz (pl. Internet node-ok) való belépés biztosítása. WAN (Wide Area Network) - nagytávolságú hálózat; kiterjedése pár kilométertıl kezdve az egész Föld nagyságáig terjedhet. Tipikus átviteli eszközei a távközlési vállalatok által nyújtott eszközök: telefonvonal, mőhold, mikrohullám, stb. Topológia alapján: bus (sín): gépek egy közös átviteli közegre csatlakoznak győrő: a gépek egy győrőre vannak felfőzve fa: bármely két összekötött gép között egy és csak egy út van csillag: minden gép csak a központi géppel van összekötve teljesen összefüggı: minden gép minden géppel egyedileg össze van kötve (ez lenne az ideális, csak egy kicsit drága). részben összefüggı: a teljesen összefüggıbıl elhagyunk néhány ágat Átviteli sebesség alapján Lassú (kb 30 kbit/sec): általában telefonvonalak felhasználásával történı átvitelre jellemzı (ISDN – 64, ill. 128 kbit/s) Közepes sebességő (kb 1-20 Mbit/s): ide tartozik a legtöbb lokális hálózat (Ethernet - 10 Mbit/sec, Token Ring 16 Mbit/sec) Nagy sebességő (50 Mbit/sec felett) Speciális hálózatok osztálya volt régebben, de mára a 100 Mbit/s-os lokális hálózatok terjednek robbanásszerően. Elkezdıdött a Gigabit/s-os hálózatok fejlesztése is. Valószínőleg rövid idın belül ezt a tartományt fogjuk a nagy sebességő osztályba sorolni. Átviteli módszer alapján Alapsávú (baseband): modulálatlan jeleket továbbit, tehát az átviteli közegben haladó jel frekvenciája közel azonos a bitsorozat frekvenciájával (LAN-okra jellemzı) Szélessávú (broadband): az adatátvitel modulált, tehát a vivı frekvenciája jóval nagyobb, mint a bitsorozat frekvenciája (pl. kábeltévé) Kommunikációs irány alapján Szimplex (egyirányú): egyik állomás csak adó a másik csak vevı Fél-duplex (váltakozó irányú): mindkét irányú átvitel megengedett, de egyidıben csak az egyik irány élhet Duplex (kétirányú): mindkét állomás egyszerre adhat és vehet Kapcsolási technika alapján vonalkapcsolt :Ebben az esetben a vonalat nem konkrétan egy adóhoz és egy vevıhöz rendeljük hozzá, hanem az állomások a kommunikáció szükséglete alapján jutnak hozzá. Ezt a megoldást nevezik vonalkapcsolásnak. Abban az esetben, ha adatátvitelre van szükség, kialakítanak egy olyan vonalat, amely a vevı és az adó pontpont kapcsolatnak érzékel. A vonal kialakítása kapcsolóközpontok által hajtódik végre. A kommunikáció végén a vonal bontásra kerül. Ilyen például a telefon. A két végpont között létrejön a kapcsolat, megtörténik az információ csere, majd a kapcsolat bontásra kerül.
18
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
üzenetkapcsolt - két állomás között az átvivı hálózat tárolva továbbító egységekbıl áll, ezek továbbítják az üzenetet egy címinformáció alapján. Az üzenet hossza nem korlátozott. üzenetkacsolás során az információt nem darabolják fel Az üzenetnek tartalmaznia kell a küldı és a címzett adatait. Az adó (A) a teljes üzenetet elküldi a következı, éppen szabad hosztnak. Ezzel tulajdonképpen a kommunikációt be is fejezte. Az az állomás, amelynél az üzenet van, keres egy szabad útvonalat a következı IMP-ig és elküldi neki. Ez a folyamat addig ismétlıdik, amíg a címzett (V) megkapja az üzenetet. A megoldás nagy elınye, hogy a vonalakat csak nagyon rövid idıre foglalja le, ráadásul mindig csak két hoszt vesz részt a küldésben. A hátrány nagy üzenetek esetében merül fel, ugyanis minden hosztnak minimálisan akkora szabad tárolókapacitással kell rendelkezni, amekkora az üzenet. Ha ez a feltétel nem valósul meg, akkor az üzenet egy része elveszik.
csomagkapcsolt - A csomagkapcsolás mőködése nagyon hasonlít az üzenetkapcsolás mőködéséhez. A különbség az, hogy ebben az esetben feldarabolják az üzenetet kisebb mérető csomagokra. Ezeket a csomagokat egyenként, mint önálló információt küldik el a már megismert módon. Minden csomagküldés elıtt egy hálózatvizsgálat történik, amelynek során megkeresik a leggyorsabb, vagy a legrövidebb útvonalat. Minden csomag más és más úton halad, az érkezési sorrend más lehet, mint az elküldési sorrend volt. Annak érdekében, hogy a vevı képes legyen az eredeti üzenetet összeállítani, minden csomagba be kell építeni azt, hogy melyik üzenet hányadik csomagja. A megoldás elınye, hogy nem igényel nagy átmeneti tároló helyet, a hátránya, hogy bármelyik csomag megsérül, vagy elveszik, nem lehet az eredeti üzenetet összeállítani.
Két változata létezik: összeköttetés nélküli: a csomagok átvitelét az ún. datagram service (távirat) végzi. Minden csomag tartalmazza a teljes rendeltetési címet, külön továbbítódik (közben a sorrendjük is változhat). Hátránya a bonyolult csomag-összeépítés. virtuális összeköttetéses: a csomagok átvitelét egy virtuális adatáramkör (virtual circuit) biztosítja. Ez egy hívás útján létrejövı logikai összeköttetés, amely a bontásig fennáll, a csomagok ezen a rögzített adatúton kerülnek át. Teljes cím helyett csak az adatáramkör azonosítóját kell tartalmazniuk. Hátránya, hogy nem olyan flexibilis, mint a datagram.
19
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Közeghozzáférési mód alapján véletlen átvitelvezérlés: egyik állomásnak sincs engedélyre szüksége az üzenettovábbításhoz, adás elıtt csak az átvivı közeg szabad voltát ellenırzi. osztott átvitelvezérlés: egyszerre csak egy állomásnak van joga adni, de ez a jog az állomások között körbe jár. Tipikus képviselıje a vezérjel-továbbításos (token passing) módszer. Az állomások között egy vezérjel jár körbe, akinél ez van, az adhat. A topológia alapján lehet vezérlıgyőrő (token ring) vagy vezérjeles busz (token bus). központosított átvitelvezérlés: egy kitüntetett állomás foglalkozik az átviteli jogok kiadásával. A hálózat hardver feltételei - számítógépek - hálózati kártya - vezeték - csatlakozók - aktív eszközök (hub, switch): - repeater – jelerısítés, újradigitalizálás - bridge – hálózat szegmensei közti elválasztást oldja meg, ellenırzi a CRC értékét - router - bridge + útvonalválasztás, különbözı típusú hálózatok összekötése - gateway – protokoll átalakító - modem – analóg csatornán való kis sebességő üzenettovábbítás A hálózat szoftver feltételei: Egyenrangú hálózatoknál a kapcsolatban álló gépek kliensként és szerverként is mőködhetnek, az operációs rendszerbe vannak beépítve a hálózati szolgáltatások. Kliens-szerver hálózatoknál a szerveren hálózati operációs rendszert kell futtatni (pl. Novell NetWare, Windows NT/2000/XP,VISTA), ami kiszolgálja a kliensektıl érkezı kéréseket. A szerver feladata a fájlok tárolása és védelme és a hálózati nyomtatás lehetıségének biztosítása. A klienseken bármilyen kompatíbilis operációs rendszer futhat. Az alkalmazói programok a kliens gépeken futnak. Felhasználói jogok a hálózatban: Jogtípusok: Elérési jogok: Egy felhasználó kaphatja a jogokat ahhoz, hogy egy könyvtárban elérje az ott található fájlokat. Ez a jogkör korlátozható, ekkor a felhasználónak nincs meg minden joga az alkönyvtárban lévı fájlokhoz. Az alkönyvtárban lévı fájlokhoz másnak még lehet nagyobb fokozatú jogköre Hozzáférési jogok: Az elıbb ismertetett jogokat kaphatja egy alkönyvtár vagy egy fájl ahhoz, hogy bárki hozzáférjen az adott fájlhoz vagy alkönyvtárhoz. Így az alkönyvtárban végezhetı mőveleteket korlátozhatjuk. Effektív jogok: Az elızı két jogtípus-halmaz közös metszete adja meg egy könyvtárban végezhetı mőveletek körét. Más szóval, ha a felhasználónak joga van egy könyvtárban valamilyen mőveletre, de nincs joga senkinek abban a könyvtárban ahhoz a mővelethez, akkor a mővelet nem végezhetı el. Ugyanez fordítva is igaz. Egyik jog sem felsıbbrendő. Jogok: FILE SCAN - KERESÉSI JOG: A felhasználó látja az alkönyvtárban lévı fájlokat, így keresni is tud közöttük. Ha ez a joga nincs meg, nem látja az alkönytárat és annak tartalmát, azonban ha más joga adott, attól meg olvashatja, futtathatja. READ - OLVASÁSI JOG: A felhasználónak joga van az alkönyvtárban lévı fájlokat olvasásra megnyitni, azok tartalmát olvasni, és olvasás után lezárni. WRITE - IRÁSI JOG: A felhasználó az általa megnyitott fájlba írhat, az ott lévı adatokat módosíthatja az adott alkönyvtárban. CREATE - LÉTREHOZÁSI JOG: Az alkönyvtárban új fájlokat hozhat létre a felhasználó. ERASE -TÖRLÉSI JOG: Az adott alkönyvtárban lévı fájlokat törölheti a felhasználó. MODIFY - MÓDOSÍTÁSI JOG: Az alkönyvtárban lévı fájlokat a felhasználó átnevezheti, attribútumait módosíthatja. ACCESS CONTROL - HOZZÁFÉRÉS ELLENİRZÉSE: Ezen joggal rendelkezı felhasználónak joga van, az alkönyvtárak és az állományok attribútumait megváltoztatni, azokhoz való hozzáférési jogokat a felhasználók számára adni és elvenni. SUPERVISOR - RENDSZERGAZDAI JOG: Minden joga megvan a felhasználónak az adott könyvtárban és annak alkönyvtáraiban. Ez a legmagasabb jog egy könyvtárban.
20
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A7. A hálózat hardver, szoftver elemei A hálózatok hardver és szoftver megvalósítása rendkívül sokféle lehet. A különbözı hálózatok összekapcsolásához szükség van valamilyen megállapodásra, szabványra, ami ezt segíti. Ilyen az ISO által elfogadott OSI ajánlás, amely a különbözı protokollok egymáshoz való viszonyára vonatkozik. A protokollok, vagyis az eljárások egymásra épülı rétegeket képeznek. Minden protokoll csak a két szomszédjával - az alatta ill. a felette lévıvel - tart kapcsolatot. Az OSI modell 7 ilyen réteget tartalmaz, a felhasználónak nyújtott szolgáltatásoktól a kábelen megjelenı feszültségig fogja át a hálózat mőködését.
1. Fizikai réteg (Physical Layer): A közvetlen fizikai kapcsolatot írja le a hálózat állomásai között. Ide tartozik a kábeltípus, csatlakozók, feszültségek, stb. 2. Adatkapcsolati réteg (Data-Link Layer): Ide tartozik a kódolás, a címzés, a fizikai hibák kezelése. 3. Hálózati réteg (Network Layer): Két állomás közötti stabil kapcsolat kialakítása tartozik ide. 4. Szállítási réteg (Transport Layer): A kapcsolatok megbízhatósága, a hibajavítás és az esetleges titkosítás tartozik ebbe a rétegbe. 5. Együttmőködési réteg (Session Layer): A szállítási rétegre épülı, magasabb szintő szolgáltatásokat, pl. a hálózaton át folyatott párbeszédet nyújtó réteg. 6. Megjelenítési réteg (Presentation Layer): Az adatok megfelelı formájú átalakítását végzi. Tömörítés, adatkonverzió tartozik ide. 7. Alkalmazási réteg (Application Layer): A felhasználói programok számára olyan magas szintő szolgáltatásokat nyújt, mint a fájlátvitel két állomás között vagy az elektronikus posta. Az OSI modell csak ajánlás, és általában hivatkozik a hálózatokra. Egy konkrét megvalósításban pl. egy helyi hálózatban nem biztos, hogy van minden rétegnek megfelelı protokoll vagy szolgáltatás. Hardver: A hálózathoz legfıképpen kettı, vagy ennél több számítógépre van szükség. Ezek közül az egyik a kiszolgáló (szerver) szerepét tölti be, ez általában munkaállomásként nem használható. A második és a többi gép lesz(nek) a munkaállomás(ok). Az összeköttetés megvalósítása érdekében szükség van még egy - egy hálózati kártyára és a gépeket (kártyákat!) összekötı vezetékekre. Ezeknek a kártyáknak és vezetékeknek a legelterjedtebb típusa az Ethernet. Az átvivı közeg elemei a következık: 1.Koaxiális kábel Középen általában tömör rézhuzal található, ezt veszi körül egy szigetelıréteg, majd erre jön az árnyékolás. Jellemzıje a hullámimpedancia. Szabványos hullámimpedanciák az 50, 75, 93 Ohm. Lehet alapsávú és szélessávú átvitelre is használni. Számítógépeknél a megcsapolás T elosztóval vagy vámpír csatlakozóval történik. Elınye: nagy sávszélesség, nagy távolság, zajérzéketlenség. Hátránya lehallgathatóság valamint a kiépítési struktúrájából adódó sérülékenysége és nehézkes szerelhetısége. Szélessávú átvitelnél komoly szaktudást igényel telepítése és karbantartása. 2. Sodort érpár Két szigetelt, egymással összecsavart rézhuzalból áll. Lehet árnyékolatlan illetve árnyékolt felépítéső. Elınye könnyő szerelhetısége, strukturáltsága, egyszerő bıvíthetısége. Hátránya zajérzékenysége, limitált
21
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
sávszélessége valamint lehallgathatósága. A strukturált kábelezési rendszerek alapeleme. Sávszélességük függ a minıségüktıl, pillanatnyilag öt osztályba sorolják ıket. Strukturált kábelezés A rengeteg különbözı kábelezési elıírás rendkívül megnehezíti a bıvítéseket és a hálózat átépítéseket. Ezért felmerült az igény egy olyan kábelezésre, amely tetszıleges kábelezési elıírásnak megfelel, azaz univerzális. Az ilyen módon kialakított rendszereket strukturált kábelrendszernek nevezzük. Felépítés: Minden munkahelyhez külön fali aljzat tartozik, mely tartalmazza a telefon és a számítógép csatlakozást. A fali csatlakozót a gépekkel illetve a telefonkészülékkel adapter kábel, az ún. patch kábel köti össze. A fali csatlakozókat sodort érpáras kábelen keresztül egy közös helyiségbe vezetjük. Itt egy nagy elosztóra kerülnek, ennek patch panel a neve. Így kialakul egy csillagstruktúrájú végponti hálózat, ahol a központi patch panel minden csatlakozójának egy munkahely felel meg. A közös helyiségben kerülnek elhelyezésre az aktív elemek. Ezek a telefonközpont számítógépek, a hálózat összekötı elemek. Ezeket az aktív elemeket szintén patch kábelekkel kötjük össze a patch panel megfelelı pontjával Osztály 1 2 3 4 5
Impedancia 84-113 Ohm 100 Ohm 100 Ohm 150 Ohm
Tipikus felhasználás analóg és digitális hang, alacsony sebességő adat ISDN (1,44 Mbps), AS 400 10 Mbit/sec Ethernet, 4 Mbps Token Ring 16 Mbit/sec Token Ring 100 Mbit/sec Fast Ethernet
3. Optikai kábel Az információkat egy üvegszálban haladó fénysugár megléte vagy hiánya hordozza. A fény a szál belsejének és külsejének eltérı törésmutatója miatt nem tud kilépni. A belsı, nagyobb törésmutatójú üveget (core) ugyanis egy kisebb törésmutatójú héj veszi körül (cladding), így teljes visszaverıdés jön létre. Alaptípusa a multimódusú (több hullámhosszon rezgı), step indexő (lépcsıs törésmutatójú) szál, amelynek viszonylag nagy a jeltorzulása. Megoldás a torzulás kiküszöbölésére a fokozatos törésmutató-átmenető szál (gradded index) vagy a távközlési vállalatok által használt lézerrel táplált egymódusú kábel. A technikai fejlıdés során elıször a 820-1300-1550 nm-eres hullámhossz tartományban (ún. optikai ablakban) sikerült a csillapítást 1 dB/km alá vinni. Itt mőködnek a mai átviteli rendszerek. A kábelek lehetnek kültériek és beltériek, fémtartalmúak és fémmentesek. Jellemzik ıket a core átmérı/cladding átmérı érték, ezt általában a köpenyen is feltüntetik (monomódnál tipikus 8-10/125, multimódnál 50-100/125-140). Elınyei: érzéketlen az elektromágneses zavarokra, nincs földpotenciál probléma, nagy sávszélesség, erısítés nélkül igen nagy távra vihetı, nem hallgatható le. Hátránya: drága, nehéz javítani és megcsapolni (bár ez utóbbi a védelem szempontjából elınyt jelent). Hátránya: Az ára. Az utóbbi években sokat csökkent az optikai kábel ára, de még így is kb 300 forint métere, még az UTP kábel ára kb 70 méterenként. 4.
5.
Infravörös, lézer, Rövid távú átvitelre alkalmazzák, nem terjedt el széles körben, fıleg idıjárás érzékenysége miatt sem alkalmas nagyobb távolságokban való használatra Elınye: Kiépítést nem igényel, csak a két berendezést kell telepíteni és lehallgatás és zaj ellen védett. mikrohullámú, rádióhullámú, Igen elterjedıben lévı technológia. Gondoljunk a WiFi hálózatokra, amelyek szinte már minden településen megtalálhatóak 2,4 Gh-en forgalmaznak, Magyarországon 13 különbözı csatornát engedélyeztek eme technológia számára. Manapság a notebook számítógépekben is alapfelszerelésnek számít a WiFi. A 802.11-es szabvány foglakozik ezzel a technológiával. Elınye: Olcsó Hátránya: Nagyon kevés a 13 csatorna, amelyek ráadásul átfedik egymást. Igazából csak négy igazi csatorna van. Ha egy kisvárosban több szolgáltató osztozik egy helyen, akkor ez problémát okozhat Másik terjedıben lévı technológia a WiMAX (802.16) amely jóval nagyobb hatókörrel rendelkezik. Egyesek szerint a WiMAX idıvel leváltja nemcsak a rohamléptekkel terjedı WiFit, de a mobiltelefonos hálózatokat is. A WiMAX lehetıséget ad arra, hogy eddig internettel gyéren ellátott vidékeket is a hálóra kapcsoljanak, egyszerően és olcsón, a technológia ugyanis több tíz kilométeres körben hozzáférést biztosít, és néhány bázisállomással egészen nagy városok is lefedhetıek.
22
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A használt frekvencia a 11 GHz-es tartományban van, a WiMAX hálózatok szolgáltatási távolsága akár 52 kilómétert is elérhet, anélkül, hogy a felhasználónak közvetlen rálátása lenne a bázisállomásra. A drótnélküli szélessávú technológia a megosztott adatsebességet 70Mbps-ig teszi lehetıvé, amely elég nagy sávszélesség, hogy több, mint 60 üzleti vonalat vagy többszáz otthoni DSL-típusú kapcsolatot szolgáljon ki, a bázisállomás egyetlen szektorát használva. 6.
mőholdas átvitel Speciális esetben alkalmazzák.
Szabványok: 802.3 802.3u 802.3z 802.3ab 802.3ae 802.11 802.11b 802.16
10 Mbit/s sebességő Ethernet, 100 Mbit/s sebességő Ethernet 1000 Mbit/s sebességő Ethernet optikai kábelen 1000 Mbit/s sebességő Ethernet rézkábelen 10 Gbit/s sebességő Ethernet optikai kábelen 1-2 Mbit/s-os drót nélküli Ethernet átvitel (WiFi) 11 Mbit/s-os drót nélküli Ethernet átvitel. (WiFi) 70 Mbit/-os drót nélküli Ethernet átvitel (WiMax)
Hálózat Elemei: - Passzív elemek: - csavart érpáras kábelek, amelyeket minden leendı és már kiépített munkahelyhez a “falban” el kell vezetni. - üvegszálas kábelek, amelyek a központi helyiségek közötti nagysebességő gerinchálózatot adják. - fali csatlakozók, amelyek a munkahelyeknél biztosítják a hálózatra való kapcsolódást. Általában egy adat és egy telefoncsatlakozót tartalmaznak. - patch panelek, amelyekre a sodort érpárak végei illetve az optika csatlakozik - patch kábelek, amelyek a patch panelek és az aktív elemek, illetve a fali csatlakozók és a számítógépek közötti összeköttetést adják - Aktív elemek: aktív “HUB”, telefonközpont, média konverter a központi helyiségben. Ma már egy központi szekrénybe (rack-szekrénybe) szerelve, modulárisan bıvíthetıen is kaphatók. Szoftver elemek: Architektúrák és operációs rendszerek Csoportosítsuk tehát a hálózatos operációs rendszereket a szerint, hogy a hálózatba bekötött gépek milyen feladatot látnak el. Így nagyjából három fı csoportra oszthatjuk a ma mőködı rendszereket. 1. Host-terminál alapú hálózatok A hálózat magját egy vagy több, egymással összeköttetésben lévı központi számítógép (host) alkotja. Itt futtatja az operációs rendszer a felhasználói programokat és mőködésének egyik integrált része a hálózatkezelés. A központi gépekhez intelligencia nélküli terminálok csatlakoznak, amelyeknek egyetlen feladata a billentyőzetrıl kapott adatok továbbítása és a képernyı adatok fogadása. Elınyei: a nagy kapacitású központi gépek és a terminálok között adatforgalom minimális, mivel a felhasználói program a szerveren fut. Hátrányai: Drága beszerzés mind a hardware mind a software oldaláról. A központi gép komoly hardware-t igényel. Drága az üzemeltetés is, általában klimatizált helység, szakképzett operátorok és rendszerprogramozók kellenek hozzá. Tipikus képviselıi: IBM nagyszámítógép rendszerek, DEC számítógép rendszerek (VMS operációs rendszer), UNIX . 2. Egyenrangú (peer to peer) hálózatok A hálózatban lévı bármelyik gép lehet hálózatot kiszolgáló és alkalmazást futtató gép is egyben. A gépek saját erıforrásai megoszthatóak (nyomtató, winchester, CD). Ezek a rendszerek kis LAN-ok kialakítására alkalmasak, ahol kevés gép van és a hálózati forgalom is minimális. Védelmi rendszerük egyszerő. A hálózat kiszolgálása mellett a felhasználói programot is futtatniuk kell, ez néha sebesség gondokkal jár. Elınye: olcsósága és egyszerősége Hátránya: kis kapacitása, valamint az, hogy hálózatorientált nagy feladatokhoz nem ad kielégítı hardware és software hátteret. Tipikus képviselıi: a Windows alapú hálózatok
23
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
3. Server-client alapú hálózatok A szerver feladata a mindenki által elérni kívánt file-ok tárolása, ezek hatékony védelme és a hálózati nyomtatás. Itt fut a hálózati operációs rendszer, amely mindezt megvalósítja. Az alkalmazói programok a kliens gépeken futnak, melyeken szinte tetszıleges operációs rendszer lehet. Ha adatra van szükségük, illetve nyomtatni szeretnének, akkor a server géphez fordulnak. Mivel a hálózatos funkciók a servereken összpontosulnak, hatékony operációs rendszereket és komoly védelmeket lehet ide telepíteni Elınye: nem kíván nagyon komoly hardware hátteret, gyors a kiszolgálás sebessége. Üzemeltetése olcsó, legtöbb helyen nincs is hozzá operátor. Hátránya: mivel az alkalmazói program a client gépen fut, nagy a hálózati adatforgalom. Ezért az ilyen rendszerek csak LAN környezetben mőködnek jól, a távoli belépés nehézkes. Nagy adatbázisok gyors kezelése járulékos software eszközt igényel. Tipikus képviselıi: Novell Netware, Microsoft Windows NT server
24
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A8. A számítógép be- és kiviteli eszközeinek (input-output perifériák) típusa és ezek feladatai és mőködésük elve. (egér, billentyőzet, floppy, optikai lemez, szkenner, digitalizáló tábla, digitális fényképezıgép, és videó és nyomtató fajták, plotter, adatmentı eszközök stb.)
Beviteli és kiviteli eszközök (billentyőzet, egér, nyomtató). A mikroszámítógépek beviteli eszközei közül a billentyőzet és az egér az, amelyeket a leggyakrabban használnak a felhasználók. Nagyobb mennyiségő adat bevitelére a billentyőzet nem alkalmas, ezért ilyen célra más eszközöket kell használni. Billentyőzet: A billentyőzet a mikroszámítógép közvetlen irányítására, kisebb mennyiségő adat bevitelére használható. A 101/102 gombos változatnál külön számbillentyőzet van a numerikus adatok könnyebb bevitelére. A billentyők funkcionálisan több csoportba sorolhatók: - a billentyőzet legnagyobb részét, az írógép billentyőzethez hasonló felépítéső, alapkarakterek (betők, számjegyek, speciális karakterek) billentyői alkotják - a numerikus adatok bevitelét könnyíti meg a számbillentyőzet, amely a billentyőzet jobboldalát foglalja el - a (101/102 gombos) billentyőzet felsı részét foglalják el a funkcióbillentyők, amelyek hatása az egyes felhasználói, alkalmazói programoknál más és más - az alapkarakterek és a számbillentyők között helyezkednek el a képernyıkezelı billentyők, amelyek a kurzor mozgatására, a képernyı tartalom mozgatására szolgálnak
-
Egy másik csoportosítási lehetıség: karakterbillentyők funkcióbillentyők váltóbillentyők (shift, ctrl, alt), amelyek egy másik billentyővel együtt lenyomva módosítják az eredeti billentyő hatását kapcsolóbillentyők (caps-lock, num-lock, scroll-lock), amelyek tartósan módosítják egyes billentyő csoportok hatását
A billentyőzet mőködése: A billentyőzet saját vezérlıvel rendelkezik, amely nem csak adatokat tud küldeni az alaplapon lévı billentyőzet illesztı felé, hanem parancsokat is tud fogadni. A billentyőzet megszakítási rutin valamelyik billentyő lenyomásakor annak billentyőkódját átküldi a billentyőzet pufferbe. A lenyomott billentyő azonosítására egy sorszám szolgál és nem a karakter ASCII kódja, mivel ugyanahhoz a billentyőhöz több karakter is tartozik. Azoknál a kombinációknál, amelyek valamely funkcióbillentyőhöz tartoznak, az átküldött byte-ok közül az elsı 0 értéket, a második a billentyőkódot foglalja magában. Tetszıleges ASCII kódértéket (a 0 kivételével) bevihetı, az ALT billentyő lenyomásával és vele egyidıben, a számbillentyőzeten a decimális kódérték bebillentyőzésével. Mivel a 0 kódérték a funkcióbillentyők jelzésére van fenntartva, ezért azt nem lehet bebillentyőzni. Egér: Az egér az utóbbi idık grafikus képernyıinek kedvelt “mutató” eszköze, amivel a képernyı különbözı helyein lévı objektumokra lehet rámutatni és a pozíció alapján, az egér billentyőivel vezérelni lehet az objektumhoz kapcsolódó rutint. Amíg az egérhez hasonló funkciójú botkormányhoz és fényceruzához beépített BIOS rutinok tartoznak, addig az egér kezelı rutinjait önálló és külön betöltendı meghajtó tartalmazza. Ezt a meghajtót az egér használata elıtt betöltve, az állandó jelleggel a memóriában marad a gép kikapcsolásáig. Mőködés szempontjából, az egérnek alapvetıen háromféle típusát használják: - mechanikus vezérléső egérnél két, egymásra merıleges görgırendszer mozgását érzékeli a berendezés és ennek jeleit továbbítja a gép soros portja felé - optikai vezérléső egér esetében, egy hálózatos rajzolatú egér alátéten mozgatva az egeret, egy LED fényének a visszaverıdését érzékeli a berendezés és továbbítja a processzor felé - opto-mechanikai vezérléső egér mőködése hasonló a mechanikus megoldásúéhoz, azzal a különbséggel, hogy az egér elmozdulásával együtt elforduló hasított korongon fényt átbocsátva, az így kapott fényimpulzusokat érzékeli a berendezés.
25
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Nyomtatók: A nyomtató a mikroszámítógépek azon kimeneti eszköze, amely az ember számára közvetlenül olvasható, értelmezhetı eredményt szolgáltat. A mikroszámítógépek mellett kisebb teljesítményő nyomtatókat használnak, amelyeknél fontos követelmény a jó minıségő nyomtatási kép. A leggyakoribb nyomtatók az alábbi csoportokba sorolhatók: - karakterenkénti nyomtatók (teljes karaktert nyomtatók, mátrixnyomtatók), amelyek egy-egy karaktert kiírva a nyomtatófejet egy pozícióval jobbra, vagy balra viszik - sornyomtatók, amelyek egyszerre egy teljes sor összes karakterét kiírják. Emellett beszélhetünk karakter és grafikus nyomtatókról. Ez utóbbiak esetében pontonként történhet a nyomtatás.
Nyomtatótípusok: - karakternyomtatók: A margarétakerekes nyomtatók esetében a karakterek képei egy forgó, hasított tárcsa (olyan, mint a margaréta virág) szélén helyezkednek el. A forgó tárcsa mögött elektromágnessel mőködtetett kalapács helyezkedik el, amely a szükséges idıpontban a tárcsa valamelyik szirmát az elıtte lévı papírhoz nyomja. A betőt tartalmazó tárcsa és a papír között található a festékszalag. A margarétakerekes nyomtatók igen jól minıségő kiírást eredményeznek, különösen karbonszalag alkalmazásával. A nyomtatás sebessége: 30-50 kar/sec. - mátrixnyomtatók: A nyomtatófejben, egy oszlopban 9, vagy 24 nyomtatótő található, amelyek egyenként vezérlehetık. A karakterek alakját egy 5*7-es, 9*11-es, vagy 18*23-as pontmátrix pontjaival rajzolja ki a nyomtató, egyidıben mindig csak egy oszlop pontjait nyomtatva. Az egy sorban irható pontok (dot) száma adja a felbontás és így a nyomtatás finomságát. Az alkalmazott felbontási pontszám 60-144 dpi (dot/ inch). Az egyes nyomtatóknál használt NLQ (near letter quality), vagy LQ (letter quality) nyomtatási formánál a jobb minıség, a folytonos vonal látszatának elérése érdekében, többszörös nyomtatást valósítanak meg ½-1 pontnyi eltolással az egyes nyomtatások között. A nagyobb tőszámú nyomtató használata természetszerőleg lassúbb nyomtatást eredményez a nyomtatásai kép javulása mellett. A nyomtatók sebessége 100-200 kar/s nagyságrendő, amelynek értéke NLQ, LQ minıség mellett a harmadára, negyedére eshet vissza. - tintasugaras nyomtatók: A tintasugaras (ink-jet), buborék (bubble-jet) sugaras nyomtatók igen jó minıségő nyomtatási képet eredményeznek, szinte zajtalanul, de drágábban, mint a lézer nyomtatók. A nyomtatási kép több tucat fúvókán keresztül kilövellt, porlasztott apró tintacsepp hatására alakul ki a papíron. A nyomtatóval jó minıségő grafikus nyomtatás is elérhetı, akár színesben is. A nyomtatási finomság szokásos értéke 300*300 dpi, a sebessége pedig igen széles skálán 4-5 lap/s körül mozog. - lézernyomtatók: A mikroszámítógépek környezetében a legjobb minıségő nyomtatási lépet a lézernyomtatók adják. A lézernyomtatók mőködési elve hasonlít az elektrosztatikus elvő másolók mőködéséhez. A nyomtatóban egy kb. 1000 V-ra feltöltött, fényérzékeny bevonattal rendelkezı forgó henger van. A forgó henger felületét végigpásztázza egy lézersugár, amit a nyomtatandó kép jelével modulálnak. Ahol fénysugár éri a hengert, ott a fénysugár erısségének megfelelı mértékben a henger felülete elveszti a töltését. A forgó henger felülete elhalad a finom festékport tartalmazó kazetta elıtt, amelybıl a töltéssel arányos mennyiségben festékpor tapad a henger felületére, amelyet rányom a papír felületére. A papír főtött hengerek között halad át, amelyek a festékanyagot “ráégetik” a papírra. A forgó henger felületét a nyomtatás után letisztítják és így alkalmas lesz a következı lap nyomtatására. A nyomtatás elıtt a teljes lap tartalmát pontokra bontva elı kell állítani, hogy a lézersugarat megfelelıen vezérelni lehessen. A nyomtatási kép elıállítása többféle módon történhet: -
-
-
a nyomtató saját processzorral rendelkezik, amely a számítógéptıl kapott kiiratandó adatokat átalakítja a szükséges ún. bittérképes formába, azaz elkészíti a kiiratandó lap teljes képét pontokra bontva. Ennek a módszernek elınye, hogy a számítógép és a nyomtató között viszonylag alacsony (2000-8000 bit/s) adatátviteli sebesség szükséges, így a soros csatlakozón keresztül átküldhetık az adatok és a nyomtatás nagy mértékben függetleníthetı a számítógéptıl. Ugyanakkor a nyomtató saját vezérlıje gyakorlatilag egy kismérető számítógép, saját processzorral és memóriával. Egy-egy lap bittérképes tárolása kb. 1 MB memóriát igényel. a nyomtatási képet a számítógépben állítják össze és az elkészült képet továbbítják a nyomtatóhoz. Ennél a megoldásnál ugyan olcsóbbá válik a nyomtató, de ugyanakkor leköti a számítógépet a kép elıállításával, másrészt a szükséges adatátviteli sebesség lényegesen magasabb (1-1,56 MB/s), mint az elızı változatnál. a korszerőnek tekinthetı megoldás a nyomtatási képet egy közvetítı nyelv, a PostScript segítségével írja le és ezt az elıírást továbbítja a nyomtató felé, amely ennek értelmezésére képes és ennek alapján alakítja a végleges nyomtatási épet.
26
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A lézernyomtatók teljesítménye változó, a mikroszámítógép mellett használt nyomtatók 8-15 lap/sec sebességgel mőkıdnek. -
hıpapiros nyomtatók : speciális papírt igényelnek, manapság már ritkaság, de faxokban még található ilyen technológia. Hátránya, hogy a papír több év után nehezen olvashatóvá válhat, nagyon ügyelni kell az ilyen dokumentumok tárolására. Besárgulhat a papír és a szöveg is veszít erejébıl. Elınye viszont, hogy nem kell festékanyag utánpótlással veszıdni, csak beletesszük a papírt és kész. Ideális a titkárnıknek ☺
3 dimenziós nyomtatás A 3 dimenziós nyomtatás már napjainkban is létezik, de egyenlıre csak a nagy cégek engedhetik meg maguknak, hiszen több millió forintba kerül, de 2010-12-körül akár magánszemélyeknek is elérhetıvé válik ez a technológia. Ma még inkább csak autógyárak és építészek használják. A térbeli nyomtatók általában tizedmilliméter vastagságú lapokból állítják össze a kívánt tárgyat. A leggyakoribb mőködési elv szerint a por állagú alapanyagot egy henger felületére viszik fel, majd ebbe lézer égeti bele a tervrajznak megfelelı ábrát. Ahol a lézer nem érte a felületet, ott a por por marad és könnyen eltávolítható - ahol érte, ott megszilárdul, és így a hengerrıl a kívánt tárgy egy vékony szelete kerül le, amit már csak össze kell ragasztani a többivel, amit szintén a nyomtató végez.
Mőködés közben videó: http://www.3dnyomtatas.hu/frequent_FDMprocess.html A 3D-nyomtatók gyártói az internetrıl pénzért letölthetı, majd szabadon módosítható modellekben látják a nyerı üzleti modellt. A Fabjectory nevő cég a játékosokat célozza, a Second Life és a World of Warcraft üzemeltetık egy online játékok karaktereirıl egyedi "szobrokat" készítı szolgáltatásban látják a jövıt. Vetélytársuk, az IdeaLab még tovább vinné ezt a vonalat. "Képzeld el, hogy felmész a Mattel oldalára, letöltesz egy Barbie-modellt, hozzárendeled a lányod fényképét, kiküldöd a nyomtatóra, és máris kész a gyereknek a tökéletes ajándék!" - fantáziált a cég vezetı marketingese. Optikai lemezek Az optikai jelrögzítés valamilyen formáját alkalmazó eszközök az utóbbi néhány évben terjedtek el, már ma is igen széles körben. Az adatrögzítés a korong felületén egy spirális pályán, lézersugárral kialakított digitális jelsorozat által történik. http://www.freeweb.hu/hmika/Lexikon/Html/OptTarol.htm CD-ROM: A világ elsı CD-je a Philips Hannover közelében lévı gyárában készült el 1982. augusztus 17-én. A Philips és a Sony közös fejlesztésébıl 200 milliárd darabot adtak el az elmúlt 25 évben. A méret meghatározásánál fontos szempont volt, hogy a leghosszabb szimfónia is elférjen rajta így az eredetileg 60 percesre tervezett lemez 74 percre való bıvítése mellett döntöttek, lehetıvé téve Beethoven IX. szimfóniájának egyben rögzítését. A mesterlemez felületére a rögzítendı jelsorozatot lézerrel beégetik. A 0,5 µm átmérıjő lyukak és közbülsı szakaszok váltakozása adja az eltárolt adatokat (lyuk-nem lyuk átmenet = 1). A mesterlemezrıl készül a negatív nyomóforma, amellyel a pozitív lemezt préselik mőanyagból. Az adatrögzítés spirális pályán történik, a jelsőrőség állandó. Emiatt a fordulatszám 250-500 f/p közt változik.
27
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
CD-RW: A jelrögzítés magneto-optikai elven történik. A felületet speciális fémmel borítják be (gadolinium, terbium), mely alacsony hımérsékleten nem mágnesezhetı, felmelegítve viszont igen. A jel felviteléhez felmelegítik a fémréteget, majd felmágnesezik a kívánt irányban. Leolvasáskor a polarizációnak megfelelıen a visszavert lézerfény iránya változik. Adatrögzítés: A Cd olvasása nagy hibaaránnyal jár, ezért - minden byte-ot 14 bitre egészítenek ki hibajavító kóddal; - az adatot csoportokba rendezik, és ellenırzı mezıkkel látják el; - a csoportok keretet, azok blokkot alkotnak. - Az adatcsoporton belül az egyes byte-ok nem követik egymást; - A rögzítés keresztben átszıtt Reed-Solomon hibajavító eljárás segítségével történik. A keresztben átszövés a hosszú csoportos hibákat több rövidebb hibára darabolja fel, míg a Reed-Solomon kódolás feladata a hibajavítás. A keresztszövés lényege, hogy a forráskódból két kódolási eljárással kapjuk meg a felírandó adatokat, és a két kódolás késleltetés és átszövés iktatódik be. Az átszövés azt jelenti, hogy a felírandó adatokat nem egymás után, hanem valamilyen algoritmus szerint kevert sorrendben írjuk fel. Ez azzal az elınnyel jár, hogy a csoportos hiba egyes bájtjai, az átszövés visszaalakulása után egymástól távolra kerülnek, és egyedi bájthibák lesznek. Kompaktlemeznél forráskód 24 bájtos, melybıl a C2 kódoló 28 bájtos adatot állít elı. Átszövés után a C1 kódoló a 28 bájtos bemenı 32 bájtos kódot állít elı, azaz a 28 bájthoz további négy bájtot tesz hozzá. Ha a lemezrıl beolvasunk egy blokkot, elıször az elsı 14 bites csatorna adatból dekódoljuk az alkód bájtot. Ezután a keret 24 adatbájtját és a 8 hibajavító bájtot átadjuk az elsı Reed-Solomon dekódernek (C1). Ez a dekóder 4 hibajavító bájtot használ fel, és a 32 hibás bájtból (24 adat + 8 hibajavító) csak kettıt tud javítani. Ha nem fordul elı nem javítható hiba, az adatok egyszerően továbbadódnak. Ha van ilyen hiba, az adatok hibás jelzést kapnak. A 24 adatbájtot és négy hibajavító bájtot bájtonként különbözı mértékben késleltetik, mielıtt a második Reed-Solomon dekóderre jutnak. Ezek a késleltetések az adatok átszövésében azt eredményezik, hogy a hosszú adathibák egyedi hibákra tagolódnak szét. A késleltetések nagyságára jellemzı, hogy 450 bájt hosszú hiba is javítható. A második Reed-Solomon dekóder a négy hibajavító bájtot felhasználva további hibákat javít a keret 24 adatbájtjában. Ennél a pontnál az adatok átszövésének visszaállítása befejezıdik, és helyreáll a bájtok eredeti sorrendje.
Egyéb perifériák: Monitor: az adatok grafikus vagy szöveges megjelenítésére szolgál. A monitoron a számítógép úgy jeleníti meg a képet, hogy az információkat elküldi a gépben lévı videokártyához, a kártya átalakítja azokat a monitort mőködtetı vezérlıjelekké, amelyek azután kábelen a monitorhoz jutnak. A ma használt videokártyák és monitorok már jobb minıségő megjelenítést tesznek lehetıvé, mint a jó minıségő televíziók, és akár 16 millió színt is képesek ábrázolni. A hordozható számítógépeken LCD és TFT monitorokat használnak, sıt megjelent a hajlékony kijelzı is. http://www.indavideo.hu/video/Technikai_szenzacio_a_flexibilis_display_ Plotter: (rajzgép) az eredmények grafikus megjelenítésére használatosak nyomtatott formában. A plotter karja a számítógép utasításának megfelelıen emeli fel a tollat és az utasítást követve rajzol egyenes vonalakat és íveket. A legnagyobb plotterek tintasugaras elven mőködnek és nagyon nagy mérető papírlapra is képesek rajzolni. Szkenner: rajzok, grafikák, fényképek vagy szöveg raszteres (bitképes) bevitelét teszi lehetıvé. A szkennerek videokamerához hasonló CCD fényérzékelıvel digitalizálják a képeket. A fehér fénnyel megvilágított képet egy mozgó tükör fókuszálja a fényérzékelıbe, mely színekre bontja, digitalizálja, majd átküldi a PC-nek. Digitális fényképezıgépek: A digitális fényképezıgépek ugyanazt valósítják meg, mint a szkennerek. Az ilyen készülékek ugyanis a látott képet azonnal digitális képpé alakítják át, amelyet közvetlenül a számítógépbe, vagy kis mérető winchesterre képesek továbbítani. A fényképezés után össze kell kötni a fényképezıgépet a számítógéppel, majd letölteni a kész képet és a kép azonnal megtekinthetı a számítógép képernyıjén.
28
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Modem: A modem segítségével a számítógépet ráköthetjük a telefonvonalra. A külsı modemek külön készülékben helyezkednek el, mőködtetésükhöz külsı áramforrásra is szükség van és a számítógép soros portjára (csatlakozójára) kapcsolódnak. A belsı modemek csupán egyetlen bıvítıkártyából állnak, amelyet a számítógép belsejébe kell szerelni. A modemek a számítógépes adatokat olyan hangokká alakítják (modulálják), amelyek normál telefonvonalon is továbbíthatók. Ha a telefonvonal másik végén szintén egy modemmel rendelkezı PC van, az a hangokat vissza tudják alakítani (demodulálni) adattá. Ezzel a módszerrel a gépünkön lévı bármilyen fájlt el lehet küldeni egy másik PC-nek. De mivel a telefonrendszereket nem nagy tömegő adat továbbítására fejlesztették ki, az ilyen adatátvitel eléggé lassú. Ma már minden modem képes 56000 bps sebességgel továbbítani. Manapság azonban már nem csak telefonvonalon használnak modemet, hanem kábelTV hálózatokon is igen elterjedt az internet szolgáltatás. Manapság egy modern kábeltv-s hálózaton egyszerre lehet TV-t nézni, telefonálni és internetezni.
e-paír: Az LG és a Philips mérnökei készítették el a világ elsı A4-es színes e-papírját. A különleges kijelzı háromszáz mikrométer vastag és majdnem olyan hajlékony, mint egy papírlap, a rajta megjelenı kép minden irányból jól látható. Egyetlen komoly hátránya, hogy csupán 4096 színt tud megjeleníteni, ezért a számítógépek monitorját még aligha helyettesítheti. Az elektronikus papír egyik legfontosabb tulajdonsága, hogy csak a kép megváltoztatásához van szüksége energiára, tehát ha hosszabb ideig ugyanazt a képet kell mutatnia, kevés áramot fogyaszt. A színes e-papír alapvetıen ugyanúgy mőködik, mint a korábbi fekete-fehér változatok, melyek mikrokapszuláiban sötét és világos pigmentrészecskék változtatják a helyüket, így hozva létre a szürkeárnyalatokat, de „rászereltek” egy színes szőrıt. A lapban csordogáló elektronikus tintát az E-Ink gyártja, viszont az LG.Philips fejlesztette ki azt a technológiát, amely minimalizálja a panel deformálódását. Az LG.Philips 2005 októberében mutatta elsı fekete-fehér e-papírját, majd 2006 májusában elkészített egy A4es változatot belıle. Eddig kevés termékben jelent meg a technológia, de az iparág becslése szerint a hajlékony kijelzık piaca 2010-re évi 5,9 milliárd dollárra, 2015-re pedig 12 milliárd dollárra nı.
29
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A9. A számítógép sínrendszerének feladata és logikai felépítése, a mikroszámítógépek PCI sínen alapuló architektúrája (a belsı és a helyi rendszersín feladata és a csatlakoztatható eszközök, sínvezérlés, sínfoglalás) Sínrendszer elhelyezkedése (és az általuk összekapcsolt területek) alapján • külsı (helyi sín, rendszersín, nagygépeknél memóriasín) • belsı (címsín, adatsín) A sínrendszer felépítése alapján • címsín • vezérlısín • adatsín • elválasztó sínvezérlı Sínvezérlés alapján • szinkron • aszinkron Sínfoglalás alapján • párhuzamos • soros Jogosultság megszerzése alapján • centralizált módon • decentralizált módon A mikroszámítógép sínrendszere (buszrendszere) egy több tucat vezetékbıl álló vezetékrendszer, amelyen az adatok, vezérlıjelek, eszközcímek meghatározott módon vihetık át. A sínrendszer szabályozott módon köti össze a számítógép különbözı részeit. 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. Mivel minden eszköz ugyanarra a sínrendszerre kapcsolódik, az átvitel létrehozásakor: meg kell oldani az adatátvitelben résztvevı eszközök kijelölését, meg kell határozni az adatátvitel irányát, meg kell oldani a kapcsolatban résztvevı eszközök mőködésének összehangolását. A sínrendszer használatának elınye, hogy a szabványosított jelhasználat és vezetékkiosztás miatt könnyen cserélhetık a csatlakoztatott eszközök, illetve azok vezérlı kártyái és így gyártótól, géptıl függetlenné válik azok használata. A sínrendszer elhelyezkedése szerint két nagy csoportba osztható: Belsı sínrendszer: a processzoron belüli egységek összekötésére szolgál, órajele megegyezik a CPU órajelével Külsı sínrendszer: a processzor és az azon kívül lévı egységek összekötésére szolgál Az összekapcsolt területek alapján Belsı sínrendszer Kialakítását az elérni kívánt teljesítmény szabja meg. Nagyobb teljesítményő processzorok esetében, az átvitel gyorsítása érdekében, 3-sines rendszer kialakítása a célszerő, amelynél a címsín mellett, külön adatsín van írásra és olvasásra. Ezzel a közel egyidejő írás és olvasás megoldható. Egyszerőbb megoldást ad a 2-sines (adat és címsín) rendszer, amely általánosan elterjedt megoldás a processzorok körében. A közös adat és címsín használata csak a nagyon egyszerő, célfeladatokra használt processzoroknál alkalmazott. Külsı sínrendszer az összekapcsolt területek alapján lehet: helyi sín (local bus), amely a processzorhoz közvetlenül kapcsolódó részt jelenti, tehát a processzor hajtja meg. Erre kapcsolódnak azok az eszközök (pl. memória, grafikus kártya), amelyek esetében a gyorsaság lényeges; rendszersín (system bus), amely a processzort köti össze egy sínmeghajtó közbeiktatásával a gép egyéb részeivel, elsısorban az I/O eszközökkel; memóriasín (memory bus), amely nem minden esetben képez önálló részt, de nagyobb rendszernél célszerő leválasztani a rendszersínrıl a memória területét.
30
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Sínvezérlés (buszvezérlés) módjai: szinkron ütemezéső buszok, amelyek saját órajellel rendelkeznek és ezek ütemei szabják meg a buszon zajló folyamatok, mőveletek idıbeli lefutását; aszinkron ütemezéső buszok, amelyek saját órajellel nem rendelkeznek és a folyamatok és mőveletek lefutását, az egymást követı elemi lépések befejezése szabályozza. Sínhasználat (buszhasználat): A sínt egy idıben csak egy eszközpár használhatja. A busz használatát valamelyik eszköz kezdeményezi, amelyet aktív eszköznek (master) neveznek, szemben a kapcsolatban résztvevı másik, passzív eszközzel (slave), amely csak fogadja és végrehajtja az aktív eszköztıl származó vezérléseket. A mikroszámítógépeknél a busz irányítását megszerzı eszköz: a processzor, vagy valamelyik DMA-t alkalmazó I/O eszköz lehet. Minden busztevékenységhez meghatározott idıtartam, ütemszám szükséges. Azt az idıtartamot, amely egy adatátviteli folyamat lefutásához - egy következı tevékenység megindítási lehetıségéig - kell, buszciklusnak (bus cycle) nevezzük. Mind a szinkron, mind az aszinkron mőködési mód mellett az összekapcsolt eszközöknek összehangolt módon kell mőködniük. Sínfoglalás (buszfoglalás - bus arbitration): Az adatátvitelek lebonyolításához egyidıben több aktív eszköz (master) is igényelheti a busz használatát. Ilyenkor valamilyen eljárással el kell dönteni, hogy melyik eszköz kapja meg elıször a buszhasználat jogát. A buszhasználat jogának eldöntésére szolgáló folyamatot nevezik buszfoglalásnak, busz arbitrációnak (bus arbitration). A sínfoglalás iránti igények kiszolgálása két módon történhet: párhuzamos kiszolgálási mód: alkalmazásakor minden eszköz önálló buszkérı és buszengedélyezı vezetékkel rendelkezik. A beérkezı igényeket a vezérlı logika sorolja, dekódolja és a legmagasabb prioritású eszköz számára engedélyezi a busz használatát. soros kiszolgálási mód alkalmazásakor az eszközök sorba vannak kötve és a lánc mentén az elhelyezkedésük szabja meg, hogy mikor kaphatják meg a sín használatát. Amelyik eszköz a legközelebb van a vezérlıhöz, annak a prioritása a legmagasabb. a processzor szokásosan a legalacsonyabb prioritású azért, hogy minden eszköz megkapja az eszközt, ha igényli a kiszolgálás egyik változata a lekérdezéses (polling) rendszer, amelynél a vezérlı logika sorra lekérdezi az eszközöket a buszfoglalás iránti igényükrıl. Itt a lekérdezés sorrendje adja a soros láncot. Mindkét esetben a jogosultság megállapítása történhet: centralizált módon, amely esetben egy központi prioritásvezérlı logika szabja meg a hozzáférés sorrendjét decentralizált módon, amely esetben a priorizáló logika elosztott formában valósul meg, az egyes eszközök vezérlıi által bıvebben: http://hu.wikipedia.org/wiki/S%C3%ADnrendszer Az ISA külsı sínrendszert fejlesztette tovább a 180 gyártó által elfogadott PCI (Peripheral Component Interconnector – Periférikus Alkatrész Csatlakozó) szabvány. Ennek lényege, hogy a processzor és a PCI busz közé egy chip-et iktattak be, mely lehetıvé tette, hogy a buszrendszer a konkrét processzortól és annak sebességétıl függetlenül is mőködıképes legyen. A PCI sínrendszer jellemzıi négy új megszakítás alaplapi eszközökhöz és a sínbe helyezhetı perifériákhoz 32-64 bites átvitel 33-66 MHz-es órajel 133-532 MB/s adatátviteli sebesség 5 és 3,3 V-os tápellátás A Plug and Play technológia támogatása A PCI busz alapkoncepciója az I/O egységek szabványos csatlakoztatását biztosító sínrendszer (I/O sín) és a processzortároló alrendszer (rendszersín) határozott szétválasztása volt. A két buszrendszert az alaplapi vezérlıáramkör-készletben
31
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
található PCI-Bridge (PCI-híd) áramkörök kapcsolják össze. A PCI buszhoz kapcsolt eszközöket PCIegységeknek (PCI-Agent) nevezik, ezekbıl maximum 10 db lehet. Ilyen PCI-egység lehet a SCSI adapter, a hálózati csatoló (például Ethernet), vagy egy monitorvezérlı kártya. A PCI Bridge lehetıvé teszi a sínrendszer "processzorfüggetlen" alkalmazását. A PCI Bridge képes a CPU-val teljesen párhuzamosan mőködni, ha a processzor ugyanakkor nem címzett meg egy PCI-egységet. Ekkor két PCI-egység a PCI Bridgen keresztül adatot cserélhet, miközben olyan program fut, amelynek például csak a cache-ben található adatokra van szüksége. Így a rendszermemória és egy I/O eszközvezérlı, vagy két I/O eszközvezérlı processzortól független adatcseréjét is biztosítja a PCI sín. Megnevezés Szélesség (bit) Sebesség (MHz) Sávszélesség (Mbájt/sec) 16 bites ISA EISA PCI PCI 2.1
16 32 32 64
8,3 8,3 33 66
15,9 31,8 127,2 508,6
A sínrendszer felépítése szerint (tartalmilag) három részre osztható: címsín, amely az eszközök címzését szolgálja, azok címét továbbítja rajta a processzor, szélessége 32 (esetleg 64) bitnek megfelelıen ugyanennyi vezeték; adatsín, amelyen keresztül a továbbítandó adatot küldi, vagy fogadja a processzor. Az adatsín szélessége többnyire 32 (vagy 64) bit, illetve ugyanennyi vezeték; vezérlısín, amelynek vezetékeit a processzor a vezérlıjelek kiküldésére, vagy azok fogadására használja fel. A vezérlıjelek száma változó, általában 10-15 körül van minimálisan. A sínrendszerhez szorosan hozzátarozik a helyi sínt a rendszersíntıl elválasztó sínvezérlı (sínmeghajtó) egység (bus interface), amely egyrészt, a megfelelı nagyságú jeleket biztosítja a hosszabb rendszersín számára; másrészt, elválasztja az egyes sínrészeket egymástól, amelyek bizonyos mértékig egymástól függetlenül mőködhetnek; a helyi sín számára lehetséges a gyorsabb mőködés harmadrészt, a sínt vezérlı jeleket szolgáltatja, szabályozza a sínfoglalásokat. A PCI sínrendszer továbbfejlesztésre került és PCI Express (PCIe) névre keresztelték A PCIe a PCI-hoz hasonlóan az OSI Hálózati Modell alsó négy rétegét implementálja (Fizikai, Adatkapcsolati, Hálózati és Szállítási réteg), a legfelsı réteg megvalósítása a két sín esetén kompatibilis, igy az alkalmazások mindkét esetben ugyanazt a folytonos címzési modellt használhatják. A PCIe esetében a fizikai adatátvitel nagysebességő soros kapcsolaton keresztül történik, szemben a PCI sínnel, ahol 32- vagy 64 bites párhuzamos sínt alkalmaznak. A PCI-nál az eszközök osztoznak a sínen, mig a PCI Expressnél egy switchen keresztül érik el (point-to-point síntopológia) a sínt (minden eszköz úgy látja, mintha saját külön sínnel rendelkezne. A switch gondoskodik a point-to-point kapcsolatok létrehozásáról és a vezérli a sín adatforgalmát. A switch és az eszközök közötti kapcsolatokat link-nek nevezik. Egy PCIe link duál szimplex, azaz az adó és a vevı két egyirányú csatornán keresztül forgalmaz. Minden link egy vagy több lane-bıl állhat. Egy lane egy bájt egyidejő átvitelét teszi lehetıvé, ami a gyakorlatban körülbelül 2.5 Gbit/s adatátviteli sebességet jelent. A PCIe 1, 2, 4, 8, 12, 16 és 32 lane-bıl álló linkek létrehozását támogatja. A switch alkalmazása lehetıvé teszi a rendelkezésre álló sávszélesség jobb kihasználását és az adatforgalom fontosság szerinti osztályozását A technológia rendkívül jól skálázható, így valószínőleg sokáig használatban marad. Az alacsony fogyasztás, illetve az energiatakarékossági funkciók támogatása elsısorban az eszközök által termelt hıt csökkenti, a bıvítıkártyák mőködés közbeni csatlakoztatásának, illetve cseréjének lehetısége pedig elsısorban a szerverek esetében lehet fontos tényezı. 2007 januárban véglegesítették a PCI Express csatolószabvány 2.0-s verzióját, amely számos újdonság mellett fıként – kétszeres sávszélességével – sebességében múlja felül a jelenleg használt változatot. Az új platform várhatóan 2007 utolsó negyedében kerül piacra, de már lázas munka folyik a 3.0-ás változat elkészítésére is, amely várhatóan 2009 végére készül el.
32
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A10. Az INTEL mikroprocesszorok regiszterei (csoportosítás, felsorolás, felhasználás). A FLAG regiszter A processzorok ideiglenes adattárolási céljaira szolgálnak az általános célú, vagy meghatározott funkciójú regiszterek. A regiszterek a belsı sínrendszeren keresztül tartanak kapcsolatot a processzor más részeivel. A regiszterek 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. A regiszterek gyors mőködéső tárak, amelyek hossza általában az adatbusz szélességével egyezik meg. A legfontosabb regiszterek a következık: Általános célú: - AX: akkumlátor: Az aritmetikai és logikai mőveletek operandusait, vagyis mőveletek tárgyát képezı mennyiségeket vagy azoknak az eredményeit a CPU a központi regiszterében, akkumlátorában tárolja. A különbözı mőveleteket a CPU az akkumlátorban tárolt adatokon, vagyis az akkumlátor tartalmán végzi el. - BX, CX, DX Címszámítás: - SI: forrás index - DI: cél index - az indexregiszterek szintén az operandusok címzését segítik elı, különösen adatsorozatok feldolgozásánál használhatók elınyösen. -
BP: bázis mutató az operandusok címzéséhez felhasznált regiszter. A báziscím egy alapcím, amelyhez viszonyítva adhatjuk meg az utasításban az operandus helyét. SP (Stack Pointer): veremmutató regiszter, amely 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 kialakítva, annak egy lefoglalt területét használja. Adatokat csak a verem tetejére lehet tenni és csak onnét lehet levenni is. Ezt a tárolókezelési módot nevezik LIFO (Last-In-First-Out) módszernek. A veremmutató mindig annak a tárolóhelynek a címét tartalmazza ahol a következı adatot elhelyezi (push), vagy ahonnét a következı adatot leveszi (pop) a processzor.
Szegmentálás: - CS: kód szegmens - DS: adat szegmens - SS: verem szegmens - ES: extra szegmens - FS, GS Speciális: - IP: utasítás - PC: utasításszámláló regiszter (PC= Program Counter, vagy IP= Instruction Pointer), amely a soron következı utasítás memóriabeli címét tartalmazza mindig. Az utasításszámláló regiszter kezdı értékét, azaz a program elsı utasításának tárbeli helyét, kívülrıl kapja, a program indítása elıtt. Amennyiben a program utasításai szigorú egymásutánban követik egymást a tárolóban, akkor a PC tartalma mindig a következı utasítás tárbeli címét adja meg. Ha a programban elágazás következik be, akkor a vezérlı egység új értékkel, az elágazási utasításban levı címmel tölti fel a PC-t. - utasításregiszter (IR= Instruction Register) a vezérlı egység fontos része, amely a tárból kikeresett “lehívott” utasítást fogadja be arra az idıre, amíg a vezérlı egység az utasítás mőveleti jelrésze (opcode) alapján meghatározza az elvégzendı mőveletet és ennek alapján elindítja a végrehajtást vezérlı mikroprogramot. Az utasítás címrésze (az operandus(ok) tárbeli helyét adja meg) alapján ugyanakkor az operandus pontos tárbeli címe is kidolgozásra kerül. -
pufferregiszter (buffer register), amelyek a processzor belsı adat és címsínjét választják el a külsı sínrendszertıl.
-
adatszámláló regiszter (DC= Data Counter): Az adatok kiolvasásakor vagy beírásakor azonosított memória rekesz 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ória-rekesz tartalmához, vagyis az adatokhoz való hozzáféréshez tehát szükség van akkumlá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ória-rekeszének a címét tároljuk.
33
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
-
FLAGS: állapotregiszter, amely vezérlı és ellenırzı jeleket tárol. A mőveletek végrehajtásának eredménye alapján bekövetkezı állapot jellemzıit tükrözi vissza a regiszter egy-egy helyi értéke, bitje. Ilyen jellemzı pl. - Zero: az eredmény nulla volta - Overflow: a keletkezett számérték túl nagy értéke - Carry: átvitel keletkezése - Parity: az eredményben levı 1-esek párosságát jelzi - Auxilary: közbensı átvitel az alsó 4 bitrıl a felsı 4 bitre - Sign: elıjel Egyéb flagek: - Trap: az utasítás végrehajtása után a processzor INT1-es megszakítást hoz létre - Interrupt: a hardver megszakításkérelemek letiltása Az állapotregiszternek lehetnek olyan bitjei, amelyek valamilyen vezérlési elıírást tárolnak, mint pl. valamely részegység használatának engedélyezése, megszakításkérés kiszolgálásának letiltása. Ha a különbözı funkciójú bitek száma nagy, akkor önálló vezérlı regiszter (control register), állapotjelzı regiszter (status, vagy flag regiszter) használata a szokásos.
34
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A11. A verem (stack) fogalma és mőködése, a veremmutató regiszter. A vermet kezelı assembly utasítások. A szubrutin fogalma, célja. A szubrutinra vonatkozó assembly parancsok A verem olyan adatszerkezet, melybe bevinni elemet az eddig már bent lévı elemek után lehet. Az elsı elemet a verem aljára teszem, a következıt ennek a tetejére és így tovább. Veremrıl lévén szó, mindig csak a legfelsıt látom. Egy verembıl mindig csak a legutoljára bevitt adatelemet tudom kiemelni. Az, hogy kiolvasok egy elemet a verembıl, az egyben az adott adatelemnek az eltávolítását is jelenti. A verem a fıtár egy kijelölt memóriaterülete, vagy egy regisztertár a CPU-ban (kaszkád verem). A verem (stack) LIFO szervezéső tárolóhely: az utójára beírt adatot lehet elıször kiolvasni. A verem úgy mőködik, mintha oszlopba rendezett regiszterekbıl állna és csak az oszlop tetején lévı regiszteren keresztül lehetne abba adatokat beírni vagy ebbıl adatokat kiolvasni. A verem tetején lévı rekeszre mutat a veremmutató. Ha egy adat bekerül a stack-be akkor a veremmutató az SP 2-vel csökken, ha kiveszünk belıle egy elemet akkor a veremmutató értéke 2-vel nı, mivel a stack szavas szervezéső. Szubrutin hívásakor (CALL) a visszatérési címet helyezi el a stack-ben és a szubrutinból való visszatéréskor (RET) innen olvassa ki a visszatérési címet. Kaszkád verem: A verem egy másik szervezéső formája a kaszkád verem. Ez olyan verem, amely a CPU-n belül van, és meghatározott számú regiszterbıl áll. Az adatbeírás/olvasás itt is kizárólagosan a verem tetején történik, itt azonban nincs szükség SP-re, ugyanis minden beírás után minden adat eggyel lejjebb ugrik. Amennyiben a legalsó rekeszben volt adat, akkor az elvész. A kiolvasás ennek a fordítottja. A legfelsı adat kiolvasását követıen minden egyes adat eggyel feljebb ugrik. A vermet kezelı assembly utasítások: PUSH op a 2 byte-os operandust a stack-be írja, (az SP értéke 2-vel csökken) PUSHF a STATUS stack-be íródik. Ez az utasítás a flag-ek mentésére szolgál. POP op a 2 byte-os operandus felülíródik a stack tetején lévı (WORD) szóval, az SP által címzett szó átmásolódik, majd az SP 2-vel megnı. POPF a stack tetején lévı szó felülírja a STATUS-t. Ezzel az utasítással tudjuk a flag-ek tartalmát helyreállítani. Ezek az utasítások fı haszna az, hogy a szubrutinok az általuk használt regisztereket elmenthetik, majd futásuk befejezésekor visszaállíthatják anélkül, hogy erre statikus memóriaterületet kellene igénybe vennünk. Figyelni kell a visszaállítás sorrendjére (fordított) is. Minden PUSH-nak kell lennie egy POP párjának is mert különben hibásan dolgozhat a program. Ha például egy szubrutint hívunk és utána PUSH nélkül hívunk meg egy POP-ot akkor a szubrutinhívás helyett egy ugró utasítás lesz. (Elveszik a visszatérési cím.) Szubrutin: Olyan programrész amelyek a feladatban többször elıforduló, ismétlıdı folyamatokat takar (alprogram). Ilyenkor ezt csak egyszer írja meg az ember úgy, hogy bárhonnan elérhetı és ha szükséges megfelelıen paraméterezhetı legyen. Olyan utasítások sorozata, melyet a program több részérıl elérhetünk, és csak egyszer kerül tárolásra. Tehát az utasítássorozatok redundanciájának feloldását oldja meg. A hívás visszatérési címe a veremben tárolódik. Ez alkalmat ad az úgynevezett rekurzív szubrutinok alkalmazására, melyek önmagukat gívják meg. Ez a módszer a bonyolultabb (matematikai-rendezési) problémák feloldását segíti elı. Mivel a lokális változók is a veremben kapnak helyet, ezért tud „elszállni” a program, ha a lokális változókat felülírjuk, hiszen ilyenkor felülíródhat a visszatérési cím is, így visszatéréskor máshova ugrik a vezérlés. Szubrutinhívási és visszatérı utasítások CALL op Az IP pillanatnyi értéke a (s soron következı utasítás virtuális címe) a stack-re kerül, majd IP (Instruction Pointer) utasításszámláló felülíródik az “op”-al, mely lehet direkt cím vagy tetszıleges címzési móddal elért regiszter- vagy memória operandus. Lehet rövid (szegmensen belüli) vagy hosszú (szegmensközi) szubrutinhívás.
35
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
RET [konstans] Konstans megadása nélkül: A stack tetején lévı értékkel felülírja az IP (utasításszámlálót) és így a program visszatér a szubrutin hívása utáni sorra és onnan fut tovább a program. Konstans megadásával: ugyanúgy mőködik mint a RET de a visszatérési cím kiolvasása után az SP-t a konstans értékével megnöveli. Ezzel a módszerrel lehet a szubrutinnak paramétereket átadni és a szubrutin végrehajtása után a paramétereket a parancs automatikusan kiveszi a stack-bıl. (Így mőködik a C nyelv függvény paraméterátadása). A szubrutin meghívása elıtt az átadni kívánt paramétereket lementi a verembe és meghívja a szubrutint. A szubrutin végrehajtása után a visszatéréskor a program az átadott paramétereket is kiveszi a verembıl. Egyes megszakítások is ide sorolhatók mivel a megszakítás végrehajtása után a rendszer onnan folytatja a program végrehajtását ahol a megszakítás történt. A különbség az, hogy a szubrutinhívást a programozó elıre betervezte, a megszakítás hívása nem elıre tervezett, hanem valamilyen esemény bekövetkeztének a hatására jön létre.
36
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A12. Az IBM PC gépek megszakítási rendszere (vektortáblázat, NMI, IRQ, INT). Megszakítások: - Szoftver megszakítás - Hardver megszakítás Esemény csoportosítása keletkezés szerint: - Szinkron várható - Aszinkron várható - Aszinkron váratlan Maszkolás -
Maszkolható megszakítás Nem maszkolható megszakítás
Megszakítási kérelem helyének meghatározása - Szoftver módszer - Hardver módszer - Egy megszakítási vonal esetén - Több megszakítási vonal esetén - Vektoros módszer Megszakítások típusai: - NMI – nem maszkolható, kritikus eseményt jelez - IRQ – interrupt request – letiltható hardver megszakítás - INT – szoftvermegszakítás Megszakítások: A számítógépek munkájának összehangolásában segít a gépek megszakítási rendszere. Igen gyakran keletkeznek olyan események amelyek a feldolgozás szempontjából váratlanok. Ezeket az eseményeket is kezelni kell, úgy, hogy a feldolgozás egészét a legkevésbé zavarja. Kiváltójuk lehet: - a szoftver - valamilyen futás közbeni hibával (osztás nullával, túlcsordulás stb.). Ezek szinkron események, kezelésére a processzor egy kiszolgáló rutint indít el - vagy a hardver - pl. valamelyik periféria kezdeményezi adatátvitel lebonyolításának idejére. Ezek aszinkron események. Esemény csoportosítása keletkezés szerint: - szinkron (várható) események - meghatározható helyen, idıpontokban ugyan ott keletkeznek pl. adatbeolvasás, kiírás. - aszinkron várható események - program futása során várható, de idıpontjuk szempontjából ismeretlen, váratlan események pl. DMA adatátvitel. - aszinkron váratlan események - idıpontjuk ismeretlen. Például: áramkimaradás, hardverhiba. Az ilyen események kezelésére szolgál a megszakítási rendszer. A megszakítási kérelem egy jelzés a processzornak valamely esemény bekövetkeztérıl. A megszakítás a futó folyamat felfüggesztése a megszakítás kérelem hatására, annak kiértékelésére, kiszolgálására. A kiszolgálásra egy hardver-szoftver együttes szolgál, amely együttesen végzi el a szükséges tevékenységeket. Ez a megszakítás kérelem kiszolgálása. Maszkolás Egyes eszközök esetében a megszakítás lehetısége engedélyezhetı vagy tiltható. Az engedélyezés vagy tiltás egy regiszter bitjeinek a beállításával történik. Ezt nevezzük maszkolásnak. Vannak maszkolható (kiszolgálásuk letiltható) és nem maszkolható (nem tiltható le, ezek mindig érvényre jutnak) megszakítások. (NMI - Non Maskable Interrupt - nem maszkolható megszakítás) Két forrása lehet a megszakítási kérelemnek: - szoftver: a megszakítás kérelmek programból lettek kezdeményezve, ezek nem maszkolhatóak - hardver: a megszakítás kérelmek többsége maszkolható, de vannak nem maszkolhatóak is, például valamilyen súlyos hardverhiba esetén
37
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A megszakítások kiszolgálásánál több kérdés van, amit meg kell oldani: • keletkezési hely megállapítása, melyik eszköz kezdeményezte • megszakítás lehetıségek szabályozása, megszakítások maszkolások • több egy idıben történı megszakítási kérelem prioritásának a szabályozása • a többszörös megszakítás-kiszolgálás megoldása, az idıközben érkezı újabb kérelmek kezelése A megszakítási kérelem keletkezési helyének megállapítására két fı rendszer alkalmazható: szoftver és hardver úton történı megállapítás lehetısége. Szoftver módszerek: egy rutin sorra megvizsgálja a megszakítás kérelem szempontjából szóba jöhetı eszközök állapotjelzıjét és ahol szükséges, ott elindítja a megfelelı kiszolgáló programot. Ezt nevezik lekérdezéses megszakításnak. Hardver módszerek: egy megszakítás-vezérlı szabályozza - programmal vagy anélkül- a beérkezı kérelmek kiszolgálását. A mikroszámítógépek megszakítás rendszerei, vezérlıi egy vagy több megszakítás vezetékkel rendelkeznek. - Egy megszakítás vonal esetén a keletkezési hely meghatározása történhet szoftver úton, lekérdezéses módszerrel. A hardver úton történı meghatározás sorosan történik. A visszaigazoló jel (IACK) a kiszolgálást kérı eszköztıl már nem halad tovább. - Több megszakítás vonal esetén minden eszköz saját megszakítást kérı vezetékkel rendelkezik, ezzel a kérelem helye egyértelmően megállapítható. - A vektoros módszer alkalmazása a legáltalánosabban használt forma. A megszakítását kérı eszköz a kiszolgáló rutin kezdıcímét határozza meg az alábbi módok valamelyikével: • a megszakítást kérı eszköz egy sorszámot ad át a processzornak, amely a kiszolgáló rutinok kezdıcímeit tartalmazó táblázatban kijelöli a megfelelı kiszolgáló rutin kezdıcímét. Ez a módszer a vektoros megszakítás kiszolgálás a legelterjedtebb módszer. A rutinok kezdıcímeit tartalmazó táblázatot megszakítási vektortáblának nevezzük. A megszakítási vektortábla a memóriában a 00000h - ás címen kezdıdıen van tárolva, tehát a memória kezdetén. Ez 255 darab 4 bájtos címet tartalmaz, tehát 1Kb helyet foglal! • ugyanaz az eljárás mint az elızı esetben, annyi különbséggel, hogy a vektortáblát a processzor tárolja. Ez az autovektoros eljárás. A megszakítási kérelmeket általában valamilyen prioritási elv alapján szolgálják ki. A prioritási sorrend megállapítása két módon történhet: - szoftver úton, a kiszolgáló rutin segítségével - és hardver és szoftver együttes alkalmazásával, a megszakítási vezérlı alkalmazásával (ez a jobb módszer) A megszakítási rendszer lehet egyszintő vagy többszintő: Az egyszintő megszakítás rendszerben nincs lehetıség a kiszolgáló rutin megszakítására egy újabb megszakítás által, többszintő megszakítás rendszerekben a megszakítást kiszolgáló rutin is megszakítható, de csak bizonyos szabályok betartásával: - A kiszolgáló rutin a vele egyezı, vagy nála alacsonyabb prioritású kérelmeket letiltja - A kiszolgáló rutin a folyamat kezdetekor ideiglenesen alacsonyabb prioritási szintre sorolja magá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 Az INTEL processzorok alaphelyzetben kétszintő megszakítási rendszerrel rendelkeznek: egy maszkolható (INT) és nem maszkolható (NMI) megszakítási vonallal. Mivel ez a két megszakítási lehetıség a gyakorlati felhasználásban nem elegendı, ezért külön megszakítás-vezérlıt használnak amely 8 (illetve 2 darab vezérlı esetén 15) megszakítási kérelmet tud feldolgozni. A megszakítás bemenetek sorrendje egyúttal prioritási sorrendet is jelent. A processzorok valós üzemmódban a vektortábla, míg védett üzemmódban a megszakítási rutinok deszkriptorait tartalmazó megszakítási deszkriptor tábla (IDT) alapján dolgozzák fel a megszakítási kérelmet. A megszakítások típusai prioritás szerint: NMI – nem maszkolható megszakítás: nem tiltható le, kritikus eseményt jelez IRQ – interrupt request: letiltható hardver megszakítás, külsı eszközök kezdeményezik INT – szoftver megszakítás: a programban kiadott ’INT sorszám’ utasítással a megszakítást kiszolgáló rutinra ugorhatunk (amit a hardver egység hív IRQ-val)
38
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A13. A mikroszámítógépek csatolói (az interfész fogalma, a soros és párhuzamos port és mőködése, a háttértár csatolók: SCSI és EIDE, a DMA adatátvitel) Interfész: A számítógép és a perifériák közti 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 számítógép a hardver eszközökhöz vezérlı és illesztı (interfész) áramkörökön keresztül csatlakozik. Az interfész megadja a csatlakoztatási pontokat, a jelek fizikai és logikai jellemzıit és idıbeni lefolyásukat. Soros port mőködése: Az interfészt az RS-232C szabvány jelöli, tipikusan az egér és a modem csatlakozik rá. Az adatbitek a vezetéken egymás után kerülnek átküldésre. Egy vezetéken egyirányú átvitel valósítható meg. A 0 szintnek +3-15, 1 szintnek –3-15 V közti feszültség értékek felelnek meg, így kb. 30 m-ig használható. A PC 4 db soros illesztıt támogat (COM 1-4, vagy AUX 1-4). Az adatátvitel szinkron vagy aszinkron módon történhet. A szinkron adatcsere esetében az adó és a vevı különbözı sebességgel mőködhet, mert külön vezetékkel jelzik az érvényes adat meglétét a vezetéken. Aszinkron üzemmód esetén az adatjelek maguk végzik el a szinkronizációt, ekkor az adó és a vevı közel azonos órajelet használ. Az adatfolyamot START bit elızi meg (0 jel), ezt követi 5-8 bit adat az alacsonyabbtól magasabb helyiértékőig, majd a paritásbit, ezután egy vagy két STOP bit következik (1). Ezek tartoznak egy adatkeretbe. A két órajelnek annyira pontosnak kell lennie, hogy a szinkronból ne essenek ki az átvitel alatt. Párhuzamos port mőködése: Általában a nyomtató vagy a szkenner csatlakoztatását oldja meg. A kétirányú (EPP / ECP) változat 8 bit, az egyirányú 5 bit szélességben továbbítja az adatokat. SPP – (SErial Parallel Port) szabványos párhuzamos port, általában egy irányú EPP – (Enhanced Parallel Port) bıvített párhuzamos port ECP – (Extended Capability Port) kiterjesztett képességő port (DMA használatra van szükség) A PC 4 párhuzamos port létét támogatja (LPT 1-4). Az LPT 1 port neve PRN. ECP adatátvitel: 1. A gazda az adatvonalra teszi az adatot és jelzi az adatciklust a HostClk magas szintre állításával. 2. Ha a HostCLk alacsony szintre váltása jelzi az érvényes adatot. 3. A periféria a PeriphAck jel magasra állításával nyugtázza az érvényes adatot. 4. A perifériába írjuk az adatot a HostClk jel magasra állításával. 5. Ha a periféria kész a következı adat vételére,azt a PeriphAck jel alacsonyra állításával jelzi. Háttértár csatolók: Minden merevlemezhez szükség van egy áramkörre, ami képes a meghajtót vezérelni. Többféle csatolótípus van forgalomban, ezek egyre gyorsabb átvitelt tesznek lehetıvé. Minden vezérlı rendelkezik egy önálló processzorral, amely a vezérlési mőveleteket végzi el. Ez képes arra is, hogy a meghajtó paramétereit figyelemmel kísérje és esetleg korrigálja azt. IDE csatoló: Az adatátviteli sebesség növelésének legjobb módja, ha a lemez és a meghajtó elektronika közti távolságot lecsökkentjük. Így akkor a legjobb a helyzet, ha a meghajtón van az elektronika. Így született meg az IDE (Integrated Device Equipment) rendszer, melyet AT busznak is neveznek. Az ilyen meghajtókban az elektronika is megtalálható, így a nagysebességő jelvezetékek hossza minimális., csak a bıvítısín jeleit kell a meghajtóig elvinni. Ezen a 16 bites párhuzamos interfészen a jelek már jóval kisebb sebességgel áramlanak. Az IDE csatoló két IDE interfészes egység kezelését teszi lehetıvé. Az egyik meghajtót Master-nek, a másikat Slave-nek kell beállítani a meghajtón található jumper segítségével. A Cable Select beállítás esetén a kijelölés automatikusan megtörténik, ha a vezérlı, a meghajtó, és a kábel is támogatja ezt a módot. Az Ide merevlemezek kompatinbilisek a régebbi MFM és RLL kódolást alkalmazó winchesterekkel. Az illesztıkártya (v. az alaplap) és a meghajtó 40 eres kábellel van összekötve. Az áramkör címdekódert, leválasztó áramkört, esetleg cache-t tartalmaz. EIDE csatoló: Az IDE meghajtó által kezelhetı max. winchester méret a macximális 16 fej kezelése miatt 504 Mb volt. Az EIDE meghajtó már 255 fejet képes kezelni, amivel a kapacitás 8,4 Gb-ra nı. (1024 cilinder * 16 fej * 63 szektor * 512 bájt/szektor = 504 Mb) A tárolókapacitás növelésének kezelése az LBA (Logical Addressing Block) eljárással történik. Ez esetben a BIOS kérdezi le a merevlemez méretét, majd átalakítja a logikai blokkok számára, és az operációs rendszernek CHS (Cylinder – Head – Sector) formában ad át.
39
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
SCSI csatoló: SCSI = Smart Computer System Interface. A leggyorsabb merevlemezek ezt a csatolót használják, vagy ennek továbbfejlesztett verzióit: UltraSCSI és SCSI2 változatokat. A csatolót nem csak merevlemezek használhatják, hanem pl. szkenner, cd, nyomtatók is. Az eszközök egy közös 50 eres szalagkábellel vannak felfőzve, és 1 vezérlıvel összesen 7 ilyen eszközt kapcsolhatunk egymáshoz. Az eszközöket sorosan kell felfőzni, ezért minden eszközön található egy bemenet és egy kimenet. A legutolsó eszközre egy lezáró ellenállást kell tenni, ez általában egy kapcsolóval vagy jumperrel is beállítható. Az eszközöknek egyedi címük van. A SCSI elméleti sebessége 5 MBájt/s, a SCSI-2-é 10 MBájt/s, a 32 bites SCSI-2-é 40 MBájt/s. Az Ultra SCSI 16 db perifériát kezel
Soros ATA: A hagyományos (párhuzamos) ATA szabvány továbbfejlesztéseként létrehozott, hasonló elveken, de soros átvitellel mőködı csatoló háttértároló eszközök illesztéséhez. A soros ATA a párhuzamos ATA-val ellentétben egy kábelre kizárólag egyetlen merevlemez vagy más eszköz csatlakoztatását teszi lehetıvé, és mindössze négy vezetéket használ fel a kommunikációhoz, de ennek ellenére hasonlóan magas átviteli sebesség (>150 Mbájt/sec) elérését teszi lehetıvé. Soros SCSI: A Serial-Attached SCSI a Serial-ATA-tól abban különbözik, hogy például ismer olyan technológiákat, mint a Dual-Porting és a Full-Duplex, maximum 128 különbözı eszközt rendelhetünk hozzá, nagyobb a teljesítménye és megbízhatóbb a mőködése. A Dual-Porting technológia lehetıvé teszi például, hogy egy SAS-winchestert akár két különbözı rendszer is használhasson. A SAS további elınye, hogy csatlakozói fizikailag megegyeznek a Serial ATA-éval. Átviteli sebessége eléri a 300 MBájt/sec iSCSI : A Small Computer Systems Interface over IP Az iSCSI protokoll egy alacsony szintő protokoll, amely a SCSI-parancsokat TCP/IP-csomagokba ágyazza, így a hálózati adattároló rendszereket helyi vagy akár nagytávolságú hálózaton keresztül is képes elérhetıvé tenni. Az újabb hálózati technológiákkal akár 10 Gbit/s sebesség is elérhetı, így különleges (például Fibre Channel) tároló készülékek vásárlása nélkül is nagysebességő adatelérés valósítható meg, egyúttal építve a TCP/IP protokollkészlet bevált szolgáltatásaira. Az iSCSI protokollt 2003-ban az IETF1 szabványosította, garantálva a különféle gyártók termékeinek együttmőködését. 1
IETF: Internet Engineering Task Force Feladata az Interneten használatos szabványok használatának szabályozása, illetve az Internet legfelsı szintő felügyelete.
40
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
AoE: ATA over Ethernet Az ATA over Ethernetet (ATA Ethernet felett) talán úgy szemlélhetem, mint megoldást arra, hogy az IDE kábel helyére egy Ethernet hálózat kerüljön. Ha az adattárolást leválasztjuk a számítógéprıl, és kihasználjuk a két rendszerelem közötti Ethernet rugalmasságát, akkor a lehetıségeket csupán képzelıerınk és új dolgok elsajátítására irányuló hajlandóságunk végessége fogja korlátozni. Az ATA over Ethernet egy az IEEE-nél 0x88a2 azonosítóval bejegyzett Ethernet hálózati protokoll. Az AoE alacsony szintő, jóval egyszerőbb a TCP/IPnél, sıt, az IP-nél is. Az AoE protokoll annyira egyszerő, hogy olcsó vassal is használható. Az AoE leírása csupán nyolc oldal hosszú. Érdemes ezt az egyszerőséget szembeállítani az iSCSI több száz oldalas, többek közt titkosítási szolgáltatásokat, forgalomirányítást és felhasználó alapú hozzáférés-kezelést taglaló leírásával. Érdekes megfigyelés, hogy a gyakorlatban a legtöbb esetben az iSCSI-t nem internet felett használják. Ha a csomagoknak egyszerően a szomszéd szekrényben található gépbe kell befutniuk, akkor a nehézsúlyú TCP/IP protokoll használata túlzásnak tőnik. A TCP/IP tehermentesítés helyett tehát nem volna jobb, ha teljesen elhagynánk az internetes protokollt? Az ATA over Ethernet protokoll pontosan ezt teszi, kihasználva a napjainkban kapható olcsó kapcsolók (switchek) által kínált lehetıségeket. A korszerő kapcsolók képesek a folyamvezérlésre, maximális átviteli sebességet és minimális csomagütközést biztosítva. A helyi hálózaton (local area network. LAN) a csomagok sorrendje nem változik meg, és a hálózati hardver minden csomag sértetlenségét ellenırzı összeggel védi. Minden AoE-csomag vagy egy ATA meghajtónak szóló parancsot, vagy egy ATA meghajtótól érkezı választ hordoz. Az Operációs rendszer AoE illesztıprogramja minden AoE mőveletet elvégez, és a távoli lemezeket normál, blokkos eszközökként teszi elérhetıkké.
41
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A14. A virtuális tárkezelés fogalma és legfontosabb eljárásai (lapozás és szegmentálás, a virtuális cím leképezése, a vezérlıegységek és cache tárak, MMU, TLB, a lapcsere stratégiái, LRU) A memória az egyik legfontosabb (és gyakran a legszőkösebb) erıforrás, amivel egy operációs rendszernek gazdálkodnia kell; fıleg a több felhasználós rendszerekben, ahol gyakran olyan sok és nagy folyamat fut, hogy együtt nem férnek be egyszerre a memóriába. Amíg a multiprogramozás nem jelent meg, addig az operációs rendszerben nem volt olyan nagy szükség a memóriakezelı részekre. A multiprogramozás megjelenésével azonban szükségessé vált a memóriának a futó folyamatok közötti valamilyen "igazságos" elosztására. A megoldást a virtuális memóriakezelés jelentette. Ez úgy mőködik, hogy az operációs rendszer minden egyes folyamatnak ad a központi memóriából egy akkora részt, amelyben a folyamat még úgy ahogy mőködik, és a folyamatnak csak azt a részét tartja a központi memóriában, amely éppen mőködik. A folyamatnak azt a részét, amelyre nincs szükség (mert például már rég nem adódott rá a vezérlés, és feltételezhetjük, hogy rövid idın belül nem is fog végrehajtódni) ki kell rakni a háttértárra (a diszken az ún. lapozási területre). Ez a megoldás azért mőködik, mert a programok legtöbbször egy eljáráson belül ciklusban dolgoznak, nem csinálnak gyakran nagy ugrásokat a program egyik végérıl a másikra (ez a lokalitás elve). A központi egység fel van szerelve egy úgynevezett memóriakezelı egységgel (MMU), amely figyeli, hogy olyan kódrészre kerül-e a vezérlés, amely nincs benn a központi memóriában (mert például a háttértárra van kirakva). Ha a memóriakezelı egység azt találja, hogy ez az eset áll fenn, akkor az operációs rendszert arra utasítja, hogy rakja ki a háttértárra a folyamatnak azt a részét, amely jelenleg a memóriában van, és azt a részt hozza be a helyére, amelyre ezután szükség lesz. A virtuális memória kezelése leggyakrabban lapozással (paging) történik. Ekkor a virtuális memória (egy folyamat virtuális címtartománya, amit a CPU biztosít) fel lesz osztva egyenlo nagyságú részekre, ún. lapokra (pages) - a háttértár és a memória között legalább ennyi byte-ot fog az operációs rendszer átvinni (vagy ennek többszörösét). A fizikai memória pedig fel lesz osztva ugyanolyan mérető lapkeretekre (page frames). Ha mondjuk a virtuális címtartomány 128 KByte, és 64 KByte fizikai memória van a számítógépbe építve, akkor ez 32 lapot, és 16 lapkeretet jelent, ha a lapméret 4 KByte. Ha egy program végrehajt egy olyan (gépi kódú) utasítást, amely a memória valamelyik rekeszére hivatkozik (a hivatkozott memóriarekesz címét nevezik virtuális címnek), akkor ezt a címet elıször a processzor átadja az MMU-nak, ami majd egy fizikai memóriabeli címet állít elı belıle. E feladatának ellátásához az MMU tárol egy ún. laptáblát (vagy legalábbis valamilyen módon hozzáfér a laptáblához), amely a lapok és lapkeretek egymáshoz rendelését tartalmazza egy speciális ún. "érvényességi" bittel, ami minden egyes laphoz tárolva van, és a bit értéke azoknál a lapoknál 1, amelyekhez tartozik a fizikai memóriában lapkeret. Az MMU mőködése során egy kapott virtuális címhez tartozó lapról megvizsgálja, hogy az "érvényességi" bitje 1-e. Ha igen, akkor a megadott laphoz tartozó lapkeret sorszámát visszaadja a CPU-nak (mondjuk ... ez történhet így is), és az a kívánt adatot a megfelelo (fizikai memória-) rekeszbıl megszerzi (vagyis azt csinál vele, amit a gépi kódú programban a végrehajtott gépikódú utasításban megadtak). Mi történik akkor, ha az "érvényességi" bit 0? Ekkor egy ún. hardware-interrupt (megszakítás) keletkezik, amit laphibának (page faultnak) neveznek. Ekkor kerül végrehajtásra az operációs rendszer memóriakezelı része, ami egy másik "érvényes" (fizikai memóriabeli) lapnak az 1-es érvényességi bitjét 0-ra állítja, és a hozzá tartozó lapkeretet a diszkre menti (az ún. lapozási területre). A lapkeretet ezután beírja a laptáblába ahhoz a laphoz, amelyhez a laphiba során hozzá akartak férni, betölti a diszkrıl (lapozási területrıl) a megfelelo laphoz tartozó lapkeret tartalmát, a laphoz tartozó "érvényességi" bitet 1-re állítja, és az MMU ezután már laphiba nélkül el tudja végezni a címtranszformációt. Több programnak szüksége lehet esetleg több virtuális címtartományra is. Sok CPU lehetıséget ad szegmentált memóriakezelésre, ami annyit jelent, hogy a program több ún. szegmensben is tárolhat adatokat, és mindegyik szegmenshez külön-külön laptábla tartozhat (mondjuk ... de ez nem mindig van így). Minden szegmensnek van egy dinamikusan változtatható mérete, ami az adott szegmensben megengedett legmagasabb sorszámú memóriarekeszt adja meg. Ilyen rendszerekben a memória címzésekor meg kell adni egy szegmens-sorszámot és az azon belüli virtuális címet is. Ilyen CPU-kon gyakori az is, hogy az operációs rendszer rövid idıre nemcsak egy-egy lapot, hanem egy egész szegmenst visz ki a háttértárra - lényegében azt nevezik swappingnek. A fenti leírás alapján már megérthetı a virtuális memóriakezelés lényege, de azt fontos megemlíteni, hogy ez a valódi (mőködı) operációs rendszereknek az egyik legbonyolultabb része, és nagyon nehéz egyéb szempontoknak is megfelelı, ráadásul hatékony memóriakezelıt írni.
42
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Virtuális tár: központi memória kevés, ezért egy háttértárolón emulál az operációs rendszer további RAM-ot. Ezt a Windows a C meghajtó méretétıl függıen, a C meghajtón saját maga hozza létre, de ezt változtathatjuk és szükség esetén maga is felajánlja a növelést. Lapozás: egyforma mérető blokkok, szétszórtan helyezkednek el a tárban. Oprendszer táblával kezeli. Szegmentálás: különbözı mérető blokkok, így külön kezelhetık az adatok, programrészek, verem. Virtuális cím leképzése: - lapozásnál: minden folyamatnak van laptáblája, gyorsításra TLB és lapcsere stratégiák. - szegmentálásnál: bár van szegmensleíró tábla, de a címszámítás gyorsítására regisztereket (CS, DS, SS) használ MMU: a fizikai cím=logikai cím összerendelése (asszociál). Felhasználja hozzá a laptáblát vagy a szegmens leíró táblát. TLB: lapozásnál segíti az MMU-t, mert a legyakrabban használt 32 lap adatait tartalmazza (ez egy cache!) 4-es csoportasszociatív cache. Lapcsere stratégiák: a memória véges, nem tarthatjuk bent az összes lapot, amire egy folyamat során szükség van. (Laphiba = nincs bent a szükséges lap a memóriában.)
Virtuális tárkezelés A fizikai tár mérete kb. 10-100 Mb nagyságrendő, míg a megcímezhetı tartomány 32 bites gépeknél is 4 Gb. Multiprogramozott környezetben a folyamatok egymástól függetlenül szeretnének futni, függetlenül a memória korlátaitól. A megoldás a virtuális memória megvalósítása a folyamatok a valóságos memória méretétıl függetlenül használhatják a címzési tartományt, a tényleges megvalósítást az operációs rendszerre és a processzorra bízzák. Ilyenkor minden memória hivatkozás esetén olyan gyors címtranszformációra van szükség, amit szoftver eszközökkel nem lehet megvalósítani. A programoknak vannak olyan részeik, amelyekre csak ritkán van szükség, valamint futás közben csak egy szők tartományt kell a memóriában tartani. Ezért virtuális tárkezelés esetén a programnak csak az éppen igényelt részeit töltjük be a memóriába, így a program nagyobb lehet mint a memória mérete, másrészt több program fér el a tárban, valamint a betöltıdési folyamat felgyorsul. A virtuális tárkezelés olyan lapozási technikaként fogható fel, amikor nem minden lap tartózkodik egyszerre az operatív tárban. Ha egy folyamat egy memóriacímre hivatkozik, az operációs rendszer a laptáblában ellenırzi a folyamat jogosultságát, és hogy a lap a tárban van-e. Ha a lap a valós memóriában van, kiszámítja a címet, egyébként betölti a háttértárról. Ezt laphibának nevezzük. Lapozás A programhoz több, a tárban szétszórtan elhelyezkedı blokk tartozik, az op. 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 kerüljön. A blokkokat lapoknak, a módszert pedig lapkezelésnek, vagy lapozásnak nevezzük. Lapozásnál minden blokk mérete azonos, a memóriacímek egy lapcímre és egy eltolásra bonthatók. Az operációs rendszer egy laptáblát kezel, mely a lapok memóriabeli kezdıcímeit tartalmazza. Szegmentálás Szegmentálás esetén a memória blokkok különbözı méretőek, így a program egész moduljait lehet a memóriába tölteni, ami csökkenti a háttértárhoz fordulást. Külön kezelhetjük a program kódot, az adatokat, a verem tartalmát. A szegmens leíró táblában tárolni kell a szegmensek hosszát, és ellenırizni kell hogy a kiszámított cím benne van-e az engedélyezett tartományban. Virtuális cím leképezése Lapozásnál minden folyamat saját laptáblával rendelkezik. Memória hivatkozásnál a címnek azt a részét, amely a laptábla rekeszére mutat ki kell cserélni a rekesz tartalmával és készen áll a hivatkozott cím. Szegmentált címzés esetén a címszámítás legfontosabb eszköze a szegmensleíró tábla: a tábla címe + a szegmens sorszáma megadja a szegmens fizikai címét, amelyhez a szegmensen belüli eltolást hozzáadva megkapjuk a hivatkozott memóriarekesz címét. A szegmenstábla további információkat is tartalmaz a szegmensekrıl: a szegmens a memóriában van-e, megváltozott-e, és használatban van-e. Minden folyamatnak önálló
43
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
szegmenstáblája van, ami megakadályozza, hogy egymás címeire hivatkozzanak. Címszámításnál az eltolást összehasonlítják a szegmens hosszával, ami további védelmet nyújt. Vezérlıegységek, MMU Az MMU (Memory Management Unit) az a komponens egy számítógépben ami a memóriacímzést valamilyen szempontból módosítja amíg eljut a "fizikai" memóriához a mővelet, függetlenül attól, hogy ez a komponens a CPU része, vagy külsı elem. Ebben a vonatkozásban már a Commodore 64 is tartalmazott MMU-t, hiszen a 64 Kbyte címtartománnyal rendelkezı 6510 CPU nem tudná megcímezni a Commodore 64 összes memóriáját, ami a 64 Kbyte RAM-on kívül még sok mást is tartalmazott. Ezért itt külsı logika valósítja meg ezt a "címleképezést". Még szebb példa az Enterprise, ahol a szintén 64 Kbyte címtartománnyal rendelkezı Z80 CPU 4 Mbyte memóriatartományt képes megcímezni úgy, hogy a 16 Kbyte-os szeletenként állítható egy külsı chip (a Dave) programozásával, hogy melyik fizikai memóriaterület "látszódjon ott". "Modernebb" értelemben az MMU alatt általában olyan egységet értünk, ami képes az Intel 80386-szerő memóriamenedzsment funkciók megvalósítására, azaz a szegmentálásra, lapozásra és memóriavédelemre, ebben a megfogalmazásban a Commodore 64 és az Enterprise viszont NEM tekinthetı olyan rendszernek ami tartalmaz MMU-t ...
Eleinte a laptáblát külön regiszterkészlettel oldották meg, amikor azonban a tár mérete nıtt, kénytelenek voltak a laptáblát a tárban tartani, és bevezetni a laptábla-bázisregisztert, amely mindig az aktuális laptáblára mutatott. A címfordítás azonban legalább két tárhoz fordulást igényelt, ami sebességcsökkenést okozott. Ennek a megoldására vezették be a tartalom szerint címezhetı, vagy asszociatív tárnak nevezett kis speciális hardvertárat. A szegmensek, a lapkezdetek, lapkeretek kezdıcímeit, a tárolókezelı rendszer táblázatokban ırzi más kiegészítı adatokkal együtt. A tárolókezelı rendszer (MMU) feladata: a virtuális, logikai címek átalakítása valós, fizikai címekké a szegmens vagy laptáblázatok adatainak felhasználásával. Ebben az értelemben a virtuális címzés táblázatok alapján megvalósított indirekt címzés. A munkáját segíti a TLB. Cache tárak,TLB A lapozás gyorsítását szolgálja a TLB (Translation Lookaside Buffer) cache, amely a 32 leggyakrabban használt lap adatait (deszkriptorát) fogadja be. A lapozó cache 4-es csoport asszociatív (4-way set associative cache) tár, amelynek mérete 32x4 byte. Lapcsere stratégiák Lapcsere esetén ki kell választani azt a lapot, amelyiket feláldozzuk az új lap betöltése érdekében. A lapcsere stratégiák alapvetı célja az, hogy az optimális esetet közelítsék, azaz azt a lapot válasszák áldozatul, amelyikre a legkésıbb lesz szükség (vagy másképp fogalmazva legtovább nem lesz szükség). A lapcsere általános esetben két lépésbıl áll: az áldozat kimentésébıl és az új lap betöltésébıl. Az algoritmusok hatékonyságát nagyban fokozhatja, ha a mentést – vagyis háttértárra írást – csak akkor végzik el, ha szükséges, vagyis ha a lap tartalma a betöltés óta módosult. Annak nyilvántartása, hogy egy lapra betöltése óta írtak-e, csak hardver támogatással valósítható meg hatékonyan. A támogatás lényege, hogy minden fizikai laphoz tartozik egy jelzıbit – a módosított bit (modified bit, dirty bit, M bit). Ezt a bitet a lap betöltésekor az operációs rendszer törli, a tárkezelı hardver pedig minden, a lapra író memóriamővelet végrehajtásakor beállítja. A bit a laptáblában is elhelyezhetı. Bizonyos algoritmusok igénylik a lapra történı hivatkozások figyelését is, ami ugyancsak hardver támogatással hatékony. A laptáblában erre a célra is fenntarthatunk egy bitet. Ezt a hivatkozott bitet (referenced bit, used bit, R bit) a címképzı hardver állítja be minden esetben, amikor az adott lapon belüli címre történik hivatkozás. A bitet az operációs rendszer törli adott idınként, vagy eseményhez (például laphiba) kötötten. Optimális (OPT: Optimal) algoritmus Az algoritmus elırenéz és a lapok következı használatának idejét veszi figyelembe. Ennél az algoritmusnál a legkevesebb a laphibák száma. Sajnos azonban a megvalósítása nehézségekbe ütközik, mivel jövıbeni laphivatkozásokra vonatkozó információt igényel (a helyzet az SJF ütemezı algoritmushoz hasonló). Az egzakt végrehajtás gyakorlatilag megoldhatatlan, a kódok valamiféle elıreolvasását és szimulált végrehajtását igényelné az adatfüggı elágazások figyelembevételével, ami csaknem olyan bonyolult lenne, mint a program valódi végrehajtása. Így csak közelítı megoldásokkal találkozunk. Az optimális algoritmus szerepe pedig az, hogy összehasonlítási alapként szolgáljon egy-egy eset utólagos értékelésekor, amibıl következtetéseket vonhatunk le arra nézve, hogy az alkalmazott algoritmus mennyire közelítette meg az optimumot.
44
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Legrégebbi lap (FIFO) algoritmus A FIFO-algoritmus úgy próbálja közelíteni az optimálist, hogy hátranéz és a behozatal idejét figyeli. Az algoritmus azt a lapot cseréli le, amelyik legrégebb óta a tárban van. Megvalósítása egy egyszerő FIFO-listával történhet. Hibája azonban, hogy azokat a lapokat is lecseréli, amelyeket a folyamatok gyakran használnak. Ennél az algoritmusnál felléphet egy érdekes jelenség, amelyet Bélády1 -anomáliának hívunk. Eszerint – várakozásainkkal ellentétben – bizonyos esetekben, ha növeljük a folyamathoz tartozó fizikai memóriakeretek számát, akkor nem csökken, hanem éppen növekszik a laphiba gyakoriság. Legrégebben nem használt (LRU: Least Recently Used) algoritmus
Az LRU-algoritmus azt a lapot választja áldozatul, amelyre a folyamatok leghosszabb ideje nem hivatkoztak. Ez az algoritmus közelíti legjobban az optimálist, mivel ugyan hátrafele néz, viszont a használat idejét veszi figyelembe (azaz a közelmúltból következtet a közeljövıre, ami a lokalitás miatt jó becslést adhat). A bonyolult megvalósítás miatt az LRU-algoritmus helyett sokszor annak – hardvertámogatást nem, vagy alig igénylı – közelítését szokták használni: Legkevésbé használt (LFU: Least Frequently Used vagy NFU: Not Frequently Used) algoritmus Ennél az algoritmusnál abból indulhatunk ki, hogy a közelmúltban gyakran használt lapokat a folyamatok a közeljövıben is használni fogják még, és ugyanígy, a közelmúltban ritkán, vagy nem használt lapokra a közeljövıben nem lesz szükség. Ilyenkor az operációs rendszer rendszeres idıközönként végignézi a memóriában levı lapokat, és a hozzájuk rendelt számlálóhoz hozzáadja az R bit (0 vagy 1) értékét, és egyben törli az R biteket. Az algoritmus a legkisebb számláló értékkel rendelkezı – vagyis a legritkábban használt – lapot választja ki kivitelre. Hátrányt jelent, hogy az algoritmus „nem felejt”, vagyis az egykor gyakran használt lapok még sokáig a memóriában maradnak akkor is, ha már biztosan nem lesz rájuk hivatkozás (például többmenetes fordításnál az egyes menetekhez tarozó lapok). A problémán öregítéssel segíthetünk, például úgy, hogy az R bitet a legnagyobb helyiértékő bit helyére másoljuk, de elıtte a számlálót jobbra léptetve csökkentjük a régebbi hivatkozások súlyát. A módszer másik problémája, hogy a frissen betöltött (és így biztosan kis számláló értékő) lapokat is könnyen kiteheti újra a háttértárra. Ezért általában a frissen behozott lapokat az elsı használatig befagyasztjuk (page locking) a tárba.
45
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A15. Monitorok és vezérlıkártyák legfontosabb minıségi és teljesítmény jellemzıi, kapcsolatuk a számítógépes képfeldolgozás követelményeivel. (Felbontás, színmélység, frissítési frekvencia, pixelméret, a grafikus kártya processzora és a képmemória, a mozgókép megjelenítés) Monitorok A mikroszámítógépekhez használt monitorok fizikai mőködése nagy mértékben hasonló a megszokott TV készülékek mőködéséhez. A képernyı tartalmát egy elektronsugár rajzolja fel a fénykibocsátó réteggel bevont felületre, a képernyı bal felsı sarkától kezdıdıen, jobbra és lefelé haladva, párhuzamos sávokra bontott részekben. Egy teljes képernyı tartalom kirajzolása 1/50 sec-ig tart. A képernyı végigpásztázásában kétféle eljárást alkalmaznak: -
folytonos, egymást követı soronkénti pásztázás (interlacing), amely finomabb felbontást, de gyakoribb képfelfrissítést eredményez
-
váltott soros, minden második soronként pásztázás, amely finomabb felbontást, de alacsonyabb frissítési frekvenciát eredményez. A váltott soros pásztázásnál félképenként 1/50 sec szükséges, így a teljes kép kirajzolása 1/25 sec alatt történik.
A képernyı elektronsugár által végigpásztázott egy-egy sávját nevezik rasztersornak. A képernyıtartalom vibrálását, villódzását elkerülendı, a világító festékanyag utánvilágítási ideje hosszabb, mint a közönséges TV készülékeké. A képernyı mőködésével kapcsolatos alapjellemzık (sorok, oszlopok száma, felbontás finomsága, a képernyıtartalom tárolásának helye a memóriában) értékét a vezérlıkártyákon beállítható videó üzemmódok határozzák meg. A videó üzemmódokat sorszámokkal jelölik, amelyek száma ma már több tucatnyira növekedett. A mai gépekben lévı monitorvezérlı kártyák ismerik a korábbi videó üzemmódokat is és így a régebbi monitorokhoz készült programok továbbra is használhatóak maradnak. A képernyı megjelenítési formái: A szöveges megjelenítés a CGA és az EGA megoldások továbbfejlesztésével alakult ki. Az ún. paletta és színkód regiszterek felhasználásával az alkalmazott színkészletek (4-16-féle) könnyen válthatók. Emellett egyidıben 8-féle karakterkészlet is használható. A VGA kártya 256-féle színnel történı megjelenítéshez az EGA kártyához hasonlóan minden képpont színének tárolásához 1 byte-ot használ fel a rendszer. Az SVGA (Super Video Graphics Array) vezérlıkártya nagyon jó minıségő megjelenítést tesz lehetıvé, miközben fotóminıségő színeket állít elı. Az SVGA felbontásban minden egyes képhez félmillió vörös, kék és zöld színő képpont pontos színkombinációját kell elıállítania a videokártyának és a számítógépnek. Ehhez nagy számítási igényre és sok memóriára van szükség. A gyors grafikus megjelenítéshez és a jó minıségő video lejátszáshoz egy gyorsítóval rendelkezı videokártyára van szükségünk, ami külön processzorral és legalább 1 MB video memóriával rendelkezik. Az SVGA a képeket akár másodpercenként 70-szer is fel tudja frissíteni, ezért a képek igen gyorsan változhatnak. A 16 millió színárnyalat már fotóminıséget jelent. Az SVGA speciális nagy teljesítményő MPEG áramkörökkel rendelkezik, amelyek megkönnyítik a videofilmek lejátszását, mivel jelentısen csökkentik a processzor terhelését. A videó digitalizáló áramkörök a videófilmet átalakítják a számítógép számára kezelhetı digitális információvá. RGB színképzés: Az RGB színrendszerben a színek a három alapszín a vörös (R - red), zöld (G - green), kék (B - blue) egymásra vetítésével - összeadásával - állíthatók elı, ez tulajdonképpen az additív színkeverés. Ez a fajta színkeverési rendszer a kisugárzott, illetve az érzékelt fényen alapul, ezért csak fényt kibocsátó berendezésekkel hozható létre, illetve azokban alkalmazzák: video, monitor, dialevilágító, digitális kamera, a szkennerek többsége - tulajdonképpen az ilyen típusú berendezések mőködésének ez a fizikai alapja Képernyıtípusok: Árnyékmaszkos képcsı: A hagyományos monitoroknál a képernyı vékony, apró lyukakkal ellátott fémlemezbıl áll. Elınye, hogy a drágább modelleknél erısebb a szövegek kontúrja és olcsóbb, mint a Trinitron csöves technológia. A színek azonban nem olyan élénkek és a laposnak nevezett képernyı mindkét irányban elhajlik, ami torzítja a képet és nagyobb tükrözést okoz.
46
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Trinitron csı: A kép nem pontokból, hanem szorosan egymás mellé helyezett csíkokból áll össze. Elınyei a teltebb színek és a függıleges irányban teljesen lapos képernyı, amelynek kisebb a tükrözése. Hátránya, hogy a képernyın vízszintes irányban egy vagy két hajszálvezeték fut végig. LCD: Az LCD mûködése pont a fény polarizációján alapszik. A monokrom LCD-k mőködési elve igen könnyen megérthetı, ha valaki már érti a polárszőrıket. A folyadék kristály legfontosabb tulajdonsága ugyanis az, hogy ha két pontjuk közé elektromos feszültséget kapcsolunk, akkor a kristályok szépen befordulnak a feszültség irányába. Ha nincs feszültség rákapcsolva, a kristályok rendezetlenné válnak. Az LCD fölé egy olyan polárszőrı van helyezve, amely a feszültség alatt álló rendezett kristályok polarizáltságával 90 fokos szöget zár be, vagyis ilyen esetben az LCD-n lévõ polárszőrı utáni fényt a kristályok nem engedik át, vagyis sötét lesz. Ha nincs rajta feszültség, a kristályok rendezetlenek, átengedik a fényt. A színes LCD mőködése hasonló, csak ott a befordulás mértéke is szabályozható. TFT: Thin Film Transistor, tehát "vékonyfilmes-tranzisztor". A folyadékkristályos- kijelzıkkel (LCD) szemben a TFT-kijelzı minden egyes képpontja egy saját tranzisztorból áll, amely aktív állapotban elı tud állítani egy világító pontot. Az ilyen kijelzık világossága és kontrasztja ezért érthetıen magasabb mint a hagyományos LCD-kijelzıkké. Ebben az összefüggésben aktiv-mátrix kijelzıkrıl beszélünk. Az ilyen kijelzık hátrányosak a szabadban: miközben "passzív" LCD-kijelzık idegen fényt használnak fel egy képpont megvilágítására, addig a TFT-kijelzıknek a természetes fény ellenében kell világítaniuk. Csak ha túllépik a természetes fény erısségét, akkor olvasható el a képernyı felirata - viszont a nap fényerejével nem tudják felvenni a versenyt az akkumulátorral táplált aktiv-matrix kijelzık. A jövı Lézer: A lézer technológia egy optoelektronikai chip segítségével állítja elı a képet. A jelenleg forgalomban levı képernyık több ezer szín megjelenítésére képesek, de a valós kép érzését csak 30-35 százalékban adják vissza. A lézertechnológia 90 százalékban ugyanazokat a színeket adja vissza, amit a szem lát". Egyenlıre televízióknák vezetik be ezt a technológiát 2007 végére, de várhatóan meghódíthatja monitor piacit is. Nano: A SED (Surface-conduction Electron-emitter Display) pontosan úgy mőködik, mint a hagyományos képcsöves kijelzık: elektronokat lınek egy ernyıre, így jönnek létre a képek. Viszont nem egyetlen gigantikus elekronágyút használnak, hanem több ezer nanorészecskét, ezért a SED monitorok sokkal vékonyabbak, mint a képcsövesek. Technológia hátránya az ára, mert egyenlıre viszonylag drága, de hamarosan tömegtermékké válhat. Monitorok tulajdonságai: Pixelméret: A pixelméret, képpont a képernyı legkisebb megvilágítható részét jelenti. A képernyı által tartalmazott képpontok jelentik az alapját a képernyın megjelenı betők, megjelenítésének. A színes technikában egy színes képpont megalkotását három, az egyes alapszíneket tartalmazó képpont teszi lehetıvé. A képpont színe az ıt alkotó alapszínek erıségébıl adódik. A mai monitoroknál ez 0,25-0,28 mm. Színmélység: Az egyes képpontok mindegyike hordoz a képpont színével kapcsolatos információt, amely mennyisége a számítógép információt, amely mennyisége a számítógép grafikus kártyájáról függıen változik. A képpont színével kapcsolatos információ mennyisége 1-32 bit mennyiségő lehet. Ha 1 bit az információ mennyisége, akkor az csak azt képes jelezni, hogy az adott képpont megjelenjen-e a képernyın, vagy pedig kioltott állapotban legyen. Az egy képponton megjeleníthetı színek számát nevezzük színmélységnek. A színmélység függ a PC videokártyától, hiszen a grafikus kártya az általa használt memória területét tárolja a képpontok színével kapcsolatos információkat. Minél nagyobb a színmélység, annál nagyobb memória szükséges a képpontok színinformációinak tárolására. Jelenleg elterjedt színmélységek: 8 bit – 256 szín 16 bit – 65536 24 bit – 16 777 216 Frekvencia: A képkocka (frame) önálló animációs egység. Ha a mozgóképeket gyorsan egymás után lejátsszák, akkor így a mozgás érzetét lehet kelteni. A monitor másodpercenként legalább 60-szor (vagy SVGA esetén 70-szer) frissíti
47
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
fel a képernyın lévı képet. Ezt az értéket nevezzük képfrissítési frekvenciának. Ha jó minıségő videokártyát és monitort használunk, akkor ez az érték jóval nagyobb is lehet és megszőnhet a képernyı villogása. Ha viszont nem rendelkezünk elegendı memóriával, akkor a képernyı tartalmának megváltoztatásakor mindig várakoznunk kell, amíg a képernyıvezérlı kártya kiszámolja az összes képponthoz szükséges információt. Mozgóképek lejátszása esetén ez szaggatott mozgással jár. A színes TV képfrissítési frekvenciája 25 kép/s. Az otthoni felhasználók számára a 14 vagy a 15 hüvelyk átmérıjő, míg a kiadvány-szerkesztési és mérnöki munkákhoz a 17 vagy 20 hüvelykes monitor a megfelelı. A videokártya tulajdonságai: Felbontás: A videokártya felbontóképessége a képernyın függıleges, és vízszintes irányban megjeleníthetı képpontok számát határozza meg. A multimédia alkalmazások esetében ez egy igen fontos paraméter, mert a használt grafika minısége ettıl a paramétertıl függ. Minél nagyobb felbontóképességet tesz lehetıvé egy adott videokártya, annál kisebb grafikát jeleníthetünk meg a számítógépünk képernyıjén. Egy videokártya általában többféle felbontóképességet is támogat. A felbontóképességhez tartozik egy maximálisan megjeleníthetı színmélység, amely szintén fontos paraméter. Memória mérete: A multimédia alkalmazások közös jellemzıje, hogy igen nagy a memóriaigényük. Ez többnyire abból adódik, hogy az alkalmazás által megjelenített grafikákat és szöveges részeket az alkalmazás a merevlemezrıl vagy CD-Rom-ról memóriába tölti be, hiszen annak elérése így sokkal gyorsabbá válik. Fontos szempont a memória elérési ideje, a RamDac frekvenciája, amelyek a másodpercenként megjeleníthetı képek mennyiségét befolyásolják. Mai videókártyák már önmaguk tartalmaznak 128-512 saját memóriát, ami nagymértékben gyorsítja mőködésüket, mert nem kell a lassabb fıtárhoz nyúlnia Gyorsítókártyák: A grafikus rendszerek terjedésével a videokártyák sebessége nem volt megfelelı. Az ismétlıdı feladatokat (ablak rajzolása, kitöltés színnel, vonal húzása, stb.)hardveresen kellett gyorsítani. A gyorsítókártya átveszi a CPU-tól a képalkotással kapcsolatos mőveleteket. A modern gyorsítókártyák egyre több mőveletet tudnak végezni, melyhez külön memória áll rendelkezésükre. 2D-s mőveletek pl. ablak eltolás, vonalhúzás, kör rajzolás, terület kitöltés, mely során csak a kiinduló koordinátákat kell átadni a gyorsítókártyának. Videókártyák csatlakozó felületei: ISA (már nem használják) PCI (videókártyák már nem használják) AGP (Accelerated Graphics Port) Az alaplap rendszersínjével közvetlen összeköttetésben álló gyorsított, 32 bites grafikus kapu. Sebessége 0.512 - 1.1Gbit/s. (még használják) PCIe (PCI express) (legújabb, már ezt használják) Sebessége 2.5 Gbit/s Arról sem feledkezzünk meg, hogy léteznek olyan videóvezérlık is, amelyek közvetlenül az alaplapra vannak integrálva. Az ilyen alaplapokkal szerelt számítógépet általában cégek vásárolják irodai használatra. Videókártyák csatlakozói: D-SUB (VGA): Szabványos 15 polusú analóg csatlakozó. DVI: A DVI angol jelentése (D)igital (V)ideo (I)nterface. Magyarul: Digitális Videó Átviteli Eszköz A DVI egy népszerő formája a videó interfész technológiának, amelyet azért fejlesztettek ki, hogy a legmagasabb szintre emeljék a síkképernyıjő LCD monitorok és modern videó grafikai kártyák minıségét. Ez a P&D Plug & Display szabványt helyettesíti, és egy lépéssel fejlettebb technológia, mint a csak digitális DFP formátum, amelyet régebbi sík panelekhez alkalmaznak. A DVI kábelek egyre népszerőbbé válnak a videókártyagyártóknál, és a legtöbb kártya már tartalmazza mind a VGA és a DVI kimeneti portot. Azon kívül, hogy új számítógép interfészként lehet használni, a DVI digitális átviteli technika is a HDTV, EDTV, plazma képernyı és csúcsminıségő videó kijelzık, TV-k, mozik és DVD-k számára. Ma már számos jobb minıségő DVD lejátszó tartalmaz DVI kimeneti portot a kiváló minıségő analóg videóhoz tartozóan. HDMI: Azonban a DVI hátránya, hogy a hang és a kép továbbításához még mindig két kábel kell. A (High Definition Multimedia Interface) kiagyalói ezt a két összeköttetést túl soknak találták és megalkották ezt az új összekapcsolási szabványt, mely az ismert legjobb minıségő digitális képinformációt és a szintén digitális hangot mindenféle további felesleges csatlakoztatás nélkül egy kábelen továbbítja. A HDMI a filmiparral karöltve fejlesztettek ki, így a másolásvédelmi kérdések számukra kielégítıen megoldottak, ezért terjedését nagymértékben támogatják. Nagy sávszélesség és tisztán digitális formátum jellemzi, továbbá akár 8 csatorna, 24 bites, 192 kHz mintavételi frekvenciájú digitális audiót képes továbbítani. A HDMI kábelek még nagyobb
48
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
hosszban is probléma nélkül mőködnek. 20 méternél hosszabb kábeleket teszteltek minden gond nélkül, valamint rugalmas kétirányú adatátviteli lehetıséget biztosít, mely számos elınyt hordoz a felhasználó számára. Csak egy példa: a digitális TV készülék vagy AV erısítı eljutatja a digitális mőholdvevınek, hogy milyen képformátumot és beállításokat használ (azaz 16:9 vagy 4:3 Letterbox) ill. milyen hangformátumokat ismer fel (5.1- vagy 2csatorna). A digitális információk ezután automatikusan ezeknek megfelelıen jutnak el a készülékekhez.
49
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A16. Az adatrögzítés elve a mágneslemez tárolókon. A mágneslemez felépítése (szektor, sáv, cilinder, cluster, FAT és boot szektor fogalma). A mágneslemezek teljesítményjellemzıi (elérési idı, adatátviteli sebesség). A számítógépek megjelenése óta többféle háttértár típust fejlesztettek ki. Mindegyik tároló célja olyan mennyiségő adat tárolása, mely meghaladja az operatív tár méretét, és nem veszti el tartalmát a tápfeszültség megszőnésekor. A jelenleg alkalmazott tárolók közül a legjelentısebbek a mágneslemezes tárolók (winchester és floppy lemez). Winchester (merev lemez) : A mikroszámítógépek belsı háttértárolóiként szolgálnak. Nagy átviteli sebesség (1-50 Mb/s), nagy kapacitás (10-200 Gb), de lassú elérési idı (10 ms) jellemzi ıket. A 6-15 mágnesezhetı réteggel ellátott könnyőfém lemezt a hermetikusan zárt védıburkolatában a meghajtó 3600 -15000 fordulat/perc sebességgel forgatja. Az állandó forgás miatt a fejek nem érnek hozzá a korongokhoz, hanem a keletkezı légpárna miatt pár mikron távolságra vannak attól (ezek a repülı fejek). Akárcsak a hajlékony lemezeket, ezt is többféle kivitelben gyártják. A lemez felülete koncentrikus körökre, sávokra van osztva. Az egymás alatt elhelyezkedı sávokat cilindernek nevezzük. A lemez felülete körcikk szerően szektorokra van osztva. A szektor és a sáv metszete adja a legkisebb átvihetı adatmennyiséget, a blokkot. A blokk tipikus mérete 0,5-64 kB. Adatrögzítés: Az adatrögzítés RLL (Run Length Limited) kódolás segítségével történi. Az adatokat átkódolják úgy, hogy két 1-es között meghatározott számú 0-nak kell lennie, a fluxusváltozást minél jobban csökkenteni lehessen (minél kevesebb impulzus legyen a lemezen). Merevlemez fordulatszámok • 1200 (ma már nem használják), • 3600 rpm (ma már nem használják) • 4500 rpm (ma már nemigen használják, esetleg laptopokban), • 5400 rpm (manapság is használják, de kihalófélben vannak), • 7200 rpm (napjaink legelterjedtebb változata), • 10000 rpm (csak professzionális területeken alkalmazzák, pl.: szerverek), • 15000 rpm (csak professzionális területeken alkalmazzák, pl.: szerverek)
Floppy (hajlékony lemez) : Az adatok tárolására a vékony mőanyag hordozóra felvitt mágnesezhetı réteg szolgál, melyet lágy vagy merev tokban helyeznek el. Az adatok a lemez felületén levı koncentrikus körökön helyezkednek el. A meghajtóba helyezett lemezt a berendezés 300-360 fordulat/perc fordulatszámmal forgatja, és a fej a lemez felületéhez hozzáérve írja/olvassa azt. A lemez behelyezésének pillanatában a hardver érzékeli azt, és egy-két fordulat segítségével felméri annak állapotát. A folyamatos forgatás csak akkor jön létre, hogy ha a felhasználó az adott meghajtót használni kívánja. Így ez a lemezfajta eléggé lassú, ugyanis csak a diszk tényleges kezelésekor mozgatja az abban levı mágneses korongot. A lemez felülírása fizikailag letiltható (sötét színő ragasztószalaggal, vagy az írásvédı kapcsoló átkapcsolásával). A hajlékony lemezeket többféle kivitelben gyártják. A sávok és szektorok azonosítása sorszámok segítségével történik. A sávok számozása 0-79-ig, még a szektoroké 1-15ig zajlik. A szektorok mérete 512 Byte. Átviteli sebessége 50 kB/s, tárolókapacitása 1-2 Mb.
50
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Adatrögzítés: MFM kódolás segítségével történik: a jeleket felfutó élek jelzik. A 0 a bithatár elején levı, az 1 a bithatár közepén levı él jelöli. Ha az 1-est 0 követi, akkor nincs impulzus a kódolt jelben, nehogy zavar keletkezzen. Boot szektor: A betöltı szektor a rendszerlemeznek a 0. logikai sorszámú szektora, amely az operációs rendszereknél a betöltést hajtja végre a gép indítása után. A gép indulásakor a ROM tárolóban elhelyezett és automatikusan elinduló ellenırzı program a gép egységeinek ellenırzése után a HDD, vagy ha nincs akkor valamelyik hajlékony lemezes meghajtóban levı lemez 0. szektorát tölti be a memóriába, és átugratja a végrehajtást a szektor elsı byte-ján elhelyezett utasításra. A szektorban tárolt betöltı program ezután betölti a memóriába az operációs rendszer szükséges részeit. A betöltı program a fıkönyvtár elsı két állományát, az IO.sys és MSDOS.sys-t tölti be. FAT tábla: A lemezek állománykezelési táblázata szolgál arra, hogy az operációs rendszer nyilvántartsa és nyomonkövesse azt, hogy a lemez mely szektorai szabadok, vagy foglaltak. A foglaltság nyilvántartása nem szektoronként történik, hanem nagyobb egységenként, klaszterenként (cluster). Egy-egy klaszter kettı valamely hatványának megfelelı darabszámú szektort foglal magába. (pl.: HDD-nél ez 4-32 szektor/klaszter. A FAT-ban egy-egy klaszeterhez tartozó adatokat 12, vagy 16 bit hosszúságú területeken, mezıkön tárolja a rendszer. A FAT mezıinek tartalma: 0. mezı – a mezı 1. byte-ja a lemez azonosító kódját, a maradék rész 1-eseket tartalmaz. 1. mezı – csupa egyest tartalmaz Fıkönyvtár: A fıkönyvtár a Fat másolatok után helyezkedik el a lemezen és minden egyes állományhoz egy 32 byte-os bejegyzést tartalmaz: Állomány neve 8 Állománynév kiterjesztése 3 Állomány attribútum byte-ja 1 Foglalt 10 Utolsó módosítás idıpontja 2 Utolsó módosítási dátuma 2 Állomány elsı klasztere 2 Állomány hossza 4 A mágneses rögzítés jövıje Bár már többször temették a hagyományos merevlemezeket, a gyártók eddig rácáfoltak ezekre a kijelentésekre, nem történt ez most sem másként. Most a Fujitsu és a Toshiba gondoskodott arról, hogy a következı néhány évben még véletlenül se jusson eszébe senkinek hülyeségekkel riogatni a felhasználókat. A Fujitsu ötszáz százalékos, a Toshiba ezerszázalékos tárolókapacitás növekedést ígér. A Fujitsu egy kristályos magnéziumoxidra épülı függıleges adatrögzítési technológiát fejlesztett ki, amellyel nagyon kicsiny mágneses üregek is észlelhetık. Magyarán adott területre több adatot lehet bezsúfolni, mint a jelenlegi technológiákkal Toshiba a Tohoku egyetemmel karöltve fejlesztette ki a Nanocontact Magnetic Resistance, azaz NC-MR néven emlegetett technológiát, melynek segítségével jelentısen csökkenteni lehet az olvasófejek méretét, miközben nem lassul azok mőködése. Más gyártók egyszerőbb megoldást eszeltek ki, amely szerint egyszerően megnövelték a merevlemezben található lemezek számát, így készítették el az 1 TerraByte-os merevlemezt 2007 júniusában.
51
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A17. Az analóg és digitális hírközlési csatornák jellemzése (kapacitás, zajok hatása, csatornaközegek fajtái). A villamos hírközlı rendszer alapfeladata az, hogy információt továbbítson térben és idıben egy adott pontból (a forrásból) a felhasználói célpontig (nyelıig). Általában a forrás által létrehozott üzenet nem elektromos jellegő. Ezért szükség van egy átalakítóra, amely a nem elektromos jellegő üzenetbıl idıben változó villamos jelet, ún. üzenetjelet hoz létre. A küldetési végponton egy másik átalakító visszaalakítja az elektromos üzenetjelet a kívánt formájú üzenetté. Az információforrás és a nyelı egymástól rendszerint térben el van választva. A csatorna biztosítja villamos összeköttetést a két pont között. A csatorna megjelenítési formája a legkülönbözıbb lehet: szabad térben mikrohullámú összeköttetés, egy huzalpár vagy egy fénykábel. A csatorna típusától függetlenül az átviteli csatorna általában rontja az átvitt jel villamos paramétereit. Ezek egyrészt a tökéletlen átvitel következtében fellépı torzítások formájában jelentkeznek, másrészt nem kívánatos villamos zavarok (zajok), interferenciák alakjában lépnek fel. A villamos hírközlés két alapvetı problémáját a jel torzítása és a zaj képezi. Mind az adó, mind a vevı tervezésénél gondosan ügyelnek arra, hogy a célállomáson, az információnyelıben a vett üzenet lehetıleg minél inkább egyezzék meg a küldött üzenettel. Az adó az üzenetjelet a csatorna bemenetére csatolja. Habár néhány esetben az is lehetséges, hogy a bemeneti átalakító közvetlenül csatlakozzék a csatornára, az a jellemzı, hogy a csatorna bemenetére valamilyen módon formált jelet kell adni, hogy az jó hatásfokkal továbbítható legyen. Az adó által végrehajtott jelfeldolgozási módok legfontosabbja az erısítés, a szőrés és a moduláció. A moduláció egy olyan eljárás, amelyben egy választott vivıhullámmal a továbbítandó jel tulajdonságát úgy változtatják meg, hogy az jól illeszkedjék az átviteli csatorna tulajdonságaihoz. A moduláció lényegében a vivıhullám hullámalakjának olyan szisztematikus megváltoztatása, amelynél az üzenetjellel arányosan például a vivı amplitúdója, fázisa vagy frekvenciája változik. A moduláció célja az, hogy az üzenetjel jellemzıit illesszük a csatorna jellemzıihez, hogy csökkentsük a zaj és az interferencia hatását, hogy ugyanazon a csatornán egyidejőleg több jelet is továbbítsunk, vagy úrrá legyünk bizonyos berendezésekbıl származó korlátokon. Egy hírközlı rendszer sikere nagymértékben az alkalmazott modulációtól függ. Az analóg jelek esetében valamilyen periodikus jel amplitúdója, a frekvenciája, vagy a fázisszöge hordozza az információt. Egyszerőbben: Az analóg jelek idıben, térben folytonosak, vagyis bizonyos határok között bármilyen értéket felvehetnek. (Pl.: a hang) A digitális átvitelnél a jel egy négyszögjel, aminek az amplitúdója csak a két megadott értéket veheti fel. A szintek közötti váltás csak megadott idıpontokban következhet be és elvileg végtelen gyorsan történik. Az információt az amplitúdók és a hozzájuk tartozó idıpontok hordozzák. A digitális jelek: diszkrétek, azaz rövid idıtartamú jelek, melyek között szünetek vannak. A jelek nagysága csak korlátozott számú érétket vehet fel, gyakran csak két értéket: 0-át és 1-et. Az analóg átvitel esetében a leglényegesebb jellemzı a sávszélesség, ami a közegen átvihetı jel maximális és minimális frekvenciájának a különbsége és a mértékegysége Hz. A digitális hálózatok esetében a sebesség jellemzésére az idıegység alatt továbbított bitek számát használjuk. A jellemzı mértékegysége a bit/s, vagy találkozhatunk még a baud mértékegységgel is, ami az egy másodperc alatt bekövetkezett változások száma. A kialakított összeköttetésekrıl elmondható, hogy a kiépítésükhöz nagy anyagi befektetésre van szükség. Sajnos az is igaz, hogy az esetek többségében ezek a közegek nincsenek teljesen kihasználva. Ebbıl az következik, hogy valamilyen módon optimalizálni kellene az átviteli közegek kialakítását. A vevı fı funkciója, hogy kiemelje a csatorna kimenetén vett, leromlott paraméterő átvitt jelbıl a bemeneti üzenetjelet. A vevı ezt a feladatot a moduláció inverz mőveletével, a demoduláció alkalmazásával oldja meg. A zaj és egyéb zavarok, torzítások miatt a vevı általában nem tudja tökéletesen rekonstruálni a küldött üzenetjelet. A demoduláláson túl a vevı rendszerint biztosít erısítést és szőrési lehetıségeket is. A modulációs eljáráson, illetve az információforrás kimenı üzenetének formáján alapulva a hírközlési rendszereket három fı csoportra oszthatjuk: •Analóg hírközlı rendszerek, amelyeket analóg információknak analóg modulációval való továbbítására terveztek; •Digitális hírközlı rendszerek, amelyeket digitális információknak digitális modulációval való továbbítására terveztek; •Hibrid hírközlı rendszerek, amelyeket analóg jellegő üzenetjelek mintavett és kvantált értékeinek digitális modulációval való átvitelére terveztek. Az egyes hírközlı rendszereket feloszthatjuk a vivı frekvenciája vagy a hírközlı csatorna tulajdonsága alapján is.
52
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Egy digitális hírközlı rendszer elemei A digitális kommunikációs rendszerek célja, hogy egy digitális forrásból érkezı üzeneteket (szimbólumok egy sorozatát) továbbítson egy adott célállomásra olyan gyorsan és pontosan, ahogy az csak lehetséges. A forrás és a végpont fizikailag távol helyezkedik el egymástól és az összeköttetést a hírközlı csatorna biztosítja. A csatorna a bemenetén elektromos/elektromágneses jelet kap, míg a kimenetén ennek egy torzított verziója jelenik meg, mivel az átviteli csatorna nem ideális. A torzításokon túlmenıen az információt hordozó jelhez még elıre ki nem számíthatóan változó villamos jel, azaz zaj is adódik hozzá, amelynek forrása lehet ember által keltett zavar, de lehet természetes forrású is. A jeltorzulás és a zaj az átvitt információban hibákat hoz létre és korlátozza az információ átviteli sebességét a forrástól a nyelıig. Egy digitális átviteli rendszer jellemzésére gyakran használják fel mérıszámul a helytelen dekódolású üzenetszimbólumok darabszámát. A jel/zaj viszony és a sávszélességbıl kiszámítható a csatornakapacitás (Shannon-Hartley tétel): C=fB*ld(1+Ps/Pn)*v (v – adatátviteli seb., fB – sávszélesség, Ps/Pn – jel/zaj viszony) A hibamentes jelátvitel feltétele, hogy C>v. A kóder, a modulátor, a demodulátor és a dekóder fı feladata, hogy megküzdjön a csatorna információromboló hatásával és hogy biztosítsa a maximális információátviteli sebességet és pontosságot. - A forráskódoló bemenetére egy szimbólumsorozat kerül, amit átalakít bináris sorozattá. Olyan kódszavakat kell generálnia, melyekkel a forrás redundanciája csökkenthetı (pl. Huffman kódolás). - A forrásdekódoló visszaalakítja a csatornadekóder kimenetérıl a bináris jelsorozatot a megfelelı szimbólumokra. - A csatorna kódoló feladata, hogy olyan módosításokat hajtson végre a jelsorozaton, amelyek megóvják az üzenetet a zavaró hatásoktól (pl. hibaellenırzı bitek). - A csatorna dekódoló a demodulátorból kilépı, kódolt bináris jelfolyamból visszaállítja az üzenetet hordozó biteket, és elvégzi a hibák felismerését. Csatornaközegek fajtái Fizikai átviteli közegek A jelek átvitelére kisebb távolságokon egymás mellett futó, párhuzamos kábeleket is használhatnak, de nagyobb távolságokon és nagyobb sebesség esetében ezek antennaként funkcionálnak, tehát összeszedik a környezeti zavarjeleket, valamint hasonlókat sugároznak. Annak érdekében, hogy ez ne következhessen be, olyan megoldást kell választani, ami kiküszöböli ezt. A gyakorlatban két villamos és egy optikai jeltovábbítót használnak. Koaxiális kábel A koaxiális kábel sokáig szinte egyeduralkodó volt a számítógép hálózatok terén. Napjainkban ezt a technikát elsısorban olyan helyeken alkalmazzák, ahol a jelvezetékek fokozattan ki vannak téve a környezet zavarainak. A koaxiális kábel felépítése az ábrán szemügyre vehetı. Látható, hogy a legbelsı szinten egy vezetı ér húzódik, ezt nevezik melegérnek. Ennek anyaga lehet tömör, vagy sodrott, a tömör jobb paraméterekkel rendelkezik. A melegér körül egy néhány mm falvastagságú szigetelıanyag található. Erre készítik el a kábel hidegvezetıjeként szolgáló árnyékolást. Ennek kialakítása az olcsóbb típusokban alumíniumfóliából, a jobb minıségőben sodrott hálóból áll. Az árnyékoló harisnyán elhelyeznek még egy szigetelı réteget, amely a külsı környezeti határok ellen véd. A környezet zavarainak a kiküszöbölését lehet fokozni úgy, hogy az árnyékolást két rétegben készítjük el. Ezt a technikát elsısorban olyan helyeken alkalmazzák, ahol a jelvezetékek fokozattan ki vannak téve a környezet zavarainak. A koaxiális kábel minıségét (jóságát) három paraméter határozza meg, ezek pedig a szerkezeti felépítéstıl függenek: A késleltetési idı a kábel szigetelésének a dielektromos állandójától függ. A csillapítás a kábel ohmos ellenállásából, a dielektrikumon belül keletkezı és a sugárzás okozta veszteségekbıl tevıdik össze. A hullámimpedancia (Z0) általában 50 és 75 ohm értékő, a vastagkoax 93 ohm-os. A tömör belsı erő kábel késleltetése és a csillapítása kisebb, mint a több fémszálból összefonotté, viszont jóval merevebb is. A koaxiális kábeleknek két fı típusát különböztetjük meg: Szélessávú koaxiális kábelek analóg átvitelt tesznek lehetıvé a televízió sugárzás jeleinek továbbítására kialakított kábelrendszeren (TVNET). A kábelek tipikusan alkalmasak 300-500 MHz-es jelek átvitelére akár 100 km távolságba is. Ahhoz, hogy a kábelt használhassuk, a számítógépbıl kikerülı digitális jeleket át kell alakítani
53
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
analóg jelekké, majd a fogadó oldalon el kell végezni a konverziót az ellenkezı irányba. A szélessávú koaxiális kábelek sávszélessége akár GHz-es jelek átvitelét is lehetıvé teszik. Ez a sávszélesség nagyon nagy, ezért ezekben a rendszerekben a vonalat több, kisebb sávszélességő csatornára osztják, amelyeken egymástól független információátvitel valósulhat meg. Ez a már ismertetett frekvenciaosztásos multiplexelés. Alapsávú koaxiális kábelt a digitális adatátvitelben alkalmaznak elıszeretettel. Két további típusra bonthatók, a vékony és a vastag koaxiális kábelre. A vékony koaxot az Ethernet hálózatokban alkalmazzák, hullámimpedanciája legtöbbször 50 Ohm, de elıfordulhat 75 Ohmos változatban is. A jellemzı adatátviteli sebesség 100 Mbit/s 1 km-es szakaszon. Amennyiben a távolság kisebb, a sebesség növelhetı és ez fordítva is igaz. A sebesség és a távolság között a kapcsolat nem lineáris. Ez azt jelenti, hogy ha a távolságot megduplázzuk, akkor nem feleakkora lehet a maximális sebesség, hanem kisebb. A vékonykoaxot BNC (Bayone-Neil-Councelman) csatlakozókkal szerelik, ami lehet vagy csavaros vagy sajtolt (krimpelt). A vastag koaxiális kábel a nevét onnan kapta, hogy az elızınél vastagabb, a hullámimpedanciája majdnem duplája, 93 Ohm. A régebbi hálózati protokollokban használták, ma egyre inkább kikerül a piacról. A vastagkoax elınye, hogy a csillapítása kisebb, mint a vékony változaté, emiatt az áthidalható távolságok nagyobbak lehetnek ugyanakkora sebesség mellet. A kábel nehezen szerelhetı a merevsége miatt, ezért ahhoz nem BNC, hanem ún. vámpírcsatlakozókat használnak a kapcsolat kialakítására. A nevét a mőködésérıl kapta, mivel szereléskor a sajtolás következtében a szigeteléseket átszúrja és mind az árnyékolással, mind a belsı érrel jó fémes kapcsolatot alakít ki. Csavart érpár (Twisted Pair, TP) A kábel két szigetelt, egymásra spirálisan felcsavart vezeték. Amennyiben az érpár körül árnyékolás is található, akkor árnyékolt sodrott érpárnak (Shielded Twisted Pair, STP), míg az árnyékolás nélkülit UTP (Unshielded Twisted Pair) kábelnek nevezzük. Mivel a két jelvezeték egymásra van felcsavarva, ezért a jelkisugárzást az egymás ellen hatás miatt minimálisra csökkentik. Minél több az egységnyi hosszra jutó csavarások száma, annál nagyobb sebességig használható a vezeték. Mivel általában nem csak egy szimplex kapcsolatra van szükség, ezért több érpárt fognak össze egy közös szigetelıben. Ezek egymásra, és a külvilágra való hatását tovább lehet csökkenteni, ha a párokat is egymásra csavarják. A közepes mérető hálózatokban az esetek túlnyomó többségében az UTP kábeleket alkalmazzák, mivel ezek minden jellemzıje, valamint az áruk is lehetıvé teszi a biztos összeköttetés kialakítását. Az UTP kábeleket több kategóriára osztják, ezek jelátviteli tulajdonságokban és természetesen árban térnek el egymástól. A legelterjedtebb típusokat az alábbi táblázatban foglaljuk össze. Típus 1. kategória 2. kategória 3. kategória 4. kategória 5. kategória
Használati hely Hangátvitel 4 Mbit/s-os adatvonal 10 Mbit/s-os adatvonal (Ethernet) 20 Mbit/s-os adatvonal 100 Mbit/s-os adatvonal (Fast Ethernet)
Az Ethernet hálózatokban a 3.-5. kategóriájú kábeleket használják. Ezeket összefogták egy csoportba és a 10BaseT névvel látták el. A rendszer két sodrott érpáron mőködik, az egyik érpár adásra, míg a másik vételre szolgál. Az UTP kábel esetében a megengedett legnagyobb, még erısítés nélkül áthidalható távolság (szegmenshossz) 100 méter. Ezzel a módszerrel pont-pont kapcsolat alakítható ki, több gép esetében csillag topológiával, aminek az elınyeit és hátrányait már az elızıekben ismertettünk. A kábel a számítógéphez RJ-45 típusjelzéső csatlakozóval kapcsolódik. Ennek nyolc érintkezıje van, tehát a kábelben négy érpárnak kell lennie. A vezetékek megkülönböztetése nehézkes lenne, ezért színkódolást alkalmaznak. Négy különbözı színő vezeték van, a maradék négy pedig ezek és a fehér szín keveréke A szabványos színkód a következı táblázatban látható, de természetesen létezhetnek ettıl eltérı kódok is. A csatlakozó felépítése az ábrán vehetı szemügyre A bekötésre használatos a cross-over kifejezés is, mivel a jelvezetékek keresztbe vannak kötve.
54
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Színjelzés Fehér-narancs Narancs Fehér-zöld Zöld Fehér-Kék Kék Fehér-Barna Barna
Csatlakozó Jel neve Jel neve Csatlakozó 1 8 2 DTR DSR 7 3 TxD RxD 6 4 GND GND 4 5 GND GND 5 6 RxD TxD 3 7 DSR DTR 2 8 1 Az RJ-45 típusú csatlakozó bekötése
Színjelzés Fehér-narancs Narancs Fehér-zöld Zöld Fehér-Kék Kék Fehér-Barna Barna
A kábelek között találunk vékonyabb és vastagabb, kültéri és beltéri fajtákat is. Ezek tulajdonságaikban eltérhetnek, ami értelemszerően az árban is tükrözıdik. Optikai vezeték Manapság már egyre kiterjedtebben használják, ami kiváló paramétereinek és egyre csökkenı árának köszönhetı. Az információ fényimpulzusok formájában terjed egy olyan közegben, ami ezt lehetıvé teszi. A közeg lehet a levegı is, azonban ebben az esetben szükséges, hogy az adó és a vevı egymás számára látható legyen. Ez nagyobb távolságok esetében nem megoldható több tényezı (a Föld görbülete, tereptárgyak, idıjárás, stb.) miatt. A megfelelı választás az optikai szál. Az fényvezetı egy speciális, nagyon vékony csı, aminek a belseje nem üreges, hanem valamilyen speciális anyag tölti ki. Ebben halad a fénysugár. A mag körül helyezkedik el a köpeny, aminek a célja, hogy a fény kilépését a magból megakadályozza. A köpenyen egy lány burkolat található, aminek a szerepe a nagyobb ellenállóság biztosítása a fizikai terhelésekkel szemben. Az egész szálat egy kemény, mőanyag burkolat véd a környezet behatásaival szemben. Attól függıen, hogy a fény milyen módon halad a csıben, beszélhetünk egy- és többmódusú optikai kábelrıl.Figyeljük meg, hogy milyen méretekkel rendelkezik a kábel! A többmódusú kábel esetében a teljes fényvisszaverıdés fizikai jelenséget használják fel. Ez kimondja, hogy ha a két közeg törésmutatójának különbsége megfelelı, akkor az erre a felületre esı fény nem lép át a másik közegbe, hanem teljes egészében visszaverıdik. A csı anyagának a kiválasztásánál is ezt a szempontot kell figyelembe venni. Ha a paraméterek megfelelıek, akkor létrejön a teljes visszaverıdés és a fénysugár gyakorlatilag csillapodás nélkül tud a vezetıben haladni. Az egymódusú kábel esetében a csı átmérıje a fény hullámhosszával megegyezı. Ez azért különleges eset, mivel ekkor a fény nem fog ide-oda verıdni. Ezzel a módszerrel nagyobb távolság hidalható át erısítés nélkül. Az optikai kábeleknél nagyon fontos szempont, hogy a vezeték egységnyi hosszon mekkora jelcsillapítással rendelkezik. A csillapítást dB-ben adják meg egységnyi hosszúságra vonatkoztatva (pl.: dB/km). A fényforrás egy LED, vagy lézer dióda. Ezek az eszközök félvezetık, melyek nagyon jól fókuszálható fényt állítanak elı a rajtuk átfolyó áram erısségétıl függı intenzitással (erısséggel). Fényérzékelıként fotótranzisztort alkalmaznak. Ez szintén félvezetı, ami a kristályra esı fény erısségétıl függı kimeneti jelet állít elı. Az optikai adatátvitel esetében az áthidalható távolságot a fényveszteség határozza meg, ami három jellemzınek a függvénye. A két közeg összeillesztésénél a fény egy része visszaverıdik. Ezen segíteni lehet a lehetı legpontosabb illesztéssel. Erre a célra ma már rendelkezésre állnak a megfelelı eszközök. Ugyanezt a hatást okozzák az átviteli közegben lévı szennyezıdések is. Ezen a tényen a megfelelı anyagválasztással lehet csökkenteni. A harmadik veszteség abból adódik, hogy ha fény nem megfelelı szögben érkezik a közeg határfelületére, akkor a fény egy része nem verıdik vissza. Ezen az anyagválasztással és a fény hullámhosszának a helyes meghatározásával tudunk segíteni. Az optikai szál nagyon kényes a fizikai terhelésre. Mivel a kábel nagyon vékony és viszonylag merev, ezért a fizikai megterhelést nehezen viselik. Minden nagyobb, vagy hosszan tartó terhelést más szerkezeti elemnek kell átvennie. Annak érdekében, hogy azért a vezeték kezelhetı legyen, a lágy burkolatban a köpenyt és a magot hullámosítva helyezik el. Ez biztosítja a bizonyos szintő nyújthatóságot és a hajlíthatóságot.
55
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Ennél az átviteli közegnél a legproblémásabb és legfontosabb kérdés a jelek be és kicsatolása, amire alapvetıen kétféle csatolótípust alkalmaznak. A passzív illesztı két, az optikai szálra kapcsolódó csatlakozóból áll. Az egyik egy LED-et, míg a másik egy fényérzékelı félvezetıt tartalmaz. Az aktív illesztı annyiban több, mint a passzív, hogy a vett jeleket átalakítja villamos mennyiséggé, felerısíti, visszaalakítja fényimpulzusokká és újra a közegre kapcsolja. Az optikai adatátvitel során az információt különbözı hullámhosszúságú fényjel hordozza. Könnyő belátni, hogy a kétirányú adatátvitelhez két optikai szál szükséges. Ez gyakorlati problémát nem okoz, mivel a szilárd szigetelıben rendszerint több kábelt fognak össze. Megoldható üzenetszórásos topológia is, mivel léteznek az ehhez szükséges interfészek.
56
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A18. A számítógépek utasításkészlete, az utasítások szerkezete, az adatok címzési módjai az utasításokban (abszolút címzés, relatív címzés, közvetlen adatcímzés, indexelt címzés). Utasításkészlet, utasítástípusok: Egy processzor utasításkészlete azoknak az elemi (gépi kódú) utasításoknak az összessége, amelyek végrehajtására a processzor hardver szinten alkalmas. Az utasítások a következıképpen csoportosíthatók: -
átviteli utasítások: tároló, veremkezelı (PUSH/POP), periféria mőveleti utasítások: aritmetikai (ADD) és logikai mőveletek (AND), léptetés vezérlı utasítások: a program végrehajtását, a gép mőködését befolyásolják; feltétel nélküli, és feltételes ugrás (JMP, JNZ), szubrutinhívás (CALL), megszakítás engedélyezés/tiltás
Utasításszerkezet: A számítógépek utasításainak hossza egyes processzoroknál rögzített fix érték, más típusoknál változó, 2-6 byte hosszúságú. A változó és gyakran igen hosszú utasítások a CISC processzorokra jellemzıek, míg a redukált utasításkészlető RISC processzorok utasításai rögzített hosszúságúak és rövidek. Az utasítás szerkezete megszabja azt, hogy a processzornak az utasítás mely részét hogyan kell értelmeznie. Egy utasításnak feltétlenül tartalmaznia kell azt, hogy annak hatására a processzornak milyen mőveletet és mely operandusokkal kell elvégeznie. Egyes esetekben az operandus maga található az utasításban. CISC és RISC összehasonlítása: CISC: összetett utasításkészlető processzor, mikroprogramozott utasítás végrehajtás Sokféle utasítás. Sokféle címzési mód. Az utasítások változó hosszúságon kódolhatók. Kevés belsı regiszter Kevés adatcsatorna (2 egész, 1 lebegıpontos típusú Fejlett elágazáskeresés Címkiszámító egység: fregmentált és lapozásos mem.kezelés TLB: fordítási segédpuffer (gyakran elıforduló címeknél). Beintegrált védelmi rendszer A magas szintő programozási nyelven készített programot gépi utasításokra fordítja le, majd a végrehajtás mikroutasításokkal történik RISC: csökkentett utasításkészlető processszor, nem mikroprogramozott Kevés fajta utasítás. Kevés fajta címzési mód. Az utasítások rögzített hosszúságúak. Nagymérető regisztertömb Sokféle adatcsatorna. Operatív tárhoz fordulás ritka. A védelmi rendszer nem hatékony Gépi kódban nem írnak RISC-et,, csak magas szintő nyelven. Utasítások tárolási formái Az adatokon kívül a feladatok mőveleteinek végrehajtásakor a vezérlı program utasításait is el kell helyezni. Az utasítások 3 fı részre bonthatók (értelmezés szempontjából ) - mőveleti jelrész - a feladat fajtáját adja meg - címrész - adatok memóriabeli címét adja - kiegészítı rész - címek pontos meghatározásához ad módosító elıírást. Egy utasítás végrehajtásakor a processzornak 4 címre van szüksége: - az elsı operandus címe - a második operandus címe - az eredmény címe - a soron következı utasítás címe. Attól függıen, hogy az utasítás címrésze milyen címet tartalmaz beszélhetünk 4, 3, 2, 1, 0 címes utasításszerkezetrıl. Általában 2 és 1 címes utasításszerkezet használatos a processzoroknál.
57
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
-
Háromcímes utasítás: az utasításszámláló regiszter(PC) bevezetésével elhagyható a soron következı utasítás címe. Ezt a címet fogja tartalmazni a PC.
-
A kétcímes utasításforma esetén az eredmény címét hagyjuk el, és az eredményt a processzor vagy az egyik operandus helyére, vagy egy erre a célra szolgáló regiszterbe, az akkumulátor regiszterbe írja be automatikusan.
-
Az egycímes utasításforma bevezetésével elhagyjuk a második operandus címét, viszont ebben az esetben elengedhetetlenül szükséges az akkumulátor regiszter.
-
Az összes cím elhagyásával kapjuk a nullacímes utasítást, ennek használatához viszont szükséges a veremtároló alkalmazása.
Címzési módok A közvetlen, abszolút címzési mód esetében, az utasítás címrészében az operandus valódi, pontos címe található. A közvetlen cím vonatkozhat a memóriára (memory direct), vagy a processzor valamelyik regiszterére (register direct). Ez utóbbi esetben, a regisztercím megadásához kevesebb helyre van szükség az utasításban, így az ilyen utasítás hossza kisebb, mint a memória hivatkozásos utasításé. Memóriacímzés esetén a tároló méretétıl függıen 16-32 bit hosszúságú cím megadására van szükség, míg regisztercímzésnél 3-5 bit hosszúságú címrészre van csak szükség. Az abszolút címzés használata nem mindig elınyös, mivel az így elkészült program és a kapcsolódó adatok a memóriában nem helyezhetık át, mert akkor a program összes címét módosítani kellene. Az abszolút cím elsısorban a vezérlésátadó utasításokban okoz gondot, mivel a program áthelyezésével az ugrás célpontja, annak címe is megváltozik. De ugyanígy az adatok helye is megváltozhat, így az ezekre történı hivatkozásokban is módosítani kell a címet. Relatív címzés esetében az utasítás címrésze az operandus valamilyen alapcímhez (báziscímhez) viszonyított címét tartalmazza. Az elıbbieknek megfelelıen beszélhetünk bázisrelatív, programrelatív, illetve utasításrelatív címzésrıl. Az utasításrelatív címzéshez, többnyire önálló mőveleti jelrésszel rendelkezı külön utasításfajta használható. A tárolóhely pontos címe két címérték összeadásával, a báziscím és az utasítás címrészében lévı cím összegeként adódik ki. A bázisrelatív címzést legtöbbször a tárolóterület szegmentálására használjuk fel. Azaz annak érdekében, hogy az utasításbeli cím rövidebb lehessen, a memóriát kisebb részekre (szegmensekre, modulokra) osztjuk fel és ezen részek kezdıcímét helyezzük el a bázisregiszterben. Egy-egy ilyen szegmens pl., tárolhat csak adatokat, vagy csak programutasításokat. Ezt a megoldást találjuk pl. az Intel processzorok esetében is. A programrelatív címzés (amikor a programbeli címek a program kezdetéhez viszonyítva vannak megadva) talán az egyik legfontosabb alkalmazási területe a relatív címzésnek, mert ez teszi lehetıvé a programok memórián belüli áthelyezhetıségét, azaz bárhová betöltve a programot, beállítva az alapcímet a program kezdetére, az futtatható lesz. Az utasításrelatív címzés használatakor, az aktuális, végrehajtás alatt lévı utasítás tárolóbeli helyének szőkebb környezetét lehet elérni, ezért leggyakrabban relatív ugró (vezérlésátadó) utasításokban találjuk meg ezt a megoldást. Közvetett (indirekt) címzési mód A közvetlen címzéső utasításnál, az operandus memóriabeli címét, vagy annak egy összetevıjét találjuk az utasításban. Az indirekt címzésénél, az utasításban található cím nem magának az operandusnak a címét adja meg, hanem annak a tárolóhelynek a címét, ahol aztán az operandus címét megtalálja a processzor. Egyes processzorok esetében ez a címzési mód lehet többszintő is, azaz az utasításban megcímzett tárolóhelyen nem az operandus címe található, hanem egy további tárolóhely címe, amely már (ha nincs újabb indirekt címzésre utaló jelzés) atz operandus címét tárolja. Így, az indirekt címzésnél a pontos cím kidolgozása több lépésben történik. Az indirekt címzés történhet valamely memória tárolóhely felhasználásával (memory indirect addressing), vagy a processzor valamelyik regiszterének (register indirect addressing)segítségével. Az ezeken a tárolóhelyeken tárolt címeket, amelyek az operandusok címei, “mutatók”-nak pointereknek nevezik. Közvetlen adatcímzés, álcímzés (immediate addresing) Ennek a címzési módnak a használatakor, maga az operandus található az utasítás címrészében. A használható operandus-nagyság erısen korlátozott, az utasítás címrészének hossza szabja meg az így tárolható operandusok
58
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
legnagyobb értékét. Ezt a címzési módot kisebb értékő konstansokkal való munkához lehet felhasználni, mivel így nagyon könnyen lehet egyes regiszterekbe, tárolóhelyekre konstansokat betölteni. Indexelés A feldolgozások széles körében van szükség arra, hogy adatsorozatokon kelljen elvégezni valamilyen mőveletet. Ezekben az esetekben azt kell megoldani, hogy valamilyen egyszerő formában ciklikusan sorra elı tudjuk venni az egyes tárolóhelyeken lévı adatokat. Az indexelt utasításokat adatsorozatokon végzett mőveletekkor, ciklusokban tudjuk elınyösen használni. Az adatsorozat elsı elemének tárolási címét tartalmazza az utasítás címrésze és az indexregiszterben (IX) található az ettıl való eltérés, azaz hogy hányadik elemet kell a sorozatból feldolgozni. Az indexregiszter tartalmának folyamatos növelésével (vagy csökkentésével) végig tudunk haladni az összes adaton, tárolóhelyen. Mivel egy-egy adat elıkeresése után mindig növelni (csökkenteni) kell az indexregiszter tartalmát, ezért alkalmaznak olyan megoldásokat is, ahol ez a növelés automatikusan megtörténik. Ezt a lehetıséget nevezik autóindexelésnek. A tárolóhely pontos címe az utasítás címrésze tartalmának (mint alapcímnek) és az indexregiszter tartalmának összeadásával jön létre. Az IX indexregiszter tartalmát folyamatosan növelve, végig lehet járni a teljes adatsort. Az indexelt utasítás és a relatív címzési mód igen hasonlít egymáshoz, mert mindegyiknél egy alapcímtıl való eltérés adja meg a pontos tárolóhely címét. Azonban lényeges különbség van a kétféle címzési lehetıség között. A relatív címzésnél az alapcím egy regiszterben van és ennek értékét nem változtatjuk folyamatosan, az indexelt utasítások esetében az alapcím az utasításban van és a folyamatosan változó rész az indexregiszterben található.
59
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A19. A számítógépes adattárolás formái és szabványai (a numerikus és szöveges adatok tárolására vonatkozó legfontosabb formák és szabványok). Általánosan használt számrendszerek: - kettes (jelkészlet: 0,1) - tízes (jelkészlet: 0,1,2,3,4,5,6,7,8,9) - tizenhatos (jelkészlet: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) Ezek a számrendszerek egymás közt konvertálhatók. A számítógép adatok tárolására a kettes számrendszert használja a Neumann elvek szerint. Ugyanis vagy azt érzékeli, hogy van (1) vagy azt, hogy nincs (0). A Neumann elvő számítógépeknél mind a programokat, mind az adatokat ugyanabban a tárolóban helyezzük el, és a tárolás jellege mindkét esetben ugyanaz. A tárolt jelsorozat értelmezésétıl függ csak, hogy a tárolóhely tartalmát utasításnak vagy adatnak kell-e tekinteni. Egy utasítás mindig értelmezhetı adatként. Adatok tárolásának fı célkitőzései: - a tárolás hatékony megoldása az egyértelmő és könnyő értelmezhetıség fenntartása mellett - numerikus adatok esetén a mőveletvégzés legegyszerőbb és leggyorsabb módú megvalósításának elısegítése (például helyiértékes, kettes számrendszer használata; pozitív, negatív számok megfelelı kódolása; decimális mőveletvégzéshez a legmegfelelıbb decimális kód használata stb.). Numerikus adattárolás szempontjából megkülönböztetünk: - kettes számrendszer szerinti tárolás - fix pontos - lebegıpontos - tízes számrendszer szerinti tárolás - BCD Numerikus adatok tárolási problémája Kézi számolásnál az eredmény pontosságát nem befolyásolja semmi. A papírra ugyanis annyi számjegyet írhatunk le, amennyit akarunk. Más a helyzet a számítógépeknél, amelynek tárolóhelyei véges hosszúságúak. Az elvégezhetı mőveletek (összeadás, kivonás, szorzás, osztás) nem mindig vezetnek olyan eredményre, amelyet a rendelkezésre álló tárolóhelyen el tudunk helyezni (pl. negatív eredmény, hosszú tizedes tört). A mőveletek elvégzése során az egyik hibajelenség az, hogy az eredmény túl nagy (overflow = túlcsordulás), vagy túl kicsi (underflow = alulcsordulás) ahhoz, hogy a rendelkezésre álló tárolóban megjeleníthessük. A másik hibajelenség pedig az, hogy az eredmény nem tartozik az operandusok halmazába. (egész számokkal végzett mővelet eredménye nem mindig egész szám) Fix pontos Jellemzıi: - kisebb, kevesebb számjegybıl álló számok tárolásához - rögzített nagyságú memóriaterületen tároljuk - helyiérték elválasztásához kettedes pontot használunk (ennek helye rögzített!) - tárterület: 2-4bájt Tárolási formája: ±a.b Ahol: - „a” egész számjegy - „.” kettedes pont - „b” törtrész számjegyei -
Példa:
a 2-es számrendszerben a törtek helyiértéke: ½, ¼, 1/8 1/16 Pl.: 12,75
12,7510 = 1210 + 0,7510 = 8 + 4 + ½ + ¼ = 1100.11002
60
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Lebegıpont pontos Jellemzıi: - hatványkitevıs tárolásmód, kisebb és nagyobb számjegyek tárolásához - a tárolási formájukat pontosságuk határozza meg (hány biten) - nemzetközi szabvány a gépi ábrázolás adatformátumára illetve a velük végezhetı mőveletekre (ANS/IEEE 754 és 845 szabvány) - tárterület: 4-6-8bájt Tárolási formája: ±a·r±p Ahol: - „±” elıjel, melyet egyetlen biten tárolunk mindig - „a” mantissza, vagyis a fixpontos egész - „r” radix, ez a számrendszer alapszáma, (általában 2-es) ez ami rögzített mindig, ezért ezt már nem kell tárolni „p” karakterisztika vagyis a hatványkitevı A lebegıpontos ábrázolást az IEEE 754 szabvány rögzíti. Jellemzı Egyszeres Dupla pontosságú Kiterjesztett Négyszeres [bit] [bit] pontosságú [bit] pontosságú [bit] 1 1 1 1 Elıjelbit 8 11 15 15 Karakterisztika 23 52 64 112 Mantissza Pascal rendszerben mindez úgy néz ki, hogy 5 byte-on tároljuk a törtrészt (mantissza) és egy byte-on a kitevõt (karakterisztika). Az ábrázolás például, ha 45,26-ot akarjuk eltárolni akkor a következõ formát ölti a memóriában. mint látható a gépi alak megértése nem túl egyszerû. Az elõjelet (E) könnyen megérthetjük, hiszen értéke nulla, ha a szám pozitív és 1 ha negatív. A törtrész, mantissza (M) alakjának megértéséhez szükséges tudnunk, hogy a 45,26-ot hogyan lehet bináris alakra hozni. Az elõzõekben láttuk, hogy külön ábrázoljuk az egészrészt 45 dec=10 1101bin és külön a törtrészt : 0,26 dec = 0100 0010 1000 1111 0101 1100 0010 1001 bin együtt az egész bináris alakban tehát 45,26 dec = 10 1101, 0100 0010 1000 1111 0101 1100 0010 1001 bin Mivel a mantisszát fixpontos bináris törtként kell tárolnunk, ezért a szám bináris alakját jobbra toljuk úgy, hogy az elsõ értékes jegy közvetlenül a bináris pont mögé essen. Ezzel azonban a szám értékét elrontottuk. Ha az eredeti értéket kívánjuk eltárolni akkor, meg kell szoroznunk 2-nek annyiadik hatványával amennyivel a számot jobbra toltuk, jelen esetben ez az érték 6. Így a kapott szám alakja: 0,10110101000010100011110101110000101001 26 Vegyük észre, hogy a bináris pont után következõ számjegy mindig 1 lesz (hiszen a bináris törtszám ábrázolásának ez a feltétele). Ezt a bitet ezért szükségtelen tárolnunk (ezt mindíg hozzátehetjük a szám alakjához ha a számot ki akarjuk olvasni a tárból), ezzel nyerünk egy bitet amivel megnövelhetjük a tárolt szám pontosságát. A mantissza eltárolt alakja ezzel: 01101010 0001010 00111101 01110000 101001. (Tisztán törtszám ábrázolásakor a mantissza kialakítása hasonló, csak most nem jobbra, hanem balra kell tolni a bináris alakot pl: 0,053 dec = 0,00001101100100010110100001111001010110000001 4-el balra toljuk a számot: 0,1101100100010110100001111001010110000001 2 -4 alakú lesz. A mantissza tárolt értéke tehát a legfelsõ 1 elhagyása után 01011001 00010110 10000111 10010101 10000001.) A karakterisztika (K) kialakításához vegyük figyelembe, hogy a PASCAL nyelvben alkalmazott módszer esetén az elõfeszítés 128 azaz
(Negatív kitevõ esetén a karakterisztika a következõ lépések során alakul ki. pl: ha -4 a kitevõ, akkor mivel a számot kettes komplemens kódban ábrázoljuk (4dec = 0000 0100bin, negálás után 1111 1011, 1-et hozzáadva 1111 1100) - 4 dec = 1111 1100bin. Ezt adjuk az elõfeszítéshez :
+
+ 1
1000 0000 128 6 0000 0110 1000 0110 1000 0000 128 1111 1100 -4 0111 1100
A lebegıpontos számokkal végzett mőveletek problémája a túlcsordulás és az alulcsordulás megfelelı kezelése. A szabvány ezek kezelésére további adatformátumokat határoz meg.
61
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Ezek : denormalizált adatformátum nulla számérték végtelen érték nem meghatározott számérték (Not a Number: NaN) Tízes számrendszer: Ebben a kódrendszerben a tízes számrendszerbeli számok számjegyeit egyenként konvertáljuk át az alkalmazott bináris kódba. Mivel csak tízféle számjegyet használunk, ábrázolásukhoz elegendı 4 bit is. Legáltalánosabban használt kód a BCD (Binary Coded Decimal, binárisan kódolt decimális) kód, de léteznek még más kódok is. (Stibitz, Aiken, Gray stb). BCD kód A BCD kód a legkönnyebben elıállítható, ezért talán a legáltalánosabban használt kód. Ennél a kódnál a számok számjegyeinek a kettes számrendszerbeli értéke felel meg, négy helyi értékre kiegészítve. Pozitív és negatív számok megkülönböztetésére a 4 helyi értéken képezhetı 16 jelkombinációból fennmaradó 6 jelsorozat valamelyikét kell kiválasztani. Az egyik alkalmazott tárolási formánál a szám elıjelét az utolsó 4 helyi értéken tárolják, és értéke megegyezés szerint rögzített.(1100 = + ; 1101 = - ) Mikor melyiket használjuk? - Kettes számrendszert akkor használunk, ha aritmetikai mőveleteket kívánunk végezni a számokkal (számításigényes problémák megoldásakor). - Tízest akkor, ha a számítási munka egyszerő, nagy tömegő adatot kell beolvasni. Tízes számrendszer ábrázolásához 4 bit szükséges. Alfanumerikus adatok tárolása Ha az adatokkal nem kívánunk aritmetikai mőveleteket végezni, csak tárolni és nem-aritmetikai mőveleteket végezni, a numerikus adatok kódolására használt módszerek nem alkalmasak. Alfanumerikus (bető, számjegy, speciális jelek) adatok tárolására az ASCII (American Standard Code for Information Interchange) kódrendszert használják, illetve az IBM nagygépeknél használt EBCDIC (Extended Binary Coded Decimal Interchange Code). ASCII tárolása 8 biten (=1bájt), ami 7 bit + 1 paritásbit A Unicode (ejtsd: junikód) az egyik elterjedt informatikai megoldás a természetes nyelvekben megtalálható különbözı írásjelek egységes kódtáblába foglalására. A jelenleg használt Unicode formák közül a legelterjedtebb az UTF, ami verziótól függıen 8-31 biten jeleníti meg a Unicode jeleit. Az UTF-32 31 biten (az ASCII-vel ellentétben) 231 azaz 2 147 483 648 -féle karakter tárolására képes.
Egyéb adattárolási módok: az eddig ismertetett formák jellemzıje, hogy magából a tárolt jelsorozatból nem lehet következtetni annak tartalmára, azaz, arra, hogy milyen típusú adatot képvisel. Mivel ez nem mindig elınyös, alkalmaznak olyan tárolási formákat is, amelyek az adatot képviselı bitek mellett további kiegészítı részeket is tárolnak az adat típusának a jelölésére. Ezt a formát nevezik öndefiniáló adatformának. (pl. a Motorola, SPARC processzoroknál)
Utasítások tárolási formái Az adatokon kívül a feladatok mőveleteinek végrehajtásakor a vezérlı program utasításait is el kell helyezni. Az utasítások 3 fı részre bonthatók (értelmezés szempontjából) - mőveleti jelrész - a feladat fajtáját adja meg - címrész - adatok memóriabeli címét adja - kiegészítı rész - címek pontos meghatározásához ad módosító elıírást. Egy utasítás végrehajtásakor a processzornak 4 címre van szüksége: - az elsı operandus címe - a második operandus címe - az eredmény címe - a soron következı utasítás címe Attól függıen, hogy az utasítás címrésze milyen címet tartalmaz beszélhetünk 4, 3, 2, 1, 0 címes utasításszerkezetrıl. Processzorok utasításszerkezetei: 2, 1 címes utasításszerkezet használatos a processzorok többségénél. A háromcímes processzor kialakítása nem túl gyakori.
62
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
-
az utasításszámláló regiszter(PC) bevezetésével elhagyható a soron következı utasítás címe. Ezt a címet fogja tartalmazni a PC. Ez a forma a háromcímes utasítás.
-
a kétcímes utasításforma esetén az eredmény címét hagyjuk el, és az eredményt a processzor vagy az egyik operandus helyére, vagy egy erre a célra szolgáló regiszterbe, az akkumulátor regiszterbe írja be automatikusan.
-
az egycímes utasításforma bevezetésével elhagyjuk a második operandus címét, viszont ebben az esetben elengedhetetlenül szükséges az akkumulátor regiszter.
-
az összes cím elhagyásával kapjuk a nullacímes utasítást, ennek használatához viszont szükséges a veremtároló alkalmazása.
Ha érdekel a múlt ! http://www.remenyikzs.sulinet.hu/Segedlet/Addatar/Kodok.html
63
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A20. Az IBM PC-k operációs rendszerei (DOS, Windows, UNIX összehasonlítása). A számítógép egymagában nem képes mőködni. Ahhoz, hogy valamire használni is lehessen szükség van bizonyos utasításokra, programokra, amelyek mőködıképessé teszik azt. Ezek az utasítások írják elı, például, a gépnek, hogy mit tegyen abban az esetben ha lenyomtunk egy billentyőt, vagy ha futtatni akarunk egy programot, vagy ha egy program valamelyik lemezrıl akar olvasni illetve rá akar írni, egyszerően ezek biztosítnak bármilyen kommunikációt a felhasználó és a gép között, valamint vezérlik a programok végrehajtását. Ezeket az utasításokat (programokat) nevezzük egyszóval operációs rendszernek. Az ISO megfogalmazása szerint az operációs rendszer "olyan programrendszer, amely a számítógépes rendszerben a programok végrehajtását vezérli: így például ütemezi a programok végrehajtását, elosztja az erıforrásokat, biztosítja a felhasználó és a számítógépes rendszer közötti kommunikációt." Az IBM / PC gépek legfontosabb operációs rendszerei a következık: - DOS - WINDOWS ( Win95, win98, NT, 2000, XP, Vista ) - UNIX ( Linux ) - OS/2 ( Warp ) stb. 1. A DOS operációs rendszer A PC-DOS / MS-DOS páros a Microsoft cég terméke, a '80-as évek legelterjedtebb operációs rendszere volt. Egyfelhasználós, egyfeladatos interaktív rendszer, röviden csak DOS-nak nevezzük. A DOS rendszeradminisztrációs rutinjai egyrészt a ROM-ban vannak (ROM - BIOS), más részük a háttértárolón találhatóak. Errıl a tárolóról töltıdnek be a memóriába a gép bekapcsolásakor, vagy a RESET - tel történı újraindításkor. Ezek a rutinok 2 rendszerállományban vannak (IO.SYS és MSDOS.SYS). A DOS háttértárolón található harmadik komponense a COMMAND.COM szabványos parancsértelmezı, mely a billentyőzeten beütött parancsnyelvet fogadja, megkeresi és futtatja a programokat, egyszóval az ember - gép közti közvetlen kapcsolatot valósítja meg. A szabványos parancsértelmezı le is cserélhetı. A parancsértelmezı kétféle parancsot kezel: belsı és külsı parancsokat. A belsı parancsokat - ezekrıl volt idáig szó - a rendszerállományok tartalmazzák, ezek mindig a memóriában vannak. A külsı parancsok valójában a háttértárolón található futtatható állományokban, un. fájlokban vannak, innen töltıdnek be futtatáskor a memóriába. A fájlok megnevezésénél figyelembe kell venni, hogy az érvényes szabályoknak megfelelıen a név maximálisan 8 karakterbıl állhat, és egy ponttal elválasztva maximum 3 karakteres un. kiterjesztésbıl amely utalhat a fájl típusára. A futtatható állományok kiterjesztése .EXE, .COM vagy .BAT lehet. A név megadásánál szempont az is, hogy a név karakterei csak az angol ABC betői, számjegyek, valamint néhány speciális karakter lehet (_, #, & stb.). Nincs különbség a kis és nagybetők közt. A DOS állományok lehetnek tehát futtatható, szöveges, valamint adat állományok. Az állományok tárolása bájtokban történik, függetlenül attól, hogy milyen típusú állományról beszélünk. A különbség azok értelmezésénél adódik. A szöveges állományok sorokat tartalmaznak, a sorok karakterekbıl és sorvégjelbıl állnak, ami a CR/LF karakterekbıl áll. A nem szöveges állományokat nevezik még bináris állományoknak. A bináris állományok nincsenek sorokra tagolva a CR/LF sorvégjellel. Értelmezésük a rendszertıl, a programoktól függ. A .BAT kiterjesztéső futtatható állományok is lényegében szöveges állományok, melyeknek sorai különféle DOS parancsokat, valamint csak ilyen állományokban használható utasításokat tartalmaznak, melyeket a parancsértelmezı sorra elolvas és végrehajtja azokat, mintha parancssorból olvasná be. A DOS-ban az állományok egy könyvtárstruktúrában helyezkednek el. Létezik egy kiinduló katalógus, melyet gyökérkönyvtárnak (root) neveznek. Ebbıl indulnak ki a további alkatalógusok, alkönyvtárak. A fájlok ezekben a katalógusokban találhatóak, ugyanakkor a katalógusok tartalmazhatnak további alkatalógusokat is. Ezért a katalógusrendszer egy fastruktúrához hasonlít. A katalógusok megnevezésénél ugyanazok a szabályok érvényesek mint a fájloknál. A könyvtárszerkezet használatával jár az is, hogy a fájlok azonosításához meg kell adni az ıt tartalmazó könyvtár azonosítóját, elérési útvonalát is. A szülıkönyvtár az a katalógus, amelyhez az aktuális katalógus tartozik. Ennek a jele a két pont (..\). Ezt is lehet használni az útvonal megadásokban. 2. A WINDOWS operációs rendszer A Windows összes verziója a grafikus felhasználói felület (GUI - Graphic User Interface) használatára épül. Itt az irányítás nagyrészben már nem a billentyőzetrıl, hanem az egérrıl történik. Az operációs rendszer kezelése az utasításról a kiválasztásra tevıdött át. A Windows már többfeladatos, multitaszkos operációs rendszer, egyszerre több alkalmazás is futtatható, más más ablakokban. Internetes lehetıségekkel, beépített hálózatkezelési lehetıséggel rendelkezik.
64
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A Windows NT a Windows továbbfejlesztett, üzleti célú megvalósítása, alkalmazásával több gép összekapcsolható, így megosztva az erıforrásokat. Kiterjedt biztonsági rendszere van (felhasználó nyilvántartás, kötelezı bejelentkezés, hozzáférési jogok, a programok memóriaterületeinek védelme, események naplózása stb.) A fájl és könyvtárstruktúra a Windows régebbi változataiban megegyezik a DOS-ban használt struktúrával, csak a megjelenítése történik grafikusan. Viszont a Windows 95-ben már lényeges változásokat eszközöltek ezen a téren. A Windows 95 és 98 kihasználja a 32 bites hardverlehetıségeket. A hardver megváltoztatása esetén bekapcsoláskor automatikusan felismeri a változást és azonosítja az új elemet (Plug and Play). A fizikai könyvtárstruktúra azonos a DOS könyvtárstruktúrájával, a fájlok is ugyan úgy helyezkednek el a katalógusokban. Az elnevezéseknél viszont már lehet hosszú neveket, valamint más karaktereket is használni. A nevek hossza legfeljebb 250 karakter lehet A fizikai megvalósítás szinte teljesen azonos a DOS - al, a különbség a megjelenítésben található. A lemezen ugyan úgy vannak tárolva az állományok, a nevük is csak maximum 13 karakter hosszú, beleértve a kiterjesztést és a pontot is, a hosszú megnevezés egy másik fájlban található. A Windows újabb változatai már nem sok mindenben hasonlítanak az elıdökhöz, bár kompatibilisek vele. Tudják kezelni a FAT fájlrendszert, de alapvetıen NTFS fájlrendszert használnak. Sok eszközt automatikusan felismernek, bár hatalmas erıforrást is igényelnek. Windows – XP: Az XP alapvetıen 32 bites hardverre készült, elkészült a 64 bites változata is, bár csak angol nyelven adták ki. Windows Vista: A Microsoft legújabb terméke a háromdimenziós megjelenítést és a biztonságot helyezi elıtérbe és 64 bites hardverre készült. 3. A UNIX operációs rendszer A UNIX valójában a Unix alapú operációs rendszerek csoportja (pl. HP-UX, IRIX, stb.). Létezik ingyenes verziója is, a LINUX (pl. Red Hat, Suse, Debian). Többfelhasználós - többfeladatos, idıosztásos operációs rendszer. Ez azt jelenti, hogy egyidıben több felhasználó is dolgozhat, és minden felhasználó több programot is futtathat egyidıben. A felhasználók ún. terminálokon keresztül csatlakoznak a rendszerre, az összeköttetés megvalósítására számos módszer létezik. Minden felhasználónak van bejelentkezési neve és jelszava, ez különbözteti meg ıket egymástól. A rendszer karakteres és grafikus felülettel is rendelkezik. A felhasználókat, jogosultságaikat nyilvántartja. A rendszer mőködése biztonságosabb, mivel az egyes folyamatoknak a gép fizikai erıforrásaihoz nincs hozzáférésük, bármilyen perifériamőveletet csak a kernel meghívása útján végezhetnek. A kernel teljes mértékben hozzáfér a gép erıforrásaihoz. Fizikai szinten kezeli a hardvert, a legnagyobb teljesítmény érdekében. A boot-olást kivéve nem használja a BIOS-t, mert az a DOS figyelembevételével készült és nem alkalmas multitaszk operációs rendszer számára. A memóriakezelésben lapozásos virtuális memóriakezelést és swappingot használ: ha a rendszernek szabad memóriára van szüksége, egy inaktív folyamatot a háttértárra ír, egyébként pedig gondoskodik a szükséges lapok memóriában létérıl. A szabad memóriát winchester bufferként használja, ezért kikapcsolás elıtt le kell állítani a rendszert, különben adatvesztés léphet fel. A futó folyamatok között az idıszeleteket prioritásos elven osztja ki, mely a felhasználó által beállítható. A Unixban minden file: olyan kommunikációs végpont, ahova adatok írhatóak és onnan kiolvashatóak. A file rendszerben nincsenek meghajtók, a rendszerben levı minden file-t a gyökérkönyvtárból elérhetünk (pl. /mnt/floppy). A filenév max. 255 karakter hosszú lehet, minden karaktert tartalmazhat, megkülönbözteti a kis és a nagybetőket. A UNIX minden állományhoz és katalógushoz hozzáférési jogokat rendel, ezzel (is) biztosítva az adatok és a rendszer védelmét. A fájl az adatok tárolására szolgáló alapvetı adatobjektum a UNIX alatt. Teljesen strukturálatlan, nincs sem rögzített, sem változó hosszúságú mezıkre, rekordokra bontva, nincs megszabott hosszúsága, semmilyen más korlátja nincs, a végét nem jelzi semmilyen speciális karakter - akkor van vége, amikor már nincs mit olvasni belıle. A fájl tehát egyszerően bájtok (karakterek) sorozata. A UNIX fájloknak három fı típusa van: Közönséges
• •
adat
végrehajtható ∗ bináris ∗ shell-script Speciális Katalógus A shell-scriptek ugyanazok a UNIX - ban mint a DOS - ban a batch fájlok. Sorai végrehajtható parancsokat tartalmaznak. A bináris - amint a neve is mutatja - a futtatható programok bináris kódját tartalmazza.
65
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A speciális fájlokon keresztül lehet elérni a különbözı perifériákat, terminálokat, billentyőzetet, monitort, diszkeket, hálózati egységeket stb. Tehát lényegében nem is a képernyıre írunk, hanem egy fájlba, és a rendszer dolga, hogy a fájl tartalma a monitorra kerüljön. A katalógusok fájlok egy másik fájltípus. Ez azt jelenti, hogy a UNIX - ban a katalógusok is fájlokban találhatóak. Annyi a különbség, hogy ezen fájloknak a kezelésére külön parancsok szolgálnak. Ezért lehet kijelenteni, hogy a UNIX - ban minden fájl !
66
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A21. Az utasítás feldolgozás gyorsítása párhuzamosítással. A SIMD és MIMD architektúra, a pipelining lényege, szuperskalár mikroprocesszorok. SISD (Single Instruction Stream single Data Stream) azaz, egyetlen utasításfolyam és egyetlen adatfolyam feldolgozása. Az ilyen gépek egy vezérlı egységgel és egy aritmetikai egységgel rendelkeznek, egyidıben egyetlen utasítás végrehajtására alkalmasak. Ebbe a csoportba tartoznak a hagyományos Neumann elvő számítógépek. SIMD (Single Instruction Stream Multiple Data Stream) Egyetlen utasítással ugyanazt a mőveletet több adaton végzi el a processzor. Az Intel MMX processzorában vezette be elıször, majd az SSE utasításkészletében is alkalmazza. Az AMD a 3DNow! utasításkészletében alkalmazta elıször. Amint azt a 1.1. ábra mutatja, a SIMD számítógép egy nagyteljesítményő vezérlı processzorból és több, kisebb teljesítményő feldolgozó elembıl áll.
Amint azt az ábra mutatja, a SIMD számítógép egy nagyteljesítményő vezérlı processzorból és több, kisebb teljesítményő feldolgozó elembıl áll. A feldolgozó egységeket gyakran rácsszerően kötik össze úgy, hogy minden egység a közvetlen szomszédaival kommunikál. A vezérlı processzor – a soros gépek processzorához hasonlóan – egymás után olvassa és dekódolja az utasításokat. A soros esetben a processzor a beolvasott utasítást a saját memóriájában lévı adatokkal hajtja végre. A párhuzamos esetben a vezérlı processzor minden feldolgozó egységhez elküldi a beolvasott utasítást és azok egyidejőleg hajtják végre ezt az utasítást a saját memóriájukban tárolt adatokon. Példaként tekintsük az LD reg, 100 utasítást. Ennek hatására minden processzor betölti a 100-as memóriacím tartalmát a regiszterbe, de a 100-as cím processzoronként különbözı memóriarekeszt jelent. Tehát a processzorok – a SIMD felépítésnek megfelelıen – azonos utasítást hajtanak végre különbözı adatokkal. Az if test then if-branch else else-branch utasítás hatására a processzorok egyidejőleg elvégzik a tesztelést, azután egy részük az if-branch ágon folytatja, míg mások tétlenek maradnak, és végül az elıbbiek maradnak tétlenek és az utóbbiak végzik el az else-branch ágat. Emiatt a SIMD felépítéső számítógépek szabályos szerkezető számítások elvégzésére alkalmasak. Ez a felépítés történetileg lényeges, de ma már nem alkalmazzák. A SIMD architektúrák csoportosíthatók: −tömb- (mátrix-) vagy vektorprocesszorokra, ahol az adatok a mátrix vagy vektorelrendezésnek megfelelıen kerülnek feldolgozásra, −asszociatív processzorokra, ahol az adatok kiválasztása tartalom szerint történik, −szisztolés processzorra (Systolic Array), −adatfolyam (Data Flow) processzorra. −nagy utasításszó-hosszúságú (VLIW: Very Large Instruction Word) processzorra, a. Tömbprocesszorok (array processors), vektorprocesszorok (vector processors) A tömb- és vektorprocesszorokat olyan speciális területeken - pl. a jel- és képfeldolgozásban alkalmazzák, ahol −az elvégzendı mőveletek mátrix- vagy vektormőveletek formájában írhatók le, −az egyidejőleg kezelt operandusokat egyidejőleg lehet elérni. Ilyen mőveletek gyakoriak például a parciális differenciálegyenletek és lineáris egyenletek megoldása vagy a mátrix-szorzás során. A vektor- és tömbprocesszor is azonos utasítást hajt végre különbözı adatokon. A vektorprocesszorokat is gyakran tömprocesszoroknak nevezik (hiszen a vektor egydimenziós tömb). A kétdimenziós tömbprocesszorokat esetenként mátrixprocesszoroknak is hívják.
67
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
b. Asszociatív processzor Amennyiben a tömbrocesszoroknál asszociatív memóriát használunk, úgy kapjuk az asszociatív processzort. Természetesen a sebességjavulást a magasabb költségek árán tudjuk elérni. Ezért speciális célú feladatok megoldásához szokták e megoldást használni, melyeknél a tömbprocesszor jellegő feldolgozási igény mellett a sebesség elsıdleges és a költségek csak másodlagosak (pl. radarjel-feldolgozás, digitális képfeldolgozás repüléstechnikában). c.Szisztolés processzor A szisztolés processzorok sok olyan, azonos típusú, egyszerő processzorelemet tartalmaznak, amelyek csak a szomszédaikkal kommunikálnak. A számítás ütemenként haladnak elıre, és mint mőveleti "hullám" terjed tova a tömbön. A mőködés során az adatok egyszerre (egy "dobbanásra") adódnak ("lökıdnek") át a szomszéd elemhez. d. Adatfolyam (Data Flow) processzor A számítógépek túlnyomó része (ilyenekrıl volt eddig is szó) az ún. „parancsfolyam” (vagy programfolyam) elven mőködik, vagyis a (utasításokat követı) vezérlések sorrendisége határozza meg a mőködés sorrendiségét. A másik lehetséges módszer az lehet, hogy akkor hajtódjon végre egy mővelet, amikor a végrehajtásához szükséges összes operandus (adat) rendelkezésre áll. Az adatfolyam gép így mőködik: a mőveletek sorrendjét az adatok (az „adatok folyama”) vezérlik. e. Igen nagy utasításszavú (VLIW: Very Long Instruction Word) processzorok Hasznos lenne olyan architektúrák alkalmazása, amelyek kihasználják a minden programban meglévı, nagyszámú különbözı típusú feladat vagy mőveletsor párhuzamosításának lehetıségét. A VLIW processzorok több ALU-t tartalmaznak, amelyek lehetıvé teszik több mővelet párhuzamos végrehajtását. Nevüket onnan kapták, hogy egy-egy utasításnak minden egység számára meg kell adnia a végrehajtandó feladatot. Kulcsszerepet játszanak a VLIW számítógépek használhatóságában a hatékony fordítók. Hiába a sok aritmetikai-logikai egység, ha a szoftver azokat sohasem használja ki. A fordítón belül is kritikus az elágazások megfelelı párhuzamosítása. Erre két módszer is született. A nyomkövetı fordítási módszer a fordítás idején meghatározza az elágazások legvalószínőbb utját, és ezen út elsı utasításait párhuzamosítja a megelızı szakasszal. Ha a választás jó, ez a párhuzamosítás hatékonyan gyorsítja a programfutást, s csak néha eredményez fölösleges számításokat. Általánosabb a szivárgásos ütemezı fordítási módszer, amely az elágazásnál minden lehetséges utat végrehajt, majd a logikai kifejezés kiértékelése után csak a megfelelıt tartja meg MISD (Multiple Istructtion Stream single Data Stream) Többutas utasításáramlás, egyutas adatáramlás. Többprocesszoros rendszer mely gyors feladatvégzésre képes, de csak egy aritmetikai egységet használ. A gyakorlatban ilyen gépek nem léteznek. Egyes szekértık ide sorolják a hibatőrı architektúrákat, melyek többszörösen végzik el a mőveleteket azonos adatokon és az eredményt hibavédelmi célból összehasonlítják. MIMD(Multiple Istructtion Stream Multiple Data Stream) azaz több utasításfolyam és több adatfolyam feldolgozása. Ebbe a csoportba tartozó gépek különbözı multiprocesszoros számítógépek. A MIMD osztály a feladat-, eljárás- vagy szubrutin szintő párhuzamosságot használja ki. Mivel a megoldás több, azonos értékő processzort alkalmaz, így multiprocesszoros rendszereknek tekinthetjük ıket. A MIMD architektúrában a csatolás módja alapján szokták az architektúrákat csoportosítani (Lazán csatolt rendszerek, Szorosan csatolt rendszerek). A csatolás történhet a memórián vagy az I/O eszközön keresztül. A számítógép mőködésének gyorsítása egyrészt az alapütemet megszabó órajel frekvenciájának növelésével, másrészt a gépen futó folyamatok párhuzamosításával oldható meg. A folyamatok párhuzamosítási lehetısége azok részfázisokra való bonthatóságából adódik. A folyamatot olyan lépésekre kell bontani., amelyek mindegyike önálló részt képez, má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énybeveheti. Az egyik fázis eredménye a következı fázis induló adatát képezi. Ez az átlapoló 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. Gyakorlatilag ez az elemi fázisok végrehajtási idejének megfelelı idıközönként fejezıdik be egy-egy folyamat. Ezt az átlapolt feldolgozási módszert nevezik pipelining (adatcsatornás, futószalag) feldolgozásnak. Az ilyen módon átlapolt folyamatok feldolgozásához tartozó egységek mőködtetése kétféle módon történhet: • Aszinkron ütemezéssel, amely esetében az egymást követı fokozatok jelzik egymásnak elemi feldolgozási lépésük elkészültét, illetve azt, hogy készek fogadni a következı utasítás az arra az egységre elıirt feladat elvégzéséhez. Mindegyik egység amint befejezte tevékenységét, továbbadja a feldolgozást a következı egységnek, azaz a feldolgozás továbbhaladása folyamatos az adatcsatornán keresztül.
68
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor. •
Szinkron ütemezéssel, amelynél 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. Ha egy-egy feladatat végrehajtása ,más és más leterhelési diagrammot eredményez, azaz az egyes feladatok nem ugyanazokat az erıforrásokat használják fel, akkor multifunkcionális, egyébként pedig egyfunkciós pipelinrıl beszélünk. Ugyancsak különbség tehetı aszerint, hogy a pipeline-on végighaladó feldolgozások minden erıforrást csak egyszer használnak fel, vagy több ízben is. Az elsı esetben lineáris pipeline-ról beszelınk. Az utasításvégrehajtás gyorsítása Az utasítás-végrehajtási folyamat párhuzamosítását nehezítik az egymást követı utasítások egymásra hatása. Ez a következı területeken befolyásolja a feldolgozás folyamatát. • Az utasítások egymásutánisága az utasításfolyam feldolgozása • Az egymást követı utasítások által használt adatok rendelkezésre állása • A hardware erıforrások igénybevétele A megoldandó problémák gyakorlatilag három témakörbe sorolhatok: • Strukturális memóriaelérés, az un. LOAD/STORE architektúra • Vezérlési (program elágaztatás kezelése) A nehézségek megoldására két úton van lehetıség: • Szoftver úton, azaz a program elkészítésekor, vagy fordításakor figyelembe venni a processzor mőködésébıl adódó megoldási lehetıségeket, követelményeket, így pl.: programozáskor a strukturált programírás elveit figyelembe venni, vagy a RISC processzorok esetében a fordítóprogramra bízni a programutasítások optimalizált sorrendjének az elemzését. • Hardware úton, amely ugyan gyorsabb, de bonyolítja a processzor felépítését. Erıforrások igénybevétele Az erıforrások használatának problémája abból származik, hogy a párhuzamosított folyamatok igen gyakran ugyanazt az erıforrást kívánják igénybe venni feldolgozásukhoz (pl. leggyakrabban a memória okoz ilyen gondot). Ennek egyik lehetséges megoldása az erıforrások többszörözése, amely nyilvánvalóan többletköltséget eredményez. 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 az, 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órészhez irányítja a processzor. Így nem okoz gondot egyidejőleg több utasítás elıkészítése a feldolgozáshoz. Az igények sorba állítása egy másik lehetıség az azonos erıforrások iránti igények kiszolgálására. Ez azonban nem gyorsítja a feldolgozást. Szuperskalár processzor: A mikroprocesszorok fejlıdése során a teljesítmény növelése csak az utasítás feldolgozási párhuzamosság egyre újabb dimenzióinak kiaknázásával vált lehetıvé. A párhuzamos végrehajtás, a futószalag-architektúrák, majd a kibocsátási párhuzamosság megjelenése hozta el az ún. szuperskalár mikroprocesszorokat, s ma már a piacon elérhetı szinte összes mikroprocesszort a szuperskalár utasítás kibocsátás jellemzi. Skáláris feldolgozás Az átlagos utasítás végrehajtás megközelítıleg egyenlı a CPU sebességével Szuperskaláris: Több, mint egy utasítást hajt végre egy órajel alatt.
A mai szuperskalár processzorok óraciklusonként 2 - 6 utasítást bocsátanak ki. Az elsı és a második generációs szuperskalár processzorok a függıségeket maguk kezelik, tehát a függıségek kezelése hardverúton dinamikusan történik. Elsı generációs (keskeny) szuperskalár processzorok Jellemzıi: Közvetlen (nem pufferelt) kibocsátás A kibocsátási ráta: RISC esetén 2 – 3 utasítás/ciklus CISC esetén 2 utasítás/ciklus Statikus elágazás-becslés A program-kód sajátosságai alapján hozza a döntését Pontosabb, mint a fix elırejelzés Memória alrendszere kétszintő gyorsítótárat alkalmaz L1 gyorsítótár
69
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Architekturálisan a processzor lapkáján helyezkedik el Külön adat- és utasítás-gyorsítótár Egy portos L2 gyorsítótár Különálló lapkán helyezkedik el Közös gyorsítótár az adatok és az utasítások számára Processzorsínhez csatlakozik Második generációs (széles) szuperskalár processzorok Jellemzıi: Dinamikus utasítás-ütemezés Regiszter-átnevezés Kifinomult memória alrendszer, kétportos L1 gyorsítótár Dinamikus ugrás elırejelzés A legelsı szuperskalár számítógép az IBM RS6000-es volt 1990-ben Miért van szükség szuperskalárprocesszoroknál elıdekódolásra és ennek végrehajtása hogyan történik? A processzor dekódolási feladatait csökkentik. Ennek során a dekódolás feladatainak egy része már akkor végrehajtásra kerül, amikor az utasításokat a másodlagos gyorsító tárból vagy a memóriából az L1 szintő gyorsító tárba írják. Ennek során ún. elıdekódoló bitekkel egészítik ki az utasítást. Mit jelent a szuperskalár kibocsátási ráta és kibocsátási politika? ⇒ Kibocsátási ráta: megadja a processzor által ciklusonként kibocsátható vagyis a végrehajtó egységekhez továbbítható utasítások számát. ⇒ Kibocsátási politika: meghatározza a függıségek kezelését. Lehet adat és vezérlésfüggıség. Milyen kezelési módjai vannak szuperskalár processzoroknál az adat és a vezérlésfüggıségeknek? • Adat: áladatfüggıségeket regiszterátnevezéssel megszünteti • Vezérlés: ⇒ blokkolással: processzor felfüggeszti az utasítás kibocsátást a feltétel kiértékeléséig ⇒ spekulatív elágazáskezeléssel: processzor valamilyen módszerrel megbecsüli az elágazási utaístás kimenetét.
70
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A22. A félvezetı technológiák fejlıdésének gazdasági hatásai a számítógép iparra. Az elektromos számítógépeket 1940 környékén kódfejtésre használták. Mint szinte minden jelentısebb találmányt a félvezetıket is a hadiiparnak köszönhetjük. A régi számítógépek mérete több szobányi, fogyasztásuk többszáz kW volt. Ezek a számítógépek elektroncsöveket tartalmaztak. Az elektroncsövek viszont a kezdetekben 5-10 perc után kiégtek, így az akár 1000 csövet tartalmazó gépek alkatrészeit a gyakorlatban egyfolytában cserélni kellett. Ezért hosszabb számításokhoz sem lehetett használni. A 40-es évek végén viszont Angliában véletlenül felfedezték a tranzisztorhatást különbözı anyagokkal való kísérletezés közben. Két féle anyagon jelentkezett: amikor szilíciumon vagy germániumlapon egy varrótőt húztak, a tőn bizonyos helyeken megnıtt a feszültség. A hatást Brattain, Bardeen és Shockley fedezte fel, amiért Nobel-díjat kaptak. A tranzisztorhatás eredménye lett a tranzisztor, mellyel a 60-as években elkezdték tömegesen kiváltani az elektroncsöveket. Ez elıször forrasztott áramkörökben történt, a tranzisztorok (diszkrét) áramkörre forrasztott egységek voltak. A tranzisztort erısítésre lehet használni, 2 lábán halad a jel, a harmadik lábán pedig egy erısebb feszültség keletkezik. A tranzisztor tömeges gyártásával és terjedésével egyre olcsóbbá, megbízhatóbbá és kisebb fogyasztásúvá váltak a gépek. Lassan elkezdhetett otthoni felhasználásra is terjedni a számítógép. A számítástechnikában viszont nem a tranzisztor erısítı hatását használták ki, hanem egy mechanikus alkatrészek nélküli kapunak, elektronikus ki-be kapcsolónak használták: pl. ha egy bináris gépi programkódot kap a processzor, akkor a benne levı tranzisztoroknál a jel a nulláknak és egyeseknek megfelelıen halad a processzorban, aminek eredményeképpen a processzor valahogy viselkedni fog, pl. elindítja a floppy olvasását. A technológiai fejlıdés eredményeképpen az áramkörök méretét elkezdték csökkenteni. Integrált áramköröket készítettek, melyekbe a kezdetekkor többszáz tranzisztort építettek. Az integráltság fokát behatárolandó, egy-egy idıszakot elneveztek az akkori technológiai helyzetnek megfelelıen. Így pl. az iskola egyik oktatóközpontja, az LSI neve a 80-as évekbıl ered: Large Scale Integration: nagyfokú integráltság, azaz egy négyzetcentiméteren százezres nagyságrendő tranzisztor (ma ez tízmillió). Az integrált chipeknek köszönhetıen a gépek mérete nagyon lecsökkent, kapacitásuk többszörös lett, teljesítményfelvételük néhányszáz Watt lett, mivel az integrált áramkörök milliAmpereket fogyasztanak. Így lehetıvé vált például laptopok készítése, amik egy akkumulátorról több órát mőködnek. A technológiai eredményen kívül jelentkezett a közgazdasági hatás is: az árak lementek, az integrált áramkörök olcsók lettek a tömeggyártással. A chipek bonyolultsága ma is másfél évente megduplázódik. A méretek csökkenése miatt egyre növekszik a funkcionális egységek teljesítménye, amit a chipenkénti bitszámmal vagy az 1 cm2 -en elhelyezett tranzisztorok számával mérnek More törvény: Moore-törvénynek nevezzük azt a tapasztalati megfigyelést a technológiai fejlıdésben, mely szerint az integrált áramkörök összetettsége körülbelül évente megduplázódik, ami mára másfél évre módosult és elıreláthatólag 2015-ig fenntartható. A Moore-törvényhez hasonló jelenséget figyeltek meg a merevlemezek egységárra jutó tárolókapacitásának változásában is. A mágneses adattárolási technológiák a félvezetı technológiáknál is gyorsabban fejlıdnek. Ez fıleg a rendelkezésre álló tárolókapacitásban jelenik meg, a merevlemezek sebessége nem növekszik ilyen látványosan. A tárolókapacitás Moore-törvényét Kryder-törvénynek nevezték el. Ez jellemzı ez a számítástechnikai hardverek többi eszközére is. Az árak csökkenésével ezek az eszközök az élet minden területén felhasználásra kerültek. A piac is átalakult már nem fejleszt minden PC gyártó saját eszközöket, hanem a piacról választ egyet az univerzálisan felhasználható egységek közül. Manapság megjelentek olyan gyártók, amelyek csak egy bizonyos egység gyártására specializálódtak, és szinte mindenki tılük vásárol. A ezek a gyártók fıleg kínai gyártók. A kínai vállalatok közös vállalatként mőködnek. A kínai állam csak vegyes vállalatok létrehozását engedi, így ı is pénzt fektet a fejlesztésekbe és tulajdonosává majd haszonélvezıjévé válik a technológiának. Ez oly annyira jövedelmezı konstrukciónak bizonyul, hogy Kína már a legnagyobb tıkekihelyezı lett, és egyes szakértık szerint hamarosan vezetı szerepet tölthet be a világban. Példa: Nemrégiben Amerika az olcsó termékeire védıvám kivetésével fenyegette meg Kínát, amelyre válaszul Kína az amerikai befektetéseinek befagyasztásának és tıkekivonásának lehetıségével válaszolt, valamint megemlítette, hogy dollárban lévı megtakarításait beváltja. Láss csodát, erre a fenyegetésre Amerika meghátrált, hiszen az amerikai gazdaságot megrendítené !!!
71
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A technológiai fejlıdés mai eredményei: - a processzorok órajelét már GigaHerzekben mérjük - a sínsebességek megnıttek - a kapacitás megnıtt (1982: 10 MByte os merevlemez 2007: 1 Tbyte-s merevlemez ) 2004 utolsó negyedévében a processzorok 130 és 90 nm-es technológiával készültek. 2005 végen bejelentettek a 65 nm-es gyártósorokat. Egy évtizede az integrált áramkörök 500 nm-es csíkszélességgel készültek. Egyes vállalatok azon dolgoznak, hogy a nanotechnológia segítségével képesek legyenek 45 nm-es vagy még kisebb csíkszélességő nyomtatott áramkörök elıállítására: az újabb és újabb áramkörgyártási technológiák egyre késıbbi dátumra halasztják a Moore-törvény elırelátható elévülését. Bár a Moore-törvény elıször egy megfigyelést és elırejelzést írt le, minél szélesebb körben lett ismert, annál inkább célként jelent meg az egész ipar számára. A félvezetıgyártók marketing- és kutatórészlegei hatalmas energiákat fordítottak arra, hogy teljesítsék a meghatározott növekedési szinteket, amelyet a versenytársaik vélhetıen el fognak érni, így Moore törvény nem csak megfigyelés maradt, hanem a fejlıdés mozgatórugójává lépett elı A számítástechnika nem minden területe fejlıdik a Moore-törvény szerint. A véletlen eléréső memóriák (RAMok) sebessége és a merevlemezek elérési ideje legfeljebb pár százalékot növekszik évente. Mivel a RAM-ok és merevlemezek kapacitása sokkal gyorsabban növekszik, mint az elérési idejük, a megnövekedett tárolókapacitás intelligens kihasználása egyre fontosabbá válik. Jelenleg sok esetben értelmesnek tőnik a kapacitás feláldozása az elérési sebesség növelése érdekében például elıre kiszámolt indexek által. A gyártóknak jelenleg jobban megéri az így nyert elérési idı növekedés, mint a feláldozott tárolókapacitás. Az exponenciálisan gyorsuló hardver nem feltétlenül jelenti a szoftverek hasonló mértékő gyorsulását. A szoftverfejlesztık termelékenysége csak lassan növekedett az elmúlt évtizedekben, a rendelkezésre álló, gyorsuló ütemben fejlıdı hardverek ellenére. Szoftvereink egyre nagyobbak és összetettebbek lesznek. A Wirthtörvénynek elnevezett jelenség szerint „A szoftverek gyorsabban lassulnak, mint ahogy a hardverek gyorsulnak”. Egy másik általános félreértés szerint a processzorok órajelének nagysága határozza meg a sebességüket. A sebesség azonban függ még attól is, hogy egy órajelciklus alatt hány és mennyire összetett utasítást hajt végre a központi egység. Emiatt az órajelük alapján csak hasonló áramkörök sebességét tudjuk összemérni. Szintén szerepet játszik a sebesség meghatározásában a buszméret és a perifériák sebessége is. Ezért a számítógépek sebességét sokszor elfogultan határozzák meg. Ennek legékesebb példája az Intel és az AMD eltérı számozása.
72
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A23. A mikroelektronikai kutatási eredmények hatása az elektronikai iparra (paraméterek, ár, megbízhatóság, teljesítmény- felvétel, méret univerzalitás). A mikroelektronikáról az 1960-as évek elejétıl beszélhetünk, bár azok az eszközök, hatalmas mérető, borzalmas áramfogyasztású gépek voltak. Azt, hogy a mikroszámítógépek társunkká válhattak a munkában, tanulásban, szórakozásban, a mikroelektronikai eredményeknek köszönhetjük. Mikroelektronikáról azóta beszélhetünk, amióta nem egyenként állítják elı az alkatrészeket és utólagosan forrasztják össze azokat, hanem a hozzájuk tartozó vezetıpályákkal néhány mm2 nagyságú szilícium egykristályban - egyetlen technológiai folyamattal készülnek el. Az utóbbi 50 évben a technológiai fejlıdés igen látványos eredményeket produkált. Az integrált áramkörök elıállításának az ára jelentısen csökkent, ugyanakkor a mőszaki paraméterek (megbízhatóság, teljesítményfelvétel) nagyságrenddel javultak, berendezések egyre univerzálisabbá váltak, méretük jentısen csökkent, ez tette lehetıvé, hogy a mikroelektronika beköltözzön otthonainkba. A mikroprocesszor a tranzisztor után a legizgalmasabb mőszaki újdonság. Nemcsak a digitális elektronikát forradalmasította, hanem igen nagy és egyre növekvı mértékben befolyásolja az élet minden területét. Elég ha csak a mobiltelefonra gondolunk, amely szinte már magában egyesíti a telefont, fényképezıgépet, videólejátszót, zenelejátszót, naptárt, diktafont, rádiót és hamarosan televíziót és a GPS-t is. Még régebben fıleg a hadiipar volt a mikroelektronika mozgató rugója, manapság a fogyasztói társadalomnak köszönhetıen a háztartások serkentik a fejlesztést. Ezen belül is a leglátványosabb fejlıdés szórakoztató elektronikában figyelhetı meg, amely néhány év leforgása alatt hatalmas fejlıdésen esett át. Még pár évvel ezelıtt egy projektor milliós tételnek számított, manapság már 100 ezer forintért beszerezhetı és megjelent a televíziózásban a plazma és lézer technológia, sıt hamarosan a nano (SED) technilógia is. Hamarosan olyan háztartásokban élhetünk, ahol a hőtıszekrény magától megrendeli a például a sörünket. Szerintem van hátránya ennek a rohamos fejlıdésnek is, hiszen ezen eszközök élettartama is csökkent. Még régebben egy telefon akár 5-6 évig is használható marad, manapság jó, ha 2-3 évig használhatjuk készülékünket. Fıleg az akkumulátorok mondják fel a szolgálatot 1,5-2 év után. De más példát is mondhatnánk, hiszen a mai televíziók sem bírják akár 20 évig, ennek fı oka a termék életciklus. Ez manapság a gyors fejlıdésnek köszönhetıen igen rövid. Ha maradunk a telefonos példánál, akkor a gyártók abból indulnak ki, hogy 2 két év alatt úgy is annyit fejlıdik a telefonok tudása, hogy 2 év elteltével lecseréljük majd, ezért nincs értelme olyan készülékeket gyártani, amely hosszabb távon is üzemképes marad.
73
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B1. Az algoritmus és program fogalma, jellemzıi. Algoritmusleíró eszközök. Moduláris programozás. A program fejlesztésének fázisai. Magasszintő, alacsony szintő programozási nyelvek. Szintaktika, szemantika. Algoritmus: Olyan utasítások halmaza, melyek egy feladat megoldásához vezetnek. Jellemzıi: - lépésekbıl áll (elemi tevékenységekbıl, instrukciókból, utasításokból) - végrehajtása lépésenként történik - a megtett lépések sorozatát folyatatnak (process) nevezzük - a lépésnek egyértelmően végrehajthatónak kell lennie (processzor miatt) - vannak bemenı (input) adatai, melyeket felhasznál - legalább egy kimenı (output) adatot produkálnia kell - véges számú lépésekben megoldhatónak kell lennie - hatékony (Az instrukciók legyenek könnyen követhetıek, pontosak, egyszerőek, és azokat minél rövidebb idı alatt végre lehessen hajtani.) - elronthatatlannak kell lennie Program: Egy számítógép által érthetı nyelven megírt algoritmust programnak nevezünk. Jellemzıi: - összetett lépésekbıl (algoritmus) áll (mélysége függ a programnyelv lehetıségeitıl, a már megalkotott elemi tevékenységtıl, utasításoktól) - az utasítás végrehajtásának mindig van tárgya = adatok (adatok azon tulajdonságainak figyelembe vétele, ami a feladat megoldásához szükséges = absztrakció) - célja van (az utasításnak) - felhasználóbarátnak kell lennie Algoritmus leíró eszközök: Pl.: Pszeudo kód, Folyamatábra, Struktogram (szerkezet diagram), Jackson ábra
Moduláris programozás azt jelenti, hogy a programot részfeladatokra bontjuk, az egyes részeket külön programban dolgozzuk ki, ezeket a független modulokat lefordítjuk, és a végsõ programban összeépítjük õket. A Pascal moduljai a unitok: minden unit egy független csomag, melyben eljárások, függvények, típusok, konstansok és változók (a továbbiakban röviden: eljárások) vannak. Ha egy program deklarációs részében szerepel a USES unit deklaráció, a program felhasználhatja a unit eljárásait, mintha csak õbenne lennének deklarálva. Szoftver fejlesztésének fázisai: Analízis Tervezés Kódolás Tesztelés Analízis: -
felmérjük a helyzetet, (mire van szükség? mik a lehetıségek? megvalósítható-e? mik a célok?) idı és költségbecslés problémát definiálni kell
A beviteli (input) adatok elemzése: • Mik az input adatok, milyen a beviteli formájuk? • Mik a bevihetı értékek? • Milyen módon kell befejezni a bevitelt? • Vannak valamilyen speciális megszorítások, vagy feltételek? • Milyen kapcsolatok vannak a beviteli adatok között?
74
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
A kiviteli (output) adatok elemzése: • Milyen adatokat kell megırizni, mennyi adatról van szó? • Mely adatokat kell megjeleníteni? • Hogyan tudjuk ezeket elıállítani? Tervezés: Feladata hogy az analízis során összegyőjtött információkat és adatokat alapul véve logikailag véglegesen kialakítsa az adatstruktúrákat és az adatokon manipuláló algoritmusokat. Módszerek: - moduláris programozás (legrégebbi) - aztán Jackson féle programtervezési módszer - manapság az objektum orientált módszer Kódolás: Ha terv elkészült, akkor jöhet a kivitelezése, egy adott programnyelven. Dokumentációja a forrásnyelvi lista. (programterv alapján készül, áttekinthetı, olvasható, tömör, egyértelmő megjegyzéssekkel) szintaktikai / alaki hiba = a program nem felel meg az adott nyelv szabályainak, elírás, zárójel hiánya stb. Tesztelés: Ha készen vannak az elızıek, akkor megvizsgáljuk a programot. szemantikai (bug) / tartalmi hiba: a program lefordul, elindul, de nem azt csinálja, amit kell, esetleg leáll. Ellenırizzük • Pontosan úgy mőködik-e a program ahogy az feladat leírásban szerepelt? • Nem lehet-e elrontani? • Elég hatékony-e? • Biztonságos-e a használata? • Felhasználó barát-e? Magasszintő-alacsonyszintő programozási nyelvek: Az alacsonyszintő nyelveknek nevezzük a számítógéphez közelálló nyelveket, pl. gépi kód, assembly. Egy alacsony szintő nyelveknek több hátrányuk is van: a programozónak sokat kell dolgoznia; valamint ezek gépenként különböznek, ezért CPU-nként különbözı programot kell írni. Így a program nem hordozható. A magas szintő nyelvek jobban hasonlítanak egymáshoz, és az emberi gondolkodáshoz. Egy magasszintő forrásprogramból már ránézésre is sokat ki lehet olvasni. A magasszintő nyelvben a programozónak csak használni kell a felkínált magasszintő utasításokat, a fordító behelyettesíti azokat gépi kódú utasításokkal.
75
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B2. A típus és változó fogalma. Adattípusok osztályozása. Kifejezés, a kifejezés kiértékelése. Utasítás. Eljárások, függvények, paraméterátadás. Lokális és globális változók, érvényességi kör, a változó életciklusa. Változó: = program adata (=lefoglalt memóriaterület, ami értéket vehet fel, ez az érték a program futása közben változhat) Különbözı tulajdonságaik alapján csoportosíthatjuk, mint például: típusa, érvényességi köre, életciklusa vagy létrehozása alapján. Típus: = változó tulajdonsága, amely meghatározza a hozzárendelhetı értékek halmazát. Vannak a rendszerbe beépített (standard) típusok, valamint mi is létrehozhatunk újabbakat, melyet deklarálni kell. A var részben csak már ismert típusú változókat deklarálhatunk, az új típusok definiálása a - type - paranccsal történik. Típus szerinti csoportosítás: - egyszerő o egész szám (Integer) o karakter (Char) = ASCII karakter o logikai (BOOLEAN) - összetett o változók sorozata (=szekvenciális), pl.: karakterlánc (String) o tetszıleges típusú adatok halmaza pl.: Rekord o tulajdonságaik alapján csoportosított adatok pl.: tömb vagy tábla INTEGER típus Egész számok halmaza. A Pascal nyelv hat féle egész típust ismer: byte (=0…255), word (=0…65.535), shortint (=-128…127), integer (=-32.768…+32.767), longint (-2.147.483.648…2.147.483.647), comp (=-2 a 63.-on…+2 a 63.-on-1). Mőveletek: összeadás (+), kivonás (-), szorzás (*), egész osztás (div), maradék elıállítása (mod), osztás (/), valamint a relációs mőveletek: nagyobb (>), nagyobb vagy egyenlı (>=), kisebb (<), kisebb vagy egyenlı (<=), egyenlı (=), nem egyenlı (<>). CHAR típus Alapvetıen kétféle szöveges típus van: a char (=karakter) és a string (=karakter lánc) típus. A string-ek egy típuscsaládot alkotnak, mivel hosszúságuk szerint többféle típusú stringet különböztetünk meg. A szöveges típusok közös jellemzıje, hogy alkotóelemeik karakterek, az ASCII karakterkészlet elemei. BOOLEAN típus Más néven logikai adattípus. Csupán két konstans tartozik hozzá: a true (igaz) és a false (hamis). A logikai konstansok is sorrendbe állíthatók: false < true. Igen fontos, hogy egy relációs mővelet mindig boolean típusú értéket állít elı. Csak logikai értékekre alkalmazható mőveletek: and (logikai "és", kétoperandusos mővelet), or (logikai "vagy", kétoperandusos mővelet), not (logikai "nem", egyoperandusos mővelet). RECORD típus A rekord olyan strukturált típus, mely adott számú és típusú komponensbıl épül fel. A típus definiálását a Record kulcsszó vezeti be, a mezık felsorolása után pedig az End szó zárja. A deklaráció a type részben történik. A rekord típus alkalmazása többnyire a háttértárakhoz kapcsolódik. A rekord tulajdonképpen egy összetartozó információ köteg, amelyre hivatkozhatunk, mint egészre és hivatkozhatunk bármely összetevıjére külön-külön is. Az összetevık egymástól függetlenül tetszıleges típusúak is lehetnek. A rekordelemre névvel hivatkozunk. Kifejezés: Változók és alapmőveletek összessége. Egy kifejezés operandusokból, és operátorokból áll (pl. a+5, ahol az “a” és “5” operandus, a “+” operátor) A kifejezés állhat egyetlen operandusból is, és bármelyik lehet egy újabb kifejezés. Vannak egy ill. kétoperandusos mőveletek. Kifejezés kiértékelése (=mőveletek prioritása): • Legmagasabb prioritása az elıjeleknek van, valamint a NOT mőveletnek, ezek egyoperandusos mőveletek. • Másodsorban a szorzó mőveletek értékelıdnek ki (*, /, DIV, MOD, AND, SHL, SHR) • Ezek után következnek az összeadó mőveletek (+, -, OR, XOR) • Legkisebb prioritásúak a hasonlító mőveletek (=, <, stb.) • Az egy csoportba felsorolt mőveletek egyenrangúak, ugyanaz a prioritásuk. Egyenlı prioritás esetén balról jobbra szabály érvényes
76
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Utasítás: Az utasítás a programnyelv olyan értelmezhetı eleme, amely mőveletek leírására vagy kijelölésére alkalmas, és a nyelven belül rendszerint önálló egységet képez. Egy utasítás tipikusan a következı információkat tartalmazza: - milyen mőveletet kell elvégeznie a processzornak, - hol vannak a mővelet operandusai az utasításban, a tárban, ill. annak melyik rekeszében vagy melyik regiszterben, - hova kell elhelyezni a mővelet eredményét. A programutasítások tartalmuk szerint is csoportosíthatók: pl. logikai-, vezérlı-, adatátviteli-, ugróutasítások Részprogramok (alprogramok): Egy adott probléma megoldásának a során célszerő, ha programunkat jól elkülönített, zárt egészet alkotó részprogramokból építjük fel. Ezeket a részprogramokat nevezzük alprogramoknak. Egy alprogram létrehozása akkor válik szükségessé, ha egy tevékenység a program futása során többször elıfordul vagy egy túl nagy programot a jobb olvashatóság kedvéért tagolni szeretnénk. Az alprogram az input adatokat (kivétel a beolvasás és a kiírás) a fıprogramtól kapja és az eredményt is annak adja vissza. Ilyen alprogram a függvény és az eljárás is. Ezeket egy külsı blokkból meg lehet hívni, egy eljárás-utasítással (illetve függvényutasítással). Ekkor az alprogram végrehajtásra kerül, majd a végrehajtás folytatódik annál az utasításnál, amely az alprogram meghívását követi. A függvényt az különbözteti meg az eljárástól, hogy van egy visszatérési értéke, amelyet visszaad annak a blokknak amelybıl meghívtuk. A standard eljárások (függvények) azok, melyet a programozási nyelv definiál, míg létezhetnek felhasználói eljárások, melyet a felhasználók (programozók) hoznak létre. Eljárás: Az eljárás logikailag összetartozó tevékenységek (utasítások) összessége, melyet meghívhatunk az eljárás nevére való hivatkozással. Eljárás nem szerepelhet értékadó utasítás jobb oldalán, azaz nem tudunk értéket adni neki. Eljárást akkor írunk, ha: • egy-egy hasonló feladatot többször akarunk elvégezni a programban, • a program átláthatóbbá válik ettıl. Elınyök: • Módosításkor, javításkor csak egy helyen kell belenyúlni a programba, • Az általános célú eljárásokat késıbb újra fel lehet használni. Az eljárás egy olyan alprogram, amely egy elıírt mőveletsort végez el. Az eljárással több eredményt is elıállíthatunk, ellentétben a függvénnyel, mely csak egyetlen értéket határoz meg. Az eredményeket különbözı kimeneti paraméterekben helyezhetjük el. A formális paraméterlista az eljárásnál elhagyható, de ha megadtuk, akkor az aktuális paraméterlistának meg kell egyeznie a formális paraméterlistában felsoroltakkal. Az eljárás segítségével egy programrész vagy egy teljes program egy másik programba egy utasítással beépíthetı. Elıször deklarálni kell az eljárást, majd a deklarált eljárás a programból hívható az úgynevezett eljáráshívás utasítással. Az eljárás szerkezete hasonló a program szerkezetéhez. Különbség csak az eljárás fejében van és a záró „End” után pontosvesszıt írunk pont helyett. Egy eljárás végrehajtásánál nagy szerep jut a veremnek, mert itt tárolódik az eljárás összes lokális változója. A rendszer az eljárásba való belépés elıtt a veremre helyezi a visszatérési címet, hogy az eljárásból való kilépéskor majd tudja hova kell visszatérnie. A veremszegmens ideiglenes adatok tárolására szolgáló memóriarész. Az adattárolás veremszerően mőködik, azaz elıször az utoljára betett adatot tudjuk kivenni. Ha a verem megtelik a program futási hibával leáll. Függvény: A függvény olyan eljárás, mely egy értéket ad vissza egy elıre meghatározott típus szerint. A függvény sokban hasonlít az eljáráshoz, azzal a különbséggel, hogy egy értéket ad vissza, melynek elıre meghatározott típusa kell legyen. A visszaadott értékre a függvény azonosítójával hivatkozunk. A visszaadott érték típusa csak elıre definiált típus vagyis típusazonosító lehet. A függvény egy olyan programrész, amely adott bemeneti paraméterekbıl egyetlen értéket számít ki, és azt hozzárendeli az azonosítóhoz. A neve egyben egy változó is, amelynek értékét maga állítja elı a végrehajtás során. A függvény azonosítója egy érték, a függvény visszatérési értéke. Az eljárással ellentétben a függvény kifejezésekben is használható, pl. értékadó utasításban a jobb oldalon. A függvény deklarációs része ugyanaz, mint az eljárásé. A függvény blokkjában a függvény-azonosítónak értéket kell adni, ez lesz a függvény visszatérési értéke. Értékadás nélkül a függvény definiálatlan lesz.
77
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Mind az eljárások és mind a függvények önmagukból meghívhatók. Ezt a hívást nevezzük rekurzív hívásnak. Ebben az esetben a visszatérési címek és a változók újból a verembe kerülnek, tehát fennáll a veszélye annak, hogy a verem túlcsordul. Rekurzív hívás esetén ezért meg kell adni a lehetıséget arra, hogy a verem kiürüljön. Standard és felhasználói eljárások: Standard eljárások az úgynevezett beépített vagy elıre definiált eljárások. Pl.: - Adatállomány kezelı eljárások: RESET(F), REWRITE(F), READ, WRITE, READLN, WRITELN, - Dinamikus tárfoglaló eljárások: NEW(P), DISPOSE(P). A felhasználói eljárások alatt azokat az alprogramokat illetve függvényeket értjük, amelyeket a felhasználó készít el általában a beépített függvények illetve eljárások segítségével. Paraméterek, paraméterátadás Paraméterek: az eljárásoknak (függvényeknek) átadhatóak különbözı értékek, melyet azok felhasználhatnak. - formális paraméter: az eljárásfej deklarálásakor a paraméterlistában meghatározott - aktuális paraméter az, amelyet az eljárás vagy függvény ténylegesen átvesz Az aktuális paraméterek típusának rendre meg kell egyezniük a formális paraméterlistában megadottakkal. Paraméter átadás, átvétel: A paraméter átadás/átvétel szempontjából megkülönböztetünk értékparamétert (érték szerint átadott) és változó (cím szerint átadott) paramétert. Az értékparaméterek értéke nem változtatható meg az eljárásban, míg a változó paraméterek értéke igen. - Cím szerinti paraméterátadáson azt értjük, hogy a paraméterek a külsı ill. belsı blokkokban fizikailag ugyanazokat a változókat tartják, a tárban is ugyanazon a címen találhatók. Így az alprogramban az ezeken a változókon végrehajtott bármilyen mővelet megváltoztatja a hívó programban is e változók értékeit. Az ilyen típusú paraméterátadás deklarálásakor a paraméter elıtt a ‘var’ szó áll. (Procedure(var a1,a2 : word);) - A paraméterátadás másik módja az érték szerinti paraméterátadás. Ez azt, hogy az aktuális és a formális paraméterek külön helyet foglalnak a tárban, más változókat jelentenek. Ezek a változók az adott eljárásban lokálisak, tehát értékeik megváltozása nincs hatással az aktuális paraméterekre, amelyek az alprogram aktivizálása után is megtartják az eredeti értéküket. A változókat csoportosíthatjuk továbbá: Érvényesség kör (Láthatóság) szerint - Lokális: csak a program adott részérıl érhetıek el, a program más részérıl ezekre nem tudunk hivatkozni. Ezek a stacken kapnak helyet. - Globális: a program bármely részérıl elérhetıek. Ezek külön adatszegmensben kapnak helyet. vagy Életciklus (Élettartam) szerint - Dinamikus: Az adott függvényen belül létezı, és minden meghíváskor létrejövı változók, valamint a dinamikus utasításokkal foglalt változók, melyek a heap-en kapnak helyet. - Statikus: A program betöltıdésekor létrejövı, és a program futásának idején létezı változó.
78
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B3. Vezérlıszerkezetek: szekvencia, szelekciók, iterációk. Strukturált program. Strukturált tervezés. A tervezés lépései. Az algoritmus (lépéssorozat), olyan elıírás, amely szerint valamely feladat véges számú lépésben megoldható. Egy feladatnak a számítógépen való megoldása érdekében a feladatot jól definiált elemi lépések sorozatára bontják. Az algoritmust elıre meg kell tervezni, hogy jól használható, áttekinthetı és szilárd szerkezető legyen. A probléma megoldása tulajdonképpen a részproblémák helyes sorrendben való megoldását jelenti. Szekvencia (összetett utasítás) A szekvencia egy utasításcsoportot (összetett utasítást) jelent, melyen belül az utasítások egymás után (szekvenciálisan) kerülnek végrehajtásra. A fıprogram is egy összetett utasításnak tekinthetı. Szelekció A szelekció a program végrehajtását egy feltételtıl függıen elágaztatja, felkészítve így a programot a lehetséges esetek kezelésére. - Az egyágú szelekció (IF..THEN) a megadott feltétel teljesülése esetén végrehajt egy utasítást (vagy utasítássorozatot), egyéb esetben pedig kikerüli a feltételes részt és folytatja a program szekvenciális végrehajtását. - A kétágú szelekció (IF..THEN..ELSE) azt jelenti, hogy ha teljesül a megadott feltétel, akkor a hozzá kapcsolódó tevékenységet kell végrehajtani, egyébként egy másikat. Az elágazás után pedig folytatódik a program szekvenciális végrehajtása. - Többágú szelekció (IF..THEN..ELSE IF és CASE) esetén a feltételek közül legfeljebb egy teljesülhet, ha az egyik teljesül, a többi már szóba sem jöhet, tehát a feltételek egymástól függenek. Iteráció Az iteráció az utasítások ismételt végrehajtását jelenti. - Elöltesztelı ciklus (WHILE..DO) esetén a program még a ciklusba való belépés elıtt megvizsgálja a belépési feltételt, és ha ez teljesül, a ciklusmag végrehajtódik. A ciklusmag ismételten végrehajtódik, amíg a belépési feltétel teljesül. Ha a feltétel nem teljesül, akkor a vezérlés a ciklus utáni utasításra kerül. - Hátultesztelı ciklus (REPEAT..UNTIL) esetén a ciklus magja egyszer mindenképpen végrehajtódik, majd a ciklus végén történik egy feltételvizsgálat, ami eldönti, kiléphetünk-e a ciklusból, vagy nem. - Növekményes ciklus (FOR) esetén a ciklusmagot a ciklusfeltételben meghatározott számszor hajtjuk végre. A számot egy kezdı- és egy végértékkel adjuk meg, a ciklus a megadott intervallumon belül egy ciklusváltozót léptet, s ha ez eléri a végértéket, a ciklus befejezıdik. A FOR tehát egy elöltesztelı ciklus, ahol elıre lehet tudni a végrehajtások számát. Strukturált program: Az olyan programot, amely kizárólag szekvenciákból, szelekciókból és iterációkból építkezik, strukturált programnak nevezzük. A strukturált programozásban a ciklusokból való kiugrás fogalma ismeretlen. Ebbıl következik, hogy a program minden szekvenciájának és így az egész programnak is egyetlen belépési és kilépési pontja van. Ennél fogva a program lényegesen áttekinthetıbb. Strukturált tervezés: A strukturált tervezés lényege, hogy a programot felülrıl lefelé, funkcionálisan egyre kisebb lépésekre (modulokra, rutinokra) bontjuk. A strukturált tervezés módszerei: A programtervezés feladata hogy az analízis során összegyőjtött információkat és adatokat alapul véve logikailag véglegesen kialakítsa az adatstruktúrákat, és az adatokon manipuláló algoritmusokat. Hogy milyen tervezési módszert választunk, az a következıktıl függhet: • A számítástechnika mely korszakát éljük • Milyen gépre készül a program • Mekkora a megoldandó feladat • Milyen módszerek állnak rendelkezésre • Milyen a tervezı csoport informáltsága • Milyenek a tervezı csoport lehetıségei, szoftverekben, felkészültségben van-e anyagi fedezet • Mi a fınöki utasítás A programtervezés alapja a dekompozició. A feladatot részekre kell szedni, a részeket meg kell valósítani, majd azokat össze kell rakni, hogy együtt mőködhessenek.
79
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Hosszú ideig a moduláris programozás volt a jelszó, a lényege, hogy a programot felülrıl lefelé (top-down) funkcionálisan egyre kisebb lépésekre (modulokra, eljárásokra) bontjuk. Ezt váltotta fel a Jackson féle programtervezési módszer, majd manapság az objektum orientált módszer hódit. A tervezési szakasz dokumentációja a programterv. Egy bonyolultabb algoritmust nem lehet fejben megtervezni, ahhoz eszközök kellenek. Ha ötleteinket saját egyéni módszerrel vetjük papírra, azt mások nem fogják megérteni. Olyan eszközre van szükség, mely általánosan elfogadott és környezetünkben más emberek is ismerik, használják, pl. folyamatábra, struktogram, Jackson-ábra • Struktogram: A programozás legújabb vázlata, mely egyre inkább felváltja a folyamatábra használatát. Segítségével bonyolult programozási feladatok is áttekinthetıen ábrázolhatók. A software fejlesztıjét strukturált programozásra kényszerítı segédeszköz, mely a gyakorlatban egy vagy több struktúrablokkból áll. •
Jackson ábra: - A szóba kerülhetı események rendezése, elemi eseményekre bontása. - Az események sorszámozása a bekövetkezés sorrendjében. - A programnyelvtıl függetlenül végrehajtható. - Segít a logikai és szintaktikai hibák kizárásában.
80
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B4. Egyszerő algoritmusok: adatok feldolgozása végjelig, megszámlálás, összegzés, átlagszámítás, minimum- és maximum-kiválasztás, menükészítés, keresés, rendezés, karbantartás Adatok feldolgozása (végjelig): Elıfordul, hogy logikailag összetartozó adatokat kell egymás után beolvasni, és azokat egy ciklusnak valamilyen módon feldogozni. Képernyırıl való bevitte esetén a ciklus egy adott végjelig megy mely megvalósítására két lehetıség kínálkozik. Vagy minden egyes csoport bevitele elıtt megkérdezzük a felhasználót, hogy akar e bevinni adatokat, vagy az elsı adatnál megjelenítjük a végjel beütését. Azt mindig szem elıtt kell tartani, hogy a felhasználót ne dolgoztassuk feleslegesen. Megszámlálás: Ebben a feladattípusban a sorozat valamilyen adott tulajdonsággal rendelkezı elemeit számoljuk meg. Megkülönböztetünk - ismert mennyiségő elem esetét (akkor a ciklus 1-tıl N-ig) vagy - ismeretlen mennyiségő elem esetét (Ciklus amíg van elem) Összegzés: Az olyan feladatokat, melyben a sorozat elemet valamilyen módon győjteni kell, összegzéses feladatoknak nevezzük. Ebbe a csoportba sorolható a különbség és szorzatképzés is. Megkülönböztetünk - ismert mennyiségő elem esetét (akkor a ciklus 1-tıl N-ig) vagy - ismeretlen mennyiségő elem esetét (Ciklus amíg van elem) (megkeressük a feltételeknek megfelelı elemeket és összeadjuk) Átlagszámítás: Az átlag kiszámításánál egyszerre két dolgot is győjtünk – a sorozat összegét és az elemek számát. E két győjtött érték hányadosát kell képezni, de figyelnünk kel arra, hogy átlagot csak akkor számítsunk, ha volt átlagolandó adat. Ellenkezı esetben nullával osztanánk, ami futási hibát eredményezne. Min-Max számítás: E feladatcsoportban a sorozat legkisebb ill. legnagyobb elemét kell meghatároznunk. Maximum kiválasztásnál az algoritmus lényege, hogy a sorozat elemeit sorban megvizsgálva mindig megjegyezzük az addigi maximális elemet. Ha egy annál nagyobb elem érkezik, akkor a megjegyzett elemet ezzel kicseréljük. Induló értékként egy adatot meg kell adnunk. Amelyet az érkezı elemek “lehagyhatnak”. Ez vagy az elsı elem, vagy egy annyira kicsi elem, amely biztosan kisebb az összes lehetséges elemnél. A feldolgozás végén (amennyiben a sorozatnak volt legalább egy eleme) a megjegyzett elem az összes szám maximuma lesz. Ugyanez használható a minimális elem keresésére, de itt a hasonlítás fordítva történik, az induló érték nagy kell hogy legyen. Ha tudjuk elıre a sorozat elemeinek a számát és ez nem nulla: Megkülönböztetünk - ismert mennyiségő elem esetét (akkor a ciklus 1-tıl N-ig) vagy - ismeretlen mennyiségő elem esetét (Ciklus amíg van elem) Menükészítés: Amikor menüt készítünk, ha választási lehetıségeket kínálunk fel a felhasználónak, majd várjuk az erre való reagálását. A lehetıségeket ismételten felkínáljuk egészen addig, amíg a felhasználó úgy dönt, nem akar több lehetıséget igénybe venni, vissza akar lépni a program egy elızı szintjére, vagy be akarja fejezni a programot. Ha a felhasználó nem a kilépést választotta, akkor válogatni kell a programrészek között a felhasználó válaszának megfelelıen. Menükészítés tipikusan hátultesztelıs feladat. (Pozicionálás és menü képernyıre kiíratása a választási lehetıségekkel; választás beolvasása) Keresés: E feladatcsoportban a sorozat elemei között egy adott tulajdonságú elemet keresünk. Az algoritmus eldönti, hogy van-e ilyen elem a sorozatban. (Megvan =igaz, ha van ilyen elem): Megkülönböztetünk - ismert mennyiségő elem esetét (akkor a ciklus 1-tıl N-ig) vagy - ismeretlen mennyiségő elem esetét (Ciklus amíg van elem)
81
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Buborék rendezés: A rendezés lényege, hogy az egymás melletti elemeket megcseréljük a feltételtıl függıen. Tehát ha növekvı sort szeretnénk elıállítani akkor végig kell menni az elemeken és meg kell nézni, hogy az aktuális elem kisebb-e mint az elızı. Ha kisebb, akkor meg kell a kettıt cserélni. Ez egy körben nem oldja meg a rendezést, tehát többször meg kell ismételni. Maximum az elemszám-1 szer. Tehát tömb esetében két for ciklussal megoldható a probléma Példa: http://www.remenyikzs.sulinet.hu/Segedlet/ALGORITM/Buborek.htm Beszúrásos rendezés: Másnéven beillesztéses rendezés lényege a következı: hasonlít arra a módszerre, ahogy az ember leosztás után elrendezi kezében a kártyákat. Feltételezzük, hogy van egy szigorú rend, mely szerint a kártyákat sorba kell tenni. Felvesszük az elsı kártyát. Majd felvesszük a másodikat és a helyére tesszük. Aztán felvesszük a harmadikat, helyére tesszük, és így tovább. Minden esetben megkeressük a kérdéses kártyának a helyét a már rendezett sorban és oda beszúrjuk Példa: http://users.iit.uni-miskolc.hu/~wagner/ProgAlapjai/Pr09ea.pdf Rendezetlen tömb karbantartása: • Felvitel: az új elemet –ha még nincs ilyen a tömbben- az utolsó elem után tesszük. A nyilvántartásban szereplı elemek számát eggyel növeljük. • Törlés: Megkeressük a törlendı elem helyét a tömbben. Az elemet úgy töröljük, hogy az utolsó elemet egyszerően erre az elemre rámásoljuk. A nyilvántartásban szereplı elemek számát eggyel csökkentjük. • Módosítás: Ha van ilyen elem, akkor annak adatait (azonosítót kivéve) egyszerően felülírjuk. Rendezett tömb karbantartása: A tömböt állandóan rendben tartjuk: új elemet mindig úgy visszük fel, hogy azonnal bekapcsoljuk a rendezett sorozatba, már meglévı elemet pedig úgy töröljük ki, hogy azt azonnal lekapcsoljuk a rendezett sorozatról. (mővelet után is rendezett marad) • Felvitel: Megkeressük az új elem helyét a tömbben. Az elemeket onnan kezdve eggyel feltoljuk és az így keletkezett üres helyre beírjuk (beszúrjuk). A nyilvántartásban szereplı elemek számát eggyel növeljük. • Törlés: Megkeressük a törlendı elem helyét a tömbben, majd az elemeket onnan kezdve eggyel letoljuk. A nyilvántartásban szereplı elemek számát eggyel csökkentjük. • Módosítás: Ha van ilyen elem, akkor annak adatait (azonosítót kivéve) felülírjuk.
82
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B5. Az állomány fogalma. Állományok fajtái, felépítésük, feldolgozásuk. Állományok szervezése: fizikai és logikai rendezettség, hozzáférési módok. Karbantartási mőveletek. Állomány: adatok, programok halmaza, megkülönböztetünk: - Fizikai állomány (külsı állomány) = file, amiben a lemezen programokat és adatokat tárolunk. Általában van kiterjesztése, ami utal az állomány típusára. (pl. tételek.doc) - Logikai állomány: az a változó(k), amelyre a programból hivatkozunk a (ahogy a felhasználó vagy a program „látja” a fizikai állományt). Fizikai állomány Állományok felépítése (Katalógus): Az állományokat katalógusokban (directory, könyvtár) tároljuk, melyek a lemezeken fa struktúrában helyezkednek el. Minden lemeznek saját katalógus struktúrája van, melyek logikailag egyformák, függetlenül attól, hogy melyik lemezrıl van szó. A struktúra legfelsı szintjén lévı katalógus a lemez formázásakor jön létre (gyökérkönyvtár). Ez alá a késıbbiekben újabb és újabb alkatalógusokat lehet létrehozni, azokban – és természetesen a fıkatalógusban is – állományokat elhelyezni. Turbo Pascalban mindig van egy „aktuális” katalógus, „ahonnét látjuk a világot” és míg másként nem rendelkezünk, minden parancs erre a katalógusra hivatkozik. Indításkor általában a fıkatalógus az „aktuális”, de bármikor átválthatunk egyik katalógusból a másikba és természetesen a katalógusok meg is szüntethetık. Állományok felépítése (Útvonal) A lemez egy katalógusát útvonal (patch) azonosítja. Útvonalat úgy adunk meg, hogy egy adott katalógusból kiindulva leírjuk az útba esı katalógusok neveit, egymástól \ jellel elválasztva. Ez két féle módon történhet: - az aktuális katalógus felhasználható az útvonal kiinduló pontjaként, pl.: \PASCAL\ERZSI - a fıkönyvtárból kiindulva (abszolút módon), pl.: C:\Program Files\Nokia Állományok feldolgozása (pufferelés) Mivel egy program mindig logikai állományt kezel, a logikai és fizikai hozzárendelést minden esetben meg kell tenni még az elsı írás, olvasás elıtt. Az adatforgalom alapelve a pufferelt írás és olvasás, mely a változók és külsı adatállományok között történik. - fizikai adatforgalom: tároló és a puffer között (puffernyi adagokban) - logikai adatforgalom: a puffer és a memória között (a program által megszabott adagokban) Állományok szervezése: A fizikai állomány szerkezetét elsısorban a hozzáférési igények határozzák meg. Ezt jellemzıen a szükséges lekérdezések határozzák meg (pl.: egymás után sorban kellenek az adatok, vagy csak a tulajdonságai alapján leválogatott adatok kellenek). Ehhez kapcsolódóan kell kialakítani a karbantartási funkciókat is: új felvitel, törlés, módosítás. (= rendezett vagy nem rendezett az állomány + ahogy ezeket karbantartjuk) A logikai adatszerkezet a fizikai leképzése. Alapvetı csoportosítása: - Soros szervezés: a fizikai és a logikai állomány között nincs kapcsolat. Az állományban lévı adatokat csak a fizikai tárolás sorrendjében tudjuk felvinni illetve elérni. - Direkt szervezés: A logikai azonosító és a fizikai cím között kölcsönösen egyértelmő megfeleltetés van. Az állomány akármelyik elemét közvetlenül el tudjuk érni, azt írhatjuk és olvashatjuk. A rekord címét elvileg bármelyik címzési móddal megadhatjuk, de a szoftverek többsége a logikai címét támogatja. - Véletlen szervezés: a rekordok azonosítói legtöbbször véletlenszerőek, általában nem képezhetık egy jól meghatározott algoritmus szerint. (de ezzel nem foglalkoztunk a Turbo Pascal-nál) - Indexelt szekvenciális szervezés: indexelt sorozat, ami akár több szintő is lehet. Az egyes rekordok közvetlen elérésére szolgál. Ebben az esetben a rekordokat sorba rendezzük, majd mindegyiket kiegészítjük egy mutatóval, ami az ıt logikailag követı rekordra mutat, végül az így létrejött azonosítókat (= relatív sorszám) eltároljuk egy indextáblán vagy index állományban.
Állományok címzése (fizikai): A lemezre való fizikai írás/olvasás egysége a fizikai rekord, vagy más néven blokk. Ennél kevesebb adatot a ki-, ill. bevitelnél nem lehet kezelni. Amikor a lemezre adatokat írunk, akkor a tárnak egy fizikai címét kell megadnunk akár közvetlenül, akár közvetett módon. A cím megadását a következı címzési módok egyikével tehetjük meg:
83
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor. • • •
Abszolút címzés: Megadandó a lemezegység azonosítója, cilinder, a sav, és a szektor fizikai címe. Relatív címzés: Megadandó egy sávcím és azon belül a fizikai rekord relatív sorszáma. Logikai címzés: Megadandó a fizikai állományon belül a fizikai rekord relatív sorszáma (lásd indexelt szekvenciális szervezés!).
Hozzáférési módok: • Soros hozzáférés: a rekordok elérése a fizikai tárolás sorrendjében történik. • Szekvenciális hozzáférés: A rekordok elérése egy logikai sorrend szerint történik (pl. rendezettség). A szekvenciális feldolgozottságot elérhetjük az állomány megfelelı szervezésével vagy valamilyen szoftver eszközzel, mint rendezéssel. • Közvetlen hozzáférés: A megadott rekordhoz közvetlenül hozzáférünk anélkül, hogy rekordokat sorban be kellene olvasnunk. A rekordokhoz való közvetlen hozzáférést indexeléssel biztosíthatjuk. Az állomány-karbantartás mőveletei: - új felvitel, - módosítás, - törlés Ezek a rendezett és a rendezetlen állományban különbözı módon történnek! Turbo Pascalban alapvetıen használt állományok: - Szövegfile (Text): soros szervezéső karakteres állomány - Típusos file: azonos típusú elemekbıl vagy rekordokból áll - Típus nélküli file: az állomány mérete számít csak, a típus nem Az utóbbi kettı direkt szervezéső = közvetlenül hozzáférhetı bármelyik eleme, nem úgy mint a sorosnál, hol csak egymás után, sorban férhetünk hozzá)
84
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B6. A program és az adatok elhelyezkedése a memóriában. Statikus és dinamikus változók, tárolásuk, hozzáférésük. A mutató fogalma. A dinamikus listák fajtái, karbantartásuk. Modul (egység). A memóriát byte-onként címezzük és a címzéshez regisztereket használunk. A DOS alatt futó programok azonban egész más címzési módot használnak. Kapcsolódó alapfogalmak: - abszolút cím: a memória valamelyik byte-jának (a memória elejétıl számított) fizikai címe - relatív cím: a memória valamely pontjától számított cím - paragrafus: a memória egy (16byte-os) szelete - szegmens: egy vagy több paragrafusból álló folytonos memóriaterület (max. 64KB) A felhasználó által megírt program a memóriában az „Átmeneti programterület”-en foglal helyet, az alábbi részterületekre bontva: - PSP (Programszegmenst leíró blokk) - Kódszegmensek (fıprogi + deklarált unitok); - Adatszegmens (egész program futása során létezı adatok); - Veremszegmens (rendszeradatok ideiglenes tárolása + eljárások és függvények lokális változói); - Átfedési terület (csak overlay esetében: nincs az egész progi a memóriában, csak az éppen futó részek); - Heap (dinamikus változókat itt hozunk létre ill. szüntetünk meg)
PSP: program segment prefix. Ez egy 256 byte-os memóriaterület, melyet az operációs rendszer állít elı az EXE állomány betöltésekor. Kódszegmens: a program jól elkülöníthetı programrészekbıl, unitokból áll, pl. a System, Crt, printer unit. Minden egység lefordított kódja egy külön szegmens, melyet egymás után helyeznek el a tárban. Egy kódszegmens max. mérete 64 kbyte, a programban használt egységek száma elvileg korlátlan. A program futásakor a vezérlés mindig más kódszegmensben van, az aktuális kódszegmens szegmenscímet a processzor CS (code segment) regisztere tartalmazza. Adatszegmens: Az adatszegmens egy közös állandó adatterület. A fıprogram és az összes egység ezt az adatterületet használja statikus (egész program futása során létezı adatainak tárolására. Az adatszegmens tartalmazza a globális változókat és az összes típusos állandot. Mérete max. 64 Kb lehet. Adatszegmens szegmenscímet a processzor DS (Data Segmens) regisztere tartalmazza, mely a program futása során szintén állandó. Veremszegmens: A verem egy LIFO jellegő adatszerkezet, a legutoljára bevitt adatot lehet elıször kivenni. A rendszer adatok ideiglenes tárolására használja, ide kerülnek az eljárások és függvények lokális változói, paraméterei és visszatérési címei. A verem szegmenscíme és mérete a futás során állandó. A szegmenscímet a processzor SS (Stack Segment) regisztere tartalmazza. Átfedési puffer: Ez a terület csak akkor része a programunknak, ha átfedési (overlay) technikát alkalmazzuk. Az overlay technikát nagy programok esetén szokás használni: nem tartjuk bent egyszerre a tárban a teljes lefordított programot, hanem annak csak az éppen futó részeit – a futó programrészek átfedik egymást. Heap: A heap egy dinamikus (állandóan változó) adattároló, jelentése: halom, rakás. A program futása közben dinamikus változókat lehet itt létrehozni, ill. megszüntetni. A teljes heap bármekkora lehet, de egy dinamikus változó mérete itt sem lehet több 64 KB-nál. A Heap veremszerően mőködik, felfelé növekszik. Statikus változó: Globális változó deklarálásakor a fordító a változó számára kioszt az adatszegmensben egy memóriaterületet, lokális változó esetén az eljárás ill. a függvény kódja végzi el a területfoglalást a veremszegmensben. A programozónak semmi dolga a változó helyének, címének meghatározásával, azt a rendszer automatikusan elvégzi. Egy magasszintő nyelvben csak a változó nevére kell hivatkozni, a rendszer a foglalt memóriaterület kódját behelyettesíti a program kódjába. Dinamikus változót program futása során hozunk létre ill. szüntetünk meg. A létrehozott változóra mutatóval hivatkozunk, mely mutató egy 4 byte-os memóriacímet tartalmaz.: a mutatott változó fizikai címet. A változó a heapben tárolódik. Dinamikus változót a New eljárással hozhatunk létre: New (P) (A ’P’ típusos mutató) A változó felszabadítása a Dispose eljárással történik: Dispose (P)
85
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Típus nélküli mutatónak a GetMem(P, méret) eljárással lehet memóriát foglalni, és a FreeMem(P, méret) eljárással lehet azt felszabadítani. Mutató: kétféle létezik típusos és típus nélküli. Típusos esetén a mutatott változónak jól meghatározott típusa van, míg egy típus nélküli mutató által mutatott memóriaterületre nem jellemzı a típus. Mutatókkal nem csak dinamikus változókra lehet mutatni, hanem bármely memóriaterületre. A mutatókat értékadással az lehet irányítani egyik memóriacímrıl a másikra. A listában levı adatelemek össze vannak kapcsolva, minden elem tartalmazza a következı elem mutatóját. A mutatókkal a lista az elejétıl a végéig bejárható. A listaelemek egy adat részbıl és egy mutatórészbıl állnak. Lehet statikus és dinamikus: Statikus lista például egy tömb, melynek elemei rekordok - minden rekord az adatokon kívül tartalmaz egy indexet, mely az ıt követı elem tömbbeli indexe. A statikus lista hátránya, hogy maximális mérete elıre rögzített és így a rendelkezésre álló memória hamar elfogy. A dinamikus lista elemeit szükség szerint hozzuk létre, illetve szüntetjük meg. A dinamikus lista a memóriában annyi helyet foglal, amennyire éppen szüksége van, átengedve a felesleges memóriahelyeket más tárolószerkezetek számára. A dinamikus lista elemei a heapben vannak, azokra mutatókkal lehet hivatkozni. Fajtái: Rendezett lista: a lista elemei valamilyen szempont szerint jól meghatározott sorrendben követik egymást Kétirányú (szimmetrikus) lista: a lista oda-vissza mutatókkal van felszerelve. És így az elemek elıre és visszafelé is feldogozhatok Cirkuláris (zárt) lista: a lista utolsó eleme az elsı elemre mutat, vagyis annak mutatója nem a végjel. A cirkuláris lista mutatói körbeérnek. Dinamikus lista karbantartása: - Bıvítés: lefoglaljuk az új elemnek a helyet, kitöltjük az adatokat, majd felfőzzük a listára. - Törlés: a törlendı elemet lekapcsoljuk a listáról, módosítjuk a lista szomszéd tagjainak mutatóit, majd felszabadítjuk a memóriát. Modul (egység): a fıprogramhoz hozzászerkeszthetı tárgykód (a Pascalban TPU kiterjesztéssel). Modulokra kell bontani a programot, - ha a fıprogram mérete meghaladja a 64 KB-ot; - a fıprogram egy részben áttekinthetetlen; - a program részeinek forráskódja titkosak, vagy felesleges látni ıket;
Sokan felvetették, hogy ez a tétel a DOS-os memóriakezelét részletezi. A PKGDF fórumozó az alábbi kiegészítést készítette a tételhez: Sziasztok! Írok néhány sort az elızıekben felvetett problémához: Igaz, hogy a tétel kidolgozásai DOS alatti memóriaszervezésrıl szólnak, de ez így van rendben, mivel pl. a Java programok gyakorlatilag egy virtuális gépen futnak, amiben teljesen más (nem is annyira publikus) a memória felosztás. Windows alatt (ami már a Win32 kiegészítés, vagy a Windows 95 óta teljesen Védett Módban /Protected Mode/ dolgozik) megint más a memóriahasználat. A lényeg, hogy a DOS alatt futó Pascal programokkal szemléletes elmagyarázni a tételt, ezért nem gond, hogy régi dolgok kerülnek említésre benne. Alapesetben DOS alatt a processzor Real Mode-ban, azaz Valós Módban fut. Ez az az üzemmód, amely kompatibilis az eredeti IBM PC 8088 processzorával. Ilyenkor a memória 1 MB-ig címezhetı, mégpedig úgy, hogy 64 KB-os szegmensek formájában tudjuk egy-egy területét elérni, ezekre a szegmensekre különbözı szegmensregiszterekkel (pl. DS) tudunk mutatni, illetve a kiválasztott szegmensen belüli pontos (offszet) címet egy másik 16 bites regiszterrel adhatjuk meg (a 16 bit ugyebár lefed egy 64 KB-os tartományt). Ezek a szegmensek gyakorlatilag 16 bájtonként "tologatható" ablakok (= lásd. ablaktechnika a regisztertáraknál) a teljes 1 MB-os memórián belül. A szegmens:offszet párosból a fizikai memóriacím úgy áll elı, hogy a szegmens értékét eltoljuk balra 4 bittel, azaz mögé írunk egy 0-t hexadecimális (16-os) számrendszerben, majd ehhez hozzáadjuk az offszetcímet. Például: a verem szegmensregisztere (SS) határozza meg, hogy melyik 64 KB-os terület legyen a veremszegmens, azon belül pedig a veremmutató (SP) adja meg, hogy pontosan hol a verem teteje. A verem tetejére tehát az SS:SP páros mutat. Ha az SS értéke mondjuk 0700h (a "h" bető a 16-os számrendszert jelöli,
86
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
mivel memóriacímeket jellemzıen abban adunk meg), az SP értéke pedig 0100h, akkor így írjuk le a teljes címet: 0700:0100 [h], és a következı fizikai címre mutat: 07100h, konkrét memóriakezelésnél az AU ezt címzi majd meg. Így kerül kiszámítása (szegmensregiszter balra eltolva 1 hexadecimális számjeggyel, azaz 4 bittel + offszet cím): 0700:0100h = 07000h +0100h ------07100h : ezen a fizikai memóriacímen lesz a 1 MB fizikai memórián belül a fenti példa szerint a verem teteje.
A lényeg, hogy hardver szinten egy egységként egy 64 KB-os szegmenst lehet kijelölni a procival egy szegmensregiszter segítségével, emiatt van az a megkötés a Pascal programokban is, hogy a kód- és adatszegmens sem lehet nagyobb 64 KB-nál, hogy mindegyik külön-külön beférjen egy fizikai szegmensre a memóriában, és azon belül már csak egyetlen regiszterrel kelljen mutatniuk az egyes offszet címekre. DOS alatt 0-640 KB-ig tart a konvencionális (általános) memória. A legalján helyezkedik el rendszeradatok után az operációs rendszer kódja és az eszközvezérlık (driver-ek). A szabadon maradó memóriaterület az az üres memória, amit a MEM parancs használatakor is láthatunk. Ide töltıdhet be minden más, amit DOS alól elindítunk, és ugyancsak ebbıl foglalnak el helyet továbbá a rezidens programok (pl. egérkezelı) is. Ha DOS alatt elindítunk egy EXE programot, pl. ami Pascal-ból lett lefordítva, akkor az betöltıdik az elsı üres helytıl kezdve, a (fıprogram) kódszegmensének legelején pedig létrejön a 256 bájtos PSP (Program Segment Prefix), ami különbözı adatokat tárol a program és az operációs rendszer számára. Ez tartalmazza a DOS parancssorban begépelt, a futtatott program számára megadott paramétereket is. E mögé kerül a program kódszegmense. A 64 KB-os határ miatt a különbözı UNIT-ok (a programhoz használt külsı modulok, ez mind külön-külön másik kódszegmenst alkot) más-más szegmensre kerülnek, hiszen mindegyik 64 KB-os mérető is lehet, nem lehetséges egyetlen 64 KB-os memóriaszeletben elhelyezni ıket. Ezután az adatszegmens következik, mely szintén egy külön szegmensre kerül, és ennek a maximális mérete is nyilván 64 KB-os lehet - nem lehetséges több helyet lefoglalni statikus változóknak Pascal-ban. Ismét új szegmensre kerül a program veremszegmense. Ezután következik az átfedési terület (ha szükség van rá), ahová OVERLAY, azaz külsı modulokat tudunk betölteni - mindig éppen azt, amelyikben a futtatni kívánt kódrész van. Ezek jellemzıen .OVL kiterjesztéső állományokba kerülnek lefordításra programkészítéskor, nem pedig az EXE részét képezik. Akkor lehet pl. rájuk szükség, amikor az EXE-be belefordítva az már túl nagy lenne ahhoz, hogy a 640 KB-ból megmaradt szabad konvencionális memóriába beleférjen. Ha a programunk betöltıdött, a mögötte még szabadon maradó teljes konvencionális memóriaterületet HEAPnek nevezzük. A programunk futása alatt ezen a területen hozhatunk létre dinamikus változókat. A .COM kiterjesztéső programok (DOS alatt) szintén nem lehetnek nagyobbak 64 KB-nál. Ez a megkötés ismét a 64 KB-os szegmensméretbıl ered, mivel ezek a programok még nem voltak szegmentáltak, egyetlen szegmensen belül kellett elférnie a kódnak és az adatoknak is. Ha jól tudom, akkor a verem pedig ilyenkor fizikailag az operációs verme. (Windows 98 alatt pl. már más a helyzet, ott a COMMAND.COM is nagyobb 90 KB-nál.) ----A memóriahasználatra vonatkozó része nagyon röviden, leegyszerősítve nagyjából ennyi a tételnek. Államvizsgán ki lehet részletezni a verem mőködését, stb. - ezeket most nem írom le külön, mert másik tételben már szerepelnek, csak ez volt a kérdéses rész.
87
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B7. Adatszerkezetek rendszerezése. Tömb, verem, sor, fa, tábla. Konstrukciós és szelekciós mőveletek. Absztrakt társzerkezetek. Adatszerkezetek rendszerezése: Adatszerkezetek egymással kapcsolatban álló adatok, tulajdonságok, kapcsolatok halmaza. A kapcsolatokban részt vevı struktúraelemeket csomóponti adatoknak szokás nevezni. A csomópontokat körökkel, azok közötti kapcsolatokat pedig nyilakkal ábrázoljuk. Az adatmodell mőködését az objektumok közötti relációk határozzák meg. A kapcsolatok alapján az adatszerkezetek négy fı csoportba sorolhatók: - Asszociatív (ezen belül: tömb, tábla) - Szekvenciális (ezen belül: jelsorozat, verem, sor) - Hierarchikus (ezen belül: fa) - Hálós (ezen belül: irányított gráf, hálózat) Asszociatív adatszerkezetek: a elemek közötti kapcsolatokat az elemek azonos tulajdonságértékei létesítik. Az elemeket e tulajdonságok alapján csoportosítjuk. A kapcsolatok az asszociatív (csoportosítható) adatszerkezetekben a leglazábbak. Asszociatív adatszerkezet a memóriában a tömb, ritka a mátrix és különbözı táblák. A tömb elemeinek elrendezése egy vagy több dimenzió mentén történik. N dimenziós elrendezés leírására az N dimenziós tömb alkalmas. Az egyes elemeknek minden dimenzió mentén index jelöli ki a pozícióját. Az N dimenziós tömbben egy elemet a tömb neve és N darab indexérték azonosít. Tömbdeklaráció: A deklaráció egy nevet rendel a változóhoz és megnyitja a jogot a névnek a programban való használatára. A tömbdeklaráció során az adattömbökhöz is egy nevet kell rendelni, de ezen kívül itt még a tömbelemek számát is rögzíteni kell. A deklarálást Pascalban az Array kulcsszó, a tömb elemtípusát pedig az Of kulcsszó vezeti be. A tömböt azonosító nevet pedig a var részben kell megadni. Tábla: az egydimenziós tömb általánosítása, ahol az adatokat indexeken keresztül érhetjük el. Elemei kulcs (index) és adat párok, ahol a kulcsok egyediek és bármely elem a kulcsán keresztül érhetı el. A táblával kapcsolatos mőveletek központi kérdése az adott kulcshoz tartozó adatok minél rövidebb idı alatt történı megkeresése, és a tábla karbantartása. A táblán értelmezett mőveletek: keresés, beszúrás, törlés, szekvenciális elérés.
Szekvenciális adatszerkezetek: Itt az egyes elemek egymás után helyezkednek el. Mindig van egy kezdı elem, és minden elemet a struktúra egy jól meghatározott eleme követ. A kapcsolat egy-egy jellegő: minden elem csak egy helyrıl látható és minden elem csak egy elemet lát. Olyan esetben használatos, amikor az elemeket sorban kell feldolgozni. Pl.: verem, sor, szekvenciális állomány. Sor: a sor egy szekvenciális adatszerkezet, melybıl mindig a legelsınek betett elemet lehet kivenni (FIFO). Tárolása vektorban és listában egyaránt megvalósítható. Mőveletek: • PUT – elem betétele a sorba, mindig a sor végére • GET – elem eltávolítása a sorból, mindig a sor elejérıl • FIRST – az elsı elem lekérdezése, a sor változatlan marad Alkalmazása: elemek feldolgozása érkezési sorrendben, pl.: billentyőzet- vagy a nyomtatópuffer. Verem: egy szekvenciális adatszerkezet, melynek mindig csak a legutoljára betett elemét lehet látni, illetve kivenni (LIFO). Megvalósítása legtöbb esetben vektor segítségével történik, ekkor az elemszámot természetesen maximalizáljuk. Kell egy mutató, mely a mindenkori verem tetejére illetve az elsı szabad helyre mutat. A veremrıl meg kell tudni állapítani, hogy az üres vagy megtelt, hiszen üres verembıl nincs értelme kivenni, tele verembe pedig nincs értelme betenni elemet. Mőveletek: • PUSH – elem betétele a verembe, mindig a tetejére • POP – elem kivétele a verembıl, mindig a legfelsıt • TOP – legfelsı elem lekérdezése, a verem változatlan marad Alkalmazása: elemek sorrendjének megfordítása, különbözı visszatérési utak megjegyzésére, visszaléptetéses algoritmusok, verem-automaták. Hierarchikus adatszerkezetek: Szerkezetét speciális gráffal, a fával adjuk meg. A struktúraelemek hierarchikusan egymás alá vannak rendelve. A kapcsolatok jellege egy-sok: minden csomópont csak egy helyrıl látható, egy csomópontból viszont sok csomópont láthato: olyan problémák esetén alkalmazható, melyekre jellemzı a tulajdonos viszony ill. a lebontás. Pl.: fa, hierarchikus állomány.
88
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Fa: hierarchikus adatszerkezet, mely véges számú csomópontból áll, és igazak a következık: - két csomópont között a kapcsolat egyirányú, azaz egyik a kezdıpont a másik a végpont. - van a fának egy kitüntetett csomópontja, mely nem lehet végpont. Ez a fa gyökere. - az összes többi csomópont pontosan egyszer végpont.
-
A fának van azonban egy rekurzív definíciója is. A fa üres, vagy A fának van egy kitüntetett csomópontja, ez a gyökér. A gyökérhez 0 vagy több diszjunkt fa kapcsolódik. Ezek a gyökérhez tartozó részfák.
Hálós adatszerkezetek: A hálós adatmodell szerkezetét gráffal adjuk meg, a csomópontok az egyedek, az élek pedig a kapcsolatok. Az egyedeket tulajdonságaikkal írjuk le. Hálós adatszerkezetek esetén bármelyik csomópont bármelyik csomóponttal kapcsolatban állhat. A kapcsolatok sok-sok típusúak. A hálós adatszerkezeteket a belsıtárban irányított gráfnak ill. hálózatnak, a külsı tárolókon sémának nevezik. A relációs adatszerkezetnél a tulajdonságok kapják a fı szerepet: az egyedet táblázattal adjuk meg, oszlopai a tulajdonságok, sorai az egyed értékei. Az adatbázist táblák alkotják, a táblákat közös oszlop köti össze. Az egyes adatszerkezetekre az elemek közti kapcsolatokon túl jellemzıek a rajtuk elvégzett mőveletek halmaza. A mőveletek két fı csoportját különböztetjük meg: - Konstrukciós mőveletek: az adatszerkezetet létrehozó, továbbépítı mőveletek, - Szelekciós mőveletek: az adatelemek elérését biztosító mőveletek. Minden adatszerkezethez a konstrukciós és szelekciós mőveletek meghatározott készletet tartozik. Absztrakt társzerkezetek (lehet: vektor vagy lista): Egy nem címezhetı tárolón csak szerkezet nélküli adatokat tárolhatunk, ilyen esetben csak soros tárolást és visszaolvasást alkalmazhatunk. A memória és a lemezegység azonban címezhetı tároló, két absztrakt tárolási lehetıség van: a vektor és a lista. Vektor: egy olyan fizikai tároló, melyben a tárolt objektumok közvetlenül egymás után helyezkednek el, mégpedig pontosan ugyanolyan távolságra egymástól. A vektor elemei indexeléssel közvetlenül cimezhetık. A vektornak nagy elınye, hogy • Elemei direkt módon elérhetık. • Kezelése rendkívül egyszerő: egy magasszintő programnyelvben a vektornak megfeleltethetı egydimenziós tömb deklarálása és használata senkinek sem okoz gondot Hátránya, hogy - méretét deklaráláskor meg kell adni - a tárolt adatok karbantartása sok uidıt és energiát vesz igénybe. A vektor jól alkalmazható, ha az elemek mérete egyenlı és nincs szükség sok rendezésre. Lista: a lista elemei fizikailag teljesen véletlenszerően helyezkednek el a tárolóban, az elemek sorrendjét mutatókkal állítják fel. A lista legnagyobb elınye, hogy az átrendezést néhány mutató átirányításával elintézhetjük. Hátránya, hogy elemei nem címezhetık közvetlenül, azok csak szekvenciálisan érhetık el. Felhasználása: dinamikus, szekvenciális adatszerkezetek tárolása.
89
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B8. Objektumorientált alapfogalmak. Osztály, példány. Az objektum jellemzıi. Objektum inicializálása, megszüntetése. Üzenetküldés. Bezárás, az információ elrejtése. Kód újrafelhasználása.
OO alapfogalmak: Objektum: a valós világban elıforduló dolgokat objektumoknak nevezzük. Az objektumnak vannak adatai (tulajdonságai) és van valamilyen viselkedésmódja. Egyszerőbben: (ha egy beszélı ember az objektum, akkor a haja színe, a testsúlya, stb. az adata és a viselkedésmódja az, hogy beszél) OOP-ban az Objektum: információt tárol, és kérésre feladatokat hajt végre. Az objektum adatok (attribútumok) és metódusok (=egy rutin (eljárás vagy függvény)) összessége, mely felelıs feladatai elvégzéséért.
OO módszer: az OO módszertanok amennyire lehet, megpróbálják az emberi gondolkodás szabályait becsempészni a szoftverkészítésbe. OO program: Egy objektumorientált program egymással kommunikáló objektumok összessége, amelyben minden objektumnak megvan a jól meghatározott feladatköre (felelısségi köre). (mint egy cégnél, vannak dolgozók, akiknek vannak tulajdonságaik pl. szakképesítés és vannak feladataik pl. könyvelés.) Absztrakció: A való világ leegyszerősítése a lényegre koncentrálás érdekében. Az egyes objektumoknak csak azon tulajdonságait és viselkedésmódját vesszük figyelembe, melyek célunk elérése érdekében feltétlenül szükségesek. (szerk.: egy könyvelınek csak a feladata elvégzése szempontjából lényeges dolgokat vesszük figyelembe, pl. a lábmérete nem számít) Osztály: olyan objektumminta vagy típus, amelynek alapján példányokat (objektumokat hozhatunk létre) (sablon) Osztályozás: viselkedésük vagy tulajdonságaik szerinti osztályozása az objektumoknak. Gondolj arra, hogy az élılényeket is osztályokba soroljuk akár tulajdonságaik szerint (emlıs, hüllı …stb) vagy viselkedésők szerint. Öröklıdés: egy osztály örökölhet tulajdonságokat és viselkedésformákat egy másik osztálytól, az utódosztályban csak az ısosztálytól való eltéréseket kell megadni. (olyan, mint az anyja, csak a haja sötétebb) Üzenet: Az objektumokat üzeneteken keresztül kérjük meg különbözı feladatok elvégzésére. Ez nem más, mint az objektumba beprogramozott rutin hívása. Üzenetet küldeni egyik objektum csak akkor tud a másiknak, ha azzal kapcsolatban áll. Ez mindig egyirányú a kliens küldi a szerver felé. (szerk.: a fınök csak úgy tudja kiosztani a munkát, az üzen a dolgozónak, hogy csinálja meg.) Objektum állapota: az objektumnak mindig van egy állapota, mely az adatok pillanatnyi értékeit jelenti. Egy feladat elvégzése után az objektum állapota megváltozhat. Két azonos tulajdonságokkal és mőveletekkel rendelkezı objektumnak akkor és csak akkor ugyanaz az állapota, ha az adatok értékei rendre megegyeznek. Objektum azonosítása: az objektumok egyértelmően azonosíthatók. Az objektum azonossága független a tárolt értékektıl. Két objektum akkor sem azonos, ha állapotaik megegyeznek. (szerk.: két Kovács Kati van a cégnél, akkor valahogy meg kell ıket különböztetni, mert nem tudják különben eldönteni, hogy kinek kell elvégezni a munkát. Ergo, mindennek kell egyedi azonosító) Osztály: hasonló objektumok közös szerkezetének, viselkedésének és kapcsolatainak absztrakciója. Az osztály (típus) egy minta, mely alapján objektum példányokat (objektumokat) lehet létrehozni. Üzenetküldés: Üzenet nem más, mint egy kívülrıl elérhetı metódus (eljárás vagy függvény) hívása. Mindig a kliens üzen a szervernek. Az objektumok tehát üzeneteken keresztül szólítják meg egymást, melyben: • Kliens: a feladatot elvégeztetı objektum • Szerver: a feladatot elvégzı objektum
90
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Ugyanaz az objektum lehet egyszer kliens, máskor szerver. Általános dolog, hogy egy objektum a számára kiszabott feladat bizonyos részeit más objektumokkal csináltatja meg. Az üzenetet a megszólítandó objektum azonosítójával minısítjük és az üzeneteknek lehetnek paraméterei: Objektum. Uzenet(parameterek). Ha az objektumtól választ is kérünk valamilyen formában, akkor azt változó paramétereken keresztül ill. a függvény visszatérési értékeként kaphatjuk meg. Objektum inicializálása, megszüntetése egyrészt az objektum kezdeti adatainak megadásából másrészt a mőködéséhez szükséges kezdeti tevékenységek végrehajtásából áll. A legtöbb nyelven az inicializáló metódus végzi az objektum létrehozását is. (Gizike nem tudja megcsinálni a táblázatot, ha nem kapja meg a kezdı infókat. Kap adatokat és utasításokat) Bezárás, információ elrejtése (encapsulation): A bezárás az adatok és metódusok összezárását, betokozását jelenti. Az információ elrejtése azt jelenti, hogy az objektum elrejti adatait, azt csak az interfészen keresztül lehet megközelíteni. Így más programrész nem tudja elrontani az objektum belsejét, és az objektumban esetlegesen keletkezett hiba nem tud átterjedni más programrészekre. Ehhez a következı szabályok betartása szükséges: • Az objektum csak olyan üzenetekre reagáljon, amelyre azt beprogramozták, • Az objektumot csak interfészen keresztül lehessen megközelíteni, • Az objektum interfész része a lehetı legkisebb legyen. • Az adatok csak metódusokon keresztül legyenek elérhetık. (szerk.: Az objektum saját szociális problémája, hogy hogyan oldja meg a rá kiosztott feladatot, abba beleszólni nem lehet.) Kód újrafelhasználás: Az objektumorientált programozás nagy elınye, hogy az egyszer már megírt, letesztelt régi kódokat változtatás nélkül felhasználhatjuk új programban, így csökkenthetjük az elıforduló hibák számát és idıt takarítunk meg. A kód újrafelhasználásának másik módja, hogy a már megalkotott osztályból példányokat hozunk létre. Ahány példányt hozunk létre, annyiszor használjuk újra a megfelelı osztály kódját. Ha ezt az osztályt egyszer sikerült jól beprogramozni, akkor azt akárhányszor használjuk, sosem fogunk benne csalódni. (Gizike, úgy csináld meg az összesítı táblázatot, mint múltkor.)
91
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B9. Objektumok, illetve osztályok közötti kapcsolatok. Objektumdiagram, együttmőködési diagram, osztálydiagram, osztályleírás. Objektumorientált tervezés, UML jelölés. Objektum jelölése: Objektum neve Tulajdonságai Tevékenységei
Az objektumok csak úgy tudnak együttmőködni, ha kapcsolatban állnak egymással. Alapvetıen kétféle kapcsolat létezik: • Ismeretségi: két objektum Ismeretségi (használatai) kapcsolatban van egymással, ha azok léte egymástól független, és legalább az egyik ismeri, ill. használja a másikat. Amelyik objektum használni akarja a másikat, annak tartalmaznia kell egy referenciát (mutatót) a megszólítani kivan szerver objektumra. Ha az objektumok kölcsönösen használják egymást, vagyis a kliensszerver szereposztás váltakozik, akkor mindkét objektumban fel kell vennünk a másikra vonatkozó referenciát. Az ismeretségi kapcsolatban álló objektumok közül bármelyik megszüntethetı, csak arra kell vigyázni hogy a “túlélı ” objektum a továbbiakban ne hivatkozzon a “meghaltra” és ne maradjon hivatkozatlanul az az objektum, melynek még üzenetet akarunk küldeni. Pl. a nyomtatót használó két alkalmazás ismeri a nyomtatót, egyik megszünésekor a másik objektum nyomtathat. •
Tartalmazási: két objektum tartalmazási (egész-rész) kapcsolatban van egymással, ha az egyik objektum fizikailag tartalmazza vagy birtokolja a másik objektumot. A rész objektumot senki más nem látja, csak a tartalmazó, összetett objektum. A rész objektum léte az egész objektumtól függ, vagyis ha az egész objektumot megszüntetjük, vele együtt “pusztul” a rész is. Kompozíciónak nevezzük azt a tartalmazást, ahol az egész létrehozásakor összeáll a végleges kompozíció és késıbb nem vehetı ki belıle egyetlen rész sem (erıs tartalmazás). A tartalmazási kapcsolat erısebb, mint az ismeretségi: az egész objektum mindig ismeri részét. Pl.: ablak és a rajta levı nyopmógombok. A tartalmazás lehet: - gyenge: ha a rész kivehetı az egészbıl (pl. doboz:Doboz és csoki:Édesség); Jelölése az UML-ben: a két objektum közti vonal a tartalmazó objektum oldalán kis üres rombusszal (pl. Java1 87. old. 6.2. ábra/1); - erıs: ha a rész nem vehetı ki az egészbıl (pl. a nyomtatás dialógus OK gombja), Jelölése az UML-ben: megegyezik a gyengével azzal az eltéréssel, hogy a rombusz tömör (pl. Java1 87. old. 6.2. ábra/2).
Osztálydiagram A rendszer objektumelvő szerkezetének leírása. Olyan statikus modell, amely a rendszerben található összes osztályt, és azok statikus (ismeretségi, tartalmazási és öröklési) kapcsolatait ábrázolja. Az összes többi modell erre épül. Az osztálydiagramon minden osztály pontosan egyszer szerepel. Az osztályok közötti kapcsolatokat a kapcsolat foka alapján osztályozzuk: • Egy-egy kapcsolat: Az egyik osztály egy példánya a másik osztály legfeljebb egy példányával áll kapcsolatban. A másik osztályra ugyanez vonatkozik. • Egy-sok kapcsolat: Az egyik osztály egy példánya, a másik osztály sok példányával állhat kapcsolatban. A másik osztály egy példánya viszont legfeljebb egy példánnyal állhat kapcsolatban az egyik osztályból. • Sok-sok kapcsolat: a sok-sok kapcsolatban mindkét osztály akármelyik példánya a másik osztály sok példányával állhat kapcsolatban. Az osztályok közti kapcsolatok jelölése: - vonalat húzunk a két osztály közé; - az irányt nyíllal jelöljük; - jelöljük a kapcsolat fokát; - a kapcsolat nevét a vonalra írjuk.
92
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
Objektumdiagram: Az osztálydiagram egy példányát mutatja be. Egy lehetséges rendszerkonfigurációt ad meg, a használt objektumok ábrázolásával és az ezek közötti relációkkal. Jelölésrendszere megegyezik az együttmőködési diagrammal, csak az üzenetek nélkül. Együttmőködési diagram: Az objektumoknak a probléma megoldásában való együttmőködését mutatja be. Olyan, konkrét objektumokat tartalmazó diagram, amely az objektumok közötti dinamikus kapcsolatokat ábrázolja. Tartalmazza az objektumok közötti ismeretségi, illetve tartalmazási (egész - rész) kapcsolatokat is. Az objektumok közötti információcsere üzenetekkel történik, ezeket olyan nyilakkal ábrázoljuk, amelyekre ráírjuk az üzenet nevét, és meg is számozhatjuk ıket, ahhoz, hogy az eseményeket relatív rendezettséggel tüntessük fel
Komponens diagram A komponensekbıl felépülı szoftverrendszert mutatja be. Az osztálydiagram osztályainak és egyéb elemeinek fizikai csoportosítását ábrázoló diagram. Szoftver-komponenseket, interfészeket és ezek közötti kapcsolatokat tartalmaz. A szoftver-komponensek programállományok (forráskódok), bináris állományok és végrehajtható programok lehetnek. Osztályleírás: az osztálydiagramban szereplı osztályok jellemzıinek kifejtése. Meg kell adni minden jellemzıt, mely az osztály megértéséhez, pontos kódolásához szükséges: • Osztály neve • Feladatleírás • Közvetlen ıs • Objektumok száma • Kapcsolatok: az osztály más osztályokkal való kapcsolatai. Itt írjuk le hogy az osztály milyen egyéb osztályokkal objektumokkal mőködik együtt. • Adatok: az osztálydiagramon az adatról csak kevés információt tudunk jelölni, itt megadható az összes adat neve, típusa, értékhatárai, beviteli formátuma, korlatozások, magyarázat, példák. • Metodusok: itt röviden leírjuk a metódusok feladatát szövegesen és/vagy pszeudokódokkal. Az OO fejlesztés fázisai: - Analízis: a megoldandó feladat meghatározása. Tartalmazza a feladatspecifikációt, képernyı és listaterveket. - Tervezés: az analízisben készült dokumentációk kibıvítése: objektumdiagrammok, együttmőködési diagrammok, osztálydiagram, osztályleírás. Célszerő már meglévı osztályokat újrafelhasználni. - Kódolás, tesztelés: az osztálydiagramm osztályait kódoljuk, és folyamatosan teszteljük, elsısorban az analízis során feltárt esetek kipróbálásával. UML jelölés: (Unified Modelling Language): grafikus jelölésrendszer a szoftver modellezésére. (Prog2, 297.o.) Az UML jelölés lényege: a feladat elemeit és a közöttük lévı kapcsolatokat diagramokon ábrázoljuk. Az ilyen diagram matematikailag egy gráf, melyben a csomópontok az egyes elemek és az azokat összekötı élek pedig a kapcsolatok. Az objektumorientált jelölésekkel az adatokhoz kapcsolhatók az azt kezelı objektumok. Segítségével ábrázolni tudjuk a valóság egy objektumának tulajdonságait és azt, hogy a környezetének mely hatásaira képes reagálni, illetve milyen módon tud hatni környezetére.
93
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B10. Öröklıdés az objektumorientált szoftverfejlesztésben. Adatok és metódusok védelme. Virtuális metódus, futás alatti kötés. Üzenetek nyomkövetése. Polimorfizmus. Típuskényszerítés. Öröklıdés: az öröklıdés az OO programozásban egy megvalósítási, kódolási könnyebbség. Lényege, hogy a már meglévı osztályokat fejleszthetjük tovább. Fajtái: - specializálás: egy objektum leírásához egyedi jellemzıket adunk hozzá - általánosítás: több objektum leírásából kiemeljük a közös jellemzıket. Az öröklés lehet: - Egyszeres: az osztálynak egy közvetlen ıse van (pl. a busznak az utasszállító); - Többszörös: az osztálynak több közvetlen ıse van (pl. lakás és kocsi a lakókocsinak). A már meglévı osztály az ıs osztály, a továbbfejlesztett osztály pedig a leszármazott, ill. utód osztály. Az utód osztály az ıs osztály specializálása. Az ıs osztályból úgy származtatunk újabb osztályt, hogy az ıs osztály tulajdonságaihoz ill. képességeihez újabbakat adunk, vagy a a meglévı képességeket felülírjuk. Ezzel az ıs osztályt akár kibıvíthetjük, akár átírhatjuk. Egy osztály örökítésekor három lehetıségünk van: új adatokat adunk hozzá az ıs osztályhoz, új metódusokat adunk hozzá az ıs osztályhoz, vagy az ıs osztály metódusait felülírjuk. Osztályhierarchia diagramm: Az öröklés is egyfajta kapcsolat két osztály között. A csak öröklési kapcsolatokat ábrázoló osztály diagrammot osztályhierarchia diagrammnak nevezzük. Egyszeres öröklésrıl akkor beszélünk, ha egy osztálynak csak egy ıse lehet. Többszörös öröklésrıl akkor beszélünk ha egy osztálynak több ıse is lehet Adatok és metódusok védelme: vannak olyan metódusok, melyeket a külsı felhasználok elıl le kell tiltani, hiszen ezek hívásával csak bajt okozhat. Az osztály deklarációihoz háromféle hozzáférési mód lehetséges: • Public: minden metódus használhatja – akár objektumból, akár öröklésen keresztül; • Protected: Hozzáférés csak öröklésen keresztül; • Private: az osztály privát deklarációja, csak az osztály saját metódusai férhetnek hozzá. A privát és védett deklarációkat a külsı felhasználó nem éri el. Egy objektum interfész részében elhelyezett deklarációk nyilvánosak (public), azokat mindenki használhatja. A deklarációhoz való hozzáférési módot külsı láthatóságnak nevezzük. Futás alatti kötés: bizonyos metódusok nem fordítási idıben, hanem késıbb, futáskor “kötıdnek” a hívás helyéhez (késıi, dinamikus kötés). Az ilyen metódusokat virtuális metódusnak hívjuk. Virtuális metódus: olyan metódus, melynek címet a program késıbb, futási idıben oldja fel. A virtuális metódusokkal elérjük, hogy mindig az aktuális objektum osztályának a metódusa fog futni. Megvalósítása: minden egyes osztályhoz tartozik pontosan egy VMT (Virtuális Metódus Tábla). A virtuális metódusok címeit a program futáskor ebbıl a táblázatból veszi. A VMT-t a fordító építi fel, a programozó nem fér hozzá direkt módon. • minden objektum tartalmaz egy VMT mezıt, mely az osztály VMT-jének címét tartalmazza. • A példány-VMT hozzárendelést a konstruktor végzi a példány létrehozásakor, ill. inicializálásakor. • A VMT mezı 2 byte-os relatív cím. • A VMT mezıhöz direkt módon nem lehet hozzáférni. A megfelelı osztályhoz tartozó objektumok méretét, és az osztály virtuális metódusainak címét tartalmazza. Egyszerőbben: Virtuális metódus: Az objektumokkal történı munka során szükség lehet arra, hogy az utód osztály metódusait megváltoztassuk. Erre ad lehetıséget a virtuális metódusok használata. A virtuális metódusokkal átdefiniálható az ısosztály azonos nevő metódusa, így csak a futás közben dıl el, hogy éppen melyik metódust kell használni. VMT felépítése: • Méret mezı: az osztály adatainak mérete az ıs adatokkal együtt + 2 byte a VMT mezı • Ellenırzı mezı: A méret mezı (-1) szerese. Az objektum VMT mezıjét a konstruktor irányítja rá osztályának VMT-re. Ha tehát az objektumot nem inicializáljuk konstruktorral, akkor a VMT mezı egy véletlen memóriahelyre mutat. Az ellenırzés abban áll, hogy a program megnézi: valóban egy igazi VMT-re mutat-e a VMT mezı. Ha igen, a mutatott méret és ellenırzı méret egyike sem, összegük viszont 0. • Virtuális metódusok címei:
94
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor. • •
öröklés esetén a hasonló nevő virtuális metódusok címei a VMT ugyanazon relatív címen helyezkednek el. Az újonnan deklarált metódusok a deklarálás sorrendjében kerülnek bele a táblába.
Polimorfizmus: (többalakúság) azt jelenti, hogy ugyanarra az üzenetre különbözı objektumok különbözıképpen reagálhatnak; minden objektum a saját, az üzenetnek megfelelı metódusával. Az üzenet küldıjének nem kell tudnia a fogadó objektum osztályát. Típuskényszerítés: egyes objektumoknak -osztályuk lekérdezése után –olyan üzenetet akarunk küldeni, amely csak az ı osztályéban lett deklarálva. Ha az ıs típusú mutatóval próbálkozunk (P^TBMetodus) akkor már a fordító panaszkodik, hogy ilyen metódus nincs a P^-ban. Ilyenkor az utód objektumra rákényszerítjük a saját típusát és így már használhatjuk a kérdéses üzenetet PB(P) ^.TBMetodus Egyszerőbben: Típuskényszerítés: egy változóra egy idegen típus „ráhúzása”, mely lehet: - bıvítı (implicit) pl. double d; int i=5; d=i; melynek eredménye d=5,0; - szőkítı (explicit) pl. d=79.,; i=(int)d; i=d; melynek eredménye i=79.
95
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B11. Objektumok, illetve osztályok közötti kapcsolatok megvalósítása. A konténer fogalma. A lista, mint konténer. Iterátor. Objektumok közötti kapcsolatok: A kliens objektumnak mindig ismernie kell a szerver objektumot, különben nem tudja azt megszólítani. A kapcsolat tartalmazási vagy ismertségi lehet. A kliens objektumban fel kell venni egy szerverre vonatkozó referenciát, ami lehet példányváltozó, egy metódus lokális változója vagy formális paramétere. Tartalmazási kapcslat esetén a kliens tartalmazhatja a szervert, ekkor a kliens osztályában fel kell venni egy objektum típusú változót: TKliens=Object Szerver: TSzerver; (...) End; Ismertségi kapcsolat esetén egy mutatót kell irányítani a szerverre: Pszerver=∧Tszerver; (...) TKliens=Object Szerver: PSzerver; (...) End; Az egy-sok kapcsolat megvalósítása konténer objektummal lehetséges. A konténer objektum más objektumok csoportját tárolja, és azokon különbözı eléréseket, karbantartási mőveleteket biztosit. A konténert mesterségesen a kapcsolodó objektumok közzé kell iktatni. Pl.: Tegyük fel, hogy a kliens objektum logikai kapcsolatban áll az sz1, sz2 .. szN szerver objektumokkal. Ahhoz hogy a kliens különbözı karbantartási és keresési mőveleteket hajtson végre a kapcsolódó objektumokon, valamilyen módon fizikailag hozzá kell ıket kapcsolni. A kliens nem mutathat külön minden egyes szerverre, hiszen a szerverek száma elvileg végtelen lehet. Legyen a kliens objektumnak egy konténere, melyben akárhány szerver objektum betölthetı. Amelyik szervernek a kliens üzenni akar, annak a mutatóját egyszerően elkéri a konténertıl. A kliensnek a következı “kívánságai” lehetnek: • Konténer.létrehoz • Konténer.betesz(szerver) –renddezetten/rendezettlenül • Konténer.töröl(szerver) • Konténer.elsı szerver mutatója • Konténer.következı szerver mutatója • Konténer.utolsó szerver? • Konténer.megszüntet . 1:N kapcsolat megvalósításához valamilyen speciális adatszerkezet kell választani pl.: tömb, tábla, verem, sor. A konténerbe nem tesszük bele fizikailag az objektumokat, mert akkor a kapcsolat csak tartalmazási lehetne. Lista: A konténert úgy kell megalkotni, hogy újrafelhasználható legyen. Ezért közös ıssel rendelkezı objektumokra kell mutatnunk. Ezért kell egy közös ıs, ami teljesen független kell hogy legyen (se ablak, se idızítı), és amely tartalmazni fogja azt a minimumot, ami a lista kezeléséhez feltétlenül szükséges. Az objektumok felfőzésének egyik feltétele, hogy a résztvevı objektumok mindegyike mutassa az ıt követı objektumot: ezt a mutatót (Fnext) tehát mindenképpen beletesszük a közös ısbe. A közös ıs ezenkívül néhány alapmetódust is fog tartalmazni. Minden felfőzendı objektumnak lesz tehát egy feje, amely mutatja az ıt követı objektumot ill. fejet. Nevezzük a közös ıst TItem-nek, hiszen ilyen típusos mutatóval a lista bármely tételére tudunk majd mutatni. Iterátor: Gyakori, hogy a konténer elemein egyszerően “végig kell menni” úgy hogy közben mindegyik objektumot ugyanarra a feladatra kell megkérni. Ilyenkor fárasztó dolog az iteráció teljes ciklusát lépegetésekkel, feltételekkel együtt minduntalan leírni. Az Iterátor feladata, hogy a paraméterenként megkapott eljárás típusú változót a lista mindegyik elemével végrehajtassa.
96
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B12. Az objektumorientált szoftverfejlesztés fázisai, jellemzıi. Objektumok fıbb sztereótípusai (határ, kontroll, egyed, konténer). Komponensek. Az alkalmazói program felépítése. OO szoftverfejlesztési eszközök. Szoftver fejlesztésének fázisai: Analízis Tervezés Kódolás Tesztelés Analízis: Az analízis elemzés során felmérjük a helyzetet, mire van szükség, mik a lehetıségek. Itt kell eldönteni, hogy a feladat egyáltalán megvalósítható-e, mik a célok, meg kell becsülni az idıt és költségeket. A problémamegoldás e szakaszában a szóban forgó problémát minden szempontból egyértelmően definiálni kell, hiszen a feladat pontos definíciója nélkül aligha lehet pontos programot készíteni. A beviteli (input) adatokkal kapcsolatban a következı kérdések merülnek fel: • Mik az input adatok,milyen a beviteli formájuk • Mik a bevihetı értékek • Milyen módon kell befejezni a bevitelt • Vannak valamilyen speciális megszorítások, vagy feltételek • Milyen kapcsolatok vannak a beviteli adatok között A kiviteli (output) adatokkal kapcsolatban a következı kérdések merülnek fel: • Milyen adatokat kell megırizni, mennyi adatról van szó • Mely adatokat kell megjeleníteni • Hogyan tudjuk ezeket az adatokat elıállítani. Tervezés: A programtervezés feladata hogy az analízis során összegyőjtött információkat és adatokat alapul véve logikailag véglegesen kialakítsa az adatstruktúrákat és az adatokon manipuláló algoritmusokat. Osztálydiagram, objektumdiagram vagy együttmőködési diagramm, osztályleírás elıállítása. Módszerek: Hosszú ideig a moduláris programozás volt a jelszó, a lényege, hogy a programot felülrıl lefelé (top-down) funkcionálisan egyre kisebb lépésekre (modulokra, eljárásokra) bontjuk. Ezt váltotta fel a Jackson féle programtervezési módszer, manapság az objektum orientált módszer hódit. Kódolás: Ha terv elkészült akkor jöhet a kivitelezése. Ennek elsı szakasza a programterv kódolása egy adott programnyelven. A kódolási szakasz dokumentációja a forrásnyelvi lista. Ez akkor jó, ha pontosan a programterv alapján készült, áttekinthetı, olvasható, tömör egyértelmő megjegyzéssekkel van megtőzdelve. Ebbe persze lehetnek szintaktikai hibák, amelyek pl. elgépelésbıl is adódhatnak. Tesztelés: Ha alaposak voltak az elızı fázisok, itt könnyő dolgunk van. A program leállhat futási hibával, de kiderülhet hogy program rosszul mőködik. Kellemetlen hiba az ún. szemantikai hiba, ennek problémája mélyen gyökrezhet. Elıfordulhat, hogy a probléma forrását már a probléma analizálástól fogva magunkkal hurcoljuk. Teszteléskor a következıkre kell figyelni: • Pontosan úgy mőködik-e a program ahogy az feladat leírásban szerepelt? • Nem lehet-e elrontani? • Elég hatékony-e? • Biztonságos-e a használata? • Felhasználó barát-e? Objektumok fıbb sztereótípusai: Az objektumokat, osztályokat különbözı fajtákba (sztereotípusok) lehet sorolni. A legfontosabb fajták a következık: -
Egyed objektumok alkotják a rendszer lényegi részeit. Az egyed objektum egy valós világbeli személy, dolog, hely, fogalom, vagy esemény. Határ (interfész): a külvilággal kapcsolatot teremtı objektum. Pl. menü, nyomógomb, stb. Aktor: határ objektumokon keresztül kommunikál a rendszerrel, vezérli a program menetét.
97
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
-
Riport objektum: nyomtatott vagy elektronikus listákat készítı objektum. Bekéri az adatokat, feldolgozza, majd kiírja ıket. Kontroll objektum: vezérlést, számolást végrehajtó objektum. Ilyen pl. a folyamatvezérlı, egy statisztikai adatgyőjtı, vagy egy más objektumokat koordináló objektum. Konténer objektum: a különbözı kapcsolatok megvalósítására szolgál. Ha a kapcsolat foka jól behatárolható, akkor statikus adatszerkezetek is használhatok, mint pl. a tömb. Ha a kapcsolat foka változó, akkor valamilyen dinamikus szerkezetet kell használnunk, mint a lista, vagy a kollekció. Az adatbázisok saját konténerrel rendelkeznek.
Komponensek (az újrafelhasználható kód):szabályos, újrafelhasználható szoftver építıelemek (forrás, bináris, vagy futtatható kód) , melyeket applikációk fejlesztéséhez hasznának. Komponensek lehetnek pl. osztályok v. azok egy csoportja. • Interfész osztályok pl.: nyomógomb a listadoboz a menü • Konténer osztályok pl.: a lista, tömb, fa Komponensek egyszerőbb nyelvi elemekbıl épülnek fel, melyeket aztán beépítenek az alkalmazásba. Azért használjuk ıket, mert egyrészt az alkalmazás fejlesztésének idejét drasztikusan lecsökkenti, másrészt növeli az alkalmazás minıségét. Az alkalmazói program felépítése: egy tipikus felhasználói programban a következı elemek találhatóak meg: felhasználói felület, eseményvezérelt programozás, adatbáziskezelés, kivételezés, szemétgyőjtés • felhasználói felület: az alkalmazás azon része, mely az ember és a számítógép közötti kapcsolatot biztosítja. A kapcsolatot szoftverrel vezérelt eszközökkel valósítják meg: grafikus képernyı, billentyőzet, egér, nyomtató. A felhasználói felület szerves velejárói: menü, ablakkezelés, on-line help • eseményvezérelt programozás: az esemény olyan történés, amely megváltoztathatja valamely objektum állapotát. Az eseményvezérelt programozás azt jelenti, hogy a program futása során események keletkeznek, melyeket egy kontroll objektum fogad és megfelelı szabályok szerint szétoszt a program objektumai között. Az egyes objektumok elıre be vannak programozva, hogy egy adott eseményre hogyan reagáljanak. • Adatbáziskezelés: vannak olyan objektumok, amelyeket hosszabb idıre el szeretnénk tárolni. A program futását túlélı objektumokat rezisztens objektumoknak nevezzük. Ezen objektumok tárolását és manipulálást az adatbáziskezelı végzi: adatok központi permanens tárolása, több felhasználó kiszolgálása, integritás, helyreállítás, adatvédelem, lekérdezések. • Kivétel kezelés: a kivétel egy esemény vagy feltétel, mely bekövetkezése megszakítja a program normál futását. A kivétel objektum tárolja azt információt, hogy milyen kivétel történt és hol. A kivételes eseményt a program átadja az ún. kivételezınek, amely azt lekezeli. A kivételezı a kivételes (ált. hiba) esemény bekövetkezése esetén megpróbálja a programot megmenteni az összeomlástól, vagy elhárítja a hibát, vagy visszaállítja a rendszert egy elızı stabil állapotba. • Automatikus szemétgyőjtés: A változó létrehozásakor lefoglalt memóriaterület megszőnésekor felszabadul. Az automatikus változónak a program foglal helyet, míg a dinamikus változó helyfoglalásáról a programozó gondoskodik. Az automatikus változó lehet vagy lokális, globális. Azokban a szoftverekben, ahol automatikus szemétgyőjtés van a programozónak nem kell megszüntetni a dinamikusan létrehozott változat. A rendszer periodikusan takarít, kisöpri a szemetet. Csökkenti a hibák számát,viszont lassítja a programot.
98
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B13. A 4GL eszközök osztály- és objektummodellje. A fontosabb osztályok és metódusok funkcionális bemutatása. Osztály-, és objektummodell: A Delphi objektumorientált nyelve az Object Pascal. Osztályt az Object és a Class kulcsszóval is deklarálhatunk, a Class-ként deklarált osztály példányai azonban dinamikus objektumok lesznek. Így csak inicializálás után foglalnak helyet a memóriában, viszont más módon kell ıket inicialáizálni: Obj:= TOsztály.Create Egy Delphi alkalmazásban az interfész objektumok tartalmazási, tulajdonosi hierarchiát alkotnak: az alkalmazás birtokolja az ablakot, az ablak tartalmazza a gombokat, menüt, cimkét, stb. A tartalmazás következménye, hogy ha az ablakot becsukjuk, becsukódik a benne levı összes objektum; ha egy ablakot elmozdítunk, vele mozog az összes benne levı objektum. Fontosabb osztályok: Minden osztálynak van egy közös ıse, ez a TObject osztály; így minden osztályt felfőzhetünk egy listára. Ebbıl származik a TComponent osztály is, mely közös ıse a tervezési idıben kezelhetı komponens paletta vezérlıelemeinek. A TComponent osztályból minden vezérlıelem két fontos jellemzıt örököl: - Name: a komponens programbeli neve. - Owner: a komponens tulajdonosa. A tulajdonos feladata, hogy megszőnésekor megszőntesse a komponenseit, pl. egy ablak bezáráskor megszőnteti a rajta levı gombokat. A TControl osztály a TComponent osztály leszármazottja, a látható komponensek ıse. Fontosabb jellemzıi: - Visible: láthatóság - Top, Left, Width, Height: pozíció - Color: szín - Font: betőtípus Az alkalmazás ablakai a TForm osztály példányai. Az ablakok a következı objektumokat tartalmazhatják: - TLabel: statikus szöveg - TEdit: szerkesztımezı - TButton: nyomógomb - TCheckBox: jelölınégyzet - TRadioButton: választógomb - TComboBox: kombinált lista Fontosabb metódusok: A program futása során események keletkeznek, melyeket egy kontrol objektum fogad, és megfelelı szályok szerint szétoszt a program objektumai között. Az egyes objektumok be vanna programozva, hogy egy adott eseményre hogyan reagáljanak. Pl. a TForm1-en levı OK nevő gomb megnyomására a TForm1.OKClick metódus fog végrehajtódni. Delphiben az eseménykezelı metódusok egérkattintásra automatikusan generálódnak, a programozónak csak a metódus belsejét kell ténylegesen megírni. Ilyen metódusok pl.: - OnClick: kattintás egérrel - OnEnter: belépés a szerkesztımezıbe - OnExit: kilépés a szerkesztımezıbıl - OnKeyPress: billenytőlenyomás - OnChange: állapot megváltozása (ComboBox-nál)
99
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B14. Az eseményvezérelt programozás megvalósítása a 4GL eszközökben. Az esemény egy olyan történés (elıfordulás), amely megváltoztathatja valamely objektum állapotát. Az eseményvezérelt programozás azt jelenti, hogy a program futása során események keletkeznek, melyeket egy kontroll objektum fogad és megfelelı szabályok szerint szétoszt a program objektumai között. Az egyes objektumok elıre be vannak programozva, hogy egy adott eseményre hogyan reagáljanak. Esemény lehet: • • • •
Jel: egy objektum a másik objektumnak egyértelmő jelet küld (pl. billentyőleütés, egér kezelés) Hívás: egy objektum meghívja egy másik objektum egy metódusát İrfeltétel: egy elıre meghatározott feltétel igazzá válik Idı: a kijelölt idı eltelik vagy elérkezik.
A reakció lehet egy feladat végrehajtása, vagy egy újabb esemény kiváltása is. Az objektum lekezeli az eseményt, amely egy eseménykezelı metódus feladata. Ahhoz hogy egy objektum fogadjon egy eseményt, két feltételnek kell teljesülnie: • •
Az objektum be legyen tanítva az esemény fogadására: a keretrendszer objektumait már nagyon sok esemény fogadására betanították. Ha valamire mégsem, az a programozó dolga. Az objektumhoz eljusson az esemény: a mechanizmusban az egér által kiváltott jelet általában az az objektum (ablak) kapja meg, amelyiken kattintottak, a billentyőleütést pedig az, amelyik éppen a fókuszban van. A Delphi környezetben az ablakok adatait a programozó vizuálisan adja meg, az eseménykezelı metódusok pedig egérkattintásra automatikusan generálodnak – csak az eseménykezelı metódus belsejét kell a programozónak ténylegesen megírni.
Az eseményvezérelt programozás olyan programozás, amely egy eseménybegyőjtı és szétosztó mechanizmuson alapszik. Az objektumok a hozzájuk érkezett eseményeket (eseménykezelı metódusokkal) lekezelik. Pl. a TForm1-en levı OK nevő gomb megnyomására a TForm1.OKClick metódus fog végrehajtódni. Delphiben az eseménykezelı metódusok egérkattintásra automatikusan generálódnak, a programozónak csak a metódus belsejét kell ténylegesen megírni. Ilyen metódusok pl.: - OnClick: kattintás egérrel - OnEnter: belépés a szerkesztımezıbe - OnExit: kilépés a szerkesztımezıbıl - OnKeyPress: billenytőlenyomás - OnChange: állapot megváltozása (ComboBox-nál)
100
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B15. Az őrlapok (ablakok) tervezésének menete. A legfontosabb vezérlıelemek funkcionális bemutatása 4GL-ben (Angszer Erzsébet OOP. TK 184) A felhasználói felület az alkalmazásnak az a része, amely az ember és a számítógép közötti kapcsolatot biztosítja. A felhasználói felület egyrészt információt jelenít meg a felhasználó számára, másrészt adatot győjt be. A felhasználó választások alapján, interaktív módon vezérli a programot. A felhasználói felület részei: - Menü: definiálni kell a menü pontjait és alpontjait. A menü pontjaihoz meg kell adni a szöveget, a forróbillentyőt és meg kell írni a hozzá tartozó eljárást. A menüben való navigálásra a menü objektum be van tanítva, azzal nem kell külön foglalkozni. - Ablakkezelés: az alkalmazások ablakainak formátuma, kezelése szabványos. Pl. OK gomb mindig elfogadást jelent, nagyobb szöveget görgetısávval görgetünk. - On-line help: a program bármely pontján az F1 billentyő megnyomására a felhasználó segítséget kap a program használatáról. A programozónak össze kell állítania a help szövegét, és az egyes objektumokhoz rendelni a hivatkozásokat.
Fontosabb vezérlıelemek: Az alkalmazás ablakai a TForm osztály példányai. Az ablakok a következı objektumokat tartalmazhatják: - TLabel: statikus szöveg - Caption: szöveg - TEdit: szerkesztımezı - Text: szöveg - Alignment: igazítás - TButton: nyomógomb - Caption: felirat - ModalResult: visszatérési érték - TCheckBox: jelölınégyzet - Checked: kijelölés értéke - TRadioGroup: választógombok - Items: elemek nevei - ItemIndex: a kijelölt elem indexe - TComboBox: kombinált lista - Items: elemek nevei - ItemIndex: a kijelölt elem indexe Fontosabb metódusok: A program futása során események keletkeznek, melyeket egy kontrol objektum fogad, és megfelelı szályok szerint szétoszt a program objektumai között. Az egyes objektumok be vanna programozva, hogy egy adott eseményre hogyan reagáljanak. Pl. a TForm1-en levı OK nevő gomb megnyomására a TForm1.OKClick metódus fog végrehajtódni. Delphiben az eseménykezelı metódusok egérkattintásra automatikusan generálódnak, a programozónak csak a metódus belsejét kell ténylegesen megírni. Ilyen metódusok pl.: - OnClick: kattintás egérrel - OnEnter: belépés a szerkesztımezıbe - OnExit: kilépés a szerkesztımezıbıl - OnKeyPress: billenytőlenyomás - OnChange: állapot megváltozása (ComboBox-nál)
101
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B16. Az adattáblák (SQL-táblák) képernyıs megjelenítésének és az adatok módosításának technikája a 4GL-ben. Delphiben az adatbázisok kezelése speciális komponensek segítségével történik. Az alkalmazásokban a különbözı formátumú adatbázisokat egységesen, ugyanazokkal a komponensekkel érjük el. A komponensek metódusai a beépített adatbázismotor, a Borland Database engine rutinjait használják. A BDE egy egységes felületet biztosít a különbözı formátumú adatbázisok elérésére Delphibıl. Az adatok megjelenítése: A Data Controls palettán elhelyezkedı komponensek segítségével megjeleníthetjük és módosíthatjuk egy adatforrás tartalmát. - TDBGrid: táblázatszerően tudja megjeleníteni egy adatforrás több rekordját. Az egyes oszlopok celláit szerkesztıdobozként, vagy kombinált listaként is kezelhetjük a PickList jellemzı beállításával. - TDBListBox, TDBComboBox: egy adott adatforrás adott mezıjének értékét jeleníthetjük meg, illetve szerkeszthetjük. A lebomló lista tartalmát beállíthatjuk. - TDBLookUpListBox, TDBLookUpComboBox: hasonló az elızıekhez, csak a lista értékeit egy másik táblából veszi. - TDBNavigator: a tábla rekordjai közötti mozgáshoz kínál navigátorgombokat, melyekkel elıre-hátra, elsıutolsó rekordra tudunk ugrani, új rekordot vehetünk fel, és a meglevıt törölhetjük. Felhasználásához a kiválasztott komponenst el kell helyezni az ablakon, majd a DataSource jellemzıjét a megfelelı adatforrásra, a DataField jellemzıjét a megfelelı mezıre kell állítani. Adatok módosítása: Az adathalmazban mindig csak az aktuális rekordot szerkeszthetjük, de csak akkor, ha az adatmegjelenítési komponens nem írásvédett és a rekord szerkeszthetı állapotban (dsEdit) van. Az adathalmaz megnyitása elıtt inaktív (dsInactive) állapotban van. Megnyitás után átkerül böngészési állapotba (dsBrowse). Ha módosítasni szeretnénk a rekordot, akkor az Edit metódussal dsEdit állapotba kell hoznunk. A módosítások elmentése a Post metódus meghívásával történik, ami más rekordra való lépésnél automatikusan bekövetkezik. A Cancel metódus segítségével a postázás elıtt még visszavonhatjuk a változásokat, ekkor az adatbázis komponens RollBack metódusa visszaállítja a módosítás elıtti állapotot. Új rekordok felvitele esetén az Insert metódus dsInsert állapotba juttatja az adathalmazt, ilyenkor beállíthatjuk az új értékeket vagy visszavonhatjuk a tranzakciót. A törlés a Delete metódussal történik, az adathalmaz ezután dsBrowse állapotba kerül vissza.
102
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B17. Menütervezés 4GL eszközökkel A Delphiben könnyen készíthetünk menüket, mivel ehhez is vannak komponensek. A menünek két típusát különböztetjük meg: fımenü és gyorsmenü. A fımenü az ablak tetején megjelenı vízszintes menüsor, a gyorsmenü az egér jobb gombjára való kattintáskor elıhívható függıleges menü. Létrehozásához el kell helyeznünk egy TMainMenu vagy egy TPopUpMenu komponenst az őrlapon, majd dupla kattintással a komponensen be kell hívnunk a menüszerkesztıt. A menüszerkesztıben sorban be kell gépelni a menüpontokat, és beállítani a tulajdonságaikat. A menüpontokat futás közben kiszürkíthetjük, vagy eltüntethetjük. Menü komponensek: - TMainMenu: fımenü komponens. Jellemzıi: - Items: a menüpontok. A menüpontnak almenüpontjai is lehetnek. Minden menüpontnak van egy OnClick eseménye, mely kattintáskor meghívódik. - TPopUpMenu: az egér jobb gombjára kattintva jelenik meg. Tetszıleges komponenshez hozzárendelhetı. - Items: menüpontok. Megjelenéskor az OnPopUp esemény hívódik meg. - TMenuItem: minden menüpont vagy almenüpont egy ilyen típusú objektum. - Caption: a menüpont neve. Az & jellel gyorsbillentyőt rendelhetünk hozzá, a – jel pedig egy vízszintes vonalat jelenít meg a listában. - Checked: a menüpont ki van pipálva - Enabled: engedélyezés
Gyors-, és forróbillentyők: A menüpontok neveiben általában szerepel egy aláhúzott bető, egy úgynevezett forróbillentyő. Ez a bető, ami általában a menüpont nevének kezdıbetője, arra szolgál, hogy a menıpontot billentyőzetrıl kiválaszthassuk. Az ALT mellett lenyomott aláhúzott bető a megfelelı legördülı menüt választja ki. A menüben szereplı másik alhúzott bető lenyomásával egy parancsot adhatunk ki. A menük esetében van még egy másik lehetıség is a gyorsbillentyők alkalmazása. Ha egy menüpont mellett egy billentyő, vagy billentyő kombináció látható, akkor az azt jelenti, hogy az adott billentyők lenyomásával kiadhatjuk azt a parancsot. Bár a parancsok kiadása egér könnyebb, de lassabb is, különösen billentyőzetet használó alkalmazásoknál, hiszen a billentyőzetrıl át kell nyúlnunk az egérhez. Az ALT és aláhúzott billentyő használata már valamivel gyorsabb, de még mindig legalább két gomblenyomást igényel. A gyors billentyő általában egy speciális billentyő és egy másik gomb egyidejő lenyomásából állnak, mint pl.: CTRL+C. A Windows meg sem jeleníti kapcsolodó legördülı menüt, ezért a parancs végrehajtása is gyorsabb. Delphiben a gyorsbillentyő menüpontokhoz kapcsolása nagyon egyszerő, csak állítsunk be egy értéket a ShortCut (Gyorsbillentyő) tulajdonságnál, ahol a megszokott kombinációk közül választhatunk: CTRL vagy SHIFT stb.
103
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B18. Adatbázis modellek. Az adatmodell alapelemei. Az adatmodellek típusai és fıbb jellemzıik. Az adatmodell egyedek (táblák), tulajdonságok (mezık) és kapcsolatok halmaza, mely absztrakt módon tükrözi a valós objektumok tulajdonságainak és kapcsolatainak elvont kategóriáit. Az adatmodell egy séma, melyben megadjuk mely tulajdonságok határozzák meg az egyedeket, mely egyedek szerepelnek a sémában, és ezek közt milyen kapcsolatok vannak. Az adatmodell alapelemei: a modellek három szerkezeti elembıl állnak: -Egyed (egyedtípus) -Tulajdonság (tulajdonság-típus) -Kapcsolat (kapcsolat-típus) Egyed: egyednek hívunk minden olyan dolgot (objektumot), ami minden más dologtól (objektumtól) megkülönböztethetı, és amirıl adatokat tárolunk. Tulajdonság: Az egyedeket tulajdonságokkal (attribútumokkal) írjuk le. A tulajdonság az egyed jellemzıje, amely megadja, meghatározza az egyed egy részletété. Kapcsolat: kapcsolatnak nevezzük az egyedek közötti viszonyt. A kapcsolat mindig valóságos objektumok közötti konkrét viszonyokat fejez ki, hiszen az egyed ilyen objektumokat képvisel. A kapcsolatok fajtái: -Egy-egy típusú: az egyik egyedhalmaz mindegyik eleméhez a másik egyedhalmaz pontosan egy eleme kapcsolódik. -Egy-több: az egyik egyedhalmaz mindegyik eleméhez a másik egyedhalmaz több eleme kapcsolódhat. -Több-több: az egyik egyedhalmaz mindegyik eleméhez a másik egyedhalmaz több eleme kapcsolódhat és ez megfordítva is igaz. Kardinalitás: az egyed maximális kardinalitási száma a kapcsolatban azt adja meg, hogy az egyed egy elıfordulásához a másik egyedbıl maximálisan hány elıfordulás kapcsolódhat. Adatmodellek típusai: Három adatmodell terjedt el: hierarchikus, hálós, és a relációs. A hálós adatmodell szerkezetét gráffal adjuk meg. A gráfban a csúcspontok az egyedek, az élek pedig a kapcsolatok. Az egyedeket tulajdonságaikkal írjuk le, a kapcsolatokat mutatók segítségével adjuk meg. A hierarchikus adatmodell szerkezetét is gráffal adjuk meg, de a gráf egy fa. Az adatok alá-, és fölérendeltségi viszonyban állnak. A relációs adatmodellnél a tulajdonságokkal definiáljuk az adatmodell szerkezetét. Az egyedet táblázattal adjuk meg, melynek oszlopai a tulajdonságok. A táblázat sorai az egyed értékei. Az adatbázisokat több táblázattal adjuk meg, de a táblázatok közti kapcsolatokat nem definiáljuk. A kapcsolatot az fejezi ki, hogy a táblának van közös oszlopa. Kiegészítés a tételhez: http://www.agt.bme.hu/szakm/adatb/db1.htm
104
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B19. A relációs adatmodell fogalma. Funkcionális függıség, normálformák, normalizálás. Relációs adatmodell: A, Egy olyan táblázat, amelynek oszlopai tulajdonságtípusok. Az adatbázist táblák alkotják, az egyes táblákat közös oszlop köti össze. B, Attribútum halmazok direkt szorzatának részhalmaza. Az attribútumok (oszlopok) számát az R reláció fokának, a sorok számát pedig a reláció számosságának nevezzük. A relációs adatbázis rövid jelölése a következı: R (A1,A2,A3,…,An), ahol R a reláció neve, Ai pedig egy attribútum. Megállapítható, hogy egy reláció voltaképpen egy egyedtípus, és minden egyedtípus egy relációnak tekinthetı. Kulcs: A, Egy reláció kulcsa tehát olyan oszlop-csoport, amelyeken az oszlopok értékei egymástól különböznek, vagyis nincs olyan két sor, amelyekben a kulcsban szereplı oszlopok értékei azonosak volnának (ha ilyenek mégis szerepelnének, akkor a két sor azonos volna, de ezt a relációban nem engedjük meg). B, Az A attribútumhalmaz egy K részhalmazát kulcsnak nevezzük, ha 1) a K értékei az R reláció mindegyik sorát egyértelmően meghatározzák, 2) de ha egyetlen attribútumot is elhagyunk K-ból, akkor az már nem teljesül. Külsı (idegen) kulcs: a reláció azon oszlopai, amelyek egy másik relációban kulcsot alkotnak. Funkcionális függıség: a P attribútum-részhalmaz funkcionálisan meghatározza a Q attribútumhalmazt, ha minden P-hez tarozó értékhez (P attribútumainak oszlopaiban álló értékekhez) pontosan egy Q-hoz tartozó értéket tudunk hozzárendelni. Vagyis a P értékei egyértelmően meghatározzák a Q értékeit. Jelölése: P Q. Teljes a függıség, ha Q nem függ P részhalmazaitól. Normálformák, normalizálás: Az adatbázisok belsı szerkezetét jellemzik a normálformák.Ha az adatbázis eleget tesz egy biozonyos feltételnek, akkor egy adott normálformában van. 1NF: Egy R relációról azt mondjuk, hogy elsı normálformában van, ha minden sorában pontosan egy attribútum érték áll. 2NF: ha elsı normálformában van és ha minden másodlagos attribútum teljesen függ a kulcstól. 3NF: ha második normálformában van és egyetlen másodlagos attribútum sem függ tranzitíven a kulcstól. Normálformára hozás: • 1NF-re: minden “többszörös” attribútumértékő sort annyi sorban írunk fel, ahányszoros az attribútumérték a sorban, vagy a kulcshoz egy külsı kulcsú relációt készítünk és ebben a többszörös attribútumértékő oszlop soraiból annyi sort hozunk létre, ahányszoros az attribútumérték ebben a sorban. • 2NF-re: a kulcsnak azon attribútumhalmazaiból, melyek maguk is meghatározzák (funkcionálisan) a másodlagos attribútumokat, valamint ezen másodlagos attribútumokból önálló relációt hozunk létre. Így több relációra bontjuk az eredeti relációt. • 3NF-re: megszüntetjük a tranzitív függıségeket, mégpedig úgy, hogy a tranzitív függıségben részt vevı attribútumhalmazok felhasználásával új relációkat készítünk. Kiegészítés a tételhez: http://hu.wikipedia.org/wiki/Rel%C3%A1ci%C3%B3s_adatmodell
105
Gábor Dénes Fıiskola kidolgozott Államvizsga A és B tételsor.
B20. Az SQL fontosabb fogalmai (adatbázis, tábla, oszloptípusok, kifejezések, függvények). A SELECT parancs szerkezete, mőködése. A beágyazott SELECT. SQL (Structured Query Language) – struktúrált lekérdezı nyelv, az adatbáziskezelı rendszerek szabványosított lekérdezı nyelve. Az SQL relációs adatmodellt kezel, így a nyelv fı objektuma a reláció, amit az SQL-ben táblának nevezünk. Az SQL alapelemei: Tábla: A tábla azonosítója maximum 8 karakter, betőkbıl, számjegyekbıl és aláhúzás karakterekbıl állhat. A tábla oszlopokból áll, a tábla definiálásakor az oszlopok típusait is meg kell adni. Az oszlop azonosítója 10 karakter lehet. Különbözı táblákban lehet az oszlopnév azonos. Adatbázis: a táblák adott csoportja adatbázist alkot az SQL-ben, amit névvel látnak el. Oszloptípusok: - Smallint: elıjellel hatjegyő egész szám - Integer: elıjellel tizenegy jegyő egész szám - Decimal (x,y): x jegyő, y tizedesjegyő fixpontos decimális szám; x: 1-19, y: 0-18 - Numeric (x,y): x jegyő, y tizedesjegyő fixpontos decimális szám; x: 1-20, y: 0-18 - Float (x,y): x jegyő, y tizedesjegyő lebegıpontos decimális szám; x: 1-20, y: 0-18 - Char (n): karakterfüzér, n: 1-254 - Date: dátum - Logical: logikai érték Kifejezések: az SQL a kifejezések szerkezete és tartalma tekintetében megegyezik más nyelvekkel. - Aritmetikai: numerikus vagy dátum típusú oszlopnevekbıl, változókból, konstansokból, mőveleti jelekbıl (+ - * / **) és zárójelekbıl állhat. Szerepelhet bennük aritmetikai függvény is. - Karakter: karakter típusú oszlopnevek, változók, szövegkonstansok, mőveleti jel, zárójelbıl áll. A konstansok idézıjelek vagy aposztrófok közt állnak. - Logikai: Logikai típusú oszlopnevek, változók, konstansok, mőveleti jelek, zárójelekbıl relációs operátorokból (>, <, =, stb.) állnak. Függvények: aritmetikai függvények (SIN,COS,EXP,LOG,STB), aggregáló függvények (COUNT, SUM, AVG, MAX, MIN), karakteres függvények (SUBSTR), dátum függvények (MONTH–BETWEEN), logikai függvények (BETWEEN, IN, LIKE), konverziós függvények. A SELECT parancs: Az adatbázis-kezelés egyik fontos, ha nem a legfontosabb mővelete a lekérdezés. Az SQL lekérdezési parancsa egy összetett parancs, a SELECT parancs. A SELECT parancs végrehajtásának eredményeként egy új tábla keletkezik, ezt eredménytáblának (E-tábla) hívjuk. A parancs általános szerkezete a következı: SELECT … oszlop kiválasztása = projekció [INTO …] az E-tábla 1. sorának tárolása FROM … táblák DESCARTES - szorzata [WHERE …] sorok kiválasztása = szelekció [GROUP BY …] csoportosítás [HAVING …] csoportok közötti választás [UNION …] E-táblák összefőzése = unió mővelete [ORDER BY/FOR UPDATE OF …] E-tábla rendezése/módosítása [SAVE TO TEMP …]; E-tábla megırzése, elmentése A SELECT parancs hatására keletkezı E-tábla csak ideiglenesen jön létre. A SELECT parancs szerkezete kötött, az alparancsok csak olyan sorrendben írhatók fel, ahogy fentebb látjuk. A szögletes zárójelbe tett alparancsok opcionálisak. Egymásba ágyazott SELECT parancsok: A SELECT parancsok egymásba ágyazhatóak.. Az egymás mellett lévı bal oldalon álló SELECT-et a tıle jobbra állóhoz képest külsı, a másikat pedig belsı SELECT-nek nevezzük. A külsı SELECT a belsı E-táblájától függıen hoz létre E-táblát. Az ilyen módon létrehozott SELECT sorozat egyetlen eredménytáblát ad, amit az utolsó külsı SELECT generál. A belsı SELECT mindig vagy WHERE vagy HAVING utasítás operandusa, nem tartalmazhat ORDER BY és UNION utasításokat és az is kikötés, hogy a GROUP BY és a HAVING a teljes SELECT-ben csak egyszer fordulhat elı. Példa: SELECT VNEV+KNEV,FIZ FROM DOLGOZO WHERE fiz < (SELECT AVG(FIZ) FROM DOLGOZO); http://hu.wikipedia.org/wiki/SQL_programoz%C3%A1si_nyelv
106