UNIVERSITETET I OSLO

Like dokumenter
Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

Programmering i C++ Løsningsforslag Eksamen høsten 2005

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

Løsningsforslag til eksamen i INF103

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

Del 4 Noen spesielle C-elementer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

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

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

Del 1 En oversikt over C-programmering

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Generell informasjon

UNIVERSITETET I OSLO

Programmeringsspråket C

Oppsummering: Linjesvitsjing kapasiteten er reservert, og svitsjing skjer etter et fast mønster. Linjesvitsj

UNIVERSITETET I OSLO

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.

Kapittel 1 En oversikt over C-språket

Høgskolen i Telemark EKSAMEN Operativsystem og nettverk inkludert denne forsiden og vedlegg. Merknader:

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

EKSAMEN. Operativsystemer. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene.

UNIVERSITETET I OSLO

Tildeling av minne til prosesser

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

IN 147 Program og maskinvare

UNIVERSITETET I OSLO

Faglig kontakt under eksamen: Orestis Gkorgkas

TDT4110 IT Grunnkurs: Kommunikasjon og Nettverk. Læringsmål og pensum. Hva er et nettverk? Mål. Pensum

Hva består Internett av?

Kjøresystemer. Hva er et kjøresystem? Den abstrakte maskinen SIMPLESEM (2.6) Klassifisering av språk: Parametre (2.7.7) Statiske språk (

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Programmeringsspråket C Del 3

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Endret litt som ukeoppgave i INF1010 våren 2004

Programmeringsspråket C Del 3

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

UNIVERSITETET I OSLO

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

Tildeling av minne til prosesser

UNIVERSITETET I OSLO

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3

UNIVERSITETET I OSLO

TTM4175: Etisk hacking. Lab E5: Nettverkssniffing

Debugging. Tore Berg Hansen, TISIP

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

Kommunikasjonsnett. Et kommunikasjonsnett er utstyr (maskinvare og programvare) for utveksling av informasjon

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

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

Interprosess kommunikasjon. Berkeley Sockets. Hvordan identifiserer jeg hvem jeg vil snakke til? Hva må programmene gjøre?

EKSAMENSOPPGAVE I INF-1100

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

UNIVERSITETET I OSLO

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

Løsningsforslag til eksamen 24. november 2015

HØGSKOLEN I SØR-TRØNDELAG

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

EKSAMEN. Emne: Datakommunikasjon

Transkript:

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1060 Introduksjon til operativsystemer og datakommunikasjon Eksamensdag: 8. desember 2004 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 5 sider. Vedlegg: Ingen Tillatte hjelpemidler: Kalkulator Kontroller at oppgavesettet er komplett før du begynner å besvare spørsmålene. Oppgave 1 Operativsystemer (ca. 40 %) Svar kort og presist på følgende oppgaver om operativsystemer. 1a Definisjon og oppgaver Hva er et operativsystem, og hva er dets oppgaver? 1b Prosesser Hva er forskjellen på et program og en prosess? 1c CPU scheduling Forklar hvordan scheduleren på Windows XP/2000 virker! 1d Context switch Hva er en context switch? 1e Disk Scheduling Anta at vi har en (veldig liten) disk som har 50 spor ( tracks ), nummerert fra 0 til 49, som disk-hodet beveger seg over og leser data fra. Anta at på et bestemt tidspunkt leser disken en sektor fra spor 14. Etter denne forespørselen ligger det følgende forespørsler i køen (hvert tall henviser til hvilket spor den forespurte blokken ligger på, og ordningen viser i hvilken rekkefølge forespørselene ankom systemet med forespørselen lengst til høyre, dvs. 2, som første): 45 15 3 49 19 40 5 15 33 9 17 23 46 2 Vis i en grafisk figur hvordan diskhodet beveger seg over de forskjellige sporene (i hvilken rekkefølge) hvis vi bruker henholdsvis First-Come-First- Serve (FCFS) og SCAN (diskhodet er på vei fra lavt-nummererte spor til (Fortsettes på side 2.)

Eksamen i INF1060, 8. desember 2004 Side 2 høyt-nummererte spor) og alle forespørslene i køen kan betjenes i samme runde. 1f Minne En prosess deler opp sitt eget minne hvor hver del (hvert segment) brukes på forskjellige måter/til forskjellige ting. Hvordan gjøres dette, og hva brukes hver del/segemnt til? Oppgave 2 Datakommunikasjon (ca. 30 %) Svar kort og presist på følgende oppgaver om datakommunikasjon. 2a Protokoller 1. Hva er en protokoll, og hva er poenget med en protokollstakk? 2. Protokollene i TCP/IP-stakken genererer protokoll-hoder ( protocol headers ) som de legger til de dataene de skal sende. Vis hvordan et dataelement som kommer gjennom socket-laget pakkes inn og hvordan det legges til protokoll-hoder. 3. Hvilke transportlagsprotokoller er definert for TCP/IP-stakken, og hva er de viktigste egenskapene med dem? 2b Forbindelsesløse- og forbindelsesorienterte protokoller Hva er forskjellen på forbindelsesløse- og forbindelsesorienterte protokoller? 2c Transmisjonsforsinkelse Anta at du er aksjemegler og får oppdateringer fra børsen i New York circa 6000 km unna en gang i sekundet i en pakke på 1000 bytes. Anta videre at signalene går med lysets hastighet (rundet av til 300.000 kilometer i sekundet) og at vi kan se bort i fra forsinkelsen i mellomnodene. 1. Hvor lang tid tar det fra pakken sendes fra New York til du har fått oppdateringene her i Oslo (hva er forsinkelsen) hvis båndbredden på datakanalen er begrenset av din kanal på 2 megabit per sekund (Mbps) som for eksempel en ADSL-linje? 2. Du finner fort ut at det å kjøpe aksjer til en god pris ofte handler om å bestemme seg raskt og syntes derfor at forsinkelsen er for stor (!). Du bestemmer deg derfor for å skifte ut ADSL linjen med en fastlinje som har en 155 Mbps datakanal. Hva er den nye forsinkelsen nå? 3. Hva er forsinkelsen hvis du begynner å handle på samme måte over nettet (med den nye fastlinjen) på Oslo børs (10 km unna) i steden for børsen i New York? (Fortsettes på side 3.)

Eksamen i INF1060, 8. desember 2004 Side 3 1: int A(void) 2: { 3: int size = 1000000, n, y; 4: void *p; 5: 6: y = 0; 7: if ((fd = open("my.file", O_RDONLY, 0)) == -1) exit(1); 8: 9: while (TRUE) { 10: p = malloc(size); 11: if ((n = read(fd, p, size)) > 0) { 12: y += n; 13: } 14: else {break;} /* LEAVE WHILE LOOP */ 15: } 16: 17: if ((x = write(fd, p, size)) == -1) exit(2); 18: close(fd); 19: return 100; 20: } Figur 1: Funksjon A Oppgave 3 C programmering (ca. 10 %) Anta at du har den koden beskrevet i figur 1 fra en funskjon i et C program. Bedøm om de følgende utsagn er riktige eller gale, og begrunn med en setning eller to hvorfor/hvorfor ikke. 1. Etter tilordningen y += n (linje 12) vil variablen y inneholde verdien på hvor mange bytes som totalt har blitt lest fra filen my.file hittil. 2. Koden kan kjøre evig hvis vi antar at filen my.file som leses er lang nok (uendelig stor). 3. Etter malloc peker pekeren p på et allokert minneområde som er 1000000 bytes stort. 4. Hvis vi leser slutten av filen (har lest hele my.file) vil koden etterhvert avslutte og funksjon returnere med statusverdi 100 (linje 19). Oppgave 4 Diverse flervalgsoppgaver (ca. 20 %) Denne oppgaven er en oppgave hvor du skal velge ett eller flere svar alternativer (flere kan være riktig) for hver oppgave (flervalgsoppgaver) uten å gi begrunnelse. Hvert riktig svar gir poeng, og hvert gale svar gir minuspoeng. (Fortsettes på side 4.)

Eksamen i INF1060, 8. desember 2004 Side 4 4a Minne Hvilke utsagn er riktige: 1. En prosess har ingen garantier for at den plasseres på samme sted i minnet hvis vi kjører det flere ganger 2. En relativ minneadresse gir fysisk posisjon i minnet 3. For å finne et data element på en bestemt fysisk adresse under kjøring av en prosess må vi oversette en relativ adresse bestemt under kompilering ved hjelp av prosessens base-adresse 4. Virtuelt minne brukes til å gi en illusjon av at vi har mer minne enn det vi fysisk har tilgjengelig 5. En sidetabell ( page table ) er en tabell som oversetter mellom virtuelle og fysiske sider 6. En prosess sin sidetabell er alltid holdt i minnet på grunn av ytelse 7. Med en 32-bits adresse kan man adressere 4294967296 lokasjoner i minnet 8. Med en 32-bits adresse kan man adressere 1073741824 lokasjoner i minnet 4b Nettverkslaget Hvilke utsagn er riktige: 1. Nettverkslaget er øverste laget i en bro 2. IP (Internet protokollen) gir støtte for ruting og fragmentering 3. ARP (address resolution protocol) brukes for å finne MAC-adressen til en mottaker når IP-adressen er kjent i et LAN 4. IP er en forbindelsesorientert protokoll 5. Data som sendes av IP vil som regel inneholde hodet generert av transportlaget 6. ARP bygger opp en rutingtabell med par av IP-adresser og transportlagsporter slik at man vet hvor man skal sende en pakke 7. IPv6 (IP versjon 6) er en utvidelse av IPv4 og legges over IPv4 i TCP/IP-stakken (Fortsettes på side 5.)

Eksamen i INF1060, 8. desember 2004 Side 5 1: int B(void) 2: { 3: char *buf, *p, *q, r = w, s = r ; 4: 5: p = buf = (char *) malloc(6); 6: strcpy(p, "hallo"); 7: *(p + 1) += 4; 8: printf("%s ", p); 9: 10: q = p + 1; 11: p = &r; 12: 13: printf("%c%c%c", *p, *(q + 3), s); 14: printf("%c%c!\n", buf[3], (*(buf + 1) - 1)); 15: 16: free(buf); 17: } Figur 2: Funksjon B 4c C programmering Anta at du har en annen funksjon med koden beskrevet i figur 2. Hvilke utsagn er riktige: 1. Tekststrengen hallo skrives ut på linje 8 2. Tredje parameter til printf på linje 14, (*(buf + 1) - 1), betyr at vi peker på andre byte i minneområdet allokert på linje 5, og vi trekker 1 fra verdien til andre byte 3. Tekststrengen ld! og et linjeskift ( newline ) skrives ut på linje 14 4. Funksjonen vil ikke kompilere 5. Funksjonen skriver ut tekststrengen hello world