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

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

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

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

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

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

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

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

Aktivitetsschemaläggning för flerkärninga processorer

Realtidsprogrammering Ordinarie tentamen

Tentamen i Realtidsprogrammering för Au3, D3, E3

Tentamen i TDIU16 Process- och operativsystemprogrammering

Hjälpmedel: Inga hjälpmedel förutom penna, suddgummi och glatt humör.

GU / Chalmers Campus Lindholmen Tentamen Programutveckling LEU 482 / TIG167

Omtentamen i Realtidsprogrammering för Au3, D3, E3

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

Operativsystem ID1200/06 Tentamen :00-18:00

8 < x 1 + x 2 x 3 = 1, x 1 +2x 2 + x 4 = 0, x 1 +2x 3 + x 4 = 2. x 1 2x 12 1A är inverterbar, och bestäm i så fall dess invers.

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

Processprogrammering och operativsystem Introduktion. Kursinformation. Varför operativsystem?

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

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

Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys

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

Tentamen omfattar 40 poäng fördelade på 7 uppgifter. 20 poäng krävs för betyget 3, 30 poäng för betyget 4 och 36 poäng för betyget 5.

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

Exam Concurrent and Real-Time Programming

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

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

Operativsystem (IS1350) :00-12:00

Datorteknik ERIK LARSSON

Försättsblad till skriftlig tentamen vid Linköpings Universitet

4 grundregler. Minneshantering. Problemet. Windows minkrav

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

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.

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: Tid: (OBS 3 tim) Rum: V

Kurskod: TAIU06 MATEMATISK STATISTIK Provkod: TENA 15 August 2016, 8:00-12:00. English Version

Tentamen vid Institutionen för Datavetenskap, Linköpings universitet

Kurskod: TAMS28 MATEMATISK STATISTIK Provkod: TEN1 05 June 2017, 14:00-18:00. English Version

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

1. Varje bevissteg ska motiveras formellt (informella bevis ger 0 poang)

This exam consists of four problems. The maximum sum of points is 20. The marks 3, 4 and 5 require a minimum

Enkla datatyper minne

Försättsblad till skriftlig tentamen vid Linköpings Universitet

PROGRAMMERING-Java Omtentamina

Operativsystem ID1200/06 Tentamen :00-18:00

GU / Chalmers Campus Lindholmen Tentamen Programutveckling LEU 482 / TIG167

UTLYSNING AV UTBYTESPLATSER VT12 inom universitetsövergripande avtal

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

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

Öka prestanda i Shared-Cache multi-core processorer

6. a) Visa att följande vektorer är egenvektorer till matrisen A = , och ange motsvarande

Försättsblad till skriftlig tentamen vid Linköpings universitet

Högskolan i Skövde (SK, JS) Svensk version Tentamen i matematik

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Tentamen vid Institutionen för Datavetenskap, Linköpings universitet

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

Deluppgift 17 Processhantering: exec, sleep, exit, plist

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Tentamen PC-teknik 5 p

Tentamen Datorteknik och realtidssystem, TSEA81 Datum Lokal

Deadlocks. detektera och undvik

Lösningar till tentamen i EIT070 Datorteknik

Tentamen i Digitalteknik, TSEA22

Magnus Nielsen, IDA, Linköpings universitet

Realtidssystem. - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6

Realtidsstöd i Minix. En laborationrapport. Oktober 2012

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

Realtidssystem. - Dödläge - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 5

Mekanismer. (implementation)

Försättsblad till skriftlig tentamen vid Linköpings Universitet

x 2 2(x + 2), f(x) = by utilizing the guidance given by asymptotes and stationary points. γ : 8xy x 2 y 3 = 12 x + 3

Försättsblad till skriftlig tentamen vid Linköpings Universitet

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

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

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

Introduktion till hårdvara, mjukvara och operativsystem

Övning från förra gången: readword

Styrteknik: Binära tal, talsystem och koder D3:1

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Installation av atmel Studio på mac / linux

Tentamen i Matematik 2: M0030M.

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

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

