Tietojenkäsittelytieteen esittely Tietojenkäsittelytieteen historiaa Teemu Kerola. Tietokone. Kutomakone Joseph-Marie Jacquard, Ranska, 1801

Samankaltaiset tiedostot
Tietojenkäsittelytieteen esittely Tietojenkäsittelytieteen historiaa Teemu Kerola

Tietojenkäsittelytieteen esittely Tietojenkäsittelytieteen historiaa Teemu Kerola. Koneet Teoria Ohjelmistot Suomessa

Tietojenkäsittelytieteen esittely Tietojenkäsittelytieteen historiaa Teemu Kerola. Tietokone. Kutomakone. Laskennan perusidea

Tietojenkäsittelytieteen esittely Tietojenkäsittelytieteen historiaa Teemu Kerola. Tietokone. Kutomakone. Kutomakone

Tietojenkäsittelytieteen esittely Tietojenkäsittelytieteen historiaa Teemu Kerola

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Käyttöjärjestelmien historia. Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Kertausluento luennoista 1-3 1

Tietojenkäsittelyn historiaa

Teemu Kerola Orientointi Syksy 2018

Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi

Tietokoneen toiminta, Kevät Copyright Teemu Kerola Järjestelmän eri tasot Laitteiston nopeus

Teemun juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä?

Ongelma(t): Mihin perustuu tietokoneiden suorituskyky ja sen jatkuva kasvu? Mitkä tekijät rajoittavat suorituskyvyn parantamista ja mitkä niistä ovat

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

815338A Ohjelmointikielten periaatteet

Johdatus ohjelmointiin

Tietokoneen toiminta (Computer Organization I)

ELEC-C7110 Informaatioteknologian perusteet

812341A Olio-ohjelmointi, I Johdanto

Ongelma(t): Mihin perustuu tietokoneiden suorituskyky ja sen jatkuva kasvu? Mitkä tekijät rajoittavat suorituskyvyn parantamista ja mitkä niistä ovat

Tietokoneen toiminta (Computer Organization I)

Opettajatuutorointi-kurssin syksyn 2006 kyselyjen tulokset

Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer)

Sisällys. Internetin varhaishistoria Arpanetin synnystä Internetiin. Johdanto. Arpanetin synty. Arpanetin syntyyn vaikuttaneita tekijöitä

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

CUDA. Moniydinohjelmointi Mikko Honkonen

Tarvitseeko informaatioteknologia matematiikkaa?

Tieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

arvostelija UNIVAC Petri Kärki Helsinki 13. toukokuuta 2005 Seminaarityö HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Mikä on internet, miten se toimii? Mauri Heinonen

4. Lausekielinen ohjelmointi 4.1

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Aihepiiri Tietokoneen toiminta (Computer Organization I)

The OWL-S are not what they seem

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä

Tiedon sijainti suoritusaikana (3) Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Miten tietoon viitataan? (4)

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla

Tiedon esitysmuodot. Luento 6 (verkkoluento 6) Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto

Directory Information Tree

Semanttinen Web. Ossi Nykänen Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto

Imperatiivisten ohjelmien organisointiparadigmojen. historia

Imperatiivisten ohjelmien organisointiparadigmojen historia

Johdanto Meta Kielten jaotteluja Historia. Aloitusluento. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho

Applen käyttöjärjestelmät

Tiedon sijainti suoritusaikana. Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Aihepiiri Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) Aihepiiri. Mitä hyötyä tästä on? (3) Tavoitteet. Kurssien välisiä riippuvuuksia

Tietokoneen toiminta (Computer Organization I)

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Tietokoneen toiminta (Computer Organization I)

TIETOTEKNIIKKA Koodi Vanha opintojakso op ov Vastuuhenkilö LV vastaavat opinnot tai korvaava suoritustapa TTE.

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset

.NET ja C# Virtuaalikone. Common Language Infrastructure (CLI) Periaate. Etuja. Haittoja. Mikä on CLI. CLI standardin merkitys (CLS, Ecma)

Prolog kielenä Periaatteet Yhteenveto. Prolog. Toni ja Laura Fadjukoff. 9. joulukuuta 2010

Pikaintro käyttöjärjestelmiin

Digikamera. Perustietoa digikamerasta ja kuvien siirtämisestä tietokoneelle

Ajattelemme tietokonetta yleensä läppärinä tai pöytäkoneena

Ohjelmien automaattisen verifioinnin reunamailla

Tietotekniikan kaupallistuminen (USA) Tommi Kärkkäinen (Ceruzzi ss )

