TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica



Vergelijkbare documenten
TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica

' Het tentamen is gesloten boek, dus het is niet toegestaan om het tekstboek, slides of eigen gemaakte aantekeningen te gebruiken.

Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: , Appendix A.

TI-2720 Operating System Concepten. 6 november 2012, uur. docent: H.J. Sips. Dit is een tentamen met 9 open vragen

Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces?

1=2720/2725 Operating System Concepten

Vraag 1 (2 punten) (iii) Een lees-opdracht van virtueel adres 2148 seg 0, offset idem

Uitwerking Tentamen Operating Systems Maandag 15 juni 2015 P1 P2 P3 P4 P5 P1 P3 P5 P4 P2 P1 P3 P5 P3. Opgave 1

Belangrijkste ideeën/concepten uit OS, incl. proces

IN1805 I Operating System Concepten

Virtueel Geheugen en demand paging (1)

Centrale begrippen hoofdstuk 3. Waarom multiprogramming? Vandaag. processen proces state: running, ready, blocked,... Vragen??

Waarmaken van Leibniz s droom

Memory Management. Virtual Memory. Eisen Memory Management. Verdelen geheugen over meerdere processen

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 8 februari 2010

Voorkennis: C, basiskennis microprocessoren (bij voorkeur ARM7 processor)

Geheugen en Adressering. Binding. Binding (2) Logische en Fysieke adresruimten. relocatie register. Dynamic loading

Semaforen. Semaforen p. 1/2

TECHNISCHE UNIVERSITEIT EINDHOVEN ComputerSystemen Deeltentamen B (weken 6..9) vakcode 2M208 woensdag 19 Maart 2003, 9:00-10:30

Computerarchitectuur. App. B. Review of Memory Hierarchy

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

ICT Infrastructuren: Processen en Threads. 18 november 2013 David N. Jansen

SERVICE LEVEL AGREEMENT SERVICE LEVEL AGREEMENT ADDENDUM VIRTUALISATIE VERSIE

slides7.pdf 23 nov

Zelftest Informatica-terminologie

Tentamen Computersystemen

Programmeren in C++ Efficiënte zoekfunctie in een boek

z x 1 x 2 x 3 x 4 s 1 s 2 s 3 rij rij rij rij

TI-2720 Operating System Concepten. 21 januari 2013, uur. docent: H.J. Sips. Dit is een tentamen met 9 open vragen

Javascript oefenblad 1

slides3.pdf April 15,

! GeoNetwork INSPIRE Atom!

Syntax- (compile), runtime- en logische fouten Binaire operatoren

Computerarchitectuur en netwerken Toets 1 4 okt

Take-home Tentamen Protocolvericatie. Universiteit van Amsterdam. 27 Maart 1994

Computerarchitectuur en netwerken. Memory management Assembler programmering

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 22 februari 2013

Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010

MyDHL+ Uw accountnummer(s) delen

Interaction Design for the Semantic Web

Variabelen en statements in ActionScript

CPU scheduling : introductie

Gift & Loyalty card. User Guide v2.1 NL Schema Eigenaar. Laatste update : Mei 2014

Het beheren van mijn Tungsten Network Portal account NL 1 Manage my Tungsten Network Portal account EN 14

Het begrip 'Proces' Proces-toestand

Introductie in flowcharts

SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead

Waarden persistent (blijvend) opslaan gaat in bestanden (files). Lege tekst: eof

IN1805 I - Operating System Concepten

DALISOFT. 33. Configuring DALI ballasts with the TDS20620V2 DALI Tool. Connect the TDS20620V2. Start DALISOFT

Een model voor personeelsbesturing van Donk, Dirk

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort

Windows NT 4.0. Performance Monitoring. Gino Damen 28 oktober 1997 Versie: 1.0

Tentamen 17 augustus 2000 Opgaven Computerarchitectuur

Erik Poll Martijn Warnier.

Examen besturingssystemen

HET HOE EN WAT VAN ONLINE DIENSTEN DOOR: STEVEN ADEMA EN ANNEJENT HOEKSTRA

Handleiding RS Form! 1.0.4

Protocol: Bij het tabblad Protocol kunt u bepaalde protocollen blokkeren.

EM6250 Firmware update V030507

Zelftest Inleiding Programmeren

Multi user Setup. Firebird database op een windows (server)

Tutorial voor FTP, STMP en Telnet

Pascal uitgediept Data structuren

Geheugenbeheer. ICT Infrastructuren. hoofdstukken 7 en 8.1

General info on using shopping carts with Ingenico epayments

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 7 februari 2011

Solcon Online Backup. Aan de slag handleiding voor Linux

A2: Bedrijfssystemen. A2 en PC. Boek. Voorkennis

