o a PC blokkvázlatos felépítése:



Hasonló dokumentumok
2016/08/31 02:45 1/6 Hardver alapok

2017/12/16 21:33 1/7 Hardver alapok

Számítógépek felépítése

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.

Programozás alapjai. 10. előadás

Archi2 Gyak. (Processzorok Utasításszintű Kezelése) 2014 ősz

A számítógép egységei

Processzorok Utasításszintű Kezelése tavasz

Assembly Címzési módok. Iványi Péter

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

Számítógépek felépítése, alapfogalmak

2016/06/23 07:47 1/13 Kérdések

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output

Az assembly nyelv sor-orientált nyelv, tehát minden sorba pontosan egy utasítás kerül. Egy sor mezőkből áll a következőképpen:

Bepillantás a gépházba

Assembly Rekurzív függvények, EXE, C programok. Iványi Péter

Hardver összetevők ellenőrzése Linux alatt. Hardverguruk előnyben...

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

IT - Alapismeretek. Feladatgyűjtemény

A 32 bites x86-os architektúra regiszterei

Assembly programozás levelező tagozat

Számítógépek felépítése, alapfogalmak

Aritmetikai utasítások I.

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

Assembly. Iványi Péter

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

Jelfeldolgozás a közlekedésben

Adatelérés és memóriakezelés

Bevitel-Kivitel. Bevitel-Kivitel és Perifériák. Algoritmusok és Alkalmazásaik Tanszék Budapest december 16.

Számítógép felépítése

Operációs rendszerek III.

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

OPERÁCIÓS RENDSZEREK. Elmélet

Bevezetés az informatikába

OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -

Az informatika fejlõdéstörténete

Operációs rendszerek

ELŐADÁS SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA

Számítógép architektúra

Processzor (CPU - Central Processing Unit)

Utolsó módosítás:

Adatbázis rendszerek. dr. Siki Zoltán

Számítógép egységei. Szoftver (a fizikai eszközöket működtető programok összessége)

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

elektronikus adattárolást memóriacím

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

1. Fejezet: Számítógép rendszerek. Tipikus számítógép hirdetés

Programozás alapjai Bevezetés

1. Fejezet: Számítógép rendszerek

Máté: Assembly programozás

Assembly. Iványi Péter

Számítógépes munkakörnyezet II. Szoftver

Alaplap. Slot. Bővítőkártyák. Csatolható tárolók. Portok. < Hardver

Operációsrendszerek. 2. elıadás. Standard ismeretek II.

Adatok ábrázolása, adattípusok

Operációs rendszerek. Windows NT. A Windows NT

Operációs rendszerek - bevezető

Feladatlap: Számítógép összetevők keresése

7. Fejezet A processzor és a memória

Operációs rendszerek

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Digitális rendszerek. Digitális logika szintje

3. Az elektronikus számítógépek fejlődése napjainkig 1

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

Karunkról Kari digitális könyvtár

Alkalmazások típusai Szoftverismeretek

Könyvtári címkéző munkahely

Megszakítások és kivételek

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

A PC története. Informatika alapjai-9 Személyi számítógép (PC) 1/12. (Personal computer - From Wikipedia, the free encyclopedia)

Utasításfajták Memóriacímzés Architektúrák Végrehajtás Esettanulmányok. 2. előadás. Kitlei Róbert november 28.

Balaton Marcell Balázs. Assembly jegyzet. Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született.

Adatbázis és szoftverfejlesztés elmélet

Szenzorhálózatok programfejlesztési kérdései. Orosz György

Bevezetés a számítástechnikába

9. Fejezet: Input/Output

Bevezetés az informatikába

A Texas Instruments MSP430 mikrovezérlőcsalád

Digitális rendszerek. Utasításarchitektúra szintje

Az Ön kézikönyve HP COMPAQ DC5700 MICROTOWER PC

Mikroprocesszorok (Microprocessors, CPU-s)

Informatikai Rendszerek Intézete Gábor Dénes Foiskola. Operációs rendszerek oldal LINUX

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

Utolsó módosítás:

Bevezetés. Dr. Iványi Péter

Assembly Utasítások, programok. Iványi Péter

