Operativsystemer og nettverk



Like dokumenter
Operativsystemer og nettverk

Ny EKSAMEN. Operativsystemer og nettverk

Filterprogrammer og redirigering av I/O

Filterprogrammer og redirigering av I/O

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

Betinget eksekvering og logiske tester i shell

Lynkurs i shellprogrammering under Linux

Løsningsforslag til eksamen 24. november 2015

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

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

Filsystemet fra innsiden

Generelt om permanent lagring og filsystemer

Filer i Linux og Bourne-again shell

Filer i Linux og Bourne-again shell

Oppgave 1 - Linux kommandolinje (%)

Oppgave 1 - Java og prosesser (20%)

Filer og kataloger, prosesser og jobber

Filer og filsystemer i Linux

Håndtering av filer og kataloger

Generelt om operativsystemer

Håndtering av tekstfiler

EKSAMEN. Operativsystemer og nettverk

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

Prøve- EKSAMEN. Operativsystemer med Linux

Shellscripting I. Innhold

EKSAMEN Innføring i Linux

Operativsystemer og grensesnitt

Generelt om operativsystemer

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

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

EKSAMEN. Operativsystemer. Dato: 10. desember 2008 Eksamenstid: kl til kl

Linux distribusjoner

Shellprogrammer og -variabler

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO

Håndtering av tekstfiler

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning Data

Læringsmål og pensum. v=nkiu9yen5nc

Fjerninnlogging over Internett

Scheduling og prosesshåndtering

Definisjon av prosess

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

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

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Videregående shellprogrammering

1. Introduksjon til operativsystemer

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

Linux-programmer som bruker regulæruttrykk: grep, sed, awk

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

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

Filsikkerhet i Linux

UNIVERSITETET I OSLO

1 Diverse linuxtips. Innhold

"How I hate this damned machine, I wish that I could sell it, It never does what I want it to, But only what I tell it".

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

EKSAMEN Innføring i Linux

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Håndtering av filer og kataloger

TDT4110 IT Grunnkurs Høst 2015

AlgDat 12. Forelesning 2. Gunnar Misund

Generelt om shell / skall

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

1 Diverse linuxtips. Innhold. 1.1 Klipp og lim med musen

Installasjonsveiledning

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Videregående shellprogrammering i Linux

Oppgave: FIL File Paths

6105 Windows Server og datanett

Oppgaver til forkurs i informatikk dag 1

6105 Windows Server og datanett

Litt om Javas class-filer og byte-kode

Linux-kommandolinje for nybegynnere. PVV-kurs

Concurrency. Lars Vidar Magnusson. September 20, Lars Vidar Magnusson () Forelesning i Operativsystemer September 20, / 17

HØGSKOLEN I SØR-TRØNDELAG

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.)

Læringsmål og pensum. Oversikt. Systemprogramvare Operativsystemer Drivere og hjelpeprogrammer. To hovedtyper programvare

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

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

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

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

Oppgaver til forkurs i informatikk dag 2

Matematikk Øvingsoppgaver i numerikk leksjon 5 Skript

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

Kjenn din pc (Windows Vista)

Høgskolen i Telemark Fakultet for allmennvitenskapelige fag

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

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

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

Del 1 En oversikt over C-programmering

UNIVERSITETET I OSLO

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

Transkript:

Løsningsforslag til eksamen i Operativsystemer og nettverk 04.06.2015 Oppgave 1: Generelt om Linux a) Det grunnleggende brukergrensesnittet i Linux er et tastaturbasert CUI (Commandline User Interface), men alle Linux-systemer leveres i dag også med et GUI (Graphical User Interface) basert på the X Window System. Gi korte svar på følgende to spørsmål: 1. Hva er den grunnleggende forskjellen mellom et CUI og et GUI? CUI: Tastaturet er den enheten som brukes til å gi kommandoer til operativsystemet. GUI: En pek-og-klikk enhet (f.eks. en mus) er den enheten som primært brukes for å gi operativsystemkommandoer. 2. Nevn en fordel og en ulempe ved å bruke et GUI og en fordel og en ulempe ved å bruke et CUI under Linux? Fordeler ved GUI: Gjør det enklere og mer intuitivt å bruke datamaskinen. Mange brukere er vant til GUI'er (spillmaskiner, Windows, nettsider) og arbeider lettere med pek-og-klikk verktøy. Ulemper ved GUI: Gir et "ferdigsydd" oppsett med mindre muligheter til å "skreddersy" arbeidsomgivelsene. En GUI er et ekstra lag med software mellom bruker og oppgavene som skal gjøres på maskinen, noe som gjør at oppgavene utføres saktere. Fordeler ved CUI: Gir bedre mulighet til å kontrollere systemet og kjøre applikasjonene slik man selv ønsker. Raskt, med et minimalt ekstra lag med software mellom bruker og kjernen. Ulemper ved CUI: Kryptisk syntaks. Høyere inngangsterskel for nybegynnere og GUIbrukere. b) Forklar kort følgende begreper i Linux: 1. Standard innenhet og standard utenhet. Stdin: Default kilde (l) som data leses fra. Stdin er i utgangspunktet tastaturet, eller egentlig den devicelen som representerer tastaturet.

