UNIVERSITETET I OSLO

Like dokumenter
Løsningsforslag til eksamen i INF103

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Oppsummering av digitalteknikkdelen

UNIVERSITETET I OSLO

Oppgave 1 JK-flip-flop (Total vekt 20%)

UNIVERSITETET I OSLO

Generell informasjon

Oppgave 2 Maskinkode (vekt 12%)

UNIVERSITETET I OSLO

Seksjon 1. INF2270-V16 Forside. Eksamen INF2270. Dato 1. juni 2016 Tid Alle trykte og skrevne hjelpemidler, og en kalkulator, er tillatt.

Innhold. Oppgave 1 Oversettelse (vekt 15%)

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Eksamen INF2270 våren 2018

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Løsningsforslag til eksamen i INF2270

MAX MIN RESET. 7 Data Inn Data Ut. Load

UNIVERSITETET I OSLO

Dagens temaer. Architecture INF ! Dagens temaer hentes fra kapittel 3 i Computer Organisation and. ! Kort repetisjon fra forrige gang

EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Ingen. Elektronisk (WiseFlow) Robert Pettersen

Løsningsforslag til eksamen i INF2270

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Oppgave 1 Oversettelse (vekt 16%)

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Repetisjon digital-teknikk. teknikk,, INF2270

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

Minnehåndtering i operativsystemer

Dagens temaer. Dagens emner er hentet fra Englander kapittel 11 (side ) Repetisjon av viktige emner i CPU-design.

INF2270. Minnehierarki

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Maskinvaredelen av INF 103: oversikt og innhold (1)

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. Kontaktperson under eksamen: Steffen Viken Valvåg Telefon:

Dagens tema. Dagens temaer hentes fra kapittel 3 i læreboken. Repetisjon, design av digitale kretser. Kort om 2-komplements form

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering

Algoritmer og Datastrukturer

Dagens temaer. Dagens temaer er hentet fra P&P kapittel 3. Motivet for å bruke binær representasjon. Boolsk algebra: Definisjoner og regler

Oppgave 1. Sekvenser (20%)

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

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

Dagens temaer. Architecture INF ! Dagens temaer hentes fra kapittel 3 i Computer Organisation and

EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Teorifagb, hus 3, og og Adm.bygget, Aud.max og B.

INF1400. Karnaughdiagram

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00

UNIVERSITETET I OSLO

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Minnehåndtering i operativsystemer

Løsningsforslag til eksamen i IN 147 og IN 147A

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Det matematisk-naturvitenskapelige fakultet

Den siste dagen. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMEN. Emne: Algoritmer og datastrukturer

UNIVERSITETET I OSLO

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

Hvordan en prosessor arbeider, del 1

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

Oppsummering digital-teknikk, teknikk, INF2270

INF1400 Kap4rest Kombinatorisk Logikk

UNIVERSITETET I OSLO

IN1020. Minnehierarki

UNIVERSITETET I OSLO

Scheduling og prosesshåndtering

UNIVERSITETET I OSLO

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte

En oppsummering (og litt som står igjen)

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

Dagens tema. Flere teknikker for å øke hastigheten

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Transkript:

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF103 Fra brukergrensesnitt til maskinvare Eksamensdag: 11. desember 2003 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider. Vedlegg: Ingen Tillatte hjelpemidler: Alle Kontroller at oppgavesettet er komplett før du begynner å besvare spørsmålene. Dette oppgavesettet består av 6 oppgaver som kan løses uavhengig av hverandre. Dersom du synes noe i oppgaveteksten er uklart, må du gjøre dine egne forutsetninger; sørg bare for at disse er tydelig angitt. Du kan referere til funksjoner og programkode vist på forelesningene uten å gjenta koden; sørg for at referansene er tydelige (nevn for eksempel dato og nummer på lysarket). Lykke til! Innhold 1 Boolsk algebra (vekt 16%) side 1 2 Oversettelse (vekt 16%) side 2 3 C-programmering (vekt 16%) side 2 4 Tildeling av prosessortid (vekt 16%) side 4 5 Internminne (vekt 16%) side 4 6 Flervalgsoppgave (vekt 20%) side 5 Oppgave 1 Boolsk algebra (vekt 16%) Du skal designe en krets som tar som input et 4-bits positivt binært tall a = a 3 a 2 a 1 a 0 der a i representerer bit nummer i i tallet a, ogsom output to ettbits signaler kalt ge_10 og le_8, slik det er vist i figur 1 på neste side. ge_10 skal være 1 når a 10 (desimalt), mens le_8 skal være 1 når a 8 (desimalt). (Fortsettes på side 2.)