Első sor az érdekes, IBM PC ra alapul: 16 bites feldolgozás, 8 bites I/O (olcsóbb megoldás). 16 kbyte RAM. Nem volt háttértár, 5 db ISA foglalat

A fő menüpontok között a bal vagy jobb nyíllal mozoghatunk, Enter leütésére pedig megjelenik az adott menühöz tartozó tartalom.

1. Milyen eszközöket használt az ősember a számoláshoz? ujjait, fadarabokat, kavicsokat

Operációs rendszerek MINB240. Bevitel-Kivitel. 6. előadás Input és Output. Perifériák csoportosításá, használat szerint

Nagy Gergely április 4.

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

Informatika 1 4. előadás: Operációs rendszerek

Tájékoztató. Használható segédeszköz: -

SZÁMÍTÓGÉP FELÉPÍTÉSE (TK 61-TŐL)

A Számítógépek felépítése, mőködési módjai

Architektúra, megszakítási rendszerek

Assembly utasítások listája

Átírás:

- [TÉMA1] A számítógép felépítése: o alaplap, o processzor, o memóriák (RAM, ROM, CACHE [gyorsítótár]) címzés: adatbusz, címbusz, o portok (ISA [Industry Standard Architecture], VESA local [Video Electronics Standards Association], PCI [Peripheral Component Interconnect], AGP [Accelerated Graphics Port]), o grafikus kártya (ISA, VL, PCI [alaplapi], AGP), o portok a külvilág felé: soros (COM), párhuzamos (LPT), USB [Universal Serial Bus], o hálózati kártya (MAC [Media Access Control] address: 6 byte, egyedi), o merevlemez: [disc platters (heads), cylinder, track, cluster, sector], [FAT, MBR, bad sector, lost cluster, fragmentation, defragmentation], http://www.helpwithpcs.com/jargon/sector-track-cluster.htm http://members.iweb.net.au/~pstorr/pcbook/book4/hdtech.htm o a PC blokkvázlatos felépítése: illetve o PC-bekapcsolás: először az alaplap ROM-jában tárolt néhány utasítás fut le (ez a POST, azaz a Power-On Self Test). Ez végignézi a PC-ben detektált HW-eszközöket, hogy megfelelően működnek-e. Így a CPU-t, a memóriát, és a BIOS-t (Basic Input-Output Systems). Ha minden rendben, akkor a BIOS veszi át az irányítást, és a saját tesztjei után aktiválja a számítógép lemezes egységeit, és megpróbálja betölteni a preferált lemezegységről (ez általában az első merevlemez) az első néhány szektor tartalmát, ami az operációs rendszer ún. bootstrap loader-ét kell, hogy tartalmazza. Ha ez sikerült, akkor átadja az irányítást ennek a rövidke programnak, ami betölti az operációs rendszert. http://computer.howstuffworks.com/operating-system4.htm

- [TÉMA2] Operációs rendszerek: - az operációs rendszer feladatai: o processzor menedzsment [processor managament] (1. minden processznek és applikációnak jusson elég processzor-idő; a processzor teljesítményéből; 2. a lehető legtöbb fordítódjon valódi munkára, és a lehető legkevesebb a processzek menedzselésére). Ez nem könnyű feladat. Manapság a Windows XP-k és modern Linuxok világában a felhasználó által nem is látott (de nagyon fontos funkcionalitással bíró) háttérfolyamatok száma igen magas. Rengeteg ilyen folyamat tartozik a hálózat menedzseléséhez, memória-felügyelethez, vírusok kereséséhez, stb. Az OS-nek úgy kell igazságosan elosztania a rendszer erőforrásait (többek között a processzor teljesítményét), hogy közben a megszakításokat a felhasználó előtt láthatatlanul tudja kiszolgálni. http://computer.howstuffworks.com/operating-system5.htm o memória-menedzsment [memory managament] (1. minden processz elegendő memóriát kell, hogy kapjon a futáshoz, de egyetlen processz sem futhat bele más processz memória-területébe; 2. a rendszerben található különböző típusú memóriákat úgy kell szétosztani a különböző processzek között, hogy a rendszer stabilitásának megőrzése mellett minden processz a számára legelőnyösebbhez jusson (regiszterek, gyorsítótár, rendszer-memória, virtuális memória). http://computer.howstuffworks.com/operating-system6.htm o eszköz-menedzsment [device managament] (az operációs rendszer és a fizikai HW között mindig ott van a driver, a meghajtó-program; ennek feladata lényegében az, hogy a kártya elektromos jelei, és az operációs rendszer gépi logikája között kapcsolatot teremtsen). http://computer.howstuffworks.com/operating-system7.htm o másodlagos tárolók menedzsmentje [storage managament] (mivel a számítógép csak a memóriában lévő programkód futtatására képes, ezért az OS feladata az is, hogy a szükséges adatok és programrészletek mindig az operatív tárban legyenek. Ezzel kapcsolatban az OS-nek feladata: 1. a lemezes egységek megfelelően időzített használata (ne zavarja a már aktív programok futását); 2. a lemezeken található fájlrendszerek konzisztens kezelése; 3. és a szabad lemezterületek menedzselése). http://www.netnam.vn/unescocourse/os/13.htm