Stdout: Default medium (l) som data skrives til. Stdout er i utgangspunktet skjermen. 2. Filterprogram. Program som leser tekstlige data linje for linje fra stdin, og skriver tekstlig output linjevis til stdout. 3. Redirigering av I/O. Tegnene '<' og '>' brukes til å redenere hhv. stdin og stdout til å være en l i stedet for skjermen. '>>' (append) gjør atutskrift til stdout legges til på slutten av en eksisterendel. 4. Piping (eller rørlegging ) Brukes for interprosesskommunikasjon mellom to lterprogrammer. angis med tegnet ' ' mellom navnene på programmene. Gjør at stdout fra et lter leses som stdin fra neste lter. c) Gi en kortfattet forklaring av hva regulæruttrykk (regular expressions) er. Nevn minst to standard Linux-programmer som bruker regulæruttrykk. Kompakt notasjon for å representere generelle tekstmønstre. Brukes bla. i: grep - til å nne tekstmønstre i data emacs - til å søke etter/erstatte tekst i ler som redigeres med teksteditoren d) Hva er forskjellen på et program og en prosess i Linux? Program: Selve programkoden, enten skrevet i et høynivå programmeringsspråk, eller i form av ferdig kompilert maskinkode eller bytekode. Prosess: Et program som er lastet inn i RAM og kjører, sammen med de ressursene som programmet trenger under eksekveringen. e) Gi en kort beskrivelse av hva som skjer når Linux gjør en "context switch". Context switch: Bytter ut prosessen som kjører med neste prosess som skal kjøre i sin time-slice. Medfører flytting av alle data som prosessene trenger. Oppgave 2: Filer og lsystemer a) Når ler som opprettes og endres på en harddisk lagres fysisk på disken, skjer ikke dette i noen bestemt rekkefølge. Filene ser i stedet ut til å ligge spredt tilfeldig rundt i ulike områder på disken. Allikevel fremstår lene som samlet i mapper (eller kataloger) som igjen ligger ordnet hierarkisk, når vi bruker et operativsystem for å håndtere lene. Beskriv kort mekanismene som operativsystemet bruker for å klare å ordne ler og mapper på denne måten. Metadatene for alle ler, inkludert den fysiske adressen på disken, lagres i en tabell i lsystemet. For å samle lene i mapper/kataloger brukes spesielle katalogler som inneholder en liste med peker/indeks til metadataene for alle lene som ligger i

