eksamensinformasjon - hioahaugerud/os/eksamen/eksamenv2018.pdfdata2500 2018 1/19 eksamensinformasjon...

23
DATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00 Hjelpemidler: Ingen hjelpemidler er tillatt. Andre opplysninger: Les nøye gjennom oppgavene før du begynner og pass på å besvare alle spørsmålene. Sett gjerne egne forutsetninger dersom du synes oppgaveteksten er uklar. Beskriv forutsetningene og løs oppgaven utifra dem. Maks poeng på de fleste av deloppgavene er 10 og de bidrar 3.33% hver til sluttpoengsummen som maksimalt er 300. Men legg merke til at deloppgavene 2 og 5(c) teller mer. Oppgave 2 teller 20% (60 poeng) og oppgåve 5(c) telller 10%(30 poeng). 1(a) Linux kommandolinje Hva blir i et standard bash-shell resultatet av kommandoen $ move /bin/rm /usr/bin Velg ett alternativ move: command not found move: cannot move '/bin/rm' to '/usr/bin/rm': Permission denied move: cannot open '/bin/rm' for reading: Permission denied Filen /bin/rm flyttes til katalogen /usr/bin Filen /bin/rm flyttes til filen /usr/bin Maks poeng: 10 1(b) Linux kommandolinje Hvilken kommando utfører kommandoen hostname på serveren os3.vlab.cs.hioa.no? Velg ett alternativ

Upload: others

Post on 14-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

1/19

EksamensinformasjonBokmålEksamensoppgave

Operativsystemer(DATA2500)Bokmål5.juni2018kl.9.00-12.00Hjelpemidler:Ingenhjelpemidlerertillatt.

Andreopplysninger:Lesnøyegjennomoppgaveneførdubegynnerogpasspååbesvareallespørsmålene.Settgjerneegneforutsetningerdersomdusynesoppgaveteksteneruklar.Beskrivforutsetningeneogløsoppgavenutifradem.

Makspoengpådeflesteavdeloppgaveneer10ogdebidrar3.33%hvertilsluttpoengsummensommaksimalter300.Menleggmerketilatdeloppgavene2og5(c)tellermer.Oppgave2teller20%(60poeng)ogoppgåve5(c)telller10%(30poeng).

1(a) LinuxkommandolinjeHvablirietstandardbash-shellresultatetavkommandoen$move/bin/rm/usr/binVelgettalternativ

move:commandnotfound

move:cannotmove'/bin/rm'to'/usr/bin/rm':Permissiondenied

move:cannotopen'/bin/rm'forreading:Permissiondenied

Filen/bin/rmflyttestilkatalogen/usr/bin

Filen/bin/rmflyttestilfilen/usr/bin

Makspoeng:10

1(b) LinuxkommandolinjeHvilkenkommandoutførerkommandoenhostnamepåserverenos3.vlab.cs.hioa.no?

Velgettalternativ

Page 2: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

2/19

Velgettalternativ

scphostnameos3.vlab.cs.hioa.no

sshhostnameos3.vlab.cs.hioa.no

sshos3.vlab.cs.hioa.nohostname

[email protected]

scpos3.vlab.cs.hioa.no:hostname.

wgetos3.vlab.cs.hioa.no/hostname

Makspoeng:10

1(c) LinuxkommandolinjeDuharenfilreadme.txtogutførerkommandoen$catreadme.txt>/dev/nullHvaskjer?Velgettalternativ

Innholdetireadme.txtleggestilinnholdetifilen/dev/null

Outputfracatomdirigerestil/dev/nullogforsvinner

Innholdetireadme.txtslettes

Ennytomfilmednavn/dev/nulllages

Innholdetireadme.txtlagresifilen/dev/null

Makspoeng:10

1(d) LinuxkommandolinjeDuharenfilbilermedfølgendeinnhold:$catbilerstudentbmw500000haugerudberlingo150000kyrreelbil90000HvilkenLinux-kommandoførertilfølgenderesultat?$kommandohaugerudberlingo150000studentbmw500000kyrreelbil90000

Velgettalternativ

Page 3: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

3/19

Velgettalternativ

sort-nbiler

sort-r-k1biler

sort-n-r-kbiler

sortbiler

sort-n-k3biler

