ebook img

Eksamensoppgaver i Operativsystemer og Unix PDF

254 Pages·2017·1.17 MB·Norwegian
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Eksamensoppgaver i Operativsystemer og Unix

Eksamensoppgaver i Operativsystemer og Unix H˚arek Haugerud avdeling for ingeniørutdanning Høgskolen i Oslo Contents 1 Eksamen høsten 1998 Operativsystemer og UNIX 1 1.1 Løsningsforslag. Eksamen høsten 1998 Operativsystemer og UNIX . . . . . . . . . . . . . 4 2 Eksamen v˚aren 1999 Operativsystemer og UNIX 9 2.1 Løsningsforslag. Eksamen v˚aren 1999 Operativsystemer og UNIX . . . . . . . . . . . . . . 12 3 Eksamen høsten 1999 Operativsystemer og UNIX 16 3.1 Løsningsforslag. Eksamen høsten 1999 Operativsystemer og UNIX . . . . . . . . . . . . . 21 4 Eksamen v˚aren 2000 Operativsystemer og UNIX 25 4.1 Løsningsforslag. Eksamen v˚aren 2000 Operativsystemer og UNIX . . . . . . . . . . . . . . 29 5 Eksamen høsten 2000 Operativsystemer og UNIX 33 5.1 Løsningsforslag til eksamen høsten 2000 Operativsystemer og UNIX . . . . . . . . . . . . 38 6 Eksamen v˚aren 2001 Operativsystemer og UNIX 43 6.1 Løsningsforslag,Eksamen v˚aren 2001 Operativsystemer og UNIX . . . . . . . . . . . . . . 49 7 Eksamen høst 2001 Operativsystemer og UNIX 55 7.1 Løsningsforslag til eksamen høsten 2001 Operativsystemer og UNIX . . . . . . . . . . . . 61 8 Eksamen v˚ar 2002 Operativsystemer og UNIX 67 8.1 Løsningsforslag til eksamen v˚aren 2002 Operativsystemer og UNIX . . . . . . . . . . . . . 73 9 Eksamen høst 2002 Operativsystemer og UNIX 79 9.1 Løsningsforslagtil eksamen høst 2002,Operativsystemer og UNIX . . . . . . . . . . . . . 84 10 Eksamen v˚ar 2003 Operativsystemer og UNIX 88 10.1 Løsningsforslag til eksamen v˚aren 2003 Operativsystemer og UNIX . . . . . . . . . . . . . 93 11 Eksamen høst 2003 Operativsystemer og UNIX 97 11.1 Løsningsforslagtil eksamen høst 2003,Operativsystemer og UNIX . . . . . . . . . . . . . 102 12 Eksamen v˚ar 2004 Operativsystemer og UNIX 106 12.1 Løsningsforslag Eksamen v˚ar 2004 Operativsystemer og UNIX . . . . . . . . . . . . . . . 111 ii 13 Eksamen høst 2004 Operativsystemer og UNIX 114 13.1 LøsningsforslagEksamen høst 2004 Operativsystemer og UNIX . . . . . . . . . . . . . . . 119 14 Eksamen v˚ar 2005 Operativsystemer og UNIX 123 14.1 Løsningsforslag. Eksamen v˚ar 2005 Operativsystemer og UNIX . . . . . . . . . . . . . . . 128 15 Eksamen høst 2005 Operativsystemer og UNIX 131 15.1 LøsningsforslagEksamen høst 2005 Operativsystemer og UNIX(LO141A) . . . . . . . . . 136 16 Eksamen v˚ar 2006 Operativsystemer og UNIX 140 16.1 Løsningsforslageksamen v˚ar 2006 Operativsystemer og UNIX . . . . . . . . . . . . . . . . 145 17 Eksamen høst 2006 Operativsystemer og UNIX 149 17.1 LøsningsforslagEksamen høst 2006 Operativsystemer og UNIX(LO141A) . . . . . . . . . 155 18 Eksamen v˚aren 2007 Operativsystemer og UNIX 159 18.1 LøsningsforslagEksamen v˚aren 2007 Operativsystemer og UNIX . . . . . . . . . . . . . . 164 19 Eksamen v˚aren 2008 Unix og Operativsystemer 168 19.1 Løsningsforslagv˚aren 2008 Unix og Operativsystemer . . . . . . . . . . . . . . . . . . . . 173 20 Eksamen høsten 2008 Operativsystemer og Unix 177 20.1 Eksamen høsten 2008 Operativsystemer og Unix . . . . . . . . . . . . . . . . . . . . . . . 182 21 Eksamen v˚aren 2009 Operativsystemer og Unix 186 21.1 Løsningsforslag,eksamen v˚aren 2009 Operativsystemer og Unix . . . . . . . . . . . . . . . 191 22 Eksamen Høsten 2009 Operativsystemer og Unix 196 22.1 LøsningsforslagEksamen Høsten 2009 Operativsystemer og Unix . . . . . . . . . . . . . . 202 23 Eksamen v˚aren 2010 Operativsystemer og Unix 206 23.1 Løsningsforslagv˚aren 2010 Operativsystemer og Unix . . . . . . . . . . . . . . . . . . . . 211 24 Eksamen høsten 2010 Operativsystemer og Unix 216 24.1 Løsningsforslageksamen høsten 2010 Operativsystemer og Unix . . . . . . . . . . . . . . . 220 25 Eksamen v˚aren 2011 Operativsystemer og Unix 224 iii 25.1 Løsningsforslag,eksamen v˚aren 2011 Operativsystemer og Unix . . . . . . . . . . . . . . . 230 26 Eksamen høsten 2011 Operativsystemer og Unix 234 26.1 Løsningsforslag,Eksamen høsten 2011 Operativsystemer og Unix . . . . . . . . . . . . . . 239 27 Eksamen v˚aren 2012 Operativsystemer 243 27.1 Eksamen v˚aren 2012 Operativsystemer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 iv oppgavetekst 1 1 Eksamen høsten 1998 Operativsystemer og UNIX Les nøye gjennom oppgavene før du begynner og pass p˚a˚a besvare alle spørsm˚alene. Alle hjelpemidler er tillatt. De som ønsker det kan besvare oppgavene eller deler av oppgavene p˚a engelsk. Deloppgavene vil ikke bli vektlagt likt ved sensur. En sannsynlig fordeling er: vekt 1 for alle deloppgaver med untak av 2a (vekt 4), 2b (vekt 4), 3a (vekt 4) og 4d (vekt 8) Oppgave 1 I denne oppgaven skal du for hvert delspørsm˚al løse problemet ved˚a angi en UNIX-kommando p˚a en linje; slik du ville ha tastet den inn til et vanlig C-shell fra tastaturet (du svarer f. eks. mkdir kat hvis du blir spurt om hvordan du oppretter en katalog med navn kat). a) Endre rettighetene til katalogen www øverst p˚a ditt hjemmeomr˚ade og til alle dens filer og under- kataloger, slik at du har alle rettigheter mens alle andre kun kan lese og kjøre filer under www. b) Kopier alle filer i katalogen du st˚ar i som slutter p˚a .java til katalogen over deg. c) List alle linjer i filen /etc/passwd som inneholder strengen ”haugerud”. d) Finn ut om filene fil1 og fil2 i katalogen du st˚ar er like. e) Lagre alle linjer som inneholder ditt brukernavn i listingen av prosesser p˚a din lokale maskin i filen proc.txt f) Sett DISPLAY variabelen til axis:0 g) Du har en fil i katalogen du st˚ar i som heter -x og prøver ˚a kopiere den til katalogen tmp med cp -x tmp, men f˚ar beskjed om missing file argument. Hvorfor f˚ar du denne meldingen ? Hvordan kan du f˚a utført operasjonen ? Oppgave 2 a) Lag et C-shell script som ved hjelp av /usr/bin/rsh sjekker at demonen lpd g˚ar p˚a alle mask- inenesomerlistetifilen~/.rhosts. Scriptetskalforhverhostskrivehost-navnettilskjermenogderetter linjen i prosess-listingen som inneholder lpd. Prøv˚a unng˚a at prosessen du bruker for˚a liste prosesser ogs˚a listes p˚a skjermen. Hvis en maskin er nede, skal ikke scriptet kjøre /usr/bin/rsh mot den, for da vil scriptet henge, men gi en melding til skjermenom at maskinenikke er tilgjengelig. Hvilken nytte har man av ~/.rhosts ? b) Anta at du har en fil brukere.txt som kun inneholder et antall brukernavn p˚a det lokale UNIX- systemet. Disse brukerne skal forventes˚a ha en katalog ~/oblig1 som inneholder et program delete. Du ønsker˚a teste om delete-programmene hos brukerne virker og vil derfor kopiere dem til ditt eget hjemmeomr˚ade under katalogen ~/brukere. Lag et C-shell script som utfører denne jobben. Hvis katalogen ~/oblig1 ikke eksisterer skal scriptet sende en mail til brukeren med beskjed. Hvis katalogen eksisterer, men ikke filen delete, skal scriptet sendeenmailtilbrukerenomdet. Hvis~/oblig1/deleteeksistererskaldetlagesenkatalogmedsamme navn som brukeren under din egen katalog ~/brukere og delete legges i denne katalogen. Scriptet skal fortløpendeskrivebeskjedertilskjermenomhvasomblirgjort(dukanantaatdukankjørescriptetmed root-rettigheter, slik at du har tilgang til alle kataloger). Oppgave 3 2 Eksamen høsten 1998 Operativsystemer og UNIX a) Et OS har i sin ready-list tre prosesser P1,P2 og P3 som kom inn i nevnte rekkefølge. Anta at ingen nye prosesserblirlagtinni ready-listmens disse prosessenekjører. CPU-tidsforbruketerkjent forde tre prosessene og er: TP1 = 75µs, TP2 = 50µs og TP3 = 100µs. Tegn figurer med horisontal tidsakse med µssomenhetsomviserhvordanogihvilkenrekkefølgeOS’etutførerprosessene,n˚aroperativsystemeter: 1) single tasking og bruker FCFS-kø 2) single tasking og bruker SJF-kø 3) multitasking og bruker Round Robin scheduling med timeslice =50µs De tre figurene m˚a indikere tidspunktene OS’et starter og stopper prosessene. b) Forklar kort hva en context-switch er. c) Anta at OS’et i Round Robin eksempelet bruker 5µs p˚a en context-switch. Tegn figuren til Round Robin eksempelet p˚a nytt og la context-switch tiden inng˚a . d) Hvorfor bør ikke en timeslice være for liten ? e) Forklar hvordan et OS kan prioritere prosesser i en Round Robin kø forskjellig. Oppgave 4 a) nexus.iu.hioslo.no har IP-adresse 128.39.89.10. Hvilke deler av nexus.iu.hioslo.no er henholdsvis host- name og domain-name ? b) netmask er her 255.255.255.0. Hva i nexus sin IP-adresseidentifiserer henholdsvis nettverketnexus er p˚a og hvilket host-nummer nexus er p˚a dette nettverket. Forklar. c) Hva er en nameserver og hvorfor er den nødvendig ? d) Vi skal n˚a ta utgangspunkt i et standard client/server par som kommuniserer over en socket og lage en enkelnameserversom kan giriktige IP-adressertil clients somspørr. Anta at nameserverstartes opp i en katalog hvor det ligger en fil name.txt med innhold p˚a formen: waldo.iu.hioslo.no 128.39.89.251 nexus.iu.hioslo.no 128.39.89.10 axis.iu.hioslo.no 128.39.89.239 Nameserveren skal kunne gi tilbakemelding til client om alle IP-adresser som er lagret i denne filen. nameserver/clientparet skal fungere som følger (anta at du starter nameserver p˚a maskinen axis): axis% nameserver 9500 Da skal en client-sesjon p˚a f. eks. waldo foreg˚a som følger: waldo% client 9500 axis lookup> nexus.iu.hioslo.no 128.39.89.10 lookup> 128.39.89.251 waldo.iu.hioslo.no lookup> wronglon.iu.hioslo.no Can’t find wronglon.iu.hioslo.no lookup> tull Can’t find tull Brukerenskal alts˚a f˚a svar om han angir et komplett maskin-navneller en IP-adressesomst˚ar i tabellen oppgavetekst 3 name.txt. lookup> er et prompt som skrives til skjermen av client-programmet. Du kan godt overlate det meste av jobben til nameserver; slik at client bare sender all bruker-input over socket’en til name- serveren og skriver alt den mottar over socket’en til skjermen. Velg selv om du vil bruke print SOCKET og <SOCKET> eller send(SOCKET,$string,”0”)og recv(SOCKET,$buffer,$BUFFSIZE,”0”). Lagclient-programmetognameserver-programmetved˚afylleut”innmaten”idetofølgendeprogram(du trenger ikke˚a gjengi denne teksten i besvarelsen; bare angi hvilke programbitersomtilhører henholdsvis nameserver og client. #! /usr/bin/perl # Usage: nameserver 9500 use Socket; use FileHandle; $port = shift || 9500; socket (SOCKET, PF INET, SOCK STREAM, getprotobyname(’tcp’)); bind (SOCKET, pack(’Sna4x8’, AF INET, $port, ”\0\0\0\0”)) or die ”Can’t bind to port $port!”; listen (SOCKET, 5); NEW SOCKET->autoflush(); SOCKET->autoflush(); while (1) #evig løkke { accept(NEW SOCKET, SOCKET); # En client har her koblet seg opp og programmet # er n˚a klar til˚a motta og sende data over NEW SOCKET # Skriv nameserver-kodesom passer inn her og lever den med besvarelsen } #! /usr/bin/perl # Usage: client hostport hostname use Socket; use FileHandle; ($port, $server) = @ARGV; $port && $server or die ”Please supply both port and server.”; socket (SOCKET, PF INET, SOCK STREAM, (getprotobyname(’tcp’))[2]); connect (SOCKET, pack(’Sna4x8’, AF INET, $port, (gethostbyname($server))[4])) or die ”Can’t connect to server $server on port $port.\n”; SOCKET->autoflush(); # Er n˚a klar til˚a sende og motta data over SOCKET # Skriv client-kode som passer inn her og lever den med besvarelsen –SLUTT– 4 Løsningsforslag. Eksamenhøsten1998OperativsystemerogUNIX 1.1 Løsningsforslag. Eksamen høsten 1998 Operativsystemer og UNIX Oppgave 1 a) chmod -R 755 ~/www eller: chmod -R a+rx-w,u+w ~/www b) cp *.java .. eller: cp *.java ../ c) grep haugerud /etc/passwd eller: cat /etc/passwd | grep haugerud eller: awk ’/haugerud/’ /etc/passwd eller: awk /haugerud/ /etc/passwd d) diff fil1 fil2 e) ps aux | grep $user > proc.txt eller: ps ux > proc.txt(men noen prosesser kan da mangle) f) setenv DISPLAY axis:0 g) cp ./-x tmp -x tolkes som et flagg til cp. Oppgave 2 a) #! /bin/csh -f foreach host (‘cat ~/.rhosts‘) set alive = ‘fping $host | grep alive‘ if("$alive" == "") then echo $host er ikke tilgjengelig else echo $host /usr/bin/rsh $host ps aux | grep lpd | grep -v grep endif end Har man filen ~/.rhosts under ~, kan man bruke /usr/bin/rsh mot maskiner listet i denne filen, uten ˚a m˚atte oppgi passord. b) #! /bin/csh -f foreach stud (‘cat brukere.txt‘) if(! -d ~$stud/oblig1) then echo "Du har ikke ~$stud/oblig1" | mail $stud echo "~$stud/oblig1 eksisterer ikke" else if(! -e ~$stud/oblig1/delete) then echo "Du har ikke ~$stud/oblig1/delete" | mail $stud echo "~$stud/oblig1/delete eksisterer ikke" else mkdir ~/brukere/$stud cp ~$stud/oblig1/delete ~/brukere/$stud echo "kopierer ~$stud/oblig1/delete til ~/brukere/$stud" endif endif end Oppgave 3 a) Se Figure 1 løsningsforslag 5 1) P P P 1 2 3 µs 0 75 125 225 2) P2 P 1 P3 0 50 125 225 µs 3) P P P P P 1 2 3 1 3 µs 0 50 100 150 175 225 Figure 1: 3a) b) Context-switch er den operasjonen OS’et gjør n˚ar den bytter prosessen den kjører ut med en ny prosess fra ready-list. OS lagrer all info om prosessen som skal ut og laster bl. a. inn i CPU-registerne det samme innholdet de hadde da den nye prosessen tidligere ble stoppet. c) Se Figure 2 d) Hvis timeslice er for liten g˚ar for mye tid med til context-switching. e) OS’et kan gi større timeslice til prosessermed høy prioritet, eventuelt starte jobber med høy prioritet oftere i Round Robin køen. Oppgave 4 a) host-name: nexus og domain-name: iu.hioslo.no b) nettverk: 128.39.89 og host: 10. Bitene som er satt i netmask identifiserer nettverket. c)Enserversom‘oversetter’mellomhost.domain-nameogIP-adresser. Trengerdenfordietdomenenavn ikke entydig spesifiserer et nettverk, men kun brukes fordi det er lett˚a huske. d) client: print "nameserver> "; while ($userIn = <STDIN>) { print SOCKET "$userIn"; $socIn = <SOCKET>; print $socIn; print "nameserver> "; } close SOCKET; 6 Løsningsforslag. Eksamenhøsten1998OperativsystemerogUNIX nameserver: while ($query = <NEW_SOCKET>) { chomp $query; open (NAME, "name.txt"); $OK = ""; while ($line = <NAME>) { @arr = split(" ",$line); if($arr[0] eq $query) { print NEW_SOCKET "$arr[1]\n"; $OK = "true"; } elsif($arr[1] eq $query) { print NEW_SOCKET "$arr[0]\n"; $OK = "true"; } } close(NAME); if(not $OK) { print NEW_SOCKET "Nameserver can’t find: $query\n"; } } client med send/recv: $BUFFSIZE= 1000; print "nameserver> "; while ($userIn = <STDIN>) { send(SOCKET,"$userIn","0"); recv(SOCKET,$query,$BUFFSIZE,"0"); print $query; print "nameserver> "; } close SOCKET; nameserver med send/recv: while (1) { recv(NEW_SOCKET,$query,$BUFFSIZE,"0"); last if($query eq ""); # ellers t\aa ler ikke server at client slutter/drepes chomp $query; open (NAME, "name.txt"); $OK = ""; while ($line = <NAME>) { @arr = split(" ",$line); if($arr[0] eq $query) { send(NEW_SOCKET,"$arr[1]\n","0");

Description:
matematisk rekke. Det bruker ca. 5 sekunder på å regne ut ver- dien av π og skriver ut resultatet når det er ferdig. Anta at du kjører perl-scriptet til høyre på $ordbok = $_[0];. $hash = $_[1];. $salt = $_[2]; open(FIL,"/usr/share/dict/$ordbok"); while($ord = ) { chomp($ord);. $streng = cr
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.