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

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

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

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

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

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

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

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

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 14-16

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

Grundläggande datalogi - Övning 4

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

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 17-19

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

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

Prov i DAT 312: Algoritmer och datastrukturer för systemvetare

Avbildningar och hashtabeller. Koffman & Wolfgang kapitel 7, mestadels avsnitt 2 4

Tentamen Grundläggande programmering

Tentamen i Matematik 2: M0030M.

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

Tentamen, Distribuerade System/Programvaruarkitektur

Minnet från processorns sida Datorteknik

Tentamen PC-teknik 5 p Lösningar och kommentarer

Tentamen PC-teknik 5 p

4 grundregler. Minneshantering. Problemet. Windows minkrav

Föreläsning 6: Introduktion av listor

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

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

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary Definitioner Implementation... 2

GU / Chalmers Campus Lindholmen Tentamen Programutveckling LEU 482 / TIG167

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

PROGRAMMERING-Java Omtentamina

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

Programmering för språkteknologer II, HT2014. Rum

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

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

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7)

Realtidssystem Z EDA300 Tentamen 15/ , kl i V-huset

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

Exam Concurrent and Real-Time Programming

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

TDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

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

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

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

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

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

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

FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR

Deluppgift 17 Processhantering: exec, sleep, exit, plist

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

2(x + 1) x f(x) = 3. Find the area of the surface generated by rotating the curve. y = x 3, 0 x 1,

Tentamen i TDIU16 Process- och operativsystemprogrammering

OBS!! Detta är DEL 2 av tentan. För att få ut denna måste du ha lämnat in del 1. Om du inte fått ut del 1 bör du meddela skrivningsvakten. OBS!!

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

Tentamen den 17 mars 2016 Datorteknik, EIT070

Hur kan man designa req_lock_acquire och req_lock_release för ett sådant lås?

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

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

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

TENTAMEN TDDB53. Programmering i Ada för MI (provkod TEN2) den 7 april 2010 kl Institutionen för datavetenskap, IDA Olle Willén mars 2010

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

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18

Tentamen den 18 mars svar Datorteknik, EIT070

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

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

The Finite Element Method, FHL064

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

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

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

Magnus Nielsen, IDA, Linköpings universitet

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

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

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

Föreläsning 14 Innehåll

E: 9p D: 10p C: 14p B: 18p A: 22p

Sockets: server. with Ada.Command_Line; use Ada.Command_Line; with Ada.Exceptions; use Ada.Exceptions; with Ada.Text_IO; use Ada.

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

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

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

TDDI22 (exempel) TDDI22 Tentaregler

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

ÖVERVAKNING AV SQL SERVER

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

Tentamen i Digitalteknik, TSEA22

Vyer, Prepared Statements, Triggers

UTLYSNING AV UTBYTESPLATSER VT12 inom universitetsövergripande avtal

2.1 Installation of driver using Internet Installation of driver from disk... 3

Hjälpmedel för kompilatorkonstruktion, DVB004

Tentamen TEN1 HI

TDDC74 Programmering: Abstraktion och modellering Dugga 1, exempeldugga

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

Beijer Electronics AB 2000, MA00336A,

Tentamen del 2 SF1511, , kl , Numeriska metoder och grundläggande programmering

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 under skrivtid Phone during exam Besöker salen ca kl. Time of exam visit Kuradministratör Course administrator Tillåtna hjälpmedel Allowed aids Övrigt Other information Typ av papper Paper to use Antal anmälda Number of exams 2010-01-09 TER2 14:00-18:00 TDDI04 TEN1 Operativsystem, realtids- och processprogrammering Concurrent programming, Operating systems and real-time operating systems IDA 7 uppgifter för maximalt 80p 7 assignments for a total of 80 points 5 Klas Arvidsson klaar@ida.liu.se 013-28 21 46 Start + 1h Gunilla Mellheden 013-28 22 97, gunme@ida.liu.se Ordlista och enkel miniräknare (+,-,*,/) Dictionary and simple pocket calculator (+,-,*,/) Preliminary graded: U < 50% < 3 < 67% < 4 < 84% < 5 Grades may be raised or lowered based on overall impression. Precise, explained and clearly motivated assumptions, statements and reasoning raise the impression and may triple the points. Solve at most one assignment per sheet. Results available within 10 working days. Read all assignments and estimate how many points you can get before you start. Rutigt, linjerat eller blankt No preference 21 1