sort-k2biler

Makspoeng:10

1(e) LinuxkommandolinjeGittfølgendefilmednavnindex.html:$catindex.html<!DOCTYPEhtml><htmlitemscopeitemtype="http://schema.org/Article"xmlns="http://www.w3.org/1999/xhtml"xml:lang="no"lang="no"><head><title>Hjem-HiOA</title><metaname="Content-Type"content="text/html;charset=utf-8"/><metaname="Content-language"content="no-bokmaal"/><metaname="MSSmartTagsPreventParsing"content="TRUE"/><metaname="generator"content="eZPublish"/><metaname="title"content="Hjem"/><metaitemprop="name"content="Hjem"><metaname="author"content=""/><metaname="p:domain_verify"content="3a11dc5033d5012ab4dce032cb87920c"/>Hvilkenkommandogirfølgendeoutput?$kommandoContent-TypeContent-languageMSSmartTagsPreventParsinggeneratortitleVelgettalternativ

catindex.html|grepname|tail-n5

tail-n5index.html|grepname|cut-d\"-f4

grepnameindex.html|head-n5|cut-d\"-f2

catindex.html|cut-f5|grepname|awk'{print$2}'

Makspoeng:10

2 Bash-scripting

Page 4: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

4/19

Idenneoppgavenskaldulageetshell-scriptmednavndshsomsetteroppetlitedistribuertshellsomdukanbruketilåkjørekommandoerpåandreLinux-maskinersomduharssh-tilgangtil.Brukerensomskalkjørescriptetharenfilsomheter~/hostsogsominnholdernavnetpåandreLinux-hostssomeierenavscriptethartilgangtilmedssh.Dennetilgangenersattoppmedssh-nøkler,slikatbrukerenkanloggeseginntildisseLinux-maskineneutenåtastepassord.Helttilsluttioppgavetekstenviseseteksempelpåhvordandshskalvirkenårmanbrukerdetogidettetilfelletinnholder~/hostsfølgende:$cat~/hostsnexus.cs.hioa.nostudssh.cs.hioa.notrident2.vlab.cs.hioa.no$Nårscriptetdshkjøres,kanduantaatallehostsi~/hostseroppeogkannåsmedsshutenåtastepassord.Detsomskalskjenårdustarterbash-scriptetdsheratdufåroppetpromptdsh$oghvisduskriverinneenkommandotildetteshelletsåskaldenutførespådenlokalemaskinen(rexidetteeksempelet)ogpåallemaskinersomliggerifilen~/hostsogresultatetvisesiterminalensomvistunder.Ettunntakerhvisbrukerenskriverinnkommandoenexittil$dsh,daskalshelletavsluttesogbrukerenskalkommetilbaketildetvanligelokalebash-shellet.Detteervisthelttilsluttieksempeletunder.Omduikkehuskersyntaksfornoenavbash-kommandoenedukanvelgeåbrukeidettescriptet,kandusepådennehjelpefilen.Ieksempeletundererallekommandoersombrukerenskriverinnvistmeduthevetfont.

$./dshdsh$whoami####rex####haugerud####nexus.cs.hioa.no####haugerud####studssh.cs.hioa.no####haugerud####trident2.vlab.cs.hioa.no####haugeruddsh$uname-r####rex####4.4.0-119-generic####nexus.cs.hioa.no####4.4.0-93-generic####studssh.cs.hioa.no####4.4.0-101-generic####trident2.vlab.cs.hioa.no####4.4.0-116-genericdsh$hostname####rex####rex####nexus.cs.hioa.no####nexus####studssh.cs.hioa.no####studssh####trident2.vlab.cs.hioa.no####trident2dsh$php-version####rex####PHP7.0.28-0ubuntu0.16.04.1(cli)(NTS)Copyright(c)1997-2017ThePHPGroupZendEnginev3.0.0,Copyright(c)1998-2017ZendTechnologieswithZendOPcachev7.0.28-0ubuntu0.16.04.1,Copyright(c)1999-2017,byZendTechnologies####nexus.cs.hioa.no####PHP7.0.22-0ubuntu0.16.04.1(cli)(NTS)Copyright(c)1997-2017ThePHPGroupZendEnginev3.0.0,Copyright(c)1998-2017ZendTechnologieswithZendOPcachev7.0.22-0ubuntu0.16.04.1,Copyright(c)1999-2017,byZendTechnologies####studssh.cs.hioa.no####