TIES325 Tietokonejärjestelmä. Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

Syöttölaitteiden historia

Tietokoneen toiminta (Computer Organization I) Mitä hyötyä tästä on? (4) Kurssien välisiä riippuvuuksia. Aihepiiri.

Orponen, Pekka Tietotekniikkaa ennen tietokoneita - Alan Turing ja tietotekniikan kiehtovat alkuvaiheet

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

Suomen tietokoneistumisen alkuaskeleet

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Aloitus. TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 14. maaliskuuta 2011 TIETOTEKNIIKAN LAITOS. Aloitus.

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Aihepiiri Tietokoneen toiminta (Computer Organization I) Tavoitteet (4) Mitä hyötyä tästä on? (4) Kurssien välisiä riippuvuuksia

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

W3C ja Web-teknologiat

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Tietokoneen toiminta, K Tavoitteet (4)

Tilanne sekä MS-A0003/4* Matriisilaskenta 5 op

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

TW-LTE 4G/3G. USB-modeemi (USB 2.0)

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu

Transkriptio:

Tietojenkäsittelytieteen esittely Tietojenkäsittelytieteen historiaa Teemu Kerola Koneet Teoria Ohjelmistot Suomessa Teknologia laskimet Tietokone Ohjelmoitava tietokone Ohjelmointi kutomakoneen reikäkortti 1 2 Kutomakone Joseph-Marie Jacquard, Ranska, 1801 korvasi ihmistyötä aiheutti mellakoita 1812: 18000 kpl Lävistysasema, ohjelmointi 3 Kutomakone Deutches Museum, Munich Logiikka 5x30cm puiset reikäkortit seuraava kortti sidottu edelliseen kortit ikuisessa loopissa reikäkortti = koneen tila Photograph by George P. Landow = käsky rinnakkaisprosessointia: 18 silkkinauhaa samanaikaisesti tuotannossa Ohjelmisto-piratismia ja teollisuusvakoilua reikäkorttipakkoja varastettiin kilpailijoilta 4 Toteutusteknologia edistyy Parempi teknologia 1900-luvulla metalliset reikäkortit moottori Photograph by George P. Landow, June 2000 5 Laskennan perusidea Hae seuraava toiminto (käsky) ihminen näppäilee tai antaa lue jostakin muistista Suorita se automaattisesti mekaanisesti, mekaanisten releiden avulla elektronisesti Ihminen Ohjelmamuisti Välitulosmuisti sähköiset releet, elektroniputket, transistorit lue tarvittava data jostakin talleta välitulokset (samaan?) johonkin kirjoita lopputulos johonkin Datamuisti 6

Kutomakone vs. tietokone (3) Varhaiset koneet (3) Kutomakone oli tietokone reikäkorteilta luettiin ohjelma, jonka mukaan sitten toimittiin Kutomakone oli varhainen sulautettu järjestelmä kiinteä ohjelma, joka kontrolloi tuotantolaitosta (kangaspuuta) reikäkorteilta luettiin data eli toiminnan ohjauskomennot Kumpi tulkinta on oikea? ohjelma kangaspuut ohjauskomennot ohjelma kangaspuut Ohjelmoitavat laskimet Ohjelma luetaan suoritusaikana ulkoisesta muistista (kone siis ohjaa, ei ihminen) Muutama nopea rekisteri välitulosten talletukseen Yhden ohjelman koneet Ohjelma ladattu etukäteen sisäiseen muistiin Erillinen, nopeampi muisti välituloksille (rekisterit) Von Neumann koneet Ohjelma ja välitulokset saman teknologian muistissa Laskenta voi muuttaa/vaihtaa ohjelmaa lennossa! Ohjelma ja data muisti 7 8 1800 1939 1945 1946 1951 1956 1959 1984 1995 Muistin kehitys Reikäkortti, reikänauha Mekaaninen rele Kondensaattorirumpu Magneettinauha, -rumpu, -levy Elohopeaviiveputki, katodisädeputki Ferriittirengas Transistori Mikropiiri DRAM, SRAM Flash-muisti CD DVD Z1 ohjelmoitava laskin Konrad Zuse (1938) Ensimmäinen ohjelmoitava binäärijärjestelmään perustuva tietokone Sähkömoottori, 1Hz kellotaajuus Ohjelmointi reikänauhan avulla Ei toiminut kunnolla Mekaaninen kontrolli ja muisti, mekaaniset releet toteutettu metalliliuskojen avulla Tuhoutui piirustusten kera 1943 Berliinin pommituksissa Zusen rakentama kopio Berliinin tekniikan museossa 9 10 Bombe - yhden ohjelman kone Alan Turing & Gordon Welchman, Englanti, proto 1940 nopea, toimiva malli 1943 Ohjelma: etsi ratkaisua saksalaiseen Enigma salakirjoituskoodiin brute force etsintämenetelmä annetulle data-alueelle Lev. 2 m, syv. 60 cm, kork. 2 m Koneita tehtiin yli 200 kpl (Englannissa ja USA:ssa) Bletchley Park Trust ENIAC yksi ohjelma J. P. Eckert ja John Mauchly, 1946 1500 relettä, 18000 tyhjiöputkea, 70000 vastusta, 5000000 juotettua liitosta, paino 30 tonnia Nopeus 5000 yhteenlaskua / sek. 20 numeron muisti (alkuaan) Ohjelmointi alkuaan käsin langoittamalla eli yhdistelemällä komponentit uudelleen eri tavoin Vetypommin kehitys Mauchly Eckert 11 12

