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



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

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

Tietojenkäsittelytieteen esittely Tietojenkäsittelytieteen historiaa Teemu Kerola

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

Luento 1 Tietokonejärjestelmän rakenne

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

Teemu Kerola Orientointi Syksy 2018

Tietojenkäsittelyn historiaa

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

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

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

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Kertausluento luennoista 1-3 1

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)

ELEC-C7110 Informaatioteknologian perusteet

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

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

Tietokoneen toiminta (Computer Organization I)

815338A Ohjelmointikielten periaatteet

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

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

Konekäskyjen esitysmuoto muistissa (4) TTK-91 konekäskyn rakenne. Konekäskyn operandit ja tulos. Taulukkojen esitysmuoto. Tietueiden esitysmuoto

Ohjelman esitysmuoto Rakenteellinen tieto Pariteetti Hamming-koodi Välimuisti Tavallinen muisti Muistien historiaa

Konekäskyjen esitysmuoto muistissa (4)

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

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

812341A Olio-ohjelmointi, I Johdanto

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

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

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

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Aihepiiri Tietokoneen toiminta (Computer Organization I)

Tarvitseeko informaatioteknologia matematiikkaa?

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

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

Suomen tietokoneistumisen alkuaskeleet

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

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

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?

Syöttölaitteiden historia

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

Opettajatuutorointi-kurssin syksyn 2006 kyselyjen tulokset

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

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

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

CUDA. Moniydinohjelmointi Mikko Honkonen

4. Lausekielinen ohjelmointi 4.1

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Johdatus ohjelmointiin

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

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

Tietokoneen toiminta (Computer Organization I)

Konekäskyjen esitysmuoto muistissa (4) TTK-91 konekäskyn rakenne. Konekäskyn operandit ja tulos. Taulukkojen esitysmuoto. Tietueiden esitysmuoto

Applen käyttöjärjestelmät

Directory Information Tree

Varhaiset brittiläiset tietokoneet

Tietokoneen toiminta (Computer Organization I)

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

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

Digikamera. Perustietoa digikamerasta ja kuvien siirtämisestä tietokoneelle

Mikä on internet, miten se toimii? Mauri Heinonen

Pikaintro käyttöjärjestelmiin

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

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

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

Käännös, linkitys ja lataus

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Tietokoneen toiminta, K Tavoitteet (4)

The OWL-S are not what they seem

W3C ja Web-teknologiat

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016

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

Ohjelmien automaattisen verifioinnin reunamailla

Tietokoneen toiminta, Kevät Luento 7 Tiedon esitysmuodot (jatk) Tiedon muuttumattomuuden tarkistus Järjestelmän sisäinen muisti

Imperatiivisten ohjelmien organisointiparadigmojen. historia

Imperatiivisten ohjelmien organisointiparadigmojen historia

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

Tiedon sijainti. Konekäskyjen esitysmuoto muistissa (4) TTK-91 konekäskyn rakenne. Taulukkojen esitysmuoto. Konekäskyn operandit ja tulos

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

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

