Operativsystem (ID2200/06) XX XX:00-XX:00

Relevanta dokument
Operativsystem (IS1350) :00-12:00

Operativsystem ID2200/06 omtentamen :00-12:00

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00

Operativsystem ID2200/06 omtentamen :00-18:00

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00

Operativsystem ID2200/06 omtentamen :00-18:00

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Operativsystem ID1200/06 Tentamen :00-18:00

Operativsystem ID1200/06 och ID2200/06 Tentamen TENA 6 hp :00-18:00

Operativsystem ID2200/06 tentamen och omtentamen :00-12:00

Operativsystem ID2200/06 omtentamen :00-12:00

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Operativsystem ID1200/06 och ID2200/06 Tentamen TENA 6 hp :00-18:00

Operativsystem ID2200/06 omtentamen :00-18:00

Operativsystem ID2200/06 omtentamen :00-12:00

Operativsystem ID2200/06 omtentamen :00-18:00

Operativsystem ID1200/06 Tentamen :00-18:00

Operativsystem ID2200/06 omtentamen :00-12:00

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Operativsystem ID2200/06 tentamen och omtentamen :00-12:00

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

Datorteknik ERIK LARSSON

Programmering II (ID1019) :00-11:00

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Programmering II (ID1019) :00-12:00

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

Programmering II (ID1019) :00-17:00

TDDIU81. Processer och trådar. Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl

Lösningsförslag till tentamen i IS1350 Operativsystem

Schemaläggning Unix. Minneshantering etc. Linux. Schemaläggning av trådar (kernel threads) Detaljer. Operativsystem - Lektion 7

Olika OS. Unix, Linux och Windows. Unix. Unix. En översikt av ett par OS. Titt på hur de gör. Många varianter. Mycket gemensamt. En del som skiljer

Tillämpad Programmering (ID1218) :00-13:00

4 grundregler. Minneshantering. Problemet. Windows minkrav

Minneshantering segmentering och virtuellminne. Föreläsning 3

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel

Programmering II (ID1019) :00-11:00

Programmering II (ID1019) :00-12:00

Operativsystem. Hierarkin för hårdvara läses nerifrån

Minnet från processorns sida Datorteknik

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Introduktion till hårdvara, mjukvara och operativsystem

Design och trender. Föreläsning 12

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014

Prestandajämförelse - Sekventiell skrivhastighet i RAID 4 och RAID 5

Datorsystemteknik DAVA14 Föreläsning 10

Vad händer när man kör ett program? Program och processer. Funktionsanrop. Avsluta programmet

Det finns många flaggor till g++,

En processor kan ha en klockfrekvens på flera GHz. Det går alltså a9 exekvera en instruk=on väldigt for, givet a9 instruk=onen finns i processorn.

Datorsystem. Tentamen

Realtidsprogrammering Ordinarie tentamen

Programmering II (ID1019) :00-12:00

Operativsystem - input/output, skydd, virtualisering

Programmering av inbyggda system. Pekare och Arrayer. Ulf Assarsson. Originalslides av Viktor Kämpe

Tentamen i Realtidsprogrammering

Tentamen PC-teknik 5 p Lösningar och kommentarer

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

HI1025 Operativsystem, KTH Haninge, VT2012

Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga

F5: Högnivåprogrammering

Programmering av inbyggda system. Pekare och Arrayer. Viktor Kämpe

F5: Högnivåprogrammering

Tentamen *:58/ID100V Programmering i C Exempel 3

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

Tentamen i Algoritmer & Datastrukturer i Java

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

Möte 7: Uppföljning av föreläsningen med Peer Instruction - (PI)

Introduktion till programmering, hösten 2011

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Lab 7, 48 steg till ett bättre liv i Unix-labbet

Dynamiskt minne. Vad är dynamiskt minne Motivering Hur gör man i C Övningar

Filsystem. Varför? Hur? För att kunna lagra data mer permanent än i RAM. Vettig organisation Vettiga namn

Realtidsstöd i Minix. En laborationrapport. Oktober 2012

Välkommen till. Datastrukturer, algoritmer och programkonstruktion. eller DOA

Värmedistribution i plåt

Några gamla tentamensuppgifter: Minneshantering

Guido van Robot och olika UNIX-kommandon

Pekare och arrayer. Indexering och avreferering