1. (12p) Ett operativsystem som använder en enkel algoritm för att allokera (fysiskt) minne kan ibland behöva använda compaction. a) Namnge en allokeringsmetod metod där behov av compaction kan uppstå. (1p) b) Förklara hur det problem som motverkas av compaction uppstår. (2p) c) Namnge problemet som skapar behov av compaction. (1p) d) Namnge en allokeringsmetod som helt undviker att detta problem alls uppstår. (2p) e) Förklara noga hur metoden fungerar (ger poäng även om fel val gjordes i fråga d). (5p) f) Ge namnet på ett annat problem som kan uppstå med denna andra metod. (1p) 2. (8p) Adam och Eva känner inte varandra sedan tidigare. Nu avser de föra en hemlig diskussion avseende huruvida de skall äta eller inte äta ett visst äpple. Eva skickar sin publika nyckel till Adam, och Adam skickar sin publika nyckel till Eva. Nu kan Eva kryptera sina meddelanden med Adams publika nyckel och skicka till Adam. Endast Adams privata nyckel kan avkryptera meddelandet. På motsvarande sätt kan Adam kryptera det han skickar med Evas nyckel. a) Förklara hur Snake in the middle kan attackera deras kommunikation och både läsa och ändra alla meddelanden. (4p) b) Hur kan kommunikationen göras säker? (2p) c) Antag att mycket stora filer skall skickas krypterat. Bör något förändras? (2p) 3. (12p) Berta har startat en ordbehandlare, en musikspelare och en terminal som kör top (visar aktiva processer) i ett grafisk användargränssnitt. Listan på processer uppdateras automatiskt var 10:e sekund. Berta medverkar även i ett distribuerat projekt för beräkning av hur proteiner veckar sig genom att köra en klient för detta i bakgrunden. Medan hon arbetar i ordbehandlaren spelar hon naturligtvis musik. Vilken låt som spelas visas med rullande text i ett fönster. Musikspelaren visar kontinuerligt även en graf över den momentana ljudnivån på olika frekvenser, samt en klocka (sekundnivå) och progress bar hur mycket av låten som spelats. a) Vad visas (som minst) i listan över processer? (1p) b) Vilka kernel-trådar finns rimligen i detta system? (1p) c) Vilka user-trådar kan rimligen antas finnas? (1p) d) Vem sköter schemaläggningen av kernel-trådarena? (1p) e) Vem sköter schemaläggningen av user-trådarena? (1p) f) Namnge minst en schemaläggningsalgoritm som med mycket stor säkerhet kan antas användas och motivera valet. (3p) g) Förklara hur algoritm en i f) fungerar givet följande processer. Specificera de antaganden du måste göra. (Lösningar som ger FIFO ger inte poäng, men annars ges poäng även om du inte valt rätt algoritm i f).) (4p) process arrival length priority P 0 5 2 Q 1 3 4 R 4 2 3 S 5 3 5 T 6 5 1 2

4. (18p) En server på ett företag kör bland annat två processer, R och S, som båda har en mycket hög andel diskaccesser (läser från fil). Processen R använder filen link som är lagrad med linked allocation, och processen S läser från filen index som är lagrad med indexed allocation. Operativsystemet skickar varje filaccess till disken i den ordning de kommer, och disken behandlar blocken i den ordningen. Du kan anta att det senast lästa diskblocket i varje fil finns i en cache, men i övrigt är inga block cachade. Du kan även anta att båda filerna är öppnade. En typisk sekvens för hur processerna läser från filerna visas i tabellen nedan. Ordning Process Fil Filposition Filblock Diskblock 1 R link 2000 4 2004 2 S index 0 1 500 3 R link 500 1 2001 4 S index 512 2 501 5 R link 3000 6 6006 6 S index 1024 3 702 7 R link 1500 3 2003 8 S index 1536 4 703 9 R link 5000 10 6010 Ordning är den ordning operativ-systemet får begäran. Du kan anta att alla begäran ankommer inom en mycket kort tidsrymd (kortare än en diskaccess). Process är den process begäran kommer från. Fil är den fil som skal läsas. Filposition anger var i filen processen vill läsa. Filblock anger ordningsnumret på det block inom filen där filposition återfinns. Diskblock anger det block på disken som motsvarar filposition (det block som måste läsas från disk för att läsa data från Filposition ). Notera att eventuella extra diskaccesser som operativsystemet behöver för att hitta rätt block utifrån den filposition processen anger inte är med i listan, men det påverkar självklart dina svar. a) Uttala dig om huruvida de båda filerna ligger på samma eller olika partition (volym, filsystem). (1p) b) Hur många diskaccesser behövs minst för att besvara alla förfrågningar från process R (rätt svar utan kort förklaring eller motivering ger 0 poäng). (3p) c) Hur många diskaccesser behövs minst för att besvara alla förfrågningar från process S (rätt svar utan kort förklaring eller motivering ger 0 poäng). (3p) d) Uttala dig om huruvida nuvarande system är effektivt med avseende på allokeringsmetod (motivera tydligt varför eller varför inte). (3p) e) Förklara hur och varför prestanda kan ökas genom effektivare planering av diskaccesserna och namnge en algoritm som kan användas. (4p) f) Ett antagande var att filen var öppnad. Förklara vad som händer internt i operativsystemet för att öppna en fil. Av vilken anledning måste en fil öppnas? (Varför görs inte det beskrivna arbetet automatiskt vid varje läsning och skrivning till filen?) (4p) 3