Page 5: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

5/19

bash:php:commandnotfound####trident2.vlab.cs.hioa.no####bash:php:commandnotfounddsh$exitAvslutterdsh$Skrivdittsvarher...

Words:0

Makspoeng:60

3(a) CogAssemblyHvaslagskodeerlistetoppivenstrekolonne?Finndesompassersammen

PowerShell Assembly Javabytecode bash C

ls-lscript.sh

getstatic#18

Get-ChildItem

#include<stdio.h>

add%rdx,%rbx

Makspoeng:10

3(b) CogAssemblyDukompilereretC-programmedgccprog.cHvainneholderfilena.outetterpå?

Velgettalternativ

Page 6: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

6/19

Velgettalternativ

Shellcode

Bytecode

Maskinkode

C-kode

Assemblykode

Makspoeng:10

3(c) CogAssemblyDukompilereretC-programmedgcc-Sprog.cHvainneholderfilenprog.setterpå?Velgettalternativ

Bytecode

Maskinkode

Assemblykode

Shellcode

C-kode

Makspoeng:10

3(d) CogAssemblyAntaatduharfølgendeC-programmednavnsvar.cpåenLinux-maskin:#include<stdio.h>intsvar=41;voidenlinje(){svar++;}intmain(){printf("Svar=%d\n",svar);printf("Kallerenlinje()...\n");enlinje();printf("Svar=%d\n",svar);}Forklarkorthvordandukompilererogkjørerdetteprogrammetietbash-shelloghvaoutputfraprogrammetblirnårdukjørerdet.

Skrivdittsvarher...

Page 7: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

7/19

Skrivdittsvarher...

Words:0

Makspoeng:10

3(e) CogAssemblyDuendrerlittpåsvar.cslikatdetserslikut#include<stdio.h>intsvar=41;externvoidenlinje();intmain(){printf("Svar=%d\n",svar);printf("Kallerenlinje()...\n");enlinje();printf("Svar=%d\n",svar);}oglageritilleggetprogramen.csomserslikut:voidenlinje(){externintsvar;svar++;}Forklarkorthvafølgendetrekommandoergjør:$gcc-csvar.c-osvar$gcc-cen.c-oen$gccsvaren-orunoghvordandunåkankjøreprogrammet.Restultatetblireksaktdetsammesomnårdukjørteprogrammetiforrigeoppgave.Forklarkorthvorforresultatetblirdetsamme.

Skrivdittsvarher...

Page 8: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

8/19

Skrivdittsvarher...

Words:0

Makspoeng:10

3(f) CogAssemblyDukjørersåkommandoen$gcc-Sen.cogdetlagesdaenfilen.smedfølgendeinnhold:.file"en.c".text.globlenlinje.typeenlinje,@functionenlinje:.LFB0:.cfi_startprocpushq%rbp.cfi_def_cfa_offset16.cfi_offset6,-16movq%rsp,%rbp.cfi_def_cfa_register6movlsvar(%rip),%eaxaddl$1,%eaxmovl%eax,svar(%rip)noppopq%rbp.cfi_def_cfa7,8ret.cfi_endproc.LFE0:.sizeenlinje,.-enlinje.ident"GCC:(Ubuntu5.4.0-6ubuntu1~16.04.9)5.4.020160609".section.note.GNU-stack,"",@progbitsForklarkorthvainnholdetavdennefilenerogspesielthvadetreheltsentralekodelinjenemovlsvar(%rip),%eaxaddl$1,%eaxmovl%eax,svar(%rip)

Page 9: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

9/19

gjør.(Merk:svar(%rip)erenminnereferansetilderiRAMhvordenglobalevariabelensvarligger).Skrivdittsvarher...

Words:0

Makspoeng:10

3(g) CogAssemblyDulagernåenfilminimal.smedfølgendeinnhold

.globlenlinjeenlinje:inclsvar(%rip)retoglardenerstatteen.svedåkjørekommandoen$gccsvarminimal.s-orunNårdunåkjørerprogrammetfårdunøyaktigsammeresultat.Forklarkorthvorforminimal.skanerstattefilenen.s.Detduharlærtidenneoppgavenerdetnyttigåtamedsegtilnesteoppgaveomsynkronisering.