Fö 8 TSEA81. Real-time Linux

DVG A06. Operativsystem, mm. Karlstads universitet Datavetenskap. DVG A06 Johan Eklund. Datavetenskap, Karlstads universitet 1

Vad är viktigast? Sammanfattning. Processer och trådar. Processer och trådar. Flerprocessorsystem. Schemaläggning. Interprocesskommunikation.

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

TDDC77 Objektorienterad Programmering

Tommy Färnqvist, IDA, Linköpings universitet

Öppna filer och filsystem i PintOS Hemuppgift TDDI81, 21/

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

Föreläsning 13 Innehåll

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Tentamen PC-teknik 5 p

Transkript:

Operativsystem (ID2200/06) 2017-01-XX XX:00-XX:00 Namn: Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4-sida med anteckningar. Mobiler etc skall lämnas till tentamensvakterna. Svaren skall lämnas på dessa sidor, använd det utrymme som finns under varje uppgift för att skriva ner ditt svar. Svar skall skrivas på svenska eller engelska. Du skall lämna in hela denna tentamen. Inga ytterligare sidor skall lämnas in. Versioner Om detta är din ordinarie tentamen i ID2200/06 så skall frågorna 1-9 besvaras men inte frågorna under 10. Om detta är en omtentamen för den version av kursen som gick före HT2016 så gäller följande: För de som läste ID2200 VT2016 är tentamen på 6hp och frågorna 1-9 skall besvaras. För de som läste ID2200 före VT2016 är tentamen på 3.8hp och endast frågorna 1 till 8 skall besvaras. För omtentander på ID2200 så gäller även att om det är så att du inte har fått godkänt på de laborationsmoment som kursen innehöll kan du välja att besvara frågorna under 9 och då få det momentet tillgodoräknat. För de som läste kursen ID2206 före HT2016 är tentamen på 4.5hp och endast frågorna 1 till 8 och 10 skall besvaras. För omtentander på ID2206 så gäller även att om det är så att du inte har fått godkänt på de laborationsmoment som kursen innehöll kan du välja att besvara frågorna under 9 och då få det momentet delvis tillgodoräknat. Frågorna under 9 motsvar ca: 2.2hp. 1

Betyg för 6hp Tentamen har ett antal uppgifter där några är lite svårare än andra. De svårare uppgifterna är markerade med en stjärna, poäng*, och ger poäng för de högre betygen. Vi delar alltså upp tentamen in grundpoäng och högre poäng. Se först och främst till att klara de grundpoängen innan du ger dig i kast med de högre poängen. Notera att det av de 42 grundpoängen räknas bara som högst 38 och, att högre poäng inte kompenserar för avsaknad av grundpoäng. Gränserna för betyg är som följer: Fx: 22 grundpoäng E: 24 grundpoäng D: 30 grundpoäng C: 34 grundpoäng B: 38 grundpoäng och 12 högre poäng A: 38 grundpoäng och 18 högre poäng Gränserna kan komma att justeras nedåt men inte uppåt. Gränserna är naturligtvis annorlunda för de som skriver en av de mindre versionerna av denna tentamen. Gränserna är naturligtvis annorlunda för de som skriver en av de mindre versionerna av denna tentamen. Erhållna poäng Skriv inte här, detta är för rättningen. Uppgift 1 2 3 4 5 6 7 8 9 Σ Max G/H 4/0 4/2 4/2 4/2 4/2 4/2 4/2 2/2 12/8 42/22 G/H Totalt antal poäng: Betyg: 2

1 Operativsystem 1.1 Kommandon [2 poäng] Ge en kort beskrivning av vad kommandona nedan gör. ls cd less rm 1.2 Utdata [2 poäng] Om vi ger kommandosekvensen nedan, vad kommer vi då få för resultat? > echo "cd foo grep bar" wc -w 2 Processer 2.1 Begränsad direkt exekvering [2 poäng] Kortfattat beskriv vad som menas med begränsad direkt exekvering (limited direct execution). 3

2.2 Vilket segment [2 poäng] Vilka variabler i koden nedan är allokerade på stacken (även om de har i verkligheten kanske endast ligger i register). #define MAX 4 int x = 43; int foo(int a) { int *r = malloc(max * sizeof(int)); for(int i = 0; i < MAX; i++) { r[i] = x + (a*i); } int z = r[0] + r[max-1]; } return z; 2.3 Ett systemanrop [2 poäng*] Beskriv kortfattat vad som händer när en användarprocess gör ett systemanrop. 4