TENTAMEN Programmeren 1 VOORBEELDUITWERKING

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

Oefeningenexamen Informatica: juni 2015

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS

Vierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument

Programmeermethoden NA. Week 5: Functies (vervolg)

Conclusies over semaforen

Multi-core systemen. door Alexander Melchior

Hoe zet u virtualisatie slim in bij forensische onderzoeksomgevingen?

Classification of triangles

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

in Operating System Concepten

BuildingOn WebOTP.

Dicht het security gat - Microsoft SharePoint, OCS, en Exchange met Secure File Sharing Heeft uw organisatie ook een Dropbox probleem?

in Operating System Concepten Doel van een Operating System Interrupts 3-Lagen model spooling (Simultaneous Peripheral Operation On Line)

Cursus Software Architecture (T32311 en T32811)

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 17 november 2004, 9:00u-12:00u

Settings for the C100BRS4 MAC Address Spoofing with cable Internet.

INHOUD. KHLim dep IWT MeRa 1/22

IN1671 Operating System concepten Oefen opgaven

Examen besturingssystemen

NCTS - INFORMATIE INZAKE NIEUWIGHEDEN VOOR 2010

Open Onderwijs API. De open standaard voor het delen van onderwijs data. 23 juni 2016 Frans Ward - SURFnet Architectuurraad - Utrecht

Intake Formulier Opleidingen

Hieronder volgt een overzicht van relevante contactpersonen binnen KPN Telecom.

Transcriptie:

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica Examen Operating Systemen (2R230) op dinsdag 27 juni 2006, 14.00-17.00 uur. Het tentamen bestaat uit drie delen die apart worden ingeleverd. Deel A bestaat uit kennisvragen die u zeker in max. 30 minuten kunt beantwoorden, op een apart blad! Uitgebreide verklaringen zijn bij deel A niet nodig, compacte antwoorden worden op prijs gesteld, antwoorden worden slechts goed/fout beoordeeld.wanneer u deel A hebt ingeleverd (eventueel eerder dan deze 30 minuten) mag u bij deel B uw boeken en aantekeningen gebruiken. Deel C betreft ofwel het essay dat u thuis hebt gemaakt (voor recidivisten) ofwel het rapport dat u hebt gemaakt van het praktisch werk. Deel C wordt bij het verlaten van de zaal gezamenlijk met het gemaakte werk ingeleverd of het wordt ingeleverd op de hiervoor gestelde deadline. Werk overzichtelijk. Lees de delen afzonderlijk eerst geheel door. De normering is bij alle onderdelen tussen haakjes aangegeven en sommeert tot 11 punten. Er zijn in totaal 3 pagina s. DEEL A (3 punten) 1. Geef tenminste 3 motivaties voor het bestaan van Operating Systemen. a. abstractie, van onderliggende diversiteit b. virtualisatie, algemene concepten (lineair geheugen, file systeem, processor) beschikbaar voor applicaties als virtuele machine c. sharing, van functionaliteit die alle applicaties nodig hebben d. resource management e. concurrency, gelijktijdig gebruik kunnen maken van resources f. programma portabiliteit, d.m.v. gestandaardizeerde interfaces 2. Wat is het verschil tussen streaming en message-based communicatie? Geef van beiden een voorbeeld. a. streaming: ontbreken van message structuur en bijbehorende synchronisatie. Voorbeeld: communicatie van een multimedia-stroom b. Ook goed wordt gerekend: streaming is continue communicatie. c. message-based: berichten zijn aparte entiteiten; ontvangen berichten corresponderen 1 op 1 met verstuurde berichten. Voorbeelden: email, message queues 3. Wat zijn voordelen van het gebruik van meerdere threads boven het gebruik van meerdere processen? a. vermijden van context switches b. programma structurering met concurrency op dezelfde data event-based programming

