Besturingssystemen

Ga naar: navigatie, zoeken

Inhoud

Samenvattingen

Klik hier om de samenvattingen te bekijken

De cursus en het examen

Leuven

Tot en met het academiejaar 2005-2006 werd dit vak gegeven door prof B. De Decker, prof B. Demoen nam het dan voor 2 jaar over. De academiejaren 2008-2009 en 2009-2010 werd Besturingssystemen gedoceerd door prof Verbaeten en vanaf het academiejaar 2010-2011 neemt prof Berbers het vak voor haar rekening.

Het examen bestaat uit een mondeling stuk (op 11 punten) en een schriftelijk deel (op 4 punten) waarbij je je boek mag gebruiken. De andere 5 punten verdien je doorheen het semester door naar de oefenzittingen en contactsessies te komen en het werk dat je daar levert. Op elk van de 3 bovenstaande onderdelen moet je wel 7/20 of meer halen, anders ben je voor het volledige vak gebuisd.

Voor dit vak wordt het boek Operating System Concepts van Silberschatz, Galvin en Gagne gebruikt. Je moet oppassen dat je niet de Java editie van het boek koopt, deze is lichtjes anders en dit kan moeilijk zijn tijdens de oefenzittingen.

Prof Berbers gebruikt de slides die bij het handboek horen, deze kan je vinden op internet maar worden uiteraard ook op Toledo gezet. Prof Berbers heeft sommige slides lichtjes aangepast dus je gebruikt beter de slides van Toledo. De slides van de 3 proffen geleden (B. De Decker) zijn hier beschikbaar gesteld. Deze slides behoren tot een ouder handboek dus zijn waarschijnlijk niet meer u to date.

De contactsessies verlopen als volgt: voor de sessie moet je 2 hoofdstukken uit het boek lezen. Je moet dan zelf een examenvraag verzinnen, opschrijven op een blad en meenemen naar de les. In de les (dit is gepland als hoorcollege) moet je in groepjes van 4 elkaar ondervragen aan de hand van kaartjes, je mag hiervoor je boek gebruiken. Op deze kaartjes staan ofwel begrippen die je dan moet uitleggen, ofwel een verwijzing naar een figuur of vraag in het handboek die je dan moet kunnen uitleggen of oplossen. Aan het einde van de les moet je de leden van je groep quoteren, deze punten tellen dan (deels) mee als permanente evaluatie.

Voor de oefenzittingen moet je niets voorbereiden, het is wel de bedoeling dat je de leerstof een beetje kent. Het grootste deel van de oefenzitting werk je (individueel of in groep) aan de oefeningen die je krijgt van de assistenten. Dit zijn programmeeropdrachten in Java of Linux maar ook gewone schriftelijke oefeningen. Het laatste kwartier krijg je een blad met daarop een vraag, aansluitend bij de oefenzitting, die je moet oplossen en indienen.

Tijdens het schriftelijke deel van het examen krijg je oefeningen zoals tijdens de oefenzittingen. Deze mag je oplossen met het boek, je mag geen nota's uit de oefenzittingen meenemen.

Het mondelinge deel (met schriftelijke voorbereiding) is uiteraard het belangrijkste. Tijdens de schriftelijke voorbereiding mag je je boek niet gebruiken, je krijgt wel enkele kopies van stukken uit het boek die je kan gebruiken. Terwijl de prof je schriftelijke voorbereiding nakijkt, krijg je een figuur te zien die je later moet kunnen uitleggen. De eerste vraag is een lange overzichtsvraag waarmee je inzicht in de cursus wordt gepeild. Deze kan een combinatie zijn van meerdere hoofdstukken, het is de bedoeling dat je hier uitgebreid op antwoordt. Bij de tweede vraag krijg je 6 begrippen uit de cursus voorgeschoteld waarvan je er 5 moet uitleggen, welke je uitlegt mag je zelf kiezen. Deze vragen moet je telkens illustreren met voorbeelden en figuren uit het boek, het boek mag je dan ook gebruiken terwijl je bij de prof mondeling aflegt.

Kortrijk

Hier krijg je geen praktijkopdracht of permanente evaluatie van prof. Schrijvers. Er wordt wel duidelijk de nadruk gelegd op het belang van de begrippenlijst die je ook best maakt. Het boek (Operating System Concepts) is moeilijk te verkrijgen en moet je zelf bestellen. Dat kan best op Amazon en dat zo snel mogelijk want het kan best lang duren voor je je kopie krijgt (tot 7 weken!). Je doet er goed aan dit boek zo snel mogelijk in je bezit te hebben want beginnen studeren vlak voor het examen is bij dit vak niet aan te raden.

Het examen is te doen. Veel informatie over de structuur van het examen kan er niet gegeven worden, daar prof. Schrijvers dit vak nog maar voor het 2e jaar doceert en een andere methode toepaste. in 2007 waren er verschillende vragen per persoon. In 2008 verschillende vragen per groep van 5 personen. Je kan al raden dat de ene groep wel eens de gemakkelijke vragen kan krijgen en jij de moeilijke.

Wat op je blad staat telt niet, hij overloopt het wel wat als leidraad of om je wat te ondersteunen tijdens het vertellen. Dit omdat je niets zou vergeten wat op je blad staat. Prof. Schrijvers is vriendelijk maar koel en rustig. Hij stelt wat bijvragen die in detail kunnen gaan. Je hebt 2 uur de tijd om alles voor te bereiden.

Vakevaluatie

Elk puntje hieronder is iemands mening. Verander aub geen puntjes. Als je een andere mening hebt, gelieve ze onderaan toe te voegen.

Kwaliteit cursus (prijs, duidelijkheid, overeenkomst met les, ...)

  • 2016: Stevig handboek waarin alles duidelijk uitgelegd wordt.

Studiebelasting (aantal studiepunten in verhouding met bestede tijd)

  • 2016: Het zwaarste (verplichte) vak van het eerste semester. Er is wekelijks een college, een 'interactiesessie' waarvoor je twee hoofdstukken uit het boek moet lezen als voorbereiding, en na enkele weken ook oefenzittingen. Tijdens de blok is het ook veel blokken, want het is eigenlijk een zuiver kennisvak.

Plaats binnen de opleiding (nodige voorkennis, overlap met andere vakken, relevantie van het vak,...)

  • 2016: Vergelijkbaar met SOCS.

Manier van lesgeven bij hoorcolleges (snelheid, verstaanbaarheid, structuur, nut, ...)

  • 2016: Het tempo van de colleges ligt te hoog om twee uur lang te kunnen blijven volgen. Ze zijn absoluut niet nodig om een hoge score te halen, want uiteindelijk leer je alles vooral door het handboek te lezen. Bij de interactiesessies moet je de leerstof aan een viertal medestudenten uitleggen, en dat is wel leerrijk.

Evaluatie oefenzittingen/labo's (nut, begeleiding, ...)

  • 2016: Sommige oefenzittingen gaan te veel in detail in op zaken die er eigenlijk niet toe doen (bv. het implementeren van geziene algoritmen) en andere zijn wel nodig om het oefeningengedeelte op het examen goed te kunnen.

Examen (mate waarin het een weerspiegeling is van de cursus, examenvorm, ...)

  • 2016: Altijd hetzelfde: een oefening, een aantal termen verklaren (dat kan alles zijn), en een synthesevraag die aan meerdere hoofdstukken raakt. Voor de theorie kun je best een lijst maken met belangrijke termen, en de synthesevragen van vorige jaren eens proberen te beantwoorden. Hoe meer details je kunt geven, hoe beter.


Examenvragen

2019

14/01/2019 - Voormiddag

