Teknologi historie Datateknologi, Hardware og software



Relaterede dokumenter
Computerarkitektur. - en introduktion til computerarkitektur med LINDA

Repræsentation af tal

Repræsentation af tal

Repræsentation af tal

COMAL og COMPUTERE I DANSKE GYMNASIER Erindringer

Repræsentation af tal

Bits DM534. Rolf Fagerberg, 2012

Programmering for begyndere Lektion 2. Opsamling mm

ITS MP 013. Talsystemer V009. Elevens navn. IT Skolen Boulevarden 19A-C 7100 Vejle Tel.:

computerens_udvikling

Med TI-89 / TI-92 Plus kan du også sammenligne eller manipulere binære tal bit for bit.

Computeren repræsenterer en teknologi, som er tæt knyttet til den naturvidenskabelige tilgang.

\ \ Computerens Anatomi / /

Det Digitale Niveau. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)

Abstrakte datatyper C#-version

Fagårsplan 12/13 Fag: Matematik Klasse: 3.A Lærer:LBJ Fagområde/ emne At regne i hovedet

Rolf Fagerberg. Forår 2013

Rolf Fagerberg. Forår 2012

Computerens Anatomi. Af Martin Arnetoft

Indhold. Maskinstruktur Kapitel 1. Assemblersprog Indledning Hop-instruktioner Input og output...

DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003

Eksempel: Skat i år 2000

Arduino Programmering

Computeren inderst inde

3. Computerens opbygning.

APPENDIX A INTRODUKTION TIL DERIVE

Det binære talsystem og lidt om, hvordan computeren virker

Kreativ programmering

Køreplan Matematik 1 - FORÅR 2005

Bits, bit operationer, integers og floating point

3. Om skalamønstrene og den indfoldede orden

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer

3. klasse 6. klasse 9. klasse

Lær Python dag 1 - modul 1

Eksamensopgaver datalogi, dlc 2011 side 1/5. 1. Lodtrækningssystem

Matematik samlet evaluering for Ahi Internationale Skole

Årsplan matematik 5. klasse. Kapitel 1: Godt i gang

Noter til C# Programmering Selektion

Start af nyt schematic projekt i Quartus II

Grundliggende regning og talforståelse

Hvad skal du vide for at bygge din egen computer?

Selam Friskole Fagplan for Matematik

DM507 Algoritmer og datastrukturer

DM13-1. Obligatoriske Opgave - Kredsløbs design

Rolf Fagerberg. Forår 2015

Evaluering af matematik undervisning

Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX

MATEMATIK. Formål for faget

3 Algebra. Faglige mål. Variable og brøker. Den distributive lov. Potenser og rødder

Klassen er sammenlæst, altså 5 og 6 klasse på en og samme tid. Samtidig er klassen pt på ca 11 elever ialt.

LÆRINGSMÅL PÅ NIF MATEMATIK

Computerens Anatomi KOM/IT

Computer Literacy. En stationær bordmodel. En Bærbar Notebook, Labtop, Slæbbar, Blærebar mm.

RSA Kryptosystemet. Kryptologi ved Datalogisk Institut, Aarhus Universitet

Rolf Fagerberg. Forår 2015

Note omkring RSA kryptering. Gert Læssøe Mikkelsen Datalogisk institut Aarhus Universitet

Introduktion til DM507

Turing og den universelle maskine

uprocessorens hardware

Computerens. anatomi. Vores portfolio. Marcus Niebuhr og Kevin Matin ROSKILDE TEKNISKE GYMNASIUM

CPUer og maskinkode DM534. Rolf Fagerberg

Internettet. Teknisk viden om internettet Når teknisk udstyr, bl.a. computere, kommunikere med hinanden, foregår det via protokoller.

Induktive og rekursive definitioner

MATEMATIK. GIDEONSKOLENS UNDERVISNINGSPLAN Oversigt over undervisning i forhold til trinmål og slutmål

Rolf Fagerberg. Forår 2014

Selvstudium 1, Diskret matematik

Affine - et krypteringssystem

Maskinarkitektur. Lars Kristensen Christian Storm dmasark 1

Programmering i C Intro og grundlæggende C 5. marts 2007

Kapitel 3 Betinget logik i C#

DM507 Algoritmer og datastrukturer

Gør det selv-øvelser udi regneark for begyndere! - en manual fra Skolekonsulenterne.dk

