Oppgave 1 - Java og prosesser (20%)



Like dokumenter
EKSAMEN. Operativsystemer og nettverk

Oppgave 1 - Linux kommandolinje (%)

faks: Avdeling for Ingeniørutdanning. Cart Aælersgate Oslo - tlf 05. iu@hio.no

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

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

Prøve- EKSAMEN. Operativsystemer med Linux

Emnekode: SO135A Dato: onsdag 25. feb. I Antall oppgaver: 4

EKSAMEN. Dato: 7. desember 2016 Eksamenstid: 09:00 13:00

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

Lynkurs i shellprogrammering under Linux

Nyttige Linux-kommandoer. Hvordan du kan jobbe mer effektivt Dag Langmyhr

Løsningsforslag til eksamen 24. november 2015

Antall sider:5 (Inkludert denne) Alle skrevne og trykte hjelpemidler samt kalkulator

Operativsystemer og nettverk

Oversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities.

Avdeling for ingeniørutdannlng. Con Adelersgate Oslo. tlf: faks:

-/tmp med navn på alle kataloger og filer etter at disse

d~~ "5(~~~~ ~ \ - -~-- en av disse: Annen lærer r Studieleder/ Fagkoordinator Utarbeidet av (faglærer) :

Ny EKSAMEN. Operativsystemer og nettverk

EKSAMEN. Dato: 24. november 2015 Eksamenstid: 09:00 13:00

Høgskoleni Østfold. Ny/utsatt EKSAMEN

EKSAMEN Innføring i Linux

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

Håndtering av tekstfiler

Funksjonalitet og oppbygning av et OS (og litt mer om Linux)

$ls -l $grep -i Olsen adresseliste.txt less #!/bin/sh $echo `ls` $chmod 755. Praktisk Linux. Grunnleggende skall kommandoer. Irene Ludvigsen Husa

Shellscripting I. Innhold

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

Unix/Linux for litt viderekomne

Unix/Linux for litt viderekomne

Emnekode: SOl35A Alle trykte og skrevne hjelpemidler

Oppgavene 1, 2, 4, 5, 6, 9, 12 og 13 passer best til å løses ved en datamaskin.

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

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

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

Filterprogrammer og redirigering av I/O

Filer og kataloger, prosesser og jobber

KANDIDATEN MÅ SELV KONTROLLERE AT OPPGAVESETTET ER FULLSTENDIG

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

Generelt om operativsystemer

Antall sider:s (inkludert denne) Alle skrevne og trykte hjelpemidler samt kalkulator

INF109 - Uke 1b

Filterprogrammer og redirigering av I/O

Dokumentasjon av Installasjon

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

1,r H øgs kolen i Østfol d

Unix/Linux en annen måte å gjøre ting på

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

HØGSKOLEN I SØR-TRØNDELAG

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Algoritmer og Datastrukturer

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.

Videregående shellprogrammering

Tre på rad mot datamaskinen. Steg 1: Vi fortsetter fra forrige gang. Sjekkliste. Introduksjon

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Betinget eksekvering og logiske tester i shell

HØGSKOLEN I SØR-TRØNDELAG

Oppgaver til forkurs i informatikk dag 1

Kanter, kanter, mange mangekanter

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

NSA mandag 4. oktober Brukerbehandling Systempolitikk Kontroll av resurser Om system logger Litt om cron og cfengine

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

16 Programmere TI -86 F1 F2 F3 F4 F5 M1 M2 M3 M4 M5

Leksjon 3. Kontrollstrukturer

Unix/Linux en annen måte å gjøre ting på

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Utførelse av programmer, metoder og synlighet av variabler i JSP

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

Hvordan installere Java og easyio på Windows

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

Brukermanual for Quizbuilder

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

UNIVERSITETET I OSLO

Controller Brukerstøttedatabase Ottar Holstad/Cantor 09.

Håndtering av filer og kataloger

Øving 0 - Xcode TDT4102

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

while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke

Kapittel 1. Datamaskiner og programmeringsspråk. 1.1 Programmering

HØGSKOLEN I SØR-TRØNDELAG

Kontinuasjonseksamen

Kapittel 21: Minne og variabler

Høgskolen i Gjøvik Institutt for informatikk og medieteknikk E K S A M E N. Grunnleggende programmering

HØGSKOLEN I SØR-TRØNDELAG

Forelesningsquiz. Forelesning inf Java 5. Sett dere to (eller tre) sammen og besvar de fire spørsmålene på utdelt ark. Tid: 15 min.

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I

Øvingsforelesning TDT4105

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

Løsningsforslag for oppgavene i operativsystemer og C, uke 38 ( )

3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster

~estar av: ~mne. pruppe(r) ~ata. 27. februar. rntall Vedleg~: Aile trykte og skrevne. tnllattehjelpernidier:

Filer i Linux og Bourne-again shell

UNIVERSITETET I OSLO

Kurset består av to relativt uavhengige deler. Foreleser: Hårek Haugerud, rom PS431

1. Profiler og variabler

Matematikk Øvingsoppgaver i numerikk leksjon 5 Skript

Eksamen. Innføring i informasjons- og kommunikasjonsteknologi

Transkript:

Prøveeksamen våren 2012 Operativsystemer Les nøye gjennom oppgavene før du begynner og pass på å besvare alle spørsmålene. Alle trykte og skrevne hjelpemidler er tillatt. Sett gjerne egne forutsetninger dersom du synes oppgaveteksten er uklar. Beskriv forutsetningene og løs oppgaven utifra dem. Oppgave 1 - Java og prosesser (20%) a) På en Linux host har du et java-program Arr.java som du ønsker å kjøre. Gi kommandoer som kompilerer og kjører dette programmet fra et bash-shell. Forklar kort hva kommandoene gjør og eventuelt hvilke filer som lages og hva de inneholder. b) Denne Linux maskinen har to hyperthreading CPU er og du kjører java-programmet med $ time java Arr Real:3.325 User:3.288 System:0.012 99.25% Forklar kort kommandoen som kjøres og hva output betyr. c) Du utfører en ny kjøring med kommandoen $ for i in $(seq 1 2); do time java Arr& done Forklar kort hva du oppnår med å kjøre denne kommandoen. d) Java-programmet Arr.java endrer hele tiden på verdier i ett array arr[100]. Den vesentligste delen av programmet ser slik ut: tall = arr[i]; arr[i] = arr[j]; arr[j] = tall; der i og j er to heltall som blir valgt tilfeldig fra 0 til 99. Output fra kjøringen av kommandoen i forrige delspørsmål blir: $ for i in $(seq 1 2); do time java Arr& done Real:3.312 User:3.272 System:0.020 99.41% Real:3.364 User:3.296 System:0.012 98.32% Forklar kort tidsbruken sammenlignet med den første kjøringen utifra det du vet om Linux-hosten. e) Neste kjøring av Java-programmet gir følgende: $ for i in $(seq 1 4); do time java Arr& done Real:4.954 User:4.908 System:0.032 99.71% Real:4.956 User:4.920 System:0.024 99.77% Real:4.995 User:4.920 System:0.020 98.91% Real:5.128 User:5.060 System:0.028 99.22% Forklar kort tidsbruken sammenlignet med de første kjøringene utifra det du vet om Linux-hosten. f) Hva vil du forvente skjer og du får som output om du kjører følgende kommando? 1

$ for i in $(seq 1 8); do time java Arr& done Forklar kort. Oppgave 2 - Internminne (25%) a) Hvis page-størrelsen er 2KByte, hvor mange sider består en prosess som totalt bruker 11 KByte minne av? b) Vil antall sider for en prosess kunne minke mens den kjører? Forklar kort. c) Hva er en dirty page? Finnes det en type sider for en prosess som aldri blir dirty? Forklar kort. d) Hva er en page table entry og hva er det viktigste feltet i den? e) En page table entry inneholder et Referenced bit. Forklar kort hva dette bit et brukes til. f) I en TLB entry finnes det ikke noe Referenced bit. Forklar kort hvorfor dette ikke finnes. g) Hva står RAM for? Forklar kort betydningen av dette begrepet. h) Mange datamaskiner har et hurtigere cache-minne mellom CPU og RAM. Vil det kunne føre til at det er forskjell i hvor lang tid det tar for CPU å hente inn to forskjellige bytes fra RAM til registerne i CPU en? Forklar kort. En matrise, også kalt et todimensjonalt array, er et sett av elementer ordnet i rader og kolonner. For eksempel kan en 2x2 matrise A[2][2] defineres i et C-program og den vil da ha 2x2 elementer: A[0][0], A[0][1], A[1][0] og A[1][1]. Når disse elementene lagres i RAM, lagres de etterhverandre som vist i eksempelet. I en 3x3 matrise lagres først A[0][0], A[0][1] og A[0][2] etterhverandre, så A[1][0], A[1][1] og så videre. i) Et C-program definerer en heltalls-matrise med int mat[5000][5000];. Hvis et heltall (integer, int) bruker 4 byte lagringsplass, hvor mange Megabyte består denne matrisen av? j) På en maskin med 2 GByte RAM har man følgende C-program: int mat[5000][5000]; for(i = 0;i < 5000;i++){ for(j = 0;j < 5000;j++){ mat[i][j] = 5; Programmet kompileres og kjøres: $ time a.out Real:0.113 User:0.020 System:0.092 99.39% Så endres kun èn linje i programmet, linjen der matriseverdier legges inn endres til mat[j][i] = 5;. Når programmet så kompileres og kjøres, tar det nesten tre ganger så lang tid å kjøre det: $ time a.out Real:0.303 User:0.216 System:0.084 98.95% Hvordan kan dette forklares? 2

Oppgave 3 - Kommandolinjen (15%) a) Hvilke av disse fire kommandoene lager en kopi av filen mintekst.txt? ls mintekst.txt > mintekst2.txt cat mintekst.txt > mintekst2.txt mv mintekst.txt > mintekst2.txt cat mintekst.txt > mintekst.txt b) Skriv en kommando som kopierer alle mapper og undermapper fra /etc/ til /mnt/backup. c) Hva er feil i denne bash-kommandoen: $filinfo = ls -l fil.txt d) I bash gir ls -l følgende i en mappe: -rw-r--r-- 1 hh staff 10686 Apr 28 11:43 h.tex Forklar kort ut ifra dette hvordan rettighetene er satt for denne filen og hvilke brukere som har disse rettighetene. e) Skriv en bash-kommando som setter samme rettigheter til filen h2.tex som filen h.tex i forrige deloppgave hadde. f) Hva blir output av følgende bash-kommando? echo "en to tre" sort grep to grep tre g) Hva blir output av følgende bash-kommando? for tall in $(seq 1 5); do echo -n $tall; done h) Hva gjør følgende kommando: cat /var/log/auth.log grep "failure" i) Manualsiden for tail gir blant annet følgende NAME tail - output the last part of files SYNOPSIS tail [OPTION]... [FILE]... DESCRIPTION Print the last 10 lines of each FILE to standard output. -f output appended data as the file grows 3