Oefeningen:

  1. Er wordt een figuur gegeven die de uitvoer van een scheduler weergeeft. De eerste oefening moet mondeling uitgelegd worden aan een van de assistenten.
    • Bespreek waarom FCFS, SJF, priority scheduling het gebruikte scheduling algoritme zou kunnen geweest zijn, of waarom niet.
    • Wordt er gebruik gemaakt van aging? Leg uit hoe je dit ziet.
    • Wordt er gebruik gemaakt van tijdskwanta? Leg uit hoe je dit ziet.
  2. Een oefening gelijkaardig aan 2.3 uit de oefenzitting: De volgende grafe toont in welke volgorde de instructies Si moeten uitgevoerd worden. De rechthoeken stellen bijkomende beperkingen voor. Implementeer de bovenstaande beperkingen. Maximaliseer het parallellisme.

Theorie:

  1. Interrupts en exceptions uitleggen, hoe ze werken waarom ze belangrijk zijn en voorbeelden geven van HS16 en 17. Tekening van 13.3 (Interrupt-driven I/O cycle) geven.
  2. Verklaar 5 van de 6. Geef voorbeelden, alternatieve, voor- en nadelen waar toepasselijk en voorbeelden in Windows en/of Linux waar mogelijk:
    • Virtual machine manager
    • Hard real-time system
    • C-look
    • System-wide open table
    • LRU page replacement
    • Need-to-know principle

14/01/2019 - Namiddag

Oefeningen:

  1. Er wordt een figuur gegeven die de uitvoer van een scheduler weergeeft. De eerste oefening moet mondeling uitgelegd worden aan een van de assistenten.
    • Bespreek waarom FCFS, SJF, priority scheduling het gebruikte scheduling algoritme zou kunnen geweest zijn, of waarom niet.
    • Wordt er gebruik gemaakt van aging? Leg uit hoe je dit ziet.
    • Wordt er gebruik gemaakt van tijdskwanta? Leg uit hoe je dit ziet.
  2. Een oefening gelijkaardig aan 2.3 uit de oefenzitting: De volgende grafe toont in welke volgorde de instructies Si moeten worden uitgevoerd. De rechthoeken stellen bijkomende beperkingen voor. Implementeer de bovenstaande beperkingen. Maximaliseer het parallellisme.

Theorie:

  1. Wat zijn de mogelijke toestanden waarin processen zich kunnen bevinden? Geef steeds uitleg over de mogelijke oorzaken, hoe de overgang tot stand komt en welke gevolgen dit zou kunnen hebben voor het besturingssysteem.
  2. Verklaar 5 van de 6. Geef voorbeelden, alternatieve, voor- en nadelen waar toepasselijk en voorbeelden in Windows en/of Linux waar mogelijk:
    • Asymmetrische Communicatie
    • TLB Hit
    • Thread Library
    • Private Key
    • Maskable Interrupt
    • Raw Disk

Figuur: Hashed Page Table

15/01/2019 - Voormiddag

Oefeningen:

  1. Er wordt een figuur gegeven die de uitvoer van een scheduler weergeeft. De eerste oefening moet mondeling uitgelegd worden aan een van de assistenten.
    • Bespreek waarom FCFS, SJF, priority scheduling het gebruikte scheduling algoritme zou kunnen geweest zijn, of waarom niet.
    • Wordt er gebruik gemaakt van aging? Leg uit hoe je dit ziet.
    • Wordt er gebruik gemaakt van tijdskwanta? Leg uit hoe je dit ziet.
  2. Een oefening gelijkaardig aan 2.3 uit de oefenzitting: De volgende grafe toont in welke volgorde de instructies Si moeten worden uitgevoerd. De rechthoeken stellen bijkomende beperkingen voor. Implementeer de bovenstaande beperkingen. Maximaliseer het parallellisme.

Theorie:

  1. In een OS worden op verschillende plaatsen gegevenstructuren gebruikt. Geef deze structuren, waarvoor ze dienen en welk deel van het OS ze gebruikt.(Specifieke voorbeelden, niet algemeen) Geef voorbeelden uit Linux en Windows
  2. Verklaar 5 van de 6. Geef voorbeelden, alternatieve, voor- en nadelen waar toepasselijk en voorbeelden in Windows en/of Linux waar mogelijk:
    • FCFS
    • Polymorphic virus
    • Voorwaarden voor een deadlock
    •  ???
    •  ???
    •  ???

Figuur: system I/O call request ( 7tal grijze kaders: device driver, device controller, interrupt,...)

15/01/2019 - Namiddag

Oefeningen:

  1. Gegeven een programma P1 dat de volgende instructies uitvoert (vnl schrijfoperaties op geheugenadressen):
    1. 0x1fff := 44 (Byte)
    2. 0x1fff := 45 (Int - 32-bit)
    3. 0x1235 := 10 (Byte)
    4. 0x2235 := 19 (Int - 32-bit)
    5. printf(0x2235 (Byte))
    6. 0x0000 := 17 (Byte)
  2. Welke van de volgende situaties zijn mogelijk? Welke zijn onmogelijk? Verklaar steeds je antwoord door gebruik te maken van je kennis van paginering, page faults, scheduling, security, enz. Veronderstel dat het om een gebruikelijk architectuur zoals x86 gaat.
    1. Instructie 4 duurt 10 000 keer langer om uit te voeren dan instructie 3.
    2. Instructie 2 geeft een page fault, maar de paginatabel en TLB zijn niet gewijzigd na instructie 1.
    3. Het adres voor instructie 2 geeft een page fault, maar er was wel een TLB hit.
    4. Na instructie 5 wordt 255 geprint.
    5. Het programma kan volledig uitvoeren, dus instructie 6 geeft geen NullPointerException.
  3. Een oefening gelijkaardig aan 2.3 uit de oefenzitting: De volgende grafe toont in welke volgorde de instructies Si moeten worden uitgevoerd. De rechthoeken stellen bijkomende beperkingen voor. Implementeer de bovenstaande beperkingen. Maximaliseer het parallellisme.

Theorie:

  1. Wat gebeurt er wanneer je een computer opstart? + gegevensstructuren die worden geïnitialiseerd.
  2. Leg 5 van de 6 uit:
    • Microkernel
    • Waiting Time
    • Page Table Base Register
    • FAT
    • Block Devices
    • Capabilities for protection

Figuur: Interrupt-driven I/O Cycle

21/01/2019 - Namiddag

Oefeningen:

  1. Een student implementeerde Peterson's algoritme. Hij maakte echter een fout en heeft de eerste twee lijnen omgewisseld. Is het algoritme nog steeds correct? Bewijs dat het correct is of geef een tegenvoorbeeld.
do {
	turn = j;
	flag[i] = true;
	while(flag[j] && turn == j);

		critical section

	flag[i] = false;

		remainder section
} while(true);
  1. Een oefening gelijkaardig aan 2.3 uit de oefenzitting: De volgende grafe toont in welke volgorde de instructies Si moeten uitgevoerd worden. De rechthoeken stellen bijkomende beperkingen voor. Implementeer de bovenstaande beperkingen. Maximaliseer het parallellisme.

Theorie:

  1. Wat gebeurt er als je dubbelklikt op een exe file?
  2. Verklaar 5 van de 6. Geef voorbeelden, alternatieve, voor- en nadelen waar toepasselijk en voorbeelden in Windows en/of Linux waar mogelijk:
    • boot disk
    • earliest deadline first scheduling
    • deadlock preventie
    • ?
    • ?
    • ?

Figuur: symmetric encryption

2018

29/01/2018 - 8u

Oefeningen:

  1. Er wordt een figuur gegeven die de uitvoer van een scheduler weergeeft. De eerste oefening moet mondeling uitgelegd worden aan een van de assistenten.
    • Bespreek waarom FCFS, SJF, priority scheduling het gebruikte scheduling algoritme zou kunnen geweest zijn, of waarom niet.
    • Wordt er gebruik gemaakt van aging? Leg uit hoe je dit ziet.
    • Wordt er gebruik gemaakt van tijdskwanta? Leg uit hoe je dit ziet.
  2. Een oefening gelijkaardig aan 2.3 uit de oefenzitting: De volgende grafe toont in welke volgorde de instructies Si moeten uitgevoerd worden. De rechthoeken stellen bijkomende beperkingen voor. Implementeer de bovenstaande beperkingen. Maximaliseer het parallellisme.

