Informatika | Alapismeretek, ECDL » Informatika alapismeretek

Alapadatok

Év, oldalszám:2002, 21 oldal

Nyelv:magyar

Letöltések száma:353

Feltöltve:2009. szeptember 19.

Méret:132 KB

Intézmény:
-

Megjegyzés:

Csatolmány:-

Letöltés PDF-ben:Kérlek jelentkezz be!



Értékelések

Nincs még értékelés. Legyél Te az első!


Tartalmi kivonat

1 Informatika alapismeretek Számrendszerek Minden számrendszerben számjegyek vannak. Kétféle számrendszertípus létezik: Helyiértékes: A számban a számjegy helye határozza meg a számjegyhez rendelt értéket (számot). Számjegyként bármilyen írásképet használhatunk, ha az értékét definiáljuk. Már elég régóta az európai kultúrák az arab számjegyek használatát vették át a hozzájuk társított értékrendszerrel együtt. Ezek a számjegyez a következők: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. A hozzájuk rendelt értékek: 0 = „nulla”, 1 = „egy” stb. Ezek az alapértékek, ezek az értékek módosulnak attól függően, hogy hol áll a számjegy Ma ez az elfogadott és az életben használt módszer. Pl.: tízes számrendszerben 10 számjegy használható fel, a legnagyobb kifejezhető érték a tíz Minden számjegy a helyétől függően kap értéket, méghozzá úgy, hogy jobbról balra haladva a számjegy értékét megszorozzuk a hely

értékével. A helyek értéke úgy alakul, hogy jobbról balra haladva ahanyadik az illető hely, annyadik hatványra kell emelni a számrendszer alapját (ez az un. Továbbszámlálási szabály). Tehát 123 tízes számrendszerben azt jelenti, hogy: 3*100+2101+1102=3+20+100=123= „egyszázhuszonhárom” A továbbszámlálás módszere alapján: a számlálást 0,1 (,sz. r max -a) indítjuk, ha az adott helyen elérjük a számrendszer alapján kifejezhető maximum értéket, akkor oda 0-át írunk és az egyel nagyobb (tőle egyel balra levő) helyen lévő számjegyet növeljük (mindig annyival, amennyivel túlhaladtuk a maximumot. Ezt a „túlhaladást” szakszerűbben „túlcsordulás”-nak nevezzük) Informatikában helyiértékes számrendszereket használunk, és általában használjuk a tizedespont adta lehetőséget is a „maradék” kifejezésére/leírására. Egy p alapú számrendszerben p darab, különböző számjegy van. P>=2 Bármely számrendszerben

fölírt szám első számjegye és utolsó számjegye után tetszőleges számú nulla írható anélkül, hogy a szám értéke megváltozna. Pl: 000 123000 = 1230 = 123 Nem-helyiértékes: A számjegyek függetlenül a helyüktől mindig ugyanazt jelentik. Pl: Római számok. Kettes (bináris) számrendszer A kettes számrendszer egy helyiértékes számrendszer. Két számjegy értelmezett: 0,1 Mivel ez két állapot elektronikában rendkívül könnyen reprezentálható, ezért a számítástechnikában elterjedt a használata. A Neumann elvű számítógépek kivétel nélkül kettes számrendszerben dolgoznak. Egy n jegyű számmal a alapú számrendszerben an - féle különböző szám írható fel (ismétléses variáció). Minden számnak más-más az értéke, tehát más információt jelent. (Kettes számrendszerben: 21=2, 22=4, 23=8, 28=256 féle stb.) (a könnyebb gépelés kedvéért: x^y jelenti mostantól azt, hogy: x az y -odik hatványon) 2 Konvertálás

decimális és bináris között Pl.: 117 10 =1110101 2 Eljárás: Egy 2 oszlopos táblázatban a tízes számrendszerbeli számot (itt:117) osztogatjuk 2-vel és az eredmény-t baloldalra írjuk és jobboldalra a maradékot. Ha a szám páros, akkor maradék 0 lesz, ha páratlan akkor 1, a jobboldalon kapott 0,1 –ek egy bitsorozatot alkotnak, amelyet fordított sorrendben kiolvasva (itt: alulról felfelé) - ha egész számról van szó – megkapjuk a decimális szám bináris alakját. Ha nem egész számról van szó, akkor leválasztjuk az egészrészt, azt átalakítjuk a fent említett módon binárissá, majd vesszük a szám törtrészét és azt is külön átalakítjuk, a következő módon: nem osztunk, hanem szorzunk 2-vel és ugyanúgy a túlcsordulást figyeljük mintha egész lenne, itt a kiolvasás viszont már NEM fordított sorrendben történik. Egész szám bontásakor az eljárást addig végezzük míg a bal oldalon meg nem jelenik a 0 szám. Törtszám

esetén a kívánt pontosság eléréséig bontunk Pl.: 1173 = 117 + 03 117 /2 0.3 * 2 58 29 14 7 3 1 0 1 0 1 0 1 1 1 0.6 0.2 0.4 0.8 0.6 0.2 0 1 (0.6*2=1.2 leválasztom az egészrészt 12-1=02 azaz 1-el túlcsordultunk 0 ( ezt beírjuk a jobboldalra és leválasztjuk az 1-et,0.2-vel számolunk tovább) 0 1 1 . . Ha egy bináris számot decimálissá kell alakítani, akkor felírjuk, hogy mit jelent a helyiérték 2-es számrendszerben. Pl.:1110101 2 =1*2^0+02^1+12^2+02^3+12^4+12^5+12^6=1+4+16+32+64=117 10 Oktális és hexadecimális számrendszerek Sokkal kényelmesebb olvasni a bitsorozatot, ha a biteket 3-as vagy 4-es csoportokba rakjuk. Ha 3-as csoportokat képzünk, akkor a legnagyobb ábrázolható jelszám 23=8, a számjegyek 0-7 -ig értelmezettek. Ekkor 8-as számrendszerbeli (oktális) számokkal dolgozunk (egy ilyen 3-as bitcsoport egy 8-as számrendszerbeli számot egyértelmûen határoz meg). Ebbõl látható, hogyha a 10-es számrendszer mind a 10 számjegyét fel

akarom írni ilyen módszerrel, akkor minimum 4 bitre van szükségem, ekkor viszont a fennmaradó 6 bitkombináció lehetõségét nem használom ki (hiszen 24=16). (a bájt 8 bitjét feloszthatjuk: balról olvasva az elsõ 4 bitet a bájt alsó-félbájt-jának nevezzük, felsõ félbájtnak pedig az utána következõ 4 bitet) Vegyük a kimaradt 6 bitkombinációnak megfelelõ számjegyeket az angol ABC elejérõl: Ekkor hexadecimális számrendszerről beszélünk. 10. számjegy=A 11.számjegy=B stb azaz a hexadecimális számrendszer számjegyei: 0123456789ABCDEF Az informatikában teljesen általános konvencióknak számítanak a következõ felírási módok: Legyenek AB számjegyek. 0xAB és ABh jelenti, hogy az AB szám hexadecimális) 3 Decimálisról binárissá konvertálás Egy decimális számot többféle módszerrel alakíthatunk át binárissá. Lehet közvetlenül, ami azt jelenti, hogy a bináris átalakításhoz hasonlóan osztjuk a decimális számot az új

számrendszer alapjával (itt 16al) és figyeljük a túlcsordulást. (ám itt a táblázat jobb oldalán 0F számjegyek jönnek ki) a módszer teljes egészében megegyezik a bináris átalakítással attól eltekintve, hogy nem 2-vel, hanem 16-al kell dolgoznunk. Egy decimális szám hexadeximálissá való átírása úgy is történhet, hogy a decimálist binárissá alakítjuk át, majd a bináris számjegyeket (bit) 4-es csoportokra képezve számoljuk egymás után a neki megfelelõ hexa számjegyet. Pl.: 117 10 = 1110101 2 Ez egy pont olyan eset lett, ahol a bitek száma nem 4-el osztható, ekkor egész szám esetén balról nullákkal kiegészíthetjük, a szám értéke természetesen nem fog változni, ha tizedes számról van szó, akkor jobbra írhatok fel tetszõleges számú nullát. (mindig annyit hogy 4-el osztható legyen a bitek száma) Majd csoportosítok: 0111 | 0101 | 7d=7h 5d=5h Tehát 117=75h (a "d" itt nem a hexadecimális D számjegyet jelöli, hanem

azt hogy az elõtte álló számjegy(ek) decimális(ak) ) Ha oktálissá kell alakítani egy decimális számot, akkor hasonlóan a fentiekhez binárissá írom át a számot, ám nem 4-es, hanem 3-as csoportokat képezek, és azokat alakítom át, vagy a második módszerben nem 16-al, hanem 8-al kell osztani :) Miért jó a hexa? Azért, mert ugyanannyi információ leírásához kevesebb helyre van szükség. Így például egy gépi kódú program kiíratásához, kinyomtatásához (dump) kevesebb papír kell, több információ fér el a képernyõre/papírra (a hexa használatának erõs anyagi okai vannak:)) (egy bájt egy kétjegyű hexadecimális számjegyként is értelmezhetõ). A hexadecimális és oktális szám decimálissá visszaalakítása történhet közvetlenül (hasonlóan a bináris szám visszaalakításához: megnézzük, hogy mit jelentenek a számjegyek a helyükön), vagy először visszaalakíthatjuk őket binárissá és a binárist a már ismert módon