Microcontroller, Arduino

Kryptologi og RSA. Jonas Lindstrøm Jensen

TEKNOLOGIFORSTÅELSE EN NY FAGLIGHED I FOLKESKOLEN

Lidt orientering om, hvad en computer består af

Vejledning til farvekvalitet

DM507 Algoritmer og datastrukturer

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen

DM507 Algoritmer og datastrukturer

Faglige delmål og slutmål i faget Matematik. Trin 1

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

Regneark for begyndere

Projekt 7.9 Euklids algoritme, primtal og primiske tal

DMX styring med USB-interface

De 4 regnearter. (aritmetik) Navn: Klasse: Matematik Opgave Kompendium. Opgaver: 42 Ekstra: 5 Point:

En anden tilgang til matematisk læring, hvorfor?

Gennem de sidste par årtier er en digital revolution fejet ind over vores tidligere så analoge samfund.

#AlleKanKode. Lektion 2 - Konstanter og Variabler

,-2006 Dansk. Texas Instruments Holland B.V. Rutherfordweg CG Utrecht The Netherlands

Algorithms & Architectures II

Et CAS program til Word.

Fagets IT Introduktion til MATLAB

Kapitel 4 Løkker i C#

Undervisningsplan: Matematik Skoleåret 2014/2015 Strib Skole: 5B Ugenumre: Hovedområder: Emner og temaer: Side 1 af 5

Michel Mandix (2014) INDHOLDSFORTEGNELSE:... 2

Negative cifre n. I et positionssystem skriver man et tal på formen xn a + xn 1a

Transkript:

Teknologi historie Datateknologi, Hardware og software Følgende fremstilling er delvis baseret på Dr. Paul E. Dunne s forelæsningsnotater. Notaterne findes på http://www.csc.liv.ac.uk/~ped/teachadmin/histsci/content.html A. Intro. Hvad tænker folk om computere?. Hvorfor tænker de?. Hvad betyder det hvad folk tænker?. Hvad er datateknologi og hvad kan det bruges til? De populære påstande om computere:. Computere kan lave alt hvad vi ønsker. Computere kan fejle. Computere er en trussel mod samfundet. Computere er nyttige. Computere er intelligente. Computere påvirker folks livsstil og livsmønster. Computere er svære at forstå B. Udvikling af algoritmer og behov for automatisering af opgaveudførelse Computere manipulerer data for at producere et resultat eller resultater. Computere transformerer altså en given repræsentation af information. Repræsentation handler om hvordan information kan beskrives på en universal anerkendt form. Transformation handler om procedurer dvs. programmer og algoritmer som bruges til at transformere sådanne repræsentationer til at producere et eller flere resultater. Multiplikation (addition osv.) med papir og blyant er et eksempel herpå: Repræsentationen er tal og procedurerne for at manipulere sådanne repræsentationer (multiplicere, addere osv.) Men hvorfor har man brug for en maskine til at udføre beregningerne? Fordi disse beregninger kan være lange og arbejdskrævende. Derfor er det en stor hjælp hvis disse bliver automatiserede og kommer til at tage kortere tid og muligheden for at lave fejl bliver mindre hvis maskinen udfører beregningerne. Hvordan vil du fx foretrække at beregne 123478474x 6772366367? Kan du stole på et resultat der er fremkommet med papir, blyant metoden med håndkraft? Datateknologi involverer altså tre hovedområder: 1. Udvikling af symbol repræsentation af information som er lette at manipulere. 2. Udvikling af algoritmer som kan anvendes i forbindelse hermed. 3. Konstruktion af mekaniske/elektriske/elektroniske maskiner som anvender algoritmer til at udføre manipulationer 1

1. Repræsentation af symboler - tal repræsentation Denne simple repræsentation har følgende egenskaber: Fælles for alle tidligere kulturer Simple at forstå Addition, subtraktion og multiplikation er relativt simple Meget svær at bruge til at repræsentere store tal. 2

Repræsentationen ovenover er ikke spor bedre end førnævnte system mht effektivitet. Konvertering mellem romer og moderne decimal (Arabisk/Indisk) talsystem er svært. Især når to tal skal multipliceres! Opgave 1 : Find hjemmesider der fortæller lidt om romertallet. Vis med nogle eksempler hvordan systemet er opbygget og hvordan man kan lave addition, subtraktion og multiplikation i romertalsystemet. Decimal talsystem anvender tallet nul således at basen bliver 10 (0-9). 10 forskellige symboler bliver brugt til at repræsentere tallene fra nul til ni. Decimalsystemet bliver først brugt af Leonardo Pisano Fibonacci i Europa i omkring 1200 tallet. Opgave 2: Hvor kommer tallet 0 (nul) fra? Hvad er historien bag tallet 0? 3

