Internminne og Cache. RAM = Random Access Memory

Like dokumenter
Singletasking OS. Device minne Skjerm minne. Brukerprogram. Brukerdata/heap. Stack. Basis for flerprosess-systemer.

P1 P2 P3 P1 P2 P3 P1 P2. OS gjør Contex Switch fra P1 til P2

Tildeling av minne til prosesser

Tildeling av minne til prosesser

Innhold. Virtuelt minne. Paging i mer detalj. Felles rammeverk for hukommelseshierarki Hukommelseshierarki-2 1

Dagens temaer. Kort repetisjon. Mer om cache (1) Mer om cache (2) Read hit. Read miss. Write hit. Hurtig minne. Cache

Internminnet. Håkon Tolsby Håkon Tolsby

ytelsen til hukommelseshierarkier

dynamiske data dynamiske data statiske data program dynamiske data statiske data reservert program dynamiske data statiske data reservert program

Tildeling av minne til prosesser

Internminnet. Håkon Tolsby Håkon Tolsby

Litt om Javas class-filer og byte-kode

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Kapittel 7, Minne RAM DIMM, SIMM ROM, PROM, EPROM, EEPROM FLASH DIM SUM. Cache Virtuelt minne

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse. INF 5110, 10/5-2011, Stein Krogdahl

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse

Brukerprogram OS hardware

Oppgave 1 - Linux kommandolinje (%)

Hukommelseshierarki. 16/3 cache /3 virtuell hukommelse in 147, våren 1999 hukommelseshierarki 1

Del 2. Bak skallet. Avsette minne til et spesifikt OS Teste harddisk under oppstart Sette opp system logger

Minnehåndtering i operativsystemer

Innhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU)

Håndtering av minne i et OS

Minnehåndtering i operativsystemer

Into da BIOS<3. Bak Skallet

Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode)

Operativsystemer og grensesnitt

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

En harddisk består av et lite antall plater av et magnetisk materiale.

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen

INF2270. Minnehierarki

Datamaskinens oppbygning

Vi anbefaler at du setter deg litt inn i maskinen på forhånd. Det er en DELL Optiplex 620.

Oppgave 1 - Java og prosesser (20%)

Eksamensinformasjon. Linux kommandolinje. Linux kommandolinje. Eksamensinformasjon. Fakultet: Teknologi, kunst og design. Tid: 3 t.

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO

Samtidige prosesser. Prosessor modus. Hvordan kan OS effektivt kontrollere brukerprosesser? Hvordan kan OS. kontrollere brukerprosesser?

Dagens temaer. Virtuell hukommelse. Sidetabell. Virtuell hukommelse (forts.)

Dagens temaer. Virtuell hukommelse (kapittel 9.9 i læreboken) Pentium-arkitekturen i mer detalj INF 1070

Del 1 Setup - BIOS Oppgaver: 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en.

kan adressere et større område som RAM enn det som faktisk er tilgjengelig. Siden data kan plasseres i RAM og/eller på harddisken brukes begrepet

Eksamen DAT 103. Oppgave 2. Kandidatnr.: 145 1) B 2) B 3) A 4) A 5) D 6) C 7) B 8) A 9) A 10) D

Prosesstabeller (PCB - Prosess Control Block) Se på PD: kommandoene ps og top Bakgrunnsprosesser Opprettelse av prosesser:

Forelesning Hurtigbuffer Kap 4.5

Dagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM)

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

Tonje Thøgersen, Daniel Svensen Sundell, Henrik Smedstuen

Clock speed 3.20GHz Bus Speed 800MHz L2 Cache 4MB 2 Cores Ikke Hyperthreading 64 BIT

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

Oppsummering av digitalteknikkdelen

Threads Threads (tråder) threads vs prosesser threads vs prosesser Definisjoner av

Innhold. Oversikt over hukommelseshierakiet. Ulike typer minne. Innledning til cache. Konstruksjon av cache Hukommelseshierarki-1 1

hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord.

TDT4258 Eksamen vår 2013

Hvorfor lære om maskinvare*?

Runtime-omgivelser Kap 7 - I