decimálissá. Alapfogalmak Az Adat Az adat az a szellemi termék (esetleg információ), amelyen a számítógép műveleteket végez, a számítógépen a számítógépes programok segítségével az adatokon dolgozunk. Az adat mérése Az adatmennyiség alap-mértékegysége a bit. 1 bit egy darab bináris (2-es számrendszer – beli) helyiértéknek felel meg, két állapota (értéke) lehet: 0,1. Fizikailag ezt a két értéket jól elkülöníthetõ elektromos potenciálszintek (feszültségértékek) képviselik (0: 0-0.4 V, 1: 24-5V) (ezek a feszültségértékek PCre értendőek, ezek az értékek számítógépgyártókként változ(hat)nak 4 1 byte (bájt) = 8 bit 10 1 Kbyte (kilobájt) = 1024 byte (miért 1024? Mert 2 = 1024 és azért a 10. Hatványon, 10 ujjunk van) 1 Mbyte (megabájt) = 1024 Kbyte 1 Gbyte (gigabájt) = 1024 Mbyte 1 Tbyte (terrabájt) = 1024 Gbyte (Megj.: Mivel a 210=1024 ami majdnem 1000, és mivel általában 2 hatványaiban számolunk, ezért a

megállapodás szerint a szakmában a kilo (pl.: kilobájt) 1024-et (bájtot) jelent A többi mértékegység is ennek megfelelõen értendõ, tehát a millióbájt nem egyenlõ a megabájttal. A processzor a címzés során ettől eltérő bitcsoportosításokat használ(hat). Programozás során az alábbi csoportosítások gyakrabban használtak: 1 félbájt (4bit - ma már nem gyakran használt) 1 bájt (8 bit) 1 félszó (Half-Word) = 2 bájt (16 bit) 1 szó (Word, W) = 4 bájt (32 bit) 1 duplaszó (Double Word, DW) = 8 bájt (64 bit) 1 négyszó (Quadro Word, QW) = 16 bájt (128 bit) (a szó definíció szerint annyi bit amennyivel a processzor egyszerre dolgozik. A fentiek a mai tipikus 32-bites processzorokat feltételezik. A 16-bites mikroszámítógépeken, pl 16bit volt a szó Emiatt pl a C nyelv egész (int) típusának mérete is implementáció-függõ) A számítógép memóriája bájtszervezésű, ami azt jelenti, hogy az a legkisebb egység, amellyel műveletet tud

végezni (tárolás, törlés, mozgatás, stb.) az a bájt 8 Az Input, Output, I/O általában bájt-alapú, mivel 1 bájt=8 bit ezért ezekbõl 2 = 256-féle különböző jelsorozat írható le (0-255), melyek egyértelműen sorszámozhatóak, mivel az elsõ állapot a 00000000 (8 db nulla) ezért a számítástechnikában az élet többi területétől eltérően a sorszámozás 0-val kezdõdik. A legutolsó állapot (ilyen szisztéma szerint) az 11111111 (8 db 1-es). A bájt egyes speciális esetekben (tárolásnál, pl.: streamereknél) "9 bitet jelent" (8+1 paritásbit) A paritásbit célja két az ellenõrzés, mégpedig az illetõ bitsorozatban szereplõ 1-esek számát figyeli. Ha a bitsorozatban az 1-esek száma páros, akkor a paritásbit értéke 0, míg ha páratlan, akkor a paritásbit értéke 1. Számítógép architektúrától függõen létezik páros, és páratlan paritást figyelõ paritásbit is, az hogy éppen melyik használt azt a számítógép

gyártója dönti el. A PC-kben páratlan-paritásbit van (a fentiekben leírtak szerint). A forrás és a cél paritásbitjét összehasonlítjuk, és ha nem egyeznek meg, akkor 1 biten hiba történt. A paritásbittel észre lehet venni, ha az eltérések (hibák) száma páratlan. Ha a hibák száma páros, akkor a paritásbit nem jelez. (a paritásbit azt nem tudja megmondani, hogy hanyadik biten volt a hiba, csak azt, hogy volt, ebbõl adódóan nem tudja javítani a hibákat, csak detektálni. A hibajavításra külön erre specializált algoritmusok léteznek) A bithibák detektálására (és javítására) sok más, ettől eltérő módszer is létezik. (De ezekkel a hardver I-II és a DSP című tantárgyak foglalkoznak) Számítógép (Definíció): A számítógép olyan automatikus feladatmegoldó eszköz, amely elektromosan reprezentált adatokat kezel. A feladatok egy szűkebb körét analóg számítógépekkel is el lehet végezi (integrálás, deriválás stb., ám

ezek célgépek) Digitális, elektronikus számítógéprõl akkor beszélünk, ha a feldolgozott információt diszkrét elektromos potenciálszintek képviselik, 5 amelyeknek a kialakítására legalkalmasabbak a kétállapotú elektronikai eszközök. (Gál Zoltán Hardver 1, 3 oldal) Neumann - Elvek (1946): 1. A számítógép legyen soros mûködésû (az utasítások sorban, adott vezérlési elv alapján következzenek) 2. A számítógép teljesen elektronikus felépítésű legyen és a 2-es számrendszert használja (elektromosan ugyanis könnyen reprezentálható és egy sor probléma egyszerűbben megoldható, csökkenthetõek a fizikai méretek, csökken a hő leadás, ezáltal nõ az üzembiztonság) 3. A számítógép rendelkezzen belsõ memóriával 4. Tárolt-program elve: Ebben a belsõ memóriában helyezkedjenek el az adatok, illetve a programok is (az emberi beavatkozás minimalizálható) 5. A számítógépek univerzális feladatmegoldásra legyenek

alkalmasak (ne célgépeket gyártsanak) Régen voltak többnyire vagy kevésbe, de nem Neumann-elvû gépek. Ilyenek a külsõ feldolgozású, belsõ memóriával nem rendelkezõ gépek, valamint azok, amelyek nem 2-es számrendszer alapúak, azaz központi feldolgozó egységének nem volt része a bináris aritmetika. Ezek a gépek még a számítógépek elsõ generációinak valamelyikéhez sorolhatók Napjainkban a nem-Neumann elvű számítógépek a nem soros elérésű gépek, ezek több számítógép párhuzamos összekapcsolásával készülnek, ezzel is megsokszorozva a kapacitást. Ezeket a számítógépeket gyakran mainframeként (központi kiszolgáló) használják. A technológiát, melyen az ilyen számítógépek alapulnak, fürtölésnek nevezzük A nagyteljesítményű mainframek többsége ilyen, un. Fürtölt-rendszer Napjainkban a fürtölés a nagyteljesítményű számítógépek gyártásánál tendenciává vált. Szintén nem Neumann-elvűek azok a

számítógépek, amelyekben az univerzalitás nem teljesül. Ide tartoznak a különböző célrendszerek, amelyeket kifejezetten egy adott tevékenység(kör) ellátására terveztek. Ezek az un Beágyazott rendszerek (Pl.: autók, repülõgépek fedélzeti számítógépei, számológépek (és háztartási eszközökben is fellelhetõek: TV, videó, hûtõszekrény (ami olyan) stb.) Ezekben a számítógépekben a központi egység feladatát mikrokontroller(ek), PIC-ek (Programable Integrated Chip) látják el. A számítógép részei A számítógép elvi felépítése Input egység(ek) Központi Egység(ek) Output egység(ek)  Háttértár(ak), Tár(ak) A számítógépet két nagy részre lehet osztani. 1. A számítógép-rendszer: azon eszközöket, részeket soroljuk ide, melyek nélkül nem működőképes a számítógép. A számítógép-rendszer fogalma alatt a Központi egység(ek) és a tár(ak)

együttesét szokás érteni. A számítógép-rendszer feladata az adatfeldolgozás, a művelet végrehajtás és vezérlés. Valamely bemeneten kapott adatokon elvégez bizonyos műveleteket, majd ezek eredményét a kimenetnek adja át. A számítógép-rendszerben az adatok áramlása kétirányú: befelé és kifelé is folynak. 2. A Perifériák: A perifériák a számítógép azon részei, amelyek nem a számítógép-rendszer részei, de a számítógép részei. A perifériák közé elsősorban a külső egységeket szokás sorolni, ám ez a mai világban nem feltétlenül van már így. Külső egységeknek azokat az egységeket, eszközöket nevezzük, melyek a számítógép-házon kívül helyezkednek el, belső egységeknek pedig azokat, 6 melyek a számítógép házon belül vannak. A külső egységek kivétel nélkül perifériák, ám a belső egységek között is találunk olyanokat, amelyek perifériának minősülnek a definíció alapján. A perifériák

feladata az adatok be- vagy kivitele, esetleg tárolása. A számítógép-rendszer Adatainkat a számítógépen számokként tudjuk ábrázolni, a számítógépen számokkal dolgozunk (legyen az akármilyen számrendszerben is értelmezett). A számítógép-rendszer számára viszont az egyetlen elfogadható számrendszer, amivel műveleteket képes végezni, az a bináris (2-es) számrendszer (Neumann-elvű számítógépeknél). Ez azt jelenti, hogy a tár bináris adatokat tud letárolni, valamint a központi egység bináris adatokon kapja a bemenetet és azokon bináris logikai műveleteket tud végezni (a logikai műveletekkel később foglalkozunk részletesebben). (Mindezek alól kivételt képeznek azok a nem-Neumann - elvű számítógépek amelyeknek része a decimális vagy más aritmetika (a bináris aritmetika megléte mellett, vagy helyett), ilyen például az IBM 360-as számítógép széria) A Neumann-elvű számítógépekben (számunkra most a központi egység

a fontos) a bináris aritmetika van beépítve, mivel elektromosan könnyű reprezentálni. A számítógép-rendszer részei a számítógép azon részei, melyek nélkül nem működőképes a számítógép. Elsősorban a Központi Feldolgozó Egységet és a tárat soroljuk ide. (Hardver szinten: alaplap, memória, processzor) Központi Feldolgozó Egység 3 fõ része van: 1. Gyors elérésű memóriarekeszeket tartalmaz (regiszterek), amelyekre névvel hivatkozunk Szerepük speciális, a processzorban helyezkednek el. 2. CU: Central Unit (központi egység) Feladata az irányítás, vezérlés 3. ALU: Arithmetical Logical Unit (Aritmetikai és Logikai Egység): aritmetikai és logikai mûveleteket végez. E három rész együttese a CPU (Central Process Unit – Központi feldolgozó egység), fizikai vonatkozásban a processzor. A processzor bináris adatokon képes bináris logikai műveleteket végezni. A processzor saját belső utasításkészlettel rendelkezik, ezeket az

utasításokat nevezzük gépi szintű utasításoknak. Minden processzortípus más-más utasításkészlettel rendelkezik. (Pl: Intel, Alpha cégek processzorai nem kompatibilisek egymással) Ám az adott gyártó által gyártott processzorok felülről kompatibilisek a szintén azon gyártó által gyártott régi processzorokkal. Tár (Memória) A memóriát szokás tárnak nevezni, nem keverendõ a háttértárral. A memória a feldolgozásműveletvégzés során tárolja (ideiglenesen) az adatokat (és az éppen futó program(ok) kódját is), jellemzõ rájuk, hogy a gép kikapcsolása során (néhány speciális típustól eltekintve [ROM, PROM, EPROM, EEPROM]) tartalmukat elvesztik. Viszont a háttértárakhoz képest nagy előnyük, hogy lényegesen gyorsabb elérésűek. 7 A memória bájtszervezésű, azaz a legkisebb egység, amit egyben ki tudunk olvasni, illetve le tudunk tárolni, amivel műveletet tudunk végezni az a bájt. A memóriában minden egyes bájt

rendelkezik egy egyértelmű sorszámmal. Ezzel a sorszámmal tudunk a memória egy bájtjára hivatkozni. Minden bájtot átlagosan ugyanannyi idõ alatt lehet elérni (RAM), ezt az idõt nevezzük hozzáférési idõnek, a hozzáférési idõ memóriatípusonként változik: (SIMM = 70 ns, EDO = 60 ns). A Perifériák Ez alapján a perifériák 3 nagy csoportját különböztetünk meg:  Tisztán bemeneti (input) egységek  Tisztán kimeneti (output) egységek  Vegyes Ki- és bemeneti (I/O) egységek Input Egységek Az input egységek segítségével tudunk adatokat közölni a számítógéppel. A külvilágból érkező jelek (hanghullám, vizuális-, fényjelek stb.) egy speciális eszköz segítségével analóg jelekké alakul át, ezeket az analóg jeleket az ADC (analog-digital converter, ez egy chip vagy áramkör) digitális jelekké alakítja át. A számítógép egy digitális eszköz, amely digitális adatokon tud dolgozni, tehát az analóg jelek digitális

konverziójára szükség van, mivel az ember által feldolgozni kívánt adatok, információk a legtöbb esetben nem digitálisak. (Nem szükséges az analóg-digitális konverzió akkor, ha digitális adatokat akarunk egyből bevinni a számítógépbe, mondjuk egy másik számítógépről, vagy pl.: billentyűzet) Ez a digitális jel már egy adott számrendszerbeli számként értelmezhető információ. Neumann-elvű gépek esetén az ADC 2-es számrendszerbeli bináris értékeket képez az analóg jelekből (tehát 0,1-eket). Ezzel, az immár bináris adattal a számítógép központi egysége már tud műveleteket végezni, fel tudja dolgozni. Az adatok érkezhetnek az input egységekről a számítógép felé bináris vagy nem bináris formában (pl.: billentyűzetről binárisan, lyukkártyáról decimálisan. Vigyázat! A billentyűzet egy I/O eszköz) Abban az esetben, ha a bemenő adatok nem bináris formában vannak, szükség van arra, hogy az adott számrendszerbeli

beérkező számot kettes számrendszerbelivé konvertálja (alakítsa) át a számítógép. (A leggyakoribb a decimálisról binárissá való átalakítás). Az input egységek felépítéséről, típusaikról részletesebben a Hardver Alapismeretek című fejezetben fogunk foglalkozni. Output Egységek A számítógépbe az input egységeken keresztül érkezett adatokat a központi egység feldolgozza, majd 8 az eredményt a kimeneti egység(ek)re küldi. Az output egységek feladata a feldolgozásnak, a műveletek végeredményének megjelenítése, továbbküldése a cél felé. A kimeneti adatok mehetnek a felhasználó (ember), vagy egy másik számítógép (számítógépes eszköz), vagy nem számítógépes eszköz felé is. (az adat végcélját tekintve) (Neumann-elvű számítógépek esetén) A központi egységet az eredmények bináris formában hagyják el. Abban az esetben, ha a kimeneti adatok egy másik számítógép felé kell, hogy áramoljanak, nem

szükséges semmiféle átalakítás, mivel az adatokat a másik számítógép is bináris formában várja az inputján. Abban az esetben, ha az adatok a felhasználó felé áramlanak, akkor szükség van arra, hogy a bináris adatok decimálissá legyenek alakítva, mivel az ember tízes számrendszerben dolgozik előszeretettel. Valamint, ha a kimeneti információ nem a számítógép monitorán jelenik meg, akkor szükség van arra is, hogy a digitális jeleket (adatokat) analóggá alakítsa át a számítógép. (Pl: papíron, hanghullámok formájában stb.) A digitális-analóg átalakítást a DAC (Digital-Analog Converter) látja el, az így keletkezett analóg jelet valamilyen módon speciális hardver eszközök az ember számára is értékelhető formára dolgozzák át. (Pl a nyomtató esetében a nyomtatóra érkező jelek a nyomtató saját DACja segítségével analóg jelekké alakulnak át, amely analóg jeleket a nyomtatófej a tinta segítségével papíron is

láthatóvá teszi. Itt a DAC a nyomtató egy speciális chipje, míg az analóg jelek tényleges papírra vetését a fej és a mozgatómechanika végzi el. A mai értelemben vett nyomtatók esetében a DAC, és esetleg vezérlőchip, a mozgatómechanika és a fej egy fizikai egységet képez.) Mivel az ember számítógépes munkája során többnyire a monitort használja kimeneti eszközként, ezért a leggyakoribb, legszükségesebb konverzió a binárisdecimális konverzió. Az output egységek típusaival és felépítésükkel később a Hardver Alapismeretek című fejezetben fogunk foglalkozni részletesebben. I/O Egységek Az I/O egységek rendelkeznek mind az input, mind az output egységek jellemzőivel. Az I/O egységek kétirányú kommunikációt tesznek lehetővé. Az I/O egységek közül számos belső egység A belső I/O egységek vagy „meghajtó” (Drive), vagy kártya formájában, vagy alaplapra integrálva jelennek meg. Az I/O egységek egy speciális

típusában sorolhatók azok az eszközök, melyeknek a feladatuk az adatok tárolása, ezek a háttértárak. Háttértárak A háttértárak feladata az adatok tárolása hosszú távon (értsd: évek). A háttértárak kétirányú adatfolyamot tesznek lehetõvé. Itt az az igényünk, hogy NE legyen konverzió, azaz a tárolás (késõbbiekben majd a beolvasás, visszaírás) igazodjon a központi egységhez számrendszeréhez. További igényünk a háttértárakkal kapcsolatban az, hogy megfelelõ idõn belül kezelje le az adatokat, tehát a sebesség nem elhanyagolható szempont (már csak azért sem, mert a háttértár a számítógép relatíve leglassabb alkatrésze :) ). Szintén fontos az adatbiztonság és az élettartam, hiszen azért tárolunk adatokat, mert szeretnénk, hogy azokat késõbb is elõ lehessen venni. Megjegyezzük, hogy a tárral ellentétben (pontosabban a RAM-okkal ellentétben) a háttértárakon tárolt információ a gép kikapcsolása után is

megmarad. 9 Adatábrázolás Numerikus Adatok Tárolása Különbözõ adattípusokat definiálhatunk, melyek tárolási módjukban, illetve pontosságukban térnek el egymástól (hány biten, bájton tároljuk a számadatot). Számadatokat alapvetően kétféle módon ábrázolhatunk: fixpontosan és lebegőpontosan. Bináris számok fixpontos ábrázolása A fixpontos ábrázolás lényege az, hogy a letárolandó számban a tizedes pont helye fix helyen van, ezzel a módszerrel az egész számokat (vagy tizedes törtek egész részét) lehet letárolni. Nemnegatív Egészek esetén A + jelet nem tároljuk, elhagyjuk, mivel egy szám esetén alapvetően a pozitív előjelet feltételezzük. 8 biten: 0 - 255ig 256 db számot tárolhatunk. (bájt) 16 biten: 0 - 216 –1 azaz 65536 db számot tárolhatunk, (szó) stb. Ha nagyobb számok letárolására van szükségünk, akkor tárolhatjuk 32 biten is (duplaszó), de akár 64 biten is (négyszó) Ezek számításaink

többségéhez megfelelő intervallumok. Elõjeles Egészek esetén Tárolnunk kell az elõjelet, ehhez 1 bitet fel kell használnunk a 8-ból. A Signumbit (előjelbit) 1, ha a szám negatív és 0, ha a szám pozitív. Általában a negatív számokat tároljuk ezzel az ábrázolási móddal. A fennmaradó 7 biten kell tárolnunk magát a számot, így 128 db számot tudunk tárolni: 0 - +127, -127 - 0. Ez az intervallum kissé szűkös, és látható, hogy ebben az esetben a 0 - t kétféleképpen tárolhatjuk: +0, -0, ami pazarlás. A kettes-komplemens használatával ezt kiküszöbölhetjük. Ezért negatív egész számok tárolására használjuk a kettes-komplemenset! A Kettes-komplemens 1. Rögzítjük a bitek számát (legyen most a példában 8), megkeressük a helyi érték szerinti legelsõ 1est A méret rögzített, tehát, ha a bitek száma kevesebb, mint a rögzített bitérték, akkor 0-ákkal balról kiegészíthetjük. Negatív számok esetén elõször a szám

abszolút értékét vesszük 2. Bitenként negáljuk (lásd a "műveletek logikai értékekkel" fejezetet, értsd: invertáljuk) az eredeti bitsorozatot 3. A negált alakhoz hozzáadunk 1-et (bináris összeadás) Pl.: 00010011 11101100  11101101 (decimálisan szólva: 19, 236, 237) Ezzel a módszerrel -128 -tól +127 -ig tudjuk ábrázolni a számokat 8 biten. (Így a kivonás visszavezethetõ az összeadásra és elkerültük a túl- vagy alulcsordulást. Tulajdonképpen mi történt? -x helyet, 256-x -et tároljuk le, így nem kell plusz egy bitet elõjeltárolásra fordítanunk. Többletes tárolás Egy másik módszer a negatív számok tárolására az un. „többletes tárolás” Ennek lényege az, hogy a negatív számot eltoljuk jobbra az illető bitmélységben legnagyobb jelszám felével. (Pl: 8 biten 128 al) 10 Így nem magát a számot tároljuk, hanem a szám eltolt változatát. A megjelenítés/feldolgozás során balra kell tolni a számot,

hogy az eredeti számot kapjuk vissza. Azt, hogy mennyivel toltuk el, nincsen letárolva, tehát az eltolás mértéke egyedül a bitek számától függ, amin a számot tároltuk. Ezzel a módszerrel sem lehet nagyobb intervallumban tárolni, mint a kettes komplemenssel, de viszont ezzel a módszerrel is el lehet kerülni azt, hogy letároljuk az előjelet. Elõfordulhat, hogy az eredmény mégis a felsõ intervallumon kívülre esik, ekkor fixpontos túlcsordulásról (Fixed Overflow) beszélünk (ha az alsó intervallumnál kisebb a szám, akkor pedig fixpontos alulcsordulásról beszélünk). Ez akkor fordulhat elõ, ha túl nagy számokat ábrázolunk pozitív vagy negatív irányban, vagy ha 0-val osztunk. Ezekben az esetekben a program futása megszakad, és hibaüzenettel kilép. (pl: ha össze akarjuk adni a 11111111 és a 10000000 bináris számokat, ha a maximális adathossz 1 bájt, =111111111 (9 db 1-es), ami nem fél bele a bájtba. Túlcsordulás) Lebegõpontos

ábrázolás (Floating Point) A lebegõpontos ábrázolás nyújt lehetõséget a törtszámok, vegyes törtek tárolására. Ezeket a számokat az informatikában "valós" számoknak hívjuk. Felhasználjuk azt, hogy minden szám felírható normál-alak formában. N = m * ak, ahol m a mantissza, a a számrendszer alapja és k a karakterisztika. A tárolásnál az alap bitjeinek száma rögzített (létezik 2-es, 10-es, 16-os alap). Az alap elméletileg bármilyen 1-nél nagyobb természetes szám lehet. (ám az informatikában gyakorlati okok miatt csak a fentiek terjedtek el, hiszen 2 hatványaival könnyû a bináris aritmetikának számolni, és 10-el a decimális aritmetikának) A különbözõ számítógép arhitektúrák másképpen valósították meg a float point-ot, mi most a PC-ben használttal fogunk foglalkozni. A PC-k 32 biten (4 bájton) tárolják a lebegõpontos számokat, 2-es alappal és 7 bites karakterisztikával. Természetesen ettõl a programozási

nyelvek és implementációik eltérhetnek. Egyes nagy pontosságú számításokat igénylõ alkalmazásokban (pl: atomfizika) nem 4 hanem ennél több bájtot használnak a lebegõpontos tárolásra. A lebegõpontos ábrázolás lényege, hogy a mantissza (ami a szám pontosságát, tehát a tizedes jegyek számát határozza meg) kellõen nagy ahhoz, hogy nagy pontossággal tudjunk számolni. A karakterisztika, mivel egy hatvány számértéke, a nagyságrendet határozza meg. (a karakterisztika bitszámának növelésével növelhetjük a lebegõpontos szám értelmezési tartományát) Tárolás: S | k | m | PC-n általában 32 bites a float (lebegőpontos adattípus), azaz 4 bájton kell tárolnunk. (32 bites x86 arhitektúrában ebben a legtöbb programnyelv legtöbb implementációja egyet ért) S: a mantissza elõjele (1 bit, ez elsõ bit, a signumbit (elõjelbit)), értéke: 1, ha a mantissza negatív és 0, ha a mantissza pozitív. k: a karakterisztika az adott biten

értelmezett maximális jelszám (2n) (ahol n a bitek száma) felével jobbra van eltolva (7 bites karakterisztikában 64-el kell eltolnunk a számot, 8 biten 128-al stb.) Itt a többletes tárolást használjuk ki, annak érdekében, hogy ne kelljen a karakterisztika előjelét külön tárolni. (Elõjeles egész ábrázolás n/2-es többlettel) A karakterisztika bitjeinek száma rögzített kell legyen. 11 Megjelenítésként természetesen a letárolt karakterisztikából ki kell vonni a többletet. m: mantissza (a fennmaradó 32-(l+1) bit, ha 32bites a float point és 7 bites a karakterisztika, akkor ez 24 bit) (l itt a karakterisztika bitjeinek számát jelenti) A mantisszát olyan formában írjuk fel, hogy a normál-alak képzésnek megfelelõen nézzen ki: m= 0.yx, mégpedig olyan módon, hogy y ne 0 legyen, tehát a pont (tizedespont, kettedespont, tizenhatodospont) után értékes jegy legyen (minden számjegy értékes, ami nem nulla). Rejtett 1-es tárolásról akkor

beszélünk, ha a mantissza elsõ bitjét (ami mindig 1-es definíció szerint) nem tároljuk le, csak a megjelenítéskor írjuk ki, ezzel nyertünk 1 bitet. Elõfordulhat, hogy túl nagy, vagy túl kicsi számot kellene tárolnunk, ekkor a lebegõpontos ábrázolásnál is van túlcsordulás (Overflow), vagy alulcsordulás (underflow). Mivel a lebegõpontos számábrázolási mód az, ami a legkevésbé érthetõ a hallgatók többségének számára, nézzünk meg egy példát, azért is, mert vizsgán ilyen lesz az egyik beugró feladat! Példa A -56.7 számot tároljuk lebegõpontosan 7 bites karakterisztikával, 32 biten, 16-os alapra normáltan, nem rejtett 1-es tárolással. Az eredményt hexadecimálisan jelenítsük meg! Elõször is hexába kell átírnunk a számot. Ehhez szét kell választani az egészrészt és a törtrészt! 56-ot át kell írni tetszõleges módszerrel hexára, majd külön 0.7-et is 56 10 =3*16+8=3161+8160=38 16 0.7 |16 11.2| B 0.2 |3 (innentõl

kezdve a tört végtelen, azaz 0B333333) tehát a decimális 56.7=38B3 hexában (az elõjel itt negatív, tehát az elõjelbit értéke 1-es lesz) normálalakra írjuk a hexát: -38.B3 = -038B3*162 (3 nem = 0, tehát jól csináltuk) ezzel kész vagyunk, már csak tárolni kell: m=38B3 k=2+64=66 (64-es többlet!) S=1 (mert negatív a mantissza) 66=1000010 2 ezt kell letárolni: 1|1000010|38|B3|33| C | 2 |38|B3|33| (itt most kevertem a binárist és a hexát, hogy kevesebbet kelljen gépelnem, de vizsgán ezt te ne így csináld, hanem írd ki szépen binárisan a számot és csak azután alakítsd át. Azért is, mert ha nem 7 bites a karakterisztika, hanem 8, akkor csúszol jobbra 1 bitet és itt a példát ha tekintjük, akkor a 38B3 -at át kellene írni binárisba) azaz S + k = 1 bájt, m egészrésze 1 bájt, törtrész 1 bájt, de mivel nekünk fel kell tölteni a 24 bitet mantisszával, ezért (és mivel végtelen szakaszok tizedes törtrõl van szó) ezért 38B333.3-at a

kívánt bájthosszig ismételhetjük, ha nem lenne szakaszos tizedes tört, akkor az illetõ pontosságig kell meghatározni a mantisszát (a hexa átalakításnál) azaz a keresett szám = C238B333. 12 Decimális ábrázolás BCD (binárisan kódolt decimális) A BCD még a lyukkártyás hagyományokat õrzi, amely decimális értékekkel dolgozott, így az inputba is decimális értékek jelentek meg. A decimális számjegyeket egyenként írjuk binárissá és külön tárolunk minden számjegyet. A decimális számokat egyenként 4 biten tárolták. 0000  0 0001  1 0010 2 . . . 1001 9 Pl.: 123 10 =0001 | 0010 | 0011 2 Ebbõl is látszik, hogy a számjegyenként történõ átalakítás nem gazdaságos. Zónázott Decimális (Zoned Decimal) A zónázott decimális az input során használt. Bemenetként bájtokat viszünk be (pl karakter) a 8 bites bitsorozatot bájra képezzük: ZS | ZS |ZS | . |S elõjel| ahol Z az un. Zónajel (4 bit 1-es = F (hexában) )

és S maga a számjegy BCDben Ezzel 1 bájton tárolhatunk egy számjegyet. Látszik, hogy a módszer meglehetõsen pazarló Az elõjelet úgy tároljuk, hogy az utolsó bájtban nincsen zónajel: az elsõ 4 biten tároljuk a számjegyet és az utolsó 4 biten az elõjelet. Ha az elõjel + akkor oda C kerül, ha -, akkor D (természetesen hexában értendõ) Pakolt decimális (Packed Decimal) Az elõjelet az utolsó 4 biten (fél bájt) tároljuk, ezzel a módszerrel fele annyi bit szükséges, mivel nincsen zónajel. A pakolt decimális a számításoknál hasznos (mivel kevesebb bit kevesebb mûvelet), a zónázott decimálist inkább tároláskor használhatjuk. (EBCDIC) Nem-numerikus adatok tárolása Ide tartoznak az alfanumerikus karakterek (betűk, szóköz, írásjelek, egyéb jelek). Az ilyen információk tárolása karaktersorozatok (sztring) formában történik, mivel a bitsorozat és a karakterek között kölcsönösen egyértelmû megfeleltetés létesíthetõ. A

bitsorozat hossza meghatározza a karakterek maximális számát. Pl.: 7 biten 128-féle különbözõ bitsorozat lehetséges, ezért 7 biten 128 különbözõ karakter tárolható 8 biten már 256-féle, stb. Régen volt 6 bites tárolás is, ekkor 64féle karaktert lehetett letárolni, ma a 7 és 8 bit a gyakoribb bitmélység. Kódrendszerek A karakterek (mint bitsorozatok) egyértelműen sorszámozhatóak, sorbaállíthatóak. Minden bitsorozathoz egy és csakis egy karakter rendelhetõ, a leképezés egyértelmû kell legyen. Ezek a leképezések bizonyos szabályosságokat követnek (pl.: a betûk ABC sorrendben követik egymást, a 13 számok növekvõ sorrendben vannak letárolva, a betűk egymás után következnek stb.), ezeket a szabályos leképezéseket nevezzük kódrendszereknek. Két fontos kódrendszert érdemes megemlíteni: EBCDIC, ASCII (ezek itt i betűk és nem római egyesek. Csak azért mondom, mert a szigorlat szóban történik) EBCDIC    

8 bites kódrendszerek a betûk (a,b,c) elõbb vannak a sorban, mint a számok Hézagok vannak egyes helyeken a karakterek között (a lyukkártya hagyományai miatt) IBM fejlesztette ki, és elõnyös pl. az összehasonlítások szempontjából, de bonyolult is emiatt ASCII (American Standard Code for Information Interchange)      Ez az Amerikai Szabványügyi Hivatal szerint szabványosított kódrendszer alapvetõen 7 bites (max. 128 karakter) a számok és egyes vezérlõkarakterek megelõzik a betűket a betűk folyamatosan követik egymást nincsenek "hézagok" A kódrendszereket úgy próbálták kialakítani, hogy a kis és nagybetűk egy kupacban legyenek lehetõleg és ez a két kupac egymást kövesse, a kis- és nagybetűk csak 1 bitben térjenek el. Ez Amerikában megfelelõ volt, hiszen õk nem használnak ékezetes és egyéb nemzeti karaktereket (illetve ami nekik a nemzeti az egyébként a nemzetközi :) ), a világ többi országa szeretné

látni a saját nemzeti karaktereit, ezért van az ASCII - nek 8 bites kiterjesztése is. Itt már 256 karakter fér el a karaktertáblában, az elsõ 128-at változatlanul hagyták (kompatibilitási okok miatt), míg az utolsó 128 helyet tetszõlegesen lehet kitölteni; erre un. kódlapokat alkalmaznak, amik a felsõ 128 karaktert tartalmazzák, ezek a kódlapok viszont tetszõlegesen cserélhetõek. A kódlapokra is vannak szabványok (pl.: a 852-es, a latin2-es kódlap, ami a magyar karaktereket teljes egészében tartalmazza, ezeket az ISO8859 szabvány rögzíti) Létezik 16 bites kódrendszer is (ahol 65536 féle karakter fér el a karaktertáblában, azaz a világ minden népének jelei, beleértve a kínai jeleket is), itt már 2 bájt szükséges egy karakter letárolásához (azaz a 8 bites kódrendszerekhez képest kétszer annyi helyet foglal ugyannyi információ). "Az egyik ilyen tipikusan 16 bites kódrendszer a Unicode A baj csak az, hogy a UNIX már hallott a

unicoderól, de nem nagyon használja, a többi operációs rendszer még igazából azt sem tudja, hogy enni kell-e vagy inni." (- Dr Juhász István ) Létezik változó bitszámú kódrendszer is, ez a UTF-8. Karakterláncok (Sztringek) Rögzíteni kell azt, hogy milyen hosszú az illetõ karakterlánc (azaz x*8 bit=x bájt). Ha a string az elõírt méretnél hosszabb, akkor a maximális méret elérése után lecsonkul a string, ha kevesebb, mint a maximális méret, akkor pedig szóközökkel (vagy null-karakterekkel) kiegészítjük. Ha a sztringhosszat 1 bájton tároljuk, akkor egy string maximális hossza 256 karakter lehet, ha már 2 bájton tároljuk a hosszat, akkor maximálisan 65536 karakter lehet egy karakterláncban. Ha a sztring hossza 0, akkor üres-sztringrõl beszélünk. A másik, a C nyelv által használt módszer: nem tároljuk a karakterlánc hosszát, ám, hogy tudjuk hogy mekkora, a sztring végét egy null-karakterrel (nulla kódú karakter)

jelezzük. Ez a módszer sokkal 14 helytakarékosabb, mint az elõzõ. A módszer felbecsülhetetlen előnye továbbá az, hogy nincs méretbeli korlát a sztringre nézve (leszámítva azt a tényt, hogy a tár véges) (ezt a módszer használja a C nyelv is) "Műveletek" sztringekkel       Olvasás Írás Tárolás Megjelenítés Összehasonlítás Mintaillesztés Az olvasás, írás, tárolás, megjelenítés elég triviális "műveletek". (Ezek a sztringekkel a gép által végrehajtott műveletek, nem pedig sztringeken értelmezett igazi mûveletek, mint pl.: összefûzés, prefix-képzés stb.) Annál izgalmasabb viszont az összehasonlítás és a mintaillesztés. Összehasonlítás Az összehasonlítás feltétele, hogy a két sztring hossza egyenlõ legyen, ha nem egyenlõek, akkor a rövidebbet szóközökkel kiegészítjük. (A gyakorlatban a sztring véget minden más betűnél kisebbnek tekintjük és a hátralevõ betűket nem

vizsgáljuk, továbbá a sztringvégi szóközöktõl el szokás tekinteni) Karakterrõl karakterre megnézzük, hogy a karakterek ugyanazok -e. (esetleg megjegyezzük az eltérések számát és/vagy helyeit, és esetleg eltekintünk a kis- és nagybetűk közti különbségektől) Meddig dolgozzon az algoritmus?   Az elsõ eltérésig (ez akkor hasznos, ha alapvetõen azt feltételezzük, hogy a két lánc egyenlõ, pl.: ellenõrzésekkor) A sztring végéig (ekkor szokás az eltérések számát és/vagy helyét figyelni) Mintaillesztés Ez a művelet azt jelenti, hogy figyeljük, hogy az egyik sztring részsztringje - e a másiknak. Sztringgekkel sok más egyéb műveleteket is lehet végezni, mint például: rendezés, összefűzés stb. Dátum és Idõ adatok tárolása Év, Hó, Nap ; Óra, Perc, Másodperc (magyarul, USAban Hó-Nap-Év) Az év során csak az utolsó 2 jegyet tárolták (1999nél például elég 99-et letárolni), ebbõl a spórolásból adódott az

Y2K probléma (2000 (00) kevesebb, mint 1999 (99)). Ilyenkor az õrzési határidõnél hiba van. A jól átgondolt rendszerekben a teljes dátumot tárolják (pl. az Oracle rendszerben ie 47120101 - iu 4712.0101), így még egy jó pár ezer évig elég lesz a hely a dátumtárolásra :) Látszik, hogy egyes adatbázisrendszerek vagy táblázatkezelő rendszerek egyedi dátumkezelést használnak. A Microsoft Excel például egy egész számot használ dátum gyanánt (1900. 0101 = 1, 19000102 = 2 stb) Logikai Adatok tárolása A Logikai értékek az Igaz és a Hamis egyértelműen eldönthető diszkrét 2-es számrendszerbeli 15 számjegyeknek megfelelő értékek. Különböző programozási nyelvek és implementációk, szoftverek eltérően kezelik az igaz és a hamis fogalmát, pontosabban, hogy az igaz és a hamis logikai értéket melyik bináris értékhez rendelik hozzá. Mi a 0-t tekintjük hamisnak, és az 1-et igaznak. (ebben a jegyzetben a későbbiekben) Egyes

esetekben a 0-t tekintjük igaznak és a bármi mást (pl.: 1) hamisnak (Így gondolkodik egyes esetekben pl.: a C nyelv) Ha több bites az információ, akkor általában (a fenti szemléletben) azt tekintjük igaznak, ha minden bit 0, vagy ha az első bit 0, vagy az utolsó bit nulla (itt 3 különböző gondolkodásmódot írtam 1 mondatba), és hamisnak a bármi mást. DE – hangsúlyozom – EZ OPERÁCIÓS RENDSZER, SZOFTVER, PROGRAMOZÁSI NYELV, IMPLEMENTÁCIÓ FÜGGŐ. Műveletek logikai értékekkel A logikai értékeken végrehajtott műveletek bitenként hajtódnak végre, ezek a műveletek minden processzor szintjén ugyanúgy értelmezettek. Ezekből a műveletekből (és még mégegyszer ennyiből, amit nem fontos tudni, csak Hardver I - ből, meg Art of Assembly - ből) épül fel az összes többi művelet, ezeket a műveleteket hardver szinten könnyű kapukkal reprezentálni (lásd: Gál Zoltán – Hardver I) Negáció (NOT) 1 operandusú művelet. A NOT A 0 1 1 0

És (AND) 2 operandusú művelet. Akkor és csak akkor 1, ha mindkét operandus 1 A B A&B 0 0 0 0 1 0 1 0 0 1 1 1 Vagy (OR) 2 operandusú művelet.Akkor és csak akkor 1, ha a két operandus közül legalább az egyik 1 A B AvB 0 0 0 0 1 1 1 0 1 1 1 1 16 Kizáró Vagy (XOR) 2 operandusú mûvelet. Akkor és csak akkor 1, ha a két operandus közül csak az egyik 1 A B A XOR B 0 0 0 0 1 1 1 0 1 1 1 0 Megjegyzés: Több mûvelet esetén van műveleti precedencia. ( ez programozási nyelv függő) (Precendencia: NOT, AND, XOR, OR). A Fentieken kívül léteznek még más műveletek is, de ezek az alapműveletek A Hardver 1 tantárgy során ismertté fognak válni. Szoftver Alapismeretek Szoftver: A számítógépen levõ programok, programrendszerek halmazát, illetve kézzel meg nem fogható adatok, szellemi termékek halmazát (v. annak tetszõleges nemüres részhalmazát) szoftvernek nevezzük. Minden számítógépen léteznie kell valamilyen szoftvernek, szoftver nélkül

a számítógép nem túl sok mindenre használható. A szoftver megjelenése többféle lehet: chipbe integrált, ROMba integrált vagy tárban (esetleg háttértárban). Pl.: A számítógép BIOSa (Basic Input/Output System – Alap ki-, bemeneti rendszer) ugyanúgy szoftvernek minõsül mint az operációs rendszer, vagy bármilyen felhasználói program Milyen legyen a számítógépes szoftver? 1. Látható eredménnyel rendelkezzen 2. Valamilyen adatokon végezzen mûveleteket 3. A szûk értelemben vett számítógépeknél egy "jó szoftver"-el szemben alapvetõ igényünk, hogy a szoftver un. "Bolondbiztos" kell, hogy legyen, ez plusz munka a codereknek (nem csak azt a futási utat kell lekezelni, amikor a feltételek igazként teljesülnek. Pl: "adj be egy számot" inputkérés felveti azt a problémát, hogy mi van akkor, ha a felhasználó nem számot ad meg, hanem mondjuk alfanumerikus adatokat.) Számítógépes szoftvereinket legalább

fájlokban tároljuk. Egy szoftver állhat egy fájlból vagy többõl (ezt a fejlesztõ dönti el), a könnyebb átláthatóság kedvéért a felhasználók túlnyomó többsége a különbözõ programokat különbözõ könyvtárakban helyezi el. A programot tartalmazó fájt futtatható kell legyen az adott operációs rendszerben. A futtatható fájl neve általában maga a program neve, de ettõl az általános illemszabálytól el lehet térni. Ezzel megkönnyítve a késõbbi karbantartást (frissítés, törlés stb.) A szoftvereket alavetõen két dolog jellemzi: a programnév és a verziószám. A programnév egy fantázianév, amellyel a fejlesztõ látja el a programját. A programnév tetszõleges, ám az a jó programnév ami kifejezi a program típusát, feladatát. Például egy szövegszerkesztõ programnak a "Józsi", vagy "Legjobb Programom" nevek helyett inkább a "Szerkesztõ", "Szövegszerkesztõ", vagy egocentrikusabb

programozók esetén a "Józsi Szerkesztõje" nevet adjuk. Mindig gondoljunk arra a programfejlesztés során, hogy nem mi fogjuk használni a programot 17 elsõsorban, hanem mások :) A programnevek sokszor mozaikszavakból tevõdnek össze, aminek ha a rövidítését nem közlik, akkor a felhasználók gyakran irónikus rövidítés-változatokat találnak ki rá. A legenda szerint a GNU EMACS szövegszerkesztõje és fejlesztõi környezetének neve a "Escape+Meta+Alt+Ctrl+Shift" billentyûkombinációból ered, ami gúnyosan utal a program megjegyezhetetlen billentyûkombinációra. Ilyenek voltak a "EMACS Makes A Computer Slow" (az EMACS lelassítja a gépedet), az "Eight Megabytes And Constantly Swapping" (8 megabájt és állandóan a lemezre ír) variációk is. Találkozhatunk olyan programnevekkel is, melyeknek mozaikszava értelmes szó, de ez a szó másra utal, mint ami a program valójában. Erre tipikus példa a Linuxok