Theorie:

  1. Waar worden caches en buffers gebruikt? Waarom, Hoe, ...?
  2. Verklaar 5 van de 6. Geef voorbeelden, alternatieve, voor- en nadelen waar toepasselijk:
    • User thread
    • Block send
    • Maskable interrupts
    • free space management bij disks
    •  ???
    •  ???

23/01/2018 - 13u

Oefeningen:

  1. Er wordt een figuur gegeven die de uitvoer van een scheduler weergeeft.
    • Bespreek waarom FCFS, SJF, priority scheduling het gebruikte scheduling algoritme zou kunnen geweest zijn, of waarom niet.
    • Wordt er gebruik gemaakt van aging? Leg uit hoe je dit ziet.
    • Wordt er gebruik gemaakt van tijdskwanta? Leg uit hoe je dit ziet.
  2. Een oefening gelijkaardig aan 2.3 uit de oefenzitting: De volgende grafe toont in welke volgorde de instructies Si moeten uitgevoerd worden. De rechthoeken stellen bijkomende beperkingen voor. Implementeer de bovenstaande beperkingen. Maximaliseer het parallellisme.

Theorie:

  1. Wat gebeurt er als je een .docx bestand opent ?
  2. Verklaar 5 van de 6. Geef voorbeelden, alternatieve, voor- en nadelen waar toepasselijk:
    • System Call Interface
    • Tijdskwantum
    • Address binding door de compiler
    • Voorwaarden voor een deadlock
    • Contiguous memory allocation
    • Public Key
  3. Figuur verklaren: Inverted page table

12/01/2018 - 14u

Oefeningen:

  1. Er wordt een figuur gegeven die de uitvoer van een scheduler weergeeft.
    • Bespreek waarom FCFS, SJF, priority scheduling het gebruikte scheduling algoritme zou kunnen geweest zijn, of waarom niet.
    • Wordt er gebruik gemaakt van aging? Leg uit hoe je dit ziet.
    • Wordt er gebruik gemaakt van tijdskwanta? Leg uit hoe je dit ziet.
  2. Een oefening gelijkaardig aan 2.3 uit de oefenzitting: De volgende grafe toont in welke volgorde de instructies Si moeten uitgevoerd worden. De rechthoeken stellen bijkomende beperkingen voor. Implementeer de bovenstaande beperkingen. Maximaliseer het parallellisme.

Theorie:

  1. In een OS worden op verschillende plaatsen gegevenstructuren gebruikt. Geef deze structuren, waarvoor ze dienen en welk deel van het OS ze gebruikt. Geef voorbeelden uit Linux en Windows
  2. Verklaar 5 van de 6. Geef voorbeelden, alternatieve, voor- en nadelen waar toepasselijk:
    • Theft of service
    • Disk partition
    • Device driver
    • TLB
    • Monolithic operating system
    • Signals
  3. Figuur verklaren: Interrupt driven IO-cycle

2017

24/01/2017 - 13u

Oefeningen:

  1. Scheduling zoals hieronder
  2. Semaforen zoals hieronder

Theorie:

  1. In een OS worden op verschillende plaatsen gegevenstructuren gebruikt. Geef deze structuren, waarvoor ze dienen en welk deel van het OS ze gebruikt. Geef voorbeelden uit Linux en Windows
  2. Verklaar 5 van de 6. Geef voorbeelden, alternatieve, voor- en nadelen waar toepasselijk:
    • Data parallelisme
    • Deadlock preventie
    • Interne fragmentatie
    • Interrupt
    • Capabilities voor protection
    • File Type
  3. Tekening verklaren: Page Fault Handling

18/01/2017 - 9u

Oefeningen:

  1. Er wordt een figuur gegeven die de uitvoer van een scheduler weergeeft.
    • Bespreek waarom FCFS, SJF, priority scheduling het gebruikte scheduling algoritme zou kunnen geweest zijn, of waarom niet.
    • Wordt er gebruik gemaakt van aging? Leg uit hoe je dit ziet.
    • Wordt er gebruik gemaakt van tijdskwanta? Leg uit hoe je dit ziet.
  1. Een oefening gelijkaardig aan 2.3 uit de oefenzitting: De volgende grafe toont in welke volgorde de instructies Si moeten uitgevoerd worden. De rechthoeken stellen bijkomende beperkingen voor. Implementeer de bovenstaande beperkingen. Maximaliseer het parallellisme.

Theorie:

  1. Threads en processen zijn concepten die heel belangrijk zijn in een besturingssysteem. Leg deze concepten en het verschil tussen beide uit. Leg uit hoe een BS deze entiteiten implementeert en beheert. Bespreek daarna alle delen van een BS waar threads en/of processen een rol spelen. Waar mogelijk en zinnig geef je voorbeelden uit Linux en/of Windows XP.
  2. Verklaar 5 van de volgende 6 termen (waar/wanneer gebruikt, voor/nadelen, alternatieven, enz.).
    • System Call
    • Indexed allocation bij files
    • Device driver
    • Hold and wait (in de context van deadlocks)
    • Sandbox
    • LRU page replacement algorithm
  3. Gevraagd tijdens de mondelinge verdediging: Vul figuur 13.3 uit editie 9 van het boek aan (Interrupt-driven I/O cycle). Alle tekst is gewist.

13/01/2017 - 13u en 14u

Oefeningen:

  1. Gegeven een programma P1 dat de volgende instructies uitvoert (vnl schrijfoperaties op geheugenadressen):
    1. 0x1fff := 44 (Byte)
    2. 0x1fff := 45 (Int - 32-bit)
    3. 0x1235 := 10 (Byte)
    4. 0x2235 := 19 (Int - 32-bit)
    5. printf(0x2235 (Byte))
    6. 0x0000 := 17 (Byte)

    Welke van de volgende situaties zijn mogelijk? Welke zijn onmogelijk? Verklaar steeds je antwoord door gebruik te maken van je kennis van paginering, page faults, scheduling, security, enz. Veronderstel dat het om een gebruikelijke architectuur als x86 gaat.

    1. Instructie 4 duurt 10 000 keer langer om uit te voeren dan instructie 3.
    2. Instructie 2 geeft een page fault, maar de paginatabel en TLB zijn niet gewijzigd na instructie 1.
    3. Het adres voor instructie 2 geeft een page fault, maar er was wel een TLB hit.
    4. Na instructie 5 wordt 255 geprint.
    5. Het programma kan volledig uitvoeren, dus instructie 6 geeft geen nullpointerexception.
  2. Een variant van oefening 2.4 uit de oefenzittingen: gegeven 3 lijsten en de code voor 3 processen die een aantal link() en unlink() operaties doen (toevoegen en verwijderen uit de lijst), gebruik semaforen om ervoor te zorgen dat er nooit twee link/unlink operaties tegelijk worden uitgevoerd op dezelfde lijst, en dat unlink niet kan uitgevoerd worden op lege lijsten. Zijn er deadlocks mogelijk met jouw oplossing? Zo ja, hoe kan dit opgelost worden?
  3. Gevraagd tijdens de mondelinge verdediging bij de assistent: Licht kort toe welke acties ondernomen moeten worden als er een nieuw programma moet worden ingeladen terwijl het geheugen vol is.

Theorie:

  1. In heel veel situaties gebruikt het besturingssysteem buffers en caches. Leg uit wat ze doen en waarvoor ze gebruikt worden. Geef voorbeelden uit Linux en Windows 7.
  2. Verklaar 5 van de volgende 6 termen (waar/wanneer gebruikt, voor/nadelen, alternatieven, enz.).
    • OpenMP parallel regions
    • Interrupt latency
    • Best fit
    • Swap space
    • Relatieve padnamen
    • Encryptie
  3. Gevraagd tijdens de mondelinge verdediging: Vul figuur 8.19 uit editie 9 van het boek aan (Hashed page table). Alle tekst is gewist, behalve in de gelinkte lijst. Er werden geen bijvragen gesteld over de werking van de hashtabel.