Eksamen i INF103, 11. desember 2003 Side 2 a 3 a 2 le 8 a 1 a 0 ge 10 Figur 1: En enkel krets 1a Sett opp sannhetsverditabell for ge_10 og le_8 som funksjon av inputtallet a. 1b Forenkle uttrykkene for ge_10 og le_8 ved hjelp av Karnaugh-diagram. 1c Implementer kretsen ved hjelp av logiske porter. 1d Vis hvordan du ved hjelp av kun én 2-inputs port i tillegg til kretsen fra punkt 1c kan lage et outputsignal eq_9 som er lik 1 hvis a = 9 (desimalt). Oppgave 2 Oversettelse (vekt 16%) Funksjonen neven i figur 2 på neste side finner antall partall i en vektor («array») med 100 elementer. Oversett denne funksjonen til assemblerspråk for LC-2. Ved kallet skal adressen a ligge i R0 og ved retur skal svaret ligge i R0. Oppgave 3 C-programmering (vekt 16%) Vi ønsker å lage en enkel datastruktur hvor vi kan legge inn informasjon (i form av tekst); aksess skal skje ved hjelp av en nøkkel (som også er en tekst). Dataene lagres i en liste slik det er vist i figur 3 på neste side. For å illustrere hvorledes datastrukturen brukes, er funksjonen db_put også vist i figur 3. Denne funksjonen legger data inn i strukturen, og parametre er nøkkelen og data. (Fortsettes på side 3.)

Eksamen i INF103, 11. desember 2003 Side 3 short neven (short a[]) { short n = 0; int ix; for (ix = 0; ix < 100; ++ix) if ((a[ix] & 0x0001) == 0) ++n; } return n; Figur 2: C-funksjonen neven struct db_elem { char *key, *data; struct db_elem *next; }; struct db_elem *db_first = NULL; void db_put (char *k, char *d) { /* Insert element (k,d) into the structure. */ struct db_elem *p = db_first; while (p) { if (strcmp(p->key,k) == 0) { /* Element with key k already exists. Replace the data. */ } free(p->data); return; } p = p->next; p->data = strdup(d); /* Create a new element and insert it in the list. */ } p = malloc(sizeof(struct db_elem)); p->key = strdup(k); p->data = strdup(d); p->next = db_first; db_first = p; Figur 3: Listestruktur og funksjonen db_put (Fortsettes på side 4.)

Eksamen i INF103, 11. desember 2003 Side 4 3a Skriv funksjonen char *db_get (char *k) som returnerer en peker til data med den gitte nøkkel. Om ingen data med en slik nøkkel finnes, skal den returnere NULL. 3b Skriv funksjonen void db_remove (char *k) som fjerner elementet med den gitte nøkkel fra datastrukturen. (Om det ikke finnes noen data med oppgitt nøkkel, skal ikke funksjonen gjøre noenting.) Oppgave 4 Tildeling av prosessortid (vekt 16%) Anta at vi benytter en variant av den tradisjonelle sirkulære kørutinen («round robin») ved fordeling av prosessortid til prosesser. En prosess som fullt ut har brukt opp sitt tidskvantum, blir plassert bakerst i køen. En prosess som benytter halvparten av tildelt tidskvantum, blir plassert midt i køen, og en prosess som kun bruker en fjerdedel av tildelt tidskvantum, blir plassert en fjerdedel bak i køen fra starten av. (Det er her snakk om cirka-tall.) 4a Hvilken hensikt kan det være med en slik fordeling? Begrunn svaret kort. 4b Diskuter fordeler og ulemper med implementeringen av den. Oppgave 5 Internminne (vekt 16%) (I denne oppgaven ønsker vi korte og konsise svar; 1 3 setninger bør være nok til å svare på de fleste spørsmålene.) 5a Beskriv forskjellen mellom logisk (virtuell) og fysisk adresse. (Fortsettes på side 5.)

Eksamen i INF103, 11. desember 2003 Side 5 5b Hvorfor er alltid sidestørrelsen en potens av 2? 5c Vi tenker oss en liten datamaskin med plass til kun 4 sider i minnet. På denne datamaskinen kjører vi et dataprogram som trenger 8 sider minne, men som heldigvis ikke trenger alle sidene samtidig. Datamaskinen må av og til bytte sider ut til disk (sidekrav/swapping). Ved kjøring av programmet blir sidene referert i denne rekkefølgen 0172327103 hvor 0 er første side. Ved oppstart er minnet helt tomt. Systemet bruker FIFO-algoritmen for å bestemme hvilken side som skal ut når en ny side skal inn. Hvor mange sidekrav vil oppstå forutsatt at ingen sider var i minnet ved oppstart? Hvor mange sidekrav oppstår hvis systemet bruker LRU («Least Resently Used»)? 5d LRU virker som en fin algoritme i teorien. Hvorfor er den så vanskelig å implementere i praksis? Oppgave 6 Flervalgsoppgave (vekt 20%) I hver av punktene under er det enten gitt et utsagn eller spørsmål med i alt 5 ulike svaralternativ. For hver av dem skal du plukke ut det svaret/alternativet du mener er korrekt. Vær oppmerksom på at du bør sammenligne alternativene for å finne det riktige, da et alternativ/utsagn tatt ut av denne sammenhengen kan ha ulike/andre tolkninger. Svaret ditt skal kun bestå av nummeret som indikerer det riktige alternativet for hver oppgave! 6a Cache benyttes for å 1. redusere søketiden på harddisken ved kontekstbytte 2. utnytte den ledige plassen i RAM bedre 3. redusere hastighetsforskjellen mellom RAM og interne registre i CPU-en 4. redusere hastighetsforskjellen mellom heltalls- og flyttallsregistre 5. øke bufferstørrelsen på nettverkskort (Fortsettes på side 6.)

