Hvordan en datamaskin fungerer

Bilde av Alexandre Debiève fra Unsplash

Bilde av Alexandre Debiève fra Unsplash

En datamaskin er sentrert rundt en sentral prosesserings enhent (CPU), denne er skreddersydd for å gjøre noe med/prosessere data. Denne prosessoren må mates med data som den skal prosessere, og den må plassere data som den har prosessert ett sted. Stedet som all dataen lagres heter minne. Vi skiller mellom minne som skal lagres over lang tid, og arbeidsminne. Langtidsminnet lagres på en lagringsenhet som kan holde på data selv om datamaskinen ikke får strøm. Arbeidsminnet slettes hvis datamaskinen skrus av. Kort forkart kan vi si at minne som skal brukes ofte, må være så raskt som mulig, og minne som ikke brukes så ofte kan være tregere.

Prosessoren

Hjertet i datamaskinen

Prosessoren har som oppgave å behandle data. Hvordan datane behandles styres av instrukser som blir gitt til prosessoren. En prosessor kan kun gjøre som den får beskjed om å gjøre, så for at en prosessor skal gjøre noe som helst må en programmerer lage en liste med instrukser til proessoren. Denne listen med instrukser heter ett program.

En prosessor kan bare gjøre en ting om gangen, derfor er det for en enkelt prosessor umulig å multi-taske. En populær metode for å få brukeren av datamaskinen til å oppleve at datamaskinen multi-tasker heter round-robin. Round-robin går ut på at man gir hver prosess ett fast antall CPU sykluser eller CPU-tid. Når tiden er utgått lagres statusen til prosessen til minne, før neste prosess får sine antall CPU sykluser. Når alle prosessene har fått sin andel CPU tid, starter man på nytt med den første prosessen og forsetter der den siste slapp. Siden prosessorer er så raske vil man i realiteten ikke merke at prosessoren hopper fra prosess til prosess. Men heller oppleve illusjonen av multi-tasking.

Hvis en CPU har flere prosessor kjerner eller støtter hyper-threading vil det si at prosessoren faktisk kan gjøre to eller flere ting på en gang. Da er det en viktig oppgave for operativsystemet å fordele arbeidet til prosessoren på de forskjellige CPU kjernene.

Minne

Kortidsminnet til datamaskinen

Siden en prosessor kan utføre mange instrukser i sekundet lastes programmet inn i minnet før programmet blir kjørt av prosessoren. Det er flere nivå av minne. Det er minne som er inne i samme brikken som prosessoren, minne som er på egne minnebrikker som festes på hovedkortet, og langtidsminne hvor data lagres over lengre tid selv når datamaskinen ikke får strøm.

Data som skal brukes, eller prosesseres av prosessoren legges i ett type minne som er laget av samme materiale og er like raskt som selve prosessoren. Dette minnet kalles for cache minne, og er bare noen få megabyte stort. Moderne CPU'er har flere nivåer med cache minne, hvor hvert lag med minne er litt større, og tilsvarende tregere. På moderne CPU'brukker er det vanlig med to til fire cache minner. Disse har ofte navn som L1 for det minnet som er minst, raskest og nærmest prosessoren, og L4 for det minnet som er størst, tregest og lengst ifra prosessoren. L1 cache er ofte under 1MB, og L4 er ofte under 10MB.

Det minnet som ikke skal brukes umiddelbart legges i ett litt større, men betydelig tregere minne som ligger utenfor CPU-brikken. Disse brikkene kalles RAM-brikker (Random Accessed Memory). Data fra RAM hentes og plasseres i cache minnet til prosessoren rett før det skal prosesseres. Minnet som ligger i RAM legges på såkaldte sider (pages), som prosessoren raskt kan få tilgang til når det trenger det. Rekkefølgen og nøyaktig plassering av data på RAM-brikkene har ingen betydning for prosessoren, så lenge den vet hvor det skal ligge og det kan leses eller skrives på når det er behov. Det motsatte av RAM er gamle hullbånd eller magnetbånd. Hvor data ikke ble lagret og kunne leses når som helst men måtte skrives eller leses i rekkefølge. Denne begrensningen gjorde at gamle datamaskiner ikke kunne kjører flere programmer samtidig av prosessoren.

RAM er langt ifra like rask som cache minne, men er til gjengleld ofte flere GB stort, og fortsatt så raskt at det går greit å laste data mellom det og CPU cache. Når ett program er ferdig, trenger vi ikke å ha det liggende i minnet lengere. Programmer og data som ikke skal jobbes med, men som vi ønsker å ha lagret slik at det er tilgjengelig for senere bruk lagres på masselagrings enheter som HDD og SSD, eller flyttbare lagringsenheter som DVD, CD, Minnpenner, minnekort eller andre eksterne lagringenheter. Når det er behov for data fra masselagringsenhetene, kopieres det over til minnet, hvor det er klart for prosessering av prossoren.

Moderne operativsystemer har noe som heter virtuelt minne. Det vil si at hver prosess blir tildelt sine fysiske minne adresser som kan være hulter i bulter fysisk, men for prosessen er det en ryddig rekkefølge med virtuelle adresser. Dette gjør at den som skriver programmet ikke trenger å tenke på noe annet enn de virtuelle adressene. Hvis to eller flere prosesser skal bruke samme data i minnet, peker deler av det virtuelle minnet til prosessene til det samme fysiske minnet, uten at prosessene trenger å vite at andre prosesser også bruke det samme minnet. Dette gjør at man kan mere effektivt utnytte det fysiske minnet ved å dele noe av det mellom prosessene, samtidig som at programmereren ikke trenger å ta hensyn til andre prosesser. En annen fordel med virtuellt minne er at hvis det av en eller annen grunn ikke er ledig plass i RAM, kan såkalt SWAP-minne på masselagringsenheten brukes. Siden en HDD eller SSD er enormt mye tregere enn RAM, vil man merke en dramatisk reduksjon av ytelsen til datamaskinen, men man kan da ha muligheten til å stoppe prosesser som ikke trenger å kjøre uten at datamaskinen kræsjer. Før det fantes SWAP minne ville datamaskinen krasje hvis RAM ble overfyllt.

Størrelser og hastigheter

Nyttig informasjon om hva størrelser og hastigheter betyr for ytelsen på datamaskinen

Hastigheten og antall CPU-kjerner på CPU-brikken avgjør hvor mange instrukser i sekundet en prosessor kan utføre. Moderne operativsystemer er laget for å fordele arbeidet på CPU kjerner. Generelt kan en prosessor med fire kjerner utføre dobbelt så mange instrukser som en prosessor med to kjerner. Størrelsen på Cache minnet avgjør hvor ofte prosessoren tvinges til å flytte data ut av cache minnet og ut til RAM. Derfor kan cache minne påvirke hastigheten til en datamaskinen en del, siden den ikke må vente like mange ganger på at data skal lastes inn til cache minne før det kan prosesseres.

Størrelsen på RAM-brikkene avgjør hvor mye data som kan ligge i minnet uten av det må skrives til masselagringsenheten på grunn av plassmangel. Hastigheten på RAM-brikkene avgjør hvor raskt det går å skrive data til, og lese fra RAM-brikken til cache minnet til prosessoren. Minimums størrelsen som kreves av en datamaskin for å kunne fungere bra øker stadig. Så det er viktig å holde ett øye med hvor mye minne som brukes, og lukke programmer som ikke trengs for å holde ytelsen på maskinen oppe.