"SEX" nevû programja, ami a "Simple Editor for X"-nek a rövidítése, tehát egy szövegszerkesztõ és nem szexprogram. Az ilyen jellegû "fanyar-humor" gyakori a számítástechnikában :) A verziószám egy tizedes törtszám, amelynek egészrészét fõverziónak, törtrészét alverziónak nevezzük. A verziószám a szoftver önmagához viszonyított fejlettségét mutatja A nagyobb változásokat a fõverziószám növelésével, a kisebb jellegû változásokat az alverzió növelésével jelzik számunkra a fejlesztõk. A program neve és a verziószám kezelésének joga a fejlesztõ joga, tehát ha programot fejlesztünk akkor ügyeljünk arra, hogy ugyanolyan nevû program ne legyen még egy. (ezt az általános szabályt azonban néha felrugják nem etikus programozók) Az, hogy milyen mértékben változik a verziószám az teljes egészében a fejlesztõ stílusától függ. A Szoftverek osztályozása 1. 2. 3. 4. 5. Operációs

rendszerek Felhasználói interfészek Rendszerközeli szoftverek Alkalmazói programcsomagok Alkalmazói programok Operációs Rendszerek Az operációs rendszerek a számítógép legalapvetõbb szoftverének nevezhetõ. Operációs rendszer nélkül a számítógép használható, de nem túl sok mindenre (majdnem semmire). Az operációs rendszereket minél gépközelibb nyelven írják meg (pl.: assembly) Minden szoftvernél fontos a sebesség, azaz minél gyorsabban tudjon egy parancsot végrehajtani, valamint az erõforrás-kihasználás. Ezek gépi szinten programozva a legoptimálisabbak (vagy ahhoz minél közelebb esõ nyelven). Felhasználói interfészek Az operációs rendszerre épülõ felhasználó (ember) orientált környezetek. Feladatuk az operációs rendszer használatának könnyítése, egyszerûsítése. Csak az operációs rendszerrel együtt mûködõképesek. Karakteres Menüvezérelt Interfészek A karakteres interfész esetén általában többszintû