13/01/2017 - 8u en 9u

Oefeningen

  1. Een student implementeerde Peterson's algoritme. Hij maakte echter een fout en heeft de eerste twee lijnen omgewisseld. Is het algoritme nog steeds correct? Bewijs dat het correct is of geef een tegenvoorbeeld.
    do {
    	turn = j;
    	flag[i] = true;
    	while(flag[j] && turn == j);
    
    		critical section
    
    	flag[i] = false;
    
    		remainder section
    } while(true);
    

    Veelgestelde bijvraag: Zijn race conditions enkel een probleem bij multiprocessors of ook bij singleprocessors?

  2. Tijdens de uitvoering van een computer worden vele gegevensstructuren bijgehouden. Geef voor de volgende structuren aan of ze tijdens uitvoering opgeslagen worden, gewist worden, beide of geen van beide:
    1. TLB
    2. Page table
    3. Geheugen
      1. Main memory (= RAM)
      2. Swap memory (= Backing store)
    4. Processor state
  3. Welke van volgende combinaties zijn mogelijk? Leg uit.
    1. TLB miss met page fault
    2. TLB miss zonder page fault
    3. TLB hit met page fault
    4. TLB hit zonder page fault

Theorie:

  1. Er worden op verschillende plaatsen beslissingen genomen door het besturingssysteem. (process scheduling, ...) Waar + leg uit + geef voorbeelden van linux/windows.
  2. Verklaar 5 van de volgende 6 termen (waar/wanneer gebruikt, voor/nadelen, alternatieven, enz.) en geef voorbeelden in Windows/Linux (waar toepasselijk).
    • Blocking
    • Access Matrix
    • PCB
    •  ?
    •  ??
  3. Gevraagd tijdens de mondelinge verdediging: Vul figuur 1.20 uit editie 9 van het boek aan (VMware). Alle tekst is gewist.

11

2016

27/01/2016 - 8u

Oefeningen

  1. Process scheduling: Je krijgt een diagram met de uitvoer van een 6-tal processen, elk met prioriteit. Geef aan of dit wel of niet FCFS, SJF of priority scheduling is en waar je dit kan zien. Worden er time quantums gebruikt?
  2. Synchronizatie (deze oefening is een beetje anders dan in de oefenzitting, maar je kan volledig dezelfde oplossing geven): gegeven 4 processen die elk op een bepaalde manier blokken uit 4 buffers nemen en deze weer in anderen steken met link/unlink operaties. Implementeer dit zodat link/unlink nooit tegelijk uitgevoerd worden op dezelfde buffer en dat unlink alleen opereert op niet-lege buffers. Kan deadlock optreden in je oplossing? Implementeer een deadlock-vrije oplossing.

Theorie

  1. Hoofdvraag: in besturingssystemen worden op veel plekken buffers/caches gebruikt. Wat doen ze en hoe werken deze? Wees zo volledig mogelijk.
  2. Begrippen (wat, hoe, waarvoor, voor- en nadelen, alternatieven, ... slechts 5 van de 6 uitleggen):
    • Process state
    • Time quantum
    • LRU approx. page replacement algorithm
    • C-LOOK for disk scheduling
    • Interrupt priorities
    • Denial-of-service
  3. Tekening aanvullen: DMA (CPU, RAM, device controller en pijlen ertussen). Alle woorden op de originele tekening aanvullen.

25/01/2016 - 13u

Oefeningen

  1. Output van een proces scheduler. Welke methode is gebruikt (kan kiezen tss FCFS, SJF en Priority en moest ook zeggen waarom de rest niet kon). Zijn er time quanta gebruikt (en duid aan). Werd 'aging' hier toegepast (en duid aan).
  2. Semaforen zoals in de oefenzitting.

Theorie

  1. Hoofdvraag
    • Er worden op verschillende plaatsen beslissingen genomen door het besturingssysteem. Waar + leg uit + geef voorbeelden van linux/windows.
  2. Begrippen (volledig uitleggen, tekening, voor en nadelen, ...)
    • Fork()
    • Two level threading
    • Volume control block
    • Block-device interface
    • Logic Bomb
    • Physical address space

13/01/2016

Oefeningen:

  1. 1 over kritische sectie en 1 over semaforen zoals in de oefenzittingen.

Theorie:

  1. Hoofdvraag:
    1. Interrupts en exceptions uitleggen, hoe ze werken waarom ze belangrijk zijn en voorbeelden geven van HS16 en 17.
  2. Begrippen:
    1. Static linking
    2. Page replacement
    3. Deadlock voorwaarden
    4. Scheduling criteria
    5. Trap door

08/01/2016 - namiddag

Oefeningen:

  1. Gegeven een scheduling van 4 processen op een quad core processor, schedule de 4 processen op een single core volgens FIFO, SJF en priority scheduling. Duid aan waar een proces mag uitvoeren, aan IO doet en waar het moet wachten.
  2. Synchronisatie van parallelle processen met semaforen (net hetzelfde als oefening 2.3).

Theorie:

  1. Hoofdvraag:
    1. Wat gebeurt er wanneer je een scanner (voor de eerste keer) aansluit. Vertel ook wat er gebeurt wanneer een applicatie iets op die scanner wil uitvoeren.
  2. Begrippen: (5 van de 6 uitleggen):
    1. Non-preemptive scheduling
    2. Circular wait(bij deadlocks)
    3. Worst fit
    4. Absolute path name
    5. Sector slipping
    6. Certificate authority.

Een prentje over virtualizatie aanvullen en uitleggen. (Hoofdstuk 1: figuur 1.20)

08/01/2016 - ochtend

Oefeningen:

  1. Een algoritme voor de critical section(Hyman algorithme), zeggen welke van de 3 condities (mutual exclusion, bounded waiting, progression) niet geldt en waarom. Bij verdediging vroeg de assistent nog welke condities afhankelijk zijn van de scheduler
  2. Semaforen, zoals in de oefenzitting.

Theorie:

  1. Hoofdvraag:
    1. Interrupts en exceptions uitleggen, hoe ze werken waarom ze belangrijk zijn en voorbeelden geven van HS16 en 17.
  2. Begrippen:
    1. One-to-many threading model
    2. Logical memory space
    3. Sequential access in memory
    4. Iets van system security
    5. Enhanced second-chance algorithm
    6. TestAndSet()

Prentje over paging met TLB miss/hit uitleggen.

2015

09/01/2015 (Leuven, prof. Berbers)

(Ik heb dit aangepast aangezien ik ook op 9/1 examen ben gaan doen en een ander tweede deel had.)

Oefeningengedeelte (Open boek):

  1. Gegeven een grafische voorstelling van process scheduling, geef voor FCFS, priority scheduling en SJF waarom de grafiek al dan niet bij deze algoritmen hoort. Wordt er gebruik gemaakt van tijdskwantum? Wordt er gebruik gemaakt van aging?
  2. Synchroniseer processen mbv semaforen
    1. Bijvraag (1): Kan het geoptimaliseerd worden, en hoe?
    2. Bijvraag (2): Kan je ook een alternatieve manier van synchronisatie uitleggen? Wat is het verschil met semaforen?

Theorie:

  1. Hoofdvraag:
    1. Wat gebeurt er als je op een bestand klikt dat in een programma opent? Bv een wordbestand dat dan in word opent. Leg gedetailleerd en volledig uit en geef voorbeelden uit windows 7 en of linux.
    2. Op verschillende plaatsen moet het besturingssysteem beslissingen nemen (vb. nieuwe thread/proces als de vorige is afgelopen). Waar moet het besturingssysteem nog beslissingen nemen? Welke algoritmes kunnen hiervoor gebruikt worden? Geef voorbeelden en relevante verbanden met Windows/Linux. (Nogal een rare vraag: ze bedoelde paging en disk scheduling.)
  1. Termen verklaren:
    1. Rendez-vous
    2. Kernel thread
    3. Spooling
    4. Memory-mapped file
    5. Compare_and_swap (of zoiets, dan een algoritme van synchr.)
    6. (ééntje vergeten)
    7. Scheduling queues
    8. POSIX thread
    9. TLB hit
    10. Mandatory file locking
    11. Deadlock prevention
    12. Stealth virus
  1. Tekening die je bij haar moet verklaren:
    1. Virtuele machine
    2. "Life of an I/O request