3 Schemaläggnig 3.1 First come first serve [2 poäng] Antag att vi har tre jobb som tar 10ms, 10ms och 30ms var. Om vi schemalägger dessa jobb direkt efter varandra vad är då den bästa respektive sämsta medelvärdet för jobbens omloppstid (turnaround time)? 3.2 Shortest time-to-completion first [2 poäng] Schemaläggaren shortest time-to-completion first är optimal men förutsätter att vi vet hur lång tid varje jobb kommer att ta. Detta är sällan något vi vet i förhand så varför är det fortfarande intressant se vad en schemaläggning skulle ge med den strategin? 3.3 Svarstid [2 poäng*] Om vi antar att vi har en schemaläggare som använder sig av Round-Robin och en tidsperiod på 10ms vid schemaläggning av processer. Hur skulle svarstiden förändras om vi halverar tidsperioden till 5ms, vad skulle vi få som en bieffekt? 5

4 Virtuellt minne 4.1 segmentering [2 poäng] Vid implementering av segmentering behövs två värden för att beskriva ett segment, vilka är dessa värden? 4.2 paging [2 poäng] Antag att vi har en virtuell adress som består av ett 20-bitars sidnummer och en 12-bitars offset. Vi har en fysisk adressrymd på 32 bitar, kodar ett ramnummer i 20 bitar och element i en sidomvandlingstabell är fyra bytes stort. Hur stor är en sida och hur stor skulle en komplett omvandlingstabell behöva vara? 4.3 inverterade sidtabeller [2 poäng*] Hur många element måste vi ha en inverterad sidtabell och vad måste varje element innehålla? 6

5 Minneshantering 5.1 malloc och free [2 poäng] Procedurerna malloc() och free() är implementerade i bibliotek istället för som systemanrop, beskriv en fördel som detta medför. 5.2 best fit [2 poäng] En strategi vid allokering av minne är att ta det block som passar bäst s.k. best fit. Vad är fördelen med denna metod och vad är nackdelen? 5.3 trådspecifik malloc [2 poäng*] Vad skulle fördelen vara att låta varje tråd i en process ha sina egna fria block som malloc() hade att välja bland? 7

6 Flertrådad programmering 6.1 trådar i en process [2 poäng] Trådar i en process delar många saker men det finns en mycket viktigt datastruktur som de inte delar - varje tråd har sin egen; vilken är denna datastruktur? 6.2 deadlock [2 poäng] Beskriv en strategi för att hantera lås som gör att vi kan undvika deadlock i en multi-trådad beräkning. 6.3 Petersens algoritm [2 poäng*] Beskriv vad Petersens algoritm skall lösa och varför den inte går att använda på de flesta moderna datorsystem. 7 Filsystem 7.1 länkar [2 poäng] Vad är skillnaden mellan en hård och en mjuk länk? 8

7.2 inode [2 poäng] Kortfattat - vad innehåller en inode? 7.3 varför inte [2 poäng*] I Unix får kan vi inte skapa flera hårda länkar till en mapp (directory). Varför har vi den begränsningen? 8 Virtualisering 8.1 effektivitet [2 poäng] När vi kör ett helt operativsystem virtualiserat så kommer exekveringen ta längre tid eftersom en vi då har en virtualisering i två nivåer. Ungefär hur mycket långsammare kommer ett beräkningsintensivt program att gå: nästan lika snabbt, halva hastigheter eller typiskt en faktor tio långsammare? 9