Eksamen i INF103, 11. desember 2003 Side 6 6b Hvilken påstand om cache er korrekt? 6c 1. Innholdet i cache vil alltid være et subsett av innholdet i RAM unntatt ved skriving. 2. Innholdet i RAM vil alltid være et subsett av innholdet i cache unntatt ved skriving. 3. Det er ingen sammenheng mellom innholdet i cache og RAM. 4. Innholdet i cache og RAM er identisk. 5. Innholdet i cache og RAM er identisk så lenge det kun leses og ikke skrives til cache. Virtuelt minne kan brukes til å 6d 1. redusere aksesstiden på harddisken 2. redusere fragmentering på harddisken 3. redusere antall cache miss 4. skille fra hverandre ulike prosessers minneområder 5. la ulike prosesser ha overlappende minneområder En hasard i forbindelse med pipelining vil si at 6e 1. pipelinen ikke har mange nok trinn til å fullføre alle typer instruksjoner. 2. pipelinen fylles opp med NOP-instruksjoner. 3. et register ikke er korrekt oppdatert når en instruksjon leser det. 4. betingede hopp medfører at pipelinen må tømmes for instruksjoner som ikke skal eksekveres. 5. aritmetiske instruksjoner trenger data som ikke ligger i interne registre i CPU-en. I en von Neuman-arkitektur er 1. instruksjoner og data adskilt i separate minneområder 2. kontroll-enheten en del av det fysiske minnet 3. det en egen funksjonell blokk for å utføre aritmetisk/logiske beregninger 4. input-enheten en integrert del av hukommelses-enheten 5. det ikke pipelining (Fortsettes på side 7.)

Eksamen i INF103, 11. desember 2003 Side 7 6f Den Boolske funksjonen F = abc d + ab d + abcd + ac + bd kan forenkles til 1. F = b d + ac + a bd 2. F = bd + ab + ab d 3. F = b d + a c + abd 4. F = bd + ac + ab d 5. Ingen av de foreslåtte forenklingene i punkt 1 til 4 er gyldige forenklinger. 6g Hvilken påstand er korrekt? 1. RAM er billigere per byte enn CD-ROM. 2. RAM er dyrere per byte enn interne registre. 3. Interne registre er billigere per byte enn cache. 4. Virtuell hukommelse er billigere per byte enn fysisk hukommelse. 5. Ettersom klokkehastigheten øker minsker behovet for cache. 6h Gitt følgende kodesekvens i LC-2 maskinspråk: 0101 1111 1110 0000 0001 1111 1110 0111 0101 1101 1010 0000 0001 1101 1010 0110 0001 1001 1100 0110 Etter at den siste instruksjonen er eksekvert er 1. innholdet i R7 lik innholdet i R5 2. innholdet i R7 lik innholdet i R2 3. innholdet i R4 lik summen av innholdet i R6 og R7 4. innholdet i R6 lik summen av innholdet i R7 og R4 5. innholdet i R4 lik differensen mellom innholdet i R6 og R7 (Fortsettes på side 8.)

Eksamen i INF103, 11. desember 2003 Side 8 6i En multiplekser 1. har 2 n inputsignaler, n styrelinjer og ett utgangssignal som er lik et av inngangssignalene 2. har 2 n + 1 inputsignaler, n + 1 styrelinjer og ett utgangssignal som er lik et av inngangssignalene 3. har n inputsignal, n styrelinjer og 2 n utgangssignaler som er lik summen av input-signalene og styrelinjene 4. brukes som addisjonskrets 5. brukes som multiplikasjonskrets 6j En sekvensiell krets inneholder hukommelse og 1. er ikke egnet til bruk i raske CPU-er 2. er ikke egnet til bruk i en cache 3. er ikke egnet til bruk i sidetabeller 4. et register er et eksempel på en sekvensiell krets 5. en ALU er et eksempel på en sekvensiell krets.