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

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

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

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

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

Operativsystem (IS1350) :00-12:00

Operativsystem ID1200/06 Tentamen :00-18:00

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

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

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

Operativsystem ID2200/06 omtentamen :00-18:00

Operativsystem ID1200/06 Tentamen :00-18:00

Operativsystem ID2200/06 omtentamen :00-12:00

Operativsystem ID2200/06 omtentamen :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 ID2200/06 omtentamen :00-18:00

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

Operativsystem ID2200/06 omtentamen :00-18:00

Operativsystem ID2200/06 omtentamen :00-12:00

Programmering II (ID1019) :00-11:00

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

Operativsystem ID2200/06 omtentamen :00-12:00

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

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

Programmering II (ID1019) :00-12:00

Realtidsprogrammering Ordinarie tentamen

Stack och subrutiner Programmeringskonventionen

Programmering II (ID1019) :00-17:00

Programmering II (ID1019) :00-12:00

Minnet från processorns sida Datorteknik

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

4 grundregler. Minneshantering. Problemet. Windows minkrav

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

Föreläsning 13 Innehåll

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

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

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

Lösningsförslag till tentamen i IS1350 Operativsystem

Minneshantering segmentering och virtuellminne. Föreläsning 3

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

F5: Högnivåprogrammering

Mål. Datorteknik. Innehåll. Innehåll (forts) Hur ser ett program ut? Hur skapas maskinkoden?

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 3. Assembler, stack och subrutiner, programmeringskonventionen. Institutionen för elektro- och informationsteknologi, LTH

Programmering II (ID1019) :00-11:00

F5: Högnivåprogrammering

Tentamen i Realtidsprogrammering

Tentamen i Realtidsprogrammering för Au3, D3, E3

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

Programmering II (ID1019) :00-12:00

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

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

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.

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

Tentamen TEN1 HI

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

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

Classes och Interfaces, Objects och References, Initialization

Datorteknik ERIK LARSSON

Några gamla tentamensuppgifter: Minneshantering

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

Tentamen Datastrukturer D DAT 035/INN960

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Tentamen Datastrukturer D DAT 035/INN960

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

Tentamen den 18 mars svar Datorteknik, EIT070

Tentamen i Algoritmer & Datastrukturer i Java

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

Tentamen Grundläggande programmering

Tentamen i Algoritmer & Datastrukturer i Java

Tommy Färnqvist, IDA, Linköpings universitet

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

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

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

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

Operativsystem - input/output, skydd, virtualisering

729G04 Programmering och diskret matematik

Tentamen i Datorkommunikation den 10 mars 2014

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

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

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

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

Tentamen Datastrukturer D DAT 035/INN960 (med mycket kortfattade lösningsförslag)

Imperativ programmering

Omtentamen i Realtidsprogrammering för Au3, D3, E3

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

Tentamen med lösningsförslag Datastrukturer för D2 DAT 035

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Tentamen i Objektorienterad modellering och design Helsingborg

Systembeskrivning. Systemskiss. Moduler.

Digitalteknik och Datorarkitektur 5hp

Tentamen i Grundläggande Programvaruutveckling, TDA548

Aktivitetsschemaläggning för flerkärninga processorer

Transkript:

Operativsystem ID2206 Tentamen TEN1 4.5 hp 2018-04-03 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Svaren skall lämnas på dessa sidor, använd det utrymme som nns 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. Betyg 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, [p*], och ger poäng för de högre betygen. Vi delar alltså upp tentamen i grundpoäng och högre poäng. Se först och främst till att klara grundpoängen innan du ger dig i kast med de högre poängen. Notera att det av de 18 grundpoängen räknas bara som högst 16 och, att högre poäng inte kompenserar för avsaknad av grundpoäng. Gränserna för betyg är som följer: Fx: 9 grundpoäng E: 10 grundpoäng D: 12 grundpoäng C: 15 grundpoäng B: 16 grundpoäng och 5 högre poäng A: 16 grundpoäng och 8 högre poäng Gränserna kan komma att justeras nedåt men inte uppåt. 1

1 fork() [2p] När man skapar en ny process genom att använda fork() så kommer de två processerna att dela vissa saker. Vilka, om några, av följande saker kommer de två processerna att dela? Stack nej Heap nej Globalt minne nej Kod-area nej Öppna ler ja 2 vad nns på stacken [2p] Antag att vi gör ett proceduranrop till foo() som i exemplet nedan och att all informations läggs på stacken dvs vi använder inte register för argument och resultat, vad nns då på stacken när vi kommer in i foo? Rita upp en stack och beskriv vad som nns där. Visa även var stackpekaren och baspekaren pekar. ESP/EBP previous EBP return IP 3 4 location of z int foo ( int x, int y) { return x + y; } int bar () { int z; z = foo (3, 4) return z; } 2

3 varför malloc [2p] När man programmerar i C så måste man explicit allokera en del datastrukturer på heapen med hjälp av malloc. I språk som har s.k. automatisk minneshantering, som till exempel Java, Erlang och Python, så behöver man inte tänka på var någonstans datastrukturer allokeras. Hur fungerar dessa språk? Allokeras allt på stacken nns det ingen heap? Om det nns en heap måste man då inte ta bort datastrukturer som inte används? Förklara hur dessa språk hanterar minnet. 4 lika-lika [2p*] När man implementerar malloc/free är ett alternativ att bara dela ut block som är en jämn exponent av två. Man kanske har någon nedre gräns så man kanske delar ut block av storlek: 16 byte, 32 byte, 64 byte, 128 byte osv. Detta har vissa fördelar men även vissa nackdelar. Beskriv hur systemet skulle kunna implementeras och dess för och nackdelar. 3