menükben lépkedünk és úgy választjuk ki a kívánt szolgáltatást. Ezek elérését un Shortkey-ekkel (billentyûzetkombinációk) könnyítik meg Gyakorlatilag szinte csak az új adatokat kell begépelni egy ilyen karakteres interfészben. Pl.: Norton Commander (és klónjaik) 18 GUI-k A grafikus interfészek mutató-orientáltak (azaz valamilyen mutató-eszköz elengedhetetlen a kezeléshez. pl: egér, fényceruza stb) Szinte már azt sem feltételezi, hogy olvasni tud a felhasználó A shortkey-ek megmaradtak, de megjelent az ikon fogalma, ami olyan bitmap (azaz kép), amit az illetõ programhoz, vagy akár mûvelethez rendelhetek, amely jobban kifejezi az illetõ programot, mint mondjuk a neve. Ekkor elég a megfelelõ ikont kiválasztani a kért eredményt eléréséhez (pl: Microsoft Windows esetén a duplakattintás az egérrel). Az ilyen ikon- és grafika orientált interfészekben is kialakultak tendenciák, mint a karakteres interfészek esetén is (pl.: egér

esetén egykattintás=kiválasztás, duplakattintás= indítás,futttatás. De hasonló "szabályosságok" fedezhetõek fel például az egérgombok nyomvatartásában is (kijelölés). Ezeket a megszokásokat az illetõ szoftver vagy maga az interfész is felrughatja, de nem szokásuk.) A grafikus felhasználó interfészek erõsen ablak-orientáltak, ami azt jelenti, hogy a kül. Ablakokban egymástól függgetlenül tudunk információkat kérni és adatokat megadni. Az olyan rendszerekben, ahol az operációs rendszer fogalma kezd összemosódni (helytelenül) az interfész fogalmával (ebben a rossz szokásban körökkel vezet a Microsoft Windows és a MacOS a többi renszerhez képest), a különbözõ ablakok gyakran különbözõ taszkokat jelentenek. DE EZ NEM TÖRVÉNYSZERÛ! Pl.: DOS alapúak: Windows 311, Windows 95, Windows 98, UNIX, Linux alapúak: KDE, Gnome, WindowMaker, FVWM, BlackBox, Sawfish (meg még van vagy 20 féle) Egy adott számítógépen akár