samme katalog. Filsystemet blir hierarkisk (med mapper inne i mapper) fordi listen av ler i en katalogl kan inneholde en ny katalogl. b) Hvilke tre hovedtyper av ler nner vi i Linux? 1. Regulære ler (regular/ordinary les) : Vanlige bruker-/systemler på disk (data, programmer) 2. Kataloger (directory les) : Inneholder en liste av lene (og underkatalogene) som ligger i denne katalogen. Muliggjør hierarkisk lsystem. Lages og redigeres med bruk av Linuxkommandoer 3. Spesialler : Block le device som leses/skrives i blokker via et buffer Character device le skriver/leser i en ustrukturert bytestrøm (Named) pipe le Buffer for FIFO-utveksling mellom prosesser Symbolic link le Lenke til en annen l på systemet Socket le For kommunikasjon mellom prosesser c) Hvor lagres navnet på en l i lsystemet i Linux? Filnavn lagres i kataloglene i Linux. Kataloglene er lister som inneholder inodenummer og lnavn for hver l i katalogen d) Hvor og hvordan lagres de øvrige metadataene om en l i Linux? En inode i Linux er datastrukturen som lagrer alle metadataene, unntatt lnavnet, om en l i lsystemet. Alle inodene ligger lagret i en tabell. Inodenummeret til en l er indeksen i denne inodetabellen. e) Når lsystemet i Linux blir fullt, kan det ikke opprettes flere nye ler. Filsystemet kan bli fullt selv om det fortsatt er mye ledig lagringsplass på disker og andre fysiske medier. Hvordan og hvorfor kan dette problemet oppstå? Alle inodene ligger i en tabell som (oftest) har fast lengde, typisk én inode per 2-8 Kbytes med diskplass. Hvis inodetabellen er full er lsystemet fullt, selv om det er diskplass igjen. Oppgave 3: Shell og shellprogrammering a) Forklar hva som utføres ved kjøring av hver av de re kommandoene nedenfor. Gjør også rede for eventuelle forutsetninger som må være oppfylt for at kommandoene skal fungere: 1. ls l opsys/ Skriver ut en liste over lene i katalogen "opsys", som ligger under stående katalog. Opsjonen -l (long) gir full informasjons for hver l, om ltype, tilgangsrettigheter, eier, gruppe, lstørrelse, siste dato for modikasjon og lnavn.

2. ls ld opsys/ Opsjonen -d fører her til at det skrives ut full informasjon om selve kataloglen "opsys" og ikke innholdet i katalogen som i forrige deloppgave. 3. chmod 751 ~/* Alle lene i brukes hjemmeområde får le mode 751. Dvs. at bruker har alle rettigheter på lene, brukere i samme gruppe kan lese og kjøre lene, alle andre kan kun kjøre. 4. echo Linux ruler tr d 'eiu' > SMS tr med opsjonen -d (delete) fjerner de angitte tegnene fra standard input før den skriver linjene tilbake til standard output, som her er denert til å være len "SMS". Teksten "Lnx rlr" skriver derfor ut til denne len. b) Skriv en Linux-kommando som skriver ut de 10 siste kommandoene som du har gitt interaktivt til skallet. history tail 10 c) Skriv en Linux-kommando som skriver ut en rapport til standard utenhet med informasjon om hvor mye diskplass som er ledig og hvor mye som er brukt, for alle monterte lsystemer. df d) De såkalte Fibonacci-tallene er en sekvens av heltall som begynner med tallene 0 og 1. Deretter er det neste tallet i sekvensen alltid summen av de to foregående. Fibonaccitallene nummeres vanligvis forløpende fra null, og Fibonacci-tall nummer i betegnes som F i. Her er de 15 første Fibonacci-tallene: F 0 F 1 F 2 F 3 F 4 F 5 F 6 F 7 F 8 F 9 F 10 F 11 F 12 F 13 F 14 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 Skriv et shellprogram som beregner og skriver ut et Fibonacci-tall. Input til programmet, gitt fra kommandolinjen, skal være nummeret i på Fibonacci-tallet F i som skal beregnes. #!/bin/bash # Sjekker for riktig antall parametre if [ $# ne 1 ] echo "usage: $0 [number]" exit 1 # F0 og F1 er spesialtilfeller if [ $1 eq 0 ]

echo "0" exit 0 elif [ $1 eq 1 ] echo "1" exit 0 # Beregner Fn n=$1 f0=0 f1=1 i=1 while [ $i lt $n ] do (( f = f0 + f1 )) f0=$f1 f1=$f (( i = i + 1 )) done echo "$f" exit 0 e) Hva utføres av følgende shellprogram: #!/bin/bash if [ $# gt 1 ] echo "usage: $0 [directory]" exit 1 if [ $# eq 0 ] wdir=`pwd` elif [! d $1 ] echo "$0: $1 is not a directory" exit 1 else wdir=$1 cd $wdir for i in * do if ls l $i grep q "^ rw r r "

echo $i done Programmet skriver ut navnet på de lene i en bestemt katalog som har le mode lik "rw-r r--" (eller 644). Katalogen kan angis av bruker som parameter på kommandolinjen. Hvis ingen katalog er angitt (null parametre inn), brukes stående katalog. Programmet gir feilmelding hvis det er flere enn én parameter angitt, eller hvis parameteren ikke er en katalog. Oppgave 4: Linux, servere og nettverk Løsningsforslag kommer snart...