Skrivdittsvarher...

Page 10: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

10/19

Skrivdittsvarher...

Words:0

Makspoeng:10

4(a) SynkroniseringFørdugjørdenneoppgavenbørdugjøreforrigeoppgaveCogAssemblydafunksjonenenlinje()ogsåbrukesidenneoppgavenogerfaringenefradenforrigeoppgavenerviktigeforåløsedenneomsynkronisering.Studerprogrammetthread.cogforklarikortetrekkdetvesentligstesomskjernårdetkjøres.#include<stdio.h>#include<stdlib.h>#include<pthread.h>intsvar=0;externvoidenlinje();void*inc(){printf("Starter;svarverdi:%d\n",svar);for(inti=0;i<10000000;i++){enlinje();}printf("Avslutter;svarverdi:%d\n",svar);}

intmain(){pthread_tthread1,thread2;pthread_create(&thread1,NULL,inc,NULL);pthread_create(&thread2,NULL,inc,NULL);pthread_join(thread1,NULL);pthread_join(thread2,NULL);printf("Mainavslutter;svarverdi:%d\n",svar);exit(0);}

Page 11: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

11/19

Funksjonenenlinje()erdensammesomioppgavenomCogAssemblyogliggerifilenen.c:

voidenlinje(){externintsvar;svar++;}Skrivdittsvarher...

Words:0

Makspoeng:10

4(b) SynkroniseringPåenLinuxmaskinmed8CPU'erkompilererduprogrammeneietbashshellpåfølgendemåte:

$gcc-cen.c-oen$gcc-c-pthreadthread.c-othread$gcc-pthreadenthread-orunDeretterkjørerduprogrammettogangerogresultatetblirfølgende:$./runStarter;svarverdi:0Starter;svarverdi:356150Avslutter;svarverdi:10112917Avslutter;svarverdi:10300354Mainavslutter;svarverdi:10300354$./runStarter;svarverdi:0Starter;svarverdi:618427Avslutter;svarverdi:6893160Avslutter;svarverdi:10868668Mainavslutter;svarverdi:10868668$Dukjørerprogrammet10gangertilogfåraldridetsammesvaret.Forklarkortdisseresultateneoghvasomkanværeårsakentilatresultateneblirforskjelligenårsammeprogramkjøresflereganger.

Skrivdittsvarher...

Page 12: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

12/19

Skrivdittsvarher...

Words:0

Makspoeng:10

4(c) SynkroniseringDukjørernåprogrammetpåenlittannenmåte:$taskset-c0./runStarter;svarverdi:0Starter;svarverdi:2441853Avslutter;svarverdi:15177160Avslutter;svarverdi:15922585Mainavslutter;svarverdi:15922585$taskset-c0./runStarter;svarverdi:0Starter;svarverdi:2599202Avslutter;svarverdi:17348681Avslutter;svarverdi:20000000Mainavslutter;svarverdi:20000000$taskset-c0./runStarter;svarverdi:0Starter;svarverdi:2592637Avslutter;svarverdi:18114661Avslutter;svarverdi:16272351Mainavslutter;svarverdi:16272351$taskset-c0./runStarter;svarverdi:0Starter;svarverdi:2975707Avslutter;svarverdi:17711781Avslutter;svarverdi:20000000Mainavslutter;svarverdi:20000000$taskset-c0./runStarter;svarverdi:0Starter;svarverdi:2803083Avslutter;svarverdi:17302934Avslutter;svarverdi:20000000Mainavslutter;svarverdi:20000000Treavgangeneblirsvaretnå20000000.Forklarhvordanprogrammetkjøresmeddennebrukenavtasksetoghvasomerforskjelligfranårmanbarekjørerdetmed./run.Prøvåforklarehvasomkanværeårsakentilatsvaretnårelativtofteblir20000000menikkealltid.

Page 13: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

13/19

Skrivdittsvarher...

Words:0

Makspoeng:10

4(d) SynkroniseringDubrukernåerfaringenefraoppgavenCogAssemblyogbrukerfilenminimal.s