Försättsblad till skriftlig tentamen vid Linköpings Universitet

The Finite Element Method, FHL064

Lösningar till tentamen i EIT070 Datorteknik

Föreläsning 6: Introduktion av listor

Försättsblad till skriftlig tentamen vid Linköpings universitet

Skyddande av frågebanken

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Försättsblad till skriftlig tentamen vid Linköpings universitet

Kurskod: TAIU06 MATEMATISK STATISTIK Provkod: TENA 31 May 2016, 8:00-12:00. English Version

F5: Högnivåprogrammering

Kurskod: TAIU06 MATEMATISK STATISTIK Provkod: TENA 17 August 2015, 8:00-12:00. English Version

LUNDS TEKNISKA HÖGSKOLA Institutionen för Elektro- och Informationsteknik

Försättsblad till skriftlig tentamen vid Linköpings universitet

Försättsblad till skriftlig tentamen vid Linköpings universitet

Adding active and blended learning to an introductory mechanics course

Transkript:

Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University Datum för tentamen Date of exam Sal Room Tid Time Kurskod Course code Provkod LADOK code Kursnamn/benämning Course name Institution Department Antal uppgifter som ingår i tentamen Number of assignments Antal sidor på tentamen (inkl. försättsbladet) Number of pages including cover Jour/Kursansvarig Responsible/Examiner Telefon till examinator Phone to examiner Besöker salen ca kl. Time of exam visit Kursadministratör Course administrator Tillåtna hjälpmedel Allowed aids Övrigt Other information Typ av papper Paper to use Antal anmälda Number of students signed up 2011-05-28 KÅRA 14:00-18:00 TDDI04 TEN1 Operativsystem, realtids- och processprogrammering Concurrent programming, Operating systems and real-time operating systems IDA 8 uppgifter med totalt 90p 8 assignments for a total of 90 points 5 Klas Arvidsson klas.arvidsson@liu.se 013-28 21 46 Ungefär 1 timme efter tentamens start About 1 hour after exam start Gunilla Mellheden 013-28 22 97, 070-597 90 44, gunilla.mellheden@liu.se Ordbok, enkel miniräknare (+,-,*,/) Dictionary, pocket calculator. Precise, explained and clearly motivated assumptions, statements and reasoning raise the impression and are required for highest score. Solve at most one assignment per sheet. If in doubt, state clearly your interpretation of the question, your assumptions, and answer according to that. Preliminary graded: U < 50% < 3 < 67% < 4 < 84% < 5 Grades may be raised or lowered based on overall impression. Results available within 10 working days. Rutigt, linjerat eller blankt No preference 61 (+1 som glömde anmäla i tid) 1 (5)