5 pipes [2p] Vilket av följande påståenden, om något, är sant? En pipe är en dubbelriktad kanal för kommunikation mellan processer inom samma operativsystem. falskt När man läser från en pipe läser man ett meddelande åt gången. Man får alltid ett helt meddelande, aldrig ett halvt. falskt När man läser från eller skriver till en pipe så använder man de vanliga biblioteksrutinerna som används för ler. sant 6 sämre omloppstid [2p] Visa med ett tidsdiagram hur vi kan få sämre omloppstid (turnaround time) om vi istället för att köra tre jobb på 30 ms var efter varandra, implementerar round-robin där varje jobb får en tidslucka på 10 ms. I exemplet nedan har vi en omloppstid på i medeltal 80 ms. Om vi körd de tre jobben efter varandra hade omloppstiden varit 60 ms ((30,60,90)/3). J1: J2: J3: 0 10 20 30 40 50 60 70 80 90 100 110 120 ms 4

7 MLFQ - WTF! [2p] Antag att vi implementerar en MLFQ för vår schemaläggning av jobb enligt reglerna nedan. Vad kommer problemet bli och hur skulle vi kunna lösa det? Regel 1: om Prioritet(A) > Prioritet(B) så schemalägg A. Regel 2: om Prioritet(A) = Prioritet(B) så schemalägg A och B i roundrobin. Regel 3: ett nytt jobb startar med högsta prioritet. Regel 4a: ett jobb som måste avbrytas (tidsluckan förbrukad) yttas till en lägre prioritet. Regel 4b: ett jobb som initialiserat en I/O-operation (eller yield) stannar kvar på sin nivå. 8 en zombie [2p*] En process kan benna sig i ett s.k. zombie-tillstånd. Vad betyder detta, varför är processen i det tillståndet, när tas den därifrån och vad händer sedan med processen. 5

9 En sidad MMU med TLB [2p] Nedan är en schematisk bild av en MMU som använder sig av en TLB för att översätta en virtuell adress till en fysisk adress. Identiera följande enheter och adresser: virtuell adress, fysisk adress, register för basadress till sidtabell (PTBR), oset i sida, sidnummer (VPN), ramnummer (PFN), TLB, sidtabell, sidtabellspost (page table entry, PTE). virtual addr. // oset VPN TLB PFN + physical address VPN PTE + PTBR Page table in memory 6

10 inverterad sidtabell [2p*] En inverterad sidtabell är en tabell som givet processidentierare och sidnummer returnerar vilken ram som sidan nns i (om den nns i minnet). Tabellen har ett element per ram i minnet och kan inte indexeras med hjälp av sidnummret, man måste på något sätt söka igenom tabellen för att hitta rätt ram. Vad är fördelen med att ha en inverterad sidtabell om uppslagningen kommer att ta längre tid? Förklara vilka fördelar vi får och när det är mest fördelaktigt att använda en inverterad tabell. 7

11 ett enkelt lsystem [2p] Beskriv hur ett enkelt lsystem skulle kunna organiseras på en hårddisk som är organiserat i segment om 4 Kbyte. Beskriv vilka datastrukturer som behövs och rita in hur dessa kan organiseras på hårddisken (vi tar en minimal disk som exempel). Vi representerar ler med hjälp av en inode med pekare till datablock med lens innehåll. Det första segmentet innehåller information om lsystemet. Det andra och tredje segmentet har bitmappar som beskriver vilka inoder och datablock som är ledig. Om inoder är på 256 bytes så kan vi lagra 56 st i fyra segment. Vi använder de resterande 56 segmenten som datablock för ler. S i d 0 inodes 8 16 24 32 40 48 56 56 data blocks 8

12 loggbaserade fs [2p*] I ett loggbaserat lsystem så har inoderna inte någon bestämd plats utan skrivs i block tillsammans med datablocken. Problemet är då att hitta de inoder man söker efter: hur vet man var olika inoder ligger? Beskriv och rita in i guren nedan hur man hittar de inoder man söker efter. En inode-map (m i guren nedan) skrivs alltid sist i en skrivning och är en mappning från inode-id till block för respektive inode. En struktur CR (Checkpoint Region) är på en fast position och håller en pekare till den sist skrivna inode-map. CR D D D D i9 D i7 m 9

13 schemaläggare för realtid [2 p] Antag att vi har en mängd jobb som beskrivs med e, p, d : e : dess längsta exekveringstid d : dead-line dvs när senast efter det att perioden börjar måste den vara klar p : dess periodicitet Hur skulle en earliest dead-line rst schemalägga tre jobb med följande egenskaper: 10, 40, 40 20, 60, 60 30, 80, 80 Rita upp ett tidsschema för de första 100 ms. 10

14 RPC [2 poäng*] Vid implementering av RPC kan man välja mellan att erbjuda at least once eller at most once vad betyder dessa begrepp? Vid at least once kommer systemet att skicka om en förfrågan som kanske har gått förlorad vilket gör systemet mer tillförlitligt men vi riskera o andra sidan att en förfrågan hanteras mer än en gång. Vid at most once kommer systemet inte att skicka om en förfrågan för att därmed undvika problemet. Problemet är dock nu att om en förfrågan går förlorad så görs inte ett nytt försök automatiskt. 11