Von Neumann koneet eli yleiskäyttöiset koneet EDVAC Electronic Discrete Variable Automatic Computer prototyyppi, Mauchly & Eckert, rakennus alkoi 1944 valmistui vasta 1952 (!) John von Neumann in memo (USA, 1945), mutta Mauchly & Eckert in idea yhteinen muisti ohjelmalle ja datalle ALU CU suoritin, jossa aritmeettis-looginen yksikkö kontrolliyksikkö, joka ohjaa toimintoa Muisti von Neumann 13 EDSAC Maurice Wilkes, Englanti, 1949 Electronic Delay Storage Automatic Calculator ohjelma ja data samassa muistissa Muistin koko 512 sanaa, elohopeaviiveputkiteknologia 4m * 5m huone, 12 KW teho Ensimmäinen toimiva yleiskäyttöinen tietokone Muisti Ohjelmiston synty väylä 14 Digitaalisten piirien käyttö 1854 1938 1948 1949 George Boole Boolen algebra, Englanti totuusarvot, AND, OR,... Claude Shannon Boolen algebran soveltaminen relepohjaisten piirien suunnitteluun (gradu), MIT, USA Viestinnän matemaattinen teoria informaatioteorian alku Salausjärjestelmien viestintäteoria salakirjoitustieteen alku Boole Shannon Ensimmäiset koneet Suomessa 1958 1961 1962 1966 Ensi, IBM 650 Postipankki, KELA IBM 610 Valmet, konsulttiyritys? ESKO Helsingin yliopisto Elliot 803A Kaapelitehdas Martti Tienari, Timo Alanko Wegematic 1000 Turun yliopisto Wegematic 1000 Helsingin yliopisto, phys. Elliot 803B Kaapelitehdas vanha Elliot 803A TKK:lle IBM 1620 Helsingin yliopisto Elliot 803B Oulun yliop, Tamp. yliop 15 16 ESKO Elektroninen Sarja- KOmpuutteri Myrberg, Nevanlinna, Matematiikkakonekomitea Saksalaisen Goettinger G1a -koneen piirustusten mukaan Helsingin yo:n laskentakeskuksen arkisto Sovelluksina lähinnä ammusten lentoratojen laskenta Ohjelmat reikänauhoilta (10 lukuasemaa, 1/aliohjelma) Ohjelmointi konekielellä Hidas: 20 yhteenlaskua/sek eli hyödytön jo valmistuessaan Nyt Tekniikan museossa (Helsinki) 17 Ohjelmoinnin kehitys Konekieli kaikki varhaiset koneet peräkkäisyys, ehdolliset valinnat, silmukat, aliohjelmat, ohjelmakirjastot joka konetyypille omansa Kääntäjä A-0 (1951) Grace Hopper Harvard Mark III koneelle "Women turn out to be very good programmers for one very good reason. They tend to finish up things, and men don't very often finish." Amiraali Hopper 18

