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

Like dokumenter
Slope-Intercept Formula

EN Skriving for kommunikasjon og tenkning

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

Endelig ikke-røyker for Kvinner! (Norwegian Edition)

Databases 1. Extended Relational Algebra

Den som gjør godt, er av Gud (Multilingual Edition)

FIRST LEGO League. Härnösand 2012

Han Ola of Han Per: A Norwegian-American Comic Strip/En Norsk-amerikansk tegneserie (Skrifter. Serie B, LXIX)

KROPPEN LEDER STRØM. Sett en finger på hvert av kontaktpunktene på modellen. Da får du et lydsignal.

Exercise 1: Phase Splitter DC Operation

5 E Lesson: Solving Monohybrid Punnett Squares with Coding

Neural Network. Sensors Sorter

Trigonometric Substitution

Hvor mye praktisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

Hvor mye teoretisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis)

IN2010: Algoritmer og Datastrukturer Series 2

UNIVERSITETET I OSLO

of color printers at university); helps in learning GIS.

Enkel og effektiv brukertesting. Ida Aalen LOAD september 2017

Oppgave 2: Gå til roten (/) av systemet. Finn minst tre forskjellige måter å gå tilbake til hjemmekatalogen din på.

Dynamic Programming Longest Common Subsequence. Class 27

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Hvor mye teoretisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

Perpetuum (im)mobile

Vekeplan 4. Trinn. Måndag Tysdag Onsdag Torsdag Fredag AB CD AB CD AB CD AB CD AB CD. Norsk Matte Symjing Ute Norsk Matte M&H Norsk

Mathematics 114Q Integration Practice Problems SOLUTIONS. = 1 8 (x2 +5x) 8 + C. [u = x 2 +5x] = 1 11 (3 x)11 + C. [u =3 x] = 2 (7x + 9)3/2

PATIENCE TÅLMODIGHET. Is the ability to wait for something. Det trenger vi når vi må vente på noe

IN 211 Programmeringsspråk. Dokumentasjon. Hvorfor skrive dokumentasjon? For hvem? «Lesbar programmering» Ark 1 av 11

Du må håndtere disse hendelsene ved å implementere funksjonene init(), changeh(), changev() og escape(), som beskrevet nedenfor.

Information search for the research protocol in IIC/IID

Moving Objects. We need to move our objects in 3D space.

PSi Apollo. Technical Presentation

UNIVERSITY OF OSLO DEPARTMENT OF ECONOMICS

Administrasjon av postnummersystemet i Norge Post code administration in Norway. Frode Wold, Norway Post Nordic Address Forum, Iceland 5-6.

Vurderingsveiledning SPR3008 Internasjonal engelsk Eleven gir stort sett greie og relevante svar på oppgavene i samsvar med oppgaveordlyden.

The Norwegian Citizen Panel, Accepted Proposals

GEO231 Teorier om migrasjon og utvikling

Hvordan føre reiseregninger i Unit4 Business World Forfatter:

C13 Kokstad. Svar på spørsmål til kvalifikasjonsfasen. Answers to question in the pre-qualification phase For English: See page 4 and forward

EKSAMENSOPPGAVE I BI2034 Samfunnsøkologi EXAMINATION IN: BI Community ecology

Programmering. Carsten Wulff

AvtaleGiro beskrivelse av feilmeldinger for oppdrag og transaksjoner kvitteringsliste L00202 levert i CSV fil

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Eksamen ENG1002/1003 Engelsk fellesfag Elevar og privatistar/elever og privatister. Nynorsk/Bokmål

Skjema for spørsmål og svar angående: Skuddbeskyttende skjold Saksnr TED: 2014/S

HONSEL process monitoring

GYRO MED SYKKELHJUL. Forsøk å tippe og vri på hjulet. Hva kjenner du? Hvorfor oppfører hjulet seg slik, og hva er egentlig en gyro?

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

Gol Statlige Mottak. Modul 7. Ekteskapsloven

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

TUSEN TAKK! BUTIKKEN MIN! ...alt jeg ber om er.. Maren Finn dette og mer i. ... finn meg på nett! Grafiske lisenser.

Speed Racer Theme. Theme Music: Cartoon: Charles Schultz / Jef Mallett Peanuts / Frazz. September 9, 2011 Physics 131 Prof. E. F.

Trådløsnett med. Wireless network. MacOSX 10.5 Leopard. with MacOSX 10.5 Leopard

GEF2200 Atmosfærefysikk 2017

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

Den som gjør godt, er av Gud (Multilingual Edition)

Endringer i neste revisjon av EHF / Changes in the next revision of EHF 1. October 2015

Compello Fakturagodkjenning Versjon 10 Software as a service. Tilgang til ny modulen Regnskapsføring

Call function of two parameters

EXAM TTM4128 SERVICE AND RESOURCE MANAGEMENT EKSAM I TTM4128 TJENESTE- OG RESSURSADMINISTRASJON