több operációs rendszer (és több interfész is lehet). Egy idõpillanatban akár több operációs rendszert és Interfészt is használhatunk (manapság) (lásd: VMWare). Megjegyzés: „A Microsoft Windows 9x, Windows 3.x termékei NEM VALÓDI operációs rendszerek” ( - Dr Juhász István ™) Rendszerközeli Szoftverek Olyan szoftvereket sorolunk ide, amelyek abban segítik a felhasználót, hogy egy-egy konkrét feladatot könnyebben el tudjon végezni.        Compilerek (fordítóprogramok): forráskódból tárgykódot generál. (pl: gcc) Szerkesztõk (Linkage editor, linker): tárgykódból futtatható programot készít. (pl: make) Futtató rendszerek Szövegszerkesztõk (Text Editor): formázott szöveg elkészítését segítik. Táblázatkezelõk: táblázatba foglalható adatokkal végezhetõ műveletekben segít. (pl: Excel, Lotus) Levelezõ és üzenõrendszerek Integrált rendszerek: a fentiek közül többet egybeötvöznek

Természetesen a fentieken kívül számtalan más típusok léteznek még, de ezek a legfontosabbak. Alkalmazói Programcsomagok A rendszerközeli szoftverek általánosak, addig az alkalmazói programcsomagok célrendszerek. Általában egy-egy problémacsoport megoldására készítették fel õket. Az alkalmazói programok általában több rendszerközeli szoftver jól összehangolt ötvözetét jelenti. 19        DTP (Desktop Publising): Olyan célrendszerek, amelyek dokumentumok elõállítására, tárolására, módosítására valók (pl.: QuarkXPress, Ventura, TeX, Microsoft Office, StarOffice) Általában ezek nyomdákban és irodákban használtosak. Grafikai Programcsomagok: grafikus képek, animációk készítésére, manipulálására használhatók. (pl.: Corel Draw, Adobe Photoshop, GiMP) Statisztikai és adatfeldolgozó rendszerek (pl.: SPSS) Multimédia: Zenék, hangok, képek, mozgóképek szerkesztésére, készítésére,