.globlenlinjeenlinje:inclsvar(%rip)rettilålageennyversjonavprogrammetmed$gcc-pthreadthreadminimal.s-orunNårdunåkjørerdetteprogrammet,fårduhverenestegangnøyaktigdetsammesvaret:$taskset-c0./runStarter;svarverdi:0Starter;svarverdi:3155197Avslutter;svarverdi:17310147Avslutter;svarverdi:20000000Mainavslutter;svarverdi:20000000$taskset-c0./runStarter;svarverdi:0Starter;svarverdi:2828311Avslutter;svarverdi:18090712Avslutter;svarverdi:20000000Mainavslutter;svarverdi:20000000$taskset-c0./runStarter;svarverdi:0Starter;svarverdi:3078129Avslutter;svarverdi:17417198Avslutter;svarverdi:20000000Mainavslutter;svarverdi:20000000$taskset-c0./runStarter;svarverdi:0Starter;svarverdi:2946892

Page 14: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

14/19

Avslutter;svarverdi:18163634Avslutter;svarverdi:20000000Mainavslutter;svarverdi:20000000Foklarpåhvilkenmåtedetresulterendeprogrammetrunendresnårduburkerminimal.soghvorfordunåfårdetsammeresulatet20000000hvergang.Skrivdittsvarher...

Words:0

Makspoeng:10

4(e) SynkroniseringDukjørersåprogrammetlagetmedminimal.sutentasksetpåfølgendemåte:$./runStarter;svarverdi:0Starter;svarverdi:613327Avslutter;svarverdi:7947390Avslutter;svarverdi:11029945Mainavslutter;svarverdi:11029945$./runStarter;svarverdi:0Starter;svarverdi:878021Avslutter;svarverdi:9865620Avslutter;svarverdi:11007289Mainavslutter;svarverdi:11007289$./runStarter;svarverdi:0Starter;svarverdi:888015Avslutter;svarverdi:8496452Avslutter;svarverdi:10370608Mainavslutter;svarverdi:10370608ogdufåraldridetsammesvaret.Forklarhvordandettekanværemuligtiltrossforatdubrukerminimal.s.

Skrivdittsvarher...

Page 15: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

15/19

Skrivdittsvarher...

Words:0

Makspoeng:10

4(f) SynkroniseringDuerstatternåminimal.smedlockMinimal.ssomserslikut.globlenlinjeenlinje:lockinclsvar(%rip)retoglagerrunpåfølgendemåte:$gcc-pthreadthreadlockMinimal.s-orunDeretterkjørerduprogrammetenrekkeganger$./runStarter;svarverdi:0Starter;svarverdi:199526Avslutter;svarverdi:19732245Avslutter;svarverdi:20000000Mainavslutter;svarverdi:20000000$./runStarter;svarverdi:0Starter;svarverdi:250043Avslutter;svarverdi:19744429Avslutter;svarverdi:20000000Mainavslutter;svarverdi:20000000$./runStarter;svarverdi:0Starter;svarverdi:219440Avslutter;svarverdi:19799083Avslutter;svarverdi:20000000Mainavslutter;svarverdi:20000000oghverenestegangdukjørerblirsvaretnå20000000.Forklarhvasomnåskjeroghvordanendringenframinimal.stillockMinimal.sførtetildette.

Page 16: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

16/19

Skrivdittsvarher...

Words:0

Makspoeng:10

4(g) SynkroniseringStuderfølgendepseudo-kodesomdefinerertometoderforåserialiseretrådersomkjørersamtidigoguavhengigavhverandre:staticbooleanlock=false;//fellesvariabelGetMutex(lock){while(lock){}//ventertillockblirfalselock=true;}ReleaseMutex(lock){lock=false;}Tankeneratmetodeneskalbrukespåfølgendemåteavtrådersomskalkjøreetkritiskavsnitt:GetMutex(lock);KritiskAvsnitt();ReleaseMutex(lock);Forklarkorthvordanmetodenesørgerforserialiseringogpåviseventuelttifellerhvorløsningenikkefungerer.

Skrivdittsvarher...

Page 17: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

17/19

Skrivdittsvarher...

Words:0

Makspoeng:10

5(a) PowerShellHvordanfinnerduuthvilkepropertiesogmetodersomobjektenesomreturneresavkommandoenls(somegentligeretaliasforGet-Childitem)har?Velgettalternativ