c. (benutten van concurrency van onderliggende platform; dit geldt echter in principe ook voor processen; processoren met hyperthreading kunnen wel efficienter worden gebruikt.) 4. Wanneer mag een statement in een programmeertaal als atomair worden beschouwd? a. als het ten hoogste 1 referentie naar een ( enkelvoudige ) gemeenschappelijke variabele bevat. b. als het als zodanig is gegarandeerd door het Operating System. Ook wordt goed gerekend, vanwege dubbelzinnigheid in de vraagstelling: wanneer executie van het statement niet kan worden onderbroken. [ik blijf dit een maf antwoord vinden aangezien vraag en antwoord aan elkaar gelijk zijn.] 5. Wat is priority inversion? Geef een voorbeeld. a. Het verschijnsel bij scheduling dat een hoog prioriteitsproces wordt geblokkeerd op een proces van gemiddelde prioriteit via blokkade op een resource die dit hoog prioriteitsproces gemeenschappelijk heeft met een laag prioriteitsproces. Gedurende de blokkade op deze resource kunnen processen van gemiddelde prioriteit willekeurig voorgaan. Een voorbeeld staat op de slides van scheduling. 6. Uit welke naamsystemen is de string ftp://ftp.win.tue.nl/johanl opgebouwd? Geef aan hoe de verwijzing wordt opgelost. a. uit een URL (ftp://ftp.win.tue.nl) en een naam in een filesysteem (/johanl). De verwijzing wordt opgelost via DNS (voor een adres van het access point van de machine), en door ftp te gebruiken als nader detail van het adres om de ftpserver te benaderen [index in een gestandaardiseerde tabel]. Deze ftp-server kan vervolgens de naam in het filesysteem oplossen. 7. In welke klassen kun je input/output devices onderverdelen? Geef ook karakteristieken. a. Terminals storage (block) devices block oriented + reader/writers model, random access streaming devices byte oriented + consumer/producer model, sequential b. Communication devices streaming + bewerkstelligen setup via client/server rollen 8. Welke acties moeten gebeuren bij het optreden van een interrupt? Van de slide: a. saving additional state not saved by the hardware b. re-enable interrupts, except the one under consideration c. take away volatile state from the interrupting device as soon as possible d. re-enable the interrupt e. process the obtained information f. wake up waiting processes and select a new one for continuation g. return from interrupt We zijn hier ook tevreden met getoond inzicht...; echter de check op wakeup en rescheduling moet er dan wel in staan 9. Wat het het verschil tussen symbolic linking en mounting? a. symbolic link: naam in nieuw naamsystem + closure vormen de inhoud van een file

b. mounting: closure en prefixing worden (transparant) toegevoegd aan het resolutie algoritme samenvoegen van twee naamruimten. 10. Welke conflicterende eisen bepalen de keuze van de pagina-grootte in een virtueel geheugen systeem? a. Het moet een tweemacht zijn. b. Het moet een grote waarde zijn om de pagina-tabellen en hun beslag op het geheugen klein te laten zijn. c. Het moet een kleine waarde zijn om interne fragmentatie te beperken.

DEEL B (8 punten) 1. (1 pt) De compare-en-swap instructie voert atomair de volgende operatie uit: vergelijk een variabele met een gegeven waarde en, afhankelijk van de uitkomst, ken de variabele een nieuwe waarde toe. De waarde van de vergelijking is beschikbaar voor de aanroeper. Iets precieser: C&S (v, b, o, n): < b := (v=o); if b then v := n fi > Hierin is v een variabele en zijn o en n waarden van hetzelfde type als v; b is een boolean variabele. Geeft een implementatie van binaire seinpaaloperaties met behulp van busy waiting en deze instructie. Geef ook een toelichting. Initieel: s=0 P(s): do C&S (s, t, 0, 1) while not t t is een locale variabele van procedure P V(s): s := 0 (of C&S(s, t, 1, 0) met een test op t) Toelichting: de waarde 0 representeert een token. De P operatie representeert het verkrijgen van dit token door busy waiting; het token wordt dan vervangen door de waarde 1. De eigenaar van het token is het proces dat een 0-1 overgang weet te maken. 2. Een gegeven filesysteem maakt voor de opslag op het medium gebruik van een multilevel hierarchie. Blokken zijn 1024 bytes groot, een blok-index is 4 bytes en een filedescriptor is 1/4 blok groot. Voor het opslaan van index-tabellen, verwijzingen of file inhoud zijn 32 bytes beschikbaar in de descriptor. a. (1 pt) Hoeveel levels zijn nodig om een maximale filegrootte van 100 GB toe te staan? Geef aan hoe dit schema eruit ziet. Is het schema efficient? 100 GB = 100 x 1024 x 1024 x 1024 bytes = 100 x 1024 x 1024 blokken. Dit levert 400 MB (!) aan verwijzingen. De 32 bytes kunnen 8 adressen van blokken bevatten (level 1). Deze 8 blokken leveren samen 8KB/4 = 2048 adresssen (level 2). Deze leveren 2048 x 1024 / 4 = 512 x 1024 verwijzigen (level 3). Dit is te weinig en er is dus een 4e nivo nodig. Efficientie: een incrementeel schema is veel beter omdat in de praktijk de meeste bestanden klein zijn. Tevens kunnen voorzieningen om met opeenvolgende blokken om te gaan grote verbeteringen geven. Een voorbeeld hiervan is een veel grotere blockingfactor (bijv. 16) b. (1 pt) Geef een incrementeel hierarchisch schema waarin bestanden met een lengte tot 4K met zo weinig mogelijk indirecties worden opgeslagen. (Voor files groter dan 4K zijn er geen beperkingen.) Door 4 data-blok-adressen op te nemen in de descriptor kunnen de blokken van een bestand tot 4K onmiddellijk, met 1 indirectie, worden opgehaald. Met de resterende 16 bytes (4 adressen) kan een hierarchisch schema worden opgezet zoals bijv. in fig. 10-13 van het boek is geïllustreerd (resp. verwijzing naar 2-level, 3-level, 4-level en 5-level hiërarchiën) c. (0.5 pt) Wat is, bij genoemde beperking, de maximale grootte van een file die met 0 indirecties wordt opgeslagen? Opmerking: veel mensen geven aan de resterende 756 bytes uit het blok waarin