4

2. Algoritmebegrebet En algoritme beskriver abstrakt hvorledes et beregningsproblem løses og arbejder på noget input og leverer resultater gennem output. Algoritme er altså en beregningsmetode på et problem. Algoritme begrebet kommer fra den persiske matematiker Al-Khowarizmi (ca. 780 ca. 850) som skrev den første bog om algebra som senere er oversat til latin af den Italianske matematiker Leonardo Pisano Fibonacci. Et eksempel på en algoritme er fx at finde den største fælles divisor af to tal: Algorithm: greatest common divisor of m and n 1. If m is smaller than n then swop the values of m and n. 2. Set m equal to the remainder of m divided by n. 3. If m is not equal to 0 then go back to step 1, with the new values of n and m. 4. Return n as the answer. 5

Opgave 3: Afprøv ovenstående algoritme til at finde den største fælles divisor af tallene m = 693 og n = 147. Kan du også ud fra algoritmen konstruere et lille program til at beregne den største fælles divisor af vilkårlige tal? Opgave 4: Find ud fra nogle hjemmesider fra internetsøgning, en algoritme, som viser hvordan man undersøger om et tal er et primtal. Kan du også implementere (konstruere et program) algoritmen til et lille program som finder om et tal er et primtal? 3. Konstruktion af simple mekaniske regnemaskiner Det decimale systems fremkomst og accept i Europa har gjort det muligt at beskrive størrelserne og manipulere med tal med håndkraft. Efterhånden som udviklingen indenfor navigation tog til og der blev et behov for at beregne forskellige ruter for at komme frem og tilbage mellem Europa og kolonierne og udvikling indenfor planeternes bevægelse gjorde det nødvendigt at udvikle mekaniske maskiner for at lette beregningerne. I perioden 1600 og 1700, blev der konstrueret flere forskellige typer af regnemaskiner. Selv om Pascal s regnemaskine er nok den mest berømte skal man heller ikke glemme Leibniz. 6

4. Babbage, Hollerith, Bool og udvikling af den moderne regnemaskine I sammenligning med de mekaniske regnemaskiner har de moderne regnemaskiner følgende egenskaber: De kan programmeres De kan gemme information i hukommelsen Baseret på elektronisk teknologi frem for mekanisk Personer som er involveret; Joseph-Marie Jacquard (1752-1834) Herman Hollerith (1860-1929) Charles Babbage (1791-1871) George Boole (1815-64) Joseph-Marie Jacquard Arbejdede i textilindustrien i Frankrig. Produktionen af klædningsstykker med mønster var tidskrævende. Han konstruerede en mekanisme hvorved mønsterne vævede automatisk. For at kontrollere operationen, indførte han hulkort som indeholdt selve mønsterprogrammet. 7

Herman Hollerith Hans problem var at holde styr på befolkningstallet i USA som skulle gøres op hvert 10. år. Den første befolkningstælling blev holdt i august 1790 og man brugte 9 måneder for at tælle 4 millioner amerikanere! I 1860 steg befolkningstallet til 31 millioner og tælling blev en umulighed indenfor rimelighedens grænser! Der kom Hollerith ind på billedet. Fra og med 1880 bestemte han sig sammen med John Shaw Billings, som var ansvarlig for at analysere tælleresultaterne, at automatisere tællingen ved hjælp af hulkort som så skulle behandles af en eller anden elektroniske regnemaskine. Holleriths s card er blevet navnet på kortet der indeholdt programmet til datamaskinen og det var Hollerith der grundlagde IBM i 1924. Charles Babbage og Ada Lovelace Den britiske admiralitet brugte logaritme tabeller, trigonometriske funktioner og astronomiske data som er samlet i de sidste 200 år. Sådanne tabeller var vigtige for at validere de videnskabelige eksperimenter og hypoteser. Trods vigtigheden af sådanne tabeller, var de fulde af fejl! Charles Babbage var involveret i at bygge maskiner for at håndtere disse tabeller fejlfri og hurtigt. Hans første maskine kaldtes difference engine som kunne regne med 20 decimalers nøjagtighed efter hans planer. Men han kunne ikke gøre maskinen færdig efter 10 års arbejde og 34 000 pund fattigere. Den anden maskine han havde i tankerne var the analytic engine eller den analytiske maskine, som består af et lager hvor man gemmer alle variablerne og mellemresultaterne fra beregningerne og regneenheden som udførte beregningerne. Maskinen blev kontrolleret af hulkort. Nogle af dem indeholdt data, andre selve programmet eller instruktionerne. På en eller anden måde burde man måske udpege Babbage som computerens opfinder, da den analytiske maskine indeholdt alle de enheder man i dag bruger i nutidens computere som; Hukommelse eller memory Processing unit eller processor Input/output enheder som printere, diske, osv. Programmet Ada Lovelace Hun er nok den første programmør. Computerprogrammet ADA som mest anvendes af militæret, fik hendes navn. Hun var den nære hjælper af Babbage og de programmer som tænkes kørt på den analytiske maskine var 8