Compello Fakturagodkjenning Versjon 10.5 As a Service. Tilgang til Compello Desktop - Regnskapsføring og Dokument import

Emneevaluering GEOV272 V17

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

1 User guide for the uioletter package

stjerneponcho for voksne star poncho for grown ups

Lynkurs i shellprogrammering under Linux

Elektronisk innlevering/electronic solution for submission:

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Økologisk og kulturell dannelse i økonomiutdanningen

Oppgave. føden)? i tråd med

Filer og kataloger, prosesser og jobber

Hvordan ser pasientene oss?

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Fagevalueringsrapport FYS Diffraksjonsmetoder og elektronmikroskopi

The regulation requires that everyone at NTNU shall have fire drills and fire prevention courses.

Språkleker og bokstavinnlæring

Dagens tema: Eksempel Klisjéer (mønstre) Tommelfingerregler

Eksamensoppgave i GEOG1004 Geografi i praksis Tall, kart og bilder

STILLAS - STANDARD FORSLAG FRA SEF TIL NY STILLAS - STANDARD

Hvor mye teoretisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

TDT4117 Information Retrieval - Autumn 2014

Medisinsk statistikk, KLH3004 Dmf, NTNU Styrke- og utvalgsberegning

Mannen min heter Ingar. Han er også lege. Han er privatpraktiserende lege og har et kontor på Grünerløkka sammen med en kollega.

Ole Isak Eira Masters student Arctic agriculture and environmental management. University of Tromsø Sami University College

PARABOLSPEIL. Still deg bak krysset

EKSAMEN Innføring i Linux

Løsningsforslag til eksamen 24. november 2015

Prosjektet Digital kontaktinformasjon og fullmakter for virksomheter Digital contact information and mandates for entities

SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM

Årsplan ENGELSK 5.trinn. Setningsmønster It starts at It finishes at I want to be a when I grow up

Examination paper for (BI 2015) (Molekylærbiologi, laboratoriekurs)

Of all the places in the world, I love to stay at Grandma Genia and

P(ersonal) C(omputer) Gunnar Misund. Høgskolen i Østfold. Avdeling for Informasjonsteknologi

AvtaleGiro beskrivelse av feilmeldinger for oppdrag og transaksjoner for KID bytte kvitteringsliste L02625 levert i CSV format

Transkript:

Løsningsforslag for oppgavene i operativsystemer og C, uke 38 (19.9-23.9) På terminalstue: Oppgave 1: List alle filer og kataloger under /usr/bin som har filnavn som begynner på b. ls /usr/bin/b* Oppgave 2: Gå til roten (/) av systemet. Finn minst tre forskjellige måter å gå tilbake til hjemmekatalogen din på. cd / cd cd ~ cd ~/ cd ~/. cd $HOME Oppgave 3: Utfør en Unix-kommando som gir deg brukernavnet ditt. whoami echo $USER Oppgave 4: Skriv kommandoen echo bla bla bla > newfile, og bruk more for å se på filens innhold. Kan du forklare hva som har skjedd? Output fra echo går vanligvis til skjerm, men tegnet > sender den til filen newfile isteden. Oppgave 5: Lag en katalog med navn x. Gå til x, bruk emacs til å skrive noen tegn og lagre filen under navnet -x. Prøv å skifte navn på filen med mv fra x til x.txt. Hva skjer? Hvordan er det mulig å endre navnet? > mv./-x x.txt Oppgave 6: Finn ut hva maskinen du sitter på heter. > hostname Oppgave 7: Finn ut hva som er full path til programmet som startes når du gir kommandoen diff. > type diff

Oppgave 8: Lag først en fil fil.txt. Utfør en Unix-kommando som setter filrettighetene for filen fil.txt slik at eieren av filen (du) har alle rettigheter, medlemmer av filens gruppe har alle rettigheter untatt å skrive til filen, og alle andre kun kan lese den. > chmod 754 fil.txt Oppgave 9: Utfør følgende Unix-kommandoer i en tom katalog: > mkdir tex > mkdir oblig > mv oblig tex > mkdir oblig > mv tex oblig Tegn en liten skisse som viser katalogstrukturen i den tidligere tomme katalogen, med navn på alle katalogene etter at disse kommandoene er utført og prøv å forstå hva som skjedde. Katalogen der kom m andoene gjøres oblig tex oblig Oppgave 10: Editer en fil i din hjemmekatalog med emacs og kall den ls. Skriv inn følgende shell-script: #! /bin/bash ls Gjør scriptet kjørbart ved hjelp av kommandoen chmod 755 ls. Gi kommandoen ls.