o applikáció-interfész [application interface] (ahogy a meghajtó programok hozzáférést biztosítanak a HW elemekhez az operációs rendszernek [anélkül, hogy az OS-nek ismernie kellene az egyes HW-ek pontos felépítését], úgy az API-k (Application Programming Interface) hozzáférést biztosítanak az operációs rendszerhez a programozók számára. Ez azt jelenti, hogy a programozónak nem kell például regiszterszinten programozni a floppy-meghajtót ahhoz, hogy egy fájlt beolvasson, hanem egy egyszerű API-hívás segítségével ezt elintézi számára az OS.) http://computer.howstuffworks.com/operating-system8.htm o felhasználói interfész [user interface] (az API-hoz hasonlóan az UI (user interface) vagy a GUI (graphical UI) is egy hozzáférési felületért felelős. Nevezetesen a felhasználónak ad egy könnyen kezelhető felületet, amelyen az operációs rendszer, a számítógép erőforrásai, és a felhasználó közötti interakció megvalósulhat. DOS-ban ez a prompt, Windows-ban ez az explorer (nem Internet Explorer!), Linux-ban ez a shell, vagy az X). - [TÉMA3] Programozási nyelvek: o Gépi kód: A gépi kód valójában nem nyelv, mivel az a gép számára közvetlenül értelmezhető adatsort jelenti. Ez a nyelv tulajdonképpen számokból áll, mely számok a memóriában tárolódnak, és amelyeket értelmezi és végrehajtja a processzor. A gépi kódú programozás esetén a programozó közvetlenül írja elő minden egyes utasítás végrehajtását, a gép összes regiszterének, memóriabitjének felhasználását, http://hu.wikipedia.org/wiki/programoz%c3%a1si_nyelv#g.c3.a9pi_k.c3.b3d o Assembly: A gép teljes architekturális ismerete rendkívül nehéz, ezért hozták létre az assemblyt, amely egy kicsit megkönnyíti a munkát. Ha egy assembly nyelv és az általa előállított gépi kód között egy-az-egy megfeleltetés van, akkor mondhatjuk, hogy az adott nyelv gépi kód szintű. ASM nyelven nehéz programot írni, mert azt teljesen a gép architektúrájához alakítva, gépi logika szerint kell elkészíteni. Cserébe viszont az assembly nyelven írt programok a leggyorsabbak. Az assembly nyelven írt programot gépi kódra az assembler (fordítóprogram) fordítja le, egy assembly sor formátuma: Szimbólum Mûveleti kód (direktíva Operandusok Megjegyzés pr. programcím, címke: kezdés move ax,cs ;ax<-cs szam equ 5 ;szam:=5 A regiszterek csoportosítása: Regiszter: 80x86 típusú mikroprocesszorok belső tároló helyei. (Számuk 80286 CPU-ban 15 db.). A CPU működését jelentős mértékben gyorsítja, ha a gyakran használt adatokat nem az operatív tárban, hanem magában a processzorban tároljuk, megspórolva ezzel a processzor és a memória közötti út lassú megtételének idejét. Léteznek az általános célú regiszterek, ezek: AX, BX, CX, és DX. Ezek 16 bit nagyságúak, és felbonthatóak 8 bites regiszterekre, mint pl. az AX AH-ra és AL-re. (Tehát ha AX tartalma FFEEh (hexadecimálisan!), akkor az AH tartalma FFh, és az AL tartalma EEh.) Ezekkel a 8 bites regiszterekkel is ugyanúgy elvégezhetőek műveletek, mint a 16 bitesekkel. Igaz, hogy ezek szabadon használható regiszterek, de mindegyiknek van egy általános feladata, ezek: - AX: akkumulátor (aritmetikai műveleteknél gyakran használt regiszter), - BX: bázisregiszter (a szegmentált memória-címzésnél a cím ofszetjét