lavet af Ada Lovelace. Maskinen blev ikke bygget af Babbage men senere af hans søn. George Boole Den boolske algebra som anvendes i dag af ingeniører og teknikere bærer hans navn, da Boole er grundlæggeren af den Boolske algebra som bruges til at designe logiske kredsløb. Dette betyder at man fra nu af ikke kommer til at bruge mekaniske dele i regnemaskiner men kontakter som kan sættes til 0 og/eller 1. Computere i dag er allesamen baseret på den binære system med base 2 i stedet for base 10. Base 2 indeholder nemlig nul og én mens decimal 10 talssystem indeholder 0-9. 5. Den første elektroniske computer, perioden 1934-1955 Selv om Babbages planer for den analytiske maskine påvirkede design af moderne computere, var disse maskiner stadig mekaniske. Den teknologiske kapacitet på det tidspunkt var ikke tilstrækkeligt til at få bygget sådanne maskiner med den nødvendige præcision. Den vigtigste teknologiske indsigt som gjorde det muligt at designe elektroniske computere var de binære komponenter, som kunne repræsentere information og var i stand til at manipulere sådanne repræsentationer. Som det ses af ovenstående figur, kan man ved hjælp af stimulus åbne/lukke kredsløbet. Man siger at der er tale om en switch som kan åbnes/lukkes ved hjælp af elektrisk påvirkning. 9

Ved hjælp af disse elektrisk påvirkede switche, kan man Repræsentere tal (binær tal) Foretage beregninger binært, dvs. addition, multiplikation, division osv. Gemme og udføre programmer ved at gemme dem som binære sekvenser. Alle moderne computere kan beskrives i form af kompleks netværk af switchende komponenter. Et elektromekanisk relæ er en sådan switchende kontakt, som de første computere er bygget af. De andre kontakter er fx radiorør, transistorer, LSI (Large Scale Integration) og VLSI chips. 10

6. Udvikling af den første elektriske computer Konrad Zuse var den første tyske elektroingeniør, som fik interesse for at bygge elektriske computere mens han læste til ingeniør i Berlin. Hans første interesse var at få bygget en maskine der kunne beregne følgende simultane ligningssystemer. 3x + 2y + 3z = 18 5x + 3y + 2z = 17 4x + 6y + 7z = 37 Opgave 5: Find en metode til at beregne x, y og z af ovenstående ligningssystem. PS: Løs opgaven vha. hjemmesiden: http://home.att.net/~srschmitt/script_gauss_elimination3.html Der er flere metoder at bruge når man skal løse sådanne ligningssystemer. Når der er få variabler kan man anvende en metode som hedder Gaussian elimination og papir og blyant. Når der bliver tale om flere variabler er det utroligt arbejdskrævende at få løst sådanne systemer med håndkraft. Zuse s ide var at konstruere en maskine til at løse disse ligninger effektivt og hurtigt i 1934 mens han var student. Han fremførte følgende vigtige kriterier som skal være opfyldt for at konstruere en computer. Maskinen skal udføre alle slags beregninger, ikke kun ligninger Maskinen skal have en hukommelse for bevarelse af data Maskinen skal have en aritmetisk regneenhed eller CPU Maskinen skal have en kontrol enhed Maskinen skal have en program enhed for at tilføje instruktioner og data Maskinen skal have en output enhed for udprintning. Maskinen skal repræsentere data/programmer osv. binært. Boolske algebra skal bruges til at beskrive og implementere operationer af maskinen. Mens han arbejdede i Henschel Aircraft Company i Berlin, begyndte Zuse at bygge sin første computer som han kaldte Z1 som blev færdig i 1938. Denne kom ikke til at fungere. Men det gjorde den anden computer Z2 han byggede umiddelbart efter. I 1941, blev han færdige med at bygge sin tredje computer 11