2014

10/01/2014

Oefeningengedeelte (Open boek):

  1. Gegeven dit algoritme (exact deze pseudocode, alleen de lockfunctie, maar dan als loop met while-do): http://en.wikipedia.org/wiki/Lamport%27s_bakery_algorithm#Pseudocode
    1. De "while (Entering[j]) { /* nothing */ }", heeft die een nut en/of mag je die zomaar weglaten?
    2. Is naast mutex ook aan de twee andere voorwaarden van het kritieke sectie probleem voldaan? (bounded waiting en progress)
  2. Gegeven een bepaalde segmenttabel
    1. Vertaal logische naar fysieke adressen of verklaar waarom dit een fout geeft (conform wz4 vraag 4)
    2. Start een nieuw proces en voeg het toe aan de segmenttabel, zelfde programma als zich al in de tabel bevindt, herbruik dan zoveel mogelijk. (Een programma dat een CodeSegment, DataSegment en StackSegement heeft. Je moet de code naar dezelfde basis laten wijzen als het proces dat er al was, en de rest een nieuw adres geven dat die niet overlappen)
  3. Gegeven de volgende tijdsmetingen:
    1. Cpu: 20%
    2. Paging disk: 97,5%
    3. andere IO apparaten: 5%
      1. Wat zou er met het cpuverbruik gebeuren bij:
        1. Vergroten van de pagedisk
        2. verhogen multiprogrammatie
        3. verlagen multiprogrammatie
        4. prepaging toevoegen
        5. snellere harde schijf
        6. grotere pages

Theorie:

  1. Hoofdvraag:
    1. Wat gebeurt er als je op een bestand klikt dat in een programma opent? Bv een wordbestand dat dan in word opent. Leg gedetailleerd en volledig uit en geef voorbeelden uit windows 7 en of linux.
  2. Termen verklaren:
    1. Hold&Wait
    2. Security vs protection
    3. logische records in een file
    4. SSTF in disk scheduling
    5. Naming bij ipc
  3. Tekening die je bij haar moet verklaren:
    1. Symmetrische encryptie

2012

di 28 Augustus (Leuven, Prof. Berbers)

  1. Schriftelijk:
      1. Grafische voorstelling van disk scheduling, geef welk algortime hier gebruikt werd. Wat is starvation en lijd dit algoritme hieronder, en wat is een mogelijke oplossing?
      2. Oefening op semaforen
      3. Gegeven algoritme voor synchronisatie, bewijs dat dit correct is of geef een tegenvoorbeeld
  2. Mondeling:
    1. Geef alle staten waarin een process zich kan bevinden, en zeg wat er gebeurt bij elke overgang.
    2. Bespreek 5 van de 6 volgende begrippen:
      1. demilitarized zone
      2. armored virus
      3. inverted page table
      4. file handle
      5. symmetric multiprocessing
      6. nog een begrip

di 31 Januari (Leuven, Prof. Berbers)

  1. Schriftelijk:
      1. Gegeven een grafische voorstelling van process scheduling, geef voor FCFS, priority scheduling en SJF waarom de grafiek al dan niet bij deze algoritmen hoort. Wordt er gebruik gemaakt van tijdskwantum? Wordt er gebruik gemaakt van aging?
      2. Toon aan waarom het Hyman algoritme voor het kritische sectie probleem fout is. (Code algoritme werd gegeven)
  2. Mondeling:
    1. Bespreek in detail wat er gebeurt als de computer opstart. Vanaf het moment dat je de power knop induwt tot het moment dat de computer volledig is opgestart.
    2. Bespreek 5 van de 6 van volgende begrippen:
      1. Two level design bij threading
      2. External fragmentation
      3. Mount table
      4. SCAN-algoritme bij schijven
      5. MULTICS ringstructuur bij protection
      6. Polymorf virus

2011

di 18 januari (Kortrijk)

  1. Geef uitleg over virtueel geheugen met de nadruk op paginavervanging.
  2. Leg volgende begrippen uit (bijhorende begrippen samen bespreken): System call, user mode, kernel mode; Round-Robin Scheduling, FCFS Scheduling, Priority Scheduling; File, File allocation, (nog 2 gemakkelijke begrippen ivm files)
  3. Synchronisatieoefening: De kerstman slaapt in zijn vrije tijd maar elfen kunnen hem om hulp vragen en als alle rendieren terug zijn van vakantie dan moet de kerstman op tocht gaan. Om de kerstman niet te veel te storen wordt de kerstman pas wakker als er minstens 3 elfen voor zijn slaapkamer deur staan om hulp te vragen. Als alle 9 rendieren van hun zomervakantie op Antarctica terugkeren moet de kerstman zo snel mogelijk op tocht vertrekken en als hij dus elfjes aan het helpen is moet hij ook daarmee stoppen. Schrijf 2 oplossing voor dit synchronisatieprobleem waarvan 1 met semaforen.(De echte opgave was iets meer in detail uitgelegd)

di 1 februari (Leuven, Prof. Berbers)

  1. Schriftelijk:
    1. Zorg er met behulp van semaforen voor dat deze processen in de juiste volgorde worden uitgevoerd
    2. Om te roken, heeft een roker 3 dingen nodig: een papiertje, tabak en vuur. Gegeven zijn 3 rokers, die elk één van de ingrediënten bezitten, en een verdeler die van alle ingrediënten oneindig veel heeft. De verdeler legt willekeurig 2 ingrediënten op tafel. De roker die het derde ingrediënt bezit, mag deze nemen en een sigaret roken. Als hij klaar is, laat hij dit weten aan de verdeler, die dan 2 nieuwe ingrediënten op tafel legt. Implementeer dit met behulp van monitoren in Java. De details zoals het kiezen van 2 willekeurige ingrediënten moeten niet uitgeschreven worden.
  2. Mondeling:
    1. Bespreek in detail wat er gebeurt als je met je muis dubbelklikt op een bestand dat door een tekstverwerker behoort (bijvoorbeeld .doc van MS Word). Geef referenties naar Linux en/of Windows XP waar toepasselijk.
    2. Bespreek 5 van de 6 van volgende begrippen:
      1. Microkernel
      2. Dynamic linking
      3. LOOK-algoritme bij schijven
      4. Need-to-know principle
      5. (nog 2)

do 3 februari (8-9u) (Leuven, Prof. Berbers)

  1. Schriftelijk:
    1. Zorg er met behulp van semaforen voor dat deze processen in de juiste volgorde worden uitgevoerd
    2. Smalle bruggen synchronizatie met monitor
  2. Mondeling:
    1. Threads en processen zijn concepten die heel belangrijk zijn in een besturingssysteem. Leg deze concepten ui en leg het verschil tussen beide uit. Leg uit hoe een BS deze entiteiten implementeert en beheert. Bespreek daarna alle delen van een BS waar threads en/of processen een rol spelen. Waar mogelijk en zinnig geef je vbn uit Linux en/of Windows XP.
    2. Bespreek 5 van de 6 begrippen (volledig met evt voorbeelden uit linux/windows xp)
      1. virtuele machine
      2. mailboxen in inter-process-communication
      3. translation look-aside buffer (TLB)
      4. Master file directory (MFD)
      5. sector slipping
      6. key based scheme for protection

