Rövid történeti áttekintés Informatikai rendszerek alapjai Horváth Árpád 2015. május 6.
Tartalomjegyzék
1. Neumann János
Neumann János (John von Neumann, 19031957)
• Született: 1903. december 28., Budapest. Apja egy bank ügyvédje • 1914-ig magánúton tanul, utána fasori gimnáziumba kerül. Tanárai: Rátz László, Kürschák József, Fekete Mihály • Wigner Jen®: Zseni csak egy volt. . . • 1921: érettségizik; matematikai publikáció Feketével Egy történet szerint Wigner Jen®t, Neumann osztálytársát kés®bb megkérdezték, hogy hogyan lehet, hogy annyi zseni került ki Magyarországról, akkor válaszolta, hogy Hogyhogy annyi zseni? Zseni közöttünk csak egy volt: Neumann János.. Wigner Jen®, a Nobel-díjas zikus tehát ilyen komolyra értékelte Neumann zsenialitását. Pedig tényleg szép számmal kerültek ki magyar gimnáziumokból Neumann kortársai közül Novel-díjasok is: Gábor Dénes, Szent-Györgi Albert, Békésy György, Hevesy György, mind kortársa volt.
• kutatás (Göttinga, Hilbert): matematikai logika; kvantummechanika • 1932 Mathematische Grundlagen der Quantenmechanik Apja vegyésznek szánta, úgyhogy tanulmányait a Berlini Egyetemen kezdte vegyészmérnökként, majd Zürichben folytatta, ott kapta meg a vegyész-diplomát 1926-ban. Zürichben Pólya György és Hermann Weyl matematikusok el®adásait látogatta. Utóbbi helyett el®adást is tartott, amikor egy ideig távol volt Zürichb®l. Pólya György szerint csak egyetlen hallgatójától félt: amikor egy el®adásán beszélt egy megoldatlan matematikai problémáról, a végén odament hozzá Neumann, és bemutatta a feladat teljes megoldását. Budapesten szerezte meg a matematikusi diplomát, majd kés®bb a doktori végzettséget (1926). Kit¶n® eredménnyel tette le vizsgáit, pedig az el®adásokat nem tudta látogatni. (Kérem, ez utóbbiban ne kövessék, mert hátha nem mindenkinek m¶ködik a dolog!)
Neumann János (családi élet)
2
• Kövesi Marietta
Házasság 19321937 lányuk Marina sz. 1935 • 1939: házassága Dán Klárával, aki programozó lesz • A képen Dán Klárával, és Inverz nev¶ kutyájával
Neumann János: játékelmélet
• NeumannMorgenstern: Theory of Games and Economic Behavior, 1943 • játékelmélet; axiomatikus tárgyalás, kombinatorikával
árucsere több résztvev® között monopólium, ogliopólium szabad kereskedelem • kis példányszám; 1946-ban a New York Times címoldalán
3
Neumann János: EDVAC, IAS
• A II. világhábórú alatt katonai tanácsadó • A lökéshullámok terjedését vizsgálja, ami bonyolult (dierenciál)egyenletek megoldását jelenti. Nagy számolásigény. • EDVAC, IAS sztori (lásd kés®bb) Amikor Goldstine-t®l megtudta, hogy milyen nagy sebesség¶ számítógép épül (ez még az ENIAC), akkor gyelme a számítógépépítés felé fordult. Ilyen gépekre volt szüksége a lökéshullám-terjedés modellezéséhez.
Neumann János: Utolsó évek
• meteorológia, bonyolult matematika, mely csak számítógéppel oldható meg • rákos lesz, meghal 1957. február 8-án A számítógépeket többek között a meteorológiai el®rejelzések készítésére használta fel Neumann. Addig is ismertek voltak a leveg® tulajdonságának változásait leíró zikai egyenletek, de képtelenség volt számítógép nélkül akár csak egy óra id®tartamra is kell® pontossággal kiszámítani az egyenletek megoldását. 4
Neumann János
jobbra Ulam lengyel származású matematikus, Feynman amerikai zikus és Neumann. Jellemz® Neumannra, hogy általában mindenhol öltönyben jelent meg. Láttam régebben olyan képet, ahol lovas kiránduláson is öltönyben látható. Sajnos az interneten nem találtam meg. Feynmanra pedig 5
Balról
pont az ellenkez®je jellemz®, lebilincsel® el®adásain általában nem szokott nyakkend®t sem hordani. Kivétel talán a Nobel-díj átadásakor tartott el®adása volt.
Neumann János
Tartalomjegyzék
2. Mechanikus számológépek, adatfeldolgozó berendezések XVII.XIX. század 2.1. Korai gépek
Korai gépek • Schickard 1623,
els® mechanikus számológép,
Keplernek, t¶zvész
• Pascal, a mechanika tökéletesítése, +, − • Leibniz, Pascalét tökéletesíti, négy alapm¶velet; kettes számrendszer ötlete, csak túl sok számjegy b®vebben comparch oldalon: www.intermedia.c3.hu/szmz/comparch/ A csillagászatban egy égitest (pl. üstökös) pályájának, visszatérésének kiszámítása rengeteg matematikai számolást igényel, ezért vált volna nagy segítsgére Keplernek egy számoló gép. 6
A túl sok számjegy, és vele a túl sok fogaskerék m¶ködése rendkívül nom mechanikai megmunkálást igényel. Babbage gépeivel is az volt a gond, hogy kora nommechanikai megmunkálása nem volt elegend® a gépeinek megvalósításához. 2.2. Babbage és gépei
Charles Babbage (17911871)
Charles Babbage, National Portrait Gallery, London Forrás: www.mek.iif.hu/kiallit/tudtor/tudos1/babbage/babbagee.ment Babbage matematikus, mechanikus és feltaláló. Arra a következtetésre jutott, hogy a függvénytáblák számítását automatizálni kell, a nyomtatással együtt. 1816-tól a Royal Society tagja, 1828 és 1839 között Cambridge-ben a matematika professzora (ugyanazt a professzori állást töltötte be, amit korábban Newton). Hat könyvet írt, és közel 90 cikket publikált.
Babbage: Dierential Engine No. I., 18221834
7
A táblázatok kiszámítására tervezett Dierential Engine-t nem sikerült teljes egészében megépítenie. A londoni Science Museumban 1991-ben Babbage részletes rajzai alapján megépítették az eredeti dierenciagép egyszer¶sített változatát korszer¶ anyagokból. A gép négyezer alkatrészb®l áll, méretei is tekintélyesek: 3,4 m × 0,5 m × 2,1 m. A berendezés tökéletesen m¶ködött: hibátlanul kiszámította a 7. hatványok táblázatának els® száz értékét. Egy általánosabb gépet is tervezett az Analitical Engine-t mellyel szemben a követelményei:
Babbage követelményei egy számoló géppel (Analitical Engine) szemben 1. ne kelljen mindig beállítani a számokat, meg lehessen adni egyszerre az összes számot és m¶veletet (ez lyukkártya segítségével oldható meg). 2. legyen bemeneti egység (ez a lyukkártya) 3. legyen utasítás (a m¶velet a lyukkártyán) 4. legyen küls® programvezérlés (a lyukkártyákon tárolt utasítássorozat, a program) 5. legyen olyan egység, amely a kiindulási és a keletkezett számokat tárolja (memória) 6. legyen aritmetikai egység, amely számológépen belül a m¶veleteket végzi el 7. legyen kimeneti egység (a gép nyomtassa ki az eredményt).
8
1847-ig ezen a gépen dolgozott, bár az építése már kezdetben megakadt: a kor nommechanikai lehet®ségeivel ezt a gépet nem lehetett elkészíteni. Augusta Ada King sz. Byron, Lovelace grófn® (1815. december 10. 1852. november 27.) f®ként arról ismert, hogy leírást készített a Charles Babbage által tervezett Analitycal Engine-hez. Ada volt Lord Byron költ® és felesége, Annabella Milbanke egyetlen gyermeke, és egyben a költ® egyetlen törvényes gyermeke. Egy Babbage-nél tett látogatás alkalmával Ada megtekintette az analitikus gépet, melyr®l Babbage a következ®képpen emlékszik meg: Míg az estély többi résztvev®je ugyanazzal az arckifejezéssel és érzéssel tekintett erre a szép készülékre, mint amit állítólag egyes vademberek tanúsítottak, amikor el®ször láttak távcsövet vagy hallottak puskalövést, Miss Byron akármilyen atal is volt megértette m¶ködését, és átlátta a találmány szépségét. Babbage kés®bb Giovanni Plana olasz csillagász barátja meghívására Torinóba látogatott, ahol egy válogatott társaság el®tt e tagja volt Luigi F. Menabrea tábornok is könnyed stílusú el®adássorozatot tartott. Menabrea-t megragadta a Babbage munkássága, és az el®adásokról rövid beszámolókat írt, amelyet 1842-ben ki is adatott. Menabrea egyébként kés®bb Olaszország miniszterelnöke is lett. 1842-1843-ban Ada kilenc hónap alatt lefordította Luigi Menabrea írását Babbage Analytical Engine-jér®l. Babbage e hír hallatán arra buzdította az ekkor már 27 éves asszonyt, hogy lássa el jegyzetekkel a Menabrea dolgozatot. Az eredmény nem maradt el: a fordításban jegyzetek kétszer olyan hosszúak lettek, mint a m¶ maga. Az írás kiváló lett, és arról tanúskodik, hogy Ada az anyjától örökölt matematikai tehetségen túl apjától irodalmi vénát is örökölt. A fordítás külön érdekessége, hogy tartalmaz magyarázatként számos programot is, amelyeket kés®bb átvizsgálva tökéletesen m¶köd®nek találtak a rekonstruált analítikus gépen.
Charles Babbage logaritmustáblái magyarul, 1834
9
Charles Babbage ismer®se volt Nagy Károly magyar tudós. Nagy Károly hagyatékában talált vázlatrajzok mutatják, hogy ®t is foglalkoztatta a számológépek építésének gondolata. Emellett Babbage kész logaritmustáblázatai magyar el®szóval is megjelentek Nagy Károlynak köszönhet®en. Tudnivaló, hogy a m¶veletek könnyebben számolhatóak, ha a számok logaritmusaival számolunk, mert ilyenkor a bonyolultabb m¶veletek egyszer¶bbé alakulnak: a szorzás összeadássá, a hatványozás szorzássá, a gyökvonás osztássá alakul. A logarléc és az elektronikus számológépek el®tt nagyon hasznos segédeszköz volt a logaritmustáblázat. 3. XX. század:
az elektromechanikus berendezésekt®l a személyi
számítógépig 3.1. Colossus
Colossus (uk), Tommy Flower, 1943, decrypter
10
1943. decemberében Tommy Flower a Bletchley Parkban (Cambridge közelében) elkészítette a Colossus els® verzióját. A gép a világ els® elektroncsöves számítógépe volt, az els® programozható digitális elektronikus számítógép. Kódvisszafejt® gép volt. 2400 elektroncs®vel. Sebessége, 5000 karakter per másodperc volt. 3.2. Zuse és gépei
Konrad Zuse (de), 1935-t®l
11
A Z3-as, ami 1941-ben készült el, volt a világon az els® programvezérelt számítógép, mely lyukszalagon rögzített adatokkal és programmal, kettes számrendszerben, lebeg®pontos számábrázolással dolgozott. Bevitelre klaviatúra szolgált, megjelenít®eszköze egy lámpákból álló kijelz® volt. Az ezzel kapcsolatos jegyzeteiben Konrad Zuse már leírja a tárolt program elvét, amit a világ Neumann-elvként ismer. Haláláig hasztalanul próbálkozott Zuse bizonyítani, hogy a tárolt program elvét évekkel korábban leírta, mint Neumann János, ® már kitalálta és alkalmazta is. 3.3. USA, jól dokumentált sikertörténet
USA, jól dokumentált sikertörténet • Mark-I, Mark-II relés • ENIAC (Electronic Numerical Integrator and Computer: elektronikus numerikus integrátor és számítógép); Goldstine, Mauchly; ballisztikus táblák; huzalozással programozták •
Neumann János: First Draft of a Report on the EDVAC
101 oldalas, 1945. június 30.
• A First Draft közzétélelével közkincs a tárolt program elve • EDVAC (Eckert, Mauchly) és IAS (Neumann) szétvált szabadalmi viták miatt • UNIVAC: az els® kereskedelmi forgalomban is kapható, sorozatban gyártott univerzális számítógép (UNIVersal Automatic Calculator) (Eckert, Mauchly)
12
ENIAC
Az ENIAC programozása
IAS
Az IAS, az Institute for Advanced Study Electronic Computer Project által elkészített számítógép, több gép ®se.
IAS és utódai • IAS (Institute for
Advanced Study,
Princeton, ahol építették) 13
• leszármazottai
AVIDAC, Argonne National Laboratory, 1949-1951 MANIAC, Los Alamos Scientic Laboratory, 1948-1952 IBM 701, IBM Corporation JOHNNIAC és még sok
Goldstine: A számítógép Pascaltól Neumannig, M¶szaki Kiadó, 2003 Aspray: Neumann János és a modern számítástechnika kezdetei, Vincze Kiadó, 2004
Az IAS és készít®i
Bigelow, Goldstine, Oppenheimer és Neumann az IAS el®tt
• Herman Goldstine, a projektvezet® • Neumann János (John von Neumann) , logikai tervez®, az alapelvek és numerikus módszerek kidolgozója • Julian Bigelow, a f®mérnök 3.4. Neumann-elvek
Neumann-elvek • A számítógép legyen
univerzális:
programtól függ®en különböz® feladatokat képes megoldani.
• A gép m¶ködésének alapja a bináris (kettes) számrendszer legyen. Két állapot (0, 1), egyszer¶bb áramköri megvalósítás. (11010110 egy nyolc bites bináris szám) 14
• A tárolt program elve: A programot az adatokhoz hasonlóan a bels® tárolón helyezzük el (szintén bitsorozatként). • Soros m¶ködés: az utasításokat egymás után hajtja végre, egyszerre egyet. (Ma pl. a többmagos processzoroknál a két magban két utasítás párhuzamosan is végrehajtódhat.) • Az utasításokat emberi beavatkozás nélkül értelmezze és hajtsa végre.
Az IAS felépítése
Harvard- vs. Neumann-architektúra
15
4. Számítógépgenerációk
Számítógépgenerációk
Az elektronikus számítógépeket szoktuk generációkba sorolni az elektronikus aktív alkatrészük szerint (ami a m¶veleteket végzi).
Els® generáció elektroncsöves gépek 19461954 (felt. 1904) Második generáció tranzisztoros gépek 19541965 (felt. 1947) Harmadik generáció IC-s gépek 19651971 (felt. 1958), Negyedik generáció nagy integráltságú (LSI, Large Scale Integration) áramkörökb®l (70-es évek közepét®l máig)
Ötödik generáció a jöv®, nem aktív alkatrész alapján Számítógépgenerációk megkülönböztet® jellemz®i •
Elektronikus aktív elemek
• Felépítés: az egyes egységek kapcsolódási módja • M¶veleti sebesség: szorzás, összeadás sebessége • Alkalmazási kör • Programozás módja • Méret • Teljesítményfelvétel • Megbízhatóság • Tároló zikai megvalósítása (operatív tárolóé, azaz memóriáé) • Egyebek 16
1. generáció • Elektronikus aktív elem: elektroncs® • Felépítés: processzorcentrikus • M¶veleti sebesség: 103 − 104 m¶velet/s • Alkalmazási kör: tudományos számítások • Programozás módja: gépi kódban • Méret: teremnyi • Teljesítményfelvétel: nagy a elektroncsövek katódjának f¶tése • Megbízhatóság: gyakran kellett elektroncsövet cserélni • Tároló: az operatív tár késleltet® m¶vonal vagy tárolócs® • Magas ár, kis példányszám miatt
A processzorcentrikus felépítés Processzor Központi vezérl® egység
Beviteli egység
Aritmetikai logikai egység
Kiviteli egység
Operatív tároló A folytonos vonalak az adatmozgás lehetséges irányait mutatják, a szaggatott vonalasak a vezérl®jelekét.
2. generáció • Elektronikus aktív elem: tranzisztor • Felépítés: tárolócentrikus, csatorna rendszer¶ perifériaszervezés • M¶veleti sebesség: 104 − 105 m¶velet/s • Alkalmazási kör: tudományos számítások és üzleti alkalmazások • Programozás módja: magas szint¶ nyelvek megjelenése (pl. FORTRAN) • Méret és teljesítményfelvétel jelent®sen csökken 17
• Megbízhatóság: jelent®sen n®, a tranzisztorok élettartama jelent®sen nagyobb az elektroncsövekénél • Tároló: ferritgy¶r¶s operatív tár • Operációs rendszerek alkalmazása (másik el®adásban b®vebben)
Ferrittár (1947 kb. 1980)
A ferrittár olyan mágneses anyagokon, az úgynevezett ferriteken alapul, amelyek mágnesessége kétféle irányú lehet, ami megfelel a 0-ás és 1-es biteknek. A mágnesesség iránya kiolvasható. A mágnesesség irányának megváltoztatásához adott nagyságú áramer®sség szükséges. A mátrixsszer¶en (vízszintes és függ®leges vezetékekre felf¶zött) elrendezett ferritgy¶r¶k esetén úgy tudunk csak egy ferritgy¶r¶ mágnesezettségi irányán változtatni, ha mindkét irányú vezetéken a szükséges áram felét küldjük át. Ekkor a két vezetéken lev® többi ferritgy¶r¶ mágneses iránya megmarad.
A tárolócentrikus felépítés
18
Processzor Központi vezérl® egység
Aritmetikai logikai egység Beviteli egység
Operatív tároló
Kiviteli egység
3. generáció • Elektronikus aktív elem: integrált áramkör (IC) • Felépítés: moduláris • M¶veleti sebesség: 106 − 107 m¶velet/s • Alkalmazási kör: tovább b®vül • Programozás módja: magas szint¶ nyelveken írják az operációs rendszereket is (pl. C) • Méret és teljesítmény-felvétel tovább csökken • Megbízhatóság: jó • Tároló: félvezet®s operatív tár • Multiprogramozott, id®osztásos m¶ködés (másik el®adásban b®vebben)
A moduláris felépítés esetén a számítógép egyes moduljai közös vezetékkel, az átviteli sínnel (angolul bus) vannak összekötve. Ami lehet®vé teszi például, hogy ha kevés a gép memóriája (azaz az operatív tár tárolóképessége), akkor újabb memóriamodult építsünk be, növelve a memóriát. 19
3. generáció Számítógép-család • Tudományos gépek mellett üzletiek is megjelentek • IBM egy kompatibilis sorozata mindkett®re (360-as)
felépítés és utasításkészlet azonos (számítógép-család) memória, processzor sebesség valamint a be- és kiviteli eszközök száma különböz® 4. generáció • Elektronikus aktív elem: nagy és igen nagy integráltságú (LSI, VLSI, (Very) Large Scale Integration) áramkör • Felépítés: mikroprocesszoros szervezés ⇒ személyi számítógépek • Alkalmazási kör: szövegszerkesztésre, táblázatkezelésre, grakára, adatbáziskezelésre is (számítástechnika → informatika) • Programozás módja: szinte kizárólag magas szint¶ nyelveken történik • Tároló: félvezet®s, integrált áramkörökb®l készült memória • Szoftver szerepének növekedése • Számítógéphálózatok kialakulása, általánossá válása Korábban a számítógépeket kimondottan rengeteg számítás elvégzésére hozták létre. A számítógépek fejl®dése során egyre több olyan területeken használjuk, amelyek lényege nem konkrét számítások elvégzése, hanem valamilyen információk tárolása, feldolgozása, nyomtatható formára hozása. Emiatt a számítástechnika név helyett sokszor az informatika nevet használják.
Moore-törvény
20
Moore-törvény: a központi vezérl® egységben (CPU) található tranzisztorok száma nagyjából két évenként megduplázódik. Az állandó id®nkénti megduplázódást az exponenciális függvény írja le, amely egyenest ad, ha a függ®leges tengelyen a számérték (itt tranzisztor-darabszám) logaritmusát ábrázoljuk, azaz a 10000, 100000, 1000000 stb, egyenl® távolságonként követik egymást. Miért van ez így? Minden f (t) = ax (a > 0) exponenciális függvényt felírhatunk 10 hatványaként y = f (t) = 10kt ahol k a növekedés mértékét jellemz® állandó, minél nagyobb, annál kisebb id®közönként duplázódik a függvény értéke. Vegyük az egyenlet mindkét oldalának logaritmusát:
log10 y = kt Ha a függ®leges tengelyen az y helyett annak Y = log y logaritmusát ábrázolom, akkor az Y = kx lineáris függvényt kapom. Az ábrán látható, hogy 1990-ben kicsit több mint 1 millió tranzisztor volt egy 486-os CPU-ban, addig 2000-ben egy Pentium 4-es processzorban több tízmillió. Nagyjából húszszorosára n®tt a tranzisztorok darabszáma egy CPU-ban. Mivel a függ®leges skála logaritmikus, a vízszintes id®skála lineáris, ezért a szaggatottal húzott egyenes egy exponenciális függvénynek felel meg. Egy f (x) exponenciális függvény jellemezhet® például a duplázódás T2 idejével: exponenciális függvény esetén bármelyik t id®pillanatban vizsgálom a függvényt, ha T2 id® elmúlik, akkor mindig duplájára fog változni a függvényérték: f (t + T2 ) = 2f (t) Az, hogy 10 évente nagyjából 20-szorosára változik a tranzisztorok száma, azt jelenti, hogy kicsit több mint két év kell a duplázódáshoz, T2 ≈ 2 év, ami a Moore-törvény. Érdekességképpen két másik jelenség, ahol az exponenciális id®függés van jelen, csak csökken® el®jellel: a kondenzátoron es® feszültség, amikor kisül egy ellenálláson keresztül, illetve a radioaktiv elemek bomlásakor a radioaktiv elemek száma. Az utóbbinál ismer®s fogalom lehet a felezési id®, ami nagyon hasonló az el®bb említett T2 duplázódási id®vel.