Er det din eller systemets ls som blir utført? Legg inn linjen: Echo Dette er mitt script. før ls-kommandoen i ditt ls-script, og prøv å få systemet til å liste filene med ditt script. >./ls Oppgave 11: Gjør en kommando som bruker grep til å liste alle prosesser på maskinen som er dine. > ps aux grep $USER Oppgave 12: Finn ut hvilke grupper du selv tilhører. > groups Oppgave 13: Start emacs og lagre en fil med navn #fil.txt. Gå ut av emacs og prøv å fjerne filen. Hva tror du problemet skyldes? Det går ikke med > rm #fil.txt for alt etter # blir tolket som en kommentar. Følgende to metoder virker: > rm #fil.txt > rm./#fil.txt Oppgave 14: Skriv et shell-script som skriver ut verdien av den globale variabelen DISPLAY Hvis den er satt og gir melding om at den er udefinert hvis den ikke er satt. #! /bin/bash if [ $DISPLAY!= ] then echo DISPLAY er definert til $DISPLAY else echo DISPLAY ikke definert fi Oppgave 15: Gjør en kommando som legger til teksten Siste linje til den allerede eksisterende filen foo.txt. > echo Siste linje >> foo.txt Oppgave 16: Gjør en kommando som finner ut om det eksisterer en bruker med brukernavn paalh på systemet. Finger paalh #alt. 1 Echo ~paalh #alt. 2

Oppgave 17: Hva blir output av echo hei du der sort Forklar! Sort sorterer linjer og ikke ord for ord In the classroom: Question 1: The inventors of the C language have created a language that requires very little typing. One-character symbols are used a lot, and abbreviations are part of the syntax. Here is an example of an abbreviation in correct code: void function( char* buf )... void otherfunction( ) char buffer[200];... function( buffer ); /* <- abbreviation */... What is this actually? Solution: It means char buffer[200]; function( &buffer[0] ); /* <- abbreviation */ The array's name is the same thing as a pointer to its first element. This means also that void function( char* buf )... /* first version */ and void function( char buf[] )... /* second version */ are _nearly_ equivalent. The difference is that you can never change buf in the second version. For example, the use "free(buf)" or "buf = buf + 1" in the second version is not allowed. Question 2: You have the following code: void function( int a, int* b, char c, char* d, char e[] ) a = 2; *b = 3; b = &a; c = 'x';

*d = 'y'; d = &c; e[2] = 'z'; int main( ) int k,l; int* m; char n,o; char* p; char q[5]; k = 100; l = 101; m = &l; n = 'n'; o = 'o'; p = &o; q[0] = 'h'; q[1] = 'e'; q[2] = 'r'; q[3] = 'e'; q[4] = '\0'; function( k,m,n,p,q ); printf( "k=%d l=%d *m=%d\n", k, l, *m ); printf( "n=%c o=%c *p=%c\n", n, o, *p ); printf( "q=%s\n", q ); What is printed onto the screen? Why? Solution: This is printed: k=100 l=3 *m=3 n=n o=y *p=y q=heze When function is called, it receives _copies_ of the values k, m, n, and p, and a pointer to the array q. (1) Because a and b are copies, k and n remain unchanged. (2) For m and p, on the other hand, function does at first not try to change m and p themselves, but the places that they point to. They point to the actual variables l and o, not to copies. So, l and o are changed. (3) After that, function changes b and d, which are only copies of m and p, so m and p are not changed. (4) The name of an array is always a pointer to the array. So, when function is called with the paramter q, e becomes also a pointer to the array q. That means that it can also change the contents of the array. And that's what it does. Question 3: You have the following code: void funa( char buf[10] ) buf[i] = 'a' + i;

void funb( char* buf ) buf[i] = 'b' + i; void func( char* buf ) *buf = 'c' + i; buf = buf + 1; int main( ) char buf[11]; memset( buf, 0, 11 ); funa( buf ); printf( "%s\n", buf ); funb( buf ); printf( "%s\n", buf ); func( buf ); printf( "%s\n", buf ); What is the output? Why? Solution: The output is abcdefghij bcdefghijk cdefghijkl First of all, the character 'a' is identical to the number 97, and the rest of the alphabet follows, 'b' is 98, and so on. This means that you can say that 'c' == 'a' + 2. Second, funa and funb are semantically identical because we have already said that array names are only pointer to their first element anyway. So clearly, char buf[10] and char* buf are essentially the same thing. func shows that you can do something more with pointers. You can change them. This is called pointer arithmetics. You can even use them the following way: void fund( char* buf ) *(buf+i) = 'c' + i; The C book by its inventors Kernighan and Ritchie clarifies why this works. They say that &buf[3] is only a transformation of buf+3 and

buf[3] is a transformation of *(buf+3) So, "*(buf+3)" is the original version, and buf[3] has been introduced into the C language to make it _easier_ for us to understand what is going on. Question 4: Imagine that you should write a program that reads a file given as program input (e.g., this file) line by line, split the line in "words" separated by space (' ') and count the number times each word occurs in the text. Assume that each line is shorter than 120 characters, each word is shorter that 40 characters and that the maximum number of different words are 500 (if more, count only the first 500). If these limitations were removed, will this affect implementation of the program? Question 5: Why do we have operating systems? What is the two ways to look at an operating system and what do they mean (two main functions)? Why is it imortant to have some knowledge about the OS and the system in general?