5. (6p) En translation lookaside buffer (TLB) brukar populärt användas tillsammans med en viss allokeringsmetod för (fysiskt) minne. a) Motivera varför man använder en sådan. (2p) b) Visa med hjälp av en formel fördelen med en TLB om en minnesaccess tar 100ns och TLB behöver 10ns. Du kan anta 95% hit rate. (4p) 6. (12p) Ett system med virtuellt minne kör periodiskt fyra processer. P1 exekverar i genomsnitt på 10µs och exekveras varje 40:e µs. P2 kör i genomsnitt klart på 20 µs och har en period på 60 µs. P3 körs i värsta fall klart efter 5µs och körs varje 30 µs. P4 körs ibland, och endast när ingen annan process behöver exekvera. P4 startas aldrig igen om den redan körs och betraktas aldrig som viktig för systemet. a) Hur påverkas körtiden av processerna vid ett pagefault? (1p) b) Vad vill man garantera genom att göra systemet till ett realtidssystem? (1p) c) Vilka förändringar krävs för att göra ovan system till ett realtidssystem? (Läs uppgiften noga.) (3p) d) Visa hur man kan göra en beräkning och jämförelse som visar att garantin i b) alltid uppfylls (valfri algoritm). (3p) e) Hur påverkas systemet om mutual exclusion krävs vid användning av en resurs som delas av P1 och P4? (4p) 7. (12p) Ett antal trådar delar en hashtabell. Hashtabellen är implementerad som en array där varje index är en länkad lista. En hashfunktion beräknar på vilket index ett visst värde skall lagras. Listan innehåller alla värden som råkat hashas till det indexet. (Flera olika värden kan råka hamna på samma index även om det inte är önskvärt.) Koden på nästa sida hanterar hämtning och insättning av värden i tabellen. Du kan göra valfria antaganden om vad som är lagrat i de olika datatyperna och vilka andra typer och funktioner som existerar. Du måste dock använda tydlig namngivning och eventuellt förklara ytterligare för att undvika missförstånd. Antaganden som kan missförstås kommer att missförstås. Det ger då antagligen 0 poäng. a) Förklara med en exekveringssekvens hur fel kan uppstå när trådarna använder tabellen. (4p) b) Förklara med pseudo-kod hur koden på enklaste sätt kan rättas för att undvika fel. (2p) c) Förklara hur koden kan rättas så olika index fortfarande kan användas parallellt. (3p) d) Antag att användningen till större delen består av läsning från tabellen. Förklara hur lösningen kan förbättras ytterligare med denna kunskap. (3p) 4

01: -- to get the data identified by key from table 02: function get(table : in hash_table_type, 03: key : in key_type) returns stored_type is 05: index : integer; -- 3 variable declarations 07: list : list_type; 09: value : stored_type; 11: begin -- code start here 13: index := hash(key); 15: list := table(index); 17: value := find(list, key); 19: return value; 21: end get; 23: -- to insert the data in the table 24: procedure set(table : in hash_table_type, 25: data : in stored_type) is 27: index : integer; -- 3 variable declarations 29: list : list_type; 31: key : key_type; 33: begin -- code start here 35: key := get_key(data); 37: index := hash(key); 39: list := table(index); 41: if exists(list, key) then -- replace old data 43: remove(list, key); 45: end if; 47: insert(list, data); 49: end get; 5