1957 1958 1972 1973 1980 1995 2000 Ohjelmointikielet Fortran FORmula TRANslator Backus Algol ALGOrithmic Language LISP - LIStProcessing language John McCarthy Cobol - COmmon Business Oriented Language Grace Hopper Prolog -PROgramation et LOGique Colmerauer C Dennis Ritchie C++ Bjärne Stroustrup Java Naughton, Sheridan, Gosling C# Anders Hejlsberg Ritchie 19 Taulukkolaskenta 1979 1983 1987 Ei erillistä käännöstä, WYSIWYG Bricklin What You See Is What You Get VisiCalc Dan Bricklin killer application Apple II:lle Lotus 123 Excel MS Excel VisiCalc 20 1970 1974 1975 1986 Relaatiotietokannat Relaatioalgebra - Codd Relaatiotietokanta, SQL IBM System/R relaatiotietokanta Oracle (1979) QUEL - Ingres IngresRDBMS RDBMS hävisi, SQL voitti 21 Internet 1962 Galactic Network idea, USA Licklider Hypertext - Xanadu projekti Nelson 1969 ARPANET, USA pakettikytkentäinen verkko laajeni myöhemmin Internetiksi 1973 TCP Transmission Control Protocol SNMP - Simple Network Management Protocol 1987 1989 HTML, HTTP, URL Tim Berners-Lee 200? Semantic Web (tulossa) Berners-Lee Tim Berners-Lee, 22 1928 1930 1930 1937 Teorian kehitys Kysymys: mitä voidaan yleensä laskea ja mitä voidaan laskea koneellisesti? Hilbert Lambda-kalkyyli Church formaali menetelmä laskennan kuvaamiseen perusta funktionaalisille kielille Kaikki voimakkaat laskennan mallit epätäydellisiä Gödel Turingin Universaali kone voi suorittaa minkä tahansa algoritmin edelleenkin laskettavuuden Alan Turing perustyökalu 23 1969 1973 1980 1983 1985 1991 Käyttöjärjestelmät UNIX Thompson, Richie, et al ensimmäinen yleiskäyttöinen käyttöjärjestelmä CP/M Kildall 86-DOS Tim Paterson alkuaan QDOS eli Quick and Dirty Operating System Microsoft ostaa oikeudet, Paterson MS/DOS Graafinen käyttöliittymä (GUI) Xerox Palo Alto Research Ctr Apple Lisa Windows Linux Linus Torvalds, TKTL Torvalds 24

Ohjelmointivirheet Ensimmäinen bugi 1947 Harvard Mark II mekaanisen releen välistä Grace Hopper Termi debugging tuli ajankohtaiseksi Lääketiede 1985-1985 ainakin yksi ihminen kuoli, kun sädehoitokone antoi liikaa säteilyä 1992 havaittiin, että toinen sädehoitokone oli 10 vuoden ajan antanut 30% liian vähän säteilyä 25 Ohjelmointivirheet Avaruustutkimus 1962 Mariner I raketti tuhoutuuu, kun DO 20 I = 1,5; % looppi DO20I = 1,5 % sijoitus lennon-ohjaus ohjelmasta puuttui yksi puolipiste 1999 Mars-tutkaimella meni tuumat ja senttimetrit sekaisin 1999 toinen Mars luotain teki laskeutumisjarrutuksen liian aikaisin hyvin korkealla jalkojen ulostyöntämisen aiheuttaman maahankosketustönäisyn perusteella Y2000-virheet 1970- ja 1980-luvulla ohjelmoijat eivät ymmärtäneet, että jotkut heidän silloin tekemänsä ohjelmat voisivat olla vielä käytössä vuonna 2000! nykyään useimpien ohjelmien käyttöikä alle 2 vuotta! 26 Tietojenkäsittelytieteen nykytila Uusia tietojenkäsittelytieteen ja sen sovellusten alueita tulee koko ajan Tekoäly, neuroverkot DNA-laskenta, kvantti-laskenta Hyvin suuret tietokannat, tiedon louhinta Semanttinen verkko, hyperavaruudet, grid-laskenta Huomaamattomat koneet (ubiquitous computing) Ohjelmien ja laitteiden oikeellisuus (edelleen tulossa!) Uudet langattomat verkot, verkkopalvelut Kulutustavarat verkossa (jääkaappi, hella, polttimo, ) Puheentunnistus, kieliteknologia Kuvankäsittely, 3D-mallinnus, pelit, pelit, pelit Tietojenkäsittelytieteen nykytila (jatk.) Lähes kaikki tärkeimmät tutkijat (eli tähän asti tärkeimpien keksintöjen tekijät) ovat edelleen elossa ja tuotteliaana Uusia tulee koko ajan katso ympärillesi! 27 28 -- Loppu -- Digitaalinen kone bitti: 0 tai 1 Neil Gershenfeld Kvanttikone qubitti: 0, 1, tai molemmat jollain todennäköisyyksillä 29