OBS! Du behöver inte lösa uppgifterna i ordning. Börja med de uppgifter du kan besvara direkt! Del 1 (frivillig om du klarat duggan) 1. Operativsystemets grundstenar (15p) a) Förklara tre olika och viktiga målsättningar med ett operativsystem. (2p) b) Förklara hur operativsystemet kan låta processer använda CPU och dela CPU med andra processer men behålla kontrollen och hindra att en process monopoliserar CPU. (4p) c) Förklara syftet med kernel mode bit i CPU och när sätts respektive nollställs den? (4p) d) Definiera termerna program, process och tråd. (5p) 2. Minneshantering (15p) Figuren till höger visar det virtuella minnet för process X och Y. Paging i en nivå används. Den frame som är längst ned i fysiska minnet är 4 KiB stor (2 12 byte). Systemet använder totalt 16-bit till adresser. I figuren visas inte de övre 3 fjärdedelarna av processernas minnesrymd och pagetable av utrymmesskäl (pagetable har alltså 16 index, men bara index 0-3 visas i figuren). Adresser i den del av minnet som inte visas är aldrig giltiga för processen att använda. I pagetable visas två kolumner, först ett framenummer, sedan valid bit. All numrering av pages, frames, index, eller process X STACK CODE process Y STACK CODE pagetable X 7 1 3 0 3 1 2 1 pagetable Y 2 0 7 0 3 1 5 1 fysiskt minne adresser startar på 0 längst ned i figuren. Du skall anta att pages STACK, och CODE finns på disk om de inte finns i fysiskt minne. Du skall även anta att frame 7 inte använts på mycket länge. En tabell över hexadecimala nummer och bitmönster finns till höger om du behöver. a) Process X skall läsa logisk adress 0x0123 (hexadecimalt). Vilken 0 0000 8 1000 fysisk adress kommer läsas? Hur kom du fram till det? (2p) 1 0001 9 1001 b) Process Y skall läsa logisk adress 0x3456 (hexadecimalt). (5p) 2 0010 A 1010 Förklara kort hur OS kommer att agera (5 poänggivande steg). 3 0011 B 1011 4 0100 C 1100 c) Process Y begär via systemanrop att skriva 100 byte från en fil 5 0101 D 1101 och anger via parametrar att OS skall hämta de 100 byte som 6 0110 E 1110 skall skrivas från processens adress 0x1FFA (hexadecimalt) och 7 0111 F 1111 framåt. Förklara kort hur OS kommer att agera. (3p) d) Ett system med 32-bitars adressering skall använda paging. Antag att varje sida skall vara 1kiB (2 10 byte). Hur stor pagetable behöver varje process? Visa beräkningen. (2p) e) En process startar med en tom pagetable på ett tomt system med 4 frames. Sidåtkomster sker i följande sekvens: 1 2 1 3 1 4 1 5 1 3 1 2 Den page-replacement-algoritm som används är LRU. Visa med en tabell vilken page som finns i vilken frame vid varje tillfälle. Hur många pagefault uppstår? (3p) 2 (5)

3. Synkronisering (15p) På sista sidan finns C-kod för datastrukturen set. Ett set är en samling unika ord, och det finns funktioner för att lägga till ord, ta bort ord och kontrollera om ett ord finns i setet. Denna datastruktur används i en multi-trådad applikation, där det alltså kan hända att flera olika trådar samtidigt anropar funktioner för att manipulera en viss variabel av typen struct set. a) Visa en exekveringssekvens med två trådar som gör att samma ord läggs till på två olika platser i setet. (2p) b) Visa en exekveringssekvens med två trådar som gör att olika ord läggs till på samma plats i setet. (2p) c) Visa en sekvens med två trådar som kör remove på samma ord och en tråd som lägger till ett nytt ord, med resultatet att det tillagda ordet tas bort. (2p) d) Identifiera det som är kritiska sektioner i koden. Dessa skall vara så små som möjligt. Förklara vad det är som är kritiskt, vilka beroenden i koden som ej får brytas. (4p) e) Korrigera koden så att den fungerar så effektivt som möjligt. Förklara var nya variabler du använder placeras och initieras. Du skall anta att det finns en funktion som initierar en struct set så alla index är NULL från start. Du kan om du vill ta loss och lämna in sista sidan med korrigeringar. Du kan även beskriva ändringarna med hjälp av radnumren. (5p) Del 2 4. Deadlocks (10p) a) I ett datorsystem finns 1 resurs av typ A, 4 av typ B och 2 av typ C. Tabellerna nedan visar vad processerna P, Q och R behöver som mest (MAX) och använder just nu (NOW): MAX A B C NOW A B C TOTALT I SYSTEMET P 1 2 0 P 1 1 0 A B C Q 1 3 1 Q 0 1 1 1 4 2 R 0 1 2 R 0 0 1 P behöver alltså 1 resurs av typ A och 2 av typ C totalt, och har just nu en av typ A och en av typ B. Process Q begär i detta läge ytterligare en resurs av typ B. Motivera med hjälp av Bankers algoritm om operativsystemet skall godkänna eller neka begäran. (6p) b) Beskriv de fyra villkor som gäller för att deadlock skall kunna uppstå. (4p) 5. Säkerhet och tillgänglighet (8p) a) UNIX har en användare root som har full rättighet till ALLT. Förklara med hjälp av principle of least privilege på vilket sätt RBAC (Role Based Access Control) är bättre. (4p) b) RAID finns i nivåer 0 till 6. Beskriv fyra huvudsakliga skillnader mellan olika varianter. (4p) 6. Filsystem (8p) a) Motivera varför filer måste öppnas innan användning. (2p) b) För att hålla reda på vilka diskblock en fil använder kan operativsystemet använda linked allocation eller indexed allocation används. Jämför fördelar och nackdelar med de båda metoderna. (6p) 3 (5)