Z3 som var en univeral regnemaskine som brugte tapeenhed, konsole til at taste program og data ind. Han nåede at konstruere sin sidste computer Z4 i1940 som på det tidspunkt var den eneste funktionelle computer i Europa, da den Britiske del af udviklingen var klassificeret indtil 1975. 7. Udviklingen i USA Personer som er involveret i design og konstruktion af computere; Aiken(1937) John Atanasoff (1904-) J. Presper Eckert (1929-) John Mauchly (1907-1980) John von Neumann (-1955) Aikens computer som var baseret på Babages og Holleriths arbejder kom til at hedde Mark 1. Den blev bygget i årene 1939-1944. Mark 1 brugte elektromekaniske relæer og brugte ca. 750 000 komponenter. Atanasoff konstruerede først en lille elektronregner som senere skulle danne forgængeren for en komplet computer som var på tegnebrættet. Mauchy var ligesom Atanasoff, interesseret i at bygge en computer alene af radiorør i stedet for relæer. Hans begrundelse for at bygge en computer var at bruge denne til at lave vejrprognoser. Sammen med Mauchly søgte han penge til at realisere sine drømme og denne kom til at hedde ENIAC, og var driftklar i maj 1944. ENIAC var enorm stor med en vægt på 30 tons og indehold 100 000 komponenter. Den kunne multiplicere to tal i løbet af 3 millisekunder! John von Neumann, som var flygtet fra Hitlers nazi regime i Ungarn, involverede sig i at designe efterfølgeren til ENIAC, nemlig EDVAC. Han blev så grundlæggeren af den moderne computer arkitektur som vi i dag har. 8. Udviklinger i U.K. Fra COLOSSUS til EDSAC Den britiske efterretningstjeneste, fik i 1938 planerne for en tysk kryptomaskine, ENIGMA som hovedsageligt brugtes til ubådskommunikation af tyske overkommando. Simon Singh har skrevet en bog om Enigma med samme navn, hvor han fortæller ombaggrunden og hændelserne som foregik under krigen. 12

Matematikeren Alan Turing blev sat på projektet under anden verdenskrig for at afsløre tyskernes kommunikation. Maskinen COLOSSUS og efterfølgeren Mark II blev bygget omkring dec. 1944. Maurice Wilkes, Cambridge, byggede EDSAC. EDSAC blev den første computer med egen hukommelse med uploadede programmer og sit egen assembler sprog. Opgave 6: Beskriv ved hjælp af det udleverede tekst funktionaliteten af ENIGMA. Brug den udleverede enigma simulator til at afkode følgende meddelelse; PZRRH WZAGPUDQ ONXGFUXGC Ps: Du skal ikke ændre indstillingerne til simulatoren. Behold bare de oprindelige indstillinger. 9. Udvikling af programmeringssprog 1955-1970 Brugen af et computersystemerne i 50 erne var stadig præget af frustrationer som skyldtes følgende årsager; Teknologien var ikke god nok Beskrivelsen af problemet der skal løses af computeren Teknologien var ikke ok fordi der var store problemer forbundet med at anvende radiorør som brugte enorme mængder af strøm og producerede megen varme, og som gik i stykker i tide og utide. Dette betød tab af data indtil transistoren erstattede radiorør. Programmerne blev indlæst ved hjælp af håndkraft som krævede indtastning af mange tusinde nuller og et taller! En fejlindtastning betød start forfra! Assembler sproget blev udviklet for at undgå dette. Program instruktionerne blev skrevet som enkelt instruktioner som senere blev oversat til maskininstruktioner vha assembler. Abstraktionsniveauet blev yderligere forbedret da højere level programmeringssprog blev udviklet. Man skrev simpelt hen instruktioner i programmeringssproget som senere blev compileret til maskininstruktioner (binære) af compilere. Opgave 7: Skriv og kør et lille program i programmeringssproget Java som adderer to heltal sammen og udskriver resultatet på skærmen. 13