Content extract
Informatika jegyzetek D Velkeyné Palócz Erika: Informatika jegyzetek Rendszerelméleti alapfogalmak . 2 Egy rendszer leírása. 2 Néhány rendszervizsgálati módszer . 2 Rendszerfejlesztés . 3 Az informatika alapfogalmai. 3 Jel . 3 Analóg és digitális jelek . 3 Kommunikáció . 3 A kommunikáció néhány fajtája . 3 Szemantika és szintaxis . 4 Zajszint . 4 Redundancia . 4 Adat és információ . 4 Számrendszerek . 5 Adatábrázolás a számítástechnikában . 6 Számábrázolás. 6 Fixpontos számábrázolás . 6 Lebegőpontos számábrázolás . 7 Egyéb kódrendszerek. 8 Karakterábrázolás. 8 ASCII kódrendszer . 8 ANSI kódrendszer . 8 Unicode rendszer . 8 Színábrázolás. 8 RGB színrendszer . 9 CMYK színrendszer . 9 Hangábrázolás . 9 Matematikai logika . 10 NEM művelet . 10 ÉS művelet . 10 VAGY művelet . 11 Logikai kifejezések . 11 Műveleti sorrend . 11 Logikai azonosságok . 11 Néhány további logikai művelet . 11 A logika alkalmazása a
számítástechnikában . 12 A számítástechnika alapfogalmai . 12 A számítástechnika története. 13 Pioneers of Computing . 13 Neumann-elvek . 15 Számítógép-generációk . 16 Számítógép architektúra . 17 Hardver architektúra . 17 Szoftver architektúra . 17 A kompatibilitás fogalma . 17 A programok . 18 I. Rendszerprogramok 18 I./1 BIOS 18 I./2 Operációs rendszer 18 Az operációs rendszerek csoportosítása . 18 Fájlkezelés . 19 I./3 Segédprogramok 19 II. Felhasználói szoftverek 19 II./1 általánosabb célú szoftverek 19 II./2 speciális célú szoftverek 19 Néhány felhasználói program ismertetése . 20 Programnyelvek . 21 VPE 1. oldal A szoftverpiac jogi keretei . 23 Szerzői jog. 23 Szoftverforgalmazás . 23 Illegális szoftverkereskedelem . 23 Szoftvervásárlás . 23 Regisztráció . 24 A felhasználó felelőssége . 24 BSA („szoftverrendőrség”) . 24 Programtelepítés . 24 Az adatkezelés törvényi szabályozása. 25 A hatályos
magyar adatvédelmi törvény . 25 Adatfajták . 25 Adatkezelés . 25 Az adatkezelő kötelességei . 25 Az adatszolgáltató jogai. 26 Adatbiztonság . 26 Az adatvesztés okai, megelőzése. 26 Biztonsági mentés . 26 Az illetéktelen hozzáférés megelőzése . 27 Számítógépes vírusok . 27 Informatika jegyzetek D Rendszerelméleti alapfogalmak A(z általános) rendszerelmélet a tudományok között olyan szerepet játszik, mint egykor a filozófia; ma már a rendszerelmélet a „tudományok tudománya”, amelyet minden tudomány segítségül hív alapvető kérdéseinek megválaszolásához, és használja módszerként a konkrét vizsgálataiban. A rendszerelmélet: bonyolult rendszerek törvényszerűségeit természettudományos illetve matematikai módszerekkel vizsgáló tudomány. A rendszerek természetétől függetlenül lehetővé teszi azok tanulmányozását. Rendszer: Együvé tartozó (valamilyen szempont szerint) egymással kapcsolatban
(kölcsönhatásban) álló elemek olyan együttese, amely egészként viselkedik. Elem: a rendszernek az az önálló műveletet végző része, amelyet – a vizsgálat szempontjából – egységnek tekintünk, vagyis őt magát rendszerként nem vizsgáljuk. Minden elemnek feladata van, és így a helyét a rendszeren belül a rendszer szerkezete határozza meg. Azt, hogy mit tekintünk elemnek, mi határozzuk meg annak megfelelően, hogy mit akarunk megvizsgálni. Részrendszer, alrendszer. Környezet: A rendszer környezetét alkotja minden, ami a rendszeren kívül van, de annak működését befolyásolja. Interfész: Az a „felület”, amin keresztül a rendszer érintkezik a környezetével. Folyamat (a rendszerelmélet által használt definíció szerint) a rendszerben végbemenő állapotváltozások sorozata. Ennek során a rendszer elemei különböző kapcsolatban lehetnek egymással. Kibernetika: a folyamatvezérléssel foglalkozó tudományág. Struktúra
(szerkezet, felépítés) alatt egy adott rendszer pillanatnyi állapotát értjük, azaz annak megadását, hogy mely elemek tartoznak a rendszerbe, és ezek között milyen kapcsolatok állnak fent. A rendszereket sokféle szempont szerint szokás csoportosítani, például: Materiális rendszer: Az anyagi világ jelenségei, vagyis anyagi, valóságos rendszerek. Absztrakt rendszer: Tudatbeli, elméleti, gondolati rendszer. Például az egész számok halmaza Statikus / dinamikus rendszer: Ha a vizsgált rendszer szerkezete a vizsgálat szempontjából nem szűkül, nem bővül új elemekkel, elemei nem cserélődnek más elemekre, akkor a rendszer statikus, egyébként dinamikus. Működő / nem működő rendszer: Ha a rendszer elemei közti kapcsolatok változnak, akkor VPE 2. oldal működő rendszerről beszélünk. Épület? Akrobatacsoport? Zárt / nyílt rendszer: Nyíltnak nevezik a rendszert, ha az a környezetével anyagot cserél, különben zártnak. Élő
szervezetek? Televíziókészülék (energiát kap a környezetétől)? Célorientált (célratörő) / nem célorientált rendszer: Ha a rendszernek létezik egy olyan állapota, aminek az elérésére törekszik, akkor célorientáltnak nevezik. Karóra? Rakéta? Természetes / tervezett rendszer: az emberiség által, adott feladat megoldására létrehozott rendszer tervezett rendszer (iskola). Mind a természetes, mind a tervezett rendszerek feladatuk ellátásának alárendelten végzik a tevékenységüket. Határozott (determinisztikus) / határozatlan rendszerek: Attól függően nevezzük így a rendszereket, hogy meghatározott-e a viselkedésük bizonyos külső hatásokra. A reagálása (outputja, kimeneti értéke) nem határozott, ha egy adott külső hatásra többféleképpen is viselkedhet. Adaptív és nem adaptív rendszer: Ha a megváltozott környezetéhez képes alkalmazkodni, akkor adaptívnak nevezzük. Például adaptív közlekedési lámpa, ami érzékeli a
várakozó autókat és ennek megfelelően vált – az egyszerű közlekedési lámpa pedig bizonyos időközönként vált. Egy rendszer leírása Meghatározzuk; mely elemekből áll, és hogy az elemek közt milyen kapcsolatok vannak. Elvileg minden rendszer leírható, de ahhoz jól kell meghatározni (körülhatárolni) a rendszert. Egy (bonyolultabb) rendszer vizsgálatát rendszerelemzésnek nevezzük, melynek során több szempontból vizsgáljuk a rendszert. A rendszervizsgálat szempontjai: • A rendszer rendeltetése, funkciói (feladatai), • a környezettel való kapcsolata, a határán megfigyelhető kölcsönhatások (anyag-, energia-, információ- és egyéb csere, stb.), • viselkedésmódja, • belső kapcsolatai, felépítése. Néhány rendszervizsgálati módszer Fekete doboz módszer: ha nem ismerjük a rendszer belső felépítését, akkor megfigyeljük, hogy milyen eseményekre (inputra, bemeneti, bemenő jelekre) hogyan reagál (milyen outputokat,
kimeneti, kimenő jeleket ad), és az ezek közti összefüggésekből következtetünk a rendszer működési módjára. Informatika jegyzetek D Modell-módszer: Egy általunk készített modellen végezzük el a szükséges vizsgálatokat, ha a rendszer nem vizsgálható (ha megoldhatatlan a vizsgálata, például a tervezés stádiumában van, a vizsgálat a rendszer pusztulását okozná, túl költséges lenne, vagy ritka, lassú folyamatok esetén). Rendszerfejlesztés Ha létrehozni akarunk egy rendszert, akkor a rendszerelemzés tervezéssé válik, melynek végére kialakul a kívánt rendszer modellje. Ennek egy lehetséges menete: 1. A rendszer egészének vizsgálata, környezeti hatások számbavétele 2. A végrehajtandó feladatok számbavétele, ezek alapján részrendszerekre tagolás, a részrendszerek kapcsolatának, viselkedésének tisztázása. 3. A részrendszerek leírása 4. A rendszermodell ellenőrzése A számítógépet és annak használatát
rendszerként a következőkre bonthatnánk: hardver, szoftver, orgver (a számítógépek szervezési környezete), menver (a használó ember). Az informatika alapfogalmai Az informatika tudományágként fiatal: az információval foglalkozó tudományág. Résztudományai például az információelmélet (az információ mérésével foglalkozik), az információtechnológia ( a információ kódolásával, továbbításával és tárolásával, ezek eszközeivel foglalkozik). Jel A jelfajták: A jeleket a jelentésükhöz kapcsolódás módjától függően három csoportba soroljuk: Index („jelszerű” jel, vagy jelzés): A jel közvetlen (fizikai) kapcsolatban van a jelzett dologgal; például a kakaó illata. Ikon: A formájának ábrázolásával, előismerettől függetlenül, mindenki számára érthetően utal a jelölt dologra, például a Windows asztalán elhelyezett, számítógépet ábrázoló „sajátgép” ikon. Szimbólum: A jelentését megszokás,
tanulás folytán tudjuk a jelölt dologhoz kapcsolni, például a betűk, a „behajtani tilos” tábla. Analóg és digitális jelek (Ld. például: analóg és digitális kijelzőjű órák) Az analóg jel egy tartományban bármely két állapot közti minden állapotot is fel tud venni, VPE 3. oldal „folytonos” jel. A valóság hű leírására alkalmasak A digitális jel csak bizonyos „lépésközzel”, vagyis diszkrét értékeket vehet fel. A valóság tetszőleges pontosságú leírására alkalmas. Szükség lehet analóg jelek digitálissá való átalakítására és viszont. Az ezt elvégző készüléket jelátalakítónak (A/D konverternek vagy D/A konverternek) nevezik. Ha analóg jelet kell digitálissá átalakítani, azt úgynevezett „mintavételezéssel” oldják meg: bizonyos időközönként (pl. hangoknál) vagy térközönként (pl képeknél) „mintát vesznek” a jel állapotából, és azt digitálisan tárolják. Kommunikáció , magyarul
közlés(folyamat). Úgy is szokás definiálni, hogy információátadás. Nemcsak az emberekre, hanem más rendszerekre is jellemző. Claude Elwood Shannon amerikai (ír származású) matematikus (1916-2001) vázolta fel a kommunikáció általános modelljét (1948): Szokás ehhez a modellhez más elnevezéseket is használni: Az adót elméletileg szét lehet választani (hír)forrásra és tényleges adóra. Ekkor a (hír)forrástól az adóhoz jut a hír, az adó pedig – kódolva a hírt – közleményt (jelet) bocsát a csatornába. Ugyanígy a(z esetleg zajos) közlemény (jel) a csatornából a vevőhöz jut, amely dekódolja azt és az így keletkezett (esetleg torzított) hírt a címzetthez juttatja. A mi ábránkon a (hír)forrás és adó egyben szerepel adóként, és a vevő és címzett egyben szerepel vevőként, hiszen sok esetben ezeket nem érdemes elválasztani egymástól. A kommunikáció néhány fajtája Kommunikáció sokféle van, már csak az emberek
közti kommunikáció is lehet az adót és vevőt vizsgálva például interperszonális (két személy közti) és tömegkommunikáció, a csatornát vizsgálva lehet verbális (szóbeli), nonverbális, stb. A tömegkommunikáció esetén nincs élő kapcsolat, egy adó és több vevő van, az adás és vétel időben el is szakadhat egymástól, a csatornája a médium, ami latinul közvetítő közeget jelent. Konkrétan médium a tévé, a rádió, az újságok, stb. A médium többes száma: média. (A latin nyelv így jelzi a többes számot) Informatika jegyzetek D A multimédia pedig olyan közlésfajtát jelent, amikor a közölni kívántakat egyszerre sokféle közvetítő közegen át juttatják el a vevőhöz, szöveget, képet, mozgóképet, hangot, felhasználva. Az emberi kommunikációról lásd a tankönyvedet (akár a „magyar” tankönyvedet)! Az emberi kommunikáció rétegei (a metakommunikáció nélkül): (Ehhez hasonló rétegfelépítést fogsz majd
látni később, amikor a számítógépek egymás közti kommunikációjáról; a számítógép-hálózatokról tanulunk:) Metakommunikáció: a szóban átadott információ mellett sokkal többet közlünk a metakommunikáció segítségével: gesztusokkal, mimikával, stb. (Erről tanulsz nyelvtanórán is) Írásban ezen eszközök pótlásaként használjuk az úgynevezett smiley-kat (emoticon-okat). Pl: = :) A titkosítás, titkosírás is kommunikáció, ekkor olyan kódolást: titkosítási módszert alkalmazunk, hogy a hír (jel, közlemény, üzenet) bár mások (betolakodó, intruder) számára is elérhető (nyílt szöveg, plain text), mégsem értelmezhető (nem dekódolható). A titkosított szöveget (kriptogram, cryptogram) egy kódrendszer (kulcs) segítségével alakítják ki. A titkosírás készítőjének feltételeznie kell, hogy a megfejtő ismeri a titkosítási módszert (a kulcsot). A titkosítás (rejtjelzés) és megfejtés tudományát
kriptológiának (cryptology) hívják A rejtjelezés megfejtését kriptoanalízisnek (cryptoanalysis) nevezzük. A kommunikáció folyamán a jel(sorozat) értelmezhetőségét (a megértését, de a félreértését is) több minden befolyásolja: Szemantika és szintaxis Az adónak a közlemény, jel(sorozat) megalkotásánál két dologra kell ügyelnie; a közlésnek ugyanis van tartalma és formája. Ahhoz, hogy érthető legyen, meg kell felelnie egyrészt a tartalmi követelményeknek (=a szemantikai VPE 4. oldal 1 szabályoknak ) és a formai követelmények2 nek (=szintaktikai szabályoknak ). Zajszint Legfeljebb annyira zajos-e a csatorna, hogy a vevő még ki tudja szűrni a közleményből a zajt vagy már torzított hír érkezik hozzá? Redundancia A közleményekben meglévő felesleges, újabb információt nem adó elem, amely nélkül azonban a megértés esetenként nehezebbé válna. Tehát a közlésben az ismétlést redundanciának, az ismételt elemeket
redundáns adatoknak (elemeknek) nevezzük. Van hasznos és haszontalan redundancia. A félreértés elkerülését segíti, ha a közlést, vagy annak néhány elemét megismételjük. Ezzel ellenőrizni is tudjuk, hogy az eredeti közlés helyesen történt-e Adat és információ Adat: Valamilyen jelsorozat formájában megjelenő ismeret (tény vagy akár csak elképzelés). A „rögzített” adatok valamilyen adathordozón, adattárolón helyezkednek el. Megkülönböztethetünk elsődleges adathordozót (ha közvetlenül érzékszerveinkkel érzékeljük az adatokat, például a fotónál) és másodlagos adathordozót (ha előbb át kell alakítani az adatokat az érzékszervekkel való érzékeléshez, például lemezjátszónál). Az adathordozók fontos jellemzője az elérési idő, vagyis az, hogy milyen gyorsan tudjuk "kiolvasni róluk” az információt. Korszerű adattárolók esetén ez mikroszekundummal mérhető Az adat mértékegysége az elemi adat (item):
az adatnak az a legkisebb egysége, amelyre még felbontható anélkül, hogy tartalma sérülne, vagy értelmét vesztené. (Ez persze a feldolgozó szándékától is függ) Információ: Különféle tudományágak másmás definíciót is használnak erre a fogalomra: (aláhúztam, amiben egyformák, és árnyékoltam azt, amiben különböznek): rendszerelméleti definíció: Egy adott rendszer számára új ismeretet nyújtó jelsorozat tartalma, amit a rendszer a működéséhez felhasznál. A jelsorozat az információ megjelenési formája Lehetséges, hogy ugyanaz a jelsorozat különböző rendszerek számára más információt hordoz. 1 A tartalmi, jelentéstani követelményeknek eleget tesz-e? Például ha Dezsőről beszélek nem mondoke véletlenül helyette Pétert? 2 A formai, szerkezeti, nyelvtani követelményeknek eleget tesz-e? Például nyelvtanilag helyesen beszélek-e? Le tudom-e írni olvashatóan a betűket? Informatika jegyzetek D
kommunikációelméleti definíció: A kommunikáció (közlés) objektív tartalma. számítástechnikai definíció: Egy adott rendszer számára feldolgozható, felhasználásra érdemes adat tartalma. Az adatokon végrehajtott műveletek eredménye, tehát értelmezett adat. Az értelmezést sokszor adatfeldolgozással (pl. adatválogatással) elő kell készíteni. Az információ egysége: Egyetlen eldöntendő kérdésre adott (igen vagy nem) válaszban rejlő 3 információ 1 bit . További mértékegységek: 4 bájt (byte ): 1B = 8 bit, 10 kilobyte: 1 KB =1024 B =2 B, 20 megabájt: 1 MB =1024 KB = 2 B, gigabájt: 1 GB = 1024 MB, terabájt: 1 TB = 1024 GB, petabájt: 1 PB = 1024 TB, A mértékegységek elnevezése nem következetes, az USA szabványügyi hivatala 1999-ben KiB („kibibájt”), MiB („mebibájt”), GiB („gibibájt”), TiB („tebibájt”), szabványosítást javasolt, hogy ne tévesszük össze az 1024szerest jelentő előtagot az ezerszerest jelentő
„kilo” előtaggal! Mi azonban csak azzal különböztetjük meg a hagyományos kilo-, mega-, stb. előtagoktól, hogy nagybetűvel írjuk a rövidítésüket, ellentétben például a kisbetűs kgmal Az adatot tehát értelmezni kell, hogy információhoz jussunk. Ehhez viszont korábbi ismeretek felhasználásával (tudnunk kell, mi mit jelent benne) műveleteket kell végezni, vagyis az adatokat valamennyire fel kell dolgozni, hogy a benne rejlő információhoz jussunk. Például a személyi szám „megfejtése”. Egy bizonyos információ(mennyiség) hány bitet igényel (hány biten lehet tárolni, „ábrázolni”)? Kártya és számkitalálós játék igen nem válasszal. Amekkora kitevőre kell emelni a 2-t, hogy az összes lehetőség számát megkapjuk! 11. évfolyamtól: Az összes lehetőség számának (=az alapsokaság számosságának) kettes alapú logaritmusa (illetve, ha ez nem egész szám, akkor az „azt követő” egész szám). Adattároló eszközök
tár(oló)kapacitása alatt azt értjük, hogy mennyi információt tud ábrázolni redundanciamentesen. Miért éppen a 2? Miért éppen igen/nem válasz? Miért eldöntendő kérdésre adott válasz? Mert kétféle választ könnyű fizikailag jelezni a számítógépben; egy magasabb és egy alacso3 Elnevezése a binary digit (=bináris számjegy) vagy a binary unit (=bináris egység) kifejezésből ered. 4 Elnevezése a by eight (=nyolcasával) kifejezésből származik. VPE 5. oldal nyabb elektromos feszültségi szinttel vagy mágnesezettséggel illetve ellentétes pólus szerinti mágnesezettséggel, stb. Számrendszerek A kétféle választ a matematika nyelvén 1-sel és 0-val jelölhetjük. A számítástechnika a kettes (bináris) számrendszert használja, amelyben e kétféle számjegy létezik. Pontosabban a túl hosszú számjegysorozatok miatt ennek néhány többszörösét is; nyolcast, tizenhatost. A számrendszer alapszáma (a mi számrendszerünk a 10-es
számrendszer, ennek „alapszáma” a 10) mutatja, hogy • hányféle számjegy létezik benne (0-tól 9ig: ez éppen 10), illetve, hogy • a helyiértékek mely számnak a hatványai 0 1 (egyesek: 10 , tízesek: 10 , százasok: 2 10 ,). Egy (természetes) szám értéke tízes számrendszerben: 3 2 + b 3 • 10 + b 2 • 10 + b 1 • 10 + b 0 Egy (természetes) szám értéke tetszőleges, a alapú számrendszerben: 3 2 + c3 • a + c2 • a + c1 • a + c0 Egy (természetes) szám értéke kettes számrendszerben: 3 2 + d3 • 2 + d2 • 2 + d1 • 2 + d0 Számok átváltása (konverziója) tízes számrendszerből más számrendszerbe. A definícióból közvetlenül adódó módszer mellett erre egy másik módszer: Osszuk el a számot a kívánt számrendszer alapszámával (egész osztást végezve, majd láncszerűen az eredménnyel folytatva ezt), így a kapott maradékok fordított sorrendben a kívánt alakot adják. Számok átváltása (konverziója) más
számrendszerből tízes számrendszerbe. Használd (ellenőrzésre, ha gyakorlás a feladat) a Windows „Kellékei” között lévő „Számológép” alkalmazását „tudományos nézet”-ben! A kettes számrendszerben azonban viszonylag kis számoknak is nagyon hosszú alakjuk van, az emberek számára ez nehezen megjegyezhető, ezért használunk olyan számrendszereket is a számítástechnikában, amelyek nagyobb alapszámúak, és kapcsolatban vannak a binárissal: nyolcas (oktális) számrendszer, 5 16-os (hexadecimális) számrendszer. Átváltás (konverzió) olyan számrendszerek között, melynek alapszáma a másik alapszámának hatványa (például kettesből nyolcasba, tizenhatosból kettesbe). 5 Ma már a számítástechnikában csak a bináris és hexadecimális rendszert használják. Informatika jegyzetek D Összeadás, kivonás, szorzás más számrendszerben. Számolás közben néhány megfigyelésre tettünk szert (ezek matematikai tételek, de nem
bizonyítottuk be mindet): Ha a számrendszer alapszámával szorzunk egy számot, a végére egy nulla kerül. (És ha osztjuk? A törteknél majd gondolj erre!) A számot kisebb alapszámú számrendszerbe írjuk át, akkor az alakja általában hosszabb lesz (vagy esetleg egyenlő hoszszúságú). Más számrendszerekben is vannak törtek, csak nem „tizedes törtek”, hanem „kettedes” törtek, „harmados törtek”, stb. Tizedesvessző helyett tehát „kettedes vesszőt” vagy „bináris vesszőt” kellene mondanunk, azonban az angolszász országokban elterjedt módszer szerint sajnos inkább „pontot” mondunk. Kettes számrendszerben tehát a vessző utáni helyiértéken nem a tizedek, hanem a felek (egykettedek) állnak, utána a negyedek, majd 6 a nyolcadok, stb : például: 1 1 0, 1 0 1 ennek értéke tízesben: 4+2+1/2+1/8=6,625 Adatábrázolás a számítástechnikában Ahhoz, hogy valamilyen információt rögzíteni tudjunk, adattá kell alakítani
(jelsorozattá kell változtatni, kódolni kell). Követelmények a kódolással szemben: egyértelmű és visszafejthető legyen, a formája hatékony tárolást és feldolgozást tegyen lehetővé. A kódolás szabályait az általa használt jelekkel együtt kódrendszernek nevezzük. Ugyanazon tartalmú adatok átírását egy másik kódrendszer szerinti alakba (adat)konverziónak vagy (adat)konvertálásnak nevezzük. Az adatok „számítógépen belüli” megjelenítéséhez használt kódrendszer(eke)t – a szabályokkal, jelekkel, és az így kialakított jelsorozatokkal együtt – (belső) adatábrázolásnak nevezzük. Mivel kétféle jelet könnyű fizikailag jelezni a számítógépben (egy magasabb és egy alacsonyabb elektromos feszültségi szinttel vagy mágnesezettséggel illetve ellentétes pólus szerinti mágnesezettséggel, stb.), az elektronikus digitális számítógépek a rögzítendő adatokat bináris szám formájában ábrázolják 6 Vagyis a 2
hatványai következnek továbbra is helyiértékekként szépen egymás után: 23, 22, 21, 20, 2-1, 2-2, 2-3, VPE 6. oldal Egy (bináris) számjegy tárolására 1 bit szolgál, amit kétállapotú tárolóval valósítanak meg. Tehát „1 biten” kétféle jel (az 1-nek és a 0-nak 2 megfelelő) ábrázolható, 2 biten 2 =4 féle jel n (00, 01, 10, 11), , n darab biten pedig 2 -féle jel ábrázolható. (1 bájton hányféle jel ábrázolható?) Számábrázolás Fixpontos számábrázolás A „fixpontos” elnevezés a bináris pont fogalmat tartalmazza az elnevezésében, ennek van fix helye: Egészek ábrázolásánál mindig a bináris jelsorozat végére képzeljük a pontot. Tehát, ha 1 bájtunk van a szám ábrázolására, akkor az ábrázolandó szám kettes számrendszerbeli alakját elhelyezzük a 8 biten, a végére képzelve a „kettedes” pontot. Például az 5 szám esetén (5 10 = 101 2 ): 0 0 0 0 0 1 0 1 • Természetesen így 1 bájton 0-tól 255-ig
ábrá8 zolhatók a számok, ez éppen 256 (=2 ) szám. Nemnegatív egész ábrázolása 1 bájton, két bájton. Ha negatív számokat is akarunk ábrázolni, akkor a következő két módszer közül választhatunk: Előjelbites ábrázolás: Az első bitet fenntartjuk az előjel ábrázolására (0-val jelöljük a pozitív előjelet, 1-sel a negatívat). A maradék biteken a szokásos módon ábrázoljuk a számok abszolút értékét. Például a –5 kódja: 1 0 0 0 0 1 0 1 • 7 1 bájtot felhasználva 7 biten 2 =128 darab számot, vagyis 0-tól 127-ig tudjuk ábrázolni a számokat, így előjelbittel együtt az ábrázolható 7 számok: a [-127;-0] U [+0;+127] intervallum egész számai! Vagyis a nulla kétféleképpen is ábrázolódik ezzel a módszerrel! Ez egyébként ismét kétszer 127 + a kétféle 0, azaz 256-féle szám. (Hiszen most is 1 bájtunk volt!) Egész számok előjelbites ábrázolása 1 bájton, 2 bájton. Előjelbites alakból a szám meghatározása. 8
Ennek az ábrázolási módnak az a másik hibája, hogy a szabályos bináris műveletek végre9 hajtásával nem ad helyes eredményt. Lehet 7 Figyelj! A matekórán használt intervallumjelölést használtam! 8 A kétféle nulla-ábrázoláson kívül 9 Próbáld ki például, hogyha „simán” összeadsz két előjelbites számot, helyes előjelbites számot kapsz-e eredményül! Pl. 5+(-5) eredménye így mennyi lenne? Informatika jegyzetek D VPE hozzá olyan számolási módszert kitalálni (pl. más összeadási szabályokat), amivel mindig helyes eredményt kapnánk, de úgy bonyolult lesz a műveletvégzés! 10 Kettes komplemens kód : Ez egy olyan módszer, ahol nincs „kétszeres nulla ábrázolás”, és egyszerűen végrehajthatóak a műveletek (mert a szabályos bináris műveletek helyes eredményt adnak), viszont nehezebb kódolni, hogy mi lesz egy szám kódja: Nemnegatív szám kódja a kettes számrendszerbeli alakja, negatív számoknál pedig a
következőt kell csinálni: 1. Vedd az abszolút értékének a bináris alakját! 2. Minden bitjét fordítsd az ellenkezőjére! (Ezt az alakot nevezik egyes komplemens kódnak.) 3. Ezután adj hozzá egyet a bináris összeadás szabálya szerint! (Ezt nevezik kettes komplemens kódnak.) Például az 5 szám esetén (5 10 = 101 2 ): 0 0 0 0 0 1 0 1 • a - 5 esetén: 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0 + 1 1 1 1 1 0 1 1 • Az így ábrázolható számtartomány a [-128;+127] egész számai (azaz 128 darab negatív szám, a nulla, és 127 darab pozitív szám, ami összesen 256 féle szám, hiszen most is 1 bájtunk van rá). Egész szám kettes komplemens kóddal való ábrázolása 1 bájton, 2 bájton. E módszer szerint (is) a negatív számok kódja 1-sel kezdődik! A nemnegatívaké 0-val. És hogyan tudjuk megmondani, melyik számé egy bizonyos kettes komplemens kód? Az érdekes (és nagyszerű), hogy ugyanezt mégegyszer elvégezve meg tudod fejteni, melyik számról van
szó. Kettes komplemens alakból a szám meghatározása. Ez egy olyan ügyesen kitalált kódolás, hogy itt használhatod a szabályos bináris műveleteket számolásra: helyes eredményt fognak adni! Összeadás, kivonás (a kivonást a mínusz egyszeresének hozzáadásával végezzük el) 1 bájton, 2 bájton kettes komplemens kódban. Szorzás kettővel, néggyel („balra léptetés, shift left”). A mai processzorok a negatív számok ábrázolására a kettes komplemens kódot használják. 10 Neumann János által kitalált módszer. 7. oldal Túlcsordulás (overflow): Kódolás és műveletvégzés közben a legmagasabb helyiérték kiszámítása után még képződhet olyan adat, amit „tovább kellene vinni” a következő helyiértékre (ami viszont nincs); ezt nevezzük túlcsordulásnak. Ez az adat elveszik, mert a tárolására nincs hely. Ha az eredmény az ábrázolható intervallumon belül van, akkor ez (kettes komplemens alaknál) nem okoz problémát,
mert így jól működik, sőt: így működik jól! Viszont, ha a számok (vagy műveletvégzés esetén az eredmény) kívül esnek az ábrázolható intervallumon, ez hibát fog okozni! Vagyis egy számítógépes program megírásakor nagyon meg kell gondolni, hogy hány bájtot szánnak a számok ábrázolására, és nem szabad megengedniük, hogy a program annál nagyobb számokkal dolgozzon (hiszen akkor hibás eredmények születhetnek)! „Egészosztás” kettővel, néggyel (jobbra léptetés, shift right”). Ezt a műveletet általában a DIV rövidítéssel jelölik. „Alulcsordulás”; ez is egyfajta túlcsordulás. Lebegőpontos számábrázolás Akkor szükséges, ha nemcsak egész számokat akarunk ábrázolni. Az ábrázolás módja a matematikában tanult normálalak elvén alapul, bár itt kissé máshogyan használják. Induljunk ki abból, hogy minden tizedes törtet fel tudunk írni egy ”nulla egész ” alakú szám és 10 valamelyik hatványának
szorzataként. Például: 1 1 (10=10 ) 6,356 = 0,6356 ⋅ 10 3 3 -102,4 = -0,1024 ⋅ 10 (1000=10 ) 0 0 0,3333 = 0,3333 ⋅ 10 (1=10 ) -3 -3 0,0007 = 0,7 (1/1000=10 ) ⋅ 10 Ez a lebegőpontos (floating point) ábrázolás elnevezésének oka: a tizedesvesszőt (tizedespontot) mozgatjuk, amikor ezt az alakot létrehozzuk. Hasonlóan a bináris számokat is felírhatjuk ”nulla egész ” alakú szám és 2 valamelyik hatványának szorzataként: 1 1 0,1101·2 1,101 = 0,1101 ⋅ 2 3 11 -0,1001·2 -100,1 = -0,1001 ⋅ 2 0 0 0,1111·2 0,1111 = 0,1111 ⋅ 2 -11 -3 0,1·2 0,0001 = 0,1 2 ⋅ A bekeretezett rész tartalmazza a négy számot. De te akkor is tudnád, hogy melyik négy számról van szó, ha csak a vastaggal írt számokat és a kitevőket mondanák meg, hiszen a többi mind a négynél azonos, azt te magadtól is hozzá tudod tenni. A számítástechnikában a vastaggal írt részt mantisszának (esetleg szignifikánsnak), a kitevőt pedig karakterisztikának vagy exponensnek
nevezik. Informatika jegyzetek D Melyik szám az, ahol a mantissza 100000111, a kitevő pedig 111? Ez a szám nyilván a 111 0,100000111⋅2 = 1000001,11 = 65,75 10 Vagyis: ahhoz, hogy egy valós számot ábrázoljunk, ezt a két egész számot (a mantiszszát és a kitevőt) kell ábrázolni. Egészeket pedig tudunk ábrázolni fixpontos ábrázolással! Például: Ha valós számok ábrázolására 3 bájtot használunk, akkor abból például az első 16 biten ábrázoljuk a mantisszát fixpontos ábrázolással (negatív is lehet), majd a maradék 8 biten a kitevőt (ez is lehet negatív is) fixpontos ábrázolással. (Belátható, hogy minél több bitet szánunk a mantisszára, annál nagyobb pontossággal adhatunk meg egy (például irracionális) számot, és minél több bitet szánunk a kitevőre, annál többféle nagyságrendű („nagyon kicsi” vagy „nagyon nagy”) számot tudunk ábrázolni. Pl. 65,75-nél: 00000111 0000000100000111 Egyéb kódrendszerek
Léteznek más, például nem személyi számítógépeken, hanem „nagygépes” környezetben, inkább régebben használt kódrendszerek, például a BCD-kód (binárisan kódolt decimális kód, 6 bites), EBCDIC-kódrendszer (kiterjesztett BCD-kód, 8 bites). Karakterábrázolás Karaktereknek vagy alfanumerikus adatoknak nevezzük a kis- és nagybetűket, ékezetes betűket, más nyelvekben használt betűket (=„nemzeti karakterek”), írásjeleket, számjegyeket, műveleti jeleket, pénznemek jeleit, vezérlőjeleket, grafikus jeleket, egyéb speciális jeleket. ASCII kódrendszer (American Standard Code for International Interchange) Kezdetben 7 biten ábrázolták a karaktereket, így 128 féle karaktert valósíthattak meg. A 0-tól a 127-ig terjedő számok bináris alakjai mind egy-egy karaktert jelentenek, a szóköz például a 32-es kódú karakter, vagyis a 0010000 a szóköz kódja. 0 és 31 közti kódok a vezérlőkaraktereket (pl: 11 CR, LF ) tartalmazzák,
32-től 47-ig írásjelek, műveleti és egyéb jelek, 48-tól 57-ig a számjegyek (0,9), 58-tól 64-ig más írásjelek, reláció jelek és a @, 65-től 90-ig az angol ábécé nagybetűi, 91-től 96-ig ismét egyéb jelek, 11 CR: carriage return= „kocsi vissza, LF: line feed=soremelés. VPE 8. oldal 97-től 122-ig az angol ábécé kisbetűi, 123-127-ig ismét egyéb jelek találhatók. Nézd meg a kódtáblázatban! ANSI kódrendszer (American National Standards Institute) Ez a 128 karakter később kevésnek bizonyult, hiszen nem férnek bele a nemzeti karakterek sem. Ezért a karakterek ábrázolására több helyet: 8 bitet (1 bájtot) szántak, így már 256 féle karakter vált alkalmazhatóvá. De az első 128-at nem bolygatták, hanem kibővítették az eddigi kódtáblát másik 128 karakterrel. Többféle kiegészítés is létezik, tekintettel a nemzeti karakterekre és az operációs rendszerekre, így például léteznek a következő (256 elemű) kódtáblák:
437-es (USA) kódtábla: többféle nemzeti karakterrel, grafikus jelekkel, 852-es (Latin II vagy Szláv) kódlap: a magyar, lengyel, cseh ábécék latin betűktől eltérő betűit és grafikus jeleket tartalmaz, CWI: magyar kódkészlet DOS-hoz. Unicode rendszer 16 16 bitet használó rendszer, tehát 2 (több, mint 65000 !) féle karakter ábrázolására képes. Kompatibilis az ASCII kódtáblával (az első 128 jel mindkettőben ugyanaz), tartalmazza a ma használt nyelvek (sőt több holt nyelv) karaktereit (még ógörög, héber, arab, tibeti, tamil, kínai-koreai-japán, cirill és további betűket is), egyéb grafikus karaktereket, törtszámok jeleit, stb. Ezt a kódtáblát még nem minden, de egyre több szoftver használja, például a Windows NT, vagy az MS Office a 97-estől kezdve. Színábrázolás Ha csak annyit akarunk meghatározni, hogy a képernyő egy adott képpontján megjelenjen-e pont vagy ne (mert monochrom monitorunk van, ami csak egy színt ismer),
akkor ennek ábrázolására elég 1 bit. „Szürkeárnyalatos” ábrázolás esetén 256 féle szürke árnyalat valósítható meg 1 bájton (8 8 biten, 2 =256). Színes monitor esetén azonban azt is meg kell határozni, milyen szín jelenjen meg. A lehetséges színválasztékban szereplő színek számát színmélységnek nevezzük. Ahhoz, hogy a képernyőn vagy nyomtatásban a megfelelő színeket lássuk, minden színnek rendelkeznie kell egy (bináris) kóddal, hogy a számítógép használni tudja. De milyen kód (bináris szám) tartozzon a különböző színekhez? Ha elegendő számunkra 256 szín, akkor Informatika jegyzetek D egy szín tárolásához 8 bitre, 1 bájtra van szükségünk. A 16 biten ábrázolt színrendszert high 12 16 color-nak hívják (2 féle színárnyalat). Ma már a számítógépek ennél sokkal nagyobb színmélységgel dolgoznak. A különböző színárnyalatokhoz tartozó kódok kialakításához segítséget nyújt a fizika néhány
megállapítása: Az ember számára látható látható fény az elektromágneses sugárzás 380-780 nanométer hullámhosszú tartománya (az infravörös és az ultraibolya között, a vöröstől az ibolyáig). Bármely szín „kikeverhető” három különböző (alap)színből. Azt, hogy milyen színt látunk, három dolog határozza meg: Színezet vagy árnyalat (ez attól függ, hogy a fénynek – mint sugárzásnak – mekkora a hullámhossza), angolul hue. Telítettség (attól függ, hogy mennyi a fényben a tiszta fehér fény aránya, „mennyire fakó” a szín), angolul saturation. Fényerő vagy világosság (a sugárzás erősségétől, energiájától függ), angolul intensity, brightness vagy luminance. (Ez a HSB rendszer, amivel a tévé beállításakor is találkozol.) RGB színrendszer Ez a fényforrásként üzemelő készülékek, például a (számítógép, tévé) képernyők, projektorok által alkalmazott színkeverés. A három alapszín, a vörös
(Red), zöld (Green) és kék (Blue) „egymásravetítésével” jön létre a kívánt szín. (Ezért ezt a színkeverést „additív”, vagyis hozzáadó színkeverésnek nevezik.) Ha mindhármat „maximális mennyiségben” vetítjük, akkor fehér fényt kapunk, ellenkező esetben feketét. Ebben a színrendszerben 3 bájtot szánunk a színárnyalat meghatározására: 1 bájton rögzítjük, hogy mennyit keverjünk bele a vörösből, 1 bájton, hogy mennyit a zöldből, és 1 bájton, hogy mennyit a kékből. Ez összesen 3 bájt, 24 vagyis 24 bit, tehát 2 féle színárnyalat lehetséges, ami kb. 16 millió (16 777 216) különböző színt tesz lehetővé A 24 bites színrendszert true colorként emlegetik. Próbáld ki: Például a Paint alkalmazásban a színek szerkesztésénél! CMYK színrendszer Ez a (nem fényforrásként, például a) diaképnél, fényképnél, nyomtatónál előforduló módszer; itt szubsztraktív, vagyis kivonó, elvonó színkeverés
valósul meg: A fényforrásból 12 Angolul a szín colour, de az amerikai angolban color! VPE 9. oldal jövő fehér fény elnyelődik a tárgyra kent különböző festékrétegekben (különböző színű festékanyagok más összetevőket nyelnek el belőle), ami megmarad, az jut a szemünkbe. Az elnyelő rétegeket kékeszöldből (Cyan), lilásból (Magenta) és sárgából (Yellow) alakítják ki. Mivel a gyakorlatban ez a három réteg sem tud mindent elnyelni, ahhoz, hogy tökéletes feketét is láthassunk, negyedik alapszínnek hozzávették még a feketét (blacK) is. Ha ebben a színrendszerben is minden alapszínre 1 bájtot szánunk, az összesen 4 32 byte=32 bit, 2 féle színárnyalat, pedig az emberi szem már 16 millió árnyalatot sem tud megkülönböztetni! (Technikai szempontból mégis így használjuk, hiszen az 1 bájt olyan egység, aminél a számítógép kisebb egységet nem kezel „egy lépésben”. Megjegyzés: A használható színmélység függ a
számítógép videókártyájától (grafikus kártyájától), hiszen az általa használt memória területén 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ínének tárolásához. Hangábrázolás A hang (hanghullám) analóg jel. Ahhoz, hogy a számítógépben ábrázolni tudjuk, a hanghoz bináris kódot kell hozzárendelni (digitálissá kell alakítani), ezt a hangkártya végzi el. A hanghullám szinuszgörbék „összege”, ha az amplitúdó („kilengés”) időben való változását akarjuk ábrázolni, egy görbét kapunk, ezt kell kódolnunk. 13 „Mintavételezés”-hez folyamodunk; időnként megállapítjuk, mekkora a görbe amplitúdója: A mért amplitúdókat egész számra kerekítve bináris számmá alakítjuk, és az így nyert számsorozattal ábrázoljuk a hangot. Ezt az átalakítást (és a fordítottját) végzi el a hangkártya. 13
Másodpercenkét több mint tízezerszer veszünk mintát! A 11kHz-es hangkártyák kb. 1/11000 másodpercenként, a 22 kHz-esek 1/22000 másodpercenként, a 44 kHz-esek Informatika jegyzetek D VPE 10. oldal Matematikai logika NEM művelet A matematika egyik ága a matematikai logika, amelyet egy matematikusról Boolealgebrának is neveznek. A számtan számokkal, a halmazelmélet halmazokkal, a matematikai logika ítéletekkel végez műveleteket Ítéletnek nevezzük az olyan állításokat, amelyekről egyértelműen eldönthető, hogy igazake vagy hamisak (Az ítéleteket nagybetűkkel jelöljük.) Például: A=„Magyarország fővárosa Budapest.” Ez egyértelműen igaz, tehát ítélet. B=„Békés megye székhelye Szeged.” Egyértelműen hamis, tehát ez is ítélet C=„Hétfő van.” Vannak napok, amikor ez igaz, vannak napok, amikor hamis, de mindig egyértelműen eldönthető. Ez is ítélet De nem minden állítás ítélet, hiszen próbáld meg a
következő állításokról eldönteni, hogy igazak-e vagy hamisak: ”A magyar király szőke.” Nincs is magyar király Hogyan tudnánk akkor megállapítani, hogy szőke-e! Ez nem ítélet. „Rövidesen tanítási szünet lesz.” Mi számít rövidesennek? Nem egyértelmű. Ez sem ítélet ”Ez a mondat hamis.” Ha jól meggondolod, kiderül, hogy ez egy paradoxon. Ez sem ítélet Definíció: A NEM (NOT, negáció) művelet az a logikai művelet, amely az ítélet logikai értékét az ellenkezőjére változtatja. Például: Ha az „A”-val jelölt ítélet az, hogy „esik az eső”, akkor a „nem A” azt jelenti: „nem esik az eső”. Így ha az „A” igaz volt, akkor a „nem A” hamis lesz, és fordítva; ha az „A” hamis volt, akkor a „nem A” igaz lesz. Többféle műveleti jelet is szoktak használni a NEM műveletre („A” ítélet esetén): NOT A, ¬A, Ā, NEM A. A NOT művelet definícióját megadhatjuk „igazságtáblázattal” is: A NOT A
vagy: A NOT A h i 0 1 i h 1 0 Tehát a matematikai logikában kétféle érték van: igaz és hamis. Mivel a számítástechnikában is csupán kétféle számjegy (0 és 1) segítségével ábrázolunk minden adatot, a matematikai logikát felhasználhatjuk a számítástechnikában, ha a logikai igaz értéket megfeleltetjük az 1-esnek, a hamisat a nullának. A matematika különböző területein megvannak a műveletek: A számtanban (aritmetikában) a számtani műveletek (összeadás, szorzás,), halmazelméletben a halmazműveletek (unió vagy egyesítés, közös rész képzés vagy metszetképzés, ). A logikában pedig a logikai műveletek: NEM, ÉS, VAGY, A logikai műveleteket használják a számítástechnikában az 1-esekkel és nullákkal való 14 műveletek elvégzésére . A számítógép áramköreiben úgynevezett logikai kapuk végzik el 15 az 1-esekkel és a nullákkal a műveleteket. A logikai kapuk olyan elektronikai alkatrészek, amelyeknek 1 vagy 2
bemenetük és 1 kimenetük van. Különféle logikai kapuk vannak aszerint, hogy milyen műveletet végeznek: NEM-kapu, ÉSkapu, VAGY-kapu, ÉS művelet 14 Shannon ismerte fel az elektromos kapcsolások és a matematikai logika közti összefüggést. 15 Pontosabban az 1-eseknek és a nulláknak megfelelő jelekkel A NEM-kapu tehát egy olyan elektronikai alkatrész, amelynek egy bemenet és egy kimenete van; 1-es bemenő jel esetén nullát bocsát ki, nulla bemenő jel esetén pedig 1-est. A NEMkapu jelölése: Definíció: Az ÉS (AND, konjunkció, szorzás) művelet eredménye igaz, ha mindkét ítélet logikai értéke igaz, minden más esetben hamis. Például: Ha az „A”-val jelölt állítás az, hogy „esik az eső”, a „B” állítás pedig az, hogy „hétfő van”, akkor az „A ÉS B” állítás csak akkor igaz, ha hétfő is van, és az eső is esik. Az ÉS műveletre használatos műveleti jelek (sokféle jelölést használnak): A AND B, A ٨ B, A &
B, A ÉS B, A * B, AB. A definíció táblázattal: A 0 0 1 1 B 0 1 0 1 Vagy egy más formájú táblázattal: AND 0 1 A AND B 0 0 0 1 0 0 0 1 0 1 Az ÉS-kapu tehát egy olyan elektronikai alkatrész, amelynek két bemenete és egy kimenete van; a két bemenő jelből 1-est állít elő, ha mindkét bemenő jel 1-es volt, minden más esetben pedig nullát. Az ÉS kapu jelölése: Informatika jegyzetek D VPE A műveletek többféle elnevezése és a sokféle műveleti jel abból adódik, hogy máshoz szoktak a fizikusok és a matematikusok, máshoz az amerikaiak és az európaiak. Össze-vissza azonban ne keverjük őket, ebben igazítanak el a következő, példaként szolgáló logikai kifejezések (mind ugyanazt a kifejezést írják le, csak más műveleti jel rendszer szerint): VAGY művelet Definíció: A VAGY (megengedő vagy, OR, diszjunkció, összeadás) művelet eredménye hamis, ha mindkét ítélet logikai értéke hamis, minden más esetben igaz. Például:
Ha az „A”-val jelölt ítélet az, hogy „esik az eső”, a „B” pedig az, hogy „hétfő van”, akkor az „A VAGY B” összetett ítélet igaz, ha legalább az egyik ítélet igaz volt. A VAGY műveletre használatos műveleti jelek: A OR B, A v B, A VAGY B, A + B. Műveleti táblája: Vagy egy más formájú táblázattal: A 0 0 1 1 B 0 1 0 1 OR 0 1 11. oldal A OR B 0 1 1 1 0 0 1 1 1 1 Milyen elektronikai alkatrész a VAGY-kapu? A VAGY kapu jelölése: Az eddig felsorolt műveleteket (NEM, ÉS, VAGY) nevezzük alapvető logikai műveleteknek vagy egyszerűen alapműveleteknek. A NEM egyváltozós, az ÉS és a VAGY pedig kétváltozós logikai művelet Milyen tulajdonságúak ezek a műveletek? (Kommutatívak-e: A & B = B & A ? A or B = B or A ? Asszociatívak? Egységelemesek? Inverzelemesek?) Logikai kifejezések Egy (matematikai értelemben vett) kifejezés tartalmazhat konstansokat, változókat, műveleti jeleket, zárójeleket, bizonyos
szintaktikai szabályok szerint. (Matematika órán találkoztál például algebrai kifejezésekkel, amelyben szerepeltek számok, számokat jelölő betűk, műveleti jelek és zárójelek.) A logikai kifejezésekben pedig logikai értékek, ítéleteket jelölő betűk, logikai műveleti jelek és zárójelek szerepelnek. ( A + B ) + A + AB ( A ∨ B ) ∨ ¬A ∨ ¬( A ∧ B ) (A or B) or not A or not(A and B) A kifejezések értékének kiszámítása (a kifejezések kiértékelése) szabályok szerint történik. Számtanból tudod például, hogy először a zárójelben lévő műveleteket kell elvégezned, és a szorzást előbb kell elvégezni az összeadásnál. A sorrendet tehát a zárójelezésen kívül a műveletek prioritása (elsőbbsége, sorrendje, precedenciája) határozza meg: Műveleti sorrend A számtani műveletek prioritása: 1. hatványozás, gyökvonás 2. szorzás, osztás 3. összeadás, kivonás A logikai műveletek prioritása: 1. not 2. and, or, ha
nincs máshogyan zárójelezve. Ha a zárójelek és a műveletek prioritása még nem döntené el egyértelműen a sorrendet, akkor harmadik szabályként a „balról jobbra haladást” tartjuk be. Logikai azonosságok A matematika más ágaihoz hasonlóan itt is 16 léteznek azonosságok ; egyszerűbbek is, amelyek a műveleti tulajdonságokból azonnal látszanak, például: A and 0 = 0, A or 1 = 1, és összetettebbek is (például az ún. De Morgan azonosságok): (A and B) or C = (A or C) and (B or C) (A or B) and C = (A and C) or (B and C) not (A and B) = (not A) or (not B) not (A or B) = (not A) and (not B) Az azonosságokat persze – mint a matematikában már láttad – be lehet bizonyítani, még továbbiakat is. Néhány további logikai művelet A három alapműveleten kívül további műveletek is léteznek, amelyeket szintén a műveleti táblájukkal definiálunk. (Összesen hány kétvál16 Mit nevezünk azonosságnak?! Informatika jegyzetek D VPE tozós
logikai művelet lehetséges? Vagyis hány különböző igazságtáblázat van?) A három alapvető logikai műveletből kialakított összetett műveletekkel minden további logikai művelet kifejezhető. Tehát bármilyen műveletet, számítást elvégző áramkör felépíthető NEM-kapuk, ÉS-kapuk, VAGY-kapuk megfelelő összeépítésével. A KIZÁRÓ VAGY (antivalencia, exclusive or, XOR) művelet eredménye akkor és csak akkor igaz, ha a két állításnak különböző volt a logikai értéke. Ezt a műveletet a magyar nyelv úgy fejezheti ki, hogy mindkét állítást tartalmazó tagmondat elé „vagy” szót illeszt, például: „Vagy moziba megyünk, vagy matekot tanulunk.” (Ez az öszszetett állítás csak úgy lehet igaz – mivel mindkettőt egyszerre nem lehet csinálni, hiszen kizárják egymást – hogy a két állítás közül valamelyik igaz, a másik hamis.) A definíció táblázattal: A 0 0 1 1 B 0 1 0 1 A xor B 0 1 1 0 Az implikáció
(következmény, „haakkor”) művelet eredménye akkor és csak akkor hamis, ha A igaz és B hamis (minden más esetben igaz). A magyar nyelvben ehhez közelálló szerkezet a „Ha A akkor B” típusú összetett állítás, például: „Ha van tollam, akkor tudok jegyzetelni.” Ennél a műveletnél azonban a matematika és a köznapi gondolkodás nem áll olyan közel egymáshoz, mint az előbbieknél. A definíció táblázattal: A 0 0 1 1 B 0 1 0 1 A imp B 1 1 0 1 Természetesen e további műveletekkel is léteznek azonosságok, például: A xor B = (not A and B) or (A and not B) A imp B = not A or B Be tudnád ezeket az azonosságokat bizonyítani? A logika alkalmazása a számítástechnikában Egy „hardveres” és egy „szoftveres” példát nézzünk meg arra, miként lehet használni a logikát a számítástechnikában: 1. A következő példán érzékeltetjük, hogyan építik fel a processzor áramköreit: 12. oldal Ha processzort akarunk építeni,
tudnunk kell, mit várunk el tőle, eltervezzük, hogy a bemenő (1-esekből és nullákból álló) jelsorozatokra milyen kimenő jelsorozatokat kell adnia eredményül. Például, ha egy kettes számrendszerbeli szám utolsó számjegyeit akarjuk vele összeadatni, és meg kell mondania, hogy mi lesz az eredmény utolsó számjegye, akkor tudjuk, hogy 0,0 bemenet esetén 0-t, 0,1 bemenet esetén 1-t, 1,0 bemenet esetén 1-t, 1,1 bemenet esetén 0-t kell szolgáltatnia eredményül. Ezután megkeressük, hogy ilyen eredményt milyen alapvető logikai műveletekből álló logikai kifejezés szolgáltat (ha kell, használjuk az igazságtáblát, az azonosságokat). Látjuk, hogy ezt épp az A XOR B művelet valósítja meg! Az azonosságokból pedig látjuk, hogy ez alapműveletekkel kifejezve: =(not A and B) or (A and not B) Így már összeépíthetjük NOT-, ÉS-, VAGYkapukból a logikai kifejezésnek megfelelő áramkört: Ezt az áramkör képes lesz elvégezni két bináris
szám utolsó számjegyeinek összeadását. Természetesen egy teljes összeadó áramkör ennél sokkal bonyolultabb. 2. Különböző alkalmazásokban szükség lehet arra, hogy olyan összetett utasításokat adjál, amelyben logikai műveletek szerepelnek. Például ha egy cégjegyzékből ki kell íratni a budapesti vagy békéscsabai KFT-ket, akkor „fogalmazhatsz” így: név=*KFT. AND (székhely=Budapest OR székhely=Békéscsaba) A számítástechnika alapfogalmai Számítástechnika: Az a tudomány, amely a számítógépeken kívül, az azokkal megoldható problémákkal és megoldási módszereikkel foglalkozik. Számítógép: Olyan műszaki rendszer, amely képes adatok tárolását, feldolgozását, visszakeresését elvégezni emberi beavatkozás nélkül, a benne előzőleg elhelyezett program működtetésével. Informatika jegyzetek D A számítógép alapvető tulajdonságai: univerzális (=általános célú), digitális, programve17 zérelt, automata . A
számítógépet és annak használatát rendszerként a következő elemekre bonthatnánk: hardver, szoftver, orgver (a számítógépek szervezési környezete), menver (a használó ember). Hardver: A számítógép mint műszaki, fizikai, kézzelfoghatóan létező rendszer. Szoftver: A számítógép működtetéséhez szükséges szellemi termékek; a programok, de az adatok és a dokumentációk is. Program: A számítógép számára érthető kódolt formában tartalmazza azokat a lépéseket, amit a számítógépnek végre kell hajtania, hogy az általunk kívánt feladatot megoldja. A számítástechnika története A számítógépek elődei a különböző számolási segédeszközök voltak. Ókori találmány az abakusz, amely mozgatható golyókból állt. Legkorábban a mezopotámiaiak, később a görögök, perzsák, rómaiak is használták, de különféle változatokban, drótokon húzható golyók vagy táblára vésett vája18 tokban rakosgatható kavicsok
formájában. (A szorobán is ennek egyfajta változata.) Az öszszeadást és a kivonást lehet vele elvégezni Már a középkor kezdetétől ismertek jó módszert a szorzás könnyű elvégzésére, ennek alapján készített segédeszközt John Napier (skót tudós, XVI.sz), amely Napier-pálcák néven terjedt el. (Ennek utóda volt a logarléc, amelyet egészen a mai, elektronikus számológépek megjelenéséig használtak.) Pioneers of Computing VPE 13. oldal hajózáshoz szükséges csillagászati számításokat. Blaise Pascal (XVII. sz) francia művész, matematikus, fizikus, filozófus 19 éves korában összeadó–kivonó gépet épített, hogy adófelügyelő apját segítse munkájában. Róla nevezték el a Pascal-háromszöget, 19 a nyomás SI mértékegységét, és a Pascal programozási nyelvet. Ez a gép későbbi, és kevesebbet is tud, mint Schikardé, de sorozatban (7 példány!) készült. Gottfried Wilhelm Leibniz (XVII-XVIII. sz) eredetileg jogász
végzettségű filozófus, matematikus, fizikus négy alapműveletes mechanikus számológépet szerkesztett (Pascal gépének továbbfejlesztésével), amely szintén fogaskerekekkel működött. Javasolta a kettes számrendszer használatát. Charles BABBAGE (XIX. sz első fele, az ipari forradalom kora) Wilhelm Schikard (1623-ban) a Napier-pálcák felhasználásával, fogaskerekekkel működő, négy alapműveletet végző számológépet készített, hogy megkönnyítse a összeférhetetlen jellemű angol matematikus, csillagász és feltaláló a számolótáblázatokat (függvénytáblázatokat) helyettesítő difference 19 Az automata itt nem önműködőt jelent, hanem (matematikai értelemben) olyan dolog, amely bemenő jelek (input) hatására a belső állapotának megfelelően kimenő jeleket (outputot) állít elő. 18 A kavics latinul: calculus ! 17 SI = System International, a mértékegységek nemzetközi szabványrendszere, amit azért alkottak meg, hogy ne
különbözőképpen (például rőfben, hüvelykben, lábban) mérjünk, hanem egységesen (például méterben). Még ma sem használjuk következetesen Informatika jegyzetek D engine-t („differenciagépet”) hozott létre, amely az eredményeket acéltűvel rézlemezre ütötte. Rengeteg pénzt és energiát szánt egy általános célú gép („analitikus gép”) kifejlesztésére, amelynek jó tervét nem tudta megvalósítani, mert a kor technikai fejlettségének megfelelő eszközökkel nem lehetett elég precíz alkatrészeket előállítani. A mai számítógépekhez hasonló felépítést tervezett: lyukkártya-olvasó, „malom”=CPU, „tár”=memória, nyomtató, az előre elkészített programot lyukkártya tartalmazta. Erre a (sosem működött, de tökéletesen dokumentált) gépre írt programokat Ada 20 Byron, Lady Lovelace (XIX. sz első fele, Byron lánya)! Érdekes, hogy tulajdonképpen rendszerelmélettel (és logisztikával) is foglalkozott már e
tudományágak kialakulása előtt, amikor a brit posta számára rendszerelemzést végzett a díjszabás kialakítása céljából. VPE 14. oldal Siemens. Zuse nem ismerte az előtte épített számítógépeket, és az ő gépét sem ismerték mások, mert munkája Berlin bombázásakor (1944) elpusztult. Ezután csak matematikával; automatákkal foglalkozott. A második világháború fokozta a számítógépek iránti érdeklődést; az angolok kódfejtéshez, az amerikaiak logisztikai feladatokhoz, a németek röppályaszámításhoz (pl. V1, V2) szerették volna alkalmazni,. Norbert Wiener Hermann Hollerith (XIX-XX. sz) az 1890-es amerikai népszámlálás adatait dolgozta fel 6 hét alatt elektromos lyukkártya olvasójával. (Az 1880-as adatokat csak 1887re tudták feldolgozni, pedig akkor még sokkal kevesebben voltak!) Ő alapította az IBM céget. Konrad Zuse 18 éves korában doktorátust szerzett, a ma legidőszerűbb tudományokkal foglalkozott: kommunikáció- és
információelmélettel, kibernetikával, mesterséges intelligenciával. Wiener 1940-ben megfogalmazta a korszerű számítógép alapelveit: aritmetikai egysége numerikus legyen (=a számolást végző része számjegyes legyen) elektroncsöves legyen (mechanikus és elektromos kapcsolók helyett) kettes számrendszert használjon emberi beavatkozás nélkül oldjon meg feladatot (közbenső logikai döntéseket is végezze el önmaga) az adatok tárolhatók, olvashatók, törölhetők legyenek Alan Turing berlini mérnök(hallgató) 1938-ban relés memóriájú, villanykörte-sorozat formájú kijelzőjű, bináris, jelfogós (tehát nem mechanikus!) számítógépet készített. 1941-re kiegészítette lebegőpontos aritmetikával. Ez volt az első megvalósult programvezérelt gép, amely a tárolt program elvével működött. Az első digitális rajzgépet is ő hozta létre Saját kis cége gyártotta találmányait, ezt később megvette a angol
matematikus 1936-ban leírta a tetszőleges matematikai problémák megoldására szolgáló számítógép matematikai modelljét („Turing-gép”). A II. világháborús (angol) 21 kódfejtés és logisztika számára kifejlesztett gépe, a Colossus I. 1943-ra működött Ez volt az első elektroncsöves számítógép. Nem gya21 Tehát az első programozó egy nő volt, az ADA programozási nyelvet neveztük el róla. 20 A brit hírszerzés megbízásából fejlesztette ki, hogy a németek „ENIGMA” gépeivel titkosított üzeneteit minél rövidebb idő alatt megfejthessék. Informatika jegyzetek D korolt további hatást a számítástechnika fejlődésére, mivel a brit kormány (katonai jelentősége miatt) titkosította 30 évre. VPE 15. oldal Neumann János magyar matematikus John Atanasoff 1939-ben épült fel Atanasoff és Berry elektro22 23 nikus kompjútere , az ABC , melyet egyenletrendszerek megoldására használtak. Howard Aiken (és Herman
Goldstine) az USA-ban 1946-ban megfogalmazta az elektronikus digitális számítógépek működésének elveit, amelyeket ma mindenki ismer a következő néven: Neumann-elvek (New York) Babbage munkáját megismerve elkészítette a MARK1 nevű gépet eredetileg telefonbeszélgetések számlálására, de aztán lőelem-táblázatok számítására használták (1944). Az USA-ban 1946-ra Mauchley és Eckert nagyon gyorsan és pontosan számoló gépet készítettek ENIAC néven (lyukkártyán lévő külső programmal, 18000 elektroncsővel). Ezred ill. tízezred másodperc alatt végzett matematikai műveleteket 10 tizedesjegy pontosságú számokkal, ehhez azonban 30 méternél hosszabb teremre volt szükség, és 30 tonnát nyomott. 22 Atanasoff felajánlotta az IBM-nek gyártásra a találmányt, de ők azt válaszolták, hogy nem érdeklődnek az elektronikus számítógépek iránt. 23 Miért is lett a neve ABC? Különben az első, Magyarországon nagyobb mennyiségben
megjelent nyugati kompjúterek az ABC80-ok voltak (tehát 1980-ban megjelent számítógépek, amelyek a COCOM-lista megszűnésekor behozhatókká váltak). 24 A számítógép elektronikus és kettes számrendszert használó részekből épüljön fel. Szekvenciális (soros) végrehajtás: A végrehajtási utasítások pontosan határozzák meg, hogy egy lépés után melyik (egy!) lépés következik. A számítógép (logikai) felépítése a következő legyen: Memória (tár) az információ tárolására (címezhető és felülírható rekeszekkel). Ez tárolja kettes számrendszerbeli formában a számításhoz szükséges adatokat (kiindulási adatokat és azokból adódó eredményeket), és a számítás végrehajtási utasításait (=program) is. (Ez a „tárolt program elve”) Központi (feldolgozó) egység (=Central Processing Unit, CPU, vagyis processzor!) az információ feldolgozására, benne aritmetikai-logikai egység, amely a számolást és
logikai műveleteket végzi vezérlő egység, amely a tárból kiolvasott utasítások segítségével, emberi beavatkozás nélkül irányítja a feladat végrehajtását. Perifériák az információ gépbe juttatására és onnan kivitelére. A Neumann-elvek elvi útmutatást adtak a szá25 mítógépek építéséhez . Az első (közismert) tárolt program elvű gépet (az EDSAC-ot) Maurice Wilkes előbb készítette el Cambridge-ben, míg Neumannék csak 24 Mivel Neumannék ezt egy hosszabb cikkben publikálták, sokan máshogyan csoportosítják (és számozzák) a benne található elveket. 25 Tehát nem konkrétan mondják meg, hogyan kell számítógépet építeni, csak hogy ezeket az elveket követve érdemes számítógépet építeni. Informatika jegyzetek D VPE 1951-re fejezték be az övéket (az EDVAC egy egyéni vátozatát, az IAS-t). A használatban lévő gépek a mai napig a Neumann-elvek szerint épülnek fel! 26 Szabadalmaztatta valaki a
számítógépet? Nem. Az ENIAC és az EDVAC készítői megpróbálták, de az amerikai szabadalmi hivatal és a bíróság úgy döntött, hogy a digitális számítógépet John Atanasoff találta fel a 1942ben (bár nem szabadalmaztatta). Atanasoff gépe korához képest elképesztően fejlett volt (kettes számrendszer használt, a memóriákat kondenzátorok működtették a mai RAM-okhoz hasonló módon), de Babbage-hez hasonlóan ő sem tudta megfelelően kivitelezni korának fejletlen hardver-technikája miatt. Atanasoff gépét különben Mauchley és Eckert is ismerték, és sok ötletet merítettek belőle az ENIAC és az EDVAC megépítéséhez. Számítógép-generációk A mechanikus és relés számoló- és számítógépek után a következőképpen tagoljuk a számítógépek fejlődését: Az első generáció: 1945-55 között elektroncsöves gépek épültek, a számítógép akkoriban csak hardverből állt. (ENIAC,EDVAC,UNIVAC) Második generáció: 1955-65
között megjelentek a tranzisztorok, megkezdődött a miniatürizálás. Szoftver szempontjából a kötegelt rendszerek voltak jellemzőek. Harmadik generáció: 1965-72 között már használták az integrált áramköröket, ez ugrásszerűen csökkentette a méretet, javította a megbízhatóságot, növelte a műveleti sebessséget. Az IC (Integrated Circuit, integrált áramkör) elektronikai alkatrész, amely sok diódát, tranzisztort, ellenállást tartalmaz a közöttük lévő kapcsolásokkal együtt egy lapkán. Ezek sűrűsége egyre nőtt: SSI = Small Scaled Integration (-10 logikai kapu), MSI (10-100), LSI (100-1000). Szoftveroldalon megjelent az operációs rendszer, kialakultak programnyelvek, és a multiprogramozás. Negyedik generáció: A 70-es évek második felétől már elég nagy sűrűséget (VLSI: 1000 feletti) értek el félvezető lapkán (ezt nevezik chip-nek), így lehetővé vált a központi egység (= proceszszor, central processing unit, CPU,
központi feldolgozó egység) részeinek összeépítése 26 Ha valaki szabadalma lenne a számítógép annál több pénz semmi másból nem származhatna ma a Földön! 16. oldal egy lapra: megszületett a mikroproceszszor (az Intel cégtől, 1971). Ma már persze sokmillió az egy chipen ülő alkatrészek száma, más szempontból is hozott újat a fejlődés (pl. műveleti sebes27 ség növekedése , hálózatok kialakulása), ezért a mai gépeket már sokan (főleg reklámcélból) ötödik generációsnak mondják, de sokak által elfogadott vélekedés, hogy a maiakat soroljuk továbbra is a negyedik generációba (és majd csak a megváltozott logikai modellű gépeket ne28 vezzük majd ötödik generációsnak ). E generációkon át a következő tendenciák nyilvánvalóak: a méret csökkenése, a műveleti sebesség növekedése, a szoftver jelentőségének növekedése, a szoftver felhasználóbarátabbá válása, az ár csökkenése –
és e két utóbbival szoros összefüggésben – az elterjedtség növekedése. Magyarország és a volt szocialista országok ellen a 80-as évekig érvényben volt egy tiltó lista („COCOM-lista”), amelyen szereplő, (csúcstechnikát tartalmazó) gépeket, termékeket nem engedték be ezekbe az országokba. Így egyrészt nálunk rendkívül későn kezdtek megjelenni a számítógépek, másrészt saját számítógép-fejlesztésünk más utakon járt, mint 29 a nyugati. A műveleti sebesség mértékegysége: MIPS (Million Instruction /sec); azt fejezi ki, hány millió utasítást képes végrehajtani másodpercenként). 28 Az ötödik generációs gépek várhatóan már nem követik a „soros működés” (Neumann-) elvét, hanem az emberi agyhoz hasonlóbban – neurális hálókként – működnek majd, a mesterséges intelligencia kutatások eredményeit felhasználva. A japánok már próbálkoztak ilyennel CNN néven 29 Kettős viszonyunk volt a
számítástechnikához (is): egyrészt ideológiai alapon elutasítóan viszonyultunk hozzá (egy lexikonban például a kibernetika fogalmát így magyarázták: „imperialista áltudomány”), másrészt jelentős és jó eredményeket hozó kutatások is folytak a KFKI-ban és Szegeden. Eközben a néhány évig nyugaton dolgozó tudományos kutatóktól az MTA szívesen megvette jó pénzért az ott vásárolt (és az amerikaiak szűrőjén egyesével sikeresen áthozott) COCOM-listás gépeiket. Ez utóbbi persze már a nemzetközi ipari (és haditechnikai) kémkedésnek is része volt. 27 Informatika jegyzetek D VPE Számítógép architektúra Arra, hogy a számítógép mint rendszer hogyan épül fel, a „számítógép-architektúra” fogalmat szokás használni. A számítógép logikai (elvi, funkcionális) felépítése (a Neumann-elvek alapján!): Hardver architektúra Ez alatt a számítógép konkrét, technikai megvalósítását, vagyis azt értjük,
hogy milyen hardver-elemekből, hogyan épül fel a számítógép. A számítógép központi része, ami az előző ábrán szerepel, technikailag is ennek megfelelően néz ki, úgy, hogy a vezérlő egységet, az ALU-t és a memóriát egy sínrendszer (buszrendszer) köti össze. A „nyitott architektúrájú számítógép” elnevezést használjuk akkor, ha az tovább bővíthető (a kereskedelemben kapható) hardver elemekkel. Azt, hogy egy számítógép milyen elemekből épül fel, konfigurációnak is nevezzük. Szoftver architektúra Ez alatt azt értjük, hogy a számítógépet mint rendszert milyen szoftverek teszik képessé a feladatai megoldására, és ezek milyen kapcsolatban állnak egymással. A számítógéparchitektúrát (és benne a szoftverek „rétegzettségét”) szemlélteti a következő ábra: Felhasználói felület alkalmazások operációs rendszer HW 17. oldal A számítógép hardverével a kapcsolatot az operációs rendszer teremti
meg; sem a felhasználónak, sem a speciális feladatokat (szövegszerkesztés, táblázatkezelés, Internetböngészés, stb.) végző alkalmazásoknak nem kell közvetlenül kezelniük a hardvert. Az operációs rendszer kezeli tehát helyettük, „megbízásukból” a hardver-elemeket, például utasítja írásra a floppy meghajtót. Az operációs rendszer utasítást kaphat valamilyen feladat elvégzésére a következő módokon: Közvetlenül a felhasználó utasítja a felhasználói felületen (User Interface) keresztül: billentyűzetről begépelt parancsokkal vagy grafikus felhasználói felület (GUI) esetén egérrel, menüvel, eszköztárral. Például ha a Windows Intézőben egy fájlt „átvonszolunk” egy másik mappába, akkor az operációs rendszer végrehajtja a megfelelő műveletet. Az alkalmazásokon keresztül: Az alkalmazások „automatikusan dolgoztatják” az operációs rendszert, Például ha a Painttel való rajzolás közben a Mentést
használjuk, akkor a Paint alkalmazás fogja az operációs rendszert megbízni a fájl lemezre íratásával. A kompatibilitás fogalma Mind hardver, mind szoftver elemekre használjuk ezt a fogalmat, lényegében együttműködő-képességet jelent. Két elemet akkor nevezünk kompatibilisnek, ha azokat a számítógép rendszerén belül, a számítógép képes mindkettőt működtetni. Például „az alaplapunk kompatibilis a processzorral”. Szoftver esetén két alkalmazásra mondják, hogy kompatibilisek, ha az egyikkel készített adatokat (fájlokat) a másikkal fel lehet dolgozni. Felülről kompatibilisnek neveznek két szoftvert (egy szoftver régebbi és újabb verzióját), ha a régebbivel készített minden adatot (állományt) lehet kezelni az újabb verzióval. Fordítva ez nem lehetséges, hiszen a régebbi nem lehet úgy megírva, hogy benne legyen az, amit csak a jövőben fognak kitalálni. Szokták még számítógépekre mondani, hogy például „IBM PC
kompatibilis”: ez azt jelenti, hogy nem feltétlenül az IBM cég gyártotta, de azonos feltételek esetén a programok ugyanúgy működnek rajta, mint az eredeti IBM PC-n. Informatika jegyzetek D VPE 18. oldal A programok Program: A számítógép számára érthető kódolt formában tartalmazza azokat a lépéseket, amit a számítógépnek végre kell hajtania, hogy az általunk kívánt feladatot megoldja. A programokat programozó matematikusok tervezik, programozók készítik el valamilyen programozási nyelven, melyet a számítógép számára érthető formára (bináris jelsorozatokká) lefordítanak, hogy a számítógép működtetni tudja azokat. Programverziók (programváltozatok): a különböző programokat később továbbfejlesztik, készítenek fejlettebb változatot, amely jobb, kényelmesebben használható, szebb megjelenésű, többet tud vagy az azóta megjelent technikai újításokat jobban kihasználja, mint az előző. Ezeket általában
ugyanazzal az elnevezéssel de más verziószámmal jelölik (pl DOS1.0, DOS 20, DOS 30, DOS 33,, DOS 6.2, DOS 622), esetleg az évszámot (pl Windows 95, Windows 98, Windows 2000), vagy egyéb típusmegjelölést (Windows Millennium, Windows XP) használnak. A változatokra rendszerint a „felülről való kompatibilitás” jellemző. A programok lehetnek rendszerprogramok (a számítógép működéséhez szükséges prograalkalmazói programok mok) illetve (alkalmazások, felhasználói programok, applications) (amelyek egy-egy konkrét feladatot oldanak meg a felhasználó számára). I. Rendszerprogramok I./1 BIOS (Basic Input Output System, ROM BIOS) Ez egy speciális program, ami a számítógép „csak olvasható memóriájában” található, gyárilag beépített (beégetett) program. Tulajdonképpen hardvernek is, szoftvernek is tekinthető! A számítógép bekapcsolásakor ez végzi a hardver elemek ellenőrzését („csekkelését”), majd az operációs rendszer
betöltését. Egyébként is ez valósítja meg az alapvető I/O feladatokat. Vezérlő egység kezelése; memóriatartalom nyilvántartása, processzorhoz való hozzájutás elosztása. Perifériák kezelése, adatcsatornák állandó figyelésével a jó kihasználtság szervezése. Memóriakezelés, kiosztás és felszabadítása, védelem. Állomány- (fájl-) műveletek. Párbeszédes kapcsolattartás a felhasználóval. Programok működtetése. Hibakezelés. Operációs rendszer nélkül tehát a számítógép működésképtelen. Többféle operációs rendszer létezik akár ugyanolyan számítógépekre 30 31 32 33 is, pl. DOS , UNIX ,Linux , OS/2 , Win34 35 dows NT , Windows XP . Az operációs rendszer két részből áll: Kernel („mag”): gépközeli, végrehajtó rész Felhasználói felület: a felhasználóval való kommunikációt teszi lehetővé parancsnyelv segítségével vagy grafikus felhasználói felületen (GUI) keresztül
utasíthatjuk bizonyos alapvető feladatok elvégzésére, ugyanakkor az operációs rendszer is küld üzeneteket a felhasználónak. Az operációs rendszerek csoportosítása Felhasználók száma szerint: egyfelhasználós (pl. MS DOS) vagy többfelhasználós /multiuser (pl. Windows XP) Processznek nevezik az éppen futó (párhuzamos programszerkezeteket nem tartalmazó) folyamatot (amely programot a processzor a jelenleg végzett műveleteivel elősegít, valahol tart a végrehajtásában). Az operációs rendszereket csoportosítják az egyidőben aktív (egyszerre végezhető) processzek száma szerint is: Egyfeladatos /single tasking operációs rendszer az, aminél egy időben csak egy processz aktív, bár több is lehet a memóriában, például MS DOS. Többfeladatos /multi tasking /multitask operációs rendszernél több processz valamilyen módon (pl. valamilyen időosztás alapján) megosztozva a processzor működé36 sén látszólag párhuzamosan fut . Pl Win-
I./2 Operációs rendszer Olyan programrendszer, amely a legalapvetőbb feladatokat végzi; megteremti a kapcsolatot a felhasználó illetve a felhasználói programok és a hardver között; vezérli a gépen futó folyamatokat, kezeli az erőforrásokat (hardver és szoftver erőforrásokat). Az operációs rendszer feladatai kissé részletesebben: 30 A Microsoft cég terméke. A Bell Labs terméke. 32 A UNIX egy nyílt fejlesztésű változata Linus Thorwaldstól. 33 Az IBM terméke. 34 A Microsoft cég terméke. 35 A Microsoft cég terméke. 36 „virtuális párhuzamosság” 31 Informatika jegyzetek D VPE 37 dows XP. Valóban párhuzamosan akkor 38 futhatnak processzek , ha több processzor van: „multi processing”. A felhasználói felület (User Interface) szerint: karakteres /parancsnyelves /parancsorientált (pl. DOS, UNIX) – szigorú szintaktika!) Vagy grafikus felhasználói felületű (GUI = Graphical User Interface) (pl. Windows 95) Amelyik operációs
rendszer nem (volt) grafikus felületű, ahhoz később írtak segédprogramokat vagy grafikus felületet, mert így szívesebben hasz39 nálják az emberek (pl. Norton Commander, DosShell, Windows 3.1) Az op. rendszer egyik legfontosabb feladata a: Fájlkezelés 40 Fájl -nak (állománynak nevezzük a logikailag összetartozó adatokat, amire egy (fájl)névvel hivatkozhatunk. A különböző operációs rendszerek más és más rendszert („fájlrendszer”, „file system”) használhatnak a fájlok kezelésére, de mindegyikben meg kell oldani a következőket: Fájl elhelyezése (írása, rögzítése, file allocation) háttértárolókon (floppyn, winchesteren, CD-n,), és annak nyilvántartása, hogy milyen nevű fájlok hol lettek elhelyezve. Fájl tulajdonságainak nyilvántartása (fájlleírás, file description). Részletes információt őriz a fájl nevéről, létrehozásának és utolsó használatának idejéről, stb. Fájlszervezés (file organization): Rengeteg
fájl könnyebben kezelhető a felhasználó számára, ha csoportosíthatók. Ennek érdekében az operációs rendszerek „könyvtárszerkezetet” (= könyvtárstruktú-rát, mapparendszert) hoznak létre, ami logikailag létezik (fizikailag – a lemezen például – a fájlok nem a könyvtárrendszer szerinti csoportosításban foglalnak helyet). Számontartja viszont egy tartalomjegyzékrendszerben (=directory-ban, katalógusrendszerben), hogy a felhasználó számára milyen alkönyvtárakban mutassa a fájlokat. Ehhez persze minden könyvtár- (=alkönyvtár, mappa) névhez meg kell jegyeznie, hogy melyik könyvtár honnan nyílik, benne milyen fájlok vannak 41 és belőle milyen könyvtárak nyílnak. 37 „valós párhuzamosság” Neumann-elvű számítógép esetén 39 A Peter Norton által alapított cég terméke. Szintén az ő termékük a Norton Antivirus 40 A file eredetileg iratköteget, iratcsomót jelent, ezt a szót használták az irodában használt,
kemény lapok közé helyezett, szalaggal átkötött iratcsomagokra. 41 Az alkönyvtár tulajdonképpen egy fájl, ami bejegyzéseket tartalmaz más fájlokról. 38 19. oldal Fájlműveletek: A felhasználó számára lehetővé kell, tennie, hogy az állományait törölhesse, másolhassa, átnevezhesse, stb. Fájlvédelem: Az operációs rendszer a fájlokkal történő véletlen vagy illetéktelen műveletek ellen védi azokat. I./3 Segédprogramok (= utilities, utility-k): (Kis túlzással szokás a rendszerprogramok, illetve korrektebben inkább a „rendszerközeli programok” közé sorolni a segédprogramokat is, mert:) Ezek hasznos apróbb programok, amelyek a felhasználó általános, nem konkrét szoftverekhez kapcsolódó igényeit elégítik ki, hanem az üzemeltetést segítik, tehát tulajdonképpen az operációs rendszer szolgáltatásait teszik kényelmesebbé vagy bővítik: Fájlkezelők (pl. Norton Commander, Windows Commander), lemezkezelők (pl. Partition
Magic), a hardver lehetőségeit bővítő programok (pl. „winchesterbővítők”), diagnosztikai programok (vagy „tesztprogramok” pl. hardverdetektáló program), biztonsági programok, stb Sokan ide sorolják a kevésbé rendszerközeli segédprogramokat; például a (személyes) tűzfalakat, vírusirtókat, tömörítőket is. A tendencia az, hogy e segédprogramok által megvalósított funkciókat az operációs rendszerek újabb változataiba már beépítik. II. Felhasználói szoftverek (= alkalmazói programok, alkalmazások, applications): A szoftverpiac legnagyobb szeletét éppen ezek a programok jelentik. Vannak köztük II./1 általánosabb célú szoftverek , amelyek bárki számára hasznosíthatóak (szövegszerkesztők, táblázatkezelők, adatbázis-kezelők, levelezőprogramok, grafikai programok, multimédiás programok, internethasználatot elősegítő programok, jogi és egyéb adattárak, játékprogramok,és vannak, akik ide sorolják a kevésbé
rendszerközeli segédprogramokat; például a (személyes) tűzfalakat, vírusirtókat, tömörítőket is. II./2 speciális célú szoftverek , amelyek kifejezetten egy-egy szakma vagy tevékenység igényei szerint készültek (pl. könyvelő-, mérnöki tervezőprogramok, kiadványszerkesztők, integrált vállalatirányítási Informatika jegyzetek D programok, oktatóprogramok, program, programnyelvek) VPE adóbevallási Néhány felhasználói program ismertetése A g r a f i k a i p r o g r a m o k a digitális képek különböző fajtáit tudják kezelni; két alapvető fajtája a pixelgrafika (=raszter- bittérképesvagy bitmap grafika) és a vektorgrafika. A pixelgrafika azon alapul, hogy a képek pontokból (pixelekből) épülnek fel, és a tárolásukkor pontonként elmentődnek az ott szereplő színek kódjai. Emiatt ezek a képek nagy helyet foglalnak. A pixelgrafikát nem lehet nagyítani vagy kicsinyíteni az eredeti kép valamilyen fokú torzulása
nélkül. A vektorgrafikák az ábrák összetevőit (objektumait) és a köztük lévő (logikai) kapcsolatot tárolják, így elmentve kevesebb helyet foglalnak. A vektorgrafikák nagyításakor és kicsinyítésekor nem lép fel torzulás A tervezőrendszerek ezt a módszert használják A grafikus programok néhány fajtája: rajzoló-, képfeldolgozó-, animációs programok. Vannak két- illetve három dimenziós (3D) grafikai programok. Grafikai programok például: Paint, Paintbrush, Adobe Photoshop, Coreldraw, Adobe Illustrator, Paint Shop Pro. A s z ö v e g s z e r k e s z t é s r e használható programok elnevezése a képességeik alapján általában: editorok (pl. Jegyzettömb, Write, Wordpad), szövegszerkesztők (pl. Word, WordPerfect), kiadványszerkesztők (DTP, Desktop Publisher, pl. Panda, QuarkXPress, Corel Ventura, Microsoft Publisher). A t á b l á z a t k e z e l ő k alkalmasak táblázatokkal való (statisztikai, matematikai, pénzügyi, gazdasági, stb.)
számításokra, diagramok alkotására, az adataik más alkalmazások rendelkezésére bocsátására. Például: Microsoft Excel, Lotus 1-2-3, Quattro Pro. Adatbázis-kezelő programok Adatbázis több, egymással kapcsolatban lévő adattáblázatot jelent, amelyeket egymással összefüggésben lehet tárolni, módosítani, lekérdezni, stb. (Ilyen lehet például egy gépkocsi kölcsönző adatbázisa. Ott a kocsikról is van egy csomó adat, és a kölcsönző személyekről is, ezeket pedig együtt is kell kezelni, például amikor egy személy visszahozza a kikölcsönzött kocsit: Akkor az ő adataira szükség van a számla elkészítéséhez, ugyanakkor a kocsi adatai közé is be kell írni, hogy visszahozták, tehát újból kölcsönadható.) Például: Microsoft Access, Oracle, dBase, Clipper, Microsoft Visual FoxPro, Magic. 20. oldal A prezentáció (bemutató) készít ő p r o g r a m o k előadások során használható multimédiás anyagok készítésére
alkalmasak, (az előadást segítő vagy helyettesítő) bemutató „diasorozatként” épül fel. Például: Microsoft PowerPoint, Lotus Freelance Graphics, Harward Graphics, Star Impress. Multimédia fejlesztő program o k alkalmasak arra, hogy létrehozzunk multimédiás elemeket, sőt alkalmazásokat (akár a második világháború történetét CD-n kép- film- és hangdokumentumokkal, szöveggel). Például Macromedia Flash, Macromedia Director, Corel Move, Adobe Premiere, Sonic Foundry, Sound Forge. Karakterfelismerő programok között egyeduralkodó az egész világon a ma42 gyar Recognita szoftver. Segítségével például szövegszerkesztővel használhatóvá alakíthatod a beszkennelt szöveget, akár kézírást is. Abban, hogy a szoftver minél jobban felismerje a betűket, már a mesterséges 43 intelligenciának is szerepe van. T e r v e z ő p r o g r a m o k (CAD, Computer Aided Design, számítógéppel segített tervezés) Ezek a digitális képkezelési
módokat felhasználva és a tervezői matematikai – fizikai számításokat elvégezve könnyítik meg a tervezők munkáját. Használatukkal minden előállítható, amelyre egy tervezőnek szüksége lehet illetve amit elvárnak tőle (terv, 3 dimenziós megjelenítés, dokumentáció és adattár készítése, csoportmunkához adatok szolgáltatása, stb). Ilyen programok készültek földmérőknek, településtervezőknek, formatervezőknek, textiltervezőknek, közműtervezőknek, környezetvédelmi mérnököknek, stb. Az építészek számára írt legjelentősebb, világhírű program a Graphisoft magyar cég terméke (Archicad). Továbbá: AutoCad, MicroStation, A térinformatikai rendszerek olyan adatokat kezelnek, amelyek nemcsak 42 Recognition = felismerés AI = Artificial Intelligence, mesterséges intelligencia. A mesterséges intelligencia egy kutatási terület (tudományterület), nem pedig egy lény, mint a filmekben. Minden olyan téma a mesterséges
intelligenciához tartozik, amit ma (még) az ember jobban tud, mint a gép. Például egy emberi arcról felismerni, hogy az nőé vagy férfié. Az AI kutatások célja, hogy létrehozzunk olyan számítógépet illetve programot, amely ilyen (öntanulást is igénylő) tevékenységet tud végezni. Ma sikeres kutatások folynak a beszédfelismerés, nyelvmegértés területén. 43 Informatika jegyzetek D logikai, hanem térbeli kapcsolatban is vannak egymással (például egy város villamos áram-, csatorna- és ívóvíz-hálózatának adatainak tárolásához, elemzéséhez, megjelenítéséhez szükségesek térképek, szöveges- és számadatok). Ma gyakran használt fajtái: GIS (Földrajzi Információs Rendszer), földhivatali rendszerek, közműnyilvántartó rendszerek, GPS (Globális Helymeghatározó Rendszer, ez a műholdak és egy műszer segítségével lehetővé teszi, hogy egy dolog földrajzi koordinátáit meghatározhasd, illetve, hogy egy adott földrajzi
koordinátához odatalálj. Lásd egy játékos felhasználását a www.geocachinghu-n) Az o k t a t ó p r o g r a m o k tananyagok bemutatására, feladatok gyakoroltatására, ellenőrzésre és értékelésre használhatóak. Nagyon elterjedtek például a multimédiás nyelvoktató programok, de ide tartoznak a katonai pilótákat kiképző szimulátorprogramok is. I r o d a i p r o g r a m c s o m a g o k (irodai programok, office applications) néven szokás együttesen megnevezni azokat a programokat, amelyek egy irodában használatosak; ezeket a fejlesztők így is fejlesztik és forgalmazzák („csomagban”, pl. a Microsoft Office programcsomag) Ezek képesek megoldani egy szervezetben zajló folyamatok dokumentálását, adatainak feldolgozását, az iroda tagjainak közös munkában való részvételét és kommunikációját. Általában tartalmaznak szövegszerkesztőt, táblázat-kezelőt, adatbázis-kezelőt, levelezőprogramot, stb. Integrált rendszereknek is
nevezik ezeket a programcsomagokat, mert a különböző alkalmazások együttműködnek egymással (pl. a táblázatkezelővel létrehozott táblázatot beillesztheted a szövegszerkesztővel írt szövegbe, és ezt elküldheted rögtön a levelezőprogrammal). Az Internetet használó progr a m o k : B ö n g é s z ő p r o g r a m o k (Internet Explorer, Netscape Navigator, Opera, Mozilla) l e v e l e z ő p r o g r a m o k (Microsoft 44 Outlook Express, Horde), stb . Programnyelvek (Programozási nyelvek.) A számítógép processzora számára érthető, azaz számjegyekkel megjelenített programokat gépi kódú programoknak nevezik. Gépi kódban azonban túlzottan időigényes és nehézkes programot írni, mert például a műveleti kódokat numerikus (általában hexadecimális) formában kell megadni, VPE 21. oldal A gépi kód helyett egy más kódot (nyelvet, prog r am n yelv et ) k e ll et t ki t a lá ln i, amivel kiküszöbölhetők ezek a
problémák. Az ezeken írt programokat viszont a számítógép számára „le kell fordítani” ahhoz, hogy végre tudja azt hajtani. A kérdés az, hogy ez a programozási nyelv hol helyezkedjen el azon a skálán, ami a gépi kód és a beszélt emberi nyelv között van: 1. Gépközeli nyelveknek, géporientált nyelveknek, assembly szintű nyelveknek vagy assembly nyelveknek nevezzük azokat a programozási nyelveket, amelyek közelebb vannak a gépi kódhoz. Az assembly nyelveken írt programokat le kell fordítani gépi kódra; az ilyen fordítóprogramot nevezzük assemblernek. A gépközeli nyelvek használatához pontosabb hardverismeretre van szükség, nehézkesebb a használatuk, a velük írt programok hardverfüggőek, de jobban kihasználják a processzor sajátosságait, rövidebbek és gyorsabbak. Akkor érdemes ezzel dolgozni, ha a gép sebességét, memóriáját minél jobban ki kell használni – erre ma már egyre kevésbé van 45 szükség . Az assembly
nyelvek sajátosságai: • Utasításait egyenként gépi utasításokká lehet alakítani (bár léteznek makroutasítások is, amelyekkel a sokszor előforduló utasításcsoportokra lehet hivatkozni, például a regiszterek tartalmának kimentésére). • Az utasításokat nem számokkal, hanem megjegyezhető (mnemonikus) kódokkal jelölik – ezeket mnemonikoknak nevezik – amelyek angol rövidítések. Például JMP az ugróutasítás. • Abszolút tárcímek helyett használhatóak szimbolikus adathivatkozások. 45 44 Bővebben ld. a „Hálózatok” jegyzetben abszolut tárcímeket kell megadni, vagyis ismerni kell a memória pontos felosztását, a program csak akkor hajtható végre, ha a programban megadott tárterületre történik a betöltés, minden műveletet elemi szinten kell megadni, vagyis egy művelet csak egy utasításból vagy hardver műveletből állhat, ha a program nem fut le, nem kapunk információt a hiba jellegéről, egyik processzorra megírt
program nem használható másik processzorcsaládnál, mivel annak utasításkészlete és egyéb jellemzői eltérőek lehetnek, stb. Régebben így írták a rendszerprogramokat, fordító- és értelmezőprogramokat, ma esetleg a grafikai részletek megoldására használják. Informatika jegyzetek • D VPE Egyes utasításokra a tárbeli címük helyett hivatkozhatunk címkével. 2. Magas szintű programozási nyelveknek , vagy problémaorientált programozási nyelveknek nevezzük azokat a programozási nyelveket, amelyek közelebb vannak az emberi (angol) nyelvhez. Az ezekkel írt programok „hordozhatóak” (különböző típusú számítógépeken is futtathatóak, feltéve, hogy létezik hozzájuk a megfelelő fordítóprogram), utasításkészletük kényelmesebb (például a számtani műveletek jelölése a matematikában megszokott műveleti jelekkel történik), így a programok írása gyorsabb, könnyebb az utólagos javítás vagy bővítés is. A magas
szintű programozási nyelvek utasításai több gépi utasítást tartalmaznak, ennek megfelelően a magas szintű fordítóprogramok is bonyolultabbak. 46 A programozó tehát valamilyen programozási nyelven (egy editorral) megírja a programszöveget (forrásprogramot), azt pedig egy fordítóprogram (compiler) lefordítja a processzor számára érthető, végrehajtható gépi kódba (tárgyprogram). Ezt a tárgyprogramot futtatjuk, amikor a programot használni akarjuk. Ma már nagyon sok (száznál több) különböző nyelv létezik. Ezek kifejlesztése általában valamilyen típusú problémák, feladatok megoldására irányul Az egyes programozási nyelvek különböző utasításkészlettel, szabályrendszerekkel rendelkeznek. Ezeket a szerkezeti, formai követelményeket szintaktikai követelményeknek nevezzük A programozási nyelveket (pl. Pascal) fejlesztői környezettel együtt használják, amelyben a nyelven kívül a programszöveg szerkesztését (editor), a
fájlkezelést, a fordítást, megkönnyítő lehetőségek is be vannak építve menürendszer formájában (pl. Turbo Pascal). Egy szabványos nyelv kiegészítését többletfunkciókkal (illetve a használatához kialakított fejlesztési környezetét) gyakran „implementációnak” nevezik 46 HLL: high level language = magas szintű nyelv 22. oldal Néhány programnyelv: BASIC (Beginners ALL-purpose Symbolic Instruction Code) Ez a programozási nyelv a magas szintűek közül az egyik legegyszerűbb, komolyabb feladatok megoldására ritkán használják. A 47 BASIC nyelvet a magyar Kemény János alakította ki! A BASIC implementációi például: GW BASIC, TURBO BASIC, QUICK BASIC, VISUAL BASIC. Kemény János COBOL (COmmon Bussines Oriental Language: közös üzletorientált nyelv) Elsősorban adatfeldolgozásra készült, ezen a területen még ma is használják. Hasonlít a normál beszédhez, utasításai állítások. FORTRAN: (FORmula TRANslation, azaz képletek,
algebrai kifejezések használatára alkalmas nyelvnek készült, 1954, John Backus vezetésével). Ez az egyik legrégebben használatos magas szintű programozási nyelv, sok korszerűsített implementációja létezik, matematikai, fizikai kutatásoknál szükséges számítások elvégzésére a legalkalmasabb. Pascal: Kifejezetten oktatási célra kifejlesztett, általános célú programnyelv. 48 C (Ken Thompson „B” nyelvének tökéletesítéséből, 1971-ben dolgozta ki Dennis Ritchie). 1983-tól van szabványos C nyelv, a legnagyobb jelentősége, hogy operációs rendszereket is írnak ezen a nyelven (UNIX, 1970). Elterjedését segíti, hogy nagyon hatékony programozási nyelv és a C forrásprogramok elég jól 47 Kemény János (Budapest, 1926 – New Hampshire, 1992) Einstein és Neumann tanítványa és munkatársa, a BASIC nyelv megalkotója. Az időosztásos számítógép-hálózatért az IBM első Robinson-díját kapta 48 Szokás a C nyelvet alacsony szintű
programozási nyelvként is említeni. Ez azonban nem jogos, csak azt jelenti, hogy általában „gépközeli” adattípusokkal dolgozik, tartalmaz olyan gépközeli műveleteket is (például bitstruktúrák kezelését), amelyet más magas szintű programozási nyelvek nem támogatnak. A C nyelvben az I/O utasítások és egyéb műveletek elvégzésére függvényeket kell használni A függvénykönyvtáraiban több hasznos eszköz található, mint más programozási nyelvekben. Informatika jegyzetek D hordozhatóak különböző platformok között. Manapság a C nyelvet a C++ implementációval használják. JAVA: A Java a Sun által kifejlesztett programozási nyelv, amelyet a web számára terveztek. A Java lényege az, hogy HTML dokumen49 tumban hivatkozhatunk Java programokra , amelyek platform függetlenek, tehát bárhol futtathatóak. A szoftverpiac jogi keretei Szerzői jog Aki szellemi terméket készít, azt (minden további eljárás nélkül) szerzői jog
illeti meg. Tehát a szoftver készítőjét is szerzői jog illeti meg. (Ha egy szoftverfejlesztő cég alkalmazottjaként dolgozott, akkor a munkaszerződésének megfelelően, de általában a szoftverfejlesztő cégé a szerzői jog) A szerzői jog tulajdonosát pedig törvény védi a jogtalan felhasználókkal szemben. Szoftverforgalmazás A szoftverek – a többi árucikkhez hasonlóan – védett márkanévvel, a gyártó céggel kötött szerződések szerint forgalmazhatók. (A forgalmazót szokták „hivatalos viszonteladó”-nak, „disztribútor”-nak nevezni.) Csak az ilyen forgalmazóktól beszerzett programot nevezhetjük jogtiszta szoftvernek. A gyártók és forgalmazók igyekeznek a jogtiszta szoftverekhez többféle előnyt is társítani: • a majdani továbbfejlesztett (update, upgrade) változat kedvezményét, • karbantartási szolgáltatást, • ügyfélszolgálatot, 49 A Java programot a fordító egy köztes gépi kódra, úgynevezett virtuális
gépi kódra fordítja le, amelyet végül is majd a Web-böngésző fordít le futtatható formátumra. A legújabb böngészőkbe sőt néhány operációs rendszerbe már be van építve a Java támogatás. Ha nem akarsz Java-ban programozni, akkor is elhelyezhetsz HTML dokumentumban Java scriptet, ami egyszerűbb Míg a Java program egy önálló, lefordított file és a HTML dokumentumban csak hivatkozás van rá, addig a Java script magában a HTML oldalban van forrásszöveg formájában. Mindkettő nagyon hasonlít a C++ nyelvhez. Ahhoz, hogy egy Java program futtatható legyen, példányosítani kell. Ez azt jelenti, hogy a forráskódban kell lennie egy olyan metódusnak, amelynek neve megegyezik a program nevével. VPE 23. oldal • csereakciókat, stb. Vannak olyan szoftverek is, amelyek szabadon (ingyen) terjeszthetők (másolhatók, internetről letölthetők) és korlátlanul használhatók, ezeket freeware szoftvereknek nevezik. A shareware szoftverek szintén
szabadon megszerezhetőek, de a használatukban valamilyen korlátozás érvényesül: • általában csak egy ideig (pl. 30 napig) használhatóak szabadon, utána meg kell vásárolni vagy le kell törölni, • esetleg nem működtethető minden elemük (pl. néhány menüpont nem használható) Tulajdonképpen azért léteznek, hogy a shareware változat használata által meggyőzött felhasználó vásárolja meg a korlátozás nélküli változatot. Illegális szoftverkereskedelem Szoftvert csak az adhat el, aki erről szerződést kötött a forgalmazni kívánt szoftver(ek) gyártójával. Máskülönben illegális szoftverkereskedelemről beszélünk Illegális szoftvereladásra utal, ha a programot gyanúsan olcsón kínálják, a szoftver nem a „gyári” dobozban vagy nem gyári adathordozón (CD-n,) van, a regisztrációs kártya nincs vagy nem nyomdai, a regisztrációs számot házilagosan mellékelik, nem hajlandók számlát adni, stb. Gondoljunk az illegális
játékprogramkereskedésre! Az illegális szoftverkereskedelemben való részvételt – az eladást és a vételt is – a törvény bünteti. Az illegálisan szerzett programok (illegális szoftverek) birtoklása viszont törvénybe ütközik és büntethető, de egyéb hátrányokkal is járhat: • hiányzik hozzá a dokumentáció, • nem telepíthető újra (esetleg több alkalommal), • lehet vírusfertőzött, • nem minden működik a használatakor, stb. Szoftvervásárlás Mire jogosít: A szoftver megvásárlásakor tulajdonképpen a 50 szoftver használatára vonatkozó engedélyt (licenc) szerezzük meg. Csak 1 gépre telepíthetjük, illetve egyidőben csak 1 felhasználó használhatja, hacsak nem vásároltuk meg eleve több gépre illetve „több példányosan”. (Iskolánk eleve úgy vásárol szoftvereket, hogy azok 80 gépre legyenek A szoftver; vagyis a dobozban lévő program és dokumentáció. 50 Informatika jegyzetek D telepíthetőek. Így
jóval többe kerül, mintha csak egy példányt vennénk, de a 80-szorosnál azért lényegesen kevesebbe.) Ha mi már nem akarjuk használni a szoftvert, eladhatjuk, mint általában a használt árukat, de akkor is a használati jogot adjuk tovább, és a „teljes dobozt”, tehát a programot a vele járó dokumentációval adjuk tovább, (természetesen csak 1 példányban). Mire nem jogosít: A szoftver továbbterjesztésére viszont nem vagyunk jogosultak; tehát a programról sem és a dokumentációról sem készíthetünk másolatot továbbadás céljából (sőt; másnak sem tehetjük lehetővé, hogy lemásolja a szoftverünket). Egy szoftver megvásárlása nem jogosít a későbbi verzióinak használatára. (Azokat is meg kell venni!) Általában nem fejthetjük vissza a programkó51 dot, nem módosíthatjuk a programot. Regisztráció Szoftvervásárláskor a doboz tartalmazhat regisztrációs lapot vagy kártyát, amit kitöltve meg kell őriznünk illetve le kell
adnunk vagy el kell küldenünk postán a megadott címre. Van olyan szoftver, melynek telepítésekor történik a regisztráció – Interneten keresztül. A regisztráció arra szolgál, hogy • igazolni tudjuk a szoftverhasználatunk jogtisztaságát, és • a vevők adatait a forgalmazó / gyártó cég megkaphassa. A felhasználó felelőssége VPE 24. oldal tett börtönbüntetés) született illegális másolók, kereskedők és jogosulatlan felhasználók ellen. A BSA (mivel nem hatóság) csak a rendőrséggel vagy egyéb hatósággal együtt ellenőrizhet, illetve kötelezhet minket valamire. Programtelepítés A számítógépeket általában már eleve operációs rendszerrel ellátva adják el. Ha nem így van, akkor természetesen először az operációs rendszert kell telepítenünk. A „dobozban” megvásárolt szoftverek magukban foglalják a felhasználói kézikönyvet (user guide), esetleg regisztrációs kártyát, és a programot tartalmazó
adathordozó(ka)t – leggyakrabban CD-ket. A kézikönyvben szerepel, hogyan kell elindítanunk a telepítőprogramot, ezután az a monitoron tájékoztat minket a továbbiakról. A telepítés 5-60 percig is tarthat, végeredményeképpen a program felkerül a számítógép winchesterére, és onnan használható lesz Néhány szoftvernek vannak olyan ritkán használt részei, amelyek nem okvetlenül kerülnek fel a beépített lemezre (telepítés közben megkérdez minket erről, és ha mi nem kívánjuk, hogy az is foglalja a helyet a winchesteren, akkor – ha majd nagy ritkán kell – használjuk a CD-ről. Vannak azonban olyan programok is, amelyeknek a használatához is szükség lesz mindig a lemezre. (Ez vagy az illegális terjesztés 52 megakadályozása céljából van így , vagy azért, hogy a program által ritkábban használt nagy tömegű adat ne foglalja állandóan a winchestert.) A telepítés végeztével a telepítőlemezeket biztonságos helyen őrizzük
meg A számítógép üzemeltetője felel azért, hogy a gépen csak jogtiszta szoftverek legyenek! A jogtisztaságot a vásárláskor kapott licencszerződéssel, a vásárlást igazoló számlával, vagy a regisztrációs kártyával igazolhatjuk. BSA („szoftverrendőrség”) A szoftvergyártók és -forgalmazók érdekvédelmi egyesületet alapítottak BSA (Bussines Software Alliance) néven, hogy együtt lépjenek fel az illegális szoftverkereskedelem és – használat ellen. Felvilágosítással és jogosulatlan felhasználók felkutatásával foglalkoznak A BSA nyolc éves hazai működése folytán (feljelentésük nyomán) számos elmarasztaló bírósági ítélet (jelentős pénzbírság és felfüggesz51 Kivéve a „public domain” –ként vásárolt szoftverek esetén, de akkor is fel kell tüntetni a módosított változatban, hogy mely szoftver alapján készítettük. 52 A legszigorúbb megoldást a „kulcslemezes programok” alkalmazzák, ezeknél a
program kizárólag az eredeti kulcslemezzel futtatható. Informatika jegyzetek D Az adatkezelés törvényi szabályozása Európában elsőként 1973-ban Svédországban hoztak törvényt az adatvédelemről. Magyarországon 1995-től van érvényben külön adatvédelmi törvény, de a személyes adatainkhoz fűződő jogot az Alkotmány is kimondja. A hatályos magyar adatvédelmi törvény Az adatvédelmi törvény rendelkezik a személyes adatok védelméről és a közérdekű adatok nyilvánosságáról. Fő célja az, hogy • személyes adataival mindenki maga rendelkezzen, és • a közérdekű adatokat mindenki megismerhesse. Ez a törvény az állampolgársághoz tartozik, így külföldön is érvényes a magyar állampolgárokra. Adatfajták A törvény szerint a következő adatfajtákat különböztetjük meg: Személyes adat: a meghatározott természetes személlyel kapcsolatba hozható olyan adat, amelyből következtetni lehet érintett személyes
jellemzőire. Ezen belül különleges adat: a faji eredetre, nemzeti, nemzetiségi, etnikai hovatartozásra, pártállásra, vallásos meggyőződésre vonatkozó adat, illetve az egészségi állapotra, kóros szenvedélyre, szexuális életre, valamint büntetett előéletre vonatkozó adat. Személyes adat például a TAJ, AAJ, személyi szám, a leánykori név, vagy a tartózkodási hely is, de a telefonszám, az iskolázottság, és az e-mail cím nem. Közérdekű adat: (jogszabályban meghatározott) közfeladatot ellátó szervezetek kezelésében lévő nem személyes adat. Közérdekű adat például a polgármester munkaideje, az iskolánkban tanuló diákok száma, az iskolánk költségvetése, de nem közérdekű adat a polgármester lakcíme, az iskola tanulójának személyi száma és tanulmányi eredménye, vagy egy egyházi iskola költségvetése. VPE 25. oldal Adatkezelés A személyes adatok gyűjtését, tárolását, feldolgozását,
megváltoztatását, hasznosítását, továbbítását, nyilvánosságra hozatalát, törlését adatkezelésnek nevezzük. Az adatkezelés célhoz kötött, tehát • csak valamilyen konkrét cél érdekében lehet végezni, • csak az ahhoz szükséges adatokat lehet kezelni, • csak a cél elérésének idejéig lehet kezelni az adatokat. Kiknek kell megadnunk személyes adatainkat? Aki személyes adatainkat kéri, annak egyértelműen közölnie kell az adatkérés célját. Ha az adatkérő köteles adatszolgáltatást nyújtani olyan hivatalos szervezetnek, amely jogosult személyes adataink nyilvántartására, akkor meg kell adnunk az adatainkat. Adataink közlését nem tagadhatjuk meg rendőrség, az APEH, a Bel- és Külügyminisztérium előtt. De mindezen szervezetek kötelesek célhoz kötötten kezelni adatainkat. A Központi Statisztikai Hivatal (KSH) és a Belügyminisztérium korlátozás nélkül tarthatja nyilván adatainkat. Az adatkezelő kötelességei Az
adatkezelésért felelős személyt szokás adatgazdának is nevezni. A törvény szerint ő gondoskodik • az adatok biztonságáról (vagyis köteles védeni az adatokat jogosulatlan hozzáférés, hibás megváltoztatás vagy törlés, sérülés, megsemmisülés, nyilvánosságra kerülés ellen), • az adatok rögzítéséről, tárolásáról, feldolgozásáról, továbbításáról, törléséről a törvény által előírt módon, • (személyes adatok esetén) az adatszolgáltató tájékoztatásáról a feldolgozás célját illetően, • (személyes adatok esetén) az adatszolgáltató jogainak érvényesüléséről, • a közérdekű adatok megismerhetőségéről. Külön megemlítjük az egyik legfontosabb tudnivalót: személyes adatokat csak az adatokkal rendelkező személy beleegyezésével adhat tovább más adatkezelőnek (hacsak nem olyan szervezeteknek akarja átadni, amelyeknek joguk van megkapni azokat). Informatika jegyzetek D Az adatszolgáltató
jogai Mivel a törvény kimondja, hogy személyes adatainkkal magunk rendelkezünk, ezért például • megtilthatjuk személyes adataink továbbadását (hacsak nem olyan szervezeteknek akarják átadni, amelyeknek joguk van megkapni azokat, lásd fentebb) • kérhetjük adataink törlését kereskedelmi célú adatbázisokból. Külön megemlítjük az egyik legfontosabb tudnivalót: személyes adataink megadásánál figyeljünk oda, hogy mit írunk alá: hozzájárulunk-e adataink továbbadásához, más célú felhasználásához! VPE 26. oldal szolgáltatásukat). Ebben világhírű a magyar KÜRT RT. Az adattárolók fájl- illetve könyvtárszerkezetének logikai meghibásodása Lehetséges, hogy helytelen leállás, áramszünet, programhiba, vírus vagy egyéb ok miatt a különben fizikailag meglévő adatok kiolvashatatlanokká váltak, „nem elérhetőek”. A javításhoz vannak megfelelő segédprogramok Gondatlan kezelés A biztonságért felelős személyek (a
felhasználó, a rendszergazda, a biztonsági rendszert megszervező és üzemeltető személyek) hibájából következik be. Ezért kell ellenőrizni, hogy mindezek eléggé ügyelnek-e az adatbiztonságra. Szándékos rongálás Ide tartoznak a számítógépes vírusok által keletkezett károk is! Adatbiztonság Mivel a számítógépes adathordozókon tárolt adatok általában értéket jelentenek (akár pótolhatatlanok is lehetnek), óvnunk kell adatvesztés és illetéktelen hozzáférés ellen. Mindkettő (például pénzben kifejezhető) kárt okozhat az adat gazdájának Adatvesztésnek nevezzük az adatok sérülését vagy megsemmisülését. Illetéktelen hozzáférésről beszélünk, ha az adatokat arra jogosulatlan személy olvassa, módosítja, vagy törli. Az adatbiztonságra ügyelnie kell a felhasználónak, cégek, hálózatok esetében a rendszergazdának, alapvető fontosságú adatok esetén pedig szokás külön biztonsági céget megbízni az
adatbiztonság megszervezésével, amely kidolgoz egy szabályzatot, megbízható szoftvereket és hagyományos biztonsági rendszereket telepít, esetleg időnként ellenőrzi is a folyamatokat. Az adatvesztés okai, megelőzése Áramszünet (vagy áramingadozás) miatti véletlen adatvesztés Ellene szünetmentes tápegység, UPS (vagy feszültség-kiegyenlítő) alkalmazható. A szünetmentes tápegység – minőségétől függően – néhány percestől több órás áramkimaradás áthidalására használható. Az adattárolók élettartama Ha egy adathordozó közeledik a várható élettartama végéhez, az adatokat más adathordozóra kell átmentenünk. Az adattárolók fizikai meghibásodása Be kell tartanunk az adathordozók tárolására, kezelésére vonatkozó utasításokat. Sérülés esetén fordulhatunk adatmentésre szakosodott cégekhez (ha az adatok képviselnek akkora anyagi értéket, hogy érdemes megfizetni a Biztonsági mentés A különféle okokból
bekövetkező adatvesztésre való tekintettel készítünk a védendő adatokról biztonsági másolatot. Biztonsági másolatot jogunk van készíteni a saját anyagainkon kívül minden olyan anyagról, melynek használatára jogosultak vagyunk. 53 Ezek elmentését archiválásnak is nevezik. A fájlokat általában tömörített formában mentjük el (hiszen szeretnénk takarékoskodni az adattárolók kapacitásával, használni pedig csak akkor akarjuk majd, ha az eredeti adatok megsérülnek). Szükség esetén „visszaállítjuk” a tartalmukat (a tömörített fájlokat „kicsomagoljuk”, a fájlokat elhelyezzük a megsérült eredeti fájlok „helyére”. Biztonsági mentést szokás készíteni egyszer írható vagy többször írható adathordozóra: Egyszer írható adathordozóként általában CD-t vagy DVD-t használnak. Többször írható adathordozóként sokszor használnak a szalagos egységet (streamer). Ilyenkor a biztonsági mentést „forgó
rendszerben”, több (például 4) készlet adathordozóval, rendszeres időközönként végzik el. (Ez azt jelenti, hogy az első négy mentéssel megtelik a négy készlet adathordozó, ötödszörre pedig a legrégebbit írják felül, és így tovább. Így mindig rendelkezésükre állnak az adataik négy előző állapotban.) A biztonsági másolatokat a számítógéptől távoli védett helyen célszerű tárolni. 53 Bár az archiválás igazi jelentése: a hosszú távra megőrzendő, aktuálisan nem használatos állományok adathordozóra való mentése. Informatika jegyzetek D Az illetéktelen hozzáférés megelőzése A hagyományos fizikai védelmet is alkalmazzák, leggyakrabban beléptető rendszerek formájában, például mágneskártyás azonosítással. Ma már az adatok hozzáférés elleni védelmében a szoftvernek van nagyobb szerepe; megfelelő szoftverek (jelszavas védelem, operációs rendszerek, víruspajzsok, szűrők) használatával,
következetes és átgondolt rendszergazdai tevékenységgel megelőzhető az illetéktelen hozzáférés. Már kisebb szervezeteknél is – ha a számítógépek hálózatot alkotnak – érdemes kidolgozni és szabályzatban rögzíteni az adatbiztonsággal kapcsolatos előírásokat. Nagyobb cégeknél komplex biztonsági rendszert üzemeltetnek. Számítógépes vírusok Az adatvesztés egyik oka lehet a vírus. Számítógépes vírusokhoz szokták még sorolni a (különben más kategóriába tartozó) férgeket és trójai lovakat is, hiszen mind hasonló módon – a számítógépes adatforgalom folytán – okoznak kárt. E három típust helyesebben „számítógépes kártevők”-ként kellene említenünk. Ezeket régebben kizárólag programozók készítették (a szerzői jogaik védelmének indíttatásából tulajdonképpen önbíráskodást valósítottak meg, vagy egyszerű bosszúból, vagy idétlen viccből, stb.), de ma már amatőrök is képesek erre
vírusgeneráló programok segítségével, akár anélkül, hogy tudnák, mit is csinálnak Számítógépes kártevők csak akkor kerülhetnek a gépünkre, ha valamilyen fizikai közegen keresztül (floppyról, hálózati kapcsolaton keresztül, stb.) adatok kerülnek a mi gépünkre Férgek (worms): Növekednek (nem szaporodnak, de hozzáadogatják magukat önmagukhoz, így végül elfoglalják az adattároló egészét). Trójai falovak: Más, különben megszokott programnak látszó programok, amelyek azonban nem a várt feladatot végzik el, hanem kárt tesznek. (Pl ha a DOS COPY parancsának látszó fájl használatakor felülírja az operációs rendszer valamelyik állományát.) Szintén nem szaporodnak. Vírusok: Olyan programocskák, amelyek meglévő programjainkba, adatainkba beépülve azok használatakor aktivizálódnak, továbbterjednek más programokra, adatokra, vagy a számítógép memóriájába, és onnan (esetleg később) működésbe lépve valamilyen
kárt okoznak (leginkább adatainkban), ill. akadályozzák egyes programok futását Aktivizáló- VPE 27. oldal dásuk lehet azonnali vagy eseményre, dátumra bekövetkező. A vírusfertőzés jelei: (A vírus megjelenésére és jelenlétére néha egyértelmű jelekből lehet következtetni, máskor azonban ezeket a jeleket nem észleli, vagy nem is észlelheti a felhasználó:) Indokolatlan lassulások, lefagyások tapasztalhatóak. Levelező partnereink jelzik, hogy e-mail címünkről fertőzött leveleket kapnak. Szándékunk nélkül leveleket küldtünk. A számítógép minden ok nélkül újraindul. Indokolatlanul hosszú ideig tart a levelek küldése. Látszólag ok és jóváhagyás nélkül Internet kapcsolatot akar kezdeményezni egy alkalmazás. Az e-mail üzenetben kapott levél mellékletének több kiterjesztése is van. Zavaros képernyőtartalom megjelenése. Megszokott menüpontok, funkciók vagy egész alkalmazások
"tűnnek el". Hiányzó vagy fizikailag sérült állományokat észlelünk. Office dokumentumok mentése nem sikerül a szokásos módon. Egyéb jelek, hiszen a vírusok nagyon sokfélék, például egyes vírusok állományokat tesznek tönkre, lassítják, és vagy meggátolják bizonyos programok futását (Klez), vagy elérhetetlenné tesznek bizonyos weblapokat (Nimda), mások a háttérben működnek, kihasználva számítógépe lehetőségeit akár törvénytelen műveletek elvégzésére is. Az sem lehetetlen, hogy egy Backdoor program segítségével valaki az Ön gépét használva próbálkozik betörni egy ismeretlen gépre. A vírusok főbb támadási területei, típusaik: Operációs rendszer (általában a rendszerparancsokba épülnek) („fájlvírusok”) Boot szektor (rendszerindításkor a memóriába kerülnek) („boot-vírusok”) Winchester partíciós táblája („partíciószektor-vírusok”) Futtatható állományok
(„fájlvírusok”) Elterjedt felhasználói programok fájljai (Word, Excel, levelezőprogramok) („fájlvírusok”) A Word és Excel makrói („makróvírusok”) És amit még majd kitalálnak Tennivaló vírusfertőzés (gyanúja) esetén: Használjuk a (lehető legfrissebb vírusokat is ismerő) víruskereső – vírusölő programok egyikét! (pl. McAffee, Norton Antivirus, Kaspersky) A víruskereső programok csak akkor kísérelnek meg eltávolítani egy vírust, ha biztosak benne, hogy képesek azt maradékta- Informatika jegyzetek D lanul, károkozás nélkül úgy eltávolítani, hogy a fertőzés előtti állapot álljon vissza. Ha erre nem képesek, akkor meg sem kísérlik eltávolítani a vírust, hanem felhívják a figyelmet, hogy itt fertőzés történt, a kár nem gyógyítható, ezért a fertőzött programot mentésből vissza kell állítani, vagy újra kell telepíteni. Ha a vírus eltávolítható, és beállítottuk a vírusok
eltávolítását, akkor a vírusölő program ezt meg is teszi. Ezzel a vírusfertőzéstől megszabadultunk Amennyiben valószínű, hogy a gép vírusos, de a legfrissebb adatbázissal rendelkező antivírus szoftver ennek ellenére nem talált fertőzést, akkor előfordulhat, hogy még nem ismert kártevővel találkoztunk. Ilyenkor az a legfontosabb, hogy az új kártevőre mielőbb kifejlesszék a védekezést, ezért küldjön vírusmintát valamelyik adatbiztonsággal foglalkozó cégnek. Utoljára, ellenőrzésképpen indítsuk el még egyszer a víruskereső programot, és győződjünk meg róla, hogy gépünkön nem maradt fertőzött file vagy boot szektor. Boot vírus esetén ez csak a gép kikapcsolása és újraindítása után lehetséges (mivel ez a fajta vírus a memóriába töltődött be a rendszerindításkor). Ilyenkor vírusmentes indító- (boot-) lemezzel indítjuk a gépet, bekapcsolva a lemez írásvédelmét. Ezért mindig legyen egy tiszta, leragasztott
rendszerlemezünk a közelben, kritikus esetekre félretéve. Végül pedig próbáljuk megállapítani, hogyan került a gépünkbe a vírus. Ha megvan a forrás, figyelmeztessük az illetőt, hogy vírusa van/volt. Tennivalók a fertőzés megelőzése érdekében: Szerezzünk be egy rezidens (állandóan, automatikusan működő) vírusvédelmi szoftvert, melyet állandóan frissítsünk. (Ezekhez általában Internetről letölthető az újabb vírusokkal kibővített adatbázis, melynek alapján felismeri és írtja a vírusokat.) Gépünk felhasználói jogosultságait megfelelő körültekintéssel alakítsuk ki. Jelszavunkat (jelszavainkat) őrizzük megbízható, nehezen hozzáférhető helyen. Bizalmas adatokat tároló számítógép használatát ne engedjük meg bárkinek. Kizárólag jogtiszta programokat használjunk. Kizárólag megbízható forrásból fogadjunk el állományokat, illetve ismeretlen eredetű programokat, kapott adathordozókat
mindig ellenőrizzük le (a legújabb víruskeresővel), csak ezek után használjuk őket. Csak akkor csatlakozzunk bármilyen hálózathoz, ha használjuk azt és ne engedélyezzünk automatikus csatlakozást. Tűzfallal védjük gépünket a külső behatolásoktól. (Ha az otthoni gépedről elérhető VPE 28. oldal az Internet, ajánlott egy „személyes tűzfal” (personal firewall) program telepítése, amely a vírusfertőzések megelőzésén kívül még sok szolgáltatást nyújt.) Folyamatosan figyelt levelezőrendszert használjunk, amelyben csak ellenőrzött, megbízható forrásból érkező csatolt állományok lehetnek, és minden tartalom víruskeresővel ellenőrzött. Rendszeresen látogathatunk vírusokkal foglalkozó honlapokat, vagy feliratkozhatunk hírlevélre, így mindig tájékozottak lehetünk az aktuálisan jellemző vírusokról és jellemzőikről. (pl wwwvirushiradohu, 54 www.symanteccom , wwwmcaffeecom) Hoax:
vírusfertőzés-veszélyről szóló álhír Sokan kihasználják a felhasználók vírusoktól való félelmét, és időről időre ijesztgetnek emailben vagy szóban, esetleg sajtóban terjedő álhírekkel, amit a jóindulatú felhasználók esetleg jóakarattal továbbküldenek másoknak is. Ezekben nem létező vírusfertőzés terjedésére hívják fel a figyelmet, sőt hamis tanácsokat is adnak. Súlyos károkat is okozhatunk magunknak, ha végrehajtjuk az általuk tanácsoltakat! Ha vírusra figyelmeztető hírt kapsz, járj utána a valóságtartalmának! 54 Norton