megjelenítésére használatosak. (pl: Mplayer, Adobe Premiere, WMP, FastTracker stb) Üzleti Programcsomagok: vállalati és vállalatirányítási rendszerek (Pl.: BaN) CAD/CAM: műszaki tervezõprogramok (pl.: AutoCAD) Szakértõi rendszerek, shellek. Alkalmazói programok Ez az „egyéb” kategória, vagyis azok a programok, scriptek stb. tartoznak ide, amelyeket maga a felhasználó fejleszt ki. Operációs Rendszerek Operációs Rendszer (ISO által szabványosított definíció): Olyan programrendszer, mely a számítógépes rendszerben a programok végrehajtását vezérli (ütemezi a végrehajtást, elosztja az erõforrásokat) és biztosítja a számítógép és a felhasználó közti kommunikációt. Az operációs rendszer a számítógép legalapvetõbb szoftvere, és mint ilyen alapvetõ, rendszerszintû feladatokat lát el. Rajta keresztül tudunk kommunikálni a géppel Minden operációs rendszernek megvannak a maga jó és rossz tulajdonságai, ezek aránya

dönti el egy operációs rendszer milyenségét. Erőforrás: Tág fogalomkör, erõforrás alatt szokás azokat a paramétereket érteni, amivel egy szoftver, vagy rendszer gazdálkodhat. Ide sorolhatjuk a processzoridõt, a memóriát, a háttértárakat, a periféria használatát, stb. Minden operációs rendszernek és programjának megvan a maga erõforrás igénye, azaz mi az a legkisebb erõforrás, aminek megléte esetén el tud futni a program. Multitaszkos, multiprogramozott rendszerekben az erõforrás egy nagyon fontos fogalommá válik. Az operációs rendszer alapvetõen két fõ részbõl áll:  Rezidens rész: Állandóan a tárban elhelyezkedõ rész, az operációs rendszer magja van itt (kernel), valamint a rezidens programok (Pl. A DOS belsõ parancsai ilyenek)A rezidens programok nagyon fontos programokat jelentenek (pl.: parancsértelmezõ, shell), vagy un Figyelõ feladatokat ellátó programok (pl.: Víruskeresõ rendszerek figyelõrészei, pl: F-Prot

esetén az F-Stop) A rezidens programok kis méretû, lehetõleg minél gyorsabb programokat jelentenek, annak érdekében hogy minél kevesebb erõforrást használjanak fel. Annak érdekében, hogy a rezidens programok ne zavarják a felhasználót munkájában csak a kritikus üzenetek kiírására használják a képernyõt, az összes többi üzenetüket fájlba írják (ezeket log-oknak nevezzük). Unix rendszerekben a rezidens programokat daemonoknak nevezzük, daemonként fut a szerver feladatokat ellátó programok többsége. A rezidens programok általában alszanak a memóriában és egy adott eseménynek kell bekövetkeznie ahhoz, hogy futásuk ténylegesen megtörténjen. Amint ennek a kérelemnek, 20  eseménynek a kielégítésével végez, azonnal visszaalszik, ezzel érik el azt, hogy az erõforrásokat, ezen belül különösen az értékes processzoridõt ne foglalják le feleslegesen. (Pl: A Linux rendszerek népszerû bind nevű domain névszervere

daemonként működik, azaz csak akkor fut, ha egy host feloldására kérelem érkezik, azt megoldja, majd rögtön visszaalszik). Azért hoztam példának a Linux rendszerbeli daemonokat, mert a rezidens technika Linux esetén a legkifinomultabb, de találunk példát rezidens programokra DOS/Windows/ OS/2 stb. rendszerekben is. Tranzidens rész: A nem kritikusan fontos programokat/parancsokat nevezzük tranzidenseknek, amelyek különálló programok, amelyek a háttértárban vannak, és csak akkor futnak le, ha a felhasználó futtatja õket. Ilyenek például a DOS külsõ parancsai Az operációs rendszerek alapvetõ jellemzõi Felhasználók száma szerint  Egyfelhasználós: egyszerre csak egy felhasználó dolgozhat a számítógépen. Ilyen a PC-knél maradva a DOS. A programok fizikailag elkülönülnek, így az éppen futó program az összes erõforrást birtokolja.  Többfelhasználós (Multiuser): Egyszerre több felhasználó dolgozhat ugyanazon a