ls|grepProperty

Get-Properties|ls

ls.GetProperty

(ls).GetProperty

ls|Get-Member

Makspoeng:10

5(b) PowerShellStuderresultatetavfølgendekommandoerutførtietPowerShell:PSC:\Users\haugerud>$now=Get-DatePSC:\Users\haugerud>$now-(ls)[0].CreationTime

Days:1587Hours:18Minutes:49Seconds:27Milliseconds:73Ticks:1371845670739206TotalDays:1587,78434113334TotalHours:38106,8241872002TotalMinutes:2286409,45123201

Page 18: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

18/19

TotalSeconds:137184567,073921TotalMilliseconds:137184567073,921SkrivsånedenPowerShellone-linersomgirdeghvormangedagergammelfilenfil.txter.Dukanantaatfilenliggerimappenduståriogresultatetavkommandoenskalværeiantalldagermeddesimaler.Skrivdittsvarher...

Words:0

Makspoeng:10

5(c) PowerShellIdenneoppgavenskalduskriveetPowerShellscriptmednavnalder.ps1somnårdetkjøresgirdeggjennomsnittligalderforallefilerogmapperidenmappensomscriptetkjøresi.Alderenforenfilerantalldagersidendenblelaget,hvordagerergittmeddesimaler.Nårdukjørerscriptetskaloutputtilsvaredetsomergittifølgendeeksempel:PSC:\Users\haugerud>.\alder.ps1Snitt-alder1364,83201319544dagerfor28filerogmapperPSC:\Users\haugerud>Hvisduskulleløsedenneoppgavenoghaddetilgangtilenweb-browser,villedukanskjegoogleetter"PowerShellforeach"ogdennesideneretavdeførstetreffenefordettesøket.

Skrivdittsvarher...

Page 19: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

DATA25002018

19/19

Skrivdittsvarher...

Words:0

Makspoeng:30

Page 20: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

Question_2.a_info.txt Sun Jul 08 15:39:16 2018 1

$ man echo

ECHO(1) User Comma

nds ECHO(1)

NAME

echo - display a line of text

SYNOPSIS

echo [SHORT-OPTION]... [STRING]...

echo LONG-OPTION

DESCRIPTION

Echo the STRING(s) to standard output.

-n do not output the trailing newline

-e enable interpretation of backslash escapes

-E disable interpretation of backslash escapes (default)

--help display this help and exit

--version

output version information and exit

If -e is in effect, the following sequences are recognized:

\\ backslash

\a alert (BEL)

\b backspace

\c produce no further output

\e escape

\f form feed

\n new line

\r carriage return

\t horizontal tab

\v vertical tab

\0NNN byte with octal value NNN (1 to 3 digits)

\xHH byte with hexadecimal value HH (1 to 2 digits)

NOTE: your shell may have its own version of echo, which usually supersedes the ve

rsion described here. Please refer to your shell’s documentation for details about

the options it supports.

AUTHOR

Written by Brian Fox and Chet Ramey.

REPORTING BUGS

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>

Report echo translation bugs to <http://translationproject.org/team/>

COPYRIGHT

Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3

or later <http://gnu.org/licenses/gpl.html>.

This is free software: you are free to change and redistribute it. There is NO WARR

ANTY, to the extent permitted by law.

Page 21: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

Question_2.a_info.txt Sun Jul 08 15:39:16 2018 2

SEE ALSO

Full documentation at: <http://www.gnu.org/software/coreutils/echo>

or available locally via: info ’(coreutils) echo invocation’

GNU coreutils 8.25 February 2

016 ECHO(1)

$ help for

for: for NAME [in WORDS ... ] ; do COMMANDS; done

Execute commands for each member in a list.

The ‘for’ loop executes a sequence of commands for each member in a

list of items. If ‘in WORDS ...;’ is not present, then ‘in "$@"’ is

assumed. For each element in WORDS, NAME is set to that element, and

the COMMANDS are executed.

Exit Status:

Returns the status of the last command executed.

$help while

while: while COMMANDS; do COMMANDS; done

Execute commands as long as a test succeeds.

Expand and execute COMMANDS as long as the final command in the

‘while’ COMMANDS has an exit status of zero.

Exit Status:

Returns the status of the last command executed.

$help read

read: read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t t

imeout] [-u fd] [name ...]

Read a line from the standard input and split it into fields.

Reads a single line from the standard input, or from file descriptor FD

if the -u option is supplied. The line is split into fields as with word

splitting, and the first word is assigned to the first NAME, the second

word to the second NAME, and so on, with any leftover words assigned to

the last NAME. Only the characters found in $IFS are recognized as word

delimiters.

If no NAMEs are supplied, the line read is stored in the REPLY variable.

Options:

-a array assign the words read to sequential indices of the array

variable ARRAY, starting at zero

-d delim continue until the first character of DELIM is read, rather

than newline

-e use Readline to obtain the line in an interactive shell

-i text Use TEXT as the initial text for Readline

-n nchars return after reading NCHARS characters rather than waiting

for a newline, but honor a delimiter if fewer than NCHARS

characters are read before the delimiter

-N nchars return only after reading exactly NCHARS characters, unless

EOF is encountered or read times out, ignoring any delimiter

-p prompt output the string PROMPT without a trailing newline before

Page 22: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

Question_2.a_info.txt Sun Jul 08 15:39:16 2018 3

attempting to read

-r do not allow backslashes to escape any characters

-s do not echo input coming from a terminal

-t timeout time out and return failure if a complete line of input is

not read within TIMEOUT seconds. The value of the TMOUT

variable is the default timeout. TIMEOUT may be a

fractional number. If TIMEOUT is 0, read returns immediately,

without trying to read any data, returning success only if

input is available on the specified file descriptor. The

exit status is greater than 128 if the timeout is exceeded

-u fd read from file descriptor FD instead of the standard input

Exit Status:

The return code is zero, unless end-of-file is encountered, read times out

(in which case it’s greater than 128), a variable assignment error occurs,

or an invalid file descriptor is supplied as the argument to -u.

Page 23: Eksamensinformasjon - HiOAhaugerud/os/eksamen/eksamenV2018.pdfDATA2500 2018 1/19 Eksamensinformasjon Bokmål Eksamensoppgave Operativsystemer (DATA2500) Bokmål 5. juni 2018 kl. 9.00-12.00

Question_5.c_foreach.txt Sun Jul 08 15:39:16 2018 1

ForEach (loop statement)

Loop through a set of input objects and perform an operation (execute a block of statements

) against each.

Syntax

ForEach (item In collection) {ScriptBlock}

key

item A variable to hold the current item

collection A collection of objects e.g. filenames, registry keys, servernames

ScriptBlock A block of script to run against each object.

The collection will be evaluated and stored as an array in memory before the scriptblock is

executed.

The foreach statement does not use pipelining (unlike ForEach-Object ) If you use foreach i

n a command pipeline PowerShell will actually run the foreach alias that calls ForEach-Obje

ct.

Use the ForEach statement when the collection of objects is small enough that it can be loa

ded into memory.

Use the ForEach-Object cmdlet when you want to pass only one object at a time through the p

ipeline, minimising memory usage. In most cases ForEach will run faster than ForEach-Object

, there are exceptions, such as starting multiple background jobs. If in doubt test both op

tions with Measure-Command.

In PowerShell 4.0 and later, the ForEach method provides even faster performance.

Examples

Loop through an array of strings:

$trees = @("Alder","Ash","Birch","Cedar","Chestnut","Elm")

foreach ($tree in $trees) {

"$tree = " + $tree.length

}

Loop through a collection of the numbers, echo each number unless the number is 2:

foreach ($num in 1,2,3,4,5) {

if ($num -eq 2) { continue } ; $num

}

Loop through a collection of .txt files:

foreach ($file in get-ChildItem *.txt) {

Echo $file.name

}

"The only way to do great work is to love what you do. If you haven’t found it yet, keep lo

oking. Don’t settle. As with all matters of the heart, you’ll know when you find it" - Stev

e Jobs

Related:

$foreach variable - Refers to the enumerator in a foreach loop.

Break statement

Continue statement

ForEach-Object - Loop for each object in the pipeline (foreach)

ForEach (method) - Loop through items in a collection

For - Loop through items that match a condition

IF - Conditionally perform a command

Switch - Multiple if statements

While - Loop while a condition is True