miniatyr|IBM 2250 Mod 2 miniatyr|En LINC-8 computer utstilt på Uppsala universitet, Uppsala, Sverige. En datamaskin er en digital elektronisk maskin som kan programmerers til å utføre sekvenser av aritmetiske og logiske operasjoner. Tidlige datamaskiner fylte hele rom og måtte håndteres av eksperter, men i dag er datamaskiner blitt allemannseie. Eksempler på datamaskiner er PC-er, mobiltelefoner, og minibanker.
En datamaskin henter fram én og én instruksjon fra et lager, utfører instruksjonen og lagrer resultatet i et minne. Hver instruksjon er svært enkel, og det kreves ofte mange instruksjoner for å utføre komplekse operasjoner. Samlingen med instruksjoner kalles et program. Instruksjonene et menneske skriver når det programmerer en datamaskin kalles kildekode. Kildekode er leselig for mennesker, men må oversettes til maskinkode for å bli instruksjoner datamaskinen forstår. Denne prosessen kalles enten kompilering eller tolking, avhengig av om det gjøres på forhånd eller mens programmet kjører.
Det engelske ordet for datamaskin, computer, ble frem til oppfinnelsen av datamaskinen brukt om personer, vanligvis kvinner, som foretok matematiske utregninger, enten med kalkulator eller penn og papir, og som ble erstattet av datamaskinen da den gjorde sitt inntog.David Bodanis: Electric universe (s. 151), forlaget Little Brown, London 2005,
Funksjonsmåte miniatyr|Dagens personlige computere er blitt lette, tynne og transportable, og således en integrert del av mange menneskers liv. Tidlige datamaskiner hadde faste programmer. Noen veldig enkle datamaskiner er fremdeles bygget opp slik, som eksempel kan nevnes enkle kalkulatorer. Disse kan gjøre de vanligste regneoperasjonene og lagre noen tall, men kan ikke omprogrammeres. Omprogrammering av slike maskiner er en lang prosess som også krever manuelle inngrep i maskinvaren. Da den programmerbare datamaskinen kom på markedet, revolusjonerte den kostnadsnivået. Man behøvde ikke lenger spesialbygget maskinvare for hvert program man ville kjøre. Instruksjonene til maskinen var lagret i hukommelsen på lik linje med dataene.
Andre måtte få lastet hele operativsystemet inn i minnet fra tape for deretter å lese inn programmet og ev. data fra en kortleser – hver gang et program skulle kjøres. Den tids operativsystemer var meget enkle. EXEC CUR, TR F, IN F, TRI F, TOC er ett eksempel.
Von Neumann-arkitektur er den vanligste oppbyggingen av programmerbare datamaskiner.
Brukergrupper miniatyr|Tidligere krevde det egne spesialiserte operatører, i dag kan alle bruke en PC. Det finnes mange kategorier brukere av mikromaskiner, og etter hvert som tiden går er tilbudet av forskjellige programtyper betydelig. Typisk finnes spesielle programmer for områder som: Teknisk konstruksjon: Beregninger, tegning og modellering Grafikk: Produksjon av grafikk, trykksaker, behandling av bilder og relatert arbeid Media: Produksjon av film og musikk Kontor: Regnskap, databaser, regning, tekstbehandling og presentasjoner Kommunikasjon: Nettlesere, lyd og levende bilder Server: Levering av innhold til andre datamaskiner
De tre dominerende operativsystemene Windows, MacOS og GNU/Linux har dels overlappende muligheter og dels sine spesielle fortrinn. Integrering mellom systemene reduserer kompatibilitetsforskjeller som tidligere har vært som vegger mellom disse systemene.
Teknikk miniatyr|200px|Datapoint 2000 fra 1970 kan med en viss rett kalles den første «personlige datamaskinen» (PC). miniatyr|200px|IBMs første PC i 1981 skapte et massemarked og uttrykket «IBM-kompatibel» datamaskin. En datamaskin består av noen hoveddeler som en datamaskinbruker bør kjenne til. Den er en maskin som fungerer sammen med tilkoblet utstyr som monitor (dataskjerm), tastatur, diskettstasjon (nå CD-stasjon) og skriver. Tilkoblet utstyr kalles periferutstyr. For å utføre brukerens arbeid må den ha ett eller flere dataprogrammer installert. Dette er de primære funksjonene som etter hvert er supplert med nye muligheter som mus (som var standard opprinnelig til Apple Finder), scannere og internett.
Hoveddelene i datamaskinen (maskinvare, engelsk: hardware) er en eller flere prosessorer og hukommelse (ROM, RAM og HD) i tillegg til at informasjonen overføres i et maskinnettverk internt og eksternt til maskinutstyret.
Apple brukte opprinnelig Motorola-prosessorer i sine maskiner, og startskuddet ved introduksjon av Macintosh 128 rundt 1983 var basert på en Motorola-prosessor 68000. Denne maskinen hadde ikke harddisk (HD) og både brukerprogram og dokumenter måtte plasseres på en diskett (eller to) i maskinens system. De fleste andre produsenter av mikromaskiner baserte systemet på kombinasjonen MS-DOS og en Intel prosessor, i tidlig fase en Intel 8086.
I Apples maskiner var det et fast minne (ROM: Read only memory) som er en fast uforanderlig installert hukommelse. Denne inneholdt maskinens operativsystem og gjorde maskinen immun mot inkompetent bruk og sabotasje. Maskinens elektriske minne (RAM: random-access memory oversatt til norsk: tilfeldig adgangs hukommelse, som opprinnelig var 128 kB på disse maskinene) ga som på alle maskiner ellers et foranderlig minne som inneholder det maskinen på ethvert tidspunkt arbeider med. Dette er det vanlig å sikre (dokumentinformasjon) med kopiering til harddisk med korte intervaller (eks. 10 min.) for å eliminere tap av siste dokumentversjon under arbeid. MS-DOS-maskinene arbeidet med operativsystem og brukerprogrammer som var lagret på maskinens HD (harddisk).
Tidlige versjoner av mikromaskinene hadde ikke harddisk, og både programmer og dokumenter (brukerinformasjon, datafiler) ble lagret på eksterne media, typisk floppydisker eller tape (magnetisk bånd). Floppydisker ble etter hvert erstattet av mindre disketter og så på et senere tidspunkt av CD-plater. Diskettene var magnetiske lagringsmedia som kunne tilføres nye data, overskrives og brukes på ny, mens de nye CD-platene bare kan brennes en gang, unntatt for CD-RW, som kan. Harddisker som etter kort tid (allerede rundt 1985) ble vanlige som et internt datalager i mikromaskiner mottar data fra maskinens RAM eller diskettstasjon (CD-stasjon) under bruk.
Maskinens arbeidskapasitet bestemmes av disse komponentenes ytelser. Parallelt med utviklingen i kapasitet på mikromaskiner utvikles også dataprogrammer med avanserte funksjoner for å gjøre bruk av kapasiteten og effektivisere arbeidet. Denne utviklingen har vært betydelig siden maskiner med 128 eller 256 kB RAM ble solgt rundt 1985 frem til året 2009 når tilsvarende maskiner yter 256 MB RAM (internhukommelse) eller mer. Også prosessorer og harddisker har hatt en motsvarende utvikling i kapasitet og ytelse.
Moderne programmerbare datamaskiner miniatyr|På baksiden av PC er det tilkoblingsmuligheter til ekstra utstyr som utvider PC-ens virkeområder, som eksempelvis skriver, ekstra harddisk, skanner o.l. En moderne datamaskin består i hovedsak av tre hoveddeler: en prosessor (CPU), hukommelse (minne) og permanent lager (Harddisk, SSD, diskett, CD osv). Dessuten finnes det som regel diverse ytre enheter, slik som skjerm, tastatur, mus, skriver og andre inn/ut-enheter.
Prosessoren utfører instruksjoner som hentes fra hukommelsen. Hukommelsen er oppdelt i celler med fast størrelse. Slike celler kalles gjerne maskinord. Lengden av et maskinord måles i antall bit, som er den minste måleenhet for informasjon. Et bit kan enten være på eller av (dvs. ha verdien 0 eller 1). Et maskinord består ofte av et helt antall byte, som består av 8 bit.
Maskinordene har hver sin adresse i hukommelsen, dvs. de er nummerert fra null og oppover. Et maskinord inneholder data som kan fortolkes på ulike måter. Det kan alltid fortolkes som et heltall. Det kan også fortolkes som en instruksjon til prosessoren (eller en del av en slik instruksjon). En annen fortolkningsmulighet er bokstaver eller andre tegn. Alle data i hukommelsen forsvinner når maskinen slås av. Det permanente lageret brukes for å ta vare på informasjon over tid.
Prosessoren styres ved hjelp av maskinprogrammer. Et maskinprogram (eller binærprogram) er en samling instruksjoner som legges inn i hukommelsen. Prosessoren henter inn og utfører en og en instruksjon fra binærprogrammet. En slik instruksjon kan for eksempel gå ut på å hente to tall fra angitte adresser i hukommelsen, addere tallene og til slutt legge resultatet tilbake på en tredje adresse i hukommelsen. Etter at en instruksjon er utført vil Prosessoren normalt hente neste instruksjon fra binærprogrammet og utføre denne. Denne syklusen kan brytes ved hjelp av såkalte hoppinstruksjoner. En hoppinstruksjon vil gi prosessoren beskjed om at neste instruksjon skal hentes fra et annet sted i hukommelsen. På denne måten vil deler av et binærprogram kunne utføres flere ganger ved at prosessoren hopper tilbake i programmet. Hoppinstruksjoner kan være ubetingede og betingede. Betingede hoppinstruksjoner vil bare resultere i et hopp dersom en bestemt betingelse er oppfylt. Betingede hoppinstruksjoner gjør det mulig å lage kompliserte programmer der ulike deler av programmene aktiviseres etter hvert som oppgavene fullføres.
Hastigheten på prosessoren reguleres av en klokke, som sender ut en elektronisk puls i faste intervaller. En slik puls starter en ny runde med utførelse av en instruksjon som ligger klar i prosessoren. Hastigheten på en slik klokke måles i hertz (antall pr. sekund). De fleste av dagens prosessorer (i 2008) kjøres på en hastighet i størrelsesorden mellom 2-3 000 000 000 hertz = 2-3000 MHz = 2–3 GHz.
I praksis finnes det mange binærprogrammer i hukommelsen samtidig. Mange av dem utgjør en del av operativsystemet som styrer inn/ut-enheter osv. Andre programmer er nytteprogrammer som er startet av en bruker. Særlig programmer knyttet til operativsystemet har behov for å kunne utføres i korte aktive faser, for deretter å gå inn i en dvaletilstand i påvente av at bestemte begivenheter inntreffer. Det finnes derfor mekanismer i en datamaskin som tillater at et maskinprogram plutselig avbrytes, slik at et annet program (med viktige, presserende oppgaver) kan overta. Når det viktige programmet har gjort sitt, vil det opprinnelige programmet fortsette der det slapp, uten at dette får konsekvenser for den oppgaven programmet utfører (annet enn en liten tidsforsinkelse). Begivenheter som fører til et slikt «avbrudd», er for eksempel et tastetrykk. Et tastetrykk fører til at en kode for hvilken tast som ble tastet, sendes til prosessoren, sammen med et signal som angir at et tastetrykk har funnet sted. Når prosessoren mottar et slikt avbruddssignal, vil den avbryte sin normale arbeidsmåte. Prosessorens tilstand (blant annet adressen til den neste instruksjonen den skal utføre) tas vare på i hukommelsen, og et annet maskinprogram (som behandler tastetrykket) aktiviseres.
Historie Tidlig historie miniatyr|Charles Babbage
Selv om diverse hjelpemidler for å utføre beregninger ble konstruert langt tilbake i historien, er det først etter 1940 at utviklingen av moderne elektroniske datamaskiner har funnet sted. Et tidlig forsøk på å utvikle noe som ligner på moderne datamaskiner fant sted i 1835, da Charles Babbage beskrev sin analytiske maskin. Dette var en mekanisk, dampdrevet innretning som brukte hullkort som innlesningsmedium. Beskrivelsen av denne maskinen foregrep mange idéer som moderne databehandling fortsatt bygger på. Blant annet kunne maskinen programmeres, og Ada Byron Lovelace innså at den i prinsippet ville bli i stand til å utføre alle beregningsoppgaver som en moderne datamaskin kan utføre (men det ville rimeligvis tatt tid). Maskinen kom imidlertid aldri lenger enn til tegnebrettet i hans egen tid – først i 2002 ble det konstruert en maskin i London etter Babbages tegninger. Maskinen fungerte slik den skulle.