W3C: teknologia ja (tieto)yhteiskunta

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

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 Berliinin tekniikan museon kappale 1800-luvun lopulta? Noin 15 m leveä, 5 m korkea Kutoi samanaikaisesti 18 koristesilkkinauhaa erivärisistä langoista 18 rinnakkaista pientä kangaspuuta Koko toimintaa ohjasi automaattisesti peräkkäin telaketjuksi sidotut 5x30cm puiset reikäkortit 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 Datamuisti sähköiset releet, elektroniputket, transistorit lue tarvittava data jostakin muistista talleta välitulokset (samaan?) johonkin muistiin kirjoita lopputulos muistiin tai tulosta se 3 4 Kutomakone vs. tietokone (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 5 Varhaiset koneet (3) Ohjelmoitavat laskimet Ohjelma syötetään suoritusaikana ulkoisesta muistista (kone siis ohjaa, ei ihminen) Muutama nopea rekisteri välitulosten talletukseen Yhden ohjelman koneet Ohjelma ladattu etukäteen nopeaan 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 6 Tietojenkäsittelytieteen esittely, S2002 1

Muistin kehitys Reikäkortti, reikänauha (1800) Mekaaninen rele (?) Kondensaattorirumpu (1939) Elohopeaviiveputki, katodisädeputki (1946) Magneettinauha, -rumpu, -levy (1945?) Winchester drive (1980) Ferriittirengas (1951) Forrester & Everett Transistori (1956) Bardeen, Shockley, Brattain Mikropiiri (1958, 1959) Kilby & Noyce DRAM (1966), SRAM (1970), Flash (1984) Optiset levyt 7 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 8 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 9 ENIAC yhden ohjelman kone J. P. Eckert ja John Mauchly, 1946 1500 relettä, 18000 tyhjiöputkea, 70000 vastusta, 5000000 juotettua liitosta paino 30 tonnia nopeus 5000 yhteenlaskua / sek. 200 numeron muisti Ohjelmointi käsin langoittamalla eli yhdistelemällä komponentit uudelleen eri tavoin Rinnakkaislaskenta (max 20 samanaikaista yhteenlaskua) 10 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, jossa aritmeettis-looginen yksikkö kontrolliyksikkö, joka ohjaa toimintoa Muisti von Neumann 11 EDSAC EDSAC eli Electronic Delay Storage Automatic Calculator Ohjelma ja data samassa muistissa Muistin koko 512 sanaa á 17 bittiä elohopeaviiveputkiteknologia 4m * 5m huone, 12 KW teho Maurice Wilkes, Englanti, 1949 Ensimmäinen toimiva yleiskäyttöinen tietokone Ohjelmiston synty väylä Muisti 12 Tietojenkäsittelytieteen esittely, S2002 2

Digitaalisten piirien käyttö George Boole (1815-1864) Boolen algebra, 1854, Englanti totuusarvot, AND, OR,... Claude Shannon (1916-2001) Boolen algebran soveltaminen relepohjaisten piirien suunnitteluun (gradu), 1938, MIT, USA Viestinnän matemaattinen teoria, 1948 informaatioteorian alku Salausjärjestelmien viestintäteoria, 1949 salakirjoitustieteen alku Ensimmäiset koneet Suomessa Ensi, IBM 650 Postipankki (1958), KELA (1959) IBM 610 Valmet (1960), konsulttiyritys? (1960) ESKO Helsingin yliopisto (1960) Elliot 803A Kaapelitehdas (1960) Martti Tienari, Timo Alanko Wegematic 1000 Turun yliopisto (1960) Wegematic 1000 Helsingin yliopisto, phys. (1961) Elliot 803B Kaapelitehdas (1961) vanha Elliot 803A TKK:lle IBM 1620 Helsingin yliopisto (1962) Elliot 803B Oulun yliop (1965), Tamp. yliop (1966) 13 14 ESKO Elektroninen SarjaKOmpuutteri (1960) Matematiikkakonekomitea (Myrberg, Nevanlinna,...) Saksalaisten Goettinger G1a-koneen piirustusten mukaan 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) Ohjelmointi 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." 15 16 Ohjelmointikielet Fortran FORmula TRANslator (1957) - Backus ensimmäinen laajalle levinnyt kieli edelleen käytössä (Fortran 77, Fortran 90) Algol (1958) komitean suunnittelema yleiskieli I/O toteutusta ei määritelty LISP (1958) John McCarthy Cobol (1960) - Grace Hopper Prolog (1972) - Kowalski & Colmerauer 5 th Generation language C (1973) Dennis Ritchie Unix in toteuttamista varten Ritchie C++ (1980) Bjärne Stroustrup Java (1995) Naughton, Sheridan, Gosling suunniteltu WWW-selaimia varten 17 Taulukkolaskenta Ei erillistä käännöstä, WYSIWYG What You See Is What You Get VisiCalc (1979) - Dan Bricklin Apple II:lle killer application Lotus 123 (1983) Excel (1987) MS Excel (1987) Bricklin VisiCalc 18 Tietojenkäsittelytieteen esittely, S2002 3