számítógépen. Ezek az operációs rendszerek alapvetõen hálózatra épülnek és abban is gondolkodnak. A többfelhasználós rendszerek magukba foglalnak egy egyfelhasználós módot is. Ilyenek a UNIX, Linux, AIX, VMS operációs rendszerek. Taszkok száma szerint   Egytaszkos: Egyszerre csak egy program futhat (leszámítva a rezidens programokat). A programok fizikailag elkülönülnek, így az éppen futó program az összes erõforrást birtokolja. Nem túl gazdaságos megoldás, de egyszerûen kivitelezhetõ :) Többtaszkos: Egy idõben több program/taszk is futhat. Az "egyszerre" szó itt virtuálisan értendõ, hiszen a processzor egyszerre csak egy mûveletet tud elvégezni (leszámítva egyes csúcstechnológiás párhuzamos programozott mainframeket, amiket a Sun szokott kifejleszteni. Az ilyen számítógép száma a világon százas nagyságrendben értelmezhetõ), de a processzek között olyan kifinomult váltogat, hogy a felhasználónak olyan

érzése támad, mintha minden egyszerre futna. Többfelhasználós rendszerekben a több felhasználó kezelését ugyanilyen módon oldották meg. A hozzáférés módja szerint   Kötegelt (batch): egy program vagy programcsoport futása közben az operációs rendszer nincs kapcsolatban a felhasználóval, nem tudja befolyásolni a program futását. A parancs, program futási eredménye csak a program futása után tekinthetõ meg. Interaktív: A mai korszerû operációs rendszerek ilyenek. A felhasználó állandó kapcsolatban van, és interaktív módon befolyásolhatja a program végrehajtását, parancsokat adhat, megszakíthatja a program végrehajtását. A hozzáférés dialógus (kérdés-válasz, végrehajtás-nyugtázás) formában történik. Ez felhasználóbarátabbá teszi a rendszert A parancsok eredménye azonnal láthatóvá válik a felhasználó számára. A felhasználó egy adott vezérlõnyelv segítségével kommunikál a géppel Egy