8.2 containers [2 poäng*] Så kallade Linux containers är också ett sätt att köra flera operativsystem på samma maskin. Vilken begränsning har denna metoden jämfört med full virtualisering? 9 Implementering 9.1 a knife a fork.. 9.1.1 printf [2 poäng] Givet programmet nedan, vad kommer att skrivas ut på skärmen? i n t main ( ) { i n t pid ; i n t x = 0 ; pid = f o r k ( ) ; i f ( pid == 0) { p r i n t f (" c h i l d : x i s %d \n ", x ) ; x = 4 2 ; s l e e p ( 2 ) ; p r i n t f (" c h i l d : x i s %d \n ", x ) ; } e l s e { s l e e p ( 1 ) ; p r i n t f (" mother : x i s %d \n ", x ) ; x = 1 3 ; s l e e p ( 2 ) ; p r i n t f (" mother : x i s %d \n ", x ) ; wait (NULL) ; } r eturn 0 ; 10

} 9.1.2 zombie [2 poäng*] Förklara kortfattat vad en zombie är och vad det har med koden nedan att göra. wait(& r e s ) ; p r i n t f (" the r e s u l t was %d\n ", WEXITSTATUS( r e s ) ) ; 9.2 Signaler 9.2.1 sigaction [2 poäng] I koden nedan finns en referens till gurka, vad torde gurka vara och vad är egentligen syftet med koden? s t r u c t s i g a c t i o n sa ; sa. sa_handler = gurka ; sigemptyset(&sa. sa_mask ) ; a s s e r t ( s i g a c t i o n (SIGINT, &sa, NULL) == 0 ) ; 11

9.2.2 mellan processer [2 poäng*] Signaler kan operativsystemet använda för att meddela sig med en användarprocess. Kan en användarprocess skicka en signal till en annan användarprocess? Finns det begränsningar? 9.3 Minneshantering 9.3.1 ett steg tillbaka [2 poäng] Koden nedan är från proceduren free() i en minneshanterare. För att frigöra det minne som pekas ut av memory så görs en väldigt konstig operation memory -1, vad är det man vill åstadkomma här? void f r e e ( void memory) { i f (memory!= NULL) { s t r u c t chunk cnk = ( s t r u c t chunk ) ( ( s t r u c t chunk )memory 1 ) ; cnk >next = f l i s t ; f l i s t = cnk ; } r eturn ; } 9.3.2 strace [2 poäng] Du har just implementerat din första minnesallokerare och den ser inte ut att konsumera för mycket minne. Du gör ett enkelt test nedan för att få lite bättre förståelse för hur hanteraren beter sig. Vad är det du vill veta? > strace./bench 2>&1 > /dev/null grep brk wc -l 12

The number of calls to the system call brk(), less is better. 9.3.3 brk() [2 poäng*] Hur kan systemanropet brk() användas för att frigöra minne som operativsystemet allokerat åt en process? 9.4 Kommunikation 9.4.1 en namngiven pipe [2 poäng] Du kan skapa en namngiven pipe genom att använda biblioteksproceduren mkfifo(). Vilket system används för att registrera och hitta namngivna pipes? 9.4.2 pipe eller socket [2 poäng] Om man har satt upp en pipe mellan två processer så kan man naturligtvis skicka meddelanden från A till B. Om man istället sätter upp en socket så kan man göra lite mer, vad? 13

9.4.3 socket adressfamiljer [2 poäng*] Vad är det för skillnad mellan AF_UNIX och AF_INIT? 9.5 Lagring 9.5.1 O_DSYNC [2 poäng] Om vi kör tester för att räkna på hur snabbt vi kan skriva till en fil så får vi väldigt olika resultat beroende på om vi ger flaggan O_DSYNC eller inte. Vad har denna flagga för betydelse, hur skiljer sig resultaten och varför? i n t f l a g = O_RDWR O_CREAT O_DSYNC; i n t fd = open (name, f l a g, mode ) ; 9.5.2 prestanda [2 poäng] Det tar några nanosekunder att läsa eller skriva till minnet, hur lång tid tar det att läsa från en fil som ligger på en hårddisk? Är det skillnad på om det är första gången man läser jämfört med om man läser filen för andra gången? 14

9.5.3 tmpfs [2 poäng*] Om vi monterar ett tmpfs filsystem så får vi bättre prestanda. Filsystemet har dock en nackdel som vi kanske inte alltid kan accepterar, vilken? 10 Bara för omtentamen i ID2206 Denna del är endast för de som gör omtentamen i ID2206 från tidigare år dvs före HT2016. Frågorna kommer att röra de kursmål som fanns med i den tidigare kursbeskrivningen men som har en mindre central roll i den nya kursbeskrivningen: realtidsoperativsystem, distribuerade operativsystem och distribuerade filsystem. 10.1 rätt så lätt [2 poäng] 10.2 vad kan detta vara [2 poäng] 10.3 men detta då [2 poäng*] 10.4 klurigare [2 poäng*] 15