Forklar med egne ord hva kommandoen tail -f filnavn gjør. Vis et eksempel på en situasjon der det er nyttig å bruke denne kommandoen. j) Anta at fil.txt er en Windows tekstfil i mappen du står i. Hva gir følgende PowerShell-kommando? PS> ls fil.txt Get-Member Oppgave 4 - bash (10%) a) Skriv et bash-script som ved hjelp av en løkke skriver ut følgende: b) Forklar med egne ord hva som skjer når du kjører dette scriptet. Gi en forklaring som forteller i store trekk hva som oppnås ved å kjøre scriptet. #! /bin/bash linenr=$1 cp ~/.ssh/known_hosts ~/tmpssh echo "" > ~/.ssh/known_hosts cat ~/tmpssh while read line do ((c = c + 1)) if [ $c!= $linenr ]; then echo "$c $line" >> ~/.ssh/known_hosts fi done Oppgave 5 - Perl (20%) a) Skriv et perl-script som gjør det samme som i bash-scriptet i forrige oppgave. Scriptet skal altså ved hjelp av en løkke skriver ut følgende: b) Under ser du utdrag fra to ulike perl-script, script1.pl og script2.pl, som begge åpner tekstfilen syslog.txt. Tekstfilen inneholder følgende linjer: # Error logs: Error1: Invalid password for user haugerud; Error2: Invalid password for user haugerud; Error3: Invalid password for user haugerud; Error4: Account locked for user haugerud; Sammenlikne nå scriptene nedenfor og forklar, så detaljert du kan, hva de gjør. Skriv også ut det scriptene vil printe ut: 4

# script1.pl open(f1, "syslog.txt"); @f1=<f1>; for($i=0; $i<= $#f1; $i++){ print "$i $f1[$i]"; # script2.pl open(f1, "syslog.txt"); <F1>; $line=<f1>; foreach (<F1>){ print $_; c) Skriv et script, enum.pl, som leser inn sin egen kildekode, linje for linje, og som legger inn hver linje i en hash. Nøkkel i hashen skal være linjenummer og verdi selve linjen. Når innlesingen er ferdig skal innholdet av hashen skrives ut. Både nøkkel og verdi skal skrives ut, adskilt med kolon. Oppgave 6 - Powershell (10%) a) Skriv et powershell-script som gir samme output som perl-scriptet i forrige oppgave. Scriptet skal altså ved hjelp av en løkke skriver ut følgende: b) Skriv et powershell-script som krever to argumenter. Scriptet skal skrive ut teksten Powershell er x ganger bedre enn cmd!, der x er et tall, som er regnet ut ved å legge sammen argument 1 og argument 2. c) Følgende kommando gir størrelsen på filen test.txt i antall bytes: (ls test.txt).length Følgende kommando gir nøyaktig samme output: (ls test.txt).get_length(); Forklar forskjellen på disse kommandoene. d) Ville det gi mening å kjøre tilsvarende kommandoer i bash? Forklar. SLUTT 5