vezérlõnyelv lehet horizontális (kevés parancs, sok paraméterrel, pl.: Linuxra bash, zsh stb), vagy vertikális (sok parancs, de kevesebb paraméterrel, pl.: DOS commandcom -ja) 21 Az operációs rendszer funkciói 1. Kapcsolattarás a felhasználóval 2. Programok futtatása, a futás vezérlése, a programok közti kommunikáció biztosítása 3. Processzor ütemezése: multiprogramozott rendszerekben megmondja, hogy éppen melyik processz használja a processzort. 4. Megszakítás kezelés 5. Adat és fájlkezelés 6. I/O vezérlés/kezelés, periféria kezelés Léteznek olyan perifériák melyeknek használata megosztható (pl.: nyomtató) és vannak olyanok is amelyeket egyszerre csak 1 felhasználó használhat (pl.: egér, billentyûzet) A lassabb és gyorsabb perifériák közti kezelést az un Spooling techikával orvosolják, aminek a lényege, hogy az adott eszköz inputját a lemezre irányítják, a program azzal kommunikál, majd onnan folyamatosan íródik ki

a tényleges eszközre. Ilyenek a különbözõ buffer (pufferek). Pl.: Nyomtatópuffer, billentyűzetpuffer 7. Processzvédelem: a processzek védelme egymástól, azaz hogy egy processz ne írhasson a másik processz átlal használt memória és tárterületre, esetleg DMA csatornára vagy IRQra. 8. Tárkezelés: multiprogramozott rendszerekben vetõdött fel ennek igénye Ebbõl többféle létezik: Overlay (a program memóriterületét olyan részekre osztjuk fel, hogy beférjen a tárba és az aktív részeket (szegmenseket) cserélgetjük), Laptechnika (Swap) (szintén szegmenseket képezünk, ezeken a logikai lapokon az program memórifelhasználása jóval nagyobb lehet, mint a fizikai tár. Az éppen használatban levõ szegmensek (lapok) a memóriában vannak, míg azok a szegmensek amik nem használtak az adot idõpillanatban a lemezre íródnak ki. Így végülis tetszõlegesen nagy memóriát lehet lekezelni, azzal a megkötéssel, hogy állandóan cserélgetni kell az

aktív és inaktív szegmenseket)