Operativsystemer og nettverk Løsningsforslag til eksamen Oppgave 1. a) Linux-kommando: java Beregn & b) Shellprogram:

Dagens tema. Mer om cache-hukommelse Kapittel 6.5 i Computer Organisation and Architecture ) RAM. Typer, bruksområder og oppbygging 2008 ROM

Nybegynnerkurs i C. Øyvind Grønnesby. 14. oktober Introduksjon Typer Operatorer Kontrollstrukturer Pekere Makroer Lenker

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

Dagems temaer INF ! Fra kapittel 4 i Computer Organisation and Architecture. ! Kort om hurtigminne (RAM)

Runtimesystemer Kap 7 - I

Sikkerhet: Virus Sikkerhet i operativsystemet Maskinstøtte for sikkerhet Trojanske hester Ormer. IN 147 Program og maskinvare.

Generelt om operativsystemer

INF2270. Datamaskin Arkitektur

Filsystemet fra innsiden

Oversikt. Historie Struktur Moderne UNIX systemer Moderne UNIX kernel struktur 1 UNIX. 2 Linux. 3 Process. 4 Process models

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

Debugging. Tore Berg Hansen, TISIP

Eksamensinformasjon. Prosesser. Prosesser. Eksamensoppgave. Operativsystemer (DATS/ITPE2500) Bokmål 06. juni 2017 kl

LabOppgave. 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en.

Del1: Setup: BIOS. 2. Hvor mye Internminne har den? 3GB DDR2

Oving 2. Oppgave 1. #include <stdio.h> int main(int argc, char **argv) { char *navn = argv[1]; printf ("Navnet ditt er %s\n", navn); } Oppgave 2

Minnehåndtering. Lars Vidar Magnusson. October 4, Lars Vidar Magnusson () Forelesning i Operativsystemer October 4, / 20

Dagens temaer. Mer om cache-hukommelse (kapittel 6.5 i Computer Organisation and Architecture ) RAM ROM. Hukommelsesbusser

2. Hvor mye Internminne har den? Svar: 2GB

Runtimesystemer Kap 7 - I

Laboppgave. Sondre Gulichsen, Li Lisan Linder. 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en.

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

Kodegenerering del 3: Tilleggsnotat fra AHU Samt litt om class-filer og byte-kode INF5110 V2007. Stein Krogdahl, Ifi UiO

Oppgave 8.1 fra COD2e

Lars Vidar Magnusson. October 11, Lars Vidar Magnusson () Forelesning i Operativsystemer October 11, / 28

Kap. 8 del 1 kodegenerering INF5110 Vår2007

Setup programmet brukes til å endre konfigurasjonen av BIOS og til å vise resultatene fra

Forelesning 9. Registre, tellere og minne

Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

En harddisk består av et lite antall plater av et magnetisk materiale.

HØGSKOLEN I SØR-TRØNDELAG

Dagens tema C, adresser og pekere