do 3 februari (11-12u) (Leuven, Prof. Berbers)

  1. Schriftelijk:
    1. Wederzijdse uitsluiting en synchronisatie m.b.v. semaforen (bijna exact dezelfde oefening als oefening 2.6).
      1. Is een deadlock mogelijk?
    2. Maak een monitor voor een transportband (cfr oefening 3.10).
  2. Mondeling:
    1. Het besturingssysteem moet veel beslissingen nemen (context switch bij schedulers, ...). Bespreek zoveel mogelijk zaken waarbij het besturingssysteem beslissingen moet nemen. Leg ook uit hoe het besturingssysteem deze zaken implementeert en welke algoritmes er gebruikt worden. Waar mogelijk geef je vbn uit Linux en/of Windows XP. (Als je hier iets vergeet, dan wordt dat mondeling gevraagd. Verwacht geen moeilijke detailvragen.)
    2. Bespreek 5 van de 6 begrippen (volledig met voor-en nadelen, alternatieven en evt voorbeelden uit linux/windows xp)
      1. Transaction
      2. Many-to-one model
      3. Priority interrupts
      4. Hierarchical paging
      5. Acyclic-Graph Directories
      6. Replay attack

2010 (prof. Verbaeten)

do 21 januari 8u

  1. (H03-01) Geef het schema van de mogelijke toestanden van een proces. Zet er ook bij hoe je van toestand kan veranderen.
  2. (H07-02) Geef het algoritme om een deadlock te detecteren. Geef de voordelen van deadlockdetectie in vergelijking met andere manieren. Bijvragen: 1. Leg het algoritme uit in woorden, wat doet het juist? 2. Op welk moment zou je best de detectie uitvoeren?
  3. (H08-02) Leg uitvoerig paginatie uit (niet paginatie op aanvraag). Betrek hierbij delen van pagina's, bescherming en implementatie (wat als er veel geheugen voor nodig is).
  4. (H06O-01) Leg het probleem van het Reader/Writer-probleem. Geef een oplossing voor dit probleem met semaforen, waarbij de schrijvers voorrang krijgen op de lezers, d.w.z. nadat een schrijver zich heeft aangemeld, mag geen enkele lezer nog beginnen.

vrijdag 29 januari 9u

  1. Wat zijn deadlocks? Geef het Bankers algoritme. Vergelijk het met andere deadlockbehandelingsmethodes.
  2. Wat is trashing? Geef methodes om het te voorkomen en vergelijk deze met elkaar.
  3. Geef methodes voor het opslagen van files op een schijf en vergelijk ze met elkaar
  4. Leg het probleem van het Reader/Writer-probleem. Geef een oplossing voor dit probleem met een MONITOR, waarbij de schrijvers voorrang krijgen op de lezers, d.w.z. nadat een schrijver zich heeft aangemeld, mag geen enkele lezer nog beginnen.

2009

vrij 16 januari 2009 8u

  1. Wat zijn threads ? Wat zijn de verschillende manieren om threads te implementeren ? Welke ondersteuning van het besturingssysteem is nodig of nuttig ? Hoe worden signalen van de kernel naar een thread doorgegeven ? Bespreek ook het verschil tussen user- en kernelthreads? Hoe worden threads gecreeerd en beindigd ?
  2. Leg uit wat demand paging juist is. In die context bespreek je eventueel ook swapping, de swapruimte, de prestaties van demand paging, trashing en de keuze van een slachtofferpagina.
  3. Gegeven is het Reader-Writter problem 1 (met starvation van writer en oneindig veel readers die simultaan kunnen lopen). Bewijs dat er meerdere readers tegelijk kunnen lezen. Treedt er afsterving op? Zorg ervoor dat er hoogstens 4 readers gelijk kunnen lezen. Treedt er afsterving op? Hoe kunnen we dit oplossen? (hier verwacht hij dus dat je eerst uitlegt hoe de readers gesynchroniseerd worden, dan uitwerkt hoe er max. 4 readers tegelijk kunnen werken, en dan apart uitschrijft hier je dit doet zonder starvation).


2008

woe 25 juni 2008 8u

  1. Hoe voorkom je ongeoorloofde toegang van processes? Waar wordt dit geregeld?
  2. Wat zijn de gevaren van een buffer-overflow? Wat kan ertegen gedaan worden door de programeur? Het besturingssysteem? De hardware?
  3. Waarin verschil de notie van een buffer met die van een cache? Hoe kunnen buffers worden gebruikt bij het lezen van een file? Hoe kunnen caches worden gebruikt?
  4. Gegeven is het Reader-Writter problem 1 (met starvation van writer en oneindig veel readers die simultaan kunnen lopen).

Bewijs dat er meerdere readers gelijk kunnen lezen. Treedt er afsterving op? Zorg ervoor dat er hoogstens 4 readers tegelijk kunnen lezen. Treedt er afsterving op? Hoe kunnen we dit oplossen? (hier verwacht hij dus dat je eerst uitlegt hoe de readers gesynchroniseerd worden, dan uitwerkt hoe er max. 4 readers tegelijk kunnen werken, en dan apart uitschrijft hier je dit doet zonder starvation).

Ik heb niet echt bijvragen gekregen maar dit heeft waarschijnlijk wel te maken met het feit dat ik de halve cursus op papier had staan...


vrij 20 juni 2008 8u

  1. Leg uit welke beveiligingsproblemen er kunnen optreden bij een stack-overflow.
  2. Wat is het belangrijkste verschil tussen de notie buffer en de notie van cache? Geef voorbeelden van buffers en caches die gebruikt kunnen worden. Zijn ze essentieel of niet, leg uit.
  3. Wat is een inverted pagetable? Geef ook voor- en nadelen.
  4. een oefening: je kreeg de code van een oplossing van het writer/readerproblem met 2 semaforen, er stond bij dat het uit het boek gekopiëerd was, en je moest daaruit de fouten halen en verbeteren.
 semaphore mutex, wrt; // geïnitialiseerd op 1
 int readcount = 0;  

structuur van een writer

 do{
   if(readcount>0)
      wait (wrt);
   ....
   //writing
   ...
   if(readcount >0)
      signal(wrt);
 }while (TRUE)

structuur van een reader

 do{
    wait(mutex);
    readcount++;
    wait(wrt);
    signal(mutex);
    ...
    //reading
    ...
    wait(mutex);
    readcount--;
    signal(wrt);
    signal(mutex);
 }while(TRUE)

woe 18 juni 2008 13u

