Tietojenkäsittelytieteen esittely Tietojenkäsittelytieteen historiaa Teemu Kerola

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. 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

Applen käyttöjärjestelmät

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

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)

Pikaintro käyttöjärjestelmiin

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

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 1 Tietokone Teknologia laskimet Ohjelmointi kutomakoneen reikäkortti Ohjelmoitava tietokone 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 Suoritin 6

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 ohjelma Suoritin kangaspuut ohjauskomennot ohjelma Suoritin kangaspuut Kumpi tulkinta on oikea? 7 Varhaiset koneet (3) 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! Suoritin Ohjelma ja data muisti 8

1800 1939 1945 1946 1951 1956 1959 1965 1984 1965 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 9 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 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 11 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 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 Suoritin 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 Suoritin Muisti Ohjelmiston synty väylä 14

Digitaalisten piirien käyttö Boole 1854 1938 George Boole Boolen algebra, Englanti totuusarvot, AND, OR,... Claude Shannon Boolen algebran soveltaminen relepohjaisten piirien suunnitteluun (gradu), MIT, USA 1948 1949 Viestinnän matemaattinen teoria informaatioteorian alku Salausjärjestelmien viestintäteoria salakirjoitustieteen alku Shannon 15 Ensimmäiset koneet Suomessa 1958 1960 1961 1962 1965 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 16

ESKO Elektroninen Sarja- KOmpuutteri Myrberg, Nevanlinna, Matematiikkakonekomitea 1960 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 1960 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 What You See Is What You Get VisiCalc Dan Bricklin killer application Apple II:lle Lotus 123 Excel MS Excel Bricklin VisiCalc 20

Relaatiotietokannat 1970 1974 1975 1986 Relaatioalgebra - Codd Relaatiotietokanta, SQL IBM System/R relaatiotietokanta Oracle (1979) QUEL - Ingres Ingres RDBMS RDBMS hävisi, SQL voitti 21 1962 1969 1973 1987 1989 200? Internet Galactic Network idea, USA Licklider Hypertext - Xanadu projekti Nelson ARPANET, USA pakettikytkentäinen verkko laajeni myöhemmin Internetiksi TCP Transmission Control Protocol SNMP - Simple Network Management Protocol HTML, HTTP, URL Tim Berners-Lee 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 perustyökalu Alan Turing 23 Käyttöjärjestelmät 1969 UNIX Thompson, Richie, et al ensimmäinen yleiskäyttöinen käyttöjärjestelmä 1973 CP/M Kildall 1980 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 1983 Apple Lisa 1985 Windows 1991 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 27 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! 28

-- Loppu -- Digitaalinen kone bitti: 0 tai 1 Neil Gershenfeld Kvanttikone qubitti: 0, 1, tai molemmat jollain todennäköisyyksillä 29