1. lecke. Kiegészítő tananyag: Számítógépek általános jellemzői


- Hardver
CPU
RAM
ROM
I/O egységek
- Szoftver
operációs rendszer
felhasználói szoftverek


Tehát, ebben az értelemben információtechnológiai eszköznek minősülnek:
- a számítástechnikai,
- és a kommunikációs eszközök.
A kétértékű logika matematikai törvényszerűségeit George Boole (1815–1864) angol matematikus fogalmazta meg a matematika nyelvén. Ezt a logikai algebrát nevezzük Boole-algebrának.
A Boole-algebra természetesen csak egy része a többértékű logikát leíró matematikai logikának.
Kétféle állandót ismer: a 0-t és az 1-et. Ezek logikai szintet jelölnek. Gyakorlati alkalmazásuknál ezekhez egyértelműen és könnyű műszaki megvalósítással hozzárendelhetünk egy jól mérhető és feldolgozható fizikai mennyiséget. Ez a mennyiség lehet például a villamos feszültség is.

Mi is a hardver?
A hardver a számítógépet alkotó műszaki dolgok összessége, idetartoznak az elektronikus áramkörök, kábelek, csatlakozások, mechanikus elemek és perifériák.
Melyek a Neumann-elvek?
- Az elvégzendő műveletek bevihetők legyenek a számítógép tárába, majd ezek a műveletsorok végrehajthatók legyenek. A műveletsorok összességét nevezzük programnak.
- Az utasítások és adatok sorszámmal (címmel) ellátva helyezkedjenek el a memóriarekeszekben.
- Rendelkezzenek önálló adat be/kiviteli egységgel, vezérlő- és művelet-végrehajtó egységgel.
- A számítógép teljesen elektronikus legyen, és a bináris (kettes) számrendszer alkalmazásával működjék.
- Az utasításokat sorban hajtsa végre.
Megjegyezzük, hogy a többprocesszoros rendszerekben nem érvényes a Neumann-elvek együttese.
Az 1. ábra a számítógép elvi vázlatát mutatja, melyen jól láthatók a főbb szerkezeti egységek kapcsolódásai.
1.ábra. A számítógép elvi vázlata
(A kép nagyobb változatát itt találja!)
Ahhoz, hogy a floppyn lévő mágneses réteg alkalmas legyen az adatok fogadására, létre kell hozni rajta a tároláshoz szükséges struktúrát. Ezt a folyamatot formázásnak (formattálásnak) nevezzük. A floppy jelenleg már nem használatos.
A merevlemez egy olyan elektromechanikus eszköz, amely az adatokat mágnesezhető réteggel bevont lemezeken tárolja. A merevlemez korábban, fixen beépített alkatrész volt, melyet már hordozható kivitelben is gyártanak. A merevlemezek, amelyek kapacitása egyre nagyobb lesz, a számítógépek belső háttértárlóiként szolgálnak.
CPU (Central Processing Unit – központi feldolgozó egység). Ez a processzor. Részei:
CU: irányítja és ütemezi a számítógép működését. Végrehajtja a műveleteket.
ALU: az aritmetikai és logikai műveleteket végzi.
Regiszterek: processzoron belüli gyors működésű írható és olvasható tárolóegységek.
Típusaik:
Általános regiszterek (A műveleteket a CPU az általános regiszterekben tárolt adatokon végzi.)
Utasításregiszter (Instruction Register) IR (Az aktuális utasítást átmenetileg tárolja.)
Utasításszámláló (Program Counter) PC (A soron következő utasítás címét tárolja.)
Memória címregiszter (Memory Address Register) MAR (Az adatok ki- és beolvasásakor az azonosított memóriarekesz címét tárolja.)
Memória adatregiszter (Memory Data Register) MDR vagy MBR (Buffer register)
(A memóriából kiolvasott vagy beírni kívánt adatokat átmenetileg tárolja.)
Az első számítógépek Kbájt (=1024 bájt) nagyságrendű operatív memóriát tartalmaztak, míg ez a mai (2011) átlagos számítógépben 10 Gbájt nagyságrendjébe esik.
Buszrendszer: a vezérlő-, adat- és címkódokat közvetítő vezetékek összessége.
Tehát az üzenetforrás és a számítógép, valamint a számítógép és az üzenetnyelő között egy illesztőt kell elhelyezni. Például, ha időben változó feszültségjelet szándékozunk a számítógépünkkel feldolgozni, akkor szükséges egy A/D átalakító a villamos műszer és a számítógép közé. Az A/D átalakítókról a későbbiekben lesz szó.
Az adatok feldolgozásához, megjelenítéséhez, alkalmazásához természetesen szoftverek is szükségesek.
A következőkben néhány gondolatot ejtünk a szoftverekről.
Milyen szoftverek léteznek?
Léteznek rendszerszoftverek (operációs rendszerek) és rajtuk futó felhasználói szoftverek.
Operációs rendszerek
Az operációs rendszereket több szempont szerint csoportosíthatjuk:
Kezelői felület szerint:
- karakteres (szöveges), pl. MS-DOS,
- grafikus, pl. Windows, Mac OS X,
- karakteres és grafikus, pl. Linux, UNIX.
A felhasználók száma szerint:
- egyfelhasználós, pl. MS-DOS,
- többfelhasználós, pl. UNIX.
Az egy időben futtatható programok száma szerint:
- monoprogramozott, pl. MS-DOS,
- multiprogramozott, pl. UNIX, Windows.
A korszerű operációs rendszerek több fájlrendszert támogatnak.
Mivel az adatokat a számítógépben tárolni kell, ezt csak az információtartalom alapegységéből felépítve tehetjük meg.
Először nézzük meg, mi is az információtartalom alapegysége.
Az információtartalom alapegysége az 1 bit. A számítógép az adatok és utasítások bitjeit úgynevezett rekeszekben tárolja, ami a hardverfelépítés szempontjából azt jelenti a kettes számrendszer alkalmazása esetén, hogy a logikai „0”-át vagy logikai „1”-et kell egy fizikai mennyiséggel realizálni. Tehát kétállapotú jeleket kell ezekben a rekeszekben (tárolókban) tárolni.
A tárolók esetében 8 bit alkot 1 bájtot. A bájt az információfeldolgozás alapegysége.
A mértékegységek váltószámai 2 hatványai.
210 bájt = 1024 bájt = 1KB (kilobájt)
210 KB = 1024 KB = 1 MB (megabájt)
210 MB = 1024 MB = 1 GB (gigabájt)
210 GB = 1024 GB = 1 TB (terabájt)
A fájlok méretét bájtban adják meg.
Merevlemezek esetében lehetőségünk van a lemezterület részekre bontására, más szóval particionálására. Az egyes partíciókra más és más operációs rendszert helyezhetünk el más és más fájlrendszerrel. A számítógép bekapcsolásakor az ún. Master Boot Record (MBR) indul el a merevlemezen. Itt egy rövid gépi kódú program található, amely megállapítja, hogy a partíciók közül melyikre kell átadni a vezérlést.
Egy számítógépre több operációs rendszert is telepíthetünk, melyek különböző partíciókról futtathatók. Létrehozhatunk a számítógépen külön partíciókat, ha erre a telepítéskor gondoltunk, és hagytunk rá szabad helyet, vagy lehetséges szoftverek alkalmazásával utólagosan is, ha már a merevlemez teljes egészében particionálva van. Az ilyen jellegű programokkal hatékonyan tudunk létrehozni újabb partíciókat. Ezekkel a programokkal megoldható egyik fájlrendszerből a másikba a konvertálás is, illetve a formázás.
Felhasználói szoftverek:
A felhasználói szoftverek fejlesztői szoftverekre és célfeladatok elvégzésére készült programokra csoportosíthatók. Fejlesztői szoftverek például: Visual Studio .Net, Visual C++, Borland C++ Builder, Anjuta, KDevelop, Delphi. Célszoftverek: például irodai szoftverek, adatbázis-kezelő szoftverek, mérési eredményeket feldolgozó szoftverek, tervezőszoftverek (CAD-alkalmazások), játékok stb.
A fejlesztői szoftverkörnyezetek egy vagy több programozási nyelv használatát teszik lehetővé.
Programozási nyelv: Olyan leíró logikai összesség, melyet ha a megfelelő fejlesztői szoftverrel lefordítunk, akkor az operációs rendszer értelmezi és képes végrehajtani. Ilyen programozási nyelvek például a következők: C#, C, C++, Pascal, Assembly, Java.
A processzor utasításainak olyan együttese, amely lehetővé teszi az ember és a számítógép kommunikációját. A gépi kódú programozás esetén egy fájlba számsorozatot írunk, majd elindítjuk, azaz lefuttatjuk. Ekkor valamilyen feladat végrehajtódik: például a képernyőre kiír egy betűt. Tehát a gépi kód érthető a CPU számára. Ez a programozás viszont az ember számára elég nehézkes.
Példa: Írjuk ki az Y betűt a képernyőre gépi kóddal!
A következő számokat hexadecimális számrendszerben adtuk meg 8 bájton (.com fájlba kell írni).
Az assembly olyan programozási nyelv, amelyben az utasításokhoz egy-egy gépi kód tartozik. Az assembly nyelvet a CPU már nem tudja megérteni, ezért az így megírt programot egy fordítóprogram, az ún. compiler alakítja át gépi kódra, és így már végrehajtható. Vagyis az assembly nyelvű programból előállíthatjuk az utasítások gépi kódját, és ezt az Assembler nevű fordítóprogram végzi.
Az assemblyt alacsony szintű programozási nyelvnek is szokták nevezni, mivel közel áll a gépi kódhoz, tehát a mikroprocesszor típusától függő. Közvetlenül a gépi utasításkészletre épül, az adott hardver – és csak az adott hardver – lehetőségeit a lehető legjobban használja ki. A program megírása assembly nyelven időigényes. Helytakarékossága és nagyfokú hardvertámogatása miatt előszeretettel használják driver (adott hardvert működtető, közvetlenül az operációs rendszer alá tartozó szoftver) és firmware (hardverbe égetett program) írására. Létjogosultsága azért van, mert gyors és hatékony programokat készíthetünk. A hardver elérhetőségének nincs akadálya. Az MS-DOS-t és az első UNIX operációs rendszert assemblyben írták.
Az assembly nyelv rövid utasításokra épül. Ezek a mnemonikok (rövid utasítások, melyek emlékeztetnek a szóra; szótöredékek) néhány – legtöbbször egy gépi kódú műveletnek felelnek meg, és utalnak a végrehajtott műveletre. Például a MOV utasítás a move (mozgatás) rövidítése, az adatok mozgatására szolgál a memória és regiszterek (a processzor tárolóegységei) között, vagy például az XCHG az exchange (csere) rövidítése, amely az adatok kicserélését jelenti ugyanezek között. Ezek az utasítások mikroprocesszoronként különbözőek. Tehát, nincs egységes assembly nyelv, minden processzorcsalád saját nyelvvel rendelkezik. Azonban létezik egy általános kategóriahalmaz, amely minden assembly nyelvcsaládra értelmezhető. Ilyen kategóriák például: aritmetikai utasítások, logikai utasítások, bitforgató- és léptetőutasítások, vezérlésátadó utasítások és processzorvezérlő utasítások.
Végezetül lássunk egy egyszerű példát assembly programra (Intel 80x86 processzor alkalmazásánál):
MOV AX,15B3 |
feltölti az AX regisztert az 15B3H értékkel, |
MOV BX,[SI+64] |
beolvas 2 bájtot az SI regiszter 64H-val megnövelt értékétől, mint
memóriacímről a BX regiszterbe, |
ADD AX,BX |
hozzáadja az AX regiszterhez a BX értékét, az eredmény AX-be kerül, |
MOV [BX+DI+32],AX |
az AX-ben keletkezett 2 bájtos eredményt a BX,DI és 32H
összegzésével előállított memóriacímtől kezdve elhelyezi. |
A C++ programozási nyelvet a 80-as évek elején fejlesztették ki a C nyelv továbbfejlesztéseképpen. A nyelv létrehozásának célja az egyre inkább terjedő objektumorientált gondolkodásmód volt. Az objektumorientált gondolkodásmód rendkívül felgyorsította a szoftverfejlesztést. Az objektumorientált programozás előnyéhez tartozik, hogy lehetővé teszi az egyszer már megírt programkódok újrahasznosítását.
A Java objektumorientált programozási nyelvet a 90-es években fejlesztették, melyet digitális tv-hálózatokat vezérlő berendezések programozására használtak – szintaktikája hasonlít a C++-hoz. Ez az alkalmazás a későbbiekben megszűnt, de magát a nyelvet viszont felkarolta a Netscape.
A C# programnyelvet a Microsoft fejlesztett ki általános célú programozási nyelvként. A nyelv a C++ előnyeit ötvözi a Visual Basic egyszerű használatával. A szintaktikát a C++-tól kölcsönzi, hasonlítható a Javához is. A fordításhoz és futtatáshoz a Java motorjához hasonló keretrendszer szükséges, ez a .NET keretrendszer. A Microsoft ennek megalkotásával korszerű futtatókörnyezetet hozott létre, ugyanis több nyelven lehet programozni felette. A programfejlesztők több programnyelv közül is válogathatnak ugyanazon szoftver fejlesztésénél, és a végeredmény sem kinézetre, sem működésre nem tér el egymástól. A .NET keretrendszer szabad szoftveres változata, a Mono elérhető Linux rendszerekből is.
Jelenleg a fejlődés tendenciája azt mutatja, hogy a Java-rendszer és a .NET-re épülő C# programozási nyelvek előtérbe kerülhetnek. Ehhez szükség van a hardvererőforrások jelentős fejlődésére, hogy ne legyenek sebesség- és memóriaproblémák. Természetesen az egyes szoftverek hosszabb távon történő fennmaradásához kellő mértékű gazdasági potenciál és marketing is hozzátartozik.
Pascal nyelv
A magas szintű nyelvek közé tartozik. Az 1990-es években nagyon népszerű volt. Önmagában már nem sok jelentősége van. Belőle származik az Object Pascal, majd a későbbiekben erre épült a Delphi (fejlesztői környezet).
Negyedik generációs nyelvek (fejlesztői környezet programnyelvvel)
A Microsoft által fejlesztett Visual Basic a népszerűségének köszönheti, hogy fennmaradt. Olyan embereknek szánták eredetileg, akik nem programozó matematikusok, de rákényszerülnek egyedi szoftverek gyors fejlesztésére. Forráskódjának vázát legenerálja, és a konkrét feladat megoldását kézzel kell begépelni.
A Magic egy tiszta negyedik generációs rendszer, melynek legfontosabb tulajdonsága, hogy különösebb programozás nélkül is komoly adatbázis-kezelő rendszereket lehet benne fejleszteni teljesen vizuális módon. Forráskódját nem érhetjük el. Néha 5 GL nyelvnek is nevezik, ugyanis nincs definiálva pontosan az, hogy mit is tekintünk 4 GL-nek. Ezt a jövő fogja egyértelműen majd eldönteni. Gyors fejlesztést tesz lehetővé.
Ha adatbázis-kezelésről van szó, mindenképpen meg kell említenünk a világviszonylatban is nagymértékben elterjedt Oracle-termékeket.

- Mi a hardver?
- Mik a számítógép hardveres főbb egységei?
- Mi a szoftver?
- Hogyan csoportosítaná a szoftvereket?
- Melyik hardveren keresztül csatlakozik a számítógéphez egy tetszőleges külső egység? (Az 1. fejezet áttanulmányozása után tudni kell rá válaszolni, ugyanakkor ez egy előre mutató kérdés, mert a 2. leckében van részletesen kitárgyalva.)