Relaatiotietokannat Relaatioalgebra (1970) - Codd Relaatiotietokanta, SQL (1974) IBM System/R relaatiotietokanta Oracle (1979) QUEL (1975) - Ingres IngresRDBMS 1986 luopui RDBMS:stä SQL:n eduksi Internet Galactic Network idea, USA (1962) Licklider Hypertext - Xanadu projekti (1960-...) Nelson ARPANET, USA (1969) pakettikytkentäinen verkko laajeni myöhemmin Internetiksi TCP Transmission Control Protocol (1973) SNMP - Simple Network Management Protocol (1987) HTML, HTTP, URL (1989) Tim Berners-Lee Berners-Lee Semantic Web (tulossa) Tim Berners-Lee, 19 20 Teorian kehitys Kysymys: mitä voidaan yleensä laskea ja mitä voidaan laskea koneellisesti? (1928) - Hilbert Lambda-kalkyyli (1930) - Church formaali menetelmä laskennan kuvaamiseen perusta funktionaalisille kielille Kaikki voimakkaat laskennan mallit epätäydellisiä (1931) - Gödel Turingin Universaali kone (1937) voi suorittaa minkä tahansa algoritmin edelleenkin laskettavuuden perustyökalu Turing Vaikea ongelma: P=NP? Voidaan todistaa, että a) on olemassa joukko vaikeita ongelmia, joille ei ilmeisesti ole mitään hyvää käytännöllistä ratkaisua, ja b) jos yhteen niistä löytyy ratkaisu, niin kaikkiin niistä löytyy! Stephen Cook and Leonid Levin (1971) Ei ole osattu vielä todistaa oikeaksi tai vääräksi! 21 22 Käyttöjärjestelmät UNIX (1969) Thompson, Richie, et al ensimmäinen yleiskäyttöinen käyttöjärjestelmä CP/M (1973) Kildall 86-DOS (1980) Tim Paterson alkuaan QDOS eli Quick and Dirty Operating System Microsoft ostaa oikeudet, lisensoi IBM:lle (1980) MS/DOS (1981) Apple Lisa (1983) Xerox PARC in kehittämä ikkunointijärj. Windows (1985) Linux (1991) Linus Torvalds, TKTL Paterson Torvalds 23 Ohjelmointivirheet Ensimmäinen bugi 1947 Grace Hopper löysi sen Harvard Mark II mekaanisen releen välistä 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ä 24 Tietojenkäsittelytieteen esittely, S2002 4

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! Tietojenkäsittelytieteen nykytila Uusia tietojenkäsittelytieteen ja sen sovellusten alueita tulee koko ajan Tekoäly, neuroverkot Hyvin suuret tietokannat, tiedon louhinta Semanttinen verkko, hyperavaruudet, grid-laskenta Huomaamattomat koneet (ubiquitous computing) Ohjelmien ja laitteiden oikeellisuus (edelleen tulossa!) Uudet langattomat verkot, verkkopalvelut Verkottuneet kulutustavat (jääkaappi, hella, polttimo, ) Puheentunnistus, kieliteknologia Kuvankäsittely, 3D-mallinnus, pelit, pelit, pelit 25 26 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! -- Loppu -- Intel 4004, 1971 Faggin, Hoff, Mazor Ensimmäinen suoritin lastulla 3x4 mm, $200 2300 transistoria 4 bitin sana Laskinta varten Sama laskentateho kuin Eniacilla (18000 tyhjiöputkea) 27 28 Tietojenkäsittelytieteen esittely, S2002 5