tartalmazza), - CX: számlálóregiszter (az assembly nyelvben írt programok: ciklusutasítások számlálója), - DX: adatregiszter (műveletek végzése közben adatok tárolására használatos), léteznek szegmensregiszterek, amelyek a szegmentált memória-címzésnél a cím szegmensét tartalmazzák. Ezekből 4 db van: - CS: kódszegmens regiszter (CodeSegment) - DS: adatszegmens regiszter (DataSegment) -SS: veremszegmens regiszter (StackSegment) -ES: extraszegmens regiszter (ExtraSegment) léteznek Mutató-, és Indexregiszterek, amiket leggyakrabban más regiszterekkel együtt használnak.(adott memóriacímet leggyakrabban az, ES:[DI] és DS:[SI], regiszterpárokkal címzünk.): - IP: utasításszámláló regiszter (InstructionPointer) - SP: veremmutató regiszter (StackPointer) - BP: bázismutató regiszter (BasePointer) - SI: forrásindex regiszter (SourcePointer) - DI: célindex regiszter (DestinationPointer) Néhány kiemelt utasítás bemutatása példákkal: - MOV AX, 5 [értékadás] - MOV BX, AX [értékadás] - PUSH BX [push a verembe] - XOR BX, BX [BX kizáróvagyolása = nullázás] - POP BX [pop BX megint 5] - RET [visszatérés az operációs rendszerhez] http://www.gtbbp.hu/~szabol/tetelek/programming/b/gepikod.html o Minden egyes processzor-családnak saját assembly nyelve (vagy nyelvei) van. A processzorokat utasításkészletük nagysága alapján nagy csoportokra oszthatjuk: vannak CISC (Complex Instruction Set Computer = összetett utasításkészletű) és RISC (Reduced Instruction Set Computer = csökkentett utasításkészletű) processzorok. A CPU családokat szokták még architektúráknak is nevezni. Az Intel x86 architektúra legismertebb assembly nyelvei: Intel assembly nyelv, Turbo assembly (TASM, Borland), Netwide assembly (NASM, GNU). o Fordított nyelvek: C (a nyelvet Dennis Ritchie és Ken Thompson az 1970-es évek elején fejlesztette ki, a UNIX operációs rendszereken való használat céljából. Ma már gyakorlatilag minden operációs rendszerben megtalálható és a legnépszerűbb programozási nyelvek egyike. Rendszerprogramozáshoz és felhasználói program készítéséhez egyaránt jól használható. A C viszonylag minimalista programozási nyelv. Lényegesen alacsonyabb szintű, mint más programozási nyelvek, bár néha magas szintű nyelvnek hívják, de igazából csak az assembly alacsonyabb nála. A C-nek alapvetően két nagy előnye van az assemblyvel szemben. Az első, hogy a forráskód általában könnyebben olvasható és kevésbé nehéz annak írása, főleg a hosszabb programok esetében. A második, hogy az assembly kód kötött az adott számítógép architektúrájához (x86, RISC, stb.), míg a C programok könnyen