Dit was het zelfde examen als vrijdag 19 jan 2007 ('s morgens):

  1. Beschrijf hoe m.b.v. overlays een programmeur een programma dat te groot is voor het fysieke (of logische?) geheugen toch kan uitvoeren. Leg daarna de link naar paginatie en swapping. Helpen die om de fysieke beperkingen op te heffen, of de logische?
  2. Bespreek de 4 condities om te kunnen spreken van een deadlock, manieren om die condities te ontdekken en te verhinderen. Wat kan je doen als de deadlock toch optreedt?
  3. Oefening: je krijgt de code van een 'oplossing' van het readers/writers-probleem met semaforen, er stond bij dat het uit het boek gekopiëerd was maar dat er fouten ingeplaatst waren. Je moet zeggen waarom het fout is, en het verbeteren.
 semaphore mutex, wrt; // geïnitialiseerd op 1
 int readcount = 0;  

Structuur van een writer:

 do{
   if(readcount>0)
      wait (wrt);
   ....
   //writing
   ...
   if(readcount >0)
      signal(wrt);
 }while (TRUE)

Structuur van een reader:

 do{
    wait(mutex);
    readcount++;
    wait(wrt);
    signal(mutex);
    ...
    //reading
    ...
    wait(mutex);
    readcount--;
    signal(wrt);
    signal(mutex);
 }while(TRUE)

woe 18 juni 2008 8u

  1. Leg uit de noties vertalen van een programma, linken, laden en uitvoeren. Leg ook de verbanden uit. Bespreek ook de noties logisch en fysisch adres. Hoe kan je het verband implementeren?
  2. Welke datastructuren worden gewijzigd bij het openen van een bestand? En bij het sluiten? Bespreek de sequentie van gebeurtenissen bij een lees-operatie.
  3. Oefening: De volgende code (uit het handboek) zorgt dat een aantal readers en een writer gesynchroniseerd worden door de writer te laten wachten tot geen enkele reader meer bezig is, en dan kan de writer zijn ding doen. Dat is dus een oplossing voor wat het handboek noemt: het eerste readers-writers probleem. Het kan leiden tot verhongering van de writer. Toon eerst aan dat onderstaande code niet toelaat dat een lezer en een schrijver tegelijkertijd lezen en schrijven. Pas vervolgens de code aan zodat op het ogenblik de writer wil schrijven, die writer nog moet wachten tot er een nieuwe reader zich aanmeldt: dan moet de writer wel voorgaan. Het idee is dat het moet de moeite zijn om iets te schrijven.
 semaphore mutex, wrt; // initieel 1 
 int readcount; // initieel 0
 Structuur van de writer:
 
 do {
    wait(wrt);
    ...
    // hier wordt writing gedaan
    ...
    signal(wrt);
 } while (TRUE);
 Structuur van een reader:
 
 do {
    wait(mutex);
    readcount++;
    if (readcount == 1)
       wait(wrt);
    signal(mutex);
    ...
    // hier wordt reading gedaan
    ...
    wait(mutex);
    readcount--;
    if (readcount == 0)
       signal(wrt);
    signal(mutex);
 } while (TRUE);

ma 16 juni 2008

  1. Leg uit: FCFS, SJF, Round robin. Daarbij horend: cpugebruik, doorvoer, waiting time, turnaround time, responstijd voor deze dingen.
  2. Hoe kan een besturingssysteem externe apparaten aanspreken? Leg uit: busy waiting, polling, interrupts, ... Hoe kunnen gegevens van de harde schijf naar een procesadresruimte worden geschreven terwijl de processor bezig is met een gebruikersproces? Bijvraag: heeft dit iets met memory mapped files te maken?
  3. Volgende code komt uit het boek en lost het eerste reader-writer probleem op. Hierbij kunnen writers verhongeren. Pas de code aan om het 2de RWprobleem op te lossen, dus zodra een writer wil schrijven mag er geen nieuwe reader meer beginnen lezen. Voeg nieuwe variabelen en semaforen toe als je dat nodig vindt. Argumenteer dat je code correct is. Kan een reader verhongeren? Maak eventueel onderscheid tussen 1 of 2 writers die willen schrijven.
 semaphore mutex, wrt; // initieel 1 
 int readcount; // initieel 0
 Structuur van de writer:
 
 do {
    wait(wrt);
    ...
    // hier wordt writing gedaan
    ...
    signal(wrt);
 } while (TRUE);
 Structuur van een reader:
 
 do {
    wait(mutex);
    readcount++;
    if (readcount == 1)
       wait(wrt);
    signal(mutex);
    ...
    // hier wordt reading gedaan
    ...
    wait(mutex);
    readcount--;
    if (readcount == 0)
       signal(wrt);
    signal(mutex);
 } while (TRUE);

vr 13 juni 2008 (13:00) Kortrijk

  1. Bespreek Virtual Memory en Demand Paging. (Vergeet niet dat je hierbij ook multiprogramming, paging, ... enz moet betrekken!)
  2. Oefening: Maak het 2e readers-writers probleem aan de hand van semaforen en zorg ervoor dat er geen starvation mogelijk is.
  3. Vergelijk: Interrupts en System Calls
  4. Bespreek en vergelijk: Direct Memory Access

2007

vr 31 aug 2007 (vm)

Identiek dezelfde vragen als vr 19 jan 2007

Do 1 feb 2007 (namiddag)

  1. Beschrijf hoe bestanden kunnen beschermd worden tegen ongeoorloofde operaties, of omgekeerd, hoe selectief toelating tot bepaalde operaties kan verleend worden. Op welk niveau gebeurt de controle?
  2. Wat is het belangrijkste verschil tussen de notie buffer en de notie van cache? Welke buffers kunnen gebruikt worden tussen een schijf en een gebruikersprogramma bij een leesoperatie? Op welke manier kan een cache nuttig zijn?
  3. Bespreek bedreigingen van programma's en van het systeem - in het bijzonder het Trojaanse paard, de achterdeur, de stack-overflow, de worm, het virus en de "denial of service"
  4. Oefening: De volgende code (uit het handboek) zorgt dat een aantal readers en een writer gesynchroniseerd worden door de writer te laten wachten tot geen enkele reader meer bezig is, en dan kan de writer zijn ding doen. Dat is dus een oplossing voor wat het handboek noemt: het eerste readers-writers probleem. Het kan leiden tot verhongering van de writer. Toon eerst aan dat onderstaande code niet toelaat dat een lezer en een schrijver tegelijkertijd lezen en schrijven. Pas vervolgens de code aan zodat op het ogenblik de writer wil schrijven, die writer nog moet wachten tot er een nieuwe reader zich aanmeldt: dan moet de writer wel voorgaan. Het idee is dat het moet de moeite zijn om iets te schrijven.
 semaphore mutex, wrt; // initieel 1 
 int readcount; // initieel 0
 Structuur van de writer:
 
 do {
    wait(wrt);
    ...
    // hier wordt writing gedaan
    ...
    signal(wrt);
 } while (TRUE);
 Structuur van een reader:
 
 do {
    wait(mutex);
    readcount++;
    if (readcount == 1)
       wait(wrt);
    signal(mutex);
    ...
    // hier wordt reading gedaan
    ...
    wait(mutex);
    readcount--;
    if (readcount == 0)
       signal(wrt);
    signal(mutex);
 } while (TRUE);

vr 26 jan 2007 (namiddag)

  1. Bespreek process scheduling met prioriteiten. Geef een redelijke manier om prioriteiten aan een process toe te kennen. Zijn er processen die niet mogen onderbroken worden? Waarom? Hoe wordt dat gedaan? Hoe zorg je dat een process met laga prioriteit toch ooit uitgevoerd wordt?
  2. Leg uit wat demand paging juist is. In die context bespreek je eventueel ook swapping, de swapruimte, de prestaties van demand paging, trashing en de keuze van een slachtofferpagina.
  3. Oefening: De volgende code (uit het handboek) zorgt dat een aantal readers en een writer gesynchroniseerd worden door de writer te laten wachten tot geen enkele reader meer bezig is, en dan kan de writer zijn ding doen. Dat is dus een oplossing voor wat het handboek noemt: het eerste readers-writers probleem. Het kan leiden tot verhongering van de writer. Toon eerst aan dat onderstaande code toelaat dat meerdere readers tegelijkertijd lezen. Pas vervolgens de code aan zodat hoogstens 4 readers tegelijkertijd lezen(ook als er meer dan 4 readers willen lezen). Kan een reader verhongeren in je oplossing ? Hoe kan je dat verhinderen?
 semaphore mutex, wrt; // initieel 1 
 int readcount; // initieel 0
 Structuur van de writer:
 
 do {
    wait(wrt);
    ...
    // hier wordt writing gedaan
    ...
    signal(wrt);
 } while (TRUE);
 Structuur van een reader:
 
 do {
    wait(mutex);
    readcount++;
    if (readcount == 1)
       wait(wrt);
    signal(mutex);
    ...
    // hier wordt reading gedaan
    ...
    wait(mutex);
    readcount--;
    if (readcount == 0)
       signal(wrt);
    signal(mutex);
 } while (TRUE);

Zoals lucie zei, vragen zijn goed te doen, maar uiteindelijk beslist em op het mondeling zelf wel of ge het kent ofnie :-)


