Architektúrák és operációs rendszerek: Balogh Ádám Lőrentey Károly Eötvös Loránd Tudományegyetem Informatikai Kar Algoritmusok és Alkalmazásaik Tanszék
Tartalomjegyzék 1. 2. 3. 4. 5. 6. 7. 8. Bevezetés A számológépek története A számítógépek kezdetei Elektroncsöves gépek (1. generáció) Tranzisztoros gépek (2. generáció) Integrált áramkörök (3. generáció) A mikroprocesszor (4. generáció) A jövő számítógépei 2. oldal
A vákumcsövek Nicolas Tesla, 1887 Izzólámpához hasonló elektronikai készülékek 1904: a dióda Az izzó katódról a vákumban elektronok szabadulnak fel Egy pozitív töltésű fémlap a vákumon keresztül az elektronokat magához vonzza Visszirányú áramfolyás nem lehetséges Az eszköz tehát csak egy irányba vezet áramot Anód (+) ee e- e- Katód (-) 3. oldal
A vákumcsövek 1906: a trióda A katód és az anód közé egy harmadik vezetőt (rácsot) helyezünk A rácson az elektronok akadály nélkül áthaladnak A rácsra kapcsolt kis feszültséggel vezérelhetjük a katód és az anód között folyó áram nagyságát Az eszközzel feszültségerősítőt építhetünk Negatív feszültséggel akár ki is kapcsolhatjuk az áramfolyást Reléhez hasonló működés! Anód (+) ee e- e- Katód (-) 4. oldal
A vákumcsövek Pozitív rácsfeszültség esetén az elektronok szabadon folyhatnak Negatív rácsfeszültség esetén az elektronok nem jutnak át a rácson, áram nem folyik Anód (+) e- Anód (+) e- e - e- e- Katód (-) e- e- e- Katód (-) 5. oldal
A vákumcsövek Millió egyéb ötlet, ezer alkalmazás Rádiók, televíziók, számítógépek Radar, műholdak Katódsugárcsöves (CRT) megjelenítők Mikrohullámú sütők Röntgenkészülékek Napjainkban újra divatos kutatási téma Integrált áramkörökbe épített miniatűr vákumcsövek Hideg katód, az elektronok nanoléptékű tűk hegyein lépnek ki Az elvi működés pontosan ugyanaz A tűket fullerén csövek segítségével állítanák elő Várható alkalmazások: mikrohullámú eszközök (vezeték nélküli kommunikáció), lapos kijelzők 6. oldal
A vákumcsövek A vákuumcsövek az 1940-es évek közepére váltak elég megbízhatókká ahhoz, hogy számítógépekben a relék helyett használhatóak legyenek Előnyök Tisztán elektronikus elvű működés Nincs mozgó alkatrész Nagyságrendekkel gyorsabb kapcsolás Hátrányok Kényes, törékeny, megbízhatatlan szerkezet A katód felfűtése, lehűlése során gyakoriak a meghibásodások A vákum hibái előbb-utóbb a katód elhasználódásához vezetnek Jelentős hőkibocsátás, energiapazarló működés 7. oldal
Vissza a Bletchley parkba Nem csak az Enigma okozott gondokat! A német elit hadvezetés kommunikációs céljaira távírógépeket használtak Speciális elektromechanikus kódoló/dekódoló gépekkel kiegészítve (Lorenz SZ 40, ill. SZ 42) A gép pszeudovéletlen számsorozattal kombinálja (XOR) a távíró-üzenetet A fogadóoldalon a véletlen számsorozat ismeretében előállítható az eredeti üzenet 1.6 x 1019 számú különböző kombináció 1000 próba/mp esetén a próbálgatásos megfejtés 500 millió évig tartana 8. oldal
A Lorenz SZ42 távíró-kódoló 9. oldal
Bletchley park: A Colossus 1942 január: a Lorenz gép működésének megfejtése Pusztán az üzenetek megfigyelése alapján A háború végéig a kódfejtők nem is látták a gépet A kódtörést az véletlenszám-generáló algoritmus és az operátorok hibái tették lehetővé 1944: Colossus Mark I (január), Mark II (június) Tommy Flowers Első elektronikus digitális számítógépek 1500 vákumcső Korlátozott kapcsolótáblás programozhatóság Nem Turing-teljes gépek! Lyukszalagos adatfeldolgozás 5000 karakter (12 méter szalag) másodpercenként 10. oldal
Bletchley park: A Colossus 11. oldal
Bletchley park: A Colossus A háború végéig tíz gép készült el A vákumcsövek megbízhatatlansága miatt a háború végéig folyamatosan bekapcsolva tartották őket A gépek többségét a háború után elpusztították Churchill: pieces no bigger than a man's hand Egy-két gép a hatvanas évekig üzemben maradt (kiképzés) A számítógépek fejlődésére gyakorolt közvetlen hatása minimális 1976-ig a Colossus léte is szigorú titok maradt A részletes dokumentáció csak 2000 óta hozzáférhető A projekt résztvevői a tapasztalataikat később máshol kamatoztathatták 12. oldal
USA, 1946-1955: ENIAC Electronic Numerical Integrator and Computer Első teljesen elektronikus Turing-teljes számítógép Tervezők: J.P. Eckert, J.W. Mauchly (University of Pennsylvania) Második világháborús célokra Ballistic Research Laboratory Cél: tüzérségi pályaív-táblázatok számítása 1943: projekt kezdete; átadás 1946 februárban Első feladatai: hidrogénbombával kapcsolatos számítások Folyamatos üzemben 1955 októberig 13. oldal
1946-1955: ENIAC 14. oldal
1946-1955: ENIAC Tekintélyes fizikai paraméterek 17468 vákumcső, 7200 kristálydióda, 1500 relé, 70000 ellenállás, 10000 kondenzátor, ötmillió kézi forrasztású kapcsolat 30 tonna, 167 m2, 160 kw Másodpercenként néhány száz művelet Mai ekvivalens: 0.5mm2 méretű szilíciumdarabka Programozás huzalozótáblával és kapcsolókkal 20 szavas, 10 decimális jegyű memória Kimenet/bemenet lyukkártyákkal Erősen párhuzamos rendszerű Célfeladat: táblázatszámítás Nehézkesen programozható 15. oldal
1946-1955: ENIAC Kezdetben naponta több vákumcső tönkrement Főleg bemelegedés közben A gépet a Colossusokhoz hasonlóan egészen 1955-ig sosem kapcsolták ki Eredmény: Kétnaponta egy hiba, elfogadható Hetente 100 órányi munka Építése közben már nyilvánvaló volt, hogy a tárolt programú gépeké a jövő Egyedi gép, hasonlót többet nem gyártottak Az átadásakor a háborúnak vége A projekt nyilvánosságra kerül, óriási sajtóvisszhanggal Nyári iskola érdeklődő tudósoknak A számítógépek nem hadititkok többé 16. oldal
1951-1962: EDVAC Electronic Discrete Variable Computer Az ENIAC tapasztalataiból kiindulva Az ENIAC még el sem készült, mikor az EDVAC tervezéséhez hozzáláttak Eckert & Mauchly tervei, Neumann János konzultáns Tárolt programú számítógépek elve 1944: első tervek; átadás 1949 augusztusában 1951-ig különböző problémák miatt nem állt üzembe 1951-től 1962-ig működésben állt Rendkívül megbízható: 1961-ben 145 óra hasznos munkát végzett hetente 17. oldal
1951-1962: EDVAC 18. oldal
1951-1962: EDVAC Tárolt programú digitális számítógép Majdnem az első ilyen gép Neumann János leírásának hatására épült brit EDSAC 1949-ben már működik (Cambridge, Maurice Wilkes) Négycímű utasítások Két operandus-cím, egy eredménycím, plusz a következő végrehajtandó utasítás címe 44 bites szóhosszúság Hangterjedés sebességének viszonylagos lassúságát kihasználó higanytartályos memóriatankok 128 db, egyenként 8 szót tároló hosszú tank, 6 db egyszavas rövid tank, plusz kiegészítő mágnesdob Mágnesszalagos kimenet/bemenet 19. oldal
Neumann János 1903-1957, magyar származású matematikus és fizikus Igazi csodagyerek, hatévesen már nyolcjegyű számokat oszt fejben 23 évesen doktorátust szerez az ELTE-n, eközben kémiát is tanul Svájcban, és oktat Berlinben 1930-ban meghívják Princetoni Egyetemre 1933: Az Institute of Advanced Study alapító tagja 1936-38-ig Alan Turing itt írja disszertációját (Church vezetésével) 1937: USA állampolgárság 20. oldal
Neumann János eredményei Jelentősek függvényanalízisbeli és halmazelméleti felfedezései A játékelmélet atyja A Manhattan projekt munkatársa A kvantummechanika elméleti megalapozója A Neumann-architektúra népszerűsítője Önreprodukáló sejtautomaták kitalálója A merge sort feltalálója stb., stb., stb. 21. oldal
A Neumann-architektúra Neumann-architektúra A tárolt programú számítógép elve A programkódot és a feldolgozás alatt álló adatokat ugyanaz az eszköz tárolja A kód és az adat csak értelmezésében tér el, fizikai megvalósításában ugyanaz Neumann népszerűsíti az ötletet 1945 június 30: First Draft of a Report on the EDVAC Nem Neumann találmánya! Eckert és Mauchly az ENIAC tervezése közben már eljutottak hozzá Emlékeztető: Zuse már 1937-ben szabadalmat nyújtott be az ötletre Neumann ismerte fel igazán az ötlet jelentőségét Valamennyi mai számítógép Neumann-elven működik 22. oldal
1951: Az UNIVAC Az első kereskedelmi forgalomban lévő számítógép Ismét J. Prespert Eckert és John Mauchly Remington Rand cég (ma Unisys) Az UNIVAC szó évekig a számítógép szinonimája volt 1951: az első UNIVAC-ot átadját az USA népszámláló hivatalának 1952: egy UNIVAC sikeresen megjósolja az elnökválasztás kimenetelét Eisenhower nagy meglepetésre győz, látványos demonstráció Összesen 46 darabot gyártottak, ára: 12500001500000$ Az egyetemek számára ez még túl drága volt Egyes példányok 1970-ig használatban voltak 23. oldal
1951: Az UNIVAC 24. oldal
1951: Az UNIVAC 5200 vákumcső, 13 tonna, 125 kw, 35 m2 1906 művelet másodpercenként (2.25 MHz) Összeadás 525 μsec, szorzás 2150 μsec 1000 db 12 karakteres memóriacella Decimális számjegyek vagy betűk 100 memóriatankok, egyenként 10 szóval Mágnesszalagos kimenet/bemenet Az IBM lyukkártyás gépeinek versenytársa Üzleti/ügyviteli célokra készült, nem számolásra Kezdetben nem is volt lyukkártya-olvasója 25. oldal
1952: IBM 701 Az IBM első kereskedelmi forgalomban lévő tudományos célú számítógépe 2048 db 36 bites szó (72 db 1024 bites williams-cső) 19 db készült belőle Williams-csövek Katódsugárcsöves kijelző alapú adattároló eszköz Elektrosztatikus adattárolás A képernyő foszforrétege egy kis ideig megőrzi a ráadott töltést, ez később kiolvasható marad RAM memória, nem ciklikus rendszerű A mai DRAM-okhoz hasonlóan folyamatos frissítést igényel Megbízhatatlan, kényes készülék 26. oldal
Williams-csövek Frederic Williams 27. oldal
1954: IBM 650 A világ első tömeggyártású számítógépe 1954-1962-ig több mint 2000-et gyártottak belőle Decimális, ügyviteli célú számítógép Forgódobos memória, 2000 tízjegyű szó 900 kg számítógép, 1350 kg tápegység, 500 000 $ Egyetemekre is eljutott Jókora akadémiai kedvezmény Számos sikeres kutató rajta tanult programozni Donald E. Knuth 1968-ban a Case Institute of Technology IBM 650-es számítógépének ajánlja híres A számítógép-programozás művészete c. könyvsorozatát, az együtt töltött szép esték emlékére 28. oldal
1954: IBM 650 29. oldal
A forgódobos memória A mágneslemezek elődje Operatív memóriának használták, nem háttértárnak! Ferromágneses bevonatú forgó henger Rögzített pozíciójú író-olvasó fejek sora A forgódobra történő optimalizálás az 1950-60-as évek jellegzetes szórakozása volt 30. oldal
Az első programozási nyelvek 1954-57: FORTRAN Az első magas szintű programozási nyelv IBM, John W. Backus Tudományos számítási feladatokra Beépített komplex típus! Már az első fordítóprogram is optimalizált kódot állított elő Hatalmas mennyiségű FORTRAN programkód készült Óriási méretű numerikus programcsomagok A mai napig széles körben használják 31. oldal
Az első programozási nyelvek 1958: LISP John McCarthy, MIT Első implementáció: 1960, IBM 704 Mesterséges intelligencia kutatások, szimbólum-manipuláció Az if-then-else konstrukció első megjelenése Funkcionális, deklaratív programozási stílus Automatikus szemétgyűjtés Teljesen zárójelezett szintaxis A szintaxis egybeesik a nyelv alapvető adatszerkezetével A programkód adatként kezelhető, manipulálható Gazdag nyelvi kiterjesztési lehetőség (makrók) Sok tekintetben még mindig előtte jár a mai modern nyelveknek 32. oldal
Az első programozási nyelvek 1959: COBOL Bizottság tervezte a Pentagon megbízásából Common Business Oriented Language Ügyviteli adatfeldolgozás céljaihoz illeszkedő Kiváló adatleíró és fájlkezelő képességek Sok bevett programozási eszköz hiányzik Lokális és dinamikus változók, rekurzió, struktúrált programozás Angol nyelvű szöveghez hasonló, bőbeszédű szintaxis A cél: a programokat bárki képes legyen megérteni C := (A + B) / 2: ADD A B GIVING C. DIVIDE 2 INTO C. Bámulatosan sikeres nyelv 1990-es évek vége, Gartner Group-felmérés: A valaha írt összes programkód 80%-a COBOL-ban íródott Y2K-probléma 33. oldal
Az első programozási nyelvek 1958: ALGOL Algorithmic Language Évtizedekig az algoritmusok közzétételének de facto szabvány nyelve volt Pascal-szerű szintaxis (illetve persze fordítva) A begin/end blokkok megjelenése Niklaus Wirth eredetileg ALGOL dialektust tervezett Gazdag vezérlési szerkezet-család Az első változatokból hiányzottak a szabványos I/O műveletek Nem ügyviteli célú nyelv! Napjainkra már csak nyomokban maradt fenn 34. oldal