átvihetők (a forrás módosítása nélkül) más architektúrájú rendszerekre. Természetesen az adott típuson léteznie kell egy C-fordítónak és az esetlegesen használt függvények itt használható változatainak.) C++ (Az 1970-es évek vége felé a C nyelv népszerűsége ugrásszerűen emelkedni kezdett. Ugyanebben az időben Bjarne Stroustrup és társai a Bell Labs-nál elkezdtek dolgozni objektum orientált nyelvi elemek hozzáadásán a C nyelvhez. A nyelv, amit készítettek a C++ nevet kapta, ez ma a legelterjedtebb programozási nyelv a Microsoft Windows operációs rendszereken, míg a régi C a UNIX világban a mai napig is megőrizte népszerűségét.) C# (C sharp a C egyik legfontosabb jellemzője, hogy a programozó kezében van a memóriakezelés. A szabványos C nem ismer olyan definíciókat, hogy tömb vége vizsgálat, vagy automatikus memóriakezelés. Ezzel szemben, pl. a JAVA és a C# nyelvek, mindkettő C alapú, rendelkeznek automatikus memóriakezeléssel. Míg a "kézi" memóriakezelés több lehetőséget ad a programozónak a program "finomhangolására", ugyanúgy megnövekedik a hibák lehetősége is (bug), mint pl. a "túlcsordulás" (buffer overflow). Ezek a hibák felhasználhatók, számítógépes rendszerekbe való betörésekhez.) Clipper (főleg adatbázis-kezelésre orientálódott programozási nyelv; eltűnőben van) Java (A Java egy objektumorientált programozási nyelv. A nyelvet a Sun Microsystems fejlesztette ki a 90-es évek alatt. Kezdetben a neve Oak (tölgyfa) volt (James Gosling, a nyelv atyja nevezte így az irodája előtt növő tölgyfáról). A Java (Jáva) nevet a Jáva-kávéról kapta. Négy fontos szempontot tartottak szem előtt, amikor a Javát kifejlesztették: objektumorientáltság; függetlenség az operációs rendszertől, amelyen fut (többé-kevésbé sikerült); olyan kódokat és könyvtárakat tartalmazzon, amelyek elősegítik a hálózati programozást; távoli gépeken is képes legyen biztonságosan futni.) Pascal (A Pascal ma is az egyik legelterjedtebb, legkedveltebb programozási nyelv. Ennek talán egyik oka, hogy sok helyen még mindig ezen tanítják a programozást, hiszen a szintaxisa egyszerű, könnyen érthető, ennek ellenére hatékony eszközt ad használója kezébe. A nyelvet 1970-ben Niklaus Wirth professzor fejlesztette ki, aki emellett a Modula-2 és az Oberon atyja is. A Pascal maga az Algol programozási nyelven alapul, és a francia matematikus-filozófus Blaise Pascal tiszteletére nevezték el.) o Interpretált nyelvek: Az interpretált nyelveket nem gépi kódra fordítva, hanem forrásszövegben tárolják és terjesztik, és azok minden futtatás előtt vagy alatt alakulnak át a gép számára érthető (alacsony szintű) utasítások sorozatára. Az ilyen nyelvekre jellemző a gyors fejlesztési és tesztelési idő, a rugalmasabb szerkezet, valamint az alacsonyabb futási sebesség. Ilyenek: BASIC (A BASIC [Beginner's All-purpose Symbolic Instruction Code] programozási nyelvet 1964-ben készítette Kemény János és Thomas Kurtz a Dartmouth College-ben, oktatási céllal. Elterjedésében nagyban közrejátszottak az 1980-as években elterjedt számítógépek, melyeknél gyakran a számítógéppel egybeépítve adták a BASIC értelmezőt. Ezekben a különböző számítógépeken futó BASIC programok szinte mindig inkompatibilisek voltak egymással: az egyik géptípusra írt programot más számítógéptípusokon nem lehetett futtatni. Nagy lökést jelentett a nyelv elterjedésében a DOS operációs rendszer elterjedése, melynek újabb verzióiba beépítették a Qbasic nevű BASIC

változatot, melynek a 4.5-ös és a 7.0-ás verziója alkalmas *.exe és *.com kiterjesztésű futtatható program létrehozására is.). Ilyenek (de modernebbek) még a: Javascript Perl Python PHP - http://hu.wikipedia.org/wiki/vita:programoz%c3%a1si_nyelv