7. Diskschemaläggning (6p) a) Motivera tydligt hur det kommer sig att diskschemaläggning kan tjäna tid. Var/hur sker effektiviseringen som gör att tid kan sparas? (3p) b) Diskarmen på Arvids disk befinner sig över spår 101 och använder SSTF. Arvid kör nu program som snabbt genererar förfrågningar på data från sektorer i följande spår: 25, 141, 96, 82, 189, 7, 45, 190, 91, 217, 84, 96, 4, 59, 243, 90, 177, 23, 59, 102, 30. I vilken ordning kommer OS schemalägga förfrågningarna? (3p) 8.Schemaläggning / Realtidssystem (13p) process/task length period N --- N N 2 1 P 2 5 2 0.828 Q 2 8 3 0.779 R 1 10 4 0.756 ( S 5 11 ) 5 0.743 Tabellen ovan visar en lista på tasks med angiven värsta-falls exekveringstid och period. P har t.ex. behov att exekvera två tidsenheter var femte tidsenhet. Perioden utgör deadline. Den andra tabellen visar resultatet av en formel för några olika N. a) Beräkna genomsnittliga processorutnyttjandet för processerna P,Q,R i listan. (1p) b) Ange med ett par ords motivering om det är möjligt att schemalägga P,Q,R med algoritmen RMS (Rate Monotonic Scheduling) så att alla deadlines garanteras. (1p) c) Ange med ett par ords motivering om det är möjligt att schemalägga P,Q,R med EDF (Earliest Deadline First) så att alla deadlines garanteras. (1p) d) Task S tillkommer ibland till systemet. Visa hur RMS (Rate Monotonic Scheduling) schemalägger P,Q,R och S. (Skapa schema 30 tidsenheter långt.) (2p) e) Task S tillkommer ibland till systemet. Visa hur EDF (Earlies Deadline First) schemalägger P,Q,R och S. (Skapa schema 30 tidsenheter långt.) (4p) f) I både uppgift d) och e) missades någon deadline. Varför? Om vi antar att task S har en mjuk deadline, och P,Q,R hårda deadlines, vilken algoritm är lämpligast att använda? (2p) g) Om EDF används, hur kan man när S (med mjuk deadline) blir tillgänglig avgöra om det är säkert att lägga till den i ready-kön utan att riskera viktigare deadlines? (2p) 1 4 (5)

1: struct set { 2: 3: char* word[size]; 4: 5: }; 6: 7: int find_word(struct set* s, char* word) { 8: int i; 9: 10: for ( i = 0; i < SIZE; ++i) { 11: 12: if ( strcmp( s->word[i], word ) == 0 ) 13: 14: return i; /* found match */ 15: 16: } 17: 18: return -1; 19: } 20: 21: void add_word(struct set* s, char* word) { 22: int i; 23: 24: if ( valid_word(word) ) 25: 26: return; /* invalid characters in word */ 27: 28: if ( find_word(s, word)!= -1 ) 29: 30: return; /* already added */ 31: 32: for ( i = 0; i < SIZE; ++i) { 33: 34: if ( s->word[i] == NULL ) 35: 36: break; /* found free slot */ 37: 38: } 39: 40: if ( i >= SIZE ) 41: 42: return; /* no space left */ 43: 44: s->word[i] = word; 45: 46: } 47: 48: void remove_word(struct set* s, char* word) { 49: 50: int i = find_word(s, word); 51: 52: if ( i == -1 ) 53: 54: return; /* already removed or never added */ 55: 56: s->word[i] = NULL; 57: 58: } 5 (5)