vr 19 jan 2007 ('s morgens)

  1. Beschrijf hoe mbv overlays een programmeur een programma dat te groot is voor het fysieke (of logische?) geheugen toch kan uitvoeren. Leg daarna de link naar paginatie en swapping. Helpen die om de fysieke beperkingen op te heffen, of de logische?
  2. Bespreek 4 condities om te kunnen spreken van een deadlock, manieren om die condities te ontdekken en te verhinderen. Wat kan je doen als de deadlock toch optreed?
  3. een oefening: je kreeg de code van een oplossing van het writer/readerproblem met 2 semaforen, er stond bij dat het uit het boek gekopiëerd was, en je moest daaruit de fouten halen en verbeteren.
 semaphore mutex, wrt; // geïnitialiseerd op 1
 int readcount = 0;  

structuur van een writer

 do{
   if(readcount>0)
      wait (wrt);
   ....
   //writing
   ...
   if(readcount >0)
      signal(wrt);
 }while (TRUE)

structuur van een reader

 do{
    wait(mutex);
    readcount++;
    wait(wrt);
    signal(mutex);
    ...
    //reading
    ...
    wait(mutex);
    readcount--;
    signal(wrt);
    signal(mutex);
 }while(TRUE)

De vragen waren te doen vond ik, maar Demoen is wel streng tijdens het mondeling, en hij vraagt echt wel door, dus zie maar dat je het kent!!Lucie

vr 19 jan 2007 (namiddag)

  1. Wat zijn threads ? Wat zijn de verschillende manieren om threads te implementeren ? Welke ondersteuning van het besturingssysteem is nodig of nuttig ? Hoe worden signalen van de kernel naar een thread doorgegeven ? Bespreek ook het verschil tussen user- en kernelthreads? Hoe worden threads gecreeerd en beindigd ?
  2. Welke interne datastructuren moet een besturingssysteem aanpassen wanneer het een bestand opent? Worden er ook processtructuren aangepast ? Hoe vind het besturingssysteem het begin van het bestand op schijf ? Geef de opeenvolgende acties die gebeuren bij een lees()-operatie.
  3. Laaste opgave is een oefening op het lezer/schrijver probleem (met code gegeven), toon aan dat tegelijk meerdere lezers kunnen lezen.

Pas de code aan zodat slechts 4 lezers tegelijk kunnen lezen. Komt er in je oplossing verhongering voor ? Zo ja, hoe vermijd je dat.

--bijvragen: threadscheduling en paging, memorymapped bestanden

2006

bij de burgies, van de vorige prof

  1. segmentation, extra hardware en software, hoe gebeurt adresvertaling, wat bij grote logische adresruimten, wat is voordeel van segmentatie op andere technieken?
    1. toegangsmatrix: hoe kun je dynamische wijzigingen beschermen?
    2. welke cpu-sched algs zijn toepasbaar bij job-sched? tabel maken met beschrijving, voordelen, nadelen, afzwakken van nadelen als kolommen
    3. monitor van een casino, waar een max aantal spelers binnenmogen, en waar de deur pas opengaat als er een minimum-aantal personen binnen is, of als de som van de mensen binnen plus de wachtenden buiten gelijk is aan datzelfde minimum
      1. plus er is ook nog een geldkoerier die als hij aankomt om geld op te halen voorrang krijgt op alle spelers maar enkel binnengaat als de zaal leeg is en vanaf dan mogen er dus geen spelers meer binnen
      2. methodes: wil_binnen_in_zaal(boolean speler) en is_buiten()

2005

ma 16 jan 2005 (13u/14u) (vorige prof)

  1. Soms wordt paginatie en segmentatie gecombineerd. Wat zijn de voordelen daarvan? Welke nadelen levert het op? Stel dat je kan kiezen tussen verschillende frame-groottes. Welke argumenten laten je eerder kiezen voor kleine frames en welke voor grote? Op basis waarvan zal je uiteindelijk kiezen voor een bepaalde grootte? Maak een oordeelkundige afweging voor "gepagineerde segmentatie"
  2. Beantwoord bondig de volgende vragen:
    • Stel dat een aparte schijf voorzien is voor archivering. Het besturingssysteem verplaatst alle bestanden die op andere schijven al meer dan een half jaar niet meer gebruikt zijn naar de archiveringsschijf. Welk allocatie-algoritme kan je hiervoor best gebruiken? Kan je deze "optimisatie" in het gebruik van schijfgeheugen altijd toepassen?
    • Een cineast gebruikt zijn PC voor het maken van tekenfilms. Hij gebruikt de PC voor twee doeleinden: het genereren van (complexe) beelden en het monteren (bekijken, knippen en plakken) van de films. Het genereren van beelden kan erg rekenintensief zijn. Welke CPU-scheduling algoritme raad je aan? Welk raad je zeker af?
  3. Oefening over monitors: Je kon kiezen tussen een monitor (met conditions) of een oplossing in java (zonder conditions, maar met wait, notify en notifyAll). De opgave was een restaurant waar elke tafel werd bediend door een robot. De klanten zijn beleefd en wachten met eten tot iedereen aan de tafel bediend is. De klanten staan pas op als iedereen aan de tafel gedaan heeft met eten. Klanten mogen niet gaan zitten aan een tafel waar mensen aan het eten zijn. De code die de klant uitvoert is als volgt:
tafel.neem_plaats()
klant gaat zitten
tafel.bestel_schotel()
klant eet zijn bord leeg
tafel.verlaat_tafel()

De code die de robot uitvoert is als volgt:

while (true){
  tafel.wacht_op_bestelling();
  ga schotel halen
  tafel.opgediend();
}

ma 16 jan 2005 (8u/9u) (vorige prof)

  1. Geef de berkingen voor de programmeur,het operating system, de bronnen & het proces bij de verschillende deadlock algoritmes. Geef ook een evaluatie van elk algoritme met de voor en nadelen. Doe dit aan de hand van een tabel.
  2. Beantwoord bondig de volgende vragen:
    • Een programmeur voert expirimenten uit op zijn pc, uiteindelijk komen de resultaten in 1 bestand terecht. Naast de zware expirmenten schrijft de programmeur nog programmeercode,hij compileert deze en test zijn programma uit. Welke CPU-scheduling algoritme raad je aan? Welk raad je zeker af?
    • Disk cache: leg uit, wat als disk cache vol zit.
    • Welke manier van geheugenbeheer heeft het meeste problemen met interne fragmentatie? Welk het minste?
  3. Oefening over monitors: Je kon kiezen tussen een monitor (met conditions) of een oplossing in java (zonder conditions, maar met wait, notify en notifyAll). vergelijkbaar met "lange smalle brug" probleem uit de oefenzitting, maar met treinen & moeilijker. Maximum aantal treinen op het spoor tegelijk, indien er een wachtrij aan de andere kant is mogen er maar x-aantal treinen meer over, en nog een aantal aanpassing zoals de wissels die moeten juist staan.

vrij 27 jan 2005 (8u/9u) (vorige prof)

  1. Deadlock prevention. (6ptn)
    1. Leg uit
    2. Voor & nadelen tov deadlock avoidance, detection, ..
  2. Hoe kun je een toegangsmatrix aanpassen zodat het zichzelf beschermt? en waarom wordt die soms gecombineert met een capability? (en nog 2 vraagskes diek ni just nimeer weet) (4ptn)
  3. Waar of niet waar? (3ptn)
    • SJF heeft de kortste gemiddelde verblijftijd? (das dus blijkbaar ni hetzelfde als wachttijd)
    • Een 2-level paging gebruikt meestal minder memory dan een 1-level paging. (en das een strikvraag wan dees is wel waar, aangezien een volledige blok van invalid bits in de 1-level pt ni aangerekent wordt in de 2-level pt.)
    • Een veilige toestand kan een onveilige toestand worden als een proces resources aanvraagt die niet beschikbaar zijn.
  1. Synchronisatie oefening: (de volle 2 blz tekst >.>) (7ptn)
    • Je moest een monitor maken dat een sluis beheert, die boten liet oversteken op een verval. Boten in de sluis moeten altijd eerst naar buiten gaan vooraleer andere boten der in mogen. De boot roept de volgende sequentie op:
    sluis.toegelaten()
    // vaart in de sluis
    sluis.binnenWilBuiten()
    // vaart naar buiten
    sluis.buiten()
    // boot is buiten
    • Functies die je mocht gebruiken: wijzig(laag....hoogwater)
    • Zijn er deadlocks in jouw oplossing, is het eerlijk ?