Ark 3 av 26. printf("i adresse %08x ligger b med verdien %d.\n", &b, b); printf("i adresse %08x ligger a med verdien %d.

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

1 Forelesning 11/1-12(2 timer). Introduksjon til operativsystemer Hva er et operativsystem (OS)?... 7

INF2270. Datamaskin Arkitektur

bruksområder og oppbygging om cache-hukommelse (kapittel 6.5 i Computer Organisation Dagens temaer and Architecture ) ROM RAM

Programmeringsspråket C Del 3. Hans Petter Taugbøl Kragset

Datamaskinens oppbygning og virkemåte

Transkript:

Minne og og frames eksempel ytelse og Cache algoritmer RAM = Random Access Memory og Cache CPU-registere og cache er laget av SRAM (Static RAM) SRAM består av 6 transistorer, er meget hurtig og statisk (trenger ikke å oppfriskes) t er laget av DRAM (Dynamic RAM), består av en transistor og en kondensator, må oppfriskes 10 ganger pr sekund Synchronous DRAM (SDRAM), er DRAM hvor lesing og skriving er synkronisert med en ekstern klokke Nyeste: DDR4 (Double Data Rate) SDRAM (2133-4000 Mhz)

Minne og og frames eksempel ytelse og Cache algoritmer 500 GByte 4 8 GByte 2MByte 128Kbyte 512 byte < 1ns 1ns 2ns 2 10 ms (10 sekunder) Minne-pyramiden 8 10 ns (10 sekunder) Registere L1 Cache L2 Cache (RAM) Disk

Minne og og frames eksempel ytelse og Cache algoritmer Et kjørbart program ligger i utgangspunktet på harddisken, men må lastes inn i internminnet før det kan kjøres modul statisk system bibliotek kildekode maskinkode maskinkode kompilering Linking Relative adresser Loading OS maskinkode Dynamically Linked Library (DLL) Program 2 sin(x) sin(x)

Minne og og frames eksempel ytelse og Cache algoritmer Et C++ prosjekt kan ha metoder man ofte bruker i en egen library-fil som man kobler sammen med hovedprogrammet når man skal bruke det c++ -c calctoolscpp # Lager maskinkode calctoolso c++ -c randtoolscpp # Lager maskinkode randtoolso ar rcv libtoolsa calctoolso randtoolso # Lager lib-filen libtoolsa Senere kan dette biblioteket brukes i et prosjekt: c++ -c -I/Tools mainsimcpp # Lager maskinkode mainsimo c++ -c -I/Tools simulationcpp # Lager maskinkode simulationo c++ -c -I/Tools usercpp # Lager maskinkode usero c++ -o sim mainsimo simulationo usero -lm -L/Tools -ltools sim # Kjører programmet

Minne og og frames eksempel ytelse og Cache algoritmer C++ dynamic library Man kan også lage et dynamisk (shared) library med filendelse so c++ -fpic -c randtoolscpp c++ -fpic -c calctoolscpp c++ -shared -o libstoolsso randtoolso calctoolso c++ -o sim mainsimo simulationo usero -lm -L/sTools -lstools export LD_LIBRARY_PATH="/sTools" sim # Kjører programmet

Minne og og frames eksempel ytelse og Cache algoritmer RAM (Random Access Memory)/arbeidsminne er et stort array av bytes: 4294967295 4294967294 Adresser 3 2 1 0 00010110 11010100 11001101 01011100 11000101 00110111

Minne og og frames eksempel ytelse og Cache algoritmer Adressene må kunne lagres i registere For eksempel inneholder %rsp adressen til toppen av stack en : Alle mulige adresser (f eks IPv4 met 0000-255255255255) Adresserom for internminnet: 0 - Maks Antall bit man bruker bestemmer hvor stort met blir Registerstørrelse (i bit) antall adresser 16 2 16 = 64 K 32 4 G 48 256 T 64 2 10 19

Minne og og frames eksempel ytelse og Cache algoritmer Ikke plass til alle programmer i internminnet på en gang Hvert enkelt program får sitt eget virtuelle fra 0 til feks 4G (32 bit adresser) Prosessen tror den har tilgang til alt dette minnet I virkeligheten ligger noe i RAM og andre deler på harddisken Disse virtuelle eller logiske adressene brukes overalt hvor programmet refererer til seg selv I instruksjonen mov (1023), %al er 1023 den virtuelle adressen Når et programmet lastes inn i internminnet og kjøres vil det variere hvor i det fysiske minnet programmet legges

Minne og og frames eksempel ytelse og Cache algoritmer Minneadressering og Et programs virtuelle adressering til variabler, subrutiner, bibliotek, data og så videre må knyttes til fysiske adresser Kunne skjedd ved loading, men tidkrevende og tungvint I moderne OS gjøres dette dynamisk mens programmene kjører Muligjør at programmer og biblioteker kan flyttes til og fra harddisk og bare loades når det er behov for dem OS oversetter fysiske adresser til logiske/virtuelle? Altfor sakte og for mye belasting av CPU Må skje på brøkdelen av et nanosekund, ikke tid til en add-instruksjon Gjøres i hardware av egen enhet, (Memory Managment Unit)

Minne og og frames eksempel ytelse og Cache algoritmer (Memory Mangagement Unit) CPU Logisk adresse Fysisk adresse Databuss Minne/RAM Figure: oversetter logiske adresser fra CPU til fysiske RAM-adresser i realtime

Minne og og frames eksempel ytelse og Cache algoritmer Anta at de to programmene skal kjøre på en maskin Adressene i de kompilerte programmene må være logiske og ikke til en fastlagt adresse i minne oversetter til fysiske adresser i real-time Trenger å oppdatere -tabellene når programmene plasseres eller omplasseres i RAM

Minne og og frames eksempel ytelse og Cache algoritmer 0 1 24 32 49 0 1 28 36 40 Prog 1 load 32 671 exit Prog 2 load 36 712 exit Minne 0 1 100 101 124 132 149 150 178 186 190 load 32 671 exit load 36 712 exit

Minne og og frames eksempel ytelse og Cache algoritmer Eksempel på -tabell CPU utfører instruksjonen load 32 for Prog1 Den logiske adressen 32 sendes til som bruker sin tabell for Prog1-adresser til å oversette til fysisk adresser 132 trenger følgende tabell: Prog1 Prog2 0 100 0 150 24 124 28 178 32 132 36 186 40 140 40 190 Alt for minnekrevende å ha en linje i tabellen for hver adresse! Det logiske minnet deles derfor opp i pages I eksempelet, la en page ha 50 adresser Prog1 starter på adresse 100 og Prog2 startet på adresse 150

Minne og og frames eksempel ytelse og Cache algoritmer Deler inn en prosess sitt virtuelle minnerom inn i like store biter (pages/sider) OS kan da effektivt laste disse sidene inn og ut av minnet og samtidig holde oversikt over hvor hver side er i en page-tabell Fast sidestørrelser hindrer huller når sider lastes inn og ut; fragmentering flytting av deler av prosesser til og fra disk blir mulig Gir full kontroll for OS over prosessers minnebruk Mulliggjør å bruke diskplass til å utvide minnet, virtuelt minne

Minne og og frames eksempel ytelse og Cache algoritmer En page har en størrelse 2 n bytes, typisk er n = 12 eller 13 Page-størrelsen er dermed 4 eller 8 Kbytes 4Kbytes er vanlig for X86-prosessorer Context switch: tabellen for gammel prosess lagres i PCB Deler av tabellen til den nye prosessen lastes inn i Alt det ikke er plass til i lagres i RAM

Minne og og frames eksempel ytelse og Cache algoritmer Page 0 Page 1 Page 2 Page 3 Logisk minne 0 1 2 3 1 4 3 7 Page tabell (i ) og frames Frame nummer: 0 1 2 3 4 5 6 7 Page 0 Page 2 Page 1 Page 3 Fysisk minne

Minne og og frames eksempel ytelse og Cache algoritmer Å dele in det logiske minnet i pages gjør det mulig å dynamisk laste inn og ut deler av en prosess Dermed kan minnet til det samlede antall prosesser på en maskin være større enn det fysiske minnet Resten lagres page for page på harddisk på swap-området Det virtuelle minnet til en prosess kan da fysisk lagres både i RAM og på disk Det å laste pages til og fra swap-området på disken kalles paging

Minne og og frames eksempel ytelse og Cache algoritmer Prog1 Prog2 Page 0 Page 1 Page 2 Page 3 Page 4 Page 5 Page 6 minne eksempel Page 6 Page1 Page 5 Frame nummer: Page 2 0 Page 3 1 Page 0 2 Page 4 RAM Harddisk (swap området)

Minne og og frames eksempel ytelse og Cache algoritmer Swapping og trashing Tidligere var swapping eneste måte å bruke disk til virtuelt minne; da blir hele prosessen lastet ut på disk Med en disk med lesehastighet på 100MByte/s tar det 10 sekunder å swappe en prosess på 1 GByte Er det fysiske minnet altfor lite, vil OS bruke nesten all sin tid på å flytte sider til og fra disk; dette kalles trashing Husk: det kan ta flere hundere tusen ganger så lang tid å hente pages fra en disk som å aksessere RAM, så virtuelt minne kan på ingen måte fullt ut erstatte RAM

Minne og og frames eksempel ytelse og Cache algoritmer 64K virtuell og 32K fysisk minne Virtual address space 60K 64K 56K 60K 52K 56K 48K 52K 44K 48K 40K 44K 36K 40K 32K 36K 28K 32K 24K 28K 20K 24K 16K 20K 12K 16K 8K 12K 4K 8K 0K 4K X X X X 7 X 5 X X X 3 4 0 6 1 2 Virtual page Physical memory address 28K 32K 24K 28K 20K 24K 16K 20K 12K 16K 8K 12K 4K 8K 0K 4K Page frame Figure: Figure 3-9 i Tanenbaum Forholdet mellom virtuelle og fysiske adresser

Minne og og frames eksempel ytelse og Cache algoritmer Page table 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 000 000 000 000 111 000 101 000 000 000 011 100 000 110 001 010 0 0 0 0 1 0 1 0 0 0 1 1 1 1 1 1 110 Virtual page = 2 is used as an index into the page table Present/ absent bit 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 12-bit offset copied directly from input to output Outgoing physical address (24580) Incoming virtual address (8196) Figure: Figure 3-10 i Tanenbaum Slik oversetter virtuelle(logiske) adresser til fysiske

Minne og og frames eksempel ytelse og Cache algoritmer Endret Present/absent 0 1 1 rw Page frame nummer referenced rettigheter Page Frame nummer: Fysisk frame-nummer i RAM Present: Hvis 0 blir det en page-fault Endret: Hvis 1 er siden dirty og må skrives til disk om den fjernes Rettigheter: lese, skrive, kjøre Referenced: settes hvis brukt, brukes av paging-algoritmer

Minne og og frames eksempel ytelse og Cache algoritmer - Translation Lookaside Buffer En prosess som bruker 100Mbyte minne vil med 4Kbyte page størrelse bestå av omtrent 25000 sider 4GByte prosess gir en million sider i Ikke plass til å lagre adressen til alle disse sidene i Den fullstendige tabellen ligger selv i internminnet bruker en Translation Lookaside Buffer () som er hurtig cache minne Inneholder en liten del av page-tabellen, Ved oppslag på adresser til sider som ikke ligger i, hentes de fra RAM Kalles -miss eller soft-miss Tar vesentlig lenger tid enn om adressen er i

Minne og og frames eksempel ytelse og Cache algoritmer Typisk ytelse størrelse: 12-4096 linjer oppslagstid: 05-1 klokke-sykel ekstra tid ved -miss: 10-100 klokke-sykler -miss frekvens: 001-1%

Minne og og frames eksempel ytelse og Cache algoritmer og Cache Cache inneholder både data, instruksjoner og deler av page-tables i (Translation Lookaside Buffer) I L1 cache er ofte disse tre egne enheter L2 og L3-cache pleier å være en enhet L1 data CPU L1 instruksj L1 Mikroprosessor L2 Level 2 Cache Figure: Level 1 cache (L1) bestående av tre deler I AMD Athlon 64 er i tillegg delt i to deler, en for adresser til instruksjoner og en for adresser til data RAM

Minne og og frames eksempel ytelse og Cache algoritmer Et program kan be om at det settes av minnet til sine variabler før det starter Men et Java-program kan også be om at minne allokeres dynamisk: PCB = new process; denne plassen settes av i minnet først når programmet utfører det Programmet tildeles page for page med minne I C++ må man eksplisitt delete objekter som ikke er i bruk lenger for å frigjøre minne JVM utfører dette automatisk (garbage collection) Den delen av et programs minne som inneholder variabler og data og som dynamisk kan øke og minke i størrelse, kalles ofte heap

Minne og og frames eksempel ytelse og Cache algoritmer -algoritmer 1 Page-fault (En page mangler i minnet; ligger på swap på disk) 2 Ingen ledig frame i minnet 3 OS må velge hvilken page som skal legges på disk 4 Gjøres av paging-algoritme En page fault tar svært lang tid, siden den må hentes fra disk Men da kan andre prosesser kjøre i ventetiden

Minne og og frames eksempel ytelse og Cache algoritmer miss page-referanse er ikke i ; må hentes fra internminnet Også kaldt soft miss Hard miss = page fault En page mangler i minnet(og i ); må hentes fra disk Dirty page En side som har blitt endret slik at den må skrives til disk om den må ut av minnet working set Det sett av sider som en prosess har brukt nylig Segment En logisk del av et programs minne, data, programtekst, stack-segmenter buffer cache Del av minnet som brukes som filsystem-cache

Minne og og frames eksempel ytelse og Cache algoritmer Layout av en prosess sitt Statiske binære koden som prosessen kjører, text segmentet, text Heap: globale variabler og data som dynamisk generers lagres Stack: lokale variable, returverdier for funksjonskall MMAP, filer på disken lagret i RAM Kode (text) Stack MMAP Heap TASK_SIZE

Minne og og frames eksempel ytelse og Cache algoritmer rex:~/mem/ramsmp-350$ /ramsmp -b 1 RAMspeed/SMP (GENERIC) v350 by Rhett M Hollander and Paul V Bolotoff, 2002-09 8Gb per pass mode, 2 processes INTEGER & WRITING INTEGER & WRITING INTEGER & WRITING INTEGER & WRITING INTEGER & WRITING INTEGER & WRITING INTEGER & WRITING INTEGER & WRITING INTEGER & WRITING INTEGER & WRITING INTEGER & WRITING INTEGER & WRITING INTEGER & WRITING INTEGER & WRITING INTEGER & WRITING INTEGER & WRITING 1 Kb block: 1637646 MB/s 2 Kb block: 1750379 MB/s 4 Kb block: 1601884 MB/s 8 Kb block: 1719161 MB/s 16 Kb block: 1762932 MB/s 32 Kb block: 1723247 MB/s 64 Kb block: 1208730 MB/s 128 Kb block: 1089662 MB/s 256 Kb block: 1153274 MB/s 512 Kb block: 1166374 MB/s 1024 Kb block: 1272665 MB/s 2048 Kb block: 648125 MB/s 4096 Kb block: 241877 MB/s 8192 Kb block: 215239 MB/s 16384 Kb block: 214166 MB/s 32768 Kb block: 213781 MB/s Intel Core Duo 6600, 4MB cache

Minne og og frames eksempel ytelse og Cache algoritmer rex:~/www$ -m total used shared buffers cached Mem: 2011 1453 557 0 14 551 -/+ buffers/cache: 887 1123 Swap: 1937 683 1253

Minne og og frames eksempel ytelse og Cache algoritmer top top - 01:50:33 up 78 days, 11:02, 35 users, load average: 019, 051, 061 Tasks: 408 total, 1 running, 399 sleeping, 0 stopped, 8 zombie Cpu(s): 08%us, 07%sy, 00%ni, 985%id, 00%wa, 00%hi, 00%si, 00%st Mem: 2059344k total, 1501056k used, 558288k, 14572k buffers Swap: 1983988k total, 700372k used, 1283616k, 565164k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 23123 haugerud 20 0 2676 1428 932 R 0 01 0:0021 top 1 root 20 0 2932 1232 792 S 0 01 0:3041 init 2 root 20 0 0 0 0 S 0 00 0:0002 kthreadd 3 root RT 0 0 0 0 S 0 00 0:3207 migration/0 4 root 20 0 0 0 0 S 0 00 0:3521 ksoftirqd/0

Minne og og frames eksempel ytelse og Cache algoritmer #include <stdioh> int array[200000000]; main(int argc, char *argv[]){ int i,j; for(i = 0;i < 2000000;i++){ j = i*100; array[i] = i; } } Eksempel på tidsforskjell Endrer tidsbruken seg om man istedet gjør array[j] = i;?

Minne og og frames eksempel ytelse og Cache algoritmer #include <stdioh> int array[10000][10000]; main(int argc, char *argv[]){ int i,j; for(i = 0;i < 10000;i++){ for(j = 0;j < 10000;j++){ array[i][j] = 5; } } } Array-indeksering Endrer tidsbruken seg om man istedet gjør array[j][i] = 5;?