de descriptor zit te willen gebruiken. Dat kan natuurlijk niet, hierin zitten andere descriptors. (Anders is de opmerking dat een descriptor 256 bytes groot is onzin.) 0 indirecties betekent dat de inhoud in de descriptor terechtkomt. In ieder geval zijn er 4 adressen nodig voor de files met lengte tot 4 K. Daarnaast nog minimaal 1 adres om het (incrementeel) hierarchische deel te beginnen. Dit zijn 20 bytes. Resteren 12 bytes als maximale lengte. d. (1 pt) Geef voor uw ontwerp bij b) in woorden de algoritmen aan om een specifiek blok te lezen, er één te schrijven en een blok aan de file toe te voegen. Hoeveel disk-blokken moeten er worden gelezen voor een bestand van 133 blokken? blok lezen / schrijven: lezen descriptor; nagaan of het blok onder of boven 4K zit in eerste geval: ophalen via directe referentie; laatste geval: volgen van hierarchische structuur: herhaald ophalen indirectieblokken gevolgd door afhandelen referenties append: uitbreiding nagaan of je over de 4K grens gaat, c.q. een grens in de hierarchie aanpassen van de hierarchische structuur door toevoegen indirectie blokken (die dan ook dienen te worden gealloceerd) allocatie en toevoegen van het nieuwe blok lezen 133 blokken: descriptor, 1 e 4 blokken, indirectie-blok van level 2 hierarchie, lezen 128 blokken. In totaal: 2+133=135 p1 p2 R1 R2 R3 p3 p4 3. Bovenstaande figuur geeft een claim-graaf weer. (a) (0.5 pt) Leg uit wat deze graaf betekent. p1-p4 zijn processen; R1-R3 zijn resources. De kleine bolletjes geven de aantallen resources weer die beschikbaar zijn. De pijlen geven weer voor ieder process wat het maximaal aantal te claimen recources is. Voor deadlock avoidance wordt het bankiersalgoritme gebruikt. Geef bij ieder van de volgende situaties aan of ze kunnen optreden. Zo niet, geef dan een argument, zo wel, geef dan een voorbeeld in de vorm van een graaf. Het geval dat er meer wordt gevraagd dan momenteel beschikbaar is komt in onderstaande niet in aanmerking. Het punt in het bankieralgoritme is een beslissing te nemen in het geval dat het wel zou kunnen (zie ook de preconditie) maar niet gebeurt om deadlock te voorkomen. (b) (0.5 pt) p4 wacht op R3 terwijl er wel een R3-resource beschikbaar is.

Kan wel voorkomen, maar alleen op de eerste van de twee. Zie figuur. p1 p2 R1 R2 R3 p3 p4 (c) (0.5 pt) p1 wacht op R2 terwijl er wel een R2 resource beschikbaar is. Kan niet voorkomen aangezien p2 na het verkrijgen van deze resource in een open toestand zit. Er is immers geen competitie op R1. (d) (0.5 pt) p2 wacht op R2 terwijl er wel een R2 resource beschikbaar is. Kan wel voorkomen als p2 deze niet als laatste vraagt. Zie figuur. p1 p2 R1 R2 R3 4. Beschouw de volgende reeks pagina referenties van een virtueel geheugen: 1, 2, 3, 4, 2, 1, 5, 6, 2, 1, 2, R 3, 7, 6, 3, 2, 1, 2, 3, 6. (1.5 pt) Hoeveel page faults koment voor bij resp. LRU, FIFO en een optimaal algoritme waarbij u achtereenvolgens aanneemt dat er a) 3 and b) 7 page-frames beschikbaar zijn? Licht uw antwoorden toe. Oplossing: p3 Number of frames LRU FIFO Optimal 3 15 16 11 p4

7 7 7 7 The more page frames are available in main memory the smaller the number of page faults. For 3 page frames, less page faults occur if LRU is used. So, it is preferred to use this one. The number of faults is much larger than using an optimal algorithm. For 7 page frames the number of page faults using both LRU and FIFO algorithms is the same so either of the two can be used. Moreover, both algorithms offer the same performance as the optimal one.