En oppsummering. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Eksamen. Programmeringsoppgaver Flervalgsoppgaver
|
|
- Sturla Holm
- 6 år siden
- Visninger:
Transkript
1 En oppsummering Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Eksamen Programmeringsoppgaver Flervalgsoppgaver
2 Pensum Pensum Læreboken Forelesningene De obligatoriske oppgavene Ukeoppgavene (Forelesningene, de obligatoriske oppgavene og ukeoppgavene demonstrerer hva vi legger mest vekt på.)
3 Hvorfor har dere tatt dette emnet? Hvorfor har dere lært dette? Ikke mange programmerer assemblerkode i dag, men noen gjør det ( INF3151/4151) noen må jobbe med kompilatorer som lager slik kode ( INF5110) kjennskap til slik kode er en forutsetning for å forstå hvordan datamaskinen er bygget opp og fungerer kjennskap til maskinkode gjør oss til bedre programmere i høynivåspråk Vi har lært mest om Intel x86-kode, men prinsippene er de samme for alle prosessorer i dag.
4 Hva er viktigst av alt dere har lært? Hovedtanke Glem aldri! Alt er bit! En byte med innholdet 195 = 0xC3 kan være Verdien 195 Verdien 61 En del av et 16-bits, 32-bits eller 64-bit heltall (med eller uten fortegns-bit) En del av et 32-bits eller 64-bits flyt-tall Tegnet à i kodingen ISO LATIN-1 Starten av et Unicode-tegn Instruksjonen ret En del av en fler-bytes instruksjon Brukdefinerte data
5 Når kode også er bit Selvmodifiserende kode Når programkode lagres som bit-mønstre, kan man da la programmet endre på seg selv? Funksjonen teller returnerer 1 første gang den kalles, 2 neste gang osv. #include <stdio.h> test-tellerink.c extern int teller (void); int main (void) { printf("teller() -> %d\n", teller()); printf("teller() -> %d\n", teller()); printf("teller() -> %d\n", teller()); } teller() -> 1 teller() -> 2 teller() -> 3
6 Når kode også er bit 1.globl teller 2.data teller: pushl %ebp E5 movl %esp,%ebp B movl $1,%eax addl $1,teller f 5D popl %ebp C3 ret Koden er plassert i.data for å kunne endres. På noen maskiner vil det kunne bli rot med data- og instruksjons-cache. Konklusjon Det er morsomt at det går an, men slik kode kan neppe kalles hverken lettlest eller trygg.
7 Hva når vi ikke har bit nok? Overflyt #include <stdio.h> int main (void) { signed char v = 100; v = v + v; printf("v = %d\n", v); return 0; } gir galt svar: v = = = = 56 Feilen skyldes overflyt. Hva kan man gjøre med slikt? Strutseteknikken Sjekke data før operasjonen Sjekke om operasjonen gikk bra
8 Hva når vi ikke har bit nok? Heltall uten fortegns-bit For addisjon og subtraksjon settes C-flagget ved overflyt. Ved multiplikasjon kommer svaret med dobbelt så mange bit. Da kan vi sjekke øverste 32 bit av svaret. Ved divisjon kan det bli et avbrudd!.globl ovfl ovfl: movl mill,%eax imull mill idivl ti ret.data mill:.long ti:.long 10 gir Floating point exception
9 Hva når vi ikke har bit nok? Heltall med fortegns-bit Ved addisjon kan man bruke O-flagget som settes ved overflyt. Nærmere bestemt settes det når 1 begge operandene har likt fortegns-bit og 2 resultatet har motsatt fortegns-bit. Hva med subtraksjon? Husk at a b beregnes oftest som a + ( b) Multiplikasjon og divisjon er som for tall uten fortegns-bit. Konklusjon Ved behov kan man bruke assemblerprogrammering til å sjekke på overflyt.
10 INF2270 skal ha digital eksamen Eksamen INF2270 vil ha digital eksamen i den nye «eksamensfabrikken» i Silurveien 2.
11 INF2270 skal ha digital eksamen Slik ser eksamenslokalet ut. Dere får ha med alt dere vil av trykt eller skrevet materiale og dessuten en lommekalkulator.
12 INF2270 skal ha digital eksamen Både 23-bussen og Kolsåsbanen går til Silurveien.
13 Hva er hensikten med oppgavene? Eksamen: Programmeringsoppgave Det vil bli en programmeringsoppgave: skriv en funksjon eller oversett en funksjon fra C til assemblerkode. Hvorfor gi slike oppgaver? Se om studenten har forstått assemblerprogrammering. La studenten velge hvordan han/hun vil løse en slik oppgave.
14 Noen små hint Hint Du kan programmere ganske fritt så lenge koden gjør det den skal. Det vesentlige er å overbevise sensor om at du kan dette. Det er viktigere at koden er lettlest enn at den er rask. Kommentarer er viktig der du gjør noe spesielt, men ikke der koden er «rett frem».
15 Eksamensoppgaven i 2016 Programmeringsoppgaven 2016 Dette er en funksjon som sjekker om en sekvens av byte (avsluttet med en 0-byte) inneholder lovlig UTF-8-kode; med andre ord, om den kun inneholder slike byte-sekvenser: 0xxxxxxx 110xxxxx 10xxxxxx 1110xxxx 10xxxxxx 10xxxxxx 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx Oversett funksjonen til x86 assemblerkode som kan kjøres på Ifis Linux-maskiner med kommandoen gcc -m32.
16 Eksamensoppgaven i 2016 int ok_utf8 (unsigned char a[]) { int i = 0, n_bytes, ix; while (1) { unsigned char b = a[i]; i++; if (b == 0) return 1; else if ((b & 0x80) == 0) n_bytes = 1; else if ((b & 0xE0) == 0xC0) n_bytes = 2; else if ((b & 0xF0) == 0xE0) n_bytes = 3; else if ((b & 0xF8) == 0xF0) n_bytes = 4; else return 0; } } for (ix = 2; ix <= n_bytes; ix++) { if((a[i] & 0xC0)!= 0x80) return 0; i++; }
17 Løsningen Løsningen.globl ok_utf8 # Name: ok_utf8 # Synopsis: Sjekker om en tekst inneholder lovlig UTF-8. # C-signatur: int ok_utf8 (unsigned char a[]) # Registre: %AL: Neste byte # %AH: Masket byte (til sjekking) # %ECX: Løkketeller # %EDX: Adresse til bytene (øker etter hvert) ok_utf8: # Standard pushl %ebp # funksjonsstart. movl %esp,%ebp # movl 8(%ebp),%edx # Initier byte-indeksen.
18 Løsningen # Hovedløkken # Tar UTF-8-tegnene etter tur. ok_l: movb (%edx),%al # Hent neste byte. incl %edx # (Øk indeks.) cmpb $0,%al # Hvis byte-en er 0, je ok_r1 # er vi ferdig. Resultat OK. movb %al,%ah # Masker andb $0x80,%ah # byte-en. cmpb $0,%ah # Hvis den er 0xxxxxxx, je ok_1_byte # er det 1 byte i UTF8-tegnet. movb %al,%ah # Masker andb $0xE0,%ah # byte-en. cmpb $0xC0,%ah # Hvis den er 110xxxxx, je ok_2_byte # er det 2 byte i UTF8-tegnet. movb %al,%ah # Masker andb $0xF0,%ah # byte-en. cmpb $0xE0,%ah # Hvis den er 1110xxxx, je ok_3_byte # er det 3 byte i UTF8-tegnet. movb %al,%ah # Masker andb $0xF8,%ah # byte-en. cmpb $0xF0,%ah # Hvis den er 11110xxx, je ok_4_byte # er det 4 byte i UTF8-tegnet. jmp ok_r0 # Alt annet er feil. Avslutt.
19 Løsningen ok_1_byte: movl $1,%ecx # Det er 1 byte i tegnet. jmp ok_chk # ok_2_byte: movl $2,%ecx # Det er 2 byte i tegnet. jmp ok_chk # ok_3_byte: movl $3,%ecx # Det er 3 byte i tegnet. jmp ok_chk # ok_4_byte: movl $4,%ecx # Det er 4 byte i tegnet. jmp ok_chk # # Indre løkke # Sjekker fortsettelses-byte-ene. ok_chk: cmpl $2,%ecx # Gå i løkke. jl ok_l # Når ferdig, gjenta hovedkøkken. movb (%edx),%ah # Hent neste byte andb $0xC0,%ah # og masker den. cmpb $0x80,%ah # Hvis den IKKE er 10xxxxxx, jne ok_r0 # har vi en feil. Avslutt. incl %edx # Øk byte-indeksen. decl %ecx # jmp ok_chk # Gjenta indre løkke. ok_r0: movl $0,%eax # Vi har funnet en feil: jmp ok_x # Returner 0. ok_r1: movl $1,%eax # Ingen feil funnet: returner 1. ok_x: popl %ebp # Standard ret # retur.
20 Hvorfor gi flervalgsoppgaver? Eksamen: Flervalgsoppgaver Her vil du få oppgitt små kodesnutter i C og assembler med spørsmål om hva som blir resultatet. Alle oppgavene vil ha fem svaralternativer og du må velge ett. Rett svar vil gi 4 poeng mens galt svar vil gi 1 poeng. (Intet svar gir 0 poeng.) Hvorfor gi slike oppgaver? Studenten skal vise forståelse for både C-kode og assemblerinstruksjoner. Studenten skal få slippe å skrive seg i hjel.
21 Et par små hint Hint Vær ekstremt nøye med å lese koden! Hensikten med oppgavene er ikke å «lure» studenten, men å sjekke detaljforståelse. Hint Bruk hjelpemidlene! Slå opp instruksjonene om du er i den minste tvil.
22 Flervalgsoppgavene extern int f1 (int a, int b); int main (void) { printf("test 1: 0x%x\n", f1(0x , 0x )); printf("test 1: 0x%x\n", f1(0x , 0x )); }.globl f1 f1: pushl %ebp movl %esp,%ebp movl addl jnc xorl f1_x: popl %ebp ret 8(%ebp),%eax 12(%ebp),%eax f1_x %eax,%eax 1 Test 1: 0x Test 1: 0xeca Test 1: 0x Test 1: 0x0 3 Test 1: 0x Test 1: 0x Test 1: 0xffffffff Test 1: 0x0 5 Noe annet enn alternativene over
23 Flervalgsoppgavene extern int f2 (int a[], int n); int data[] = { 100, 22, 17, -2, 0, 11 }; int main (void) { int len = sizeof(data)/sizeof(data[0]); printf("test 2: %d\n", f2(data,len)); }.globl f2 f2: pushl %ebp movl %esp,%ebp movl 8(%ebp),%edx movl (%edx),%eax movl 12(%ebp),%ecx subl $1,%ecx f2_l: addl $4,%edx subl (%edx),%eax loop f2_l popl %ebp 1 Test 2: 0 2 Test 2: 52 3 Test 2: Test 2: Noe annet enn alternativene over
24 Flervalgsoppgavene extern unsigned char *f3 (unsigned char *s); int main (void) { printf("test 3: \"%s\"\n", f3("x -> OK")); }.globl f3 f3: pushl %ebp movl %esp,%ebp movl 8(%ebp),%eax f3_l: movb (%eax),%dl incl %eax cmpb $0,%dl je f3_x cmpb $ 0,%dl jb f3_l cmpb $ 9,%dl ja f3_l f3_x: decl %eax popl %ebp ret 1 Test 3: "OK" 2 Test 3: "55.17" 3 Test 3: "55.17 OK" 4 Test 3: "x -> OK" 5 Noe annet enn alternativene over
25 Flervalgsoppgavene extern void f4 (unsigned char *s); int main (void) { unsigned char a[30]; strcpy(a, "abcdefghijklmnopqrstuvwxyz"); f4(a+10); printf("test 4: \"%s\"\n", a); }.globl f4 f4: pushl %ebp movl %esp,%ebp pushl %edi std movl 8(%ebp),%edi movb $ -,%al movl $5,%ecx rep stosb cld popl %edi popl %ebp ret 1 Test 4: "abcdefghijklmnopqrstuvwxyz" 2 Test 4: "abcdefghij-----pqrstuvwxyz" 3 Test 4: "abcdefghij-----klmnopqrstuvwxyz" 4 Test 4: "abcdefghijpqrstuvwxyz" 5 Noe annet enn alternativene over
26 Flervalgsoppgavene extern unsigned int f5 (unsigned int x); int main (void) { unsigned int res = f5(0xfed77ffe); printf("test 5: 0x%x\n", res); }.globl f5 f5: pushl %ebp movl %esp,%ebp movl andb andb andb andb popl ret $0xff,%eax 8(%ebp),%al 9(%ebp),%al 10(%ebp),%al 11(%ebp),%al %ebp 1 Test 5: 0x0 2 Test 5: 0x56 3 Test 5: 0xfe 4 Test 5: 0xff 5 Noe annet enn alternativene over
27 Flervalgsoppgavene extern float f6 (float x); int main (void) { float v = 3.14; float res = f6(v); printf("test 6: %f\n", res); }.globl f6 f6: pushl %ebp movl %esp,%ebp movl xorl movl flds popl ret.data tmp:.long 0 8(%ebp),%eax $0x ,%eax %eax,tmp tmp %ebp 1 Test 6: Test 6: Test 6: Test 6: Noe annet enn alternativene over
28 Den store dagen! Årets eksamen Eksamen er 2. juni 2017 klokken Møt opp en halv time før. Hjelpemidler Eksamen vil foregå på datamaskin som finnes i lokalet. Ta med studentidentifikasjon. Sjekk at UiO brukernavn og passord fungerer. Alle trykte og skrevne hjelpemidler er tillatt. Batteridrevet lommekalkulator er lov og kan være nyttig.
29 Siste gode råd Sjekk godkjenningslister Besøk //devilry.ifi.uio.no/ og sjekk godkjentlisten for kurset for å se din status. Ta kontakt med gruppelærer (eller meg) hvis du mener det er gjort feil. I siste instans: Møt opp på eksamensdagen og krev å få avlegge eksamen. Se på prøveeksamen Ta prøveeksamen for å bli kjent med programvaren: den er tilgjengelig til 19. mai. (Logg inn med vanlig UiO brukernavn og passord.)
30 Siste gode råd Problemer under eksamen? Det vil være teknisk hjelp tilgjengelig under eksamen. Faglærerne vil være til stede i eksamenslokalene ca kl Da er det anledning til å stille spørsmål om alt (men vi vil ikke svare på alt). Bruk tiden riktig Det er mye bedre å svare litt på alle spørsmålene enn perfekt på noen og intet på andre. Forslag: Bruk så mye av tiden som oppgaven teller (dvs bruk 25% av tiden på en oppgave som teller 25%).
Den siste dagen. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen
Den siste dagen Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen En oppsummering Oppsummering Pensum Læreboken til og med kapittel 7, kompendiet, forelesningene
DetaljerPensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering
Oppsummering Pensum Grovt sett er alt fra forelesningene og øvingsoppgavene pensum. Detaljert oversikt finnes på kurssidene. Hovedtanker fra kurset Litt om eksamen Hvorfor har dere lært dette? Ikke mange
DetaljerÅ løse eksamensoppgaver
Å løse eksamensoppgaver Programmeringsoppgaver Flervalgsoppgaver Prøveeksamen Eksamen Hva er hensikten med oppgavene? Programmeringsoppgaver Vil typisk være å skrive en funksjon eller oversette en funksjon
DetaljerEn oppsummering (og litt som står igjen)
En oppsummering (og litt som står igjen) Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Eksamen En oppsummering Oppsummering Pensum læreboken til og med kapittel 7 forelesningene de
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 14. juni 2012 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 10 sider. Vedlegg: Tillatte hjelpemidler: INF2270
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 13. juni 2013 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 9 sider. Vedlegg: Tillatte hjelpemidler: INF2270 Datamaskinarkitektur
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 14. juni 2011 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 12 sider. Vedlegg: Tillatte hjelpemidler: INF2270
DetaljerDebuggere En «debugger» er et meget nyttig feilsøkingsverktøy. Det kan analysere en program dump, Dagens tema INF1070 INF1070 INF1070 INF1070
Debuggere En «debugger» er et meget nyttig feilsøkingsverktøy. Det kan analysere en program dump, Dagens tema Feilsøking gdb vise innholdet av variable, vise hvilke funksjoner som er kalt, kjøre programmet
DetaljerDagens tema Programmering av x86 Flytting av data Endring av størrelse
Dagens tema Programmering av x86 Flytting av data Endring av størrelse Aritmeriske operasjoner Flagg Maskeoperasjoner Hopp Tester Stakken Rutinekall Kall og retur Frie og opptatte registre Dokumentasjon
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: Eksamensdag: 12. juni 2015 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 11 sider. Vedlegg: Tillatte hjelpemidler: INF2270
DetaljerDagens tema INF2270. Flyt tall (B&O H boken 2.2.3) Hvordan lagres de? Hvordan regner man med dem? Overflyt (B&O H boken )
Dagens tema Flyt tall (B&O H boken 2.2.3) Hvordan lagres de? Hvordan regner man med dem? Overflyt (B&O H boken 4.2.6.3) Bit fikling Selvmodifiserende kode Dag Langmyhr,Ifi,UiO: Forelesning 23. april 2006
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF2270 Datamaskinarkitektur Eksamensdag: 11. juni 2009 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 10 sider. Vedlegg: Ingen
DetaljerDet viktigste i en moderne datamaskin er hovedkortet («motherboard»):
Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Hovedkortet Grovt sett inneholder et hovedkort En prosessor Minne (for både program og data) Klokke Kontrollere for periferutstyr.
DetaljerDet viktigste i en moderne datamaskin er hovedkortet («motherboard»):
Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Data.data Stakk %EAX %ECX %EDX %EBP %ESP Prosessor Kode Minne.text Hovedkortet Grovt sett inneholder et hovedkort En prosessor
DetaljerDet viktigste i en moderne datamaskin er hovedkortet («motherboard»):
Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Data.data Stakk %EAX %ECX %EDX %EBP %ESP Prosessor Kode Minne.text Hovedkortet Grovt sett inneholder et hovedkort En prosessor
DetaljerLøsningsforslag til eksamen i INF2270
Løsningsforslag til eksamen i INF227 Oppgave 9 Omid Mirmotahari Oppgave 6 Dag Langmyhr. juni 24 Eksamen INF227 Sensorveiledning Oppgave 2 Kretsforenkling Hva er funksjonsuttrykket for Output gitt av A
DetaljerSeksjon 1. INF2270-V16 Forside. Eksamen INF2270. Dato 1. juni 2016 Tid Alle trykte og skrevne hjelpemidler, og en kalkulator, er tillatt.
Seksjon 1 INF2270-V16 Forside Eksamen INF2270 Dato 1. juni 2016 Tid 14.30-18.30 Alle trykte og skrevne hjelpemidler, og en kalkulator, er tillatt. Dette oppgavesettet består av 14 oppgaver som kan løses
DetaljerDagens tema. Minnestrukturen Grovt sett ser minnet for hver process slik ut: Flytting av data. Programmering av x86
Dagens tema Programmering av x86 Minnestrukturen Flytting av data Endring av størrelse Aritmeriske operasjoner Flagg Maskeoperasjoner Hopp Tester Stakken Minnestrukturen Grovt sett ser minnet for hver
DetaljerOppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):
Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Grovt sett inneholder det En prosessor Minne (for både program og data) Klokke Kontrollere for periferutstyr.
DetaljerIntro Rask kode x86-op Optimalisering Inline-kode Konklusjon
Dagens tema Dagens tema Raskere kode Når er det viktig? Hvordan måle eksekveringshastighet? Hvordan oppnår man raskere kode? Blanding av C og assemblerkode Er hastighet så viktig? Når er eksekveringshastighet
DetaljerProgrammering av x86. Minnestrukturen i en prosess Flytting av data. Skifting og rotasjoner Hopp. Stakken Rutinekall. Aritmeriske regneoperasjoner
Programmering av x86 Minnestrukturen i en prosess Flytting av data Endring av størrelse Aritmeriske regneoperasjoner Flagg Maskeoperasjoner Skifting og rotasjoner Hopp Tester Stakken Rutinekall Kall og
DetaljerDagens tema INF1070. Bit fikling. Makroer. Blanding av C og assemblerkode. Mer om Core War. Dag Langmyhr,Ifi,UiO: Forelesning 22. mai 2006 Ark 1 av 25
Dagens tema Bit fikling Makroer Blanding av C og assemblerkode Mer om Core War Dag Langmyhr,Ifi,UiO: Forelesning 22. mai 2006 Ark 1 av 25 Bit fikling Når alt er bit, gir det oss som programmerere nye muligheter.
DetaljerDagens tema. Raskere kode [REB&DRO H kap 5]
Dagens tema Dagens tema Raskere kode [REB&DRO H kap 5] Når er det viktig? Hvordan måle eksekveringshastighet? Hvordan oppnår man raskere kode? Blanding av C og assemblerkode Er hastighet så viktig? Når
DetaljerIntro Digital eksamen Rask kode x86-op Optimalisering Inline-kode Konklusjon
Dagens tema Dagens tema Digital eksamen Raskere kode [REB&DRO H kap 5] Når er det viktig? Hvordan måle eksekveringshastighet? Hvordan oppnår man raskere kode? Blanding av C og assemblerkode Hva skjer ved
DetaljerLøsningsforslag til eksamen i INF2270
Løsningsforslag til eksamen i INF2270 Omid Mirmotahari (oppgave 1 4) Dag Langmyhr (oppgave 5 6) 14. juni 2012 Eksamen inf2270 V12 - fasit 1) (5%) Forkort følgende uttrykk med karnaugh diagram zw xy 00
DetaljerDagens tema. Programmering av x86 INF2270. Minnestrukturen i en prosess. Flytting av data Endring av størrelse. Aritmeriske operasjoner Flagg
Dagens tema Programmering av x86 Minnestrukturen i en prosess Flytting av data Endring av størrelse Aritmeriske operasjoner Flagg Maskeoperasjoner Skifting og rotasjoner Hopp Tester Stakken Rutinekall
DetaljerDagens tema. Raskere kode [REB&DRO H kap 5]
Dagens tema Dagens tema Raskere kode [REB&DRO H kap 5] Når er det viktig? Hvordan måle eksekveringshastighet? Hvordan oppnår man raskere kode? Blanding av C og assemblerkode Dagens tema CPU-ene går ikke
DetaljerDagens tema. Er maskinen big endian? Denne funksjonen tester det: INF1070 INF1070 INF1070 INF1070
Dagens tema Bit fikling Makroer Blanding av C og assemblerkode Mer om Core War Dag Langmyhr,Ifi,UiO: Forelesning 22. mai 2006 Ark 1 av 25 Bit fikling Når alt er bit, gir det oss som programmerere nye muligheter.
DetaljerIntro Evaluering Rask kode x86-op Optimalisering Inline-kode
Dagens tema Dagens tema Studentevalueringen 20.4.2009 Raskere kode Når er det viktig? Hvordan måle eksekveringshastighet? Hvordan oppnår man det? Blanding av C og assemblerkode Studentevalueringen 20.4.2009
DetaljerLøsningsforslag til eksamen i INF2270
Løsningsforslag til eksamen i INF2270 Philipp Häfliger (oppgave 1, 2 og 3) Dag Langmyhr (oppgave 4 og 5) 10. juni 2010 1 1 Boolsk Algebra Det fins 5 forskjellige funksjoner blant disse Boolske uttrykene.
DetaljerDagens tema INF2270. Flyt-tall (B&O H-boken 2.4, 3.14) Hvordan lagres de? Hvordan regner man med dem? Bit-fikling (B&O H-boken 2.1.
Dagens tema Flyt-tall (B&O H-boken 2.4, 3.14) Hvordan lagres de? Hvordan regner man med dem? Bit-fikling (B&O H-boken 2.1.7) Pakking Instruksjoner for enkelt-bit Dag Langmyhr,Ifi,UiO: Forelesning 23. mars
DetaljerMinneområder Det er vanlig å dele opp minnet til en prosess i disse ulike områdene: Fast minne Store og små indianere «align» ing struct er
Dagens tema: Minnet Minneområder Det er vanlig å dele opp minnet til en prosess i disse ulike områdene: Fast minne Store og små indianere «align» ing struct er 0xfffffffc Variable Stakk Lister Noen nyttige
DetaljerProgrammering av x86 [REB&DRO H ]
Programmering av x86 [REB&DRO H 3.2 3.7] Minnestrukturen i en prosess Flytting av data Endring av størrelse Aritmeriske regneoperasjoner Flagg Maskeoperasjoner Skifting og rotasjoner Hopp Tester Stakken
DetaljerDagens tema INF1070. Makroer. Sanntidsprogrammering. Avbrudd. Bruker- og supermodus. Blanding av C og assemblerkode. Selvmodifiserende kode
Dagens tema Makroer Sanntidsprogrammering Avbrudd Bruker- og supermodus Blanding av C og assemblerkode Selvmodifiserende kode Dag Langmyhr,Ifi,UiO: Forelesning 2. mai 2005 Ark 1 av 20 Makroer Ofte gjentar
DetaljerDagens tema. Makroer Ofte gjentar man kodelinjer når man skriver assemblerkode. Da kan det lønne seg å definere en makro:
Dagens tema Makroer Sanntidsprogrammering Avbrudd Bruker- og supermodus Blanding av C og assemblerkode Selvmodifiserende kode Makroer Ofte gjentar man kodelinjer når man skriver assemblerkode. Da kan det
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 14. juni 2007 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 9 sider. Vedlegg: INF1070 og INF2270 Datamaskinarkitektur
DetaljerDagens tema: Maskinkode. Litt datamaskinhistorie Hva er maskin- og assemblerkode? x86-prosessoren Programkode og variabler
Dagens tema Dagens tema: Maskinkode Litt datamaskinhistorie Hva er maskin- og assemblerkode? x86-prosessoren Programkode og variabler Charles Babbage Datamaskinenes historie Menneskene har alltid prøvd
DetaljerHvordan en prosessor arbeider, del 1
Hvordan en prosessor arbeider, del 1 Læringsmål Kompilator, interpret og maskinkode CPU, registre Enkle instruksjoner: de fire regnearter Mer informasjon om temaet Internett Lokalnett (LAN) Mitt program
DetaljerForhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema
Forhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Charles Babbage Midt på 1800-tallet
DetaljerDatamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin?
Dagens tema Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin? Intel-prosessoren Enkel assemblerprogrammering Dag
DetaljerOversikt Kodegenerering Variabler Setninger Uttrykk While-setningen
Dagens tema Dagens tema: Kodegenerering Introduksjon Enkle variabler Uttrykk Tilordning Litt mer kompliserte setninger med betingelser (Alt om kodegenerering unntatt funksjoner.) Prosjektoversikt Del 0
DetaljerRutiner [REB&DRO H 3.7]
Dagens tema 1. Funksjonskall Stakken Lokale variabler 2. Minnet Fast minne Store og små indianere «align»-ing Noen nyttige instruksjoner 3. Feilsøking gdb ddd Vektorer Hva er adressen? Bit-operasjoner
DetaljerDagens tema. Representasjon av mantissen En desimalbrøk: 1 1, INF2270 INF2270 INF2270 INF2270
Dagens tema Flyt-tall (B&O H-boken 2.4, 3.4) Hvordan lagres de? Hvordan regner man med dem? Bit-fikling (B&O H-boken 2..7) Skifting (B&O H-boken 3.5.3 4) Pakking Instruksjoner for enkelt-bit Flyt-tall
DetaljerNotater: INF2270 Assembler
Notater: INF2270 Assembler Veronika Heimsbakk veronahe@student.matnat.uio.no 11. juni 2014 Innhold 1 Registere 2 2 Assembler-programmering 2 2.1 Instruksjoner........................... 3 2.2 Variabler..............................
DetaljerForhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema INF1070 INF1070 INF1070
Forhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer Dagens tema Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Charles Babbage Midt på 1800
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 15. juni 2006 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 7 sider. Vedlegg: INF1070 Datamaskinarkitektur Ingen
DetaljerOversikt Kodegenerering Variable Setninger Uttrykk While-setningen
Dagens tema Dagens tema: Kodegenerering Introduksjon Enkle variable Uttrykk Tilordning Litt mer kompliserte setninger med betingelser (Alt om kodegenerering unntatt funksjoner.) Prosjektoversikt Del 0
DetaljerDatamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin?
Dagens tema Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin? x86 prosessoren Enkel assemblerprogrammering Dag Langmyhr,Ifi,UiO:
DetaljerOversikt Kodegenerering Variable Setninger Uttrykk While-setningen
Dagens tema Dagens tema: Kodegenerering Introduksjon Enkle variable Uttrykk Tilordning Litt mer kompliserte setninger med betingelser (Alt om kodegenerering unntatt funksjoner.) Prosjektoversikt Del-0
DetaljerOversikt Kodegenerering Variable Setninger Uttrykk While-setningen Oppsummering
Dagens tema Dagens tema: Kodegenerering Introduksjon Enkle variable Uttrykk Tilordning Litt mer kompliserte setninger med betingelser (Alt om kodegenerering unntatt funksjoner og array-er.) Prosjektoversikt
DetaljerGenerell informasjon
Introduksjon Oppgave Tittel Oppgavetype Generell informasjon Dokument 1.1 Kompendiet Langsvar Arkitektur Oppgave Tittel Oppgavetype 2.1 Pipeline Flervalg (flere svar) 2.2 Boolsk Algebra Flervalg (flere
DetaljerOversikt Kodegenerering Variable Setninger Uttrykk While-setningen
Dagens tema Dagens tema: Kodegenerering Introduksjon Enkle variable Uttrykk Tilordning Litt mer kompliserte setninger med betingelser (Alt om kodegenerering unntatt funksjoner.) Prosjektoversikt Del-0
DetaljerDagens tema. Representasjon av mantissen En desimalbrøk: 1 1, INF1070 INF1070 INF1070 INF1070
Dagens tema Flyt tall Oppbygning IEEE 754 Programmering med flyt tall Selvmodifiserende kode Core War Flyt tall Tall med desimalkomma kan skrives på mange måter: 8 388 708,0 8,388708 0 6 8,39 0 6 De to
DetaljerProgrammeringsspråket C
Programmeringsspråket C Bakgrunn Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI standard i 1988; omtrent alle følger
DetaljerDagens tema. 2. Feilsøking. 1. Minnet. Fast minne. gdb ddd Valgrind Egne testutskrifter. Noen nyttige instruksjoner. Bit-fikling
Dagens tema 1. Minnet Fast minne Store og små indianere «align»-ing Noen nyttige instruksjoner Vektorer Hva er adressen? 2. Feilsøking gdb ddd Valgrind Egne testutskrifter Bit-fikling Faste variable Faste
DetaljerTema for siste forelesning:
Dagens tema Tema for siste forelesning: Kodegenerering Funksjoner Testing Ulike testprogrammer Kompilering av programsystemer make ant Hva må gjøres for funksjoner? Funksjoner For funksjoner må vi kunne
DetaljerDagens tema: Enda mer MIPS maskinkode
Dagens tema: Enda mer MIPS maskinkode (P&H: 3.6 3.8 + 6.1 + A.6 + A.10) Pseudoinstruksjoner Flere instruksjoner Mer om funksjonskall Stakken Avhengigheter Direktiver Alt er bit! Kommunikasjon med C Ark
DetaljerEksamen INF2270 våren 2018
Generell informasjon Eksamen INF2270 våren 2018 Dette oppgavesettet består av 14 oppgaver som kan løses uavhengig av hverandre. Dersom du synes noe i oppgaveteksten er uklart, må du gjøre dine egne forutsetninger;
DetaljerOppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering
Uke 34 Uke 35 Uke 36 Uke 37 Uke 38 Uke 39 Uke 40 Uke 41 Uke 42 Uke 43 Uke 44 Uke 45 Uke 46 Uke 47 sikkerhet datanett programvare digitale kretser Prosessoren II Kort oppsummering Løkker og tester Mer om
DetaljerIN 147 Program og maskinvare
Dagens tema Basistyper i C Typekonvertering Formater i printf Pekere i C En kort repetisjon om pekere Hva er egentlig en peker? Pekere til alt og ingenting Pekere som parametre Pekere og vektorer Ark 1
Detaljer2 Parser. 1 Skanner. 4 Kodegenerator. 3 Sjekker. Oversikt Datamaskinhistorie x86 Kodegenerering Setninger Uttrykk.
Dagens tema Dagens tema: Maskinkode del 1 Litt datamaskinhistorie Hva er maskin- og assemblerkode? x86-prosessoren Programkode for setninger Konstanter og uttrykk Prosjektoversikt f.pas f.s 1 Skanner :Token
DetaljerDagens tema 1: Minnet
Dagens tema 1: Minnet Fast minne Store og små indianere «align»-ing Noen nyttige instruksjoner Vektorer Hva er adressen? Dagens tema 2: Feilsøking gdb ddd Valgrind Egne testutskrifter Dag Langmyhr,Ifi,UiO:
DetaljerDagens tema. Funksjonskall. Flyt-tall. Rekursive kall Lokale variable. Hvordan lagres de? Hvordan regner man med dem?
Dagens tema Funksjonskall Flyt-tall Rekursive kall Lokale variable Hvordan lagres de? Hvordan regner man med dem? En kort oppsummering Funksjonskall Kall og retur Instruksjonene call og ret er egentlig
DetaljerOversikt Deklarasjoner Typesjekk Programmering Datamaskinhistorie x86 Kodegenerering
Dagens tema Dagens tema: Semantisk sjekking Hvordan finne deklarasjoner? Typesjekking Hvordan programmere sjekking av riktig navnebruk? Maskinkode Litt datamaskinhistorie Hva er maskin- og assemblerkode?
DetaljerInnhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU)
2 Innhold 1 Datamaskiner Prosessoren Primærminnet (RAM) Sekundærminne, cache og lagerhierarki Datamaskiner Matlab Parallell Jørn Amundsen Institutt for Datateknikk og Informasjonsvitenskap 2010-08-31 2
DetaljerDagens tema. 1. Funksjonskall. 3. Feilsøking. 2. Minnet. Noen nyttige instruksjoner. Stakken Lokale variable. gdb ddd. Fast minne
Dagens tema 1. Funksjonskall Stakken Lokale variable 2. Minnet Fast minne Store og små indianere «align»-ing Noen nyttige instruksjoner 3. Feilsøking gdb ddd Vektorer Hva er adressen? Bit-operasjoner Valgrind
DetaljerDagens tema. 1. Funksjonskall. 3. Feilsøking. 2. Minnet. Noen nyttige instruksjoner. Stakken Lokale variable. gdb ddd. Fast minne
Dagens tema 1. Funksjonskall Stakken Lokale variable 2. Minnet Fast minne Store og små indianere «align»-ing Noen nyttige instruksjoner 3. Feilsøking gdb ddd Vektorer Hva er adressen? Bit-operasjoner Valgrind
DetaljerDagens tema: Kodegenerering. Versjonskontroll. Variabler, spesielt vektorer Funksjoner, kall og parametre Noen siste gode råd.
Dagens tema Dagens tema: Kodegenerering Variabler, spesielt vektorer Funksjoner, kall og parametre Noen siste gode råd Versjonskontroll CVS og Subversion Alt om variabler Variabler Variabler forekommer
DetaljerKompilering Statiske Syntaksanalyse Feilsjekking Eksempel Oppsummering
Dagens tema Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Statiske metoder og variabler Hvordan oppdage feil? Kildekode Hva er kompilering? Anta at
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet PRØVEEKSAMEN i INF1000 23. november 2004 kl. 14.00 17.00 Dine svar skal skrives på disse oppgavearkene, og ikke på separate ark. Dette gjelder
DetaljerTema for siste forelesning:
Dagens tema Tema for siste forelesning: Versjonskontroll CVS og Subversion Kodegenerering Funksjoner Testing Ulike testprogrammer Samarbeidsproblemer Når flere samarbeider Når flere jobber sammen, kan
DetaljerDel 1 En oversikt over C-programmering
Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av
DetaljerTema for siste forelesning:
Tema for siste forelesning: Kompilering av programsystemer make ant Kodegenerering Funksjoner Testing Ulike testprogrammer Hvordan kompilere riktig? Programmet make Det er mange praktiske problemer forbundet
DetaljerDagens tema. 1. Funksjonskall. 3. Feilsøking. 2. Minnet. Noen nyttige instruksjoner. Stakken Lokale variabler. gdb ddd. Fast minne
Dagens tema 1. Funksjonskall Stakken Lokale variabler 2. Minnet Fast minne Store og små indianere «align»-ing Noen nyttige instruksjoner 3. Feilsøking gdb ddd Vektorer Hva er adressen? Bit-operasjoner
DetaljerDagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.
Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet ut? Variabler,
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF2440 Praktisk parallell programmering Prøveeksamensdag : 26. mai 2014 Tidspunkter: 11.00 Utdeling av prøveeksamen 15:15
DetaljerTema for siste forelesning:
Dagens tema Tema for siste forelesning: Versjonskontroll CVS og Subversion Kodegenerering Funksjoner Testing Ulike testprogrammer Samarbeidsproblemer Når flere samarbeider Når flere jobber sammen, kan
DetaljerDagens tema INF2270. Cs preprosessor. Separat kompilering av C funksjoner. C og minnet. Dag Langmyhr,Ifi,UiO: Forelesning 5. februar 2007 Ark 1 av 15
Dagens tema Cs preprosessor Separat kompilering av C funksjoner C og minnet Dag Langmyhr,Ifi,UiO: Forelesning 5. februar 2007 Ark 1 av 15 Cs preprosessor Før selve kompileringen går C kompilatoren gjennom
DetaljerOversikt Kompilering Syntaksanalyse Java Feilsjekking Oppsummering
Dagens tema Dagens tema Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Hvordan oppdage feil? Kildekode Hva er kompilering? Anta at vi lager dette lille
DetaljerInformasjon Eksamen i IN1000 høsten 2017
Informasjon Eksamen i IN000 høsten 207 Tid 8. desember kl. 09.00 (4 timer) Faglærerne vil besøke lokalet ca kl 0. Oppgavene Oppgave 2b og 2c er flervalgsoppgaver. Her får man det angitte antall poeng om
DetaljerDagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.
Dagens tema Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler
DetaljerIN 147 Program og maskinvare
Dagens tema Mer om C Cs preprosessor Allokering av variable Separat kompilering Programmet make Pekere i C Operasjoner på pekere Pekere og vektorer Referanseparametre Pekere til «alt» og «ingenting» Dynamisk
DetaljerUke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt Siri Moe Jensen Inst. for informatikk, UiO
Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier 11. okt. 2011 Siri Moe Jensen Inst. for informatikk, UiO 1 Innhold Eksamen INF1000 Høst 2011: Oppgave 4-7 Tekstmanipulering Metoder med og uten
DetaljerLøsningsforslag til 2. del av Del - EKSAMEN
Løsningsforslag til 2. del av Del - EKSAMEN Emnekode: ITD13012 Emne: Datateknikk Dato: 21. Mai 2013 Eksamenstid: kl 9:00 til kl 12:00 Hjelpemidler: 4 sider (A4) (2 ark) med egne notater. Ikke-kummuniserende
DetaljerForelesning 15.11. Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B
TDT4160 Datamaskiner Grunnkurs Forelesning 15.11 Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B Dagens tema Datatyper (5.2) Heltall Ikke-numeriske datatyper Instruksjonsformat (5.3) Antall
DetaljerUNIVERSITETET I OSLO
Side 1 UNIVERSITETET I OSLO Kandidatnr Det matematisk-naturvitenskapelige fakultet Eksamen i: PRØVEEKSAMEN INF1000 Eksamensdag: Prøveeksamen 22.11.2011 Tid for eksamen: 12:15-16:15 Oppgavesettet er på
DetaljerKapittel 1 En oversikt over C-språket
Kapittel 1 En oversikt over C-språket RR 2015 1 Skal se på hvordan man En innføring i C Skriver data til skjermen Lese data fra tastaturet Benytter de grunnleggende datatypene Foretar enkle matematiske
DetaljerTDT4105/TDT4110 Informasjonsteknologi grunnkurs:
1 TDT4105/TDT4110 Informasjonsteknologi grunnkurs: Uke 39 Digital representasjon, del 1 - Digital representasjon - Tekst og tall - positive, negative, komma? Alf Inge Wang alfw@idi.ntnu.no Bidragsytere
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 10. juni 2009 Tid for eksamen: 9.00 12.00 Oppgavesettet
DetaljerDel 4 Noen spesielle C-elementer
Del 4 Noen spesielle C-elementer 1 RR 2016 Header-filer inneholder Prototypene til funksjonene i standard biblioteket Verdier og definisjoner som disse funksjonene bruker #include #include
DetaljerLøsningsforslag til 2. del av Del - EKSAMEN
Løsningsforslag til 2. del av Del - EKSAMEN Emnekode: ITD13012 Emne: Datateknikk Dato: 19. Mai 2014 Eksamenstid: kl 9:00 til kl 12:00 Hjelpemidler: 4 sider (A4) (2 ark) med egne notater. Ikke-kummuniserende
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i MAT-INF 00 Modellering og beregninger. Eksamensdag: Torsdag 6. desember 202. Tid for eksamen: 9:00 3:00. Oppgavesettet er på 8
DetaljerDagens tema. Flyt-tall. Koding. Tegnsett. Hvordan lagres de? Hvilke egenskaper har de? Hvordan regner man med dem?
Dagens tema Flyt-tall Koding Hvordan lagres de? Hvilke egenskaper har de? Hvordan regner man med dem? Koding av instruksjoner 64-bits kode Tegnsett Ulike typer tegnkoding Programmering i C Hva er flyt-tall?
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 1. desember 2010 Tid for eksamen: 14.00 18.00
DetaljerInformasjon Prøveeksamen i IN1000 høsten 2018
Prøveeksamen IN1000-INF1001-H18 Informasjon Prøveeksamen i IN1000 høsten 2018 Tid Fra tirsdag 6.11 kl. 14:15 til tirsdag 13.11 kl. 12:00 (Normal eksamenstid er 4 timer) Oppgavene Oppgave 2b og 2c er flervalgsoppgaver.
DetaljerVelkommen til INF2100 Jeg er Dag Langmyhr
Velkommen til Jeg er Dag Langmyhr (dag@ifi.uio.no). Bakgrunn for I INF1000 20 har dere lært å rammere, men bare små rammer (< 1000 linjer). Hensikten med er å gi mer rammeringstrening Dagens tema: Hva
DetaljerVelkommen til INF2100
Kursopplegg Velkommen til INF2100 Jeg er Dag Langmyhr (dag@ifi.uio.no). Dagens tema: Hva går kurset ut på? Bakgrunn for kurset Hvordan gjennomføres kurset? Hvordan får man det godkjent? Pause (med registrering
DetaljerEKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.
EKSAMEN Emnekode: ITF22506 Emne: Operativsystemer Dato: 12. desember 2007 Eksamenstid: kl. 9.00 til kl. 13.00